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

时间:2013-07-29

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

  0 引言

  LMS(Least mean square)自适应滤波算法由Wid-row 和Hoffman 提出,该算法计算简单、稳定性好、易于实现,被广泛应用在控制、雷达、系统辨识等领域。但是这种固定步长的LMS算法在收敛速率和稳态误差之间的要求是相互矛盾的,而且该算法在处理相关信号时,其收敛速度显着下降。

  经典的LMS算法的局限在于其固定步长无法兼顾收敛速度和稳态误差。为了解决这一问题,人们在此基础上提出了各种各样的变步长LMS滤波算法。其思想都是用变步长代替固定步长,使算法在大的误差范围内具有快速的收敛性,在小的误差范围内具有较小的失调量。YASUKAWA H,SHIMADA S,FURUKRAWA I,提出了变步长参数正比于误差的算法,其性能有所提升,但并不理想。覃景繁,欧阳景正。一种新的变步长LMS自适应滤波算法[J].给出了一种称为S 函数的变步长LMS算法(SVLMS),该算法的步长调整策略有一定的先进性,但该算法在误差接近零时步长变化剧烈,可能导致稳态误差增大。高鹰,谢胜利。一种变步长LMS自适应滤波算法及分析[J].文章中在覃景繁,欧阳景正。一种新的变步长LMS自适应滤波算法[J].的基础上做了进一步的改进,修正了步长在误差接近零时变化剧烈的问题,但算法中的关键参数需要通过实验手工设置,而参数设置不当将严重影响算法的性能。则分别基于其舌线、双曲正切函数和反正切函数提出了相应的变步长LMS 算法,在一定程度上缓解了收敛速度和稳态误差之间的矛盾。提出了基于变换域的LMS滤波算法,变换域的LMS算法能够提高运算速度,但收敛速度和稳态误差之间的矛盾并没有解决。

  可见目前的研究大多集中在变步长策略。变步长策略的实质是找到误差和步长之间的一个对应关系,此对应关系能自动调节函数的收敛速度和稳态误差。本文在高鹰,谢胜利。一种变步长LMS自适应滤波算法及分析[J].文章中的基础上提出基于Sigmoid 函数的EFLMS(Error Feedback Least Mean Square)算法。该算法利用反馈的思想,通过在参数中引入误差因子,解决Sigmoid函数参数设置的问题,使算法在收敛速度和稳态误差等性能指标上均有所改善,同时算法具有广泛的适应性。

  1 相关工作

  变步长LMS滤波算法的实质是通过误差自适应的调节步长,即在误差较大的收敛阶段用较大的步长以提高收敛的速度,在误差较小的稳态阶段用较小的步长以获得较小的误差。其思想是用误差来反馈调节步长,也就是找到误差和调节步长之间的函数关系,使算法在稳态误差和收敛速度上找到一个好的平衡。

  高鹰,谢胜利。一种变步长LMS自适应滤波算法及分析[J].文章中提出了一种基于Sigmoid函数的变步长滤波算法。该算法的Sigmoid函数相对简单,而且在误差接近零处变化不大,具有缓慢变化的特征。其算法设计如下:

  

  算法的是公式(2)。通过式(2)建立起误差e(n) 和步长μ(n) 之间的对应关系,当误差大时步长变大,收敛速度提高;当误差逐渐变小时,调整步长变小,算法趋于稳态。式(2)中α 和β 是常数,其中α > 0 ,其控制函数的形状和收敛速度,参数β > 0 控制函数的取值范围。其中参数α 是影响算法性能的关键之一,其取值的大小将直接影响算法的收敛速度和稳态误差值。

  但是高鹰,谢胜利。一种变步长LMS自适应滤波算法及分析[J].文章中中并没有就参数的取值提出明确的设置方法,而是采用实验的方法确定参数的值。而参数设置不当将严重影响算法的性能,同时也使算法的适用性受到了一定的限制。

  本文提出的EFLMS算法基于Sigmoid函数,通过在参数中引入误差因子解决了函数参数设置的问题。下面介绍EFLMS算法。

  2 算法描述

  EFLMS 算法基于高鹰,谢胜利。一种变步长LMS自适应滤波算法及分析[J].文章中提出的变步长策略,并在其基础上做了进一步的改进,通过在参数中引入误差反馈实现参数自动调整。

  算法中设计步长和误差的函数如下:

  

  式中:参数α(n) 控制算法步长变化的形状和速度,而β(n) 控制函数的取值范围。式中的常数b0 用于调整取值范围以满足算法收敛。

  两个参数α(n) 和β(n) 都是误差比值e(n) e(n - 1) 的函数。当e(n) e(n - 1) 的比值较大时,说明误差变化较大,算法还处在收敛阶段,那么这时相应的参数α(n) 对应较大的值,这时对应得到的步长μ(n) 较大,算法的收敛速度加快。随着误差e(n) e(n - 1) 比值的逐渐变小,这时α(n) 变小使步长μ(n) 变小,算法趋于稳态。在参数β(n) 中,当e(n) e(n - 1) 比值较大时,说明误差变化较大,算法处在收敛阶段,这时β(n) 较大,相应此时步长μ(n)变大,算法收敛加快;当e(n) e(n - 1) 比值逐渐变小,这时β(n) 变小使步长μ(n) 变小,算法趋于稳态。当极e(n) e(n - 1)~1 ,此时β(n) = (1 - b0 ) β(n - 1) ,保证了系统不会出现不稳定的情况。

  下面在Matlab仿真平台上对EFLMS算法进行仿真实现,验证算法的性能。

  3 仿真分析

  自适应滤波算法的性能指标主要有收敛速度和稳态误差,为此对算法的步长和误差进行仿真实验。这里主要对高鹰,谢胜利。一种变步长LMS自适应滤波算法及分析[J].文章中中的自适应算法和EFLMS 算法进行仿真,以验证EFLMS算法的性能。

  仿真设置如下:自适应滤波器阶数为20,输入信号为单频正弦波,参考的输入信号为零均值、方差为1的高斯白噪声,采样点数为900.其中高鹰,谢胜利。一种变步长LMS自适应滤波算法及分析[J].文章中中的参数α = 0.5 ,β = 0.01 .而EFLMS中的参数设置如下:式(5)中的k = 2 ,式(6)中的b0 = 0.02 .

  3.1 步长变化仿真

  算法的调整步长是误差的函数,步长的变化反映了算法的运行情况。算法步长应该是在收敛阶段较大,使系统具有较快的收敛速度;达到稳态阶段较小,以使系统获得较小的误差。所以步长的变化规律在一定程度上反映了算法的合理性。

  的算法中步长随迭代次数的变化曲线如图1所示,是EFLMS算法的步长变化曲线如图2所示。

  图中横坐标是迭代次数,纵坐标是算法的调整步长。

  

  

  可以看到,两种算法的步长都随着迭代次数的增大而减小,达到一定的迭代次数之后趋于稳定。图1中,其步长在迭代160次左右时趋于稳定,而图2中步长在迭代60次左右就趋于稳定。可见EFLMS算法的步长调整策略更加合理,其收敛速度显着优于高鹰,谢胜利。一种变步长LMS自适应滤波算法及分析[J].文章中的算法。

  这是因为EFLMS 算法自适应特性更强,其对参数设置的依赖程度更小,其步长调整更合理。

  3.2 误差仿真

  误差反映了算法的输出信号和原信号之间的差别,达到误差所用的迭代次数越少,说明算法的收敛速度越快,误差值越小说明算法的越高,滤波效果越好。所以误差值的在一定程度上反映了算法的性能。

  图3 和图4 分别是EFLMS 算法的误差变化曲线图。随着迭代次数的增加,两个算法的误差都逐渐变小,小到一定程度之后都趋于稳定,此时系统也趋于稳定。

  

  图3 中所示算法的误差在迭代160 次左右达到稳定,图4中的算法在迭代60次左右误差达到稳定,显然图4的算法达到稳定误差所需的次数更少,收敛速度更快,而且在系统稳定之后的误差也更小,对信号的滤波效果更好。这是因为EFLMS算法能根据误差的变化自适应调整步长的能力更强,在收敛阶段误差较大时其步长较大,所以其收敛速度很快;而在误差变小之后调整步长更小,使系统获得更高的。

  可见,EFLMS算法的性能优异,无论在收敛速度还是在稳态误差上均优于高鹰,谢胜利。一种变步长LMS自适应滤波算法及分析[J].文章中的算法。

  

  4 结语

  本文提出一种基于Sigmoid函数的变步长LMS自适应滤波算法--EFLMS算法。该算法通过引入误差因子来调节参数,解决了Sigmoid函数参数需要手工设置的问题,使算法的步长调整策略更合理。在仿真平台上对算法进行验证,仿真结果表明,相对高鹰,谢胜利。一种变步长LMS自适应滤波算法及分析[J].文章中滤波算法,EFLMS算法在收敛速度更快,更高,验证了算法的可行性和优越性。

上一篇:北斗卫星导航系统服务性能指标分析
下一篇:基于 C++ builder 的高采样率动态信号实时绘图研究

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料