Signals, Systems and Inference, Chapter 11: Wiener Filtering (mit.edu)

基本

在图像处理的时候, 遇到了这个维纳滤波, 其推导的公式不是很理解, 于是上网查了查, 并做个简单的总结.

符号 说明
\(x[k]]\) 观测信号\(x\)的第k个元素
\(\hat{y}\) 为\(y\)的一个估计
\(v\) 噪声信号
\(e[k]\) 误差, 为\(e[k]=\hat{y}[k] - y[k]\)
\(R_{xy}(i, j)\) 相关系数: \(E\{x[n-i]y[n-j]\}\)
\(S_{xy}\) 傅里叶变换: \(\mathcal{F} \{R_{xy}\}\)

基本的假设:

\(y[k]\)服从wide-sense stationary (WSS), 即

  1. \(E[y[k]] = E[y[0]]\);
  2. \(R_{yy}(i, j) = R_{yy}[j-i]\).

维纳滤波可以应用于很多场景, 但是这里只讨论下面的去噪的情形:

\[x[n] = y[n] + v[n],
\]

且假设\(y, v\)之间相互独立, \(E[v]=0\).

我们的目标是找到一个滤波\(h\), 得到一个估计

\[\hat{y}[n] = h\star x [n],
\]

使得下式最小

\[E[e^2[n]].
\]

维纳滤波需要分情况讨论, 这里只关注离散的情形, 包括

  1. non-causal: \(\hat{y}[n] = \sum_{k=-\infty}^{+\infty} h[k]y[n-k]\);
  2. FIR: \(\hat{y}[n] = \sum_{k=0}^{N-1} h[k]y[n-k]\).

causal的情况这里就不写了.

滤波的推导

自然地, 寻找驻点:

\[\begin{array}{ll}
\frac{\partial E[e^2[n]]}{\partial h[m]}
&=2E[e[n]\frac{\partial e[n]}{\partial h[m]}] \\
&=2E[e[n]x[n-m]] \\
&=2(h\star R_{xx}[m] -R_{yx}[m]) \\
&=0.
\end{array}
\]

于是必须满足

\[\tag{1}
h \star R_{xx}[m] = R_{yx}[m].
\]

相应的在频率域内存在(假设DFT存在, 参考文献用的z变换, 这个不是特别了解):

\[\tag{2}
H[u] S_{xx}[u] = S_{yx}[u].
\]

在FIR情况下, 可以通过(1)推导出一个线性方程组从而求解, non-causal下可用(2)推导出结果.

注: \(H[u]\)用了[]是为了保持一致, 在non-causal情况下\(H(z)\)可能更加妥当.

故最优解为:

\[\tag{*}
H = S_{yx} / S_{xx}.
\]

特别的情况

进一步, 由于

\[S_{xx}
= \mathcal{F}\{R_{xx}\}
= \mathcal{F}\{E[(y[n]+v[n])(y[n-m]+v[n-m])]\}
=S_{yy} + S_{vv},
\]

最后一步成立的原因是\(E{v}=0\), 且\(v, y\)相互独立.

同时

\[S_{yy} = S_{yx}.
\]

所以:

\[\tag{3}
H = \frac{S_{yy}}{S_{yy} + S_{vv}}.
\]

特别的例子

在图像数字处理中, 给出的这样的情形(FIR):

\[x[n] = g \star y [n] + v[n],
\]

记\(r[n] = g \star y [n]\),

则

\[\begin{aligned}
S_{rr}[u]
&= \mathcal{F}\{R_{rr}[m]\}[u] \\
&= \mathcal{F}\{E[r[n] r[n-m]]\}[u] \\
&= E[r[n] \mathcal{F}\{r[n-m]\}][u] \\
&= E[r[n] G[-u] Y[-u] e^{-j2\pi nu/N}] \\
&= G[-u] E[r[n]Y[-u] e^{-j2\pi nu/N}] \\
&= G[-u] \mathcal{F}\{R_{ry}[m]\}[u] \\
&= G[-u] \mathcal{F}\{E[r[n+m]y[n]]\}[u] \\
&= G[-u] E[\mathcal{F}\{r[n+m]\}[u]y[n]] \\
&= G[-u] E[G[u]Y[u]e^{-j2\pi nu/N}y[n]] \\
&= G[-u]G[u] \mathcal{F}\{R_{yy}[m]\}[u] \\
&= G[-u]G[u] S_{yy}[u]
\end{aligned}
\]

由于

\[S_{yx} = S_{yr} = G[-u]S_{yy}[u],
\]

证明和上面是类似的,

\[S_{xx} = S_{rr} + S_{vv},
\]

于是

\[H[u] = \frac{1}{G[u]}\frac{1}{1 + S_{vv}[u] / (G[-u]G[u]S_{yy}[u])}.
\]

当\(g\)为实的时候, 有\(G[-u]G[u]=|G[u]|^2\), 在数字图像处理书中, 给出的公式中:

\[S_{yy}[u] = |F[u]|^2, S_{vv}[u] = |V[u]|^2,
\]

个人觉得是这里的期望\(E\)用

\[R_{yy}[m] = \sum_{n=0}^{N-1} y[n]y[n-m],
\]

