维纳滤波及其应用

维纳滤波(wiener filter)是一种以其输出与期望输出的差的平方最小为最优准则的线性滤波器。

信号退化模型可以用如下公式表示:

\vec{y}=\mathbf{H}\vec{x}+\vec{n}

其中\vec{x}是干净无噪信号,\vec{n}是噪声,对于噪声最常见的假设是均值为0,方差为\sigma^2的加性白高斯噪声。\mathbf{H}是退化算子,不同的退化形式对应不同的退化算子,如:在去噪问题中,\mathbf{H}=\mathbf{I};在去模糊问题中,\mathbf{H}是模糊卷积核h对应的矩阵。\vec{y}是观察到的退化信号。

下面为了简化书写,不再标出向量的箭头符号了。

以下推导基于添加均值为0,方差为\sigma^2的加性白高斯噪声的假设 

我们希望能利用观察到的退化信号y来获得干净信号x,这是一个病态问题,是无法实现的,我们只能获得去噪信号\hat{x}

\mathbf{G}来表示维纳滤波,有\hat{x}=\mathbf{G}y

误差:

\begin{aligned} e&=\mathbb{E}(|\hat{x}-x|^2)\\ &=\mathbb{E}(|\mathbf{G}y-x|^2)\\ &=\mathbb{E}(|\mathbf{G}(\mathbf{H}x+n)-x|^2)\\ &=\mathbb{E}(|(\mathbf{G}\mathbf{H}-\mathbf{I})x+\mathbf{G}n|^2) \end{aligned}

 展开来是:

(\mathbf{G}\mathbf{H}-\mathbf{I})^{\top}(\mathbf{G}\mathbf{H}-\mathbf{I})\mathbb{E}(x^2)+(\mathbf{G}\mathbf{H}-\mathbf{I})^{\top}\mathbf{G}\mathbb{E}(x^{\top}n)+(\mathbf{G}\mathbf{H}-\mathbf{I})\mathbf{G}^{\top}\mathbb{E}(xn^{\top})+\mathbf{G}^{\top}\mathbf{G}\mathbb{E}(n^2)

因为噪声和信号是相互独立的,且\mathbb{E}(n)=0,所以上述4项中的中间两项是0

 整理得e=(\mathbf{G}\mathbf{H}-\mathbf{I})^{\top}(\mathbf{G}\mathbf{H}-\mathbf{I})\mathbb{E}(x^2)+\mathbf{G}^{\top}\mathbf{G}\mathbb{E}(n^2)

由定义得:\mathbb{E}(x^2)=\int x^2 p_X(x)dx\mathbb{E}(n^2)=\int n^2 p_N(n)dn分别表示信号的能量s^x和噪声的能量s^n

根据维纳滤波的最优准则,我们的目标是误差e最小,即对e关于\mathbf{G}求导,导数为0。

 得:(\mathbf{H}^{\top}\mathbf{H}s^x+s^n)\mathbf{G}-\mathbf{H}^{\top}s^x=0

\therefore \mathbf{G} = (\mathbf{H}^{\top}\mathbf{H}+\frac{s^n}{s^x})^{-1}\mathbf{H}^{\top}

  • 如果我们在去噪任务中应用维纳滤波的话,因为\mathbf{H}=\mathbf{I},维纳滤波退化成一个缩放系数(Wiener shrinkage coefficient):\frac{s^x}{s^x+s^n}
  • 如果我们在去模糊任务中应用维纳滤波的话,那么退化算子\mathbf{H}必然存在对应的模糊卷积核h
  • 那么上式有另一种等价形式:G = \mathcal{F}((\mathcal{F}(\bar{h})\mathcal{F}(h)+\frac{s^n}{s^x})^{-1}\mathcal{F}(\bar{h})),其中\bar{h}表示翻转卷积核

猜你喜欢

转载自blog.csdn.net/qq_45821834/article/details/129336710