内容概要本文主要对LMS算法及其改进算法进行了详细的理论研究和仿真。介绍了基本LMS算法及其改进算法:NLMS算法、TDO-LMS算法、MLMS算法、泄露LMS算法、极性LMS算法、解相关LMS算法等。同时,由于基本LMS算法存在收敛速度慢的缺点,我们通过MATLAB对其参数进行了修改以期达到更好的效果,对LMS算法的学习曲线、收敛速度等性能及其信号时域波形进行了MATLAB仿真。此外,为了对LMS算法更加了解,本文还对LMS算法进行了应用举例:LMS自适应均衡器和自适应信号分离器。并对其进行了MATLAB仿真,来说明其特性。自适应滤波原理:自适应滤波器输出信号y(n),所期望的响应信号为d(n),误差信号e(n)为d(n)与y(n)之差。这里,期望响应信号d(n)是根据不同用途来选择的,自适应滤波器的输出信号y(n)是对期望响应信号d(n)进行估计的,滤波参数受误差信号e(n)的控制并自动调整,使y(n)得估计值等于所期望的响应d(n).因此,自适应滤波器与普通滤波器不同,它的冲击响应或滤波参数是随外部环境的变化而变化的,经过一段自动调整的收敛时间达到最佳滤波的要求。图1自适应滤波器原理图自适应滤波自适应滤波器与普通滤波器不同,它的冲击响应或滤波参数是随外部环境的变化而变化的,经过一段自动调整的收敛时间达到最佳滤波的要求。自适应滤波器本身有一个重要的自适应算法,这个算法可以根据输入、输出及原参数量值,按照一定准则改变滤波参量,以使它本身能有效地跟踪外部环境的变化。通常,自适应滤波器是线性的,因而也是一种线性移变滤波器。当然,它可推广到自适应非线性滤波器。最陡下降算法最陡下降算法是一种古老而有非常有用的通过迭代寻找极值的方法。从几何意义上来说,迭代调整权矢量的结果是使系统的均方误差沿其梯度的反方向下降,并最终达到最小均方误差ξmin..在最小均方误差实现时,权矢量变为最佳权矢量wopt.其表示式:w(n+1)=w(n)-μ▽(n)(1)式中,μ是正常实数,称为收敛因子,用于调整自适应迭代的步长。收敛限制条件:(2)式中,为自相关矩阵R的最大的特征值。max10maxLMS算法最小均方(LMS)算法,这是一种用瞬时值估计梯度矢量的方法,而且这种瞬时估计法是无偏的。其原理如图2所示。x(n)xH(n)µΣIz-1I+-e(n)d(n)w(n+1)w(n)利用时间n=0的滤波系数矢量为任意的起始值w(0),然后开始LMS算法的计算,通过推到我们得到其更新公式:(3)收敛因子应满足下列收敛条件:(4))()()()1(nxnenwnwmax10图2自适应LMS算法信号流图LMS算法改进形式―NLMS算法如果不希望用与估计输入信号矢量有关的相关矩阵来加快LMS算法的收敛速度,那么可用变步长方法来缩短其自适应收敛过程,其中一个主要的方法是归一化LMS(NormalizedLMS,缩写为NLMS)算法。其更新公式如下式所示:(5)收敛因子应满足下列收敛条件:(6))()()()()()1(nxnenxnxnwnwT20LMS算法改进形式―泄露LMS算法在无噪声的条件下,泄露LMS算法的性能并没有常规LMS算法好,泄露LMS算法在通信系统的自适应差分脉冲编码调制(ADPCM)中得到应用,被用来减小或消除通道误差。泄露LMS算法的迭代公式如下式所示:(7)收敛因子应满足下列收敛条件:(8)通常取γ近似为1。若γ=1,则泄露LMS算法变为LMS算法。)()(2)()1(nxnenwnw2111minLMS算法的应用LMS算法是一类比较重要的自适应算法,其显著特点是比较简单,不需要计算有关的相关函数,也不需要矩阵求逆运算。本文主要讨论起在均衡、信号分离、陷波和系统辨识或建模方面的应用。自适应均衡器是在自适应滤波理论基础上建立起来的,从自适应均衡参数与接收信号的关系来看,大体上可分为线性均衡器和非线性均衡器。参考输入是原始输入的k步延时的自适应对消器可以组成自适应预测系统、谱线增强系统以及信号分离系统。图3表示一个用作信号分离器目的的系统。LMS算法的应用图3中,当输入中包括两种成分;宽带信号(或噪声)与周期信号(或噪声)时,为了分离这两种信号,可以一方面将该输入信号送入端,另一方面把它延时足够长时间后送入AF的端。经过延时后带宽成分已与原来的输入不相关,而周期性成分延时前后则保持相关。图3自适应信号分离器原理图jdjx-Z-D+AF宽带信号周期信号宽带成分输出周期成分输出ejyjLMS算法的应用自适应陷波器:如果信号中的噪声是单色的干扰(频率为的正弦波干扰),则消除这种干扰的方法是应用陷波器。希望陷波器的特性理想,即其缺口的肩部任意窄,可马上进入平的区域。用自适应滤波器组成的陷波器与一般固定网络的陷波器比较有下列优点:(1)能够自适应地准确跟踪干扰频率;(2)容易控制带宽;系统辨识或系统建模:所谓系统辨识,实质上是根据系统的输入和输出信号来估计或确定系统的特性以及系统的单位脉冲响应或传递函数。采用滤波器作为通信信道的模型。仿真思路我们知道,为了缩短收敛过程,我们有三种方法:一是采用不同的梯度估值;二是对收敛因子步长μ选用不同的方法;三是采用变换域分块处理技术。而在本文中,我采用第二种方法,通过对收敛因子步长μ使用不同的方法来得到较快的收敛过程。采用第二种方法的原因是步长μ的大小决定着算法的收敛速度和达到稳态的失调量的大小。对于常数的μ值来说,收敛速度和失调量是一对矛盾,要想得到较快的收敛速度可选用大的μ值,这将导致较大的失调量;如果要满足失调量的要求,则收敛速度受到制约。因此,人们研究了采用变步长的方法来克服这一矛盾。仿真思路自适应过程开始时,取用较大的μ值以保证较快的收敛速度,然后让μ值逐渐减小,以保证收敛后得到较小的失调量。在仿真中选用不同的μ值来对其性能进行仿真,然后再调整μ值得到较好的收敛曲线。在MATLAB仿真中使用C语言进行编程。输入信号为一个正弦单输入信号:s=a*sin(0.05*pi*t).加入零均值高斯噪声的信噪比为3dB.仿真结果与分析―LMS算法在图4设置其步长μ=0.00002。可以看出当步长较小时,LMS算法的收敛过程并不是特别快。其输入输出以及加噪以后的波形如图5所示。图4LMS算法收敛曲线图5信号s时域波形仿真结果与分析―NLMS算法在归一化LMS算法的仿真中设置其步长μ=0.0001,γ=1。γ参数是为避免过小导致步长值太大而设置的。)()(nxnxT图6u=0.0001时NLMS算法收敛曲线图7u=0.9999时NLMS算法收敛曲线由图6和图7的比较可知,步长因子μ越小,它的收敛速度越慢,失调量较小。在增大步长因子μ后,让它接近于1,这是它的收敛速度明显加快,但是失调量却较大。仿真结果与分析―泄露LMS算法在泄露LMS算法中令参数γ=1时,它便和基本LMS算法有相同的收敛曲线。在无噪声的环境下泄露LMS算法的的性能要略低于基本LMS算法。图8r趋于0时泄露LMS算法收敛曲线图9r趋于1时泄露LMS算法收敛曲线仿真结果与分析―自适应均衡器在对LMS自适应均衡器的仿真中:随机数据产生双极性的随机序列x[n],它随机地取+1和-1。随机信号通过一个信道传输,信道性质可由一个三系数FIR滤波器刻画,滤波器系数分别是0.3,0.9,0.3。在信道输出加入方差为σ平方高斯白噪声,设计一个有11个权系数的FIR结构的自适应均衡器,令均衡器的期望响应为x[n-7],选择几个合理的白噪声方差σ平方(不同信噪比),进行实验。图10u=1,DB=20图11u=1,DB=25仿真结果与分析―自适应均衡器图10和图11是LMS算法1次实验误差平方不同衰减下的均值曲线。图12和图13是LMS算法20次实验误差平方在不同的步长下的均值曲线。图12u=1.5,DB=25图13u=0.4,DB=25仿真结果与分析―自适应均衡器观察两个不同步长情况下的平均误差曲线不难看出,步长越小,平均误差越小,但收敛速度越慢,为了好的精度,必然牺牲收敛速度;当降低信噪比时,尽管20次平均仍有好的结果,但单次实验的误差曲线明显增加,这是更大的噪声功率对随机梯度的影响。序号123456789101120次0.0383-0.04800.0565-0.10580.2208-0.54871.4546-0.56810.2238-0.09970.03671次-0.00370.0074-0.0010-0.05170.1667-0.51121.4216-0.52440.1668-0.05970.0164表1LMS算法自适应均衡器系数仿真结果与分析―自适应信号分离器程序输出结果如图14至图16所示。从输出结果比较可知:当收敛因子选取适当时,滤波器输出较好;当收敛因子超过一定门限时,滤波器输出发散。0102030405060708090100-2-1.5-1-0.500.511.520102030405060708090100-1-0.500.511.50102030405060708090100-10-8-6-4-20246810图14信号叠加噪声波形图图6-15u=0.001自适应滤波输出结果图6-16u=0.3自适应滤波输出结果结论在对LMS算法进行应用或设计的时候,如果不希望用与估计输入信号矢量有关的相关矩阵来加快LMS算法的收敛速度,那么可用变步长方法来缩短其自适应收敛过程,其中一个主要的方法是归一化LMS算法,为了达到快速收敛的目的,必须合适地选择变步长μ(n)的值,一个可能的策略是尽可能多的减少瞬时平方误差,即用瞬时平方误差作为均方误差MSE的简单估计。一般来说,较小的收敛因子会导致收敛速度和较小的失调。结论此外,当输入信号自相关阵的一个或多个特征值为0时,由于非线性量化的影响,自适应滤波器有可能不能收敛。通常,采用泄露技术来防止这一现象的发生。在自适应滤波器权系数的更新中引入一定的非线性变换,可以在一定程度上简化权系数更新过程中的乘法运算,并因此简化LMS自适应滤波器的硬件或程序实现,本文中介绍的极性LMS自适应算法就是典型的这种算法。