基于t分布变换的新变步长LMS算法
2021-07-06伍彩云李汶东
伍彩云,李汶东
(沈阳理工大学 装备工程学院,沈阳 110159)
自适应滤波器在许多信号处理应用中起着非常重要的作用[1],如回波抵消、线路增强、信道均衡、系统识别和时延估计[2]等。由于横向结构FIR滤波器实施方便,最小均方(Least Mean Squares,简称LMS)算法运算简单,因而基于LMS算法的横向自适应滤波器在信号处理领域获得广泛应用[3]。然而随着实际应用条件的不断变化,LMS算法越来越难以满足实际需求,原因是经典LMS算法自身存在着诸多缺陷,如随着输入自相关矩阵最大特征值与最小特征值之比的增大,算法收敛速度会降低。研究者们提出了一些解决这一问题的方法,其中二维最小均方误差(Two Dimensional Least Mean Square,TDLMS)算法是较流行的一种,其利用正交变换和功率归一化对输入信号进行去相关,改善了输入自相关矩阵的特征值分布,从而提高了收敛速度[4]。经典LMS算法还有一大缺陷,步长一旦选定即不能再改变,步长一旦过大,收敛速度虽会加快,但稳态误差同时也会增大,收敛速度和稳态误差不能同时得到满足[5];所以产生多种改进方法和思路,如步长随误差变化而变化的可变步长类LMS算法。除此之外,还有如文献[6]提到的一种改进的收敛LMS滤波器,其将两个不同步长的基本LMS滤波器并行结合,称为CLMS(Convex Combination of Least Mean Square)算法;该滤波器被认为是收敛速度和稳态误差的最佳组合,其要求滤波器系数从一个LMS滤波器转移到另一个LMS滤波器,但该复合结构的实现成本既包括LMS滤波器单元的成本,也包括系数传递方案的成本。现有的各类改进LMS算法虽然取得了一定成效,但仍难以在不同的应用条件下继续发挥良好的作用,所以针对LMS算法的改进仍是目前的研究热点之一。
在不显著增加计算量及复杂程度的前提条件下,初始收敛速度、系统突变后的跟踪能力及稳态失调是衡量自适应滤波算法优劣的三个最重要的技术指标[7]。考虑到现有的变步长LMS算法依然存在的收敛速度慢、跟踪能力弱、稳定性能不足等实际效果不理想这类问题,有必要研究新的变步长算法,以实现更加理想的实际应用效果。本文对多种变步长算法的基本原理进行分析研究,在此基础上提出基于变换的t分布变步长最小均方(Base On Various T-Distribution Least Mean Square,BVTLMS)算法,进一步优化算法的收敛速度与稳态误差,使得该算法在实际数据条件下具有更好的性能。
1 LMS算法
LMS算法是一种根据期望与输出之间的误差来不断调整权系数矩阵,从而进一步控制均方误差达到最小的自适应控制算法。基于经典固定步长LMS算法的滤波器原理如图1所示,其中s(n)代表干扰信号。
经典的固定步长LMS的递推公式为
W(n)=[b0(n),b1(n)…bM-1(n)]T
(1)
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)
(4)
W(n+1)=W(n)+2μ(n)X(n)e(n)
(5)
(6)
式中:n为系统采样点;X(n)和Y(n)分别代表输入和输出信号;W(n)代表权值系数矩阵;d(n)为期望信号,即最终需要抵消的信号;e(n)代表期望信号与输出信号的误差;式(6)是步长因子μ的收敛条件;λmax为输入信号的自相关矩阵的最大特征值。LMS算法的缺点是步长因子μ(n)固定不变,所以实现对步长的控制是变步长算法研究中的关键问题。
2 变步长算法研究
2.1 变步长算法原理
变步长算法基本原理是指算法在初始收敛阶段设置较大的步长,然后误差e(n)动态调整步长的大小,在误差e(n)接近0处,步长减小到一个较小的值以尽量减小稳态误差[8]。如基于双曲正弦函数[9]、对数函数[10]、指数函数[11]、反正切函数[12]等多种变步长算法,都能做到符合基本原理,但在误差e(n)趋于0时,稳态时的步长依然很大,稳态失调量不能维持在较低的水平;其它变步长算法同样具有类似的问题,导致这些算法在实际更为复杂的应用环境中表现得并不十分理想。
2.2 基于t分布的变步长算法
2.2.1 t分布概率密度函数特征简析
t分布概率密度函数表达式在实数域上为
(7)
式中:k为自由度,且k>0;Gam是伽马(Gamma)函数,即
(8)
当y>0时,Gam(y)>0。由式(7)和式(8)可以得到自由度k=1时的t分布概率密度函数图像,如图2所示。
图2 k=1时t分布概率密度函数图像
图2中t分布概率密度函数的图像先是呈现出关于e(n)=0左右对称的基本特征;当误差e(n)靠近0时,f(n)函数值变化速率越来越快;当误差e(n)远离0时,f(n)函数值变化速率越来越缓慢,具有中间高、两边低的特点。因此,可利用t分布概率密度函数来构造变步长算法中的函数或变量,满足步长先快后慢的特点。
2.2.2 变换后的变步长算法
由于已知伽马函数在y>0时恒为正的特性,所以直接对式(7)取倒数,得到
(9)
为使式(9)在变量e(n)为0时收敛到0,再对其变换,得到
(10)
由于伽马函数涉及到积分运算,导致算法计算量增大,因此利用式(10)以及Gam函数的特性,得到式(11),其中α为与Gam函数相关的参数;β为新的自由度。
(11)
由式(6)的收敛条件可知,步长必须控制在最大值以内,所以对式(11)再次变换,得到函数为
(12)
将式(11)带入到式(12)中,得式(13)。
(13)
(14)
因为函数Q(n)影响变步长因子γ(n),从而影响算法的收敛速度,所以,接下来分别研究Q(n)中的参数α、β和η不同取值时对于Q(n)的影响,即α、β和η对算法的影响。
2.2.3 参数α、β和η对算法的影响
由式(10)和式(11)可知α的表达式为
(15)
参数α随t分布中的自由度k的变化曲线如图3所示。
由图3可以看出,随着自由度k的变化,α的取值范围在2.5~7之间。
图3 α随k的变化曲线
对于式(13),分析当α、β和η中的某两个参数取固定值时,剩余一个变量和误差e(n)对函数Q(n)的影响,得到如图4所示的结果。
图4 三个参数对曲线的影响
如图4a所示,当β=3、η=1、-3 从图4b可以看出,当α=3,η=3和-3 当α=3,β=3和-3 由以上分析可得参数的变化对收敛速度的影响,如表1所示。 表1 参数变化对算法收敛速度的影响 首先,选择固定步长算法和被广泛使用的文献[8]中的SVSLMS算法作为对照组算法,固定步长LMS的取值根据文献[8]选择0.1;SVSLMS算法的最优参数为α=1、β=1.5;BVTLMS算法经综合考虑,选取的最优参数为:α=3,β=2,η=0.0001。 其次,为充分检验BVTLMS算法的性能,再增加两种新型步长算法作为对比。由于式(13)在形式上接近分式函数,所以选用文献[13]中基于分式函数改进的VXLMS算法作为对比。另一方面,由于t分布在自由度接近于无穷时近似于正态分布,所以再选用文献[14]中的基于正态分布函数算法作为对比。文献[13]的最优参数为a=5、b=1、c=0.12,文献[14]的最优参数为α=1、β=0.13、A=0.3。 利用Matlab工具对BVTLMS算法进行仿真。设定采样点数为1000(采样点数即为迭代次数),拟定一种余弦信号作为输入信号,将输入信号与另一正弦信号混合后的信号作为期望信号。传递路径系数拟为[0.5,0.4],在第500个采样点处,传递路径发生突变,系数变为[0.9,0.3]。选取的滤波器阶数为2,仿真次数为100并取平均值。在此条件下,分别得到基于固定步长算法、SVSLMS算法、基于正态分布算法、VXLMS算法和BVTLMS算法的仿真结果,如图5a~图5e所示,据图5分析各种算法的收敛速度、稳态误差和跟踪能力。 图5 各种算法的仿真结果 由图5可以看出,在未知系统未发生突变前,图5e算法在第200次迭代附近收敛到稳态;图5b算法在第400次迭代接近收敛到稳态;而图5a算法、图5c算法及图5d算法未收敛到稳态。从稳态误差角度分析,图5e算法在进入稳态后,基本没有明显的波动;而图5b算法在第400次迭代后稳态失调量较大。从跟踪能力角度分析,当未知系统在第500次迭代时发生突变后,图5e算法继续维持了突变前的优势性能,重新快速收敛后保持了较低的稳态失调量;图5b算法反应也较快,在第700次迭代附近接近于收敛,但稳态失调量相较于图5e算法还是较大;而图5a算法和图5c算法及图5d算法依然难以判断是否收敛到稳态。所以,从仿真结果可以看出,本文提出的BVTLMS算法效果明显好于对照组中的其它算法。 为检验新算法在实际条件下的效果,实际数据采用某型号的发动机2000r/min噪声数据作为输入信号x(n),传递路径在试验过程中不发生空间位置的变化;期望信号d(n)为经过传递路径的输入信号与中途突然加入的复合音频干扰噪声s(n)的混合信号;采样点数为500,采样点数也是迭代次数;传递路径系数经测试可知为[0.556,0.178,0.324,0.897,0.445,0.664],实际信号数据如图6所示。 图6 输入信号、期望信号和干扰噪声信号 图7a~图7c分别是基于正态分布算法、VXLMS算法和BVTLMS算法的实验结果。在收敛速度方面,图7c算法在第180次迭代附近收敛;图7b和图7a算法则未进入到稳态。在稳态误差方面,7c的新算法波动幅度极小。在追踪能力方面,尽管干扰信号在中间第100次迭代附近开始发生显著变化,但图7c算法保持了良好的跟踪控制能力,相比较之下跟踪误差更小。对比结果表明图7c算法更为优异。 图7 三种算法实验结果对比 针对自适应滤波算法进行了研究。为提高LMS算法的性能,分析了多种变步长算法的基本原理,对t分布概率密度函数变换后提出了改进的变步长BVTLMS算法,进一步分析了参数α、β和η对算法的影响,利用仿真验证了改进后的算法具有较高的精度和较快的收敛速度,最后通过实验进一步表明了本文提出的BVTLMS算法性能优于已有的两种新型变步长LMS算法。3 算法的仿真与对比
3.1 新算法与已有算法的仿真性能对比
3.2 使用实际数据检验算法性能
4 结束语