LMS自适应滤波器

最小均方误差自适应滤波器

文章目录

      • 最小均方误差自适应滤波器
        • 1. wiener filter
        • 2. 最陡下降法(Steepest Descent Method)
        • 3. LMS 滤波器

1. wiener filter

   上一篇中介绍了维纳滤波器在时域的闭式解,分别得到最重要的两个公式如下

最优权值:
h o p t = R − 1 ∗ r d x (1) \mathbf{h_{opt}}=\mathbf{R}^{-1}*\mathbf{r_{dx}}\tag{1} hopt=R1rdx(1)
最小均方误差:
E [ e 2 ( n ) ] m i n = σ d 2 − r d x H h o p t = σ d 2 − r d x H R − 1 ∗ r d x (2) \begin{aligned}E[e^2(n)]_{min} &= \sigma_d^2-\mathbf{r_{dx}}^H\mathbf{h_{opt}}\\&=\sigma_d^2-\mathbf{r_{dx}}^H\mathbf{R}^{-1}*\mathbf{r_{dx}}\end{aligned}\tag2 E[e2(n)]min=σd2rdxHhopt=σd2rdxHR1rdx(2)

  维纳-霍夫方程在理论分析中占有重要地位,但在实际应用中却有一些局限,看公式就可以发现,有以下两个缺点

  • 求解过程需要对矩阵求逆

  • 求解需要知道信号的先验信息(相关函数)

    这两个缺点限制了维纳-霍夫方程的实际应用,那么,下面就看看怎么去缓解这两个问题

2. 最陡下降法(Steepest Descent Method)

  先看第一个问题,矩阵求逆,解决这个问题似乎更偏向于一个纯数学问题了,维纳滤波器就是要寻找一组权系数 w 0 \mathbf w_0 w0(黑体的都表示向量),使得对任意 w \mathbf w w,都有
J ( w 0 ) ≤ J ( w ) ∀ w (3) J(\mathbf w_0) \leq J(\mathbf w) \quad \quad \forall \mathbf w\tag3 J(w0)J(w)w(3)
  矩阵求逆是一步计算得到结果,现在我们希望以迭代的方式得到最优解

  先给定一个初始值 w ( 0 ) \mathbf w(0) w(0),然后产生 w ( 1 ) \mathbf w(1) w(1) w ( 2 ) \mathbf w(2) w(2) w ( 3 ) ⋯ \mathbf w(3) \cdots w(3)过程中 J J J都是逐步减小的,公式描述如下
J ( w ( n + 1 ) ) ≤ J ( w ( n ) ) (4) J(\mathbf{w}(n+1) )\leq J(\mathbf{w}(n))\tag4 J(w(n+1))J(w(n))(4)
  现在就是要找到一种从 w ( n ) 到 w ( n + 1 ) \mathbf{w}(n)到\mathbf{w}(n+1) w(n)w(n+1)的更新方式,使得(4)式成立。

最陡下降法的思想就是让代价函数沿着最大梯度的负方向调整变量,先写出代价函数的一阶梯度如下
g = Δ J ( w ) = ∂ J ∂ w (5) \mathbf g=\Delta J(\mathbf{w})=\frac{\partial J}{\partial \mathbf w}\tag5 g=ΔJ(w)=wJ(5)
  将代价函数在 w ( n ) \mathbf{w}(n) w(n)处一阶泰勒展开
J ( w ) = J ( w ( n ) ) + ( w − w ( n ) ) ∗ Δ J (6) \begin{aligned} J(\mathbf{w})&=J(\mathbf{w}(n))+(\mathbf{w}-\mathbf{w}(n))*\Delta J\\ \end{aligned}\tag6 J(w)=J(w(n))+(ww(n))ΔJ(6)
  现在要递推下一时刻的代价函数
J ( w ( n + 1 ) ) = J ( w ( n ) ) + ( w ( n + 1 ) − w ( n ) ) ∗ g (7) \begin{aligned} J(\mathbf{w}(n+1))=&J(\mathbf{w}(n))+(\mathbf{w}(n+1)-\mathbf{w}(n))*\mathbf g\\ \end{aligned}\tag7 J(w(n+1))=J(w(n))+(w(n+1)w(n))g(7)
  定义最陡下降法权值更新方式如
w ( n + 1 ) = w ( n ) − 1 2 μ g ( n ) (8) \mathbf{w}(n+1)=\mathbf{w}(n)-\frac{1}{2}\mu\mathbf{g}(n)\tag8 w(n+1)=w(n)21μg(n)(8)
  这个 1 2 \frac{1}{2} 21的作用下面可以看到,将(8)使代入到(7)中,可以得到如下
J ( w ( n + 1 ) ) = J ( w ) − 1 2 μ ∥ g ∥ 2 (7) \begin{aligned} J(\mathbf{w}(n+1))=&J(\mathbf{w})-\frac{1}{2}\mu \left \|\mathbf{g} \right \|^2\\ \end{aligned}\tag7 J(w(n+1))=J(w)21μg2(7)
  所以 J ( w ( n + 1 ) ) ≤ J ( w ) J(\mathbf{w}(n+1))\leq J(\mathbf{w}) J(w(n+1))J(w)恒成立,也就是在合适的 μ \mu μ值下,使用(8)的权值更新方式,代价函数是在逐步减小的。

  既然有了权值的的更新方式,那再来看看维纳滤波器的时域解

  上一篇中已经推导了误差函数对权值的导数如下式
