最小均方误差自适应滤波器
1. wiener filter
上一篇中介绍了维纳滤波器在时域的闭式解,分别得到最重要的两个公式如下
最优权值:
hopt=R−1∗rdx(1)
最小均方误差:
E[e2(n)]min=σd2−rdxHhopt=σd2−rdxHR−1∗rdx(2)
维纳-霍夫方程在理论分析中占有重要地位,但在实际应用中却有一些局限,看公式就可以发现,有以下两个缺点
2. 最陡下降法(Steepest Descent Method)
先看第一个问题,矩阵求逆,解决这个问题似乎更偏向于一个纯数学问题了,维纳滤波器就是要寻找一组权系数w0(黑体的都表示向量),使得对任意w,都有
J(w0)≤J(w)∀w(3)
矩阵求逆是一步计算得到结果,现在我们希望以迭代的方式得到最优解
先给定一个初始值w(0),然后产生w(1)、w(2)、w(3)⋯过程中J都是逐步减小的,公式描述如下
J(w(n+1))≤J(w(n))(4)
现在就是要找到一种从w(n)到w(n+1)的更新方式,使得(4)式成立。
最陡下降法的思想就是让代价函数沿着最大梯度的负方向调整变量,先写出代价函数的一阶梯度如下
g=ΔJ(w)=∂w∂J(5)
将代价函数在w(n)处一阶泰勒展开
J(w)=J(w(n))+(w−w(n))∗ΔJ(6)
现在要递推下一时刻的代价函数
J(w(n+1))=J(w(n))+(w(n+1)−w(n))∗g(7)
定义最陡下降法权值更新方式如下
w(n+1)=w(n)−21μg(n)(8)
这个21的作用下面可以看到,将(8)使代入到(7)中,可以得到如下
J(w(n+1))=J(w)−21μ∥g∥2(7)
所以J(w(n+1))≤J(w)恒成立,也就是在合适的μ值下,使用(8)的权值更新方式,代价函数是在逐步减小的。
既然有了权值的的更新方式,那再来看看维纳滤波器的时域解
上一篇中已经推导了误差函数对权值的导数如下式
wiΔE[e2(n)]=22=2m=0∑M−1rxx(i−m)∗w(m)−rxd(−i),i=0,1....M−1R∗w−2P(8)
最陡下降法的权值更新就变为
w(n+1)=w(n)−μ(R∗w−P)(9)
这样,求解最优权值的过程就利用迭代避免了矩阵求逆,同时也可以看到(8)中的21是用来消掉系数2的
3. LMS 滤波器
上面的最速下降法解决了求最优权值过程中的矩阵求逆问题,那么,还有第二个问题,求解需要知道信号的相关函数
维纳滤波的推导中已经知道代价函数对权值的求导如下
ΔJ=2R∗w(n)−2p(10)
其中的
Rp=E[u∗uH]=E[u∗d(n)](11)
这里面有个烦人的期望符号E,一个未知环境中是无法提前知道这种统计平均的量的,只会知道瞬时值,那就先用瞬时值代替这个统计平均量
R^(n)p^(n)=u∗uH=u∗d(n)(12)
将(12)代入到最速下降法的更新公式(9)中就得到的LMS的更新公式
w(n+1)=w(n)−μ(R∗w−P)=w(n)+μ(u∗d(n)−u∗uH∗w(n))=w(n)+μ∗u∗(d(n)−uH∗w(n))(13)
上式就是LMS的递推公式,定义滤波器输出y(n)、误差信号e(n),则LMS就可以总结为以下形式
y(n)e(n)w(n+1)=wH(n)u(n)=d(n)−y(n)=w(n)+μ∗u(n)∗e(n)
这样,LMS就解决了维纳-霍夫方程中需要信号的相关函数的条件,通过迭代的方式自适应到达最优解,同时,对比最速下降法,LMS就是去掉了一个期望符号E,利用瞬时量代替统计平均。关于更深入的理论分析,可以查阅参考中的两本书
Reference:
1.《自适应滤波器原理》
2.《数字信号处理:时域离散随机信号处理》