allanvar

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

Описание

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

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

[avar,tau] = allanvar(Omega,m) возвращает дисперсию Аллана 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

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

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

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

свернуть все

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

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

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

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

Укажите спецификацию m, заданный как 'octave' или 'decade'. На основе значения ptStrM задан как следующее:

  • Если ptStr задан как 'octave'M :

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

  • Если ptStr задан как 'decade'M :

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

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

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

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

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

свернуть все

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

Усреднение времени дисперсии Аллана, возвращенной как вектор или матрица.

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

|

Введенный в R2019a