维纳滤波器小结
一、问题概述
1.1 维纳滤波器简介
维纳滤波器是在最小均方误差(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:
- 与传统选频滤波不同(若信号与噪声在同一频段,则噪声依然无法滤去),该方法基于输入信号和噪声的平稳性,即使两者在同一频段,依然能有效滤除噪声。
- 除了mmse准则,还有最大输出信噪比准则、统计检测准则等。一定条件下,其它准则下的最佳滤波器与维纳滤波器等价——讨论线性滤波器时,一般以维纳滤波器为参考。
1.2 应用前提
滤波器输入为有用信号和噪声,两者均为宽平稳随机过程,且知二者的二阶统计特性(均值、方差、自相关等二阶统计量)。
1.3 维纳滤波器问题综述
如上图所示,考虑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 , … \begin{equation}y(n)=\sum_{k=0}^{M-1} w_k^* u(n-k), \quad n=0,1,2, \ldots\end{equation} y(n)=k=0∑M−1wk∗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 ] \begin{equation}J(w)=\mathbb{E}[|e(n)|^2]\end{equation} J(w)=E[∣e(n)∣2]
所以,问题的重点,就放在了如何求解这个目标函数这里(提前剧透,后续发现,这个目标函数其实是个凸函数,具体来说,是关于滤波器参数 W W W的二次函数,因此,该问题其实有解析解)。
PS:读完后,你会发现,维纳滤波器的思想非常简单。
二、目标函数求解(得到维纳霍夫方程)
维纳滤波器第1阶段,求解滤波器最优参数的问题,即求解下列无约束优化问题:
min J ( w ) = E [ ∣ e ( n ) 2 ∣ ] \begin{equation} \begin{array}{ll} \min & J(w)=\mathbb{E}[|e(n)^2|] \end{array} \end{equation} minJ(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 ) ] \begin{equation}\begin{aligned}J(w)= & \mathbb{E}\left[e(n) e^*(n)\right] \\= & \mathbb{E}\left[(d(n)-y(n))(d^*(n)-y^*(n))\right] \\= & \mathbb{E}\left[|d(n)|^2\right]-\sum_{k=0}^{M-1} w_k^* \mathbb{E}\left[u(n-k) d^*(n)\right]-\sum_{k=0}^{M-1} w_k \mathbb{E}\left[u^*(n-k) d(n)\right] \\& +\sum_{k=0}^{M-1} \sum_{i=0}^{M-1} w_k^* w_i \mathbb{E}\left[u(n-k) u^*(n-i)\right]\end{aligned}\end{equation} J(w)===E[e(n)e∗(n)]E[(d(n)−y(n))(d∗(n)−y∗(n))]E[∣d(n)∣2]−k=0∑M−1wk∗E[u(n−k)d∗(n)]−k=0∑M−1wkE[u∗(n−k)d(n)]+k=0∑M−1i=0∑M−1wk∗wiE[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 ) \begin{equation}J(w)=\sigma_d^2-\sum_{k=0}^{M-1} w_k^* p(-k)-\sum_{k=0}^{M-1} w_k p^*(-k)+\sum_{k=0}^{M-1} \sum_{i=0}^{M-1} w_k^* w_i r(i-k)\end{equation} J(w)=σd2−k=0∑M−1wk∗p(−k)−k=0∑M−1wkp∗(−k)+k=0∑M−1i=0∑M−1wk∗wir(i−k)
显然,上式代表误差性能曲面,其仅与 w w w有关,且是 ∗ ∗ w **w ∗∗w的二次函数(且具有最小值)**。
求其最优解,令
∇ k J ( w ) = 0 , k = 0 , 1 , 2 , … , M − 1 \begin{equation}\nabla_k J(w)=0, \quad k=0,1,2, \ldots, M-1\end{equation} ∇kJ(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 \begin{equation} \begin{aligned} \nabla_k J(w)=\frac{\partial J}{\partial a_k}+j \frac{\partial J}{\partial b_k} & =-p(-k)-p^*(-k)+\sum_{i=0}^{M-1} w_i r(i-k) \\ & +j\left(j p(-k)-j p^*(-k)-j \sum_{i=0}^{M-1} w_i r(i-k)\right) \\& =-2 p(-k)+2 \sum_{i=0}^{M-1} w_i r(i-k) \\ & =0 \end{aligned} \end{equation} ∇kJ(w)=∂ak∂J+j∂bk∂J=−p(−k)−p∗(−k)+i=0∑M−1wir(i−k)+j(jp(−k)−jp∗(−k)−ji=0∑M−1wir(i−k))=−2p(−k)+2i=0∑M−1wir(i−k)=0
得到维纳滤波器中用于求解滤波器最佳参数的核心方程——维纳霍夫方程:
∑ i = 0 M − 1 w o i r ( i − k ) = p ( − k ) , k = 0 , 1 , 2 , … , M − 1 \begin{equation}\sum_{i=0}^{M-1} w_{o i} r(i-k)=p(-k), \quad k=0,1,2, \ldots, M-1\end{equation} i=0∑M−1woir(i−k)=p(−k),k=0,1,2,…,M−1
写为矩阵形式:
R w o = p \begin{equation}\mathbf{R} \mathbf{w}_o=\mathbf{p}\end{equation} Rwo=p
一般,由于噪声的存在, R \mathbf{R} R 是非奇异的,所以最优参数为:
w o = R − 1 p \begin{equation}\mathbf{w}_o=\mathbf{R}^{-1} \mathbf{p}\end{equation} wo=R−1p
所以,在维纳滤波器第一阶段——最优参数计算阶段,需要知道两个值:
- 输入信号 u ( n ) u(n) u(n)的相关矩阵 R \mathbf{R} R
- 输入信号 u ( n ) u(n) u(n)与期望响应 d ( n ) d(n) d(n)的互相关向量 p \mathbf{p} 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 \begin{equation}J(\mathbf{w})=\sigma_d^2-\mathbf{w}^{\mathrm{H}} \mathbf{p}-\mathbf{p}^{\mathrm{H}} \mathbf{w}+\mathbf{w}^{\mathrm{H}} \mathbf{R} \mathbf{w}\end{equation} J(w)=σd2−wHp−pHw+wHRw
则
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 \begin{equation}\begin{aligned}J_{min}(w) =J(w_o)& =\sigma_d^2-p^H\left(R^{-1}\right)^H p-p^H R^{-1} p+p^H\left(p^{-1}\right)^H R R^{-1} p \\& =\sigma_d^2-p^H R^{-1} p-p^H R^{-1} p+p^H p^{-1} p \\& =\sigma_d^2-p^H R^{-1} p \\& =\sigma_d^2-p^H w_0\end{aligned}\end{equation} Jmin(w)=J(wo)=σd2−pH(R−1)Hp−pHR−1p+pH(p−1)HRR−1p=σd2−pHR−1p−pHR−1p+pHp−1p=σd2−pHR−1p=σd2−pHw0
至此,我们就通过最小均方误差准则,得到了维纳滤波器的最优参数(最优解)和最优值。
再介绍一下误差性能曲面的规范形式(暂未太理解):