APP下载

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

2021-04-19张继荣

西安邮电大学学报 2021年1期
关键词:时变步长稳态

张继荣,张 天

(西安邮电大学 通信与信息工程学院,陕西 西安 710121)

最小均方(Least Mean Square,LMS)算法基于最速下降算法的理念,以瞬时误差的平方代替了均方误差,通过最小均方算法可以寻找到滤波器权向量最优解,可以使滤波器的输出值与输入值的差值接近于0,因此,LMS算法常常被应用在信号处理和自适应信号研究等领域[1]。其还可以被应用在系统辨识和建模、自适应信道均衡、回波消除、线性预测编码以及自适应波束形成等领域。LMS算法具有复杂度低、原理简单、参数少和跟踪性能好等优点,成为一种应用范围较广的自适应滤波算法[2]。

步长参数对于LMS算法的收敛速度和稳态误差都有着直接的影响[3-5]。经典LMS算法采用固定的步长参数,不能满足不同迭代时期对于收敛速度和稳态误差的需求,精度以及收敛速度较低,无法满足实际应用领域的要求。因此,研究者提出了基于双曲正弦函数[6]、对数函数[7]、正态分布曲线[8]的变步长LMS算法。但是这些算法初始步长值都不够大,导致相较于经典LMS算法,收敛速度并没有显著提高,稳态误差没有显著降低。

具体而言,在误差逐渐接近于0的过程中,文献[6]中的步长参数模型底部变化太缓慢,在误差信号还没有到0时,步长值已经为0,会造成较大的稳态误差[9]。文献[8]相较于文献[7]的初始步长值有所增长,但是在误差逐渐接近于0的过程中,两种算法中的步长参数模型底部均变化太快,无法找到最佳步长值,从而无法通过对最优步长值进行计算得到最优权向量[10]。

针对上述问题,为了使得步长参数模型的初始步长取值较大,在误差趋于0时步长参数值较小且变化缓慢,拟设计一种新的变步长LMS算法,所提算法在文献[7]的基础上对步长参数模型加以改进,建立一种新的步长参数与误差的非线性关系模型。相较于对比文献中的算法,以期使所提算法更加全面地满足步长调整标准中的要求,进而使得所提算法的收敛速度更快、稳态误差更小。

1 LMS自适应滤波算法

1.1 LMS自适应滤波算法的原理

将LMS算法应用在滤波器上的结构中,其包含两个主要的部分,第一个部分是LMS算法的部分,另一个部分是常用的滤波器结构即横向有限冲击响应(Finite Impulse Response,FIR)结构,假设n时刻的输入信号向量表达式为

X(n)=[x(n),x(n-1),…,x(n-M+1)]

(1)

其中,M表示滤波器的阶数,是一个固定值,其根据实际需求而定。

滤波器的权向量的表达式为

W(n)=[w0(n),…,wi(n),wM-1(n)]T

其中,i是滤波器权向量的下标,既表示此时的wi(n)为第几个滤波器权向量,其取值范围为0至M-1,与式(1)中的分量一一对应,如w0(n)表示的是x(n)所对应的权向量。实际输出信号的表达式为

n时刻期望信号与算法实际输出信号之间的差值表示为

e(n)=d(n)-XT(n)W(n)

其中,d(n)为期望信号,误差信号e(n)进入LMS算法的函数模型中,通过该函数模型控制着LMS算法的步长参数,随着每一次迭代权系数向量W(n)发生改变,最终W(n)趋近于其最优解,从而使实际输出信号y(n)与期望信号d(n)的差值接近于0。

LMS自适应滤波器原理如图1所示,其中,x(n)、x(n-1)、…、x(n-M+1)为输入信号,Z-1表示输入之间的关系,W0(n)、W1(n)、…、WM-1(n)为与输入信号对应的权系数向量,∑为求和符号。

图1 LMS自适应滤波器原理

固定步长LMS算法的具体步骤如下。

步骤1初始化参数。将自适应滤波器权系数的初始值W(0)设置为0,将自适应滤波器的阶数设置为M,选择合适的变化的步长值μ,为了使算法收敛,步长μ的取值应该大于0且小于1/λmax[11],λmax表示输入信号X(n)=[x(n),x(n-1),…,x(n-M+1)]T的自相关矩阵的最大特征值。

