阅读这篇文章,假设你不知道的傅里叶变换,而后来掐死我

假设看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(二)

已于2014.6.6更新。地址:傅里叶分析之掐死教程(完整版)更新于2014.06.06 - 与时间无关的故事 - 知乎专栏
html

上一篇文章发出来以后。为了掐死我,你们真是很是下工夫啊,有拿给姐姐看的,有拿给妹妹看的,还有拿给女友看的,就是为了听到一句“全然看不懂啊”。幸好我留了个心眼,否则就真的像标题配图那样了。个人文章题目是,假设看了这篇文章你“还”不懂就过来掐死我,潜台词就是在你学了,但是没学明确的状况下看了仍是不懂,才过来掐死我。

另外,想跟很是多人抱歉,因为评论太多了。时间有限,不能给每一个人回复。还望你们谅解。但是很是感谢一直在评论区帮忙解答读者问题的各位。就不一一@了。git

这里郑重感谢大连海事大学的吴楠老师,一位学识渊博、备课缜密、但授课不拘一格的年轻教师!web

当时大三他教我通讯原理。但是他先用了4结课帮咱们复习了很是多信号与系统的基本概念。那个用曲谱表明频域的概念就是他讲的。一会儿让我对这门课豁然开朗。才有了今天的这篇文章。
算法

————————————今天的定场诗有点长——————————ide

如下继续開始咱们无节操的旅程:函数

上次的关键词是:从側面看。工具

此次的关键词是:从如下看。post

在第二课最開始,我想先回答很是多人的一个问题:傅里叶分析究竟是干什么用的?这段相对照较枯燥,已经知道了的同窗可以直接跳到下一个切割线。学习

先说一个最直接的用途。无论听广播仍是看电视。咱们必定对一个词不陌生——频道。频道频道,就是频率的通道。不一样的频道就是将不一样的频率做为一个通道来进行信息传输。如下你们尝试一件事:ui

先在纸上画一个sin(x),不必定标准,意思差点儿相同便可。不是很是难吧。

好。接下去画一个sin(3x)+sin(5x)的图形。

别说标准不标准了,曲线何时上升何时降低你都不必定画的对吧?

好,画不出来没关系,我把sin(3x)+sin(5x)的曲线给你,但是前提是你不知道这个曲线的方程式。现在需要你把sin(5x)给我从图里拿出去,看看剩下的是什么。这基本是不可能作到的。

但是在频域呢?则简单的很是,无非就是几条竖线而已。

因此很是多在时域看似不可能作到的数学操做,在频域相反很是容易。

这就是需要傅里叶变换的地方。尤为是从某条曲线中去除一些特定的频率成分,这在project上称为滤波,是信号处理最重要的概念之中的一个,仅仅有在频域才干轻松的作到。

再说一个更重要,但是略微复杂一点的用途——求解微分方程。

(这段有点难度,看不懂的可以直接跳过这段)微分方程的重要性不用我过多介绍了。各行各业都用的到。但是求解微分方程倒是一件至关麻烦的事情。因为除了要计算加减乘除,还要计算微分积分。

而傅里叶变换则可以让微分和积分在频域中变为乘法和除法,大学数学瞬间变小学算术有没有。

傅里叶分析固然还有其它更重要的用途,咱们随着讲随着提。

————————————————————————————————————

如下咱们继续说相位谱:

经过时域到频域的变换。咱们获得了一个从側面看的频谱。但是这个频谱并无包括时域中全部的信息。因为频谱仅仅表明每一个相应的正弦波的振幅是多少,而没有提到相位。

基础的正弦波A.sin(wt+θ)中。振幅。频率,相位缺一不可。不一样相位决定了波的位置,因此对于频域分析,仅仅有频谱(振幅谱)是不够的,咱们还需要一个相位谱。那么这个相位谱在哪呢?咱们看下图,此次为了不图片太混论,咱们用7个波叠加的图。

