[傅里叶变换及其应用学习笔记] 九. 继续卷积的讨论

这份是本人的学习笔记,课程为网易公开课上的斯坦福大学公开课:傅里叶变换及其应用。

 

卷积在滤波中的应用

浑浊度(Turbidity)研究是关于测量水的清澈度的研究。大致方法是把光传感器放置到深水区域,然后测量光线的昏暗程度,测量出来的值将随时间变化。

(由于没有真实数据,下面用mathematica比较粗糙地模拟水域的浑浊度数据)

Fourier 9_1        Fourier 9_3——

能看到信号主要集中在低频,我们需要把毛刺去除,也就是把高频去除,在频域进行低通滤波(Low Pass Filtering)

Fourier 9_3    Fourier 9_4    Fourier 9_5

滤波后的波形如下

Fourier 9_2

频域运算:$\pi_{2\nu_c} F(s)$;时域运算为卷积:$2\nu_c sinc(2\nu_c t)*f(t)$。

 

滤波概念

滤波(Filtering)通常等同于卷积,滤波是由滤波器实现的。

滤波器(Filter)是一个输入可变的函数(信号)与一个固定的函数(信号)进行卷积运算的系统。这个固定的信号叫做脉冲响应(impulse response)。

$g \quad = \quad f \qquad * \qquad h$
$\qquad output \qquad input \qquad impulse \ response$

卷积是在时域的表示方法,一般来说,频域的运算会比时域简单许多,因为频域只需执行相乘运算。

$G(s) = F(s)H(s)$

$H(s)$被称为传递函数(transfer function),在设计滤波器时通常是设计合适的传递函数$H(s)$。

 

下面是比较常用的滤波器。

低通滤波器(low pass filter),常用于图像压缩。

image

高通滤波器(high pass filter),常用于边缘检测(edge detection)

image

带通滤波器(band pass filter)

image

 

 

卷积的含义

教授认为只需要从频域理解为函数的相乘即可,而在时域上不需要去具象化卷积。(I think  it is equally idiotic to try to visualize convolution. I think the way to visualize convolution, if there is a way, is to think in terms of multiplying in the frequency domain.)

 

卷积的性质

一般来说$f*g$通常比单独的$f$和$g$更加平滑。

如:矩形函数$\Pi$是不连续的,两个$\Pi$函数的卷积是三角函数$\Lambda$,是连续的。

$\mathcal{F}(\Pi * \Pi) = (\mathcal{F} \Pi)(\mathcal{F} \Pi) = sinc^2 = \mathcal{F} \Lambda$

 

傅里叶导数定理

对原函数进行微分后,它的傅里叶变换等于其原函数的傅里叶变换乘以$2\pi is$

