当前位置 : 主页 > 网络编程 > 其它编程 >

傅里叶变换【完整版】

来源:互联网 收集:自由互联 发布时间:2023-07-02
原文出处韩昊欢迎分享原创到伯乐头条12345678910作者韩昊知乎Heinrich微博花生油工人知乎专栏 韩昊   欢迎分享原创到伯乐头条 1 2 3 4 5 6 7 8 9 10 作 者韩 昊 知 乎Heinrich 微 博花生油工人
原文出处韩昊欢迎分享原创到伯乐头条12345678910作者韩昊知乎Heinrich微博花生油工人知乎专栏 韩昊   欢迎分享原创到伯乐头条 1 2 3 4 5 6 7 8 9 10 作 者韩 昊 知 乎Heinrich 微 博花生油工人 知乎专栏与时间无关的故事 谨以此文献给大连海事大学的吴楠老师柳晓鸣老师王新年老师以及张晶泊老师。 转载的同学请保留上面这句话谢谢。如果还能保留文章来源就更感激不尽了。 ——更新于2014.6.6想直接看更新的同学可以直接跳到第四章————

我保证这篇文章和你以前看过的所有文章都不同这是 2012 年还在果壳的时候写的但是当时没有来得及写完就出国了……于是拖了两年嗯我是拖延症患者……

这篇文章的核心思想就是

要让读者在不看任何数学公式的情况下理解傅里叶分析。

傅里叶分析不仅仅是一个数学工具更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是傅里叶分析的公式看起来太复杂了所以很多大一新生上来就懵圈并从此对它深恶痛绝。老实说这么有意思的东西居然成了大学里的杀手课程不得不归咎于编教材的人实在是太严肃了。您把教材写得好玩一点会死吗会死吗所以我一直想写一个有意思的文章来解释傅里叶分析有可能的话高中生都能看懂的那种。所以不管读到这里的您从事何种工作我保证您都能看懂并且一定将体会到通过傅里叶分析看到世界另一个样子时的快感。至于对于已经有一定基础的朋友也希望不要看到会的地方就急忙往后翻仔细读一定会有新的发现。

————以上是定场诗————

下面进入正题

抱歉还是要啰嗦一句其实学习本来就不是易事我写这篇文章的初衷也是希望大家学习起来更加轻松充满乐趣。但是千万千万不要把这篇文章收藏起来或是存下地址心里想着以后有时间再看。这样的例子太多了也许几年后你都没有再打开这个页面。无论如何耐下心读下去。这篇文章要比读课本要轻松、开心得多……

一、什么是频域

从我们出生我们看到的世界都以时间贯穿股票的走势、人的身高、汽车的轨迹都会随着时间发生改变。这种以时间作为参照来观察动态世界的方法我们称其为时域分析。而我们也想当然的认为世间万物都在随着时间不停的改变并且永远不会静止下来。但如果我告诉你用另一种方法来观察世界的话你会发现世界是永恒不变的你会不会觉得我疯了我没有疯这个静止的世界就叫做频域。

先举一个公式上并非很恰当但意义上再贴切不过的例子

在你的理解中一段音乐是什么呢

这是我们对音乐最普遍的理解一个随着时间变化的震动。但我相信对于乐器小能手们来说音乐更直观的理解是这样的

好的下课同学们再见。

是的其实这一段写到这里已经可以结束了。上图是音乐在时域的样子而下图则是音乐在频域的样子。所以频域这一概念对大家都从不陌生只是从来没意识到而已。

现在我们可以回过头来重新看看一开始那句痴人说梦般的话世界是永恒的。

将以上两图简化

时域

频域

在时域我们观察到钢琴的琴弦一会上一会下的摆动就如同一支股票的走势而在频域只有那一个永恒的音符。

所以

你眼中看似落叶纷飞变化无常的世界实际只是躺在上帝怀中一份早已谱好的乐章。