鉴于正弦波是周期的,咱们需要设定一个用来标记正弦波位置的东西。在图中就是那些小红点。小红点是距离频率轴近期的波峰,而这个波峰所处的位置离频率轴有多远呢?为了看的更清楚。咱们将红色的点投影到下平面。投影点咱们用粉色点来表示。固然。这些粉色的点仅仅标注了波峰距离频率轴的距离,并不是相位。

这里需要纠正一个概念:时间差并不是相位差。假设将全部周期看做2Pi或者360度的话。相位差则是时间差在一个周期中所占的比例。咱们将时间差除周期再乘2Pi,就获得了相位差。

在完整的立体图中,咱们将投影获得的时间差依次除以所在频率的周期,就获得了最如下的相位谱。

因此。频谱是从側面看,相位谱是从如下看。下次偷看女生裙底被发现的话,可以告诉她:“对不起,我仅仅是想看看你的相位谱。”

注意到,相位谱中的相位除了0,就是Pi。

因为cos(t+Pi)=-cos(t),因此实际上相位为Pi的波仅仅是上下翻转了而已。对于周期方波的傅里叶级数,这种相位谱已是很是easy的了。

另外值得注意的是,因为cos(t+2Pi)=cos(t)。因此相位差是周期的。pi和3pi,5pi。7pi都是一样的相位。

人为定义相位谱的值域为(-pi,pi],因此图中的相位差均为Pi。


最后来一张大集合:



好了,你是否是认为咱们已经讲完傅里叶级数了?

抱歉让你失望了。以上咱们解说的仅仅是傅里叶级数的三角函数形式。

接下去才是最究极的傅里叶级数——指数形式傅里叶级数。

但是为了能更好的理解指数形式的傅里叶级数。咱们还需要一个工具来帮忙——欧拉公式。

欧拉公式,以及指数形式的傅里叶级数。咱们下一讲再讲。

谢谢你们(鞠躬)。

—————————————————————————————————————

今天讲的部分很少。但是我但愿你们可以理解,我也有本身的生活,留给知乎的时间并很少。但是我很是喜欢在知乎与别人交流的过程。上一次的那些文章你们知道我当时写了多久么?四天,天天写6小时那种。而且当时仍是在假期。主要是图太很差作了,有人问到做图的方法,事实上就是简单的MATLAB+PHOTOSHOP,做图的确是很是费时间,但是我相信作出这些图是值得的。因为我相信图必定比文字更好理解。也但愿可以将这些本身学习时的感觉和经验更完整的分享给需要的人。

因此请你们略微有点耐心,我会认真把这个故事讲完。也谢谢你们的理解和支持。

————————————————————————————————————

最后推荐一下@张苏的答案:怎样学会傅里叶变换?


我是计算机专业毕业的,想学习傅里叶变换。想用代码实现高速傅里叶变换,去实现音频降噪的功能。请问我该怎样作?

张苏算法project师

王旭宏、知乎用户、li jianq  等人赞同
———————————2014-0605——————————————————————
很多同窗但愿谈谈学习方法,我自己也是学渣(考研数学80/150),没有资格谈啊。只是我近期修了
RICE大学在edx上的相关课程“ ELEC301x Discrete Time Signals and Systems”,真的很是不错。

初步总结, 有三大长处:
1.注重实践,有大量的matlab相关的案例内容;
2.重离散、轻连续,这样创新的思路抛弃了直接研究连续带来的大量的理论负担。同一时候也很是有用。固然,假设要作研究,后面仍是要又一次认真学习连续的,这可能需要借助mit的课程了。


3.做业题有深度、有启示,是很是好的训练。

