基于双曲正弦函数的改进变步长自适应滤波算法
2018-07-16程建民张润莲秦明峰
程建民,张润莲,2,秦明峰
(1.桂林电子科技大学 广西无线宽带通信与信号处理重点实验室,广西 桂林 541004; 2.广西高校云计算与复杂系统重点实验室,广西 桂林 541004; 3.卫星导航系统与装备技术国家重点实验室,河北 石家庄 50081)
0 引言
在传统的LMS(Least Mean Square)算法[1]中,为提升算法的收敛速度,应该尽可能选择较大的步长值;而为了减小算法的稳态误差,应该尽可能选择较小的步长值。这一矛盾使得传统的LMS算法必须在这二者之间进行折中处理,导致算法性能不理想。
为解决该问题,研究者们在基于步长因子调整原则的基础上,通过改变步长因子的表现形式来改进LMS算法的性能,经典的算法有基于对数函数[2]、基于双曲正弦函数的变步长LMS算法[3]和固定步长算法[4]等,但均存在步长值与稳态误差之间的矛盾。针对该矛盾,文献[4]通过结合Sigmoid函数和正弦函数对步长因子进行调节控制;文献[5]通过引入反馈控制函数建立步长因子与误差信号的非线性函数模型改进LMS算法,兼顾收敛速度和稳态误差性能;文献[6]通过引入双曲正切函数控制步长因子,提高算法的抗噪声能力;文献[7-8]通过权系数的变化来控制步长因子的变化,以保证当系统达到稳态时停止迭代;文献[9]通过调整抽头长度的方式,获取最优维纳解。上述算法在收敛速度和稳态误差方面有所改进,但计算量相对较高。
针对上述问题,本文给出了一种基于双曲正弦函数形式的改进LMS算法,该算法通过引入线性函数与步长函数相乘,改变步长函数特性,实现对步长值的自适应控制,提升收敛速度,降低算法复杂度,提高抗噪能力。
1 相关算法及分析
1.1 LMS算法
LMS算法是线性自适应滤波器算法,是一种以最小均方误差准则(Minimum Mean Square Error,MMSE)为设计准则的瞬时值估计梯度矢量的方法,使滤波器的输出信号与期望响应之间的均方误差达到最小。自适应滤波器的滤波原理如图1所示。
图1 自适应陷波器基本原理
图1中,X(n)、v(n)、d(n)、y(n)、e(n)分别为实际输入信号、噪声信号、期望信号、输出信号及误差信号。LMS算法步骤为:
① 权值系数初始化:W(0)=0;
② 滤波器的输出:y(n)=WT(n)×X(n);
③ 滤波器n时刻的误差:e(n)=d(n)-y(n);
④ 抽头权向量:W(n+1)=W(n)+μ×e(n)×X(n);
⑤ 重复步骤②~④,直到W(n+1)的值趋于稳定。
其中步长因子u对LMS算法的性能起着决定性的作用,其收敛的条件是:01.2 常用的LMS算法
为了使LMS算法的收敛速度、稳态误差和抗噪声能力均能取得较好的性能表现,下面给出几种常用的LMS算法,如基于对数函数、基于双曲正弦函数的变步长LMS算法和固定步长算法,各算法的步长因子和误差信号关系曲线如图2所示。
图2 e(n)和u(n)关系曲线
1.2.1基于对数函数的变步长LMS算法
文献[2]在对数函数y=loga(x)的基础上对其进行变化调整,建立了步长因子u(n)与误差信号e(n)之间的关系表达式:
μ(n)=a×lg[b×|e(n)c|]。
(1)
由图2可知,e(n)为时0,u(n)不为0,存在误差;而且当e(n)趋近于0时,函数底部变化太快,这会导致步长因子错过最佳值;同时,该算法存在指数运算,计算复杂度较高。
1.2.2基于双曲正弦函数的变步长LMS算法
文献[3]在双曲正弦函数y=sinh(x)=(ex-e-x)/2的基础上,其进行变换调整,建立了步长因子u(n)与误差信号e(n)之间的关系表达式:
μ(n)=a×|sinh[b×e(n)c]|。
(2)
由图2可知,当e(n)较大时,u(n)变化较快;当e(n)趋近于0时,函数底部变化太缓慢,即误差信号不为0时u(n)已经为0,造成了较大的稳态误差;同时该算法存在指数运算,计算复杂度较高。
1.2.3固定步长LMS算法
固定步长LMS算法,其步长值在算法迭代过程中为一个固定值,据文献[4]可知,一般取u=0.01;由图2可知,无论当前系统的误差值如何变化,步长值u一直维持不变,即固定步长。
2 基于双曲正弦函数的新变步长LMS算法
文献[7]中提出了步长因子u调整原则:在自适应参数发生变化时或者算法的起步收敛阶段,应该使步长值u较大,使得算法具有较快的收敛速度;而在算法达到收敛后,此时系统的权值矢量已接近最优值,步长值u应该维持很小的值,以达到很小的稳态误差。在满足步长因子调整原则的基础上,LMS算法收敛速度越快,效率越高;收敛深度越深,稳态误差越小。因此,收敛速度和稳态误差是改进LMS算法的主要方向,也是判定算法性能的重要指标。
基于步长因子的调整原则和算法性能需求,通过图2分析可知,基于双曲正弦函数形式控制的步长因子曲线相比其他算法更符合步长因子调整原则。由文献[3]可知,基于双曲正弦函数的变步长LMS算法形式简单、计算量小,当u(n)与e(n)满足一定函数关系时,算法的收敛速度和稳态误差都能取得较好的表现。因此,本文采用双曲正弦函数控制步长因子,并对其过早达到平稳状态(即误差信号e(n)不为0时,u(n)已经无限接近于0)这一缺点进行改进。
针对文献[3]中算法存在的问题,本文改进思路如下:将步长值与迭代过程中的某种状态变量相关联,利用该状态变量的动态变化来调整步长值的变化。其中,状态变量可以是瞬时误差、瞬时误差的平方、相邻2次迭代的瞬时误差的相关函数[10]、误差与输入矢量的相关性[11]等。该状态变量在开始收敛时较大,而在收敛后较小,因此满足动态控制步长值的要求。
由于瞬时误差e(n)相比其平方和其相邻2次相关函数具有获取容易、结构简单、计算量小等优势。因此,本文选用瞬时误差信号e(n)作为状态变量并与步长值相关联,从而实现对步长值的动态调整。
根据函数f(x)=1+|x|性质可知,该函数关于y轴对称,最小值为1。若将上述瞬时误差作为函数f(x)=1+|x|的自变量,可得函数f[e(n)]=1+|e(n)+b|,其中,b用来调节函数曲线底部浮动幅度。将式(2)与该函数相乘,则变步长函数的曲线底部值增加,可以达到改变函数曲线底部特性的目的,防止其过早达到稳态。
此外,针对式(2),文献[3]中的实验测试表明,在指数c=1时,算法复杂度最低。因此,本文选取c=1,这使得函数f[e(n)]=1+|e(n)+b|与式(2)的乘积,去掉了指数运算,从而降低算法复杂度。改进的变步长函数表达式具体如下:
μ(n)=a×|sinh[e(n)]|×[1+|e(n)+b|],
(3)
式中,参数a用来调节曲线的幅值。改进的变步长LMS算法表达式为:
3 算法实现与仿真测试
3.1 实验仿真环境
为验证本文改进算法性能,使用Matlab2014仿真软件,并采用文献[12]中所列的实验条件进行仿真实验,测试算法的收敛速度、均方误差、抗噪能力以及计算复杂度,具体条件如下:
① 二阶自适应滤波器系统;
② 输入信号X(n)是零均值、方差为1的高斯白噪声;
③ 高斯白噪声的方差为0.04、均值为0,且与输入信号无关;
④ 实验采样点数N=500,未知系统的FIR系数为W=[0.8,0.5]T。
为减少实验误差,实验将取200次仿真实验数据的平均值,绘制其收敛曲线。
3.2 参数的选取
改进的变步长函数表达式(3)中的参数a可以调节函数曲线幅值的大小,若a值过小,算法在还未达到最小稳态误差时,步长值已为零,将导致算法收敛速度过慢;若a值过大,算法曲线底部变化较快,会导致错过最佳步长值。参数b调节函数曲线底部浮动幅度,若b值过大,可能导致函数曲线难以收敛,误差较大;若b值过小,此时并不能对其过早达到稳态的这一不足进行优化。
根据文献[13-14]及经验认知,a和b的最佳取值范围均为(0,1]。在实验测试中,对a、b分别从0.1开始,以0.1步长增长组合测试算法的步长因子和误差信号关系曲线,测试结果显示,在a逼近0.1时,初始步长值较小,容易错过最佳步长值;在a逼近1时,初始步长值较大,计算复杂度高。故令a=0.5,再测试b分别取不同值时的关系曲线,其显示b太小时函数曲线底部变化太快,b太大则会产生突变,结果如图3所示。
图3 参数a与b组合取值的关系曲线
基于上述实验对比,本文算法参数取值为a=0.5,b=0.5。
3.3 实验结果与分析
基于同样的实验条件,对比测试了本文改进算法与基于对数函数算法、基于双曲正弦函数和固定步长因子算法的收敛速度和抗噪能力。基于对数函数算法中,取a=1 000、b=0.02、c=2;基于双曲正弦函数中,a=0.006、b=5、c=1;固定步长因子算法中其步长因子取0.01。
3.3.1收敛速度测试实验
文献[15]表明,通过均方误差和迭代次数的关系曲线可以较好地反映算法的收敛速度,算法最先达到稳态,且所需迭代次数最少,则其收敛速度最佳。基于上述选取的参数,各算法的测试结果如图4所示。
图4 4种算法收敛速度对比
图4结果表明,固定步长算法由于其步长值固化,收敛速度最慢;基于对数函数算法,由于其对数函数性质,步长函数的变化太快,收敛较慢;基于双曲正弦函数算法由于其存在指数运算,收敛速度较快。由式(3)可知,本文算法通过改变基于双曲正弦函数算法的步长函数性质达到改进目的,其步长值大于双曲正弦函数算法步长值,其收敛速度更快。
3.3.2抗噪能力测试实验
由文献[16]可知,均方误差能够评判算法的抗噪能力,在算法收敛的前提下,均方误差越小,算法抗噪能力越好。基于上述实验条件,在自适应滤波器的输入信号中加入高斯白噪声,使信号信噪比[17]SNR分别为5 dB和15 dB,将各算法500次迭代后产生的均方误差值求其均值,测试结果如图5所示。
图5 4种LMS算法抗噪能力对比
图5结果表明,信噪比越高,各算法抗噪能力越强。在SNR=5时,信噪比较低,各算法对噪声均较为敏感,固定步长算法由于步长值固化,收敛速度慢,抗噪性能最差;基于双曲正弦函数和对数函数算法的收敛速度均优于固定步长算法,达到稳态后,均方误差均值相近,其抗噪能力均优于固定步长算法。在SNR=15时,信噪比较高,各算法的均方误差均值明显下降,符合通信理论基本原理。文献[18-19]中指出,误差信号中的噪声自相关性一般较强,互相关性较差。本文算法利用噪声较差的互相关性,使用步长函数将其去除,降低噪声对步长的影响,使得本文算法在两种信噪比下的均方误差均值都最小,具有较好的抗噪能力。
4 结束语
本文介绍了几种常用的变步长LMS自适应滤波算法,并针对基于双曲正弦函数LMS自适应滤波算法过早达到平稳状态及计算开销[20]问题,给出了改进方法。该方法基于步长因子与瞬时误差信号建立双曲正弦函数关系,通过改变函数性质,使算法性能得以改善。仿真测试结果表明,改进方法具有较好的收敛速度和抗噪声能力。在实际工程应用中,可将该算法应用于自适应滤波器的设计。