LMS自适应滤波算法是一种广泛使用的算法,下面从LMS算法的结构和运算入手研究该算法。
1 最小均方算法的结构和运算概述
LMS算法是自适应滤波算法。一般来说,它包含两个基本过程:
(1)滤波过程(filtering process)包括计算线性滤波器输出对输入信号的响应以及通过比较输出结果与期望响应产生估计误差。
(2)自适应过程(adaptive process)根据估计误差自动调整滤波器参数。
这两个过程一起工作组成一个反馈环,如图1.1所示。首先,我们有一个横向滤波器(围绕它构造LMS算法),该部件的作用在于完成滤波过程。其次,我们有一个对横向滤波器抽头权值进行自适应控制过程的算法,即图1.1中标明的“自适应权值控制算法”部分。
u(n) (n)
-
e(n)
+
d(n)
图1.1 自适应横向滤波结构图
图1.1中u(n)表示输入信号值,表示输出信号估计值,输入信号通过滤波器后产生输出信号,将其与参考信号(或称期望响应)进行比较,形成误差信号。e(n)通过某种自适应算法对滤波器参数进行调整,最终使e(n)的均方值最小。在设计时不需要事先知道关于输入信号和噪声的统计特性的知识,它能够在自己的工作过程中逐渐“了解”或估计出所需的统计特性,并以此为依据自动调整自己的参数,最终达到最佳滤波效果。一旦输入信号的统计特性发生变化,它又能够跟踪这种变化,使滤波器性能重新达到最佳。
2最速下降概述
最速下降算法是一种基于梯度的自适应方法,这种方法是理解各种基于梯度的自适应方法的基础。它可用反馈系统来表示,滤波器的计算是一步一步迭代进行的。在平稳过程这个特殊情况下,给定任意初始抽头权向量,问题的解将随迭代次数的增加而改善。值得一提是,在适当条件下,上述方法的解收敛于维纳解(即集平均误差曲面的极小点)而不需要求输入向量相关矩阵的逆矩阵。
最速下降算法的的基本思想:
考虑一个代价函数J(w),它是某个未知向量w的的连续可微函数。函数J(w)将w的元素映射为实数。这里,我们要寻找一个最优w使得它满足如下条件
J(w)≤J(w) 对所有的w (3.1)
这是无约束最优化的数学表示。
特别适合于自适应滤波的一类无约束最优化算法基于局部迭代下降的思想:从某一初始猜想w(0)出发,产生一系列w(1),w (2)……使得代价函数J(w (n))在算法的每一次迭代都是下降的,即
J(w(n+1)) 最速下降算法是迭代下降法的一种简单形式,该方法是沿最速下降方向(又称负梯度方向,即代价函数J(w)的梯度方向▽J(w)的反方向)连续调整权向量w。为方便起见,将梯度向量表示为 (3.3) 因此,最速下降算法可以表示为 w(n+1)=w(n)- 1/2*μg(n) (3.4) 其中n表示迭代进程,μ是正长数,称为步长参数,1/2因子的引入是为了数学处理上的方便。在从n到n+1的迭代中,权向量的调整量为 δw(n)=w(n+1)-w(n) =-1/2*μg(n) (3.5) 为了证明最速下降算法满足式(4.2),在w(n)处进行一阶泰勒(Taylor)展开,得到 J(w(n+1))≈J(w(n))+ (3.6) 此式对于μ较小时是成立的。在式(4.6)中假设为复值向量,因为梯度向量也为复值向量,所以使用埃尔米特转置。将式(4.5)用到式(4.6)中,得到 J(w(n+1))≈J(w(n))- (3.7) 这表明当μ为正数时,J(w(n+1))< J(w(n))。因此,随着n的增加,代价函数J(n)减小,当n=∞时,代价函数趋于最小值J。 最速下降算法应用于维纳滤波器 考虑一个横向滤波器,其抽头输入为u(n),u(n-1),…,u(n-M+1),对应的抽头权值为w (n),w (n),…,w (n)。抽头输入是来自零均值、相关矩阵为R的广义平稳随机过程的抽样值。d(n)为滤波器的期望响应。在时刻n抽头输入向量表示为u(n),滤波器输出端期望响应的估计值为,通过比较期望响应d(n)及其估计值,可以得到一个估计误差,即 e(n)=d(n)- = d(n)-w (n)u(n) (3.8) 这里w (n)u(n)是抽头权向量w(n)与抽头输入向量u(n)的内积。w(n)可进一步表示成 w(n)=[ w (n),w (n),…,w (n)] 同样,抽头输入向量u(n)可表示为 u(n)=[ u(n),u(n-1),…,u(n-M+1)] 如果抽头输入向量u(n)和期望响应d(n)是联合平稳的,此时均方误差或在时刻n的代价函数J(n)是抽头权向量的二次函数,于是可以得到 J(n)=E[e(n)e (n)] 把式(3.8)代入上式中,得 J(n)= - E[u(n)d (n)]-E[u (n)d(n)]w(n)+ E[u(n)]w(n) = (3.9) 其中, =目标函数d(n)的方差。 =抽头输入向量u(n)与期望响应d(n)的互相关向量。 R=抽头输入向量u(n)的相关矩阵。 又梯度向量可以写为 J(n)= (3.10) =-2p+2Rw(n) 其中在列向量中和分别是代价函数J(n)对第k个抽头权值,w (n)的实部和虚部的偏导数,k =1,2,3,…M-1。对最速下降算法应用而言,假设式(3.10)中相关矩阵R和互相关向量p已知,则对于给定的抽头权向量w(n),可以计算出梯度向量J(n)。因此,将式(3.10)代入式(3.4),可得更新的抽头向量, w(n+1)为 w(n+1)= w(n)+μ[p-Rw(n)] n=0,1,2, (3.11) 它描述了维纳滤波中最速下降法的数学表达式。 根据式(3.11),在时刻n+1应用到抽头权向量的调整量等于μ[p-Rw(n)]。这个调整量也可以表示成抽头输入向量u(n)和估计误差内积期望的μ倍。这表明可以用一组互相关器来计算抽头权向量w(n)的较正量,较正量用, ,…表示。 3 LMS自适应滤波算法 最小均方(LMS,least-mean-square)自适应滤波算法由Widrow和Hof提出的最小均方误差(LMS )算法,它是一种搜索算法,通过对目标函数进行适当的调整,简化了对梯度向量的计算。因而具有计算量小、易于实现等优点而在实践中被广泛采用。同时通过对外部环境的自适应,它也能够提供很高的性能。LMS算法的主要特征包括低计算复杂度,在平稳环境中的收敛性,该算法大体上可以描述为: (抽头权向量更新值)=(老的抽头权向量值)+(学习速率参数)(抽头输入)(误差信号) 其中误差信号定义为期望信号与抽头输入向量所产生实际输出向量之差。在LMS算法的理论体系中,最优化方法中的最陡下降法是随机梯度信息处理的一种递归算法。在未知误差性能的情况下,它可以寻求误差曲面的最小点是性能分析的重要基础。但是,最陡下降算法需要准确测得每次迭代的梯度矢量,而实际上梯度值只能根据观测数据进行估计。为了减少计算复杂度和缩短自适应收敛时间,许多学者对这方面的新算法进行了研究。1960年,美国斯坦福大学的Widrow等提出了最小均方算法(LMS算法)。 如果可以精确测量每一次迭代的梯度向量J(n),而且如果步长参数合适选取,则由最速下降算法获得的抽头权向量将会收敛于维纳解。然而事实上梯度向量的精确测量是不可能的,因为它需要抽头输入的相关矩阵R以及抽头输入与期望响应之间的互相关向量p的先验知识。因此当该算法运行在未知环境时,必须根据可用数据估计梯度向量。 为了推导梯度向量的估计方法,最明显的策略是将相关矩阵R和抽头输入与期望响应之间的互相关向量的估计代入梯度向量J(n)=-2p+2Rw(n)分别定义抽头输入向量R和期望响应p的瞬态估计为: (3.12) u(n)为抽头输入向量,d (n)为纯净的信号。因此梯度向量的瞬态估计为: J(n)=-2 u(n)d (n)+2 u(n) (3.13) 将式(3.13)代入式(3.7)最速下降算法可得到一个新的更新抽头向量的递归关系式 (3.14) 等效地,可用三个基本关系式写出结果如下: y(n)= u(n) (3.15) e(n)=d(n)-y(n) (3.16) =+u(n)e (n) (3.17) 其中,式(3.15)为滤波输出,式(3.16)为估计误差或误差信号,式(3.17)为抽头权向量的自适应更新。 总结基于最速下降法的最小均方误差(LMS)算法的迭代公式如下 e(n)=d(n)- u(n) =+ u(n) e (n) (3.18) 其中,为自适应滤波器在时刻n 的权向量,u为输入信号向量,d(n)为n时刻的期望输出值,e(n)是误差信号。µ是步长因子,LMS算法收敛的条件:,其中是输入信号自相关矩阵的最大特征值,M为滤波器长度。