抱歉这不是一句鸡汤文而是黑板上确凿的公式傅里叶同学告诉我们任何周期函数都可以看作是不同振幅不同相位正弦波的叠加。在第一个例子里我们可以理解为利用对不同琴键不同力度不同时间点的敲击可以组合出任何一首乐曲。

而贯穿时域与频域的方法之一就是传中说的傅里叶分析。傅里叶分析可分为傅里叶级数Fourier Serie和傅里叶变换(Fourier Transformation)我们从简单的开始谈起。

 

二、傅里叶级数(Fourier Series)的频谱

还是举个栗子并且有图有真相才好理解。

如果我说我能用前面说的正弦曲线波叠加出一个带 90 度角的矩形波来你会相信吗你不会就像当年的我一样。但是看看下图

第一幅图是一个郁闷的正弦波 cosx

第二幅图是 2 个卖萌的正弦波的叠加 cos (x) a.cos (3x)

第三幅图是 4 个发春的正弦波的叠加

第四幅图是 10 个便秘的正弦波的叠加

随着正弦波数量逐渐的增长他们最终会叠加成一个标准的矩形大家从中体会到了什么道理

只要努力弯的都能掰直

随着叠加的递增所有正弦波中上升的部分逐渐让原本缓慢增加的曲线不断变陡而所有正弦波中下降的部分又抵消了上升到最高处时继续上升的部分使其变为水平线。一个矩形就这么叠加而成了。但是要多少个正弦波叠加起来才能形成一个标准 90 度角的矩形波呢不幸的告诉大家答案是无穷多个。上帝我能让你们猜着我

不仅仅是矩形你能想到的任何波形都是可以如此方法用正弦波叠加起来的。这是没有接触过傅里叶分析的人在直觉上的第一个难点但是一旦接受了这样的设定游戏就开始有意思起来了。

还是上图的正弦波累加成矩形波我们换一个角度来看看

在这几幅图中最前面黑色的线就是所有正弦波叠加而成的总和也就是越来越接近矩形波的那个图形。而后面依不同颜色排列而成的正弦波就是组合为矩形波的各个分量。这些正弦波按照频率从低到高从前向后排列开来而每一个波的振幅都是不同的。一定有细心的读者发现了每两个正弦波之间都还有一条直线那并不是分割线而是振幅为 0 的正弦波也就是说为了组成特殊的曲线有些正弦波成分是不需要的。

这里不同频率的正弦波我们成为频率分量。

好了关键的地方来了

如果我们把第一个频率最低的频率分量看作“1”我们就有了构建频域的最基本单元。

对于我们最常见的有理数轴数字“1”就是有理数轴的基本单元。

好吧数学称法为——基。在那个年代这个字还没有其他奇怪的解释后面还有正交基这样的词汇我会说吗?

时域的基本单元就是“1 秒”如果我们将一个角频率为\omega_{0} 的正弦波 cos\omega_{0} t看作基础那么频域的基本单元就是\omega_{0}

有了“1”还要有“0”才能构成世界那么频域的“0”是什么呢cos0t就是一个周期无限长的正弦波也就是一条直线所以在频域0 频率也被称为直流分量在傅里叶级数的叠加中它仅仅影响全部波形相对于数轴整体向上或是向下而不改变波的形状。

接下来让我们回到初中回忆一下已经死去的八戒啊不已经死去的老师是怎么定义正弦波的吧。

正弦波就是一个圆周运动在一条直线上的投影。所以频域的基本单元也可以理解为一个始终在旋转的圆

想看动图的同学请戳这里

File:Fourier series square wave circles animation.gif

File:Fourier series sawtooth wave circles animation.gif

以及这里

File:Fourier series sawtooth wave circles animation.gif

点出去的朋友不要被 wiki 拐跑了wiki 写的哪有这里的文章这么没节操是不是。

介绍完了频域的基本组成单元我们就可以看一看一个矩形波在频域里的另一个模样了

这是什么奇怪的东西

这就是矩形波在频域的样子是不是完全认不出来了教科书一般就给到这里然后留给了读者无穷的遐想以及无穷的吐槽其实教科书只要补一张图就足够了频域图像也就是俗称的频谱就是——

