matlab中的burg算法

 

    Burg算法曾一度被称为最大熵谱算法。其基本思想是利用向前滤波误差fn,t和向后滤波误差bn,t,求出保证平均滤波误差功率为最小的ann,再按levinson算法计算ani。若观测时序{xt}是AR序列时,levinson算法和burg算法相差不大。Burg算法得到的模型参数在计算AR谱时出现谱线分裂现象,特别是当信噪比较高,正弦波的起始相位为1/4个半周期的奇数倍、在L/4长度内有奇数个正弦成分的谐波以及n/N较大时,谱线分裂现象有出现。

 


    matlab中,arburg()函数的用法。ar_coeffs = arburg(data,order),[ar_coeffs,NoiseVariance] = arburg(data,order)。

对于ar模型,有滤波器的如下example:A=[1 -2.7607 3.8106 -2.6535 0.9238];% AR(4) coefficients

y=filter(1,A,0.2*randn(1024,1)); % Filter a white noise input to create AR(4) process
ar_coeffs=arburg(y,4);%compare the results in ar_coeffs to the vector A.
A对应的AR(4)模型为y(n)-2.7607y(n-1)+3.8106y(n-2)-2.6535y(n-3)+0.9238y(n-4)

你可能感兴趣的:(算法,vector,filter,matlab,input)