最小均方误差自适应滤波器
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=R−1∗rdx(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=σd2−rdxHhopt=σd2−rdxHR−1∗rdx(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)=∂w∂J(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))+(w−w(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μ∥g∥2(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=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)
\mathbf{w}(n+1)=\mathbf{w}(n)-\mu(\mathbf{R}*\mathbf{w}-\mathbf{P})\tag9
w(n+1)=w(n)−μ(R∗w−P)(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=2R∗w(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[u∗uH]=E[u∗d(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)=u∗uH=u∗d(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^∗w−P^)=w(n)+μ(u∗d(n)−u∗uH∗w(n))=w(n)+μ∗u∗(d(n)−uH∗w(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.《数字信号处理:时域离散随机信号处理》