再清楚一点

可以发现在频谱中偶数项的振幅都是0也就对应了图中的彩色直线。振幅为 0 的正弦波。

File:Fourier series and transform.gif

动图请戳

File:Fourier series and transform.gif

老实说在我学傅里叶变换时维基的这个图还没有出现那时我就想到了这种表达方法而且后面还会加入维基没有表示出来的另一个谱——相位谱。

但是在讲相位谱之前我们先回顾一下刚刚的这个例子究竟意味着什么。记得前面说过的那句“世界是静止的”吗估计好多人对这句话都已经吐槽半天了。想象一下世界上每一个看似混乱的表象实际都是一条时间轴上不规则的曲线但实际这些曲线都是由这些无穷无尽的正弦波组成。我们看似不规律的事情反而是规律的正弦波在时域上的投影而正弦波又是一个旋转的圆在直线上的投影。那么你的脑海中会产生一个什么画面呢

我们眼中的世界就像皮影戏的大幕布幕布的后面有无数的齿轮大齿轮带动小齿轮小齿轮再带动更小的。在最外面的小齿轮上有一个小人——那就是我们自己。我们只看到这个小人毫无规律的在幕布前表演却无法预测他下一步会去哪。而幕布后面的齿轮却永远一直那样不停的旋转永不停歇。这样说来有些宿命论的感觉。说实话这种对人生的描绘是我一个朋友在我们都是高中生的时候感叹的当时想想似懂非懂直到有一天我学到了傅里叶级数……

三、傅里叶级数Fourier Series的相位谱

上一章的关键词是从侧面看。这一章的关键词是从下面看。

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

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

先在纸上画一个sinx不一定标准意思差不多就行。不是很难吧。

好接下去画一个sin3xsin5x的图形。

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

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

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

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

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

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

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

下面我们继续说相位谱

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

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

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

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

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

最后来一张大集合

四、傅里叶变换Fourier Tranformation

相信通过前面三章大家对频域以及傅里叶级数都有了一个全新的认识。但是文章在一开始关于钢琴琴谱的例子我曾说过这个栗子是一个公式错误但是概念典型的例子。所谓的公式错误在哪里呢

傅里叶级数的本质是将一个周期的信号分解成无限多分开的离散的正弦波但是宇宙似乎并不是周期的。曾经在学数字信号处理的时候写过一首打油诗

往昔连续非周期

回忆周期不连续

任你ZT、DFT

还原不回去。

请无视我渣一样的文学水平……

在这个世界上有的事情一期一会永不再来并且时间始终不曾停息地将那些刻骨铭心的往昔连续的标记在时间点上。但是这些事情往往又成为了我们格外宝贵的回忆在我们大脑里隔一段时间就会周期性的蹦出来一下可惜这些回忆都是零散的片段往往只有最幸福的回忆而平淡的回忆则逐渐被我们忘却。因为往昔是一个连续的非周期信号而回忆是一个周期离散信号。

是否有一种数学工具将连续非周期信号变换为周期离散信号呢抱歉真没有。

比如傅里叶级数在时域是一个周期且连续的函数而在频域是一个非周期离散的函数。这句话比较绕嘴实在看着费事可以干脆回忆第一章的图片。

而在我们接下去要讲的傅里叶变换则是将一个时域非周期的连续信号转换为一个在频域非周期的连续信号。

算了还是上一张图方便大家理解吧

或者我们也可以换一个角度理解傅里叶变换实际上是对一个周期无限大的函数进行傅里叶变换。

所以说钢琴谱其实并非一个连续的频谱而是很多在时间上离散的频率但是这样的一个贴切的比喻真的是很难找出第二个来了。

因此在傅里叶变换在频域上就从离散谱变成了连续谱。那么连续谱是什么样子呢

你见过大海么

为了方便大家对比我们这次从另一个角度来看频谱还是傅里叶级数中用到最多的那幅图我们从频率较高的方向看。

以上是离散谱那么连续谱是什么样子呢

