在前面关于维纳滤波的文章里,提到FIR型维纳滤波器需要求信号相关矩阵
R
\bold R
R的逆,虽然有Levinson-Durbin算法,但还是比较复杂。
由于维纳滤波是最小均方误差意义上的最佳估计,那么将均方误差作为代价函数,便可利用最速下降法来迭代求取维纳滤波器的系数。
1. FIR型维纳滤波器的最速下降法推导
假设滤波器的输入信号为
u
(
n
)
,
u
(
n
−
1
)
,
.
.
.
,
u
(
n
−
M
+
1
)
u(n),u(n-1),...,u(n-M+1)
u(n),u(n−1),...,u(n−M+1),滤波系数为
w
0
(
n
)
,
w
1
(
n
)
,
.
.
.
w
M
−
1
(
n
)
w_0(n),w_1(n),...w_{M-1}(n)
w0(n),w1(n),...wM−1(n)。输入信号来自均值为0的广义平稳随机过程,相关矩阵为
R
\bold R
R。
另外,还滤波器还需要一个期望响应
d
(
n
)
d(n)
d(n),以便为最优滤波提供参考。其实,这里的期望响应就是维纳滤波器中提到的噪声。
滤波器结构如下图所示:
时刻n的估计误差为:
e
(
n
)
=
d
(
n
)
−
w
T
(
n
)
u
(
n
)
e(n)=d(n)-\bold w^T(n) \bold u(n)
e(n)=d(n)−wT(n)u(n)
若输入信号
u
(
n
)
\bold u(n)
u(n)和期望响应
d
(
n
)
\bold d(n)
d(n)是联合平稳的,则经过一系列推导,时刻n的代价函数
J
(
n
)
\bold J(n)
J(n)(其实就是均方误差)可表示为:
J
(
n
)
=
σ
d
2
−
w
T
(
n
)
p
−
p
T
w
(
n
)
+
w
T
R
w
(
n
)
\bold J(n)=\sigma^2_d-\bold w^T(n)\bold p-\bold p^T\bold w(n)+\bold w^T\bold R\bold w(n)
J(n)=σd2−wT(n)p−pTw(n)+wTRw(n)
其中,
σ
d
2
\sigma^2_d
σd2是期望输出
d
(
n
)
d(n)
d(n)的方差,
p
\bold p
p是输入信号
u
(
n
)
\bold u(n)
u(n)与期望输出
d
(
n
)
d(n)
d(n)的互相关向量,
R
\bold R
R是输入信号
u
(
n
)
\bold u(n)
u(n)的相关矩阵。
再经过推导,代价函数的梯度向量可表达为:
∇
J
(
n
)
=
−
2
p
+
2
R
w
(
n
)
\nabla J(n)=-2\bold p+2\bold {Rw}(n)
∇J(n)=−2p+2Rw(n) (1)
因此,滤波器系数的迭代表达式为:
w
(
n
+
1
)
=
w
(
n
)
+
μ
[
p
−
R
w
(
n
)
]
\bold w(n+1)=\bold w(n)+μ[\bold p-\bold {Rw}(n)]
w(n+1)=w(n)+μ[p−Rw(n)] n=0,1,2,… (2)
上面这个式子就是FIR型维纳滤波器的最速下降方法。
2. 几点理解
- 将最速下降法用于FIR型维纳滤波时,噪声就是最速下降法的期望响应。
- 因为维纳滤波本身就假设信号和噪声是(即这里的抽头输入u(n)和期望响应w(n))广义联合平稳的,所以输入相关矩阵 R \bold R R以及输入和噪声的互相关向量 p \bold p p是恒定的。因此式(1)和式(2)的计算结果仅与上一次迭代时的权值向量(滤波器系数)有关,并且是可以精确计算的。这是与后面LMS自适应滤波最本质的区别。
参考文献:
郑宝玉 等译,自适应滤波器原理,第四版,第4章