zoukankan      html  css  js  c++  java
  • 阅读这篇文章,假设你不知道的傅里叶变换,然后来掐死我

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

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

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

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

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

    当时大三他教我通信原理。可是他先用了4结课帮我们复习了非常多信号与系统的基本概念。那个用乐谱代表频域的概念就是他讲的。一下子让我对这门课豁然开朗。才有了今天的这篇文章。

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

    以下继续開始我们无节操的旅程:

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

    这次的关键词是:从以下看。

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

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

    先在纸上画一个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(2pi ft+	heta)
    信号的频率f取决于他所按的键。你看不见他。却希望获知信号的频率。

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


    可是这个信号飘荡在空中,你须要先通过採样得到一个离散信号
    y[i]=sin(2pi frac{f}{f_{s}}i+	heta)       (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),国内有卖,建议认真看第1、2、3章。

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

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

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


  • 相关阅读:
    树上路径(树链剖分)
    P4178 Tree(点分治)
    P2146 [NOI2015] 软件包管理器(树链剖分)
    P1903 [国家集训队]数颜色 / 维护队列 (带修莫队)
    poj1182 食物链(带权并查集)
    poj3026 Borg Maze(bfs+prim)
    最佳牛围栏(二分)
    串(dp)
    POJ1258 Agri-Net
    POJ2031 Building a Space Station(prim)
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4906845.html
Copyright © 2011-2022 走看看