exponenta event banner

allanvar

Дисперсию Аллана

Описание

Дисперсию Аллана используют для измерения стабильности частоты колебаний для последовательности данных во временной области. Он также может быть использован для определения внутреннего шума в системе в зависимости от времени усреднения. Усредняющий временной ряд startможет быть определен как («t») = («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. 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... 2⌊log2 (N 12) ⌋]

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

    [100 101... 10⌊log10 (N 12) ⌋]

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

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

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

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

свернуть все

Allan дисперсия входных данных в tau, возвращается в виде вектора или матрицы.

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

См. также

|

Представлен в R2019a