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

Figure contains an axes object. The axes object 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 object. The axes object 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'. На основе значения ptStrM задан как следующее:

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

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

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

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

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

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

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

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

свернуть все

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

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

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

|

Введенный в R2019a