尽情的发挥你的想象想象这些离散的正弦波离得越来越近逐渐变得连续……

直到变得像波涛起伏的大海

很抱歉为了能让这些波浪更清晰的看到我没有选用正确的计算参数而是选择了一些让图片更美观的参数不然这图看起来就像屎一样了。

不过通过这样两幅图去比较大家应该可以理解如何从离散谱变成了连续谱的了吧原来离散谱的叠加变成了连续谱的累积。所以在计算上也从求和符号变成了积分符号。

不过这个故事还没有讲完接下去我保证让你看到一幅比上图更美丽壮观的图片但是这里需要介绍到一个数学工具才能然故事继续这个工具就是——

 

五、宇宙耍帅第一公式欧拉公式

虚数i这个概念大家在高中就接触过但那时我们只知道它是-1 的平方根可是它真正的意义是什么呢?

这里有一条数轴在数轴上有一个红色的线段它的长度是1。当它乘以 3 的时候它的长度发生了变化变成了蓝色的线段而当它乘以-1 的时候就变成了绿色的线段或者说线段在数轴上围绕原点旋转了 180 度。

我们知道乘-1 其实就是乘了两次 i 使线段旋转了 180 度那么乘一次 i 呢——答案很简单——旋转了 90 度。

同时我们获得了一个垂直的虚数轴。实数轴与虚数轴共同构成了一个复数的平面也称复平面。这样我们就了解到乘虚数i的一个功能——旋转。

现在就有请宇宙第一耍帅公式欧拉公式隆重登场——

这个公式在数学领域的意义要远大于傅里叶分析但是乘它为宇宙第一耍帅公式是因为它的特殊形式——当x等于 Pi 的时候。

经常有理工科的学生为了跟妹子表现自己的学术功底用这个公式来给妹子解释数学之美”石榴姐你看这个公式里既有自然底数e自然数 1 和0虚数i还有圆周率 pi它是这么简洁这么美丽啊“但是姑娘们心里往往只有一句话”臭屌丝……“

这个公式关键的作用是将正弦波统一成了简单的指数形式。我们来看看图像上的涵义

欧拉公式所描绘的是一个随着时间变化在复平面上做圆周运动的点随着时间的改变在时间轴上就成了一条螺旋线。如果只看它的实数部分也就是螺旋线在左侧的投影就是一个最基础的余弦函数。而右侧的投影则是一个正弦函数。

关于复数更深的理解大家可以参考

复数的物理意义是什么

这里不需要讲的太复杂足够让大家理解后面的内容就可以了。

 

六、指数形式的傅里叶变换

有了欧拉公式的帮助我们便知道正弦波的叠加也可以理解为螺旋线的叠加在实数空间的投影。而螺旋线的叠加如果用一个形象的栗子来理解是什么呢

  光波

高中时我们就学过自然光是由不同颜色的光叠加而成的而最著名的实验就是牛顿师傅的三棱镜实验

所以其实我们在很早就接触到了光的频谱只是并没有了解频谱更重要的意义。

但不同的是傅里叶变换出来的频谱不仅仅是可见光这样频率范围有限的叠加而是频率从 0 到无穷所有频率的组合。

这里我们可以用两种方法来理解正弦波

第一种前面已经讲过了就是螺旋线在实轴的投影。

另一种需要借助欧拉公式的另一种形式去理解

e^{it}cos (t) i.sin (t) e^{-it}cos (t)-i.sin (t)

将以上两式相加再除2得到

这个式子可以怎么理解呢

我们刚才讲过e^(it)可以理解为一条逆时针旋转的螺旋线那么e^(-it)则可以理解为一条顺时针旋转的螺旋线。而 cos (t)则是这两条旋转方向不同的螺旋线叠加的一半因为这两条螺旋线的虚数部分相互抵消掉了

举个例子的话就是极化方向不同的两束光波磁场抵消电场加倍。

这里逆时针旋转的我们称为正频率而顺时针旋转的我们称为负频率注意不是复频率。

