维纳滤波器是在最小均方误差(mmse)准则下的线性最优滤波器,其利用平稳随机过程的相关特性和频谱特性,对混有噪声的信号进行滤波。
其输入信号为 u ( n ) = d ( n ) + v ( n ) u(n)=d(n)+v(n) u(n)=d(n)+v(n),其中 d ( n ) d(n) d(n)为信号(即后续常用的期望响应), v ( n ) v(n) v(n)为噪声。
输出信号为 y ( n ) = W ( n ) ∗ u ( n ) y(n)=W(n)*u(n) y(n)=W(n)∗u(n),其中 W ( n ) W(n) W(n)为维纳滤波器,我们希望含有噪声的 u ( n ) u(n) u(n)在经过维纳滤波器后,得到的 y ( n ) y(n) y(n)能接近 d ( n ) d(n) d(n)。
维纳滤波器的使用分为两个阶段:
计算最优参数阶段(大部分教材主要介绍的内容)
此时, ∗ ∗ d ( n ) **d(n) ∗∗d(n)是训练序列(已知)**,叠加统计特性已知的噪声 v ( n ) v(n) v(n),得到输入信号 u ( n ) u(n) u(n)。进而得到对应 y ( n ) y(n) y(n)。最小化均方误差 J ( w ) = E [ ∣ e ( n ) ∣ 2 ] J(w)=\mathbb{E}[|e(n)|^2] J(w)=E[∣e(n)∣2],得到滤波器最优参数 w 0 , w 1 , w 2 , … , w M − 1 w_0, w_1, w_2, \ldots,w_{M-1} w0,w1,w2,…,wM−1。
利用最优参数,对输入信号 u ( n ) = d ( n ) + v ( n ) u(n)=d(n)+v(n) u(n)=d(n)+v(n)进行滤波的阶段(教材忽略的内容)
此时, ∗ ∗ d ( n ) **d(n) ∗∗d(n)就是未知的了**,我们需要利用之前的参数恢复 d ( n ) d(n) d(n),我们认为 d ( n ) = y ( n ) = W ( n ) ∗ ( d ( n ) + v ( n ) ) d(n)=y(n)=W(n)*(d(n)+v(n)) d(n)=y(n)=W(n)∗(d(n)+v(n))。
PS:
滤波器输入为有用信号和噪声,两者均为宽平稳随机过程,且知二者的二阶统计特性(均值、方差、自相关等二阶统计量)。
如上图所示,考虑M阶FIR滤波器,参数为 w 0 , w 1 , w 2 , … , w M − 1 w_0, w_1, w_2, \ldots,w_{M-1} w0,w1,w2,…,wM−1。
输入为 u ( n ) , u ( n − 1 ) , u ( n − 2 ) , … , u ( n − M + 1 ) u(n),u(n-1),u(n-2),\dots,u(n-M+1) u(n),u(n−1),u(n−2),…,u(n−M+1)。(注意 u ( n ) = d ( n ) + v ( n ) u(n)=d(n)+v(n) u(n)=d(n)+v(n))
则滤波器输出(我们的估计)为
y
(
n
)
=
∑
k
=
0
M
−
1
w
k
∗
u
(
n
−
k
)
,
n
=
0
,
1
,
2
,
…
估计量和期望输出的差值为
e ( n ) = d ( n ) − y ( n ) e(n)=d(n)-y(n) e(n)=d(n)−y(n)
前面提到,维纳滤波器是基于mmse原则的最优滤波器,所以其目标函数为:
J
(
w
)
=
E
[
∣
e
(
n
)
∣
2
]
所以,问题的重点,就放在了如何求解这个目标函数这里(提前剧透,后续发现,这个目标函数其实是个凸函数,具体来说,是关于滤波器参数 W W W的二次函数,因此,该问题其实有解析解)。
PS:读完后,你会发现,维纳滤波器的思想非常简单。
维纳滤波器第1阶段,求解滤波器最优参数的问题,即求解下列无约束优化问题:
min
J
(
w
)
=
E
[
∣
e
(
n
)
2
∣
]
有
J
(
w
)
=
E
[
e
(
n
)
e
∗
(
n
)
]
=
E
[
(
d
(
n
)
−
y
(
n
)
)
(
d
∗
(
n
)
−
y
∗
(
n
)
)
]
=
E
[
∣
d
(
n
)
∣
2
]
−
∑
k
=
0
M
−
1
w
k
∗
E
[
u
(
n
−
k
)
d
∗
(
n
)
]
−
∑
k
=
0
M
−
1
w
k
E
[
u
∗
(
n
−
k
)
d
(
n
)
]
+
∑
k
=
0
M
−
1
∑
i
=
0
M
−
1
w
k
∗
w
i
E
[
u
(
n
−
k
)
u
∗
(
n
−
i
)
]
由于 d ( n ) d(n) d(n)均值为0(一般会对信号作减去均值处理),所以 E [ ∣ d ( n ) ∣ 2 ] = σ d 2 \mathbb{E}\left[|d(n)|^2\right]=\sigma_d^2 E[∣d(n)∣2]=σd2(已知)。
E [ u ( n − k ) d ∗ ( n ) ] = p ( − k ) \mathbb{E}\left[u(n-k) d^*(n)\right]=p(-k) E[u(n−k)d∗(n)]=p(−k)
E [ u ∗ ( n − k ) d ( n ) ] = p ∗ ( − k ) \mathbb{E}\left[u^*(n-k) d(n)\right]=p^*(-k) E[u∗(n−k)d(n)]=p∗(−k)
其中, p ( − k ) p(-k) p(−k)为输入信号和期望响应的互相关(已知)。
E [ u ( n − k ) u ∗ ( n − i ) ] = r ( i − k ) \mathbb{E}\left[u(n-k) u^*(n-i)\right]=r(i-k) E[u(n−k)u∗(n−i)]=r(i−k)
其中 r ( i − k ) r(i-k) r(i−k)为相隔 i − k i-k i−k点的输入信号的自相关函数(已知)。
所以, J ( w ) J(w) J(w)可写为:
J
(
w
)
=
σ
d
2
−
∑
k
=
0
M
−
1
w
k
∗
p
(
−
k
)
−
∑
k
=
0
M
−
1
w
k
p
∗
(
−
k
)
+
∑
k
=
0
M
−
1
∑
i
=
0
M
−
1
w
k
∗
w
i
r
(
i
−
k
)
显然,上式代表误差性能曲面,其仅与 w w w有关,且是 ∗ ∗ w **w ∗∗w的二次函数(且具有最小值)**。
求其最优解,令
∇
k
J
(
w
)
=
0
,
k
=
0
,
1
,
2
,
…
,
M
−
1
注意,我们讨论的信号一直为复值信号,所以可定义
w k = a k + j b k w_k=a_k+jb_k wk=ak+jbk
则
∇
k
J
(
w
)
=
∂
J
∂
a
k
+
j
∂
J
∂
b
k
=
−
p
(
−
k
)
−
p
∗
(
−
k
)
+
∑
i
=
0
M
−
1
w
i
r
(
i
−
k
)
+
j
(
j
p
(
−
k
)
−
j
p
∗
(
−
k
)
−
j
∑
i
=
0
M
−
1
w
i
r
(
i
−
k
)
)
=
−
2
p
(
−
k
)
+
2
∑
i
=
0
M
−
1
w
i
r
(
i
−
k
)
=
0
得到维纳滤波器中用于求解滤波器最佳参数的核心方程——维纳霍夫方程:
∑
i
=
0
M
−
1
w
o
i
r
(
i
−
k
)
=
p
(
−
k
)
,
k
=
0
,
1
,
2
,
…
,
M
−
1
写为矩阵形式:
R
w
o
=
p
一般,由于噪声的存在, R \mathbf{R} R 是非奇异的,所以最优参数为:
w
o
=
R
−
1
p
所以,在维纳滤波器第一阶段——最优参数计算阶段,需要知道两个值:
知道最优解 w o \mathbf{w}_o wo后,自然需要知道最优值 J m i n ( w ) = J ( w 0 ) J_{min}(\mathbf{w})=J(\mathbf{w_0}) Jmin(w)=J(w0)。
将(5)式写为矩阵形式:
J
(
w
)
=
σ
d
2
−
w
H
p
−
p
H
w
+
w
H
R
w
则
J
m
i
n
(
w
)
=
J
(
w
o
)
=
σ
d
2
−
p
H
(
R
−
1
)
H
p
−
p
H
R
−
1
p
+
p
H
(
p
−
1
)
H
R
R
−
1
p
=
σ
d
2
−
p
H
R
−
1
p
−
p
H
R
−
1
p
+
p
H
p
−
1
p
=
σ
d
2
−
p
H
R
−
1
p
=
σ
d
2
−
p
H
w
0
至此,我们就通过最小均方误差准则,得到了维纳滤波器的最优参数(最优解)和最优值。
再介绍一下误差性能曲面的规范形式(暂未太理解):