aryule

Параметры авторегрессивной модели все-полюса — метод Юла-Уокера

Синтаксис

a = aryule(x,p)
[a,e] = aryule(x,p)
[a,e,rc] = aryule(x,p)

Описание

a = aryule(x,p) возвращает нормированное авторегрессивное (AR) параметры, соответствующие модели порядка p для входного массива, x. Если x вектор, затем выходной массив, a, вектор-строка. Если x матрица, затем параметры вдоль n th строка a смоделируйте n th столбец xA имеет p + 1 столбец. p должен быть меньше числа элементов (или строки) x.

[a,e] = aryule(x,p) возвращает предполагаемую дисперсию, e, из белого шумового входа.

[a,e,rc] = aryule(x,p) возвращает отражательные коэффициенты в rc.

Примеры

свернуть все

Используйте вектор полиномиальных коэффициентов, чтобы сгенерировать AR (4) процесс путем фильтрации 1 024 выборок белого шума. Сбросьте генератор случайных чисел для восстанавливаемых результатов. Используйте метод Юла-Уокера, чтобы оценить коэффициенты.

rng default

A = [1 -2.7607 3.8106 -2.6535 0.9238];

y = filter(1,A,0.2*randn(1024,1));

arcoeffs = aryule(y,4)
arcoeffs = 1×5

    1.0000   -2.7262    3.7296   -2.5753    0.8927

Сгенерируйте 50 реализации процесса, изменив каждый раз отклонение входного шума. Сравните Оцененные по Рождеству-Уокером отклонения с фактическими значениями.

nrealiz = 50;

noisestdz = rand(1,nrealiz)+0.5;

randnoise = randn(1024,nrealiz);

for k = 1:nrealiz
    y = filter(1,A,noisestdz(k) * randnoise(:,k));
    [arcoeffs,noisevar(k)] = aryule(y,4);
end

plot(noisestdz.^2,noisevar,'*')
title('Noise Variance')
xlabel('Input')
ylabel('Estimated')

Повторите процедуру с помощью aryuleмногоканальный синтаксис.

realiz = bsxfun(@times,noisestdz,randnoise);

Y = filter(1,A,realiz);

[coeffs,variances] = aryule(Y,4);

hold on
plot(noisestdz.^2,variances,'o')

q = legend('Single channel loop','Multichannel');
q.Location = 'best';

Используйте вектор полиномиальных коэффициентов, чтобы сгенерировать AR (2) процесс путем фильтрации 1 024 выборок белого шума. Сбросьте генератор случайных чисел для восстанавливаемых результатов.

rng default

y = filter(1,[1 -0.75 0.5],0.2*randn(1024,1));

Используйте метод Юла-Уокера, чтобы подбирать модель AR (10) к процессу. Выведите и постройте отражательные коэффициенты.

[ar_coeffs,NoiseVariance,reflect_coeffs] = aryule(y,10);

stem(reflect_coeffs)
axis([-0.05 10.5 -1 1])
title('Reflection Coefficients by Lag')

Отражательные коэффициенты затухают, чтобы обнулить после задержки 2, который указывает, что модель AR (10) значительно переоценивает временную зависимость в данных.

Больше о

свернуть все

AR (p) модель

В модели AR порядка p текущая производительность является линейной комбинацией прошлого p выходные параметры плюс белый шумовой вход. Веса на p мимо выходных параметров минимизируют среднеквадратическую ошибку прогноза авторегрессии. Если y (n) является текущим значением выхода, и x (n) является нулевым средним белым шумовым входом, модель AR (p):

k=0pa(k)y(nk)=x(n).

Отражательные коэффициенты

Отражательные коэффициенты являются частичными коэффициентами автокорреляции, масштабируемыми –1. Отражательные коэффициенты указывают на временную зависимость между y (n) и y (n – k) после вычитания прогноза на основе прошедшего k – 1 временной шаг.

Алгоритмы

aryule использует рекурсию Левинсона-Дербина на смещенной оценке демонстрационной последовательности автокорреляции, чтобы вычислить параметры.

Ссылки

[1] Hayes, Монсон Х. Статистическая цифровая обработка сигналов и моделирование. Нью-Йорк: John Wiley & Sons, 1996.

Представлено до R2006a