好了刚才我们已经看到了大海——连续的傅里叶变换频谱现在想一想连续的螺旋线会是什么样子

想象一下再往下翻

是不是很漂亮

你猜猜这个图形在时域是什么样子

哈哈是不是觉得被狠狠扇了一个耳光。数学就是这么一个把简单的问题搞得很复杂的东西。

顺便说一句那个像大海螺一样的图为了方便观看我仅仅展示了其中正频率的部分负频率的部分没有显示出来。

如果你认真去看海螺图上的每一条螺旋线都是可以清楚的看到的每一条螺旋线都有着不同的振幅旋转半径频率旋转周期以及相位。而将所有螺旋线连成平面就是这幅海螺图了。

好了讲到这里相信大家对傅里叶变换以及傅里叶级数都有了一个形象的理解了我们最后用一张图来总结一下

好了傅里叶的故事终于讲完了下面来讲讲我的故事

这篇文章第一次被卸下来的地方你们绝对猜不到在哪是在一张高数考试的卷子上。当时为了刷分我重修了高数上但是后来时间紧压根没复习所以我就抱着裸考的心态去了考场。但是到了考场我突然意识到无论如何我都不会比上次考的更好了所以干脆写一些自己对于数学的想法吧。于是用了一个小时左右的时间在试卷上洋洋洒洒写了本文的第一草稿。

你们猜我的了多少分

6 分

没错就是这个数字。而这 6 分的成绩是因为最后我实在无聊把选择题全部填上了C应该是中了两道得到了这宝贵的 6 分。说真的我很希望那张卷子还在但是应该不太可能了。

那么你们猜猜我第一次信号与系统考了多少分呢

45 分

没错刚刚够参加补考的。但是我心一横没去考决定重修。因为那个学期在忙其他事情学习真的就抛在脑后了。但是我知道这是一门很重要的课无论如何我要吃透它。说真的信号与系统这门课几乎是大部分工科课程的基础尤其是通信专业。

在重修的过程中我仔细分析了每一个公式试图给这个公式以一个直观的理解。虽然我知道对于研究数学的人来说这样的学习方法完全没有前途可言因为随着概念愈加抽象维度越来越高这种图像或者模型理解法将完全丧失作用。但是对于一个工科生来说足够了。

后来来了德国这边学校要求我重修信号与系统时我彻底无语了。但是没办法德国人有时对中国人就是有种藐视觉得你的教育不靠谱。所以没办法再来一遍吧。

这次我考了满分而及格率只有一半。

老实说数学工具对于工科生和对于理科生来说意义是完全不同的。工科生只要理解了会用会查就足够了。但是很多高校却将这些重要的数学课程教给数学系的老师去教。这样就出现一个问题数学老师讲得天花乱坠又是推理又是证明但是学生心里就只有一句话学这货到底干嘛用的

缺少了目标的教育是彻底的失败。

在开始学习一门数学工具的时候学生完全不知道这个工具的作用现实涵义。而教材上有只有晦涩难懂定语就二十几个字的概念以及看了就眼晕的公式。能学出兴趣来就怪了

好在我很幸运遇到了大连海事大学的吴楠老师。他的课全程来看是两条线索一条从上而下一条从下而上。先将本门课程的意义然后指出这门课程中会遇到哪样的问题让学生知道自己学习的某种知识在现实中扮演的角色。然后再从基础讲起梳理知识树直到延伸到另一条线索中提出的问题完美的衔接在一起

这样的教学模式我想才是大学里应该出现的。

最后写给所有给我点赞并留言的同学。真的谢谢大家的支持也很抱歉不能一一回复。因为知乎专栏的留言要逐次加载为了看到最后一条要点很多次加载。当然我都坚持看完了只是没办法一一回复。

本文只是介绍了一种对傅里叶分析新颖的理解方法对于求学还是要踏踏实实弄清楚公式和概念学习真的没有捷径。但至少通过本文我希望可以让这条漫长的路变得有意思一些。

最后祝大家都能在学习中找到乐趣…

上一篇:万恶的null
下一篇:没有了
网友评论