步骤2计算滤波器的实际输出信号为

y(n)=WT(n)X(n)

步骤3计算自适应滤波器的误差为

e(n)=d(n)-y(n)=d(n)-WT(n)X(n)

步骤4更新滤波器权系数的值为

W(n+1)=W(n)+μX(n)e(n)

重复上述步骤2-步骤4,直到滤波器权系数逼近最佳滤波为止。

算法中的步长参数μ对于算法的收敛速度、时变系统的跟踪速度和稳态误差这些特征起到关键的影响作用[12],较小的步长参数值μ会获得较小的稳态误差从而提高算法的精度,同时也会获得较小的收敛速度,使算法收敛的很慢,对于时变系统来说较小的步长参数μ也会导致跟踪速度的减小。而较大的步长参数μ会带来较大的收敛速度,使得算法收敛的很快,同时对于时变系统来说,会提高其跟踪速度,但是会带来较大的稳态误差,降低算法的精度[13-15]。因此,需要根据实际应用场景,选取合适的步长参数值。

1.2 现有变步长LMS算法

为了兼顾算法的精度和收敛速度,需要根据算法所处的迭代时期的状态动态地调节步长参数μ的取值[15]。在算法初始阶段误差较大时或者发生时变误差突然增大时,自适应滤波器权系数与最优权系数相差较远,此时首要任务应该是先提升收敛速度,因此,应该在初始阶段选取较大的步长。随着算法进入到稳态阶段,此时的首要任务是提升算法的精度且收敛速度的要求并不紧迫,应该选取较小且变化较慢的步长值,使稳态误差降低以确保稳态误差在很小的范围内波动。步长调整的原则为在误差值较大时,步长值应该尽可能的大,并且步长值随着误差值的减小而减小,当误差值接近于零时,步长值应变化缓慢。目前较为常用的变步长LMS自适应滤波算法有以下几种。

1)基于对数函数的变步长LMS自适应滤波算法。根据上述动态选择步长参数值的标准,文献[7]提出了一种形式较为简单、计算复杂度低的基于对数函数的变步长LMS算法,其将对数函数进行适当的改变作为步长参数模型决定步长参数值μ的变化,使得步长参数μ的值随着误差e(n)的改变而发生动态的改变,步长调整公式为

μ(n)=σlog[ρ|e(n)|v]

(2)

其中:参数σ的作用是控制步长参数模型的取值范围;参数ρ的作用是控制步长参数模型的形状;参数ν的作用是控制步长参数模型邻近误差为0的区域的变化速率。经过试验分析,σ取值为0.02,ρ取值为1 000,ν取值为2时算法的效果最好[7]。

2)基于正态分布函数的变步长LMS自适应滤波算法。文献[8]是在基于sigmoid函数的变步长LMS算法的基础上提出的,其步长参数调整公式为

μ(n)=c{1-exp[-a|e(n)|b]}

(3)

其中:参数a控制步长参数模型收敛至其最大取值的速度;参数b控制步长参数模型底部的形状,也就是进入稳态时期的步长参数模型的变化趋势;参数c控制步长参数模型的最大取值。经过实验分析,a取值为5,b取值为1,c取值为0.12时,文献[8]中的算法效果最好[8]。

相较于式(2),其步长参数的初始值得到了一定程度的提高,但当误差趋于0时,其对于步长参数变化速度的调整效果并不明显,仍然会造成较大的稳态误差。

文献[8]中的算法在迭代的初始阶段对步长参数的取值的确做出了改进,使步长参数的取值明显比文献[7]中的大,但是在算法进入稳态阶段后,步长参数的取值并没有一个很明显的减小趋势且取值较大变化较快,这可能会导致算法具有较大的震荡,从而影响算法的精度值。具体步长参数模型对比情况图如图2所示。

图2 文献[7-8]的步长参数模型对比情况

由图2可以看出,文献[7]中的步长参数模型在误差接近于0时,相较于文献[8]其值明显变小且变化速率明显变慢了,但是其初始步长参数值太小且在误差还未到0时,其步长参数的值已经为0,这可能会导致自适应滤波器找不到最优权系数。

2 新的变步长LMS自适应滤波算法