Δ E [ e 2 ( n ) ] w i = 2 ∑ m = 0 M − 1 r x x ( i − m ) ∗ w ( m ) − 2 r x d ( − i ) , i = 0 , 1.... M − 1 = 2 R ∗ w − 2 P (8) \begin{aligned} \frac{\Delta E[e^2(n)]}{w_i}=2&\sum_{m=0}^{M-1}r_{xx}(i-m)*w(m)-\\ 2&r_{xd}(-i), i=0,1....M-1\\ =2& \mathbf{R}*\mathbf{w}-2\mathbf{P} \end{aligned}\tag8 wiΔE[e2(n)]=22=2m=0M1rxx(im)w(m)rxd(i),i=0,1....M1Rw2P(8)
  最陡下降法的权值更新就变为
w ( n + 1 ) = w ( n ) − μ ( R ∗ w − P ) (9) \mathbf{w}(n+1)=\mathbf{w}(n)-\mu(\mathbf{R}*\mathbf{w}-\mathbf{P})\tag9 w(n+1)=w(n)μ(RwP)(9)
  这样,求解最优权值的过程就利用迭代避免了矩阵求逆,同时也可以看到(8)中的 1 2 \frac{1}{2} 21是用来消掉系数2的

3. LMS 滤波器

  上面的最速下降法解决了求最优权值过程中的矩阵求逆问题,那么,还有第二个问题,求解需要知道信号的相关函数

  维纳滤波的推导中已经知道代价函数对权值的求导如下
Δ J = 2 R ∗ w ( n ) − 2 p (10) \begin{aligned} \Delta J=2& \mathbf{R}*\mathbf{w}(n)-2\mathbf{p} \end{aligned}\tag{10} ΔJ=2Rw(n)2p(10)
  其中的
R = E [ u ∗ u H ] p = E [ u ∗ d ( n ) ] (11) \begin{aligned} \mathbf{R}&=E[\mathbf{u*u^H}]\\ \mathbf{p}&=E[\mathbf{u}*d(n)] \end{aligned}\tag{11} Rp=E[uuH]=E[ud(n)](11)
  这里面有个烦人的期望符号 E E E,一个未知环境中是无法提前知道这种统计平均的量的,只会知道瞬时值,那就先用瞬时值代替这个统计平均量
R ^ ( n ) = u ∗ u H p ^ ( n ) = u ∗ d ( n ) (12) \begin{aligned} \hat{\mathbf{R}}(n)&=\mathbf{u*u^H}\\ \hat{\mathbf{p}}(n)&=\mathbf{u}*d(n) \end{aligned}\tag{12} R^(n)p^(n)=uuH=ud(n)(12)
  将(12)代入到最速下降法的更新公式(9)中就得到的LMS的更新公式
w ( n + 1 ) = w ( n ) − μ ( R ^ ∗ w − P ^ ) = w ( n ) + μ ( u ∗ d ( n ) − u ∗ u H ∗ w ( n ) ) = w ( n ) + μ ∗ u ∗ ( d ( n ) − u H ∗ w ( n ) ) (13) \begin{aligned} \mathbf{w}(n+1)&=\mathbf{w}(n)-\mu(\hat\mathbf{R}*\mathbf{w}-\hat\mathbf{P})\\ &=\mathbf{w}(n)+\mu (\mathbf u*d(n)-\mathbf u*\mathbf{u^H}*\mathbf{w}(n))\\ &=\mathbf w(n)+\mu*\mathbf u*(d(n)-\mathbf{u^H}*\mathbf{w}(n)) \end{aligned}\tag{13} w(n+1)=w(n)μ(R^wP^)=w(n)+μ(ud(n)uuHw(n))=w(n)+μu(d(n)uHw(n))(13)
  上式就是LMS的递推公式,定义滤波器输出 y ( n ) y(n) y(n)、误差信号 e ( n ) e(n) e(n),则LMS就可以总结为以下形式
y ( n ) = w H ( n ) u ( n ) e ( n ) = d ( n ) − y ( n ) w ( n + 1 ) = w ( n ) + μ ∗ u ( n ) ∗ e ( n ) \begin{aligned} y(n)&=\mathbf{w}^H(n)\mathbf{u}(n)\\ e(n)&=d(n)-y(n)\\ \mathbf{w}(n+1)&=\mathbf{w}(n)+\mu*\mathbf{u}(n)*e(n) \end{aligned} y(n)e(n)w(n+1)=wH(n)u(n)=d(n)y(n)=w(n)+μu(n)e(n)
  这样,LMS就解决了维纳-霍夫方程中需要信号的相关函数的条件,通过迭代的方式自适应到达最优解,同时,对比最速下降法,LMS就是去掉了一个期望符号 E E E,利用瞬时量代替统计平均。关于更深入的理论分析,可以查阅参考中的两本书

Reference:
1.《自适应滤波器原理》
2.《数字信号处理:时域离散随机信号处理》

你可能感兴趣的:(自适应滤波器,数字信号处理)