欢迎访问喜蛋文章网
你的位置:首页 > 故事 > 文章正文

如何以“皇上给我讲了半个月的傅里叶变换”为开头写一个故事

时间: 2023-03-29 08:00:19 | 来源: 喜蛋文章网 | 编辑: admin | 阅读: 103次

如何以“皇上给我讲了半个月的傅里叶变换”为开头写一个故事

简单理解傅里叶级数(Fourier Series)

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

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

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

第一幅图是一个郁闷的正弦波 cos(x)

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

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

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

随着正弦波数量逐渐的增长,他们最终会叠加成一个标准的矩形,大家从中体会到了什么道理?(只要努力,弯的都能掰直!)

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

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

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

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

这里,不同频率的正弦波我们成为频率分量。
好了,关键的地方来了!!
如果我们把第一个频率最低的频率分量看作“1”,我们就有了构建频域的最基本单元。对于我们最常见的有理数轴,数字“1”就是有理数轴的基本单元。

(好吧,数学称法为——基。在那个年代,这个字还没有其他奇怪的解释,后面还有正交基这样的词汇我会说吗?)
时域的基本单元就是“1”秒,如果我们将一个角频率为ω0的正弦波cos(ω0t)看做基础,那么频域的基本单元就是ω0。
有了“1”,还要有“0”才能构成世界,那么频域的“0”是什么呢?cos(0t)就是一个周期无限长的正弦波,也就是一条直线!所以在频域,0 频率也被称为直流分量,在傅里叶级数的叠加中,它仅仅影响全部波形相对于数轴整体向上或是向下而不改变波的形状。

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

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

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

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

再清楚一点:

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

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

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

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

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

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

先在纸上画一个sin(x),不一定标准,意思差不多就行。不是很难吧。好,接下去画一个sin(3x)+sin(5x)的图形。别说标准不标准了,曲线什么时候上升什么时候下降你都不一定画的对吧?

好,画不出来不要紧,我把sin(3x)+sin(5x)的曲线给你,但是前提是你不知道这个曲线的方程式,现在需要你把sin(5x)给我从图里拿出去,看看剩下的是什么。这基本是不可能做到的。但是在频域呢?则简单的很,无非就是几条竖线而已。

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

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

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

下面我们继续说相位谱:

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

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

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

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

傅里叶变换实际上是对一个周期无限大的函数进行傅里叶变换。

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

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

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

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

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

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

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

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

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

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

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

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

同时,我们获得了一个垂直的虚数轴。实数轴与虚数轴共同构成了一个复数的平面,也称复平面。这样我们就了解到,乘虚数i的一个功能——旋转。
现在,就有请宇宙第一耍帅公式欧拉公式隆重登场——

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

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

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

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

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

复数的物理意义是什么?

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

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

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

所以其实我们在很早就接触到了光的频谱,只是并没有了解频谱更重要的意义。
但不同的是,傅里叶变换出来的频谱不仅仅是可见光这样频率范围有限的叠加,而是频率从 0 到无穷所有频率的组合。

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

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

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

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

这个式子可以怎么理解呢?

我们刚才讲过,e^(it)可以理解为一条逆时针旋转的螺旋线,那么 e^(-it)则可以理解为一条顺时针旋转的螺旋线。而 cos (t)则是这两条旋转方向不同的螺旋线叠加的一半,因为这两条螺旋线的虚数部分相互抵消掉了!
举个例子的话,就是极化方向不同的两束光波,磁场抵消,电场加倍。
这里,逆时针旋转的我们称为正频率,而顺时针旋转的我们称为负频率(注意不是复频率)。

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

想象一下再往下翻:

是不是很漂亮?

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

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

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

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

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

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

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

你们猜我的了多少分?

6 分

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

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

45 分

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

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

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

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

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

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

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

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

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

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

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

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