为了使LMS自适应滤波算法在收敛速度、稳态误差和系统跟踪性能这几个重要的算法特征上得到更好的效果,在设计步长参数模型时,要全面地满足其变化的规律,而不是像文献[7-8]只满足变化规律中的一点。基于此,在文献[7]的基础上设计了一种新的步长参数变化模型,新的步长参数与误差之间的函数表达式为

(4)

其中:参数γ的取值对于步长参数的取值范围有明显的影响;参数τ对步长参数取值的范围和形状也就是变化趋势都有一定的影响,进而有可能降低算法的收敛速度以及精度。

改进的步长参数模型与文献[7-8]中的步长参数模型对比图如图3所示。由图3可以看出,改进后的步长参数模型更加全面地满足了步长调整的标准,在算法初始阶段或发生时变误差值较大时具有较大的步长值,在算法进入稳态阶段能保证步长值较小且变化缓慢,在误差值接近于0时步长值也接近于0。相较于文献[7-8]中的初始步长值更大,并克服了文献[8]在进入稳态阶段步长值仍然较大且变化趋势较快的缺陷,同时克服了文献[7]误差还未到0时步长参值已为0的缺陷。

图3 文献[7-8]及改进算法步长参数模型对比情况

改进后的LMS自适应滤波算法迭代步骤如下。

步骤1初始化参数。将自适应滤波器权系数的初始值W(0)设置为0,将自适应滤波器的阶数设置为M,选择合适的变化的步长值μ,为了使算法收敛,步长μ的取值应该大于0且小于1/λmax,λmax表示输入信号X(n)=[x(n),x(n-1),…,x(n-M+1)]T的自相关矩阵的最大特征值。

步骤2计算滤波器的实际输出信号。其计算公式为

y(n)=WT(n)×X(n)

步骤3计算自适应滤波器的误差。其计算公式为

e(n)=d(n)-y(n)=d(n)-WT(n)×X(n)

步骤4更新步长参数。步长参数更新公式为

步骤5更新滤波器权系数的值。其计算公式为

W(n+1)=W(n)+μ(n)e(n)X(n)

重复步骤2-步骤5,直到滤波器权系数逼近最佳滤波为止,其中,误差值与0的差值越小表示滤波器权系数越逼近于最佳滤波,通常设置一个与误差对应的阈值确定何时误差与0接近。

3 仿真结果分析

3.1 改进算法的参数分析

在式(4)中有两个重要的参数γ和τ。通过γ及τ的不同取值所得到的步长参数模型分析这两个参数对于步长参数取值变化的影响。

当误差的值增加到1.2时,8组分析数据所对应的步长值如表1所示。

表1 误差为1.2时γ、τ不同取值情况下的步长值

τ取值为1,即观察步长值与γ的关系时,γ分别取值为1.1、0.9、0.8、0.7时,式(4)步长参数与误差之间的模型图如图4所示。

图4 参数γ变化时的步长函数模型图

通过图4可以看出,当τ取值为1时,4种不同取值的γ所得到的步长参数模型都满足步长参数调整的标准,且最大步长都没有超出步长的上限取值1。随着γ的值增大,步长参数的取值范围明显得到了增强,在γ取值为1.1、0.9、0.8时步长参数模型的形状基本上没有太大的改变,算法在进入稳态阶段后期步长的取值和变化的缓慢程度相差不多,此时可以认为γ主要影响的是步长参数模型的取值范围,因此γ取值越大模型的性能越好。但是当γ取值为1.1时,其步长随着误差变大增长的趋势过强,如表1所示,在误差取值大于1时,其步长参数模型的最大值突破步长上限的取值1,γ的取值应该小于1.1。同时步长初始值也不宜过小,当γ取值为0.7时,其初始步长值小于文献[8-9]在相同误差条件下的初始步长值,因此,γ取0.9时最合适。

当γ取值为1,即观察步长值与τ的关系时,τ分别取值为0.9、0.8、0.7、0.4时,式(4)步长参数与误差之间的模型图如图5所示。通过图5可以看出,当γ取值为1时,随着τ取值的增加,步长参数模型中的取值范围有所增加,但是在误差逐渐减小为0的过程中,误差值则是增大且变化也是增快的,可见τ不仅对步长参数模型取值范围有影响,也同样影响着步长参数模型的形状。当τ取0.4时,步长参数模型在误差较大时步长取值很小且在误差为0.2时,其步长值已经接近于0。当τ取0.9和0.8时,在误差取值大于1时,其步长参数模型的最大值突破步长上限的取值1,如表1所示,τ取0.7时最合适,既可以在误差较大时取得较合适的大步长,也可以在误差趋近于0时步长取值较小且缓慢减小。