推荐下学习教材(鉴于你们批评我说这些书很差买。这里给出购买连接)。
1.新手入门:
前驱知识,微积分、线性代数及格
优秀教材:
(1)Understanding Digital Signal Processing (3rd Edition): Richard G. Lyons: 9780137027415: Amazon.com: Books
评价至关之高,注重理解。对数学要求不高
购买连接:《国外高校电子信息类优秀教材经:数字信号处理(英文影印版)》([美]莱昂斯)【摘要 书评 试读】
(2)Digital Signal Processing Using MATLAB: Vinay K. Ingle, John G. Proakis: 9781111427375: Amazon.com: Books
大量引入matlab,注重动手实践添加认知。好像也是首个创新的直接解说离散的教材。


公开课:
RiceX:ELEC301x Discrete Time Signals and Systems
也是直接进入离散主题、注重理解、注重matlab操做的好课程。


购买连接:《数字信号处理:应用MATLAB》 Vinay K.ingle, John G.Proakis【摘要 书评 试读】图书
2.进阶:
我还在学。学完推荐

谈谈学习成本:
经济成本:我推荐的书国内亚马逊都有正版,加起来二百出头,公开课需要v~P·N工具,一年二百左右。

新东方一个破辅导班3000+,一部红米手机799.
时间成本:no pain, no gain。

最后恬不知耻的秀秀rice给个人课程成绩,你们必定会作的更好。


下载连接
Dropbox - ELEC301x Discrete Time Signals and Systems.pdf

截图:



————---------————我正在和论文搏斗 先给个简单答案吧——————————
对工科生来说,傅里叶变换可以从三个层次来看:
傅里叶变换(Fourier Transform。FT)-> 离散傅里叶变换(Discrete Fourier Transform, DFT)-> 高速傅里叶变换(Fast Fourier Transform)
FT是理论基础,以FT为理论基础,可以完毕从频率预计到求解微分方程各式各样的问题;
DFT是指信号被採样以后你会获得离散(如你需要处理的音频信号被採样)而非连续的信号,这个时候就需要DFT来告诉你怎样处理并告知你一些离散状况下的特殊问题;
FFT是一种计算DFT的算法,计算复杂度很是低也就是运行起来很是快的意思。


举个样例吧:有人经过在小黑屋按钢琴的一个键不松会产生一个单音信号给你传递情报。
y(t)=\sin(2\pi ft+\theta)
信号的频率f取决于他所按的键。你看不见他。却但愿获知信号的频率。

怎么办?
1.FT的理论就会告诉你可以经过傅里叶变化获知这个频率。


但是这个信号飘荡在空中,你需要先经过採样获得一个离散信号
y[i]=\sin(2\pi \frac{f}{f_{s}}i+\theta) \  \ \ \ \ (i=1,2,...N)
(f_{s}是採样频率,香农和奈奎斯特告诉咱们,需要f_{s}>2f)。
2.获得离散信号后怎样计算f。DFT就会告诉你怎么办;
3.你嫌DFT太慢了怎么办。FFT就粉墨登场了。

从你计算机的专业背景和但愿作音频降噪的需求来看。你需要掌握的是DFT和FFT我建议
1. 找本高等数学的书,花半个小时看看什么是FT;
2. 强烈推荐《Understanding Digital Signal Processing》。一本仅仅需高中数学,且英文比中文都易懂的书,在amazon.com上有很是高的评价(Understanding Digital Signal Processing (3rd Edition): Richard G. Lyons: 9780137027415: Amazon.com: Books),国内有卖,建议认真看第一、二、3章。

你会对离散傅里叶变换有很是深刻的了解。
3. 实践出真知,看完什么理论,马上用matlab试试看,会理解的很是透彻;
4. project可以沿着matlab->VC->DSP->FPGA的道路前进。

至于你说的语音降噪问题,需要首先用DFT分析信号与噪声的频率特性,降噪需要设计滤波器完毕。变化与滤波是信号处理的两大主题,看看《Understanding Digital Signal Processing》的后面几章就明确了。

语音降噪问题已经发展成为一个成熟的子学科,要作进一步研究就需要你本身努力了。

相关文章
相关标签/搜索