aryule
Параметры модели авторегрессии со всеми полюсами — метод Юла — Уокера.
| Библиотека |
|
Аргументы
Примеры
Оценка параметров с помощью метода Юла — Уокера
Details
Используем вектор коэффициентов порождающего полинома для генерации процесса путем фильтрации 1024 отсчетов белого шума. Сбросим генератор случайных чисел, чтобы получить воспроизводимые результаты. Используем метод Юла — Уокера для оценки коэффициентов.
import EngeeDSP.Functions: randn,filter,aryule
A = [1 -2.7607 3.8106 -2.6535 0.9238]
y = filter(1,A,0.2*randn(1024,1))
arcoeffs = aryule(y,4)[1]
1×5 Matrix{Float64}:
1.0 -2.72272 3.71925 -2.56306 0.886621
Сгенерируем 50 реализаций процесса, каждый раз меняя дисперсию входного шума. Сравним дисперсию, рассчитанную по методу Юла — Уокера, с фактическими значениями.
nrealiz = 50
order = 4
noisestdz = rand(1, nrealiz) .+ 0.5
randnoise = randn(1024, nrealiz)
noisevar = zeros(1, nrealiz)
for k in 1:nrealiz
y = filter(ones(1), A, noisestdz[k] * randnoise[:, k])
arcoeffs,noisevar[k],e = aryule(y, order)
end
p=scatter(vec(noisestdz.^2), vec(noisevar),
marker=:x,
markerstrokecolor=:blue,
xlabel="Input",
ylabel="Estimated",
title="Noise Variance",
label="Single channel loop",
legend=false)

Повторим процедуру, используя многоканальный синтаксис функции.
Y = filter(1,A,noisestdz.*randnoise)
coeffs,variances,e = aryule(Y,4)
scatter!(p,noisestdz.^2, variances,
marker=:circle,
markercolor=:transparent,
markerstrokecolor=:green,
markersize=10)

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