第10卷第3期2002年9月
北京石油化工学院学报
JournalofBeijingInstituteof
Petro—chemicalTechnology
V01.10No.3
Sep.2002
Burg算法最大熵谱估计的VC++仿真分析
张威张路纲
(北京石油化工学院自动化系,北京102617)
摘要介绍了现代功率谱估计中的Burg算法最大熵谱估计的基本原理,并采用Vc++语言对功率谱密度(PSD)进行了仿真。同时比较了Burg算法和经典谱估计中Bartlett周期图法,针对Burg算法中的模型阶次的选择进行了分析,提出了最佳模型阶次采用最终预报误差(FPE)为准则的结论。
关键词谱估计;Burg;Bartlett;最终预报误差
中图法分类号TN911.72
目前,在《数字信号处理》的教学中对功率谱的仿真分析多采用MATLAB语言进行,MAT—LAB语言虽有着强大的数学计算能力,但其作为一种解释性语言,有着实时效率差,不能脱离其运行环境,不能实现端口操作和实时控制,界面不友好,不易于对多种方式的频谱估计效果进行比较分析等缺点。
笔者直接使用VC++来对功率谱估计中常用的Burg算法最大熵谱估计进行仿真分析,从而避免使用MATLAB语言所带来的问题,运用VC++仿真程序也可使人们更好的理解什么是一致估计,什么是无偏估计,如何判断Burg算法的AR模型阶次等问题。
1Burg算法最大熵谱估计的基本原理
最大熵谱估计是由Burg(1967年)提出的一种现代谱分析法。用这种方法可以预测观测区间以外的数据,从而解决了经典谱估计算法中加窗所带来的分辨率下降等问题。由于最大熵法的一系列优点,它成了近十几年现代谱分析中极其活跃的一个研究领域,并广泛应用于通信、化学、医学、经济学等领域。
Burg算法通过使前、后向预测误差的平均功率最小来计算反射系数,以Levinson—Durbin
收稿日期:2002—04一01递推为约束条件,求出信号的功率谱11I。其具体步骤如下:
(1)计算初始值
吼(o)=面1∑I石(it)f2
eo(n)=bo(n)=戈(It)
(2)令P=1,求反射系数
2∑‰l(n)bp一1(It)
K=一1}L—————一(1)
∑∽2一。(It)+6;一。]
all=K1,仃}=(1一lK12)驴。(0)
(3)由Kl和下述公式,求出el(n)、b。(n)
ep(乃)=ep一1(n)+%%一1(n一1)
bp(凡)=bp一1(n一1)+砗ep—l(n)
再由式(1)估计砭。
(4)仿照唧&=ap—l,k+砗唧一l,p一^及%=砗的Levinson递推关系,求出P=2时,a2l,a22,仃;。
(5)重复上述过程,直到P等于所需AR模型阶数,求出所有的AR模型参数。扪再用下述公式求出功率谱密度:
^2
如≮∽2F1翻ae+>:。}一pⅦ’l
2Burg算法最大熵谱估计的
VC++仿真结果分析
利用VC++编写仿真程序,对仿真结果进
万方数据