音频算法入门-傅里叶变换

    上一篇文章中讲了一个时域处理的算法wsola,接下来会学习频域处理算法,在这之前必须得对频域有所了解,这就不得不提傅里叶变换了,本文的目的是让大家学会用傅里叶变换公式和傅里叶逆变换公式进行计算。数学公式是人们对世界中的现象的描述,我们学习数学公式也不该只停留在使用公式来解决问题的层次,得明白公式到底在描述什么现象,从这些天才数学家的角度来看世界。懂的地方可跳过。项目地址在文章末尾给出。

   我直接说结论,傅里叶级数公式包含了傅里叶变换和傅里叶逆变换(不严谨的说就是这么回事)。
    先简单说下具体关系,法国数学家傅里叶发现,任何周期函数都可以用正弦函数和余弦函数构成的无穷级数来表示,这种表示方式就是傅里叶级数。假如有个波形比较复杂的周期函数,那么找出能用来构成这个周期函数的正弦函数和余弦函数的频率的方法就叫做傅里叶变换,用这些频率的正弦函数和余弦函数叠加起来表示这个周期函数的方法就叫做傅里叶逆变换。
    再从公式中看下他们的关系,首先介绍傅里叶级数到底是什么,首先级数是指将数列的项依次用加号连接起来的函数。这么说可能大家还不理解,举个例子:e^x=1+x/1!+x^2/2!+...x^n/n!....,等号左边是指数函数,等号右边就是级数。傅里叶级数公式如下:

    我们主要看这个指数形式的傅里叶级数公式,把求和符号去掉,展开一下就是f(t)=Fa*e^jaω0t+Fb*e^jbω0t+Fc*e^jcω0t+Fd*e^jdω0.....。现在看下面的周期函数叠加效果图,图中显示的是3个周期函数分别在坐标轴(横轴时间,纵轴幅度)的图像,写成傅里叶级数形式就是f(t)=fa(t)+fb(t)+0+0....,这就是傅里叶级数公式要描述的现象。其中Fa*e^jaω0t=fa(t),Fb*e^jbω0t=fb(t),Fc*e^jcω0t=0....。

    看下图的傅里叶变换和逆变换公式,你会发现傅里叶逆变换公式和傅里叶级数公式极其相似,而傅里叶级数系数公式Fn又和傅里叶变换公式极其相似。所以对一个周期函数进行傅里叶级数展开的过程可以认为是先做傅里叶变换再做傅里叶逆变换的过程。

    上图就是傅里叶变换公式也叫连续傅里叶变换公式,有个很重要的事情,就是傅里叶变换公式和逆变换公式一定要一起给出,不然就会让人误解,你们在网上会看到各种各样的写法,但这些写法都是对的,常见的如下图所示。

    为了方便后面的讲解我把角频率ω换成2πf,如上图所示,ω是希腊字母读作Omega,大写是Ω,小写是ω,以后这两个字母会经常看到,都是等于2πf。不要和电学中的电阻单位搞混了,要明白字母只不过是一个符号而已,在不同学科领域都是混着用的,只要不和自己公式中其他字母冲突就行,例如上图傅里叶变换公式中的j其实就是虚数单位i,一般时候我们会把虚数单位写成i,但因为傅立叶变换经常用于电学解决一些问题,为了不和电流符号i混淆,所以公式就把i写成j 。
    要想了解傅里叶变换公式,首先要了解欧拉公式e^ix=cosx+isinx在图像中的含义。以实部的值cosx作为横坐标值,虚部sinx的值作为纵坐标值,x的取值从负无穷到正无穷,画出所有的e^ix点后,你会发现这些点会形成一个周期为2π的圆。如下图1所示(如果不理解,建议看3Blue1Brown的视频,视频连接:https://www.bilibili.com/video/BV1pW411J7s8)

    所以欧拉公式e^ix其实就是随着x的增大而在坐标系上逆时针画圆的过程,那么e^-ix就表示顺时针画圆,e^-i2πx就表示画圆的速度提高2π倍,也就是说x从0到1的过程就是顺时针画出一个完整圆的过程(当然x从1到2或者2到3等等,都能画出一个完整的圆),把x换成t后,e^-i2πt表示每秒都会顺时针画出一个圆。e^-i2πft表示每秒都会顺时针画出f个圆。f(t)表示t时刻的振幅,f(t)函数画出来就是时域波形图。f(t)*e^-i2πft表示每经过1秒会顺时针画出f个圆,并在画圆的同时,t时刻的圆半径要乘上t时刻的振幅,其实就是以每秒的音频振幅数据绕f圈的速度进行旋转缠绕(为了方便理解,没有用复杂的音频数据,用的是一个频率为3的正弦波音频做的实验,请看下图2,图的上半部分是时域波形图,图的左下角是f等于0.4的时候,用公式f(t)*e^-i2πft在实部和虚部构成的坐标系画的图,图的右下角是频谱图,频谱图的横坐标是频率,纵坐标是振幅,振幅的值就是左下角图中数据形成的图案的质心(图中的红点)到坐标系原点的距离的2倍)。当改变f的值,你会发现数据大多数时候是和我们想的一样,以坐标系原点为圆心环绕着,也就是振幅一直都是0,但是当f的值,也就每秒的圈数等于该音频数据的频率时,你会发现一个神奇的现象,那就是所有的数据会在实部或虚部坐标轴的一侧形成一个圆(如下图3所示,如此一来就知道这段音频数据包含了一个频率为3振幅为0.5的正弦波)。所以将多个正弦波叠加的音频数据用傅里叶公式,f从负无穷到正无穷遍历一遍,就可以把这个音频数据里包含的正弦波都一一找出来。(如果不理解,建议看3Blue1Brown的视频,视频连接:https://www.bilibili.com/video/BV1pW411J7s8)

    平时我们说的对音频进行傅里叶变换处理,其实说的是短时离散傅里叶变换。短时离散傅里叶变换的公式(也可以直接叫做离散傅里叶变换公式)如下。

    下面将教大家如何理解这个公式。上面说的连续傅里叶变换公式中有两个原因导致我们无法使用,第一点要求是音频数据的时间从负无穷到正无穷,第二点要求是任意时间t都要有幅度值x(t)才能代入公式进行计算。所以为了解决这两个问题,把公式变为短时且离散的傅里叶变换公式,这个公式可以把一段时间(时间假设为Ts秒)的离散音频数据(有N个采样数据)进行傅里叶变换。你可以把离散傅里叶变换公式理解成连续傅里叶变换的变形,最重要的一点是连续傅里叶变换公式的f和离散傅里叶变换公式的k不是一个意思,他们的关系是k=f*Ts。所以离散傅里叶变换公式也可以写成F(f)=1/n*∑f(t)*e^-j2πf*Ts*n/N,其中的Ts*n/N对应的就是连续傅里叶变换公式的t,只不过这个t没办法取任意时间了,t的取值也就随着n的取值成为了离散的时间点,所以前面的系数由1/2π变为1/N。这样这两个公式就对应起来了。下面将进一步详细介绍这个公式。
    上一段说了k=f*Ts,这段我来解释下为什么,其实离散傅里叶变换公式中k表示的是这段Ts秒的音频数据环绕坐标系原点的圈数,所以k并不是连续傅里叶变换公式里的频率f,而频率f指的是1秒钟震荡的次数,在这个公式中频率f也对应着1秒的音频数据环绕的圈数,所以真正的频率f=k/Ts。
    有人可能会好奇,那为什么不把离散傅里叶变换公式的自变量k换成f呢,这样不是更好理解吗?是会更好理解,但是没有必要,用f的话还要做一次无用的换算。因为采样点只有N个的原因,k的取值范围就被限制住了,k的取值范围只能是0~N-1的整数,这也是为什么用k来做自变量而不是用f的原因。
    还有人可能会好奇,傅里叶逆变换到底是怎么把频域的信息还原回时域的,其实公式计算出来的F(k)是一个复数,这个复数包含了这个频率的周期函数的振幅和相位的信息,假设F(k)=a+ib,,F(k)的模|F(k)|=(a^2+b^2)^1/2,频率f=k/Ts时的振幅为|F(k)|*2(因为求出来的值相当于圆心,但实际上振幅是圆离圆心最远点到坐标原点的距离,所以要乘2),频率f=k/Ts时的相位为arctan(b/a)。所以如果你知道一个周期函数包含了哪些频率的周期函数,并且你这到这些周期函数的振幅和相位,你就可以像下图一样把fa(t)和fb(t)叠加在一起还原回f(t)。傅里叶逆变换的做法略有不同,但意思就是这么个意思,理解了离散傅里叶变换公式的计算,逆变换其实也是差不多代入数值计算就是了。(如果不理解怎么用离散傅里叶变换公式计算,建议看视频,视频里有离散傅里叶变换完整的计算过程,视频连接:https://www.zhihu.com/zvideo/1276595628009377792)

快速傅里叶变换推荐看下面两个视频
https://www.bilibili.com/video/BV1za411F76U
https://www.bilibili.com/video/BV1Jh411d7CN
下面是我用java实现的离散傅里叶变换及逆变换和快速傅里叶变换及逆变换,从他们的运行时间就可以看出来快速傅里叶变换快得多。(学完快速傅里叶变换再想想频谱为何Y轴对称?为何N/2对称?)

如何理解傅里叶变换公式?

(1)傅里叶展开傅里叶展开,是将一个周期性函数,改写成一系列正弦函数和余弦函数的级数之和,且该“和”的极限,与原函数相等。(虽然正弦和余弦只相差一个 90度 的相角,但是这样说比较易于理解,后面会再提到)。级数的每一项系数,被称做“傅立叶系数”,可记为 F(nw)。w 是该原函数的周期所对应的角频率(基频)。

(2)傅里叶变换对于非周期函数,如果也希望像 (1) 中那样 “展开”,则需要进行一定“推广”。将原本的“离散级数和”推广成为“连续积分和”后,即可解决这一问题。(具体推导略,可查教科书。)这种连续积分和的表达,就叫“傅里叶逆变换”。在逆变换中,原本的 F(nw),被推广为 F(W);它的值为:2PI*F(nw)/w 的极限,其中w趋向于零。这里用w和W来区分前后两个自变量,其中 dW = delta(nw)。显然,通过傅里叶逆变换的等式,可以反解出 F(W) 的表达式。这就是“傅里叶变换”。

可以看到,在各自空间内,函数的值已经与另一个参数无关了,中只含x,中也只含p。现在你大概可以明白坐标空间(类似信号中的时域)与动量空间(类似信号中的频域)的含义了吧?所谓求坐标空间的波函数,即当坐标参数等于某个值时,把该位置上所有可能的动量积分;而所谓求动量空间波函数,即取动量为某个定值,然后将具有该动量的所有位置参数进行积分,这种积分方式其实也就是开头所写的计算长方形面积的方式。这也就是为什么答主看到傅里叶变换的时候第一个想到的就是乘法交换律。

那傅里叶变换都是用来干嘛的呢?在通常情况下,我们并不能同时得到位置、动量两个空间的方程,可能只有其中一个,这时候,通过傅里叶变换就可以求出另一空间的方程。比如我们得到了,如何用它求?前面已经说过,所谓坐标空间波动方程不过是在某个确定的位置将所有可能的p取值的平面波相叠加,而不同p的取值则对应不同的系数。若p是离散的。

在数学和物理中,或者更准确一点,数学物理方法中,把一个任意函数进行fourier变换的意义等价于把一个函数进行以平面波为基的展开。这和3维下把一个矢量按照x,y,z基展开是一样的,这一点陈先生已经说明了。不但可以按平面波展开,还可以按照球面波展开。

只要保证你选取的基是完全且正交的即可(应该属于泛函分析的范畴,要考虑你函数空间的性质,定义norm等)至于为什么取负,因为沿着时间向前传播的平面波,在物理和数学上写作-i omega t 。在工程上写jomega t。这是习惯;如果你取i omega t ,相当于你做了t->-t的时间反演变换,某些量子系统具有时间反演不变性,会得到一些能谱的性质(比如简并程度最大为2之类)。

文章标题: 如何以“皇上给我讲了半个月的傅里叶变换”为开头写一个故事
文章地址: http://www.xdqxjxc.cn/gushi/167003.html
文章标签:给我  半个月  皇上  讲了  变换
Top