虽然Levinson-Durbin递推算法解决了矩阵计算比较复杂的问题,但仍需要对信号的自相关函数进行估计,造成了一定的误差。由此引出了Burg算法,它不需要对自相关函数进行估计,可以直接由观测数据求解反射系数。

Burg算法

Burg算法是一种与预测误差格型滤波器密切相关的算法,它需要求解信号的前向预测误差和后向预测误差,其递推公式如下:

反射系数Km的计算公式如下:

(这里特别要注意求和的上下界)
AR模型中剩余的系数仍通过Levinson-Durbin递推算法中的递推公式来计算:

Burg算法改进之处是递推过程建立在数据序列基础上,避免了序列的自相关函数的估计,它能够较为精确地分辨出频率非常接近的正弦信号,而且Burg算法保证预测误差滤波器总是最小相位的。

Burg算法的Matlab实现

  1. 首先确定采样点数和AR模型阶数,写出待估计信号。
  2. 按照上述Km的计算公式循环实现,其中各阶用到的预测误差用其递推公式实现,其余参数仍用Levinson-Durbin递推公式实现。
  3. 各阶的预测误差功率可以通过Levinson-Durbin递推公式计算,但也可以默认为1,只是差一个幅度的关系。

本文结束,感谢阅读🤠

Time waits for no one!