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

Heinrich · 15 天前

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

上一篇文章发出来之后,为了掐死我,大家真是很下工夫啊,有拿给姐姐看的,有拿给妹妹看的,还有拿给女朋友看的,就是为了听到一句“完全看不懂啊”。幸亏我留了个心眼,不然就真的像标题配图那样了。我的文章题目是,如果看了这篇文章你“还”不懂就过来掐死我,潜台词就是在你学了,但是没学明白的情况下看了还是不懂,才过来掐死我。

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

这里郑重感谢大连海事大学的吴楠老师,一位学识渊博、备课缜密、但授课不拘一格的年轻教师!当时大三他教我通信原理,但是他先用了4结课帮我们复习了很多信号与系统的基本概念,那个用乐谱代表频域的概念就是他讲的,一下子让我对这门课豁然开朗,才有了今天的这篇文章。

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

下面继续开始我们无节操的旅程:

上次的关键词是:从侧面看。这次的关键词是:从下面看。

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

先说一个最直接的用途。无论听广播还是看电视,我们一定对一个词不陌生——频道。频道频道,就是频率的通道,不同的频道就是将不同的频率作为一个通道来进行信息传输。下面大家尝试一件事:

先在纸上画一个sin(x),不一定标准,意思差不多就行。不是很难吧。

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

别说标准不标准了,曲线什么时候上升什么时候下降你都不一定画的对吧?

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

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

所以很多在时域看似不可能做到的数学操作,在频域相反很容易。这就是需要傅里叶变换的地方。尤其是从某条曲线中去除一些特定的频率成分,这在工程上称为滤波,是信号处理最重要的概念之一,只有在频域才能轻松的做到。

再说一个更重要,但是稍微复杂一点的用途——求解微分方程。(这段有点难度,看不懂的可以直接跳过这段)微分方程的重要性不用我过多介绍了。各行各业都用的到。但是求解微分方程却是一件相当麻烦的事情。因为除了要计算加减乘除,还要计算微分积分。而傅里叶变换则可以让微分和积分在频域中变为乘法和除法,大学数学瞬间变小学算术有没有。

傅里叶分析当然还有其他更重要的用途,我们随着讲随着提。

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

下面我们继续说相位谱:

通过时域到频域的变换,我们得到了一个从侧面看的频谱,但是这个频谱并没有包含时域中全部的信息。因为频谱只代表每一个对应的正弦波的振幅是多少,而没有提到相位。基础的正弦波A.sin(wt+θ)中,振幅,频率,相位缺一不可,不同相位决定了波的位置,所以对于频域分析,仅仅有频谱(振幅谱)是不够的,我们还需要一个相位谱。那么这个相位谱在哪呢?我们看下图,这次为了避免图片太混论,我们用7个波叠加的图。

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

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

在完整的立体图中,我们将投影得到的时间差依次除以所在频率的周期,就得到了最下面的相位谱。所以,频谱是从侧面看,相位谱是从下面看。下次偷看女生裙底被发现的话,可以告诉她:“对不起,我只是想看看你的相位谱。”

注意到,相位谱中的相位除了0,就是Pi。因为cos(t+Pi)=-cos(t),所以实际上相位为Pi的波只是上下翻转了而已。对于周期方波的傅里叶级数,这样的相位谱已经是很简单的了。另外值得注意的是,由于cos(t+2Pi)=cos(t),所以相位差是周期的,pi和3pi,5pi,7pi都是相同的相位。人为定义相位谱的值域为(-pi,pi],所以图中的相位差均为Pi。

最后来一张大集合:

好了,你是不是觉得我们已经讲完傅里叶级数了?

抱歉让你失望了,以上我们讲解的只是傅里叶级数的三角函数形式。接下去才是最究极的傅里叶级数——指数形式傅里叶级数。但是为了能更好的理解指数形式的傅里叶级数,我们还需要一个工具来帮忙——欧拉公式。

欧拉公式,以及指数形式的傅里叶级数,我们下一讲再讲。谢谢大家(鞠躬)。

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

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

所以请大家稍微有点耐心,我会认真把这个故事讲完。也谢谢大家的理解和支持。

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

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

如何学会傅里叶变换?

我是计算机专业毕业的,想学习傅里叶变换,想用代码实现快速傅里叶变换,去实现音频降噪的功能,请问我该如何做?

张苏,算法工程师

王旭宏、知乎用户、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的算法,计算复杂度很低也就是执行起来很快的意思。
举个例子吧:有人通过在小黑屋按钢琴的一个键不松会产生一个单音信号给你传递情报,

信号的频率取决于他所按的键。你看不见他,却希望获知信号的频率。怎么办?
1.FT的理论就会告诉你可以通过傅里叶变化获知这个频率。
但是这个信号飘荡在空中,你需要先通过采样得到一个离散信号

(是采样频率,香农和奈奎斯特告诉我们,需要)。
2.得到离散信号后如何计算,DFT就会告诉你怎么办;
3.你嫌DFT太慢了怎么办,FFT就粉墨登场了。

