Wiener Filtering
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), 即
- \(E[y[k]] = E[y[0]]\);
- \(R_{yy}(i, j) = R_{yy}[j-i]\).
维纳滤波可以应用于很多场景, 但是这里只讨论下面的去噪的情形:
\]
且假设\(y, v\)之间相互独立, \(E[v]=0\).
我们的目标是找到一个滤波\(h\), 得到一个估计
\]
使得下式最小
\]
维纳滤波需要分情况讨论, 这里只关注离散的情形, 包括
- non-causal: \(\hat{y}[n] = \sum_{k=-\infty}^{+\infty} h[k]y[n-k]\);
- FIR: \(\hat{y}[n] = \sum_{k=0}^{N-1} h[k]y[n-k]\).
causal的情况这里就不写了.
滤波的推导
自然地, 寻找驻点:
\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}
\]
于是必须满足
h \star R_{xx}[m] = R_{yx}[m].
\]
相应的在频率域内存在(假设DFT存在, 参考文献用的z变换, 这个不是特别了解):
H[u] S_{xx}[u] = S_{yx}[u].
\]
在FIR情况下, 可以通过(1)推导出一个线性方程组从而求解, non-causal下可用(2)推导出结果.
注: \(H[u]\)用了[]是为了保持一致, 在non-causal情况下\(H(z)\)可能更加妥当.
故最优解为:
H = S_{yx} / 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\)相互独立.
同时
\]
所以:
H = \frac{S_{yy}}{S_{yy} + S_{vv}}.
\]
特别的例子
在图像数字处理中, 给出的这样的情形(FIR):
\]
记\(r[n] = g \star y [n]\),
则
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}
\]
由于
\]
证明和上面是类似的,
\]
于是
\]
当\(g\)为实的时候, 有\(G[-u]G[u]=|G[u]|^2\), 在数字图像处理书中, 给出的公式中:
\]
个人觉得是这里的期望\(E\)用
\]
代替了,
所以
\]
这里假设\(y[n] \in \mathbb{R}\).
\(S_{vv}[u]\)也是类似的.
Wiener Filtering的更多相关文章
- Wiener Filter
假设分别有两个WSS process:$x[n]$,$y[n]$,这两个process之间存在某种关系,并且我们也了解这种关系.现在我们手头上有process $x[n]$,目的是要设计一个LTI系统 ...
- paper 132:图像去噪算法:NL-Means和BM3D
这篇文章写的非常好,确定要~认真~慎重~的转载了,具体请关注本文编辑作者:http://wenhuix.github.io/research/denoise.html 我不会告诉你这里的代码都是f ...
- 【Duke-Image】Week_4 Image restoration
Chapter 5 Image Restoration and Reconstruction 图像复原与重建 5.1 A Model of the Image Defradation/Restorat ...
- 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 ...
- (转)Awesome Courses
Awesome Courses Introduction There is a lot of hidden treasure lying within university pages scatte ...
- 图像去噪算法:NL-Means和BM3D
图像去噪是非常基础也是非常必要的研究,去噪常常在更高级的图像处理之前进行,是图像处理的基础.可惜的是,目前去噪算法并没有很好的解决方案,实际应用中,更多的是在效果和运算复杂度之间求得一个平衡,再一次验 ...
- paper 15 :整理的CV代码合集
这篇blog,原来是西弗吉利亚大学的Li xin整理的,CV代码相当的全,不知道要经过多长时间的积累才会有这么丰富的资源,在此谢谢LI Xin .我现在分享给大家,希望可以共同进步!还有,我需要说一下 ...
- Analysis of Two-Channel Generalized Sidelobe Canceller (GSC) With Post-Filtering
作者:凌逆战 地址:https://www.cnblogs.com/LXP-Never/p/12071748.html 题目:带后置滤波的双通道广义旁瓣相消器(GSC)的分析 作者:Israel Co ...
- 论文翻译:Speech Enhancement Based on the General Transfer Function GSC and Postfiltering
论文地址:基于通用传递函数GSC和后置滤波的语音增强 博客作者:凌逆战 博客地址:https://www.cnblogs.com/LXP-Never/p/12232341.html 摘要 在语音增强应 ...
随机推荐
- act
act的词源是do, 干着或干了的事情也可以叫act.抄全字典的话,抄的和看的都麻烦,在阅读中体会吧. act和action有啥区别?action: doing sth; act: n. action ...
- 虚拟机中安装centos系统的详细过程
linux-centos的安装 检查电脑是否开启虚拟化,只有开启虚拟化才能安装虚拟机 新建虚拟机 鼠标点进去,选中红框所示,回车 登录: 输入默认用户名(超级管理员 root) 密码:安装时设置的密码
- Vue相关,Vue JSX
JSX简介 JSX是一种Javascript的语法扩展,JSX = Javascript + XML,即在Javascript里面写XML,因为JSX的这个特性,所以他即具备了Javascript的灵 ...
- 【二分答案】CF1613 C. Poisoned Dagger
题目:Problem - C - Codeforces 本题的优解是二分答案,但我其实不会二分,本质是用了两个指针作为边界,然后不断对半缩小范围来快速确定答案. 神奇的二分法 代码: #include ...
- scp命令的简单使用
简介: scp是 secure copy的缩写, 是linux系统下基于ssh登陆进行安全的远程文件拷贝命令,Linux scp命令用于Linux之间复制文件和目录. 语法 scp [-1246BCp ...
- linux查询健康状态,如何直观的判断你的Linux系统是否健康
一提到对于查看系统运行的健康状况,可能大多数朋友考虑到的就是查看进程或者打开任务管理器,但是对于应用在真实生产环境中服务器的linux系统来说,以上两种方式都不是***效的查看方式,那么今天就给大家推 ...
- [MySQL实战-Mysql基础篇]-mysql的日志
参考文章: https://www.cnblogs.com/f-ck-need-u/archive/2018/05/08/9010872.html https://dev.mysql.com/doc/ ...
- C#中继承和多态
1.继承的概念 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用已存在的类的功能. 为了提高软件模块的可复用性和可扩充性,以便提高软件的开发效率,我们总 ...
- Mysql资料 锁机制
目录 一.简介 二.类型 三.操作 四.死锁 第一种情况 第二种情况 第三种情况 一.简介 数据库和操作系统一样,是一个多用户使用的共享资源.当多个用户并发地存取数据 时,在数据库中就会产生多个事务同 ...
- py脚本 获取当前运行服务的相关信息
一.简介 最近在统计系统中都部署了什么服务,但服务器太多,在没有标准化之前进行整理,还是写脚本收集方便一些. 当然还是需要人工去判断整理表格,为后面标准化做准备.脚本是python2.7的,默认的ce ...