利用LMS算法的自适应系统仿真
- 格式:doc
- 大小:25.00 KB
- 文档页数:3
变步长LMS自适应滤波器算法仿真研究The simulation of variable step-size LMS adaptive algorithm摘要:本文分析了变步长LMS自适应滤波器算法的基本原理,并使用Matlab对其算法进行了编程设计,给出了具体的程序实现,具有比较强的借鉴作用。
关键词:自适应滤波;变步长LMS;Matlab程序设计Abstract: This paper discusses the principle of the variable step-size LMS adaptive algorithm and uses the Matlab to programme the algorithm, which can be used for reference.Key words: adaptive filtering; variable step-size LMS; Matlab1 引言滤波是当今信息处理领域的一种极其重要的技术。
滤波是从复杂的信号中提取有用的信号,同时抑制噪声和干扰信号,以便有效地利用原始信号。
滤波器实际上是一种选频系统,它对某些频率的信号予以很小的衰减,使该部分信号顺利通过;而对不需要的频率信号则予以很大的衰减,尽可能阻止这些信号通过。
总的来说,滤波器可以分为经典滤波器和现代滤波器两大类。
经典滤波器是假定输入信号x(n)中的有用成分和希望去掉的成分各占有不同的频带,即关于信号和噪声应具有一定的先验知识,这样当原始信号通过一个线性系统时无用的成分就可以滤掉。
如果有用信号和噪声的频谱相互重叠,那么通过经典滤波器就无法去除噪声或干扰。
而现代滤波器就能够解决上述问题。
现代滤波器是把信号和噪声都视为随机信号,利用它们的统计特征(如自相关函数、功率谱等)导出一套最佳的估计算法,然后用硬件或软件予以实现。
2 LMS自适应滤波器自适应滤波的研究始于20世纪50年代末,Widrow和Hoff等人最早提出了最小均方(LM S)算法。
LMS 和RLS 算法应用及仿真分析摘要:本文采用MATLAB 软件对LMS 和RLS 两种自适应均衡算法在回波抵消器中的应用进行仿真,分析收敛步长μ、抽头w 、遗忘因子λ 等参数对回波抵消器性能的影响,并对两种算法下的性能做出比较。
关键词:LMS ;RLS ;自适应;回波抵消1 引言进入90 年代后期,通过网络拨打长途电话即IP 电话开始盛行,由于发话端到受话端的延迟达100ms 以上,而人耳对大于50ms 的回声就能辨别出来,因此IP 电话的回声严重影响通话效果。
如何消除回声成为非常重要的问题,回波抵消器就是一个自适应辨识系统,它通过特定的算法辨识未知的目标系统,即回声路径。
本文采用LMS 和RLS 算法实现回波抵消,并对收敛步长μ、抽头w 、遗忘因子λ 等相关参数对回波抵消性能的影响进行了仿真分析,从而为一种通用的回波抵消技术的实际应用提供理论参考。
回波抵消算法原理图如图1 所示。
图1 回波抵消算法原理图 2 LMS 和RLS 算法概述最陡下降法(LMS )和递归最小二乘算法(RLS )是自适应滤波最常用,也是最基本的两种算法。
下面分别对LMS 和RLS 两种算法原理做简单介绍。
2.1 LMS 算法设J(n)是n 时刻均方误差,J(n+1)是n+1 时刻的均方误差,W(n)、W(n+1)分别是n 、n+1时刻M 维抽头权向量011()[()()...()]T M W n w n w n w n -= (1)为使J(n+1)<J(n) (2)W(n)必须按J(n)的负方向变化即(1)()W n W n J μ→→→+=-∇ (μ>0) (3)最后以U (n )*e (n )瞬时值代替统计平均,得到抽头权向量迭代式 *(1)()()()W n W n U n e n μ→→+=- (4)式中U(n)式n 时刻的输入向量[u(n) u(n-1) u(n-2)···u(n-M+1)]。
1 用LMS算法实现自适应均衡器的MATLAB1 用LMS算法实现自适应均衡器 考虑一个线性自适应均衡器的原理方框图如《现代数字信号处理导论》 P.275
自适应均衡器应用示意图。随机数据产生双极性的随机序列 x[n],它随机地取+1
和-1。随机信号通过一个信道传输,信道性质可由一个三系数 FIR滤波器刻画,滤 波器系数分别是0.3 , 0.9 , 0.3。在信道输出加入方差为c平方高斯白噪声,设计一 个有11个权系数的FIR结构的自适应均衡器,令均衡器的期望响应为 x[n-7],
选择几个合理的白噪声方差c平方(不同信噪比),进行实验。 用LMS算法实现这个自适应均衡器,画出一次实验的误差平方的收敛曲线,给出 最后设计滤波器系数。一次实验的训练序列长度为 500。进行20次独立实验, 画出误差平方的收敛曲线。给出3个步长值的比较。 1 .仿真结果: ws法欹实验谡若平方的均值曲抉 35 ]— L — L ・・. - T ・■ - I
26 - - 2- - 安 2
LZ歌尢骑;兄盖平步的坟曲注就 i 1M 1 I ・ 一 ■■■ I
G (•吕花汁「听
阳弗RgR.壬半普题字载■ 券M 4
尿甜黑窝实验谣差F方的均惯傕粽 □.6 - r 0.6 | CM*
___ rz % 50 10D t50 293 25D 5U9 4KJ 453 ftKj ■当」£4隔出廿7
中唏跌尢.骑疾尧平肓的堵曲住我
2.5-
%*5,
XJ LUJJJJWLALMIJL汕
°F 50 10D 150 2!H 25C 3H 350 4DB 4 知 fK : fi( u i.ziB jn :「 W骷,中.实验娱帝千方的均值±税 50 1 CD 150 200 250 加划 酬。 n(当山.但2BW 用LMS算法设计的自适应均衡器系数
123456789 10 11 序 号 0.0383 -0.0480 0.0565 -0.1058 0.2208 -0.5487 1.4546 -0.5681 0.2238 - 0.0997 0.0367 20
Vol.11No.9Sep.2009第11卷第9期2009年9月 2009.90引言自适应滤波器可广泛应用于系统识别、信号处理和数字通信等许多领域。
而超大规模集成电路和FPGA 的飞速发展,也促进了自适应滤波技术的进步。
此外,由于其对干扰频率不敏感,且其权值调整是基于对系统参数的优化,因此,自适应滤波器仍然越来越多地受到人们的关注。
1LMS 自适应滤波器1.1LMS 算法最小均方误差(LMS)算法具有计算量小、易于实现等优点,因此,在实践中被广泛应用。
LMS 算法的基本思想是调整滤波器自身的参数,使滤波器的输出信号与期望输出信号之间的均方误差最小,并使系统输出为有用信号的最佳估计。
实质上,LMS 可以看成是一种随机梯度或者随机逼近算法,可以写成如下的基本迭代方程:y k =X TW K εk =d k -y kW K+1=W K +2μεK X KK K K K K K K K K K K K K其中,μ为步长因子,是控制稳定性和收敛速度的参量。
从上式可以看出,该算法结构简单、计算量小且稳定性好,但固定步长的LMS 算法在收敛速度、跟踪速率及权失调噪声之间的要求相互制约。
为了克服这一缺点,人们提出了各种变步长的LMS 改进算法,主要是采用减小均方误差或者以某种规则基于时变步长因子来跟踪信号的时变,其中有归一化LMS 算法(NLMS)、梯度自适应步长算法、自动增益控制自适应算法、符号—误差LMS 算法、符号—数据LMS 算法、数据复用LMS 算法等。
1.2LMS 自适应滤波器的结构原理自适应滤波是在部分信号特征未知的条件下,根据某种最佳准则,从已知的部分信号特征所决定的初始条件出发,按某种自适应算法进行递推,在完成一定次数的递推之后,以统计逼近的方式收敛于最佳解。
当输入信号的统计特性未知,或者输入信号的统计特性变化时,自适应滤波器能够自动地迭代调节自身的滤波器参数,以满足某种准则的要求,从而实现最优滤波。
LMS自适应滤波算法1960年Widrow和Hoff提出最小均方误差算法(LMS),LMS算法是随机梯度算法中的一员。
使用“随机梯度”一词是为了将LMS算法与最速下降法区别开来。
该算法在随机输入维纳滤波器递归计算中使用确定性梯度。
LMS算法的一个显著特点是它的简单性。
此外,它不需要计算有关的相关函数,也不需要矩阵求逆运算。
由于其具有的简单性、鲁棒性和易于实现的性能,在很多领域得到了广泛的应用。
1LMS算法简介LMS算法是线性自适应滤波算法,一般来说包含两个基本过程:(1)滤波过程:计算线性滤波器输出对输入信号的响应,通过比较输出与期望响应产生估计误差。
(2)自适应过程:根据估计误差自动调整滤波器参数。
如图1-1所示,用表示n时刻输入信号矢量,用表示n时刻N阶自适应滤波器的权重系数,表示期望信号,表示误差信号,是主端输入干扰信号,u是步长因子。
则基本的LMS算法可以表示为(1)(2)图1-1 自适应滤波原理框图由上式可以看出LMS算法实现起来确实很简单,一步估计误差(1),和一步跟新权向量(2)。
2迭代步长u的作用2.1 理论分析尽管LMS算法实现起来较为简单,但是精确分析LMS的收敛过程和性能却是非常困难的。
最早做LMS收敛性能分析的是Widrow等人,他们从精确的梯度下降法出发,研究权矢量误差的均值收敛特性。
最终得到代价函数的收敛公式:′(3)式(3)揭示出LMS算法代价函数的收敛过程表现为一簇指数衰减曲线之和的形式,每条指数曲线对应于旋转后的权误差矢量的每个分量,而他们的衰减速度,对应于输入自相关矩阵的每个特征值,第i条指数曲线的时间常数表示为τ小特征值对应大时间常数,即衰减速度慢的曲线。
而大特征值对应收敛速度快的曲线,但是如果特征值过大以至于则导致算法发散。
从上式可以明显看出迭代步长u在LMS算法中会影响算法收敛的速度,增大u可以加快算法的收敛速度,但是要保证算法收敛。
最大步长边界:稳态误差时衡量LMS算法的另一个重要指标,稳定的LMS算法在n时刻所产生的均方误差,其最终值∞是一个常数。
利用LMS算法的自适应系统仿真
[摘要] 一待辩识的IIR系统,用一有限长度的FIR滤波器来近似辩识系统,
介绍了基于最小均方算法(LMS算法)的自适应均衡器的原理和结构,采用LMS
算法得到N阶FIR滤波器来逼近原IIR滤波器,并且分析了步长,滤波器系数
以及自适应过程中的噪声对系统辩识性能的影响,做出了仿真试验结果并分析了
仿真试验结果的意义。
[关键词] LMS算法 FIR滤波器 自适应滤波 IIR MATLAB仿真
0、引言
假定待辨识系统是极点-零点(IIR)系统,要求用一个有限长度的FIR 滤
波器来辨识该系统,如下图所示。已知待辨识系统的传输函数为:
(IIR),求FIR 滤波器的系数。
自适应系统辨识的原理图
系统设计要求为:首先待辨识系统为IIR滤波器,利用自适应滤波的方法,
采用LMS算法得到N阶FIR滤波器来逼近原IIR滤波器,输入信号为高斯白噪
声,考察步长、阶数N对自适应滤波器性能的影响。
1、系统设计原理
由于LMS算法不需要离线方式的梯度估值或重复使用数据以及它的简单易
行性而被广泛采用。只要自适应系统是线性组合器,且有输入数据向量和期待响
应在每次迭代时可利用,对许多自适应处理的应用来说,LMS算法是最好的选
择。
我们采用LMS算法自适应调整FIR滤波器的系数,自适应滤波器的结构是
具有可调系数的直接型FIR滤波器。
输入信号为功率为1,长度为1000点的高斯白噪声。为期望响应,为自适
应FIR滤波器的输出,误差信号。
对一个FIR滤波器,其可调系数为,为滤波器的阶数。则输出
LMS算法是由最速下降法导出的,求出使均方误差达到最小值时相应的最
佳滤波器系数组。
从任意选择的一组初始值开始,接着在每个新的输入采样值进入自适应滤波
器后,计算相应的输出,再形成误差信号,并根据如下方程不断修正滤波器系数:
其中为步长参数,为时刻输入信号在滤波器的第个抽头处的采样值,是滤波
器第个系数的负梯度的近似值。这就是自适应地调整滤波器系数以便使平方误差
最小化的LMS算法。
2、系统仿真条件设置
我们在MATLAB7.0 上进行仿真,仿真条件为:利用MATLAB的库函数
randn产生均值为零,方差为1的高斯白噪声。为了观察不同的步长和阶数对系
统性能的影响,必要时可以设定“种子值”产生相同的输入序列,待辨识系统对输
入的期待响应。
由待辨识系统的传递函数可以写出它的差分方程形式为:,
其中,,可用filter函数实现,可得到待辨识系统的期待响应。
步长delta范围的确定,FIR滤波器有N个LMS算法调整的抽头系数,滤波
器长度N作为程序输入变量。步长参数控制该算法达到最佳解的收敛速度。大
使收敛较快,然而,如果取得太大,算法则会变得不稳定,为了保证稳定,的取
值应满足。在实际工程应用中,因为不可能大于输入相关矩阵对角元素之和,我
们采用更为严格的限制条件,对于自适应横向滤波器,即,其中为输入信号功率。
为了检测LMS算法的收敛速度,计算均方误差的短时平均并绘制其学习曲
线图,即计算:
平均区间可自由设定。
3、仿真结果分析
1)步长对结果的影响
首先固定阶数,用某个状态的randn函数产生同一组输入高斯白噪声,调整步
长为不同值,可以观察到以下均方误差与迭代次数的关系的学习曲线:
图1步长=0.01图2步长=0.05
图3步长=0.1图4步长=0.002
从上面的图1至图4中可见,在满足步长的取值范围内,步长越大,收敛越
快。当步长过大,学习曲线会发散,不能收敛,步长过小,收敛速度很慢,在工
程中无实际意义。当步长取0.01左右时,均方误差最小,约为0.01;如果需要
较快的收敛速度或者说处理的实时性要求比较强,保证一定误差范围内可以适当
增加步长。
2)滤波器阶数对结果的影响
步长固定为0.01,改变自适应滤波器的阶数N,观察到如下学习曲线:
图5滤波器的阶数为4 图6 滤波器的阶数为12
从图5、图6中可以看出,阶数对于收敛速度影响不大。随着滤波器阶数的
增加,均方误差得到改善。所以可以通过提高阶数来降低均方误差。
3)加噪对结果的影响
在期望响应中加入高斯白噪声,可以观察以下加噪前和加造后的学习曲线比
较图:
图7未加高斯白噪声 图8叠加高斯白噪声
从图7、图8中可以看出自适应过程中的噪声引起稳态权向量解发生了较大
的变化,收敛于一个距离最佳权向量一定距离的范围内扰动。所以在设计实现时
要尽量减少不必要的噪声,增加系统辨识的精度。
4、结束语
从仿真结果可以看出,在满足步长的取值范围内,步长越大,收敛越快。当
步长过大,学习曲线会发散,不能收敛,步长过小,收敛速度很慢。在工程中,
我们需要折中考虑,存在一个步长值使得均方误差达到最小并且有较快的收敛速
度。阶数对于收敛速度没有影响,随着阶数的增加,均方误差得到改善,所以可
以通过提高阶数来降低均方误差。但是,也不能无限制地提高阶数,一方面是滤
波器造价的增加,一方面失调会增加。对于一个具体的待辨识系统,根据设计指
标要求,存在一个合适的步长和阶数,达到最佳状态。
参考文献:
[1] (美)威德罗,(美)斯蒂恩.自适应信号处理.机械工业出版社.2007年
[2] 邹鲲,袁俊泉,龚享铱.MATLAB 6.X信号处理.清华大学出版社.2002年
[3] 胡昌华,张军波. 基于Matlab的系统分析与设计-小波分析[M].西安电子
科技大学出版社.1999