allanvar

Отклонение Аллана

Описание

Аллан отклонением используется для измерения частотной устойчивости колебаний для последовательности данных в временной интервал. Он также может использоваться, чтобы определить внутренний шум в системе как функцию от времени усреднения. Средние τ временных рядов могут быть заданы как τ = m/ fs. Здесь fs частота дискретизации данных, а m - список возрастающих средних коэффициентов (таких как 1, 2, 4, 8 ,...).

[avar,tau] = allanvar(Omega) возвращает отклонение Allan avar как функция усреднения времени tau. Среднее время по умолчанию tau - октавная последовательность, заданная как (1, 2,..., 2floor{log2[(N-1)/2]}), где N количество выборок в Omega. Если Omega задается как матрица, allanvar действует над столбцами omega.

[avar,tau] = allanvar(Omega,m) возвращает отклонение Allan avar для конкретных значений tau определяется m. Поскольку частота по умолчанию fs принято равным 1, выход tau в точности то же самое с m.

[avar,tau] = allanvar(Omega,ptStr) устанавливает средний коэффициент m к заданной спецификации точки, ptStr. Поскольку частота по умолчанию fs равен 1, выход tau точно равно заданному m. ptStr может быть задано как 'octave' или 'decade'.

пример

[avar,tau] = allanvar(___,fs) также позволяет вам обеспечить частоту дискретизации fs входных данных omega в Гц. Этот входной параметр может использоваться с любым из предыдущих синтаксисов.

Примеры

свернуть все

Загрузите данные гироскопа из файла MAT, включая частоту дискретизации данных в Гц. Вычислите отклонение Аллана.

load('LoggedSingleAxisGyroscope','omega','Fs')
[avar,tau] = allanvar(omega,'octave',Fs);

Постройте график отклонения Аллана на loglog график.

loglog(tau,avar)
xlabel('\tau')
ylabel('\sigma^2(\tau)')
title('Allan Variance')
grid on

Figure contains an axes. The axes with title Allan Variance contains an object of type line.

Сгенерируйте шум гироскопа образца, включая случайную прогулку по углу и случайное блуждание по скорости.

numSamples = 1e6;
Fs = 100;
nStd = 1e-3;
kStd = 1e-7;
nNoise = nStd.*randn(numSamples,1);
kNoise = kStd.*cumsum(randn(numSamples,1));
omega = nNoise+kNoise;

Вычислите отклонение Аллана при определенных значениях m=τ. Отклонение Аллана является квадратным корнем дисперсии Аллана.

m = 2.^(9:18);
[avar,tau] = allanvar(omega,m,Fs);
adev = sqrt(avar);

Постройте график отклонения Аллана на loglog график.

loglog(tau,adev)
xlabel('\tau')
ylabel('\sigma(\tau)')
title('Allan Deviation')
grid on

Figure contains an axes. The axes with title Allan Deviation contains an object of type line.

Входные параметры

свернуть все

Входные данные, заданные как вектор N -by-1 или N -by M матрица. N - количество выборок, а M - количество наборов отсчетов. Если задано в виде матрицы, allanvar действует над столбцами Omega.

Типы данных: single | double

Средний коэффициент, заданный как скаляр или вектор с возрастающими целочисленными значениями меньше (N -1 )/2, где N - количество выборок в Omega.

Типы данных: single | double

Спецификация точек m, заданный как 'octave' или 'decade'. На основе значения ptStr, m определяется следующим образом:

  • Если ptStr задается как 'octave', m является:

    [20,21...2log2(N12)]

  • Если ptStr задается как 'decade', m является:

    [100,101...10log10(N12)]

N - количество выборок в Omega.

Базовая частота входных данных, Omega, в Гц, в виде положительной скалярной величины.

Типы данных: single | double

Выходные аргументы

свернуть все

Отклонение входных данных в tau, возвращенный как вектор или матрица.

Среднее время отклонения Аллана, возвращаемое как вектор или матрица.

См. также

|

Введенный в R2019a