开篇:润墨网以专业的文秘视角,为您筛选了一篇自适应滤波器的算法研究及DSP仿真实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘 要:随着DSP技术的高速发展,人们对信号处理的实时性、准确性和灵活性的要求越来越高,DSP技术在信号处理中的地位也越来越重要。自适应滤波器是一种复杂的算法,设计它是为了在均衡信道,抵消回波,增强谱线,抑制噪声等方面有所应用。而自适应滤波器的实现主要采用最小均方误差算法完成。自适应算法通过调整滤波器系数来实现可以更好地跟踪信号的变化,最终实现自适应滤波。
关键词:自适应滤波器;数字信号处理器;最小均方误差算法;Matlab仿真
中图分类号:TN713文献标识码:B
文章编号:1004-373X(2009)05-112-03
Algorithm Research of Adaptive Filter and DSP Simulation Realization
SONG Liye,WANG Jingsheng,PENG Jishen
(Department of Electrical Engineering,Liaoning Technical University,Huludao,125105,China)
Abstract:With the rapid development of DSP technique,there is an increasing requirement of real-time processing,accuracy and flexibility in signal-processing.DSP technique plays a more important role in signal-processing.Adaptive filters have been implemented with some complex algorithms in the past decade.Designing it is for the balanced channel,counterbalances the echo,the enhancement spectral line,aspects noise elimination has the application and so on.But the realization of adaptive filter mainly uses the least mean square to complete.The least mean square is realized by adjusting filter and can track signal much better,finally realizes the adaptive filtering.
Keywords:adaptive filter;digital signal processor;least mean square error;matlab simulation
0 引 言
滤波是电子信息处理领域的一种最基本而又极其重要的技术。在有用信号的传输过程中,通常会受到噪声或干扰的污染。利用滤波技术可以从复杂的信号中提取所需要的信号,同时抑制噪声或干扰信号,以便更有效地利用原始信号。滤波器实际上是一种选频系统,它对某些频率的信号予以很小的衰减,让该部分信号顺利通过;而对其他不需要的频率信号则予以很大的衰减,尽可能阻止这些信号通过。在电子系统中滤波器是一种基本的单元电路,使用很多,技术也较为复杂,有时滤波器的优劣直接决定产品的性能,所以很多国家非常重视滤波器的理论研究和产品开发。
1 自适应滤波器简介
自适应滤波器属于现代滤波器的范畴,自适应滤波器是相对固定滤波器而言的,固定滤波器属于经典滤波器,它滤波的频率是固定的,自适应滤波器滤波的频率则是自动适应输入信号而变化的,所以其适用范围更广。在没有任何关于信号和噪声的先验知识的条件下,自适应滤波器利用前一时刻已获得的滤波器参数来自动调节现时刻的滤波器参数,以适应信号和噪声未知或随机变化的统计特性,从而实现最优滤波。所谓自适应滤波,就是利用前一时刻已获得的滤波器参数等结果,自动地调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。自适应滤波器实质上就是一种能调节其自身传输特性以达到最优化的维纳滤波器。
2 自适应滤波原理
自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现的。一般而言,自适应滤波器由两部分组成,一是滤波器结构,二是调整滤波器系数的自适应算法。自适应滤波器的结构采用FIR或IIR结构均可,由于IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。图1给出了自适应滤波器的一般结构。
图1为自适应滤波器结构的一般形式,图中x(n)为输入信号,通过参数可调的数字滤波器后产生输出信号y(n),将输出信号y(n)与标准信号(或者为期望信号)d(n)进行比较,得到误差信号e(n)。e(n)和x(n)通过自适应算法对滤波器的参数进行调整,调整的目的使得误差信号e(n)最小。
图1 自适应滤波器的一般结构
自适应滤波器设计中最常用的是FIR横向型结构。图2是横向型滤波器的结构示意图。
图2 横向型滤波器的结构示意图
其中:x(n)为自适应滤波器的输入;w(n)为自适应滤波器的冲激响应:w(n)={w(0),w(1),…,w(N-1)};y(n)为自适应滤波器的输出:y(n)=x(n)w(n)。
y(n)=WT(n)X(n)=∑N-1i=0wi(n)x(n-i)
3 自适应滤波算法
自适应滤波器除了包括一个按照某种结构设计的滤波器,还有一套自适应的算法。自适应算法是根据某种判断来设计的。自适应滤波器的算法主要是以各种判据条件作为推算基础的。通常有两种判据条件:最小均方误差判据和最小二乘法判据。LMS算法是以最小均方误差为判据的最典型的算法,也是应用最广泛的一种算法。
最小均方误差(Least Mean Square,LMS)算法是一种易于实现、性能稳健、应用广泛的算法。所有的滤波器系数调整算法都是设法使y(n) 接近d(n),所不同的只是对于这种接近的评价标准不同。LMS算法的目标是通过调整系数,使输出误差序列e(n)=d(n)-y(n)的均方值最小化,并且根据这个判据来修改权系数,该算法因此而得名。误差序列的均方值又叫“均方误差”(Mean Square Error,MSE)。
理想信号d(n)与滤波器输出y(n)之差e(n)的期望值最小,并且根据这个判据来修改权系数wi (n)。由此产生的算法称为LMS。均方误差ε表示为:
ε=E[e2(n)]=E{[d(n)-y(n)]2}
对于横向结构的滤波器,代入y(n)的表达式:
ε=E[d2(n)]+WT(n)RW(n)-2WT(n)P
其中:R=E[X(n)XT(n)]为N×N的自相关矩阵,它是输入信号采样值间的相关性矩阵。P=E[d(n)X(n)]为N×1互相关矢量,代表理想信号d(n)与输入矢量的相关性。
在均方误差ε达到最小时,得到最佳权系数W*=[w*0,w*1,…,w*N-1]T。
它应满足下式:
郸弄W(n)w(n)=w*=0
这是一个线形方程组,如果R矩阵为满秩的,R-1存在,可得到权系数的最佳值满足:W*=R-1P。用完整的矩阵表示为:
w*0w*1w*(N-1)=
Φx(0)Φx(1)Φx(N-1)Φx(1)Φx(0)Φx(N-2)………Φx(N-1)Φx(N-2)Φx(0)-1・
Φxd(0)Φxd(1)…Φxd(N-1)
显然Φx(m)=E[x(n)x(n-m)]为x(n)的自相关值,Φxd(R)=E[x(n)d(n-k)]为x(n)与d(n)互相关值。在有些应用中,把输入信号的采样值分成相同的一段(每段称为一帧),再求出R,P的估计值得到每帧的最佳权系数。这种方法称为块对块自适应算法。如语音信号的线性预测编码LPC就是把语音信号分成帧进行处理的。R,P的计算,要求出期望值E,在现实运算中不容易实现,为此可通过下式进行估计:
xd=1K-|m|∑k-|m|-1i=0x(n-i)d(n-|m|-i)
x=1K-|m|∑k-|m|-1i=0x(n-i)x(n-|m|-i)
用以上方法获得最佳W*的运算量很大,对于一些在线或实时应用的场合,无法满足其时间要求。大多数场合使用迭代算法,对每次采样值就求出较佳权系数,称为采样值对采样值迭代算法。迭代算法可以避免复杂的R-1和P的运算,又能实时求得近似解,因而切实可行。LMS算法是以最快下降法为原则的迭代算法,即W(n+1)矢量是W(n)矢量按均方误差性能平面的负斜率大小调节相应一个增量:W(n+1)=W(n)-u(n),这个u是由系统稳定性和迭代运算收敛速度决定的自适应步长。(n)为n次迭代的梯度。对于LMS算法(n)为下式E[e2(n)]的斜率:
(n)=E[e2(n)]W(N)=-2E[e(n)X(n)]
由上式产生了求解最佳权系数W*的两种方法,一种是最陡梯度法。其思路为:设计初始权系数W(0),用W(n+1)=W(n)-u(n)迭代公式计算,到W(n+1)与W(n)误差小于规定范围。其中(n)计算可用估计值表达式:
X(n)〗1K∑k-1i=0e(n-i)X(n-i)
上式K取值应足够大。如果用瞬时-2e(n)X(n)来代替上面对-2EX(n)〗的估计运算,就产生了另一种算法――随机梯度法,即Widrow-Hoff的LMS算法。此时迭代公式为:
W(n+1)=W(n)+2ue(n)X(n)
以后讨论的LMS算法都是基于Widrow-Hoff的LMS算法。上式的迭代公式假定滤波器结构为横向结构。对于对称横向型结构也可推出类似的迭代公式:
W(n+1)=W(n)+2ue(n)[X(n)+X(n-N+1)]
4 自适应滤波算法的理论仿真
使用Matlab编程,采用自适应滤波器技术实现信噪分离,也就是去噪。程序如下:
lear all;
clf;
signal = cos(2*pi*0.055*[0:1000-1]′);%产生信号
noise=randn(1,1000);%产生噪声
nfilt=fir1(11,0.4);%11阶低通FIR滤波器
fnoise=filter(nfilt,1,noise);%相关噪声数据
d=signal.′+fnoise;%信号和噪声叠加
w0 = nfilt.′ -0.01;%设置初始化滤波器系数
mu = 0.05;%设置算法的步长
s=initse(w0,mu);% adaptse函数的初始化参数
[y,e,s] = adaptse(noise,d,s);
plot(0:199,signal(1:200),0:199,e(1:200));
程序运行的结果如图3所示。
通过CCS软件环境,把滤波程序烧录到dsp芯片中,在CCS DSK C5000环境下输出仿真结果:输入信号为余弦信号和随机噪声的叠加。程序正确运行后,观察运行结果,得出如图4,图5所示的仿真图。
图3 Matlab仿真图
图4 余弦信号和随机噪声叠加的输入信号
图5 输出信号
5 结 语
通过仿真实验结果表明:自适应滤波器却能很好地消除叠加在信号上的噪声,虽然也可以用固定滤波器来实现,但设计固定滤波器时需要预先知道信号和噪声的统计特性,而自适应滤波器则不需要,并且当信号和噪声的统计特性发生变化时,自适应滤波器也能自动地调节其冲激响应特性来适应新的情况,因此,自适应滤波器具有更加广阔的应用前景。
参考文献
[1]胡广书.数字信号处理――理论、算法与实现[M].北京:清华大学出版社,1998.
[2]王世一.数字信号处理[M].北京:北京理工大学出版社,1999.
[3]程卫国,冯峰,姚东,徐昕.Matlab启用指南[M].北京:人民邮电出版社,2000.
[4]邓重一.滤波器的过去、现在与未来.世界电子元器件,2003(4):48-50.
[5]侯志林.过程控制与自动化仪表[M].北京:机械工业出版社,1998.
[6]谭浩强,吴功宜.计算机教程[M].2版.北京:电子工业出版社,2001.
[7]于海生.微型计算机控制技术[M].北京:清华大学出版社,1998.
[8]程佩青.数字信号处理教程[M].北京:清华大学出版社,2005.
[9]Simon Haykin.Adaptive Filter Theory[M].Beijing:Publishing House of Electronics Industry,2002.
[10]Alexander V Anisimov,Vadim Yu Teplov,Nikolai I Silkin.System of Thermostatic Control on Peltier Thermopiles and Microprocessor Control for a Portable NMR Relax-ometer[J].Journal of Magnetic Resonance,2002,154:176-180.
作者简介 宋立业 男,1972年出生,讲师。主要从事电力系统自动化装置方面的研究。
王景胜 男,鞍山人,硕士研究生。主要从事电力电子与电力拖动系统的设计与研究。
彭继慎 男,1969年出生,教授。主要从事电力电子系统的计算机控制与仿真研究。