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

  • 3
  • 0
  • 约4.36千字
  • 约 8页
  • 2017-11-07 发布于福建
  • 举报

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

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

基于误差反馈变步长LMS自适应滤波算法   摘 要: 对变步长LMS滤波算法进行研究,提出一种新的变步长LMS自适应滤波算法。该算法基于Sigmoid函数,通过引入误差因子反馈来调整函数参数,解决了类Sigmoid函数中参数设置的问题,并使算法具有较快的收敛速度和较小的稳态误差。计算机仿真表明,相对于其他变步长算法,该算法在收敛速度和稳态误差方面均表现优异,具有较好适用性。 关键词: LMS算法; 自适应滤波; 收敛速度; 稳态误差 中图分类号: TN713?34 文献标识码: A 文章编号: 1004?373X(2013)11?0057?03 0 引 言 LMS(Least mean square)自适应滤波算法[1]由Widrow和Hoffman提出,该算法计算简单、稳定性好、易于实现,被广泛应用在控制、雷达、系统辨识等领域。但是这种固定步长的LMS算法在收敛速率和稳态误差之间的要求是相互矛盾的,而且该算法在处理相关信号时,其收敛速度显著下降。 经典的LMS算法的局限在于其固定步长无法兼顾收敛速度和稳态误差。为了解决这一问题,人们在此基础上提出了各种各样的变步长LMS滤波算法。其核心思想都是用变步长代替固定步长,使算法在大的误差范围内具有快速的收敛性,在小的误差范围内具有较小的失调量。文献[2]提出了变步长参数正比于误差的算法,其性能有所提升,但并不理想。文献[3]给出了一种称为S函数的变步长LMS算法(SVLMS),该算法的步长调整策略有一定的先进性,但该算法在误差接近零时步长变化剧烈,可能导致稳态误差增大。文献[4]在文献[3]的基础上做了进一步的改进,修正了步长在误差接近零时变化剧烈的问题,但算法中的关键参数需要通过实验手工设置,而参数设置不当将严重影响算法的性能。文献[5?6]则分别基于其舌线、双曲正切函数和反正切函数提出了相应的变步长LMS算法,在一定程度上缓解了收敛速度和稳态误差之间的矛盾。文献[7]提出了基于变换域的LMS滤波算法,变换域的LMS算法能够提高运算速度,但收敛速度和稳态误差之间的矛盾并没有解决。 可见目前的研究大多集中在变步长策略。变步长策略的实质是找到误差和步长之间的一个对应关系,此对应关系能自动调节函数的收敛速度和稳态误差。本文在文献[4]的基础上提出基于Sigmoid函数的EFLMS(Error Feedback Least Mean Square)算法。该算法利用反馈的思想,通过在参数中引入误差因子,解决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)?[1-exp(-α(n)?e(n)2)]] (4) 其中: [α(n)=[e(n)/e(n-1)]2] (5) [β(n)=(1-b0)?β(n-1)+b0?[e(n)/e(n-1)]2-1]

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档