收敛速度可选用大的μ值,这将导致较大的失调量;如果要满足失调量的要求,则收敛速度受到制约。因此,人们研究了采用变步长的方法来克服这一矛盾。自适应过程开始时,取用较大的μ值以保证较快的收敛速度,然后让μ值逐渐减小,以保证收敛后得到较小的失调量。现在已有不同准则来调整步长μ,如归一化LMS算法、时域正交化LMS算法等。
第三,采用变换域分块处理技术。对由滤波器权系数矢量调整的修正项中的乘积用变换域快速算法与分块处理技术可以大大减少计算量,且能改善收敛特性,如频域LMS算法、分块LMS算法等。
16
第三章LMS自适应滤波器的改进形式
文献中已经提出了许多基于LMS算法的改进的自适应算法。这些算法的共同特点是从LMS算法出发,试图改进LMS算法的某些性能,包括LMS算法的收敛特性,减小稳态均方误差,减小计算复杂度。
3.1归一化LMS算法
如果不希望用与估计输入信号矢量有关的相关矩阵来加快LMS算法的收敛速度,那么可用变步长方法来缩短其自适应收敛过程,其中一个主要的方法是归一化LMS(Normalized LMS,缩写为NLMS)算法[6-8],变步长μ(n)的更新公式由式(2-8)写成
w(n?1)?w(n)??(n)e(n)x(n)?w(n)??w(n) (3-1)
式中,?w(n)??(n)e(n)x(n)表示滤波权系数矢量迭代更新的调整量。为了达到快速收敛的目的,必须合适地选择变步长μ(n)的值,一个可能的策略是尽可能多的减小瞬时平方误差,即用瞬时平方误差作为均方误差MSE的简单估计,这也是LMS算法的基本思想[6]。瞬时平方误差可以写成
e2(n)?[d(n)?xT(n)w(n)]2
?d2(n)?wT(n)x(n)xT(n)w(n)?2d(n)wT(n)x(n) (3-2)
如果滤波权系数矢量的变化量w(n)?w(n)??w(n),则对应的平方误差e2(n)可以由上式得到
e2(n)?e2(n)?2?wT(n)x(n)xT(n)w(n)??wT(n)x(n)xT(n)?w(n)?2d(n)?w(n)x(n)? (3-3)
在此情况下,瞬时平方误差的变化量?e2(n)定义为
?e(n)?e2(n)?e2(n)
3 ??2?wT(n)x(n)e(n)??wT(n)x(n)xT(n)?w(n) (3-4)
把?w(n)??(n)e(n)x(n) 的关系代入式(3-4)中,得到
?e2(n)??2?(n)e2(n)xT(n)x(n)??2(n)e2(n)[xT(n)x(n)]2 (3-5)
为了增加收敛速度,合适地选取μ(n)使平方误差最小化,故将式(3-5)对变系数μ(n)求偏导数,并令其等于零,求得
?(n)?
1xT(n)x(n)
(3-6)
这个步长值μ(n)导致?e2(n)出现负的值,这对应于?e2(n)的最小点,相当于平方误差e2(n)等于零。为了控制失调量,考虑到基于瞬时平方误差的导数不等于均方误差MSE
17
求导数值,所以对LMS算法的更新迭代公式作如下修正:
w(n?1)?w(n)?e(n)x(n)T ? ?x (n )x (n)
? (3-7)
式中,μ为控制失调的固定收敛因子,γ参数是为避免xT(n)x(n)过小导致步长值太大而设置的。通常称式(3-7)为归一化LMS算法的迭代公式。
为了保证自适应滤波器的工作稳定,固定收敛因子μ的选取应满足一定的数值范围。现在我们来讨论这个问题。首先考虑到下列关系:
E[xT(n)x(n)]?tr[R] (3-8a)
?e(n)x(n)?E[e(x)x(n)]E? ???TT(3-8b) x(n)x(n)E[x(n)x(n)]???然后对收敛因子的平均值应用更新LMS的方向e(n)x(n)是 ,2tr[R]最后,将归一化LMS算法的更新公式与经典LMS算法更新公式相比较,可以得到收敛因子μ的上界不等式条件,如下:
?1 (3-9) 0??(n)??2tr[R]tr[R]或
0???2
显然, 由式(3-7)与(3-9)可构成归一化LMS算法,其中0???1 ,选择不同的γ值可以得到不同的算法,当??0时,由式(3-7)可以写成
w(n?1)?w(n)?(d(n)?wT(n)x(n))x(n)2x(n) ( 3-10 )
?这种算法是NLMS算法的泛化形式,其中随机梯度估计是除以输入信号矢量元素平方之和。所以步长变化的范围比较大,可由较好的收敛性能。在此情况下,算法的归一化均方误差(NMSE)可由式(3-10)得到
2 ? T ???d(n)?w(n)x(n)????(n)?E?? ???x(n)?????(3-11)
得到最佳滤波权系数:
??R??1P? (3-12) w0式中,
?x(n)xT(n)?R??E??2 ( ? x 3-13a ) (n)???
18
?d(n)x(n)?? E P ? 3-13b ) ? 2 ? (
??x(n)??
所以,自相关矩阵和互相关量都含有归一化因子,在稳定状态x(n)和d(n)时,假定自相关矩
?时,归一化阵R?存在可逆性。同时,我们由式(3-11)可以看出,当且仅当d(n)?xT(n)w0LMS算法的均方误差可等于零。这需要对d(n)用输入信号矢量线性组合进行精确地建模。
?变成合宜的线性权系数矢量。 此时,最佳滤波权矢量w0当γ=1时,NLMS算法更新公式可以写成
w ( n ? 1 ) ? w ( n ) ? ? e ( n ) x ( n ) 1?xT(n)x(n)由此可见NLMS算法的特殊形式:
3-15 ) ? T (w(n?1)?w(n)?[d(n)?w(n)x(n)]x(n)21??x(n) (3-14)
或
x(n)w(n?1)?w(n)?[d(n)?wT(n)x(n)]?12??x(n) ( 3-16 )
这也表明等效步长是输入信号的非线性变量,它使变步长由大逐步变小了,加速了收敛过程。当然,NLMS算法的计算量较之LMS算法稍有些增加。
下面我们介绍两个有趣的改进型LMS算法一为时域正交(Time-Domain Orthogonal)LMS算法,简称为TDO-LMS算法(MLMS),另一位修正LMS算法[6]。它们都属于可变步长的LMS算法,可以缩短自适应收敛过程的时间。 3.1.1 TDO-LMS算法
时域正交算法是基于对平方误差取时间上的平均,即对
2 1 m 2 1 m 2 TE[e(n)]?[d(n)?w(n)x(n)]??e(n)?m?1?m?1n?0n?0(3-17)
取最小值。按上式对权系数矢量取偏导数,并令其等于零,得到时域正交准则下序列x(n)对d(n)进行线性估计的最佳权系数矢量w0,即
1mT(nx (nx( ? [d ) ? w 0 ( n ) )] n ) ? 0
m?1n?0 ( 3-18a )
或 1mTn ) ? ? [ w 0 x ( n ) ? d (n )] x ( 0 (3-18b)
m?1n?0这意味着用时域正交LMS算法的权矢量更新运算公式,可对线性估计的权矢量作自适
19
应调整,使其逐步趋于最佳值。Huffman的TDO-LMS算法的更新公式是
xT(m)x(m)? w(m?1)?Tw(m)?Tx(m?1)x(m?1)x(m?1)x(m?1)
??m?2??Td(m)?w(m)x(m)???m?1?x(m);????m?0,1,2,?,n,?当m取足够大的值时,上式又可近似成
(3-19)
w(m?1)?w(m)?T[d(n)?wT(n)x(n)]x(n)x(m)x(n) ( 3-20 )
?这与上面讨论的归一化LMS算法的权矢量更新公式相类似。 3.1.2 MLMS算法
修正LMS算法是在LMS算法中权矢量的校正量与梯度估计之间人为地引入一个时延,利用现时刻的梯度估计代替前一时刻的梯度估计,有
1?w(n?1)?w(n)???(n?1)2 ( 3-21 )
?称之为修正LMS算法。这种算法乍看起来似乎存在矛盾,因为?(n?1)本身就是w(n?1)的函数,其实,它还是可解得。式(3-21)用瞬时梯度信息可表示为
w(n?1)?w(n)??e(n?1)x(n?1) (3-22)
将e(n?1)?d(n?1)?xT(n?1)w(n?1)代入上式,有
w(n?1)?w(n)??[d(n?1)?xT(n?1)w(n?1)]x(n?1)
整理后,得到
w(n?1)?w(n)?[d(n?1)?wT(n)x(n?1)]x(n?1)Tn ? 1 ? ? x ( 1)x(n?1)?w(n)??M(n?1)eM(n?1)x(n?1)?(3-23)
式中
eM(n?1)?d(n?1)?wT(n)x(n?1)
(3-24a)
T(nn ? 1 ? ? x ? 1 ) x ( 1 ) ( 3-24b )
?M(n?1)??显然,自适应步长 ?M(n?1)是可变收敛因子,它随着输入信号功率xT(n?1)x(n?1)的变化可加快收敛速度,从而使MLMS算法的性能有了很大的改进,特别是在μ选用的值较大时。当然,如果μ只取很小,则MLMS算法近似等于LMS算法。比较式(3-15)与(3-23)可看出,MLMS算法与NLMS算法特殊形式的更新公式很相似,变步长都取决于输入信号功
20