一种改进的变步长LMS自适应滤波算法及其仿真

作者:华强;夏哲雷;祝剑英 刊名:中国计量学院学报 上传者:彭忠成

【摘要】在分析传统的定步长最小均方(LMS)算法、变步长LMS算法的基础上,通过建立误差信号与步长因子之间的新的非线性映射关系,提出新的改进型变步长LMS自适应算法.通过MATLAB仿真分析,证明了该算法具有较好的收敛速度和较小的稳态误差以及较好的时变系统跟踪能力.

全文阅读

由于自适应滤波算法具有很强的自跟踪和自学习能力以及该算法简单易于实现,因此在信号处理、系统识别、回波对消、雷达列阵处理、通信系统的自适应控制等方面获得了广泛的应用[1].尤其是20世纪60年代,Windrow和Hoff提出了基于最小均方误差作为准则的最小均方误差(LMS)算法[2],它利用最陡下降法的思想,用梯度的估计值来替代梯度的精确值,沿着梯度估计的负方向迭代,不断自动调节自身滤波器的抽头系数,最终收敛到维纳解.相比于直接计算滤波器的最佳权值,该算法大大简化了计算的复杂程度和减少了计算量.评价自适应算法好坏的参数主要有:收敛速度、收敛时候的稳态误差、对时变系统的自适应跟踪能力、抗噪声能力以及算法的复杂度.传统的固定步长LMS算法由于其步长是固定的,故不能很好地解决稳态误差、收敛速度以及时变系统的自适应跟踪能力之间的固有矛盾:要想获得较快的收敛速度就要求算法的步长要大,但是这势必意味着大的稳态失调.相反的,小的步长可以获得较小的稳态误差,但是会降低收敛速度以及时变系统的跟踪能力.为了解决这一矛盾,人们提出了许多改进的自适应算法,如时域的变步长算法、变换域LMS算法等.其中最多的还是时域的变步长算法[3-8],这些变步长LMS自适应算法基本上都遵循以下的步长调整原则:即在初始收敛阶段或未知系统参数发生变化的时候,步长应比较大,以便达到较快的自动跟踪能力和收敛速度;在算法收敛接近稳定以后,应保持很小的调整步长以达到很小的稳态失调误差.鉴于此,本文提出了一种改进的变步长算法,在稳态环境下有较好的收敛速度和相对较小的稳态失调,对时变系统也拥有较好的跟踪能力.1LMS算法传统的LMS算法是基于最陡下降法的基础上,用瞬时平方误差的性能函数代替均方误差性能函数,采取递推迭代的方式,使得自适应滤波器的值逐步趋向最佳的维纳解,从而大大减少了计算量.自适应滤波器由抽头系数可变的数字滤波器和自适应算法组成,其原理如图1所示.图1自适应滤波器原理Figure1Adaptivefilterprinciple传统LMS的迭代公式如下:e(n)=d(n)-XT(n)W(n)(1)W(n+1)=W(n)+2e(n)t(n)(2)其中x(n)代表n时刻的输入信号矢量,W(n)代表n时刻的自适应滤波器的抽头系数,两者的乘积即为n时刻的系统输出y(n),e(n)表示n时刻的误差,代表自适应滤波算法的迭代步长,控制收敛速度和稳态误差.传统LMS算法的步长因子是常数,即是固定步长的.如果输入向量的特征值分布很散,则会导致算法收敛很慢,且有较大的稳态误差.算法收敛的条件为,0<<1/max(max为输入信号x(n)的自相关矩阵的最大特征值).如上述理论,考虑到收敛速度和稳态误差这两个相互的要素,步长的选择需要折中考虑,太大或太小都会得不到理想的效果.最理想的过程为在算法起始阶段,由于均方误差较大,则步长应该较大,以此来获得快的收敛速度.随着滤波器的抽头系数越来越接近最佳解,即均方误差越接近于零,这时候的步长应该较小,以此来获得小的稳态误差.因此,变步长算法的思想被提出.2变步长LMS算法为了改进定步长LMS算法存在的缺陷,各种变步长的LMS算法被提出来.文献[3]提出的基于sigmoid函数的SVS-LMS算法及文献[4-5]在sigmoid函数的基础上提出的改进算法,分别与e(n)的平方和e(n)e(n-1)建立映射关系;另外文献[6]提出的步长正比于误差大小;文献[7]提出的步长与瞬时均方误差间的非线性关系;而文献[8]引入了记忆因子的概念,使步长因子跟前面n个误差的值相关,从而提高

参考文献

引证文献

问答

我要提问