基于误差反馈的变步长LMS自适应滤波算法

作者:王凤春;张岱臣;都基焱 刊名:现代电子技术 上传者:陈端海

【摘要】对变步长LMS滤波算法进行研究,提出一种新的变步长LMS自适应滤波算法。该算法基于Sigmoid函数,通过引入误差因子反馈来调整函数参数,解决了类Sigmoid函数中参数设置的问题,并使算法具有较快的收敛速度和较小的稳态误差。计算机仿真表明,相对于其他变步长算法,该算法在收敛速度和稳态误差方面均表现优异,具有较好适用性。

全文阅读

0引言LMS(Leastmeansquare)自适应滤波算法[1]由Widrow和Hoffman提出,该算法计算简单、稳定性好、易于实现,被广泛应用在控制、雷达、系统辨识等领域。但是这种固定步长的LMS算法在收敛速率和稳态误差之间的要求是相互矛盾的,而且该算法在处理相关信号时,其收敛速度显著下降。经典的LMS算法的局限在于其固定步长无法兼顾收敛速度和稳态误差。为了解决这一问题,人们在此基础上提出了各种各样的变步长LMS滤波算法。其核心思想都是用变步长代替固定步长,使算法在大的误差范围内具有快速的收敛性,在小的误差范围内具有较小的失调量。文献[2]提出了变步长参数正比于误差的算法,其性能有所提升,但并不理想。文献[3]给出了一种称为S函数的变步长LMS算法(SVLMS),该算法的步长调整策略有一定的先进性,但该算法在误差接近零时步长变化剧烈,可能导致稳态误差增大。文献[4]在文献[3]的基础上做了进一步的改进,修正了步长在误差接近零时变化剧烈的问题,但算法中的关键参数需要通过实验手工设置,而参数设置不当将严重影响算法的性能。文献[5-6]则分别基于其舌线、双曲正切函数和反正切函数提出了相应的变步长LMS算法,在一定程度上缓解了收敛速度和稳态误差之间的矛盾。文献[7]提出了基于变换域的LMS滤波算法,变换域的LMS算法能够提高运算速度,但收敛速度和稳态误差之间的矛盾并没有解决。可见目前的研究大多集中在变步长策略。变步长策略的实质是找到误差和步长之间的一个对应关系,此对应关系能自动调节函数的收敛速度和稳态误差。本文在文献[4]的基础上提出基于Sigmoid函数的EFLMS(ErrorFeedbackLeastMeanSquare)算法。该算法利用反馈的思想,通过在参数中引入误差因子,解决Sigmoid函数参数设置的问题,使算法在收敛速度和稳态误差等性能指标上均有所改善,同时算法具有广泛的适应性。1相关工作变步长LMS滤波算法的实质是通过误差自适应的调节步长,即在误差较大的收敛阶段用较大的步长以提高收敛的速度,在误差较小的稳态阶段用较小的步长以获得较小的误差。其核心思想是用误差来反馈调节步长,也就是找到误差和调节步长之间的函数关系,使算法在稳态误差和收敛速度上找到一个好的平衡。文献[4]提出了一种基于Sigmoid函数的变步长滤波算法。该算法的Sigmoid函数相对简单,而且在误差接近零处变化不大,具有缓慢变化的特征。其算法设计如下:e(n)=d(n)-XT(n)W(n)(1)(n)=[1-exp(-|e(n)|2)](2)W(n+1)=W(n)+2(n)e(n)X(n)(3)算法的核心是公式(2)。通过式(2)建立起误差e(n)和步长(n)之间的对应关系,当误差大时步长变大,收敛速度提高;当误差逐渐变小时,调整步长变小,算法趋于稳态。式(2)中和是常数,其中>0,其控制函数的形状和收敛速度,参数>0控制函数的取值范围。其中参数是影响算法性能的关键之一,其取值的大小将直接影响算法的收敛速度和稳态误差值。但是文献[4]中并没有就参数的取值提出明确的设置方法,而是采用实验的方法确定参数的最优值。而参数设置不当将严重影响算法的性能,同时也使算法的适用性受到了一定的限制。本文提出的EFLMS算法基于Sigmoid函数,通过在参数中引入误差因子解决了函数参数设置的问题。下面介绍EFLMS算法。2算法描述EFLMS算法基于文献[4]提出的变步长策略,并在其基础上做了进一步的改进,通过在参数中引入误差反馈实现参数自动调整。算法中设计步长和误差的函数如下:(n)=(n)

参考文献

引证文献

问答

我要提问