$\mathcal{F}(f')(s) = 2\pi is(\mathcal{F} f)(s)$

证明过程如下:

傅里叶逆变换有:

$f(t) = \displaystyle{\int_{-\infty}^{\infty} F(s)e^{2\pi ist}ds }$

对其求微分,

$\begin{align*}
\frac{\partial f}{\partial t}
&= \int_{-\infty}^{\infty}F(s)(2\pi ise^{2\pi ist})ds \\
&= \int_{-\infty}^{\infty}(2\pi isF(s))e^{2\pi ist}ds \\
\end{align*}$

则有$f'$与$2\pi isF(s)$为傅里叶变换的关系

$f' \ \leftrightarrow \ 2\pi isF(s)$

 

推广开来有

$\mathcal{F}(f^n)(s) = (2\pi is)^n(\mathcal{F} f)(s)$

 

 

无限长柱上的热方程

$U(x,t)$表示时间$t$,位置$x$上的温度。

image

已知初始温度为$U(x,0) = f(x)$,热方程为$U_t = \frac{1}{2}U_{xx}$。

 

$U(x,t)$的求解过程如下:

对位置变量进行$x$求傅里叶变换,假设变换的结果为$U(s,t)$。

对热方程等号左边进行傅里叶变换,

$\begin{align*}
\mathcal{F}(U_t)
&= \int_{-\infty}^{\infty}e^{-2\pi isx} \frac{\partial}{\partial t}U(x,t)dx  \\
&= \frac{\partial}{\partial t}\int_{-\infty}^{\infty} e^{-2\pi isx}U(x,t)dx \\
&= \frac{\partial}{\partial t}U(s,t)
\end{align*}$

对热方程等号右边进行傅里叶变换,

$\mathcal{F}(\frac{1}{2}U_{xx}) = \frac{1}{2}(2\pi is)^2U(s,t) = –2\pi ^2s^2U(s,t)$

即有

$\frac{\partial}{\partial t}U(s,t) = –2\pi^2s^2U(s,t)$

求偏微分方程,得

$U(s,t) = U(s,0)e^{-2\pi^2s^2t}$

$U(s,0) = \displaystyle{\int_{-\infty}^{\infty}U(x,0)e^{-2\pi isx}dx=\int_{-\infty}^{\infty}f(x)e^{-2\pi isx}dx = F(s) }$

把$U(s,0)$的结果代入$U(s,t)$,得

$U(s,t) = F(s)e^{-2\pi ^2s^2t}$

 

转换为卷积格式

$e^{-2pi ^2s^2t} = \mathcal{F}(\frac{1}{\sqrt{2\pi t}}e^{\frac{x^2}{2t}})$

$\begin{align*}
U(s,t)
&= F(s)e^{-2\pi ^2s^2t}\\
&= (\mathcal{F} f)(\mathcal{F} (\frac{1}{\sqrt{2\pi t}}e^{\frac{x^2}{2t}}))\\
&= \mathcal{F}(f* \frac{1}{\sqrt{2\pi t}}e^{\frac{x^2}{2t}})
\end{align*}$

$U(x,t) = f(x) * \frac{1}{\sqrt{2\pi t}}e^{\frac{x^2}{2t}}$

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++多态相关关问题及虚表剖析

关于C多态的问题:(基于Visual Studio 2012编译器) 一、多态引入 1、对象的类型: (1) 静态的类型:对象声明时的类型,在编译的时候确定 (2) 动态的类型&…

C++调用约定

<div class"markdown_views"><p>有一定C开发经验的人一定对”__cdecl、__stdcall、__fastcall”肯定不陌生吧&#xff01;但你真正理解了吗&#xff1f;是的&#xff0c;我曾在这采了无数个坑&#xff0c;栽了无数个跟头&#xff0c;终于忍无可忍要把它总…

C++动态绑定及返回类型协变

C多态之动态绑定&#xff1a; 1、概念&#xff1a;在程序执行期间(非编译期)判断所引用对象的实际类型&#xff0c;根据其实际类型调用相应的方法。 使用virtual关键字修饰类的成员函数时&#xff0c;指明该函数为虚函数&#xff0c;派生类需要重新实现&#xff0c;编译器将实…

使用ucontext组件实现的coroutine代码分析

coroutine一般翻译过来就是协程&#xff0c;类似于线程可以切换&#xff0c;而跟线程是由操作系统调度器来实现切换不一样&#xff0c;协程由用户程序自己调度进行切换。我以前也看过协程相关的内容&#xff0c;但没有自己去实现过。最近搞OpenStack&#xff0c;OpenStack各个模…

C++模板剖析:函数模板、类模板解析

C中关于模板&泛型编程问题&#xff1a; 问题引入&#xff1a;何编写一个通用加法函数&#xff1f; &#xff08;1&#xff09;使用函数重载&#xff0c;针对每个所需相同行为的不同类型重新实现它 int Add(const int &_iLeft, const int&_iRight) { return (_iL…

Android Studio 1.1的安装和遇到的坑

Google的Android Studio 出1.0稳定版本也有很久的时间了&#xff0c;一直喜欢Jetbrains公司的IDE&#xff0c;不同语言的IDE操作习惯都比较统一。 而Android Studio 是基于IntelliJ IDEA的社区版开发的 &#xff0c;怎么也要尝尝鲜才行。 今天安装了下&#xff0c;被几个小坑卡…

BestCoder Round #39 解题报告

现场只做出前三题w 不过不管怎样这既是第一次认真打BC 又是第一次体验用在线编译器调代码 订正最后一题花了今天一整个下午&#xff08;呜呜 收获还是比较大的^_^ Delete wld有n个数(a1,a2,...,an)&#xff0c;他希望进行k次删除一个数的操作&#xff0c;使得最后剩下的n−k个数…

linux :vim 实现命令行下输出进度条

1、 进度条原理&#xff1a; 进度条的的动态增长是利用人的视觉短暂停留效果的&#xff0c;不断从输出缓冲区刷新出相同的内容&#xff0c;在肉眼看来进度条在不断的增长。 在显示器上先输出[# ][%1] 刷新一次之后&#xff0c; …

***jquery选择器 之 获取父级元素、同级元素、子元素

一、获取父级元素1、 parent([expr]): 获取指定元素的所有父级元素 <div id"par_div"><a id"href_fir" href"#">href_fir</a><a id"href_sec" href"#">href_sec</a><a id"href_thr&q…

Sql Server字符串函数

字符串函数用于对字符和二进制字符进行各种操作 1.ASCII()函数 ASCII(character_expression)函数用于返回字符串表达式中最左侧的ASCII代码值。参数character_expression必须是一个char或varchar类型的字符串表达式。 eg: select ASCII(s),ASCII(sql),ASCII(1);执行结果如图:字…

linux 编辑器vim配置

1、 基本配置 对vim进行配置的目的&#xff1a; 进行vim配置&#xff0c;可以让我们在后续敲代码更加方便。按F5可以直接编译并执行C、C代码以及执行shell脚本&#xff1b;按“F8”可进行C、C代码的调试&#xff1b;“Ctrl A”为全选并复制快捷键&#xff0c;方便复…

centos 7上ambari安装试用

2019独角兽企业重金招聘Python工程师标准>>> 1、有三台centos7&#xff0c;名字分别是ws11.localdomain, ws12.localdomain, ws13.localdomain。配置epel源(安装epel-release)。 2、配置root用户ssh无密码访问。 3、安装ntp对时服务。 4、关闭防火墙。centos7下使…

进程管理—进程描述符(task_struct)

本文章转载自&#xff1a;http://blog.csdn.net/qq_26768741/article/details/54348586?locationNum4&fps1 前言 当把一个程序加载到内存当中&#xff0c;此时&#xff0c;这个时候就有了进程&#xff0c;关于进程&#xff0c;有一个相关的叫做进程控制块&#xff08;PCB&…

如何使用emacs编写c语言程序,并编译运行

vi和emacs被分别被称为编辑器之神和神之编辑器。vi的入门精通都很难&#xff0c;emacs入门容易&#xff0c;精通难&#xff1b;vi使用起来不停地切换模式&#xff0c;而emacs则不停地ctrl&#xff0c;meta等组合键。因此&#xff0c;高德纳大师说操作Emacs&#xff0c;就像弹奏…

操作系统中常见的进程调度算法

一、调度与调度算法 调度&#xff1a;操作系统管理了系统的有限资源&#xff0c;当有多个进程&#xff08;或多个进程发出的请求&#xff09;要使用这些资源时&#xff0c;因为资源的有限性&#xff0c;必须按照一定的原则选择进程&#xff08;请求&#xff09;来占用资源。这…

粘滞位 File文件内容

t权限&#xff08;粘滞位)&#xff1a; 是‘不可删除’权限&#xff0c;就是说即使某用户拥有这个文件的rwx权限&#xff0c;可以随意修改文件内容&#xff0c;但是就是不能删除&#xff0c;甚至不能修改文件名&#xff0c;只有root才行。t权限也可以直接用 chmod ot/at fil…

QQuickRenderControl

2019独角兽企业重金招聘Python工程师标准>>> http://doc.qt.io/qt-5/qquickrendercontrol.html http://translate.google.com.hk/translate?hlzh-CN&slauto&tlen&uhttp%3A%2F%2Fhabrahabr.ru%2Fpost%2F247477%2F http://www.kdab.com/overview-qt3d-2-…

线程的控制(创建、等待、终止)、分离线程

一、线程控制 1、线程&#xff1a;线程是资源调度的基本单位&#xff0c;线程是进程内部的一个执行流&#xff0c;在进程的地址空间内运行。在Linux 下没有真正意义上的线程&#xff0c;线程是用进程模拟的&#xff0c;又被称为轻量级进程。 2、由于同⼀一进程的多个线程共享同…

从netty-example分析Netty组件

分析netty从源码开始 准备工作&#xff1a; 1.下载源代码&#xff1a;https://github.com/netty/netty.git 我下载的版本为4.1 2. eclipse导入maven工程。 netty提供了一个netty-example工程&#xff0c; 分类如下&#xff1a; Fundamental Echo ‐ the very basic client and …

cep

cep posted on 2015-12-16 17:03 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/ruiy/p/5051673.html