从你计算机的专业背景和希望做音频降噪的需求来看。你需要掌握的是DFT和FFT我建议
1. 找本高等数学的书,花半个小时看看什么是FT;
2. 强烈推荐《Understanding Digital Signal Processing》,一本只需高中数学,且英文比中文都易懂的书,在http://amazon.com上有很高的评价(Understanding Digital Signal Processing (3rd Edition): Richard G. Lyons: 9780137027415: Amazon.com: Books),国内有卖,建议认真看第1、2、3章。你会对离散傅里叶变换有很深入的了解;
3. 实践出真知,看完什么理论,立马用matlab试试看,会理解的很透彻;
4. project可以沿着matlab->VC->DSP->FPGA的道路前进。

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

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

2014-06-09 24 条评论 感谢 分享 收藏 • 没有帮助 • 举报

如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧相关推荐

  1. 学完计算机还是不懂,如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧...

    如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(二) Heinrich ·  15 天前 已于2014.6.6更新,地址:傅里叶分析之掐死教程(完整版)更新于2014.06.06 - 与时间无关 ...

  2. 如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(下)

    上一篇文章发出来之后,为了掐死我,大家真是很下工夫啊,有拿给姐姐看的,有拿给妹妹看的,还有拿给女朋友看的,就是为了听到一句"完全看不懂啊".幸亏我留了个心眼,不然就真的像标题配图那 ...

  3. 如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(一)

    这篇文章的核心思想就是: 要让读者在不看任何数学公式的情况下理解傅里叶分析. 傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式.但不幸的是,傅里叶分析的公式看起来太复杂了 ...

  4. [转载]如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧

    http://blog.jobbole.com/69407/ 转载于:https://www.cnblogs.com/eustoma/p/4492214.html

  5. 看完这篇文章,还不懂nginx,算我输

    看完这篇文章,还不懂nginx,算我输 参考:https://mp.weixin.qq.com/s/PeNWaCDf_6gp2fCQa0Gvng 1. Nginx产生~ Nginx 同 Apache ...

  6. 看了此文还不懂傅里叶变换,你来掐死我吧

    看了本文你还不懂傅里叶变换,那就来掐死我吧 作者:韩昊(德国斯图加特大学通信与信息工程专业硕士生) 提要:这篇文章的核心思想就是:要让读者在不看任何数学公式的情况下理解傅里叶分析. 傅里叶分析不仅仅是 ...

  7. 如果看了此文,你还不懂傅里叶变换,那就过来掐死我吧(完整版)

    原址 谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师. 转载的同学请保留上面这句话,谢谢.如果还能保留文章来源就更感激不尽了. --更新于2014.6.6,想直接看更新的同学 ...

  8. 手把手教你完成CSDN对接百度统计 看完这篇文章你还不会对接 欢迎您提刀顺着网线来砍我!!!!

    大家好,我是:じ☆ve朽木,开发经验都是一步一步慢慢积累的,没有谁生来就具有的,只要我们付出了努力,肯定就会有收获!进入我的博客,带你了解Java知识,js小技巧,带你玩转高端物联网.博客地址为:じ☆ ...

  9. [转帖]看完这篇文章你还敢说你懂JVM吗?

    看完这篇文章你还敢说你懂JVM吗? 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m,Linux自身使用 ...

最新文章

  1. c语言求跳水运动员成绩,跳水排名_C语言编程实例_C语言_最全面的网站教程
  2. linux 安装安装rz/sz 和 ssh
  3. CentOS安装网络代理软件
  4. P1433 吃奶酪 回溯法 优化
  5. boost::gil::color_spaces_are_compatible用法的测试程序
  6. C++函数中返回引用和返回值的区别
  7. 前端学习(872):注册事件兼容性处理
  8. iOS 10 之后权限设置
  9. layer ajax 用法,layer加载遮罩层使用 Ajax Loading Demo
  10. python 字符串 find_Python 字符串 find() 方法
  11. 阻塞非阻塞,同步异步四种I/O方式
  12. Centos6.5 mysql折腾记
  13. 锁定计算机时共享打印机,共享打印机需要密码,怎么解决?
  14. 挂机宝是服务器还是虚拟主机,挂机宝属于虚拟主机吗
  15. 数据仓库是如何分层的?
  16. Wap模拟器,用电脑浏览器浏览手机wap网站
  17. 全国机器人足球锦标赛
  18. GitHub消除马赛克项目
  19. 中美创客大赛历年获奖作品展
  20. 用24张图介绍九大数据结构

热门文章

  1. 2010年医师资格考试新变革
  2. 【Code pratice】—— 成绩统计、星系炸弹、特别数的和、蛇形填数、日志统计
  3. [django项目] 实现用户登录登出功能
  4. java 单点登出_CAS单点登出的原理
  5. 三年级学生写数学用计算机算,沪教版三年级数学下册使用计算器计算检测题
  6. 蹬过三轮、卖过小商品、复读两次才考上大学,中国首富凭什么是他?
  7. 职场办公居然不会打印?纸型、单双面及PPT打印设置,干货教程!
  8. 适用于 Web 开发者的 Atom 编辑器插件
  9. Linux 定时关机 crontab 定时执行任务
  10. iOS 推送语音播报(类似支付宝微信的收款提醒)