图5 参数τ对于步长参数模型的影响

结合图4和图5的分析可得,γ取0.9、τ取0.7时改进的变步长LMS自适应滤波器算法的步长参数模型最好。

3.2 仿真实验条件

仿真实验条件设置是在Matlab2016a仿真环境下,设置滤波器的阶数为2,横向FIR滤波器的初始系数为W=[0.8 0.5],标记第500个采样点为系统发生时变的时刻,并且在时变发生时系统的权系数取值为W=[0.4 0.2]。输入均值为0、方差为1的高斯白噪声,噪声v(n)是与输入信号x(n)不相关的高斯白噪声。步长参数模型分别采用式(2)-式(4),并分别进行200次独立的仿真实验,每次实验的采样点为1 000,求其均方误差值。其中式(2)中σ取值为0.02,ρ取值为1 000,ν取值为2;式(3)中a取值为5,b取值为1,c取值为0.12;式(4)中γ取0.9,τ取0.7。

3.3 仿真结果分析

所提算法与文献[7-8]中的算法在系统未发生时变时的仿真结果如图6所示,相同的实验条件下,文献[7]中的算法在执行到第250步时得到了收敛,文献[8]中算法在第110步得到了收敛,而改进后的算法在第50步就已经得到了收敛,通过收敛所需的迭代次数可以明显得出所提算法比文献[7-8]中的算法的收敛速度要快得多,并且所提算法的收敛值为-22 dB,文献[7]中的算法的收敛值为-17 dB,文献[8]中的算法的收敛值为-19 dB,通过收敛值可以看出改进后的算法在精度这一特征值上得到了显著的提升效果,分别提高了3 dB和5 dB。

图6 改进算法与文献[7-8]的收敛速度对比

所提算法与文献[7-8]中的算法在跟踪性能方面的对比如图7所示,相同的实验条件,当算法在第500步发生时变时,所提算法在第550步时就可以准确地跟踪时变后的未知系统,而文献[7]中的算法在时变后的200步才准确地跟踪到了时变后的未知系统,文献[8]则是在时变后的100步跟踪到了时变后的未知系统,显然所提算法的跟踪性能得到了明显的提高,且其收敛精度也比文献[7]中的算法提升了4 dB左右,比文献[8]中的算法提升了2 dB左右。

图7 改进的算法与文献[7-8]的跟踪性能对比

综上所述,通过所提算法与文献[7-8]中的算法在同样实验条件下得到的仿真图对比得出,所提算法在衡量LMS自适应滤波算法的3个特征值收敛速度、收敛精度和跟踪性能等方面都得到了更好的效果。

所提出的步长参数模型不仅在误差较大时取得较大的值,而且在误差趋近于0时步长参数值较小且变化缓慢,因此,所提算法的仿真结果比其他两种算法收敛速度更快,收敛精度更高。这样既可以在误差较大时提高收敛速度,又可以在误差较小时降低稳态误差,避免产生不必要的震荡,影响算法的精度。

4 结语

提出了一种新的变步长LMS算法,相比现有变步长LMS自适应滤波算法在步长参数的选择上更好地权衡了收敛速度和稳态误差这一对矛盾,更全面地满足了步长调整的准则。在误差较大时能够取得更大的步长参数值,且在误差趋近于0时能够取得较小且变化缓慢的步长值。通过仿真比较可得,所提算法与已有算法相比在收敛速度、稳态误差和跟踪性能等3个方面都得到了更好、更优的效果。

猜你喜欢

时变步长稳态
直冷双馈风力发电机稳态温度场分析
隔舌安放角对旋流泵内非稳态流动特性的影响
可变速抽水蓄能机组稳态运行特性研究
联于海岛弱交流系统的直流输电系统稳态优化控制策略
一种面向车内噪声控制的改进变步长LMS算法
基于变步长梯形求积法的Volterra积分方程数值解
|直接引语和间接引语|
董事长发开脱声明,无助消除步长困境
起底步长制药
基于马尔可夫时变模型的流量数据挖掘