代替了,

所以

\[\mathcal{F}\{R_{yy}[m]\} = F^*(u)F(u) = |F(u)|^2,
\]

这里假设\(y[n] \in \mathbb{R}\).

\(S_{vv}[u]\)也是类似的.

Wiener Filtering的更多相关文章

  1. Wiener Filter

    假设分别有两个WSS process:$x[n]$,$y[n]$,这两个process之间存在某种关系,并且我们也了解这种关系.现在我们手头上有process $x[n]$,目的是要设计一个LTI系统 ...

  2. paper 132:图像去噪算法:NL-Means和BM3D

    这篇文章写的非常好,确定要~认真~慎重~的转载了,具体请关注本文编辑作者:http://wenhuix.github.io/research/denoise.html   我不会告诉你这里的代码都是f ...

  3. 【Duke-Image】Week_4 Image restoration

    Chapter 5 Image Restoration and Reconstruction 图像复原与重建 5.1 A Model of the Image Defradation/Restorat ...

  4. WSS Process On Causal LTI System

    Consider a real LTI system with a WSS process $x(t)$ as input and WSS process $y(t)$ as output. Base ...

  5. (转)Awesome Courses

    Awesome Courses  Introduction There is a lot of hidden treasure lying within university pages scatte ...

  6. 图像去噪算法:NL-Means和BM3D

    图像去噪是非常基础也是非常必要的研究,去噪常常在更高级的图像处理之前进行,是图像处理的基础.可惜的是,目前去噪算法并没有很好的解决方案,实际应用中,更多的是在效果和运算复杂度之间求得一个平衡,再一次验 ...

  7. paper 15 :整理的CV代码合集

    这篇blog,原来是西弗吉利亚大学的Li xin整理的,CV代码相当的全,不知道要经过多长时间的积累才会有这么丰富的资源,在此谢谢LI Xin .我现在分享给大家,希望可以共同进步!还有,我需要说一下 ...

  8. Analysis of Two-Channel Generalized Sidelobe Canceller (GSC) With Post-Filtering

    作者:凌逆战 地址:https://www.cnblogs.com/LXP-Never/p/12071748.html 题目:带后置滤波的双通道广义旁瓣相消器(GSC)的分析 作者:Israel Co ...

  9. 论文翻译:Speech Enhancement Based on the General Transfer Function GSC and Postfiltering

    论文地址:基于通用传递函数GSC和后置滤波的语音增强 博客作者:凌逆战 博客地址:https://www.cnblogs.com/LXP-Never/p/12232341.html 摘要 在语音增强应 ...

随机推荐

  1. 巩固javaweb第一天

    巩固内容: 实例解析 <!DOCTYPE html> 声明为 HTML5 文档 <html> 元素是 HTML 页面的根元素 <head> 元素包含了文档的元(me ...

  2. PS只能各个工具使用的注意知识点

    1.图章工具  <仿制图章工具>使用方法:按住alt点击吸取干净的地方,然后松开alt键,按住鼠标左键拖动或左击  擦拭 图章区域放大缩小,是按住alt键+鼠标右键左右滑动 当图片中多个图 ...

  3. Linux学习 - fdisk分区

    一.fdisk命令分区过程 系统一旦重启,分区将消失 1 添加新硬盘 直接在虚拟机上添加 2 查看新硬盘 fdisk -l 3 分区 fdisk /dev/sdb fdisk进入/dev/sdb硬件设 ...

  4. 【力扣】188. 买卖股票的最佳时机 IV

    给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意:你不能同时参 ...

  5. 【报错记录】Could not load dynamic library 'libnvinfer.so.6'; dlerror: libnvinfer.so.6

    执行import tensorflow的时候有如下报错 (test1) a@10980:~$ python Python 3.6.13 |Anaconda, Inc.| (default, Jun 4 ...

  6. 避免警报疲劳:每个 K8s 工程团队的 8 个技巧

    避免警报疲劳:每个 K8s 工程团队的 8 个技巧 监控 Kubernetes 集群并不容易,警报疲劳通常是一个问题.阅读这篇文章,了解减少警报疲劳的有用提示. 如果您是随叫随到团队的一员,您可能知道 ...

  7. 连接opcserver时报错 connecting to OPC Server "****" CoCreateInstance 服务器运行失败

    在普通windows系统连接OPCServer可能会报这样的错,排查很长时间,OPCServer跟Client都运行正常,点号录入也正常. 最后发现,其实是OPCServer 与OPCClient 权 ...

  8. 最新超详细VMware下CentOS系统安装

    一.了解CentOS系统 CentOS是免费的.开源的.可以重新分发的开源操作系统,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统 ...

  9. 手动上下eureka上面服务

    手动下eureka curl -X PUT http://eureka.xxx.xxx.com/eureka/apps/VIDEO-API/111.111.111.111:test-api:0000/ ...

  10. pymysql-sqlalchemy-orm

    sqlalchemy示例代码 多对多外键 场景:一个作者映射多个书籍,一个书籍有多个作者 作者表: id name email sex 1 Alex alex@.. M 2 Rail rail@.. ...