阿尔堡
具有所有极点的自回归模型的参数是Burg方法。
库::`工程师`
例子:
使用Burg方法估计参数
Details
我们使用生成多项式的系数向量来生成过程 通过过滤 1024 白噪声样本。 重置随机数发生器以获得可重复的结果。 我们使用Burg方法来估计系数。
import EngeeDSP.Functions: randn,filter,arburg
A = [1 -2.7607 3.8106 -2.6535 0.9238]
y = filter(1,A,0.2*randn(1024,1))
arcoeffs = arburg(y,4)[1]
1×5 Matrix{Float64}:
1.0 -2.7743 3.84077 -2.68434 0.936008
生成 50 过程的实现,每次改变输入噪声的方差。 让我们将Burg方法计算的方差与实际值进行比较。
nrealiz = 50
order = 4
noisestdz = rand(1, nrealiz) .+ 0.5
randnoise = randn(1024, nrealiz)
noisevar = zeros(1, nrealiz)
对于k在1:nrealiz
y=filter(ones(1),A,noisestdz[k]*randnoise[:,k])
arcoeffs,noisevar[k],e=arburg(y,order)
结束
p=scatter(vec(noisestdz。^2),vec(noisevar),
标记=:x,
markerstrokecolor=:蓝色,
xlabel="输入",
ylabel="估计",
title="噪声方差",
标签="单通道循环",
传说=错误)

让我们使用函数的多通道语法重复该过程。
Y = filter(1,A,noisestdz.*randnoise)
coeffs,variances,e = arburg(Y,4)
scatter!(p,noisestdz.^2, variances,
marker=:circle,
markercolor=:transparent,
markerstrokecolor=:green,
markersize=10)

算法
Burg方法计算反射系数并将其用于自回归参数的递归估计。 描述正向和反向预测误差更新的递归和格形滤波器的关系可以在[1]中找到。