LMS自适应滤波器

不羁的心 提交于 2020-02-23 19:46:39

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

1. wiener filter

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

最优权值:
hopt=R1rdx(1) \mathbf{h_{opt}}=\mathbf{R}^{-1}*\mathbf{r_{dx}}\tag{1}
最小均方误差:
E[e2(n)]min=σd2rdxHhopt=σd2rdxHR1rdx(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

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

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

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

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

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

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

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

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

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

  上一篇中已经推导了误差函数对权值的导数如下式
ΔE[e2(n)]wi=2m=0M1rxx(im)w(m)2rxd(i),i=0,1....M1=2Rw2P(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
  最陡下降法的权值更新就变为
w(n+1)=w(n)μ(RwP)(9) \mathbf{w}(n+1)=\mathbf{w}(n)-\mu(\mathbf{R}*\mathbf{w}-\mathbf{P})\tag9
  这样,求解最优权值的过程就利用迭代避免了矩阵求逆,同时也可以看到(8)中的12\frac{1}{2}是用来消掉系数2的

3. LMS 滤波器

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

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!