天天看点

LMS算法1. 引言2. 基本概念3. LMS 算法4. 参考文献

如有不当之处欢迎批评指正

目录

  • 1. 引言
  • 2. 基本概念
    • 2.1 横向滤波器
    • 2.2 误差性能曲面
    • 2.3 最陡下降法
  • 3. LMS 算法
    • 3.1 推导
  • 4. 参考文献

1. 引言

  LMS(Least mean square)算法,即最小均方误差算法。由美国斯坦福大学的B Widrow和M E Hoff 于1960年在研究自适应理论时提出,由于其容易实现而很快得到了广泛应用,成为自适应滤波的标准算法。

2. 基本概念

2.1 横向滤波器

  见之前的文章横向滤波器。

2.2 误差性能曲面

  在滤波器优化设计中,采用某种最小代价函数或者某个性能指标来衡量滤波器的好坏,而最常用的指标就是均方误差,也把这种衡量滤波器好坏的方法叫做均方误差准则。用公式表示如下:

E { e 2 ( n ) } = E { [ d ( n ) − y ( n ) ] 2 } (1) E\{e^2(n)\}=E\{[d(n)-y(n)]^2\}\tag{1} E{e2(n)}=E{[d(n)−y(n)]2}(1)

  其中, E { e 2 ( n ) } E\{e^2(n)\} E{e2(n)}就是均方误差, d ( n ) d(n) d(n)表示滤波器输入 x ( n ) x(n) x(n)时所期望得到的响应或者输出, y ( n ) y(n) y(n)表示输入 x ( n ) x(n) x(n)经过滤波器后实际得到的滤波器的输出, e ( n ) e(n) e(n)表示输入 x ( n ) x(n) x(n)时,滤波器的期望响应和实际输出之间的误差。

  将 y ( n ) y(n) y(n)表示成抽头权值输入向量 x ( n ) \mathbf{x}(n) x(n)和抽头权值向量 h ( n ) \mathbf{h}(n) h(n)内积的形式,然后代入上式中,可知上式是以 h ( n ) \mathbf{h}(n) h(n)为多维自变量的函数,由于自变量是多维的,所以该函数对应图形是一个超抛物面(可以想象成碗的样子)且是衡正的,该超抛物面就是误差性能曲面。超抛物面有一个总体的最小值,该最小值就是最小均方误差。如前面所述,均方误差是衡量滤波器好坏的一个常用指标。当均方误差达到最小值时,该滤波器性能达到最优,即误差性能曲面上取值为最小的点对应的坐标就是最优滤波器系数向量(即最期望的滤波器抽头权值向量)。

2.3 最陡下降法

  由前面所述可知,为了使在均方误差准则设计下的滤波器性能达到最优,需要找到误差性能曲面上的最小值,由此即可得到最优滤波器系数。

  在误差性能曲面上寻找的一个非常自然的方法就是沿着曲面的切线方向,也即负梯度方向进行寻找,而这个寻找过程是一个迭代的过程。设第 n n n次迭代得到的滤波器抽头权值向量为 h ( n ) \mathbf{h}(n) h(n),并设该次迭代得到的均方误差是 ε ( n ) \varepsilon(n) ε(n),那么第 n + 1 n+1 n+1次迭代得到的滤波器系数可由下式求出:

h ( n + 1 ) = h ( n ) − 1 2 g ( n ) μ ( n ) (2) \mathbf{h}(n+1)=\mathbf{h}(n)-\frac{1}{2}\mathbf{g}(n)\mu(n)\tag{2} h(n+1)=h(n)−21​g(n)μ(n)(2)

  其中 g ( n ) \mathbf{g}(n) g(n)是该次迭代时的梯度向量, − g ( n ) -\mathbf{g}(n) −g(n)就是该次迭代的方向向量, μ ( n ) \mu(n) μ(n)是第 n n n次迭代时所用的步长,又称作收敛因子。

g ( n ) = ∂ ε ( n ) ∂ h ( n ) = ∂ E { e 2 ( n ) } ∂ h ( n ) (3) \mathbf{g}(n)=\frac{\partial\varepsilon(n)}{\partial\mathbf{h}(n)}=\frac{\partial E\{e^2(n)\}}{\partial\mathbf{h}(n)}\tag{3} g(n)=∂h(n)∂ε(n)​=∂h(n)∂E{e2(n)}​(3)

上述选择误差性能曲面上负的梯度向量作为搜索时的方向向量的方法称为“最陡下降法”。

3. LMS 算法

3.1 推导

  在利用上述的最陡下降法计算 g ( n ) \mathbf{g}(n) g(n)时需要知道一些先验知识,而这在实际工作中是无法实现的,因此必须得到 g ( n ) \mathbf{g}(n) g(n)的估计值 g ^ ( n ) \mathbf{\widehat{g}}(n) g

​(n)。

  B Widrow和M E Hoff 提出的思路是利用瞬时误差能量 e 2 ( n ) e^2(n) e2(n)来代替均方误差能量 E { e 2 ( n ) } E\{e^2(n)\} E{e2(n)}。可知:

g ^ ( n ) = ∂ e 2 ( n ) ∂ h ( n ) = − 2 e ( n ) x ( n ) (4) \mathbf{\widehat{g}}(n)=\frac{\partial e^2(n)}{\partial\mathbf{h}(n)}=-2e(n)\mathbf{x}(n)\tag{4} g

​(n)=∂h(n)∂e2(n)​=−2e(n)x(n)(4)

  进一步令 μ ( n ) \mu(n) μ(n)为常数 μ \mu μ,则可得到新的迭代公式:

h ( n + 1 ) = h ( n ) + μ e ( n ) x ( n ) (5) \mathbf{h}(n+1)=\mathbf{h}(n)+\mu e(n)\mathbf {x}(n)\tag{5} h(n+1)=h(n)+μe(n)x(n)(5)

  上式即为LMS算法,又称随机梯度法。为了使LMS算法收敛,经过推导 μ \mu μ的取值范围应该是:

0 < μ < 2 / M P x (6) 0<\mu<2/MP_x\tag{6} 0<μ<2/MPx​(6)

  其中 M M M为滤波器的长度, P x P_x Px​为输入信号的功率。

4. 参考文献

[1] 《数字信号处理理论,算法与实现》第三版 作者:胡广书

继续阅读