allanvar

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

Синтаксис

[avar,tau] = allanvar(omega)
[avar,tau] = allanvar(omega,m)
[avar,tau] = allanvar(omega,ptStr)
[avar,tau] = allanvar(___,fs)

Описание

[avar,tau] = allanvar(omega) возвращает дисперсию Аллана avar как функция демонстрационной длины tau. Если omega задан как матрица, allanvar действует по столбцам omega.

[avar,tau] = allanvar(omega,m) возвращает дисперсию Аллана для определенных значений τ, заданного m.

[avar,tau] = allanvar(omega,ptStr) наборы tau к заданному ptStr.

пример

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

Примеры

свернуть все

Загрузите данные о гироскопе из файла 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

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

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

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

свернуть все

Входной массив, заданный как векторный, матричный или многомерный массив. Если задано как матрица, allanvar действует по столбцам omega.

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

Определенные значения τ, в котором можно вычислить отклонение Аллана, заданное как скаляр или вектор с возрастающими целочисленными значениями меньше, чем (N-1)/2, где N является числом элементов в omega. m не является индексом omega.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Укажите спецификацию tau, заданного как:

  • 'octave'

    [20,21...2журнал2(N12)]

  • 'decade'

    [100,101...10журнал10(N12)]

N является количеством выборок в omega.

Частота дискретизации входного массива в Гц, заданном как положительная скалярная величина.

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

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

свернуть все

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

Демонстрационные длины, соответствующие значениям вывода. Задайте этот параметр октавой или десятилетие с помощью ptStr.

Алгоритмы

Отклонение Аллана может использоваться, чтобы измерить устойчивость частоты осцилляторов точности или идентифицировать источники шума в данных о гироскопе. Рассмотрите выборки N данных из гироскопа с шагом расчета τ0. Сформируйте кластеры данных durationsτ0, 2τ0, …, mτ0, где m является меньше чем половиной N. Затем получите средние значения суммы точек данных, содержавшихся в каждом кластере по длине кластера. Отклонение Аллана задано как 2D демонстрационное отклонение средних значений кластера данных как функция кластерного времени. Эта функция вычисляет перекрывающееся отклонение Аллана.

Смотрите также

|

Введенный в R2019a