0. 角频率
频率
- 概念:每秒钟完成动作的次数。
- 单位:赫兹,Hz。
角频率
- 概念:每秒钟“转圈动作,角度变化”的频率。
- 单位:弧度/秒,rad/s
角频率与正弦函数
正弦函数在直角三角形中的定义是:直角边与斜边的比值。
这个夹角的正弦值就是红边与绿边的比值。
变化的角度可以用角频率乘以时间来表示:θ = ωt。
所以正弦值可以转换表示为:sinθ = sin(ωt)。
表示这个正弦值,是时间的函数——f(t)。
把转圈的动作加上一条时间轴,让旋转的动作沿时间的方向前进,它就形成了一个立体的螺旋形状。
就像拉开的弹簧一样。从正面看过去它还是一个圆圈,它在那里转。
从侧面看,即把时间轴展开了,就看到了一个正弦波形。
当这个角频率越大,也就是旋转得越快的时候,从侧面看的正弦波形就更紧凑。
傅里叶级数就是把一个复杂信号分解成很多个正弦信号的叠加:
区分这些正弦波形的最明显的特征就是——角频率:ω。
已知复杂信号f(t)可以拆分成上述的三角函数组合,那么就可以建立一条角频率的轴,然后再按这个顺序把这些正弦波形给放置好。
这其实就是傅里叶变换里的频域,即取频率为自变量对信号进行分析。
1. 傅里叶变换应用
首先,傅里叶变换有什么用。可以说,傅里叶变换几乎渗透到了科研工程的各个领域:通信学、生物学、宇宙学、量子力学、人工智能等等。
1.1 交通灯分析
这里我用信号分析举个简单的例子,假如有一个交通灯,上面有红、绿、黄三个颜色。
不同颜色的信号的频率是不一样的。
若是交通灯的规律是:红8秒、黄3秒、绿10秒。
那就可以在坐标轴上绘制出来,得到一个随时间变化而变化的信号函数。
这就是信号的时域表达。
但是如果灯坏了,三个灯同时亮,这些信号在时间上就会有重叠,波形就会叠加,用时域的表达就会很看起来很混乱,也看不出有哪些频率成分。
傅里叶变换可以让我们把这些混叠在一起的信号分拆开,让我们知道这个信号是由哪些频率成分构成的。
例如刚才的信号经过傅里叶变换之后就成了这样,从侧面看拆分后的频率投影,其实就是频域图。
(幅频图)
注:引入频率信息的代价是牺牲掉时间信息,可以用小波变换取时域、频域的平衡。
频域图的横坐标是角频率,角频率和平常使用的频率是有转换关系的。
这个图的ω1、ω2、ω3位置有3条竖线,分别代表红、黄、绿的信号频段。
高度代表信号强度,即振幅。
这是关于角频率的函数,故而也把变换后的信号称作频域的信号。
傅里叶变换能够帮助我们完成从时域到频域的转换,但是傅里叶变换也有局限性。
1.2 傅里叶变换的不确定性原理
频域图看不出时间的变化,因为从侧面看它就是一条线。
以信号灯为例,无论信号灯以何种组合形式来闪动,频域图是不变的。
同样,在越精确(越窄)的一段时间内得到一段精确信号,在频率上能得到的信息就越模糊。
理解:频率指的是一秒内完成几个周期循环,不给信号时间让它振完一个周期,频率就只能靠估了。
这就是傅里叶变化的不确定性原理。
类似于量子力学领域海森堡的不确定性原理:微观粒子的位置和动量不能同时准确地获得。
从数学上看,这些不确定性原理(测不准原理)是一回事。
这些测不准原理,准确点讲呢,应该是不确定性原理,是这个东西本身的性质,也是它数学的本质,和你测量的工具的精度高不高是没有任何关系的。
1.3 傅里叶变换的由来
19世纪法国天才数学家、物理学家傅里叶在他的著作《热的解析理论》一书中提出:任何周期函数都可以分解成一个三角级数。
简单点说呢,就是一个有周期循环的函数,都可以化成一堆 sin、cos 函数的相加。
那傅里叶级数的数学原理是什么?它为什么要这样分解?凭什么可以这样分解?
那它又是如何发展成傅里叶变换、拉普拉斯变换等各种变换的呢?
2. 傅里叶级数
上面讲到了傅里叶变换的时域到频域分析的作用,和它超强的拆家本领。
本节将从傅里叶级数的起源讲起,再一点一点的把其中的原理扒开,让曾经难倒很多人的内容,稍微变得容易理解一点。
傅里叶在研究固体热传导的时候呢,提出了傅里叶级数的雏形。
假如我有一根长为 L 的固体棒,以这个棒的一端呢,作为原点,建立坐标系啊,横轴是位置,纵轴呢是温度。
假如我在棒的中间的位置加热,加热后的棒呢,肯定是中间的温度高,两边的温度低。
随着时间的流逝呢,温度会向原来低温的地方扩散啊,那这个温度函数应该是一个关于位置和时间的二元函数u(x,t),如果你要求这个 u(x,t) 出来啊,你就得把这个方程给解出来。
这是一个偏微分方程,Ut 是温度随时间的变化率,Uxx 是温度随位置分布的二阶偏导,那它们呢,就构成了这样的等量关系啊。
第二个方程的含义是在棒的两端的温度为零,也就是绝热的。
第三个方程的含义是时间为零,也就是刚加热完瞬间,温度的分布函数。
第一条呢,是偏微分方程的本体,后面的这两条呢,就是这个方程的边界条件。
偏微分方程啊,其实和我们以前学方程的目的是一样的啊,一样都是利用等量关系,然后呢,去求得我们想要的东西而已。
大名鼎鼎的薛定谔方程,就是一个二阶偏微分方程,求解之后呢,就可以得到波函数了。
傅里叶采取了分离变量法,他把刚刚的 U(x,t) 分成了两部分相乘啊,关于 X 的函数和关于 T 的函数。
求解之后呢,得到了初始的温度函数,是这样的,C 1、 C 2、 C 3啊,这些呢,都是常数。
其实啊,这就是一个傅里叶级数的特例,初始的温度函数呢,就相当于被分解为无穷多个,三角函数的相加了。
其实把一个函数分解成三角函数相加,这个想法并不是傅里叶的首创啊,早在他之前呢,数学界已经有了对函数进行三角级数展开的讨论,但是一直没能够把这个理论系统化和一般化。
而傅里叶呢,正是做了前人未能完成的事情,当然,这其中也有狄利克雷的功劳啊,后面会讲。
分解成三角函数有用吗???
如果能够把函数分解成一堆三角函数相加,好处是非常明显的,这其实也是一种化繁为简的思想的体现啊。
如果一个复杂的函数分解成了三角级数,那就意味着一些复杂的运动或者过程,都可以看成无数个这种简谐振动的叠加啊,这不就可以从无序到有序了吗。
为什么这样分解???
这是傅里叶级数的三角级数形式啊,这里的 A 0、 A 1、 A 2、 B 1、 B 2……这些都是常数。
一个数乘以一个东西再加起来啊,这不就是线性叠加嘛,对于分解和线性叠加,你们想到了什么呀,对了,向量,你可以把它按平行四边形法则啊,像这样把它分解了,A 向量呢,可以分解成 B 向量和 C 向量的相加,如果向量再长一点,只需要在 B 向量和 C 向量,前面乘个数就行了,像这样这样分解虽然可以啊,但是分解完之后的,相互之间呢,还是存在着投影,A 向量换个方向之后计算也不方便,因为按平行四边形来分的话,对称性并不好。
所以我们一般都会把它分解为相互垂直的两个向量,像这样分解之后的向量呢,就不会相互打扰了,I 向量和 J 向量叫做正交基,就是相互正交的基底,这一对基底呢,就构成了一个向量空间。
假如这个空间里有一个这样的向量,他在 I 方向的投影呢,是两个 I ,在 J 方向的投影呢,为三个 J ,那这个向量就可以表示为2 I 加3 J 了。
回想我们以前学过的平抛运动啊,对速度的研究呢,其实就是正交分解的,分解为水平方向和垂直方向,水平方向可以看成是匀速直线,而竖直方向呢,就是自由落体运动。
由于是正交分解啊,两个方向上的运动互不干扰,这样呢这个复杂的运动分析啊,就大大的简化了。
诶,如果函数也有这样的正交特性,不就完美了吗?
函数也能“垂直”(正交)?
如果有两个向量,我用坐标表示为:M 向量是(3,4),N 向量呢,是(4,-3),它们是相互垂直的,我们发现了它们的坐标,3×4加上4×-3是等于零的,这个操作呢,我们就称之为内积。
——内积的坐标运算
- 内积为零,那他们就正交了。
- 这样呢,我们就把垂直这个几何的事情啊,用代数形式表达了出来。
- 到了高维空间,我们无法想象它正交的几何意义的时候啊,代数意义呢,其实也还是成立的。
例如有两个 N 维向量,F 向量和 J 向量,如果它们是正交,那么就会有这样的结论,F 1乘以 G 1加上 F 2乘以 G 2,加上 F 3乘以 G 3,一直加加加加到 FN 乘以 GN 呢,它是等于零的,就相当于是在高维空间的垂直啊。
好,那重点来了:
- 假设现在这两个向量的坐标呢,都是分散的数,一个一个的点。
- 如果这些分散的数变成了连续变化的数,那这些数连起来不就是一个函数了吗。
- 那刚刚的坐标相乘,就可以直接写成了 F(x)·G(x) 了。
- 而相加的动作不就是求定积分吗,那刚刚的向量内积就变成了函数的内积了,就是这个积分的形式了。
- 如果这个积分等于零啊,那就可以说 F(x) 和 G(x) 呢,在区间(a,b) 之间呢是正交的。
- 也可以这样表示,<f,g>=0
函数的正交有什么用呢?
呃,用处很大啊,如果我有一组两两正交的函数,这些函数呢,作为基底,就可以构成一个抽象的函数空间了。
在这个空间里的函数,就可以看成是由“在各个基底上的投影”组合而成的。
例如函数 H(x) 在 cos (2x) 基底上的投影为2,在 sin (5x) 的基底上的投影为3……在其他的基底投影呢为0,就不写了,但这个投影改变的不是它的长度,而是振幅,那这个 H(x) 呢,我们就可以写成 2cos (2x)+3sin (5x)。
那傅里叶级数里的三角函数是正交的吗?
我们不妨先在图像上看一下,相互垂直的函数是怎样的。
例如绿色这个呢是 cos x ,红色这个呢是 sin 3x ,它们是相互正交的。
它们乘起来之后呢,是这个样子。
对它们的乘积求积分,实际上呢,就是求它和 X 轴围成的面积,上面为正,下面为负,那么这个积分可以很明显的看出来是零,所以呢,这两个函数啊,就是正交。
我们看一下,这一堆都是傅里叶级数里面的三角函数啊,这里呢,都是 X 的整数倍,例如2 X 、3 X 、4 X 等等啊,而这个 1 呢,其实是 cos (0x) 。
sin (0x) 等于零做不了基底就不写出来了。
这些三角函数的周期呢,是 2π、2π/2、2π/3、……等等等等,它们相加之后啊,总函数的周期呢,是这些周期的最小公倍数,也就是 2π 了。
- 傅里叶级数初步呢是针对 2π 周期的函数的啊;
- 不过熟练之后呢,我们可以针对其他的周期以及非周期的。
为了计算方便,这里取其中一个周期,-π 到 π 来计算它们是不是正交的,通过计算可以很容易得到,只有自己和自己内积才不为零,例如 cos 3 X 和 cos 3 X 内积呢,是 π,sin 8 X 和 sin 8 X 的内积呢,也是 π 啊。当然 1 和 1 内积呢是 2π。
其他的如果他们不是自己和自己内积,例如 cos 2 X 跟 cos 3 X 啊,或者说 cos 2 X 跟 sin 2 X 这种积分呢,全都是零。
所以傅里叶级数里面的三角函数啊,都是相互正交的,是可以作为函数空间的基底的。
呃,具体怎么分解,如何展开得到傅里叶级数。
函数如何展开成傅里叶级数?
大家来看一下傅里叶级数的三角级数形式。
我们要把一个已知函数分解成傅里叶级数,其实呢,就是把这些系数给求出来。
这里我们用到了一个数学上的小技巧。
刚不是说只有自己和自己内积才不为零嘛,其他的内积都是零,如果我想要求 an ,我只需要在傅里叶式子的左右两边,同时乘以一个 cos (nx) ,然后呢,再同时两边求积分啊,那么像这些积分呢,除了自己跟自己的内积项,其他项呢都变成了零,这个积分呢,就只剩下 an 项。
把 an 提到前面来,再把刚刚的计算结果带进去,就是 an·π,再移一下项,我们就得到了 an 的求解公式,同样的操作啊,也可以得到 bn 的求解公式。
(类似于留数法)
最后呢,求 a0 项,由于 a0 项的基是1,所以根据上面的操作,两边乘以1,然后呢,再去积分,这样呢,我们就可以把其他不是 1 的项啊,都消为零了,剩下的就只有这个式子,那么把 a0/2提到前面来啊,再把结果 2π 带进去,我们就得到了这个等式,再整理一下,就得到了 a0 的求解公式。
说一下前面这里为什么要写成 a0/2 呢,就是为了后面的求解公式,a0的求法跟前面的 an、bn 的公式的形式一致而已,没有别的意思。
至此呢,我们就掌握了一个把周期为 2π 的函数,展开成傅里叶级数的技能啊。
掌握了这个技能,我们又是如何可以从时域到频域的呢。
时域到频域怎么操作?
举个简单的例子啊,如果有一个时域信号,f(t)展开为傅里叶级数呢,是这样,这里呢,既有正弦又有余弦,画频谱图不好画,所以说我们要把这个式子啊,化成正弦形式或者是余弦形式啊,用辅助角公式就可以了,这个呢,就是我们化得的结果,其实正弦和余弦啊,波形都一样的,只是有相位差而已。
我们来画一个坐标啊,横坐标呢是角频率,纵坐标呢是振幅。
角频率啊,主要是看 t 前面的系数啊,这个常数项的角频率呢,是0,高度为1,这一项的角频率呢,是一,高度为根号二,而这一项的角频率为二,高度为一。
这里有一个相位的信息啊,所以我们还得画一个相位图。我们从式子可以得到,角频率为一的时候,它的相位的信息呢,是负的四分之派,至此呢,这个 f(t) 的函数的频谱图就大功告成了。
我们就顺利的从时域到频域了。
傅立叶级数还有哪些限制?非 2π 周期或者非周期函数能展开吗?
傅里叶级数的指数形式又是如何的?它和傅里叶变换、拉普拉斯变换有什么关系呢?
我们下节分析。
3. 数字图像处理
之前有一张很有趣的图片是考眼力的,你看这图片上的,究竟是爱因斯坦还是梦露呀。其实都是。
离远点看呢,就是梦露,近点看呢,就是爱因斯坦了,还有人说,感觉就像给爱因斯坦开了美颜一样啊,还别说啊,这张爱因斯坦-梦露的照片,和美颜的底层原理呢,都是一样的,正是这节要讲——傅里叶变换。
今天我就用图像处理给你们讲一下,傅里叶变换是怎么美颜的。
3.1 图像函数化
首先,我们要对图像进行函数化。
可以先用简单的黑白图片做例子,原理都差不多啊,一幅素描画,它是由不同的明暗变化构成的,我们可以把它分成一小块、一小块,然后再给这些明暗格子赋予一个数值,越亮的地方数值越高,越暗的地方数值越小。
例如这里最亮的就是255,最黑的地方呢,直接就是0了。
接着把它放平了,建立三维直角坐标系,然后再把这些数值相应的点给描出来,亮的地方高,暗的地方低,所有的点连起来呢,就得到了一个像山坡一样起伏的,立体的函数图像了,这其实是一个二元函数。
这样呢,我们就把一幅普通的图像给函数化了。
图像函数化:某一因变量是位置的函数,而位置是一个二元自变量。
按照前两节内容的思路,岂不是可以对它进行傅里叶变换,把它分解成多个、这种立体的正余弦函数的相加。
这种正余弦函数从上面俯视,其实就是一个亮暗相间的条纹图,而它的频率则是空间变化的频率。
例如这种变化密集的就是高频,变化少且平缓的呢,就是低频了。
也可以理解为一幅复杂的图像,可以看成是由多个不同频率,不同方向的亮暗条纹组成的,像这样。
3.2 图象处理的一点思路
哎,看到这思路就来了,你要美颜,要图像处理,那我就把原图拆分成不同的频率成分,像这样放到一边,把不想要的过滤掉,剩下的再合并回去不就行了吗。
好,说干就干啊。
傅里叶变换之后得到了不同的频率分量,例如这里的ω1、ω2、ω3、……。
把这些频率成分表示成一个点,存放在一个叫频谱图的二维平面上,把中心的位置呢,定为零频率,越往外,频率的数值就越高。
首先,ω1的波形是沿着 X 轴方向变化的,所以呢,它的点就应该放在 X 轴上,ω2的波形是沿着 Y 轴变化的,它的点呢,就应该被放在 Y 轴的方向上,ω3它是沿着斜着的方向变化的,所以呢,ω3也应该被相应的放到斜着的地方。
其中ω1的频率最低,它应该离中心最近,其次是ω2,ω3的频率最高,所以它离中心最远。
因为傅里叶变换是共轭对称的,频谱呢也应该是中心对称。
所以这里应该有一个ω1',ω2'和ω3'。当然这里的数学原理后面会讲啊。
同时我们还发现了ω1的振幅最大,意思呢,就是原图里面低频成分最亮。
所以代表着ω1成分的点,在频谱上呢,也应该是最亮的,其他的点呢,就暗一些,反正是跟它们各自的振幅大小是相关的。
当所有的点都安置完毕之后呢,我们就得到了一张幅度频率的关系图,也就是幅度谱了。
频谱图的存在和低频居中画,对后续滤波的操作有好处啊。
- 中心低频的位置,表达的是原图像里面过度平滑的成分。
- 一幅图像如果只看低频,你看到的将是一坨模糊的东西,跟你脱下近视眼镜,看这个世界的感觉是一样一样的啊。
- 作为高频的位置,表达的是原图像里面变化比较突兀的成分。
- 例如细节边缘还有一些噪声。
好比一张自拍脸上的毛孔啊,痘痘啊,这些都是高频的成分。
好,那问题又来了,拿着一张这种幅度谱能够逆变换回去,得到原图吗?答案是还不能。
假如有一张图片进行傅里叶变换之后呢,得到了幅度谱,直接再逆变换回去,得到的却是一个毫无意义的图像,因为幅度谱相当于是把一个东西拆了,看看有什么成分而已,它并不记录位置信息的。(幅度谱+相位谱)
好比我有一个恐龙积木,我把它拆了再送给你,让你拼回去,但是却不告诉你它原来是什么,也不告诉你每一块积木原来的位置在哪。(只知道成份,不知道各个成份之间的相对关系)
那么你按照自己的意思去拼呢,可能就会拼回来得到一个四不像。
这里的积木的位置信息,就好比傅里叶变换里面的相位信息了。
3.3 相位是什么?为何重要?
什么是相位呢,打个比方,这条直线被我分拆之后,就是红色和绿色的波形。
如果我把红色的波形往前挪了一下,再合并回去呢,就不是原来的这条直线了,而是这条曲线。
所以各个波形的起始位置关系,就是相位信息了,我挪的那一下,其实就已经改变了他们原来的相位关系了,相位关系不准确,你是很难合并回去得到原来的图形的啊。
所以除了幅度谱,我们还需要一张相位谱才行。
看一下相位谱的重要性——如果幅度谱它是完好的,但是相位信息丢失了,我就把他的相位全部设为零吧,再逆变换回去,得到的就是一张完全看不出来是啥的照片。
好,接下来看相位谱——如果相位谱是完好的,但是幅度信息丢失了,我就去随便找了一张其他的图片,拿他的幅度谱,跟这个相位谱一起逆变换回去,得到了这个图像,当然,这张图片至少还能看得出来是个小女孩啊。
也就是说,幅度谱它反映的是明暗变化,而相位谱反映的是构图关系,想要完美逆变换回图像,还得幅度谱和相位谱相互配合。
而这个相位谱呢,其实也是在傅里叶变换之后一起得到的。
好,接下来我们美颜的实验开始啊,现在拿布朗克的照片来试一下,通过傅里叶变换之后呢,得到了频谱图。
这里的这张呢,是幅度谱,相位谱没有显示出来啊,因为不需要对相位进行操作。
我们把低频的部分挡住,逆变换回去的时候呢,只让高频的部分通过,这种呢,就是高通滤波了啊,我们来试一下,处理之后再逆变换回去呢,我们就可以清晰地看到人像的边缘线条,还有其中的细节。
高通滤波呢,一般会应用于图像的边缘检测,图像锐化等等。
当然,边缘检测的实际应用算法还是比较复杂的,不会单纯的只做高通滤波,现在的自动驾驶中呢,就大量的用到边缘检测的算法,好认清路在哪、行人在哪、障碍在哪啊。
那接下来我们把高频挡住,只让低频通过,也就是低通滤波了,再做一次傅里叶逆变换回去,我们就得到了一张模糊的人像了。
因为有时候我们的确不想让图像太清晰了,或者说想局部模糊,那自拍完了还得磨个皮不是。
所以低通滤波呢,它是有去除杂点噪声的功能的。
当然,我只是为了能让大家都明白,而举的这个例子,处理上呢,就有点过于粗暴了,磨个皮脸给磨没了啊。
所以有时候得针对性的去对待一些噪声。
例如这个图像上面有很多重复的格点,这种呢,就是周期性噪声,像平时电视机上面出现的,水波纹一样的花纹,这种呢,也是周期性噪声。
对于这种噪声的处理,不适宜用大范围的技能,只需要把频谱中表示噪声的成分给去掉,就可以了。
在这里我相当于是做了几个陷阱,把噪声挡在了他逆变换回去的路上啊,这种就是陷波滤波了。
(带阻)
我们再试一下逆变换回去看一下,这时候呢,就发现了这些格点的噪声呢,就不见了。
再回过头来看开头的爱因斯坦-梦露的照片,思路就清晰很多了,其实呢,就是把梦露的照片只取了低频的成分,爱因斯坦的照片只取了高频的成分。
然后再把两者结合在一起,就形成了那张考眼力的图片了啊。
我们试一下,把爱因斯坦和梦露分开。
把低频的部分挡住,做一下逆变换看一下,这时候呢,我们就只能看到爱因斯坦了。
好,接着我们再把高频部分挡住,只让低频部分通过,也就是做一个低通滤波逆变换看一下,这个时候呢,我们就只能看到梦露了。
最后再总结一下:
图像处理的底层逻辑呢,是先傅里叶变换得到频谱图,对频谱进行处理,再用频谱图进行傅里叶逆变换回去,得到你想要的图像。
傅里叶变换实在是太神奇了,简直就是科研工程领域的一把利器啊,但是傅里叶级数刚刚出来的时候,还算不上利器,甚至有点人畜无害的感觉,那下节我们将跟着这些数学大佬们的步伐,一步一步把傅里叶级数锤炼成科研利器版。
4. 狄利克雷充分条件 && 化学结构分析
4.1 傅里叶红外光谱分析
生活中的水波纹相遇,是会叠加的。
正余弦波形呢也一样,例如:波峰遇上波峰,波形就会变得更高,波谷遇到波谷,波形就会变得更低,而波峰遇到波谷的时候呢,就会相消变平。
所以说,给你一条奇奇怪怪的曲线去模仿,你可以用一大堆正余弦波形慢慢的去叠加,一直叠到你想要的形状,这个过程呢,我们就叫做拟合。
反过来的,给你一条复杂的曲线,也可以分拆成一条条简单的正弦曲线。
这就是傅里叶级数理论的想法啊。这个想法看似简单,但是用它却可以实现,非常不可思议的东西啊。
那大家跟我一起来啊,假如我手头有一个很厉害的化学样品,想要研究它,却又不知道它是什么成分结构,突然搞化学的兄弟告诉我啊,化学物质会吸收红外线哟,诶,感觉可以用红外来搞搞事情啊。
一束红外线其实就是电磁波了啊,从波形上来讲呢,它很复杂,但是用傅里叶的观点,波形的最基本的构成的形态就是正弦波形,主要就是看你拿多少个高矮胖瘦不同的正弦波形来叠它而已。
那我可以从哪个角度去描述这个红外呢?
瘦的呢,就是相对高频,胖的是相对低频啊。
我把它们按从瘦到胖的顺序进行排列,瘦的在左,胖的在右,把这个作为横坐标,然后再把他们的高矮给描出来,诶,我们就得到了红外的频谱图了啊。
这个时候搞化学的兄弟又告诉我,不同的化学结构,吸收的红外的胖瘦(频率)是不一样的,而且呢,吸收的量(百分比)也不一样,看来化学结构也挑肥拣瘦啊。
例如这个碳氧双键,它就喜欢瘦(高频成分)的,而碳氧单键呢,就喜欢胖(低频成分)的啊。
诶,听到这思路就来了,用一束红外线照射样品,然后把透过去的红外收集起来,用傅里叶变换制作成频谱,再和刚刚的完整的频谱对比一下,就像点名册一样,看下谁缺席了,就知道哪些频率的波被吸收了。
因为不同的化学结构,吸收的频率和比例是不一样的,这样呢,我们就可以反向分析出来,这个化学样品的成分和结构是什么了,这个其实是傅里叶红外光谱仪的原理啊。
4.2 狄利克雷条件
这么厉害的理论却不能用横空出世来形容,因为他经历太多的波折了。
1807年,傅里叶向巴黎科学院,递交了相关想法的论文——《热的传播》。在评审的时候是得到了较多大佬的认同的啊,其中也包括了拉普拉斯,但是拉格朗日却持否定了态度,认为这种做法是不严密的。
其实这也不算是刻意针对傅里叶吧,我们来思考一下啊,假如你的目标函数是一个断开的函数,或者像这种有棱有角的函数呢,一堆连续的正余弦函数加起来还是连续的,你怎么能拟合断开的函数呢?而光滑的函数又是如何去叠出,这种有棱有角的形状的呢?
这些问题一时之间也没有得到完美的解决,所以说拉格朗日的质疑也不无道理。
现实情况,很多周期函数的确是无法做,傅里叶级数展开的。所幸的是,傅里叶的工作并没有因此而被埋没,反而随着时间的流逝,越来越多数学家意识到了傅里叶级数的潜力,大家也愿意为傅里叶级数理论的严密化,去努力,其中以狄利克雷的工作最为重要。
狄利克雷给出了几个条件啊,来回应了上面的疑问,认为如果同时满足这几个条件的函数,就一定能够展开成傅里叶级数,这也被称为狄利克雷充分条件。
他的数学证明过程就比较长,比较复杂,这里就不细讲了,只对这几个条件做解释,当然,在此之前,你得先明白一个事情:
为什么它叫充分条件?
迪利克雷的工作,说白了就是排雷:也就是某个条件,哪怕只有一个情况是不 OK 的,它就会被排除掉,剩下百分百 OK 的条件呢,就会被铺成一条路,你沿着这条路,就一定能够走到傅里叶级数展开的结果上。
当然,你不想走狄利克雷指出的明路,走别的路也是有可能走到目的地的,但不保证啊。
所以说,迪利克雷指的路对于目的地来说呢,很充分,但不是必要的路径,所以它也被称为傅里叶级数展开的充分不必要条件啊。
接下来,我用我的话来对这些条件重新做一下阐述,可能顺序上和教材有点不一样啊:
首先,周期内断开的函数是可以拟合的,但是你不能乱断。
假设 F(x) 是以 2π 为周期的函数,你看像这种本来光滑的函数啊,中间突然有一个点很调皮,跳起来了啊,这类间断点呢,叫做可去间断点。
用正余弦级数来拟合,这个曲线是没问题的啊,例如这个函数,我们不断的用正余弦函数叠上去,慢慢的、慢慢,蓝色这条线呢,就会越来越接近红色这条线,直到完全的重合。
但是这个调皮的点呢,傅里叶级数是不管的,它会收敛于这个断点的左右极限。
通俗点理解呢,就是傅里叶级数拟合出来的函数,会直接把这个断开的点给补上,使它光滑。
那忽略掉这个点有什么影响吗,在实际科研应用中呢,基本没有影响啊,就相当于是个小噪点而已啊。(单跳点无影响)
如果说不是一个点调皮而已,整根线都挺调皮的,像这样分成了两段,断开的地方呢,叫做跳跃间断点,这种曲线傅里叶级数也能拟合。
随着叠加的正余弦函数增加,可以看到在连续处,蓝色的线是逐渐趋向于原函数的线的,而在断开的位置呢,傅里叶级数的值是趋于断开地方的中间的位置的值的。
数学表达式是这样的啊,也就是说傅里叶级数会收敛于跳跃间断点左右极限的算术平均值的啊。
上面提到的可去间断点和跳跃间断点,都被统称为第一类间断点。
哎,是不是说只要是第一类间断点,都可以做傅里叶级数展开呢,啊等等,先别急哈,第一类间断点是没问题的,但是你不能在一个周期之内无限地断。
我们来看一下这个例子,例如这个信号,在一个周期内像这样衰减,信号强度和持续时间都会衰减为原来的一半,一直一直无限的衰减下去啊。
这里和康托集呢,有点像啊,也是无限的细分下去。
那么这里就会出现了无穷多个跳跃间断点,刚刚说过了,在跳跃间断点处,傅里叶级数是不等于原函数的,是取断点中间的值的,如果你有无穷多个跳跃间断点,就意味着一个周期内,傅里叶级数合成的函数,就会有无穷多个不符合原函数的点。
就相当于告诉我,你画的东西都挺好,就是有无穷多个地方不符合要求而已。
不能无穷多的,除了第一类间断点,还有极值点。
(方波有无穷多极值点,不符合狄利克雷条件,但可以傅里叶展开)
极值点呢,就是这种凸起的山峰,或者是凹下去的山谷。
这个条件的限制,迪利克雷的意图也很明显,就是不让你的目标函数无穷地上下震荡,例如这个函数 sin(1/x),在 x=0 处呢,是断点,在零的附近,它是上上下下无穷的震荡的,你根本确定不了左右极限是多少,傅里叶级数在这个地方呢,也是根本收敛不了的,所以在一个周期内只能有有限个极值点啊。
那咱不搞无穷断点了,也不搞无穷震荡了,偶尔上一下天可以吗,啊,像这样?
也不行,为什么,因为这种断点之下,一端是无穷,一端是有限数字的话,傅里叶级数不知道收敛在哪啊,首先无穷大它不是实数,不能简单的做数值运算,其次,从图像上看,无穷远和零的位置,它的中间到底是哪呀,你确定不下来,感觉说中间位在无穷远好像也没有毛病啊,所以说傅里叶级数也不知道收敛在哪,比较好啊。
那如果说像这种一边上天一边下地的可以吗?
也不行,因为正无穷加负无穷可不等于零啊,这里的傅里叶级数也还是收敛不了。
这种不能上天下地的限制,还有一种叫法就是要在周期内绝对可积,意思就是你这个信号函数的绝对值,在计算周期之内,与 X 轴围成的面积得小于无穷。
像这个面积是无穷的,那它就不符合绝对可积,而这个面积是有限的,就符合绝对可积。
以上呢,就是狄利克雷关于傅里叶级数收敛的充分条件的表述了。再强调一次,想要走上迪利克雷指出的路,以上的条件光符合其中一个是不行的,得全部都符合上。
看完上面的表述,感觉他都在告诉我们四个字:有界有限。
其实啊,这就是狄利克雷充分条件的现代的表述啊,我们甚至可以根据这个表述,搞出一个不符合迪利克雷条件,但却又存在傅里叶级数展开的函数啊。
就拿刚刚这个无穷震荡的 sin(1/x)为例,我在它前面乘以一个 X 的三次方,定义域是-1~1啊,它在零的附近虽然存在着无限多个极值点,违反了狄利克雷充分条件,但是震荡的幅度却逐渐地靠近零,它的变化呢,就是有界的,因此这个函数的傅里叶级数展开是存在的啊。
最后,虽然傅里叶级数展开的充要条件,还是没有找到,但是这个充分条件的给出,已经是非常巨大的进步了,对现代数学也有着非常大的启发。
接下来我们就该谈谈,傅里叶级数在研究问题时的缺陷,以及解决办法了啊。
5. 傅里叶变换的适用对象
自从狄利克雷给出了傅里叶级数的充分条件之后,傅里叶级数的理论的严密化呢,往前进了一大步,今天我将用傅里叶级数进化的角度,去给大家继续讲解,傅里叶级数到傅里叶变换的细节啊。我是按大家最容易理解的顺序重新整理了的,和教材的顺序呢,可能有点出入。
刚接触傅里叶级数的时候,疑问点其实还是挺多的啊,我们先来解决第一个疑问,为什么一开始的傅里叶级数,是针对 2π 周期的,那非 2π 周期的怎么办。
在解决问题之前呢,我们得先搞明白什么是周期函数?
所谓的周期函数就是像这样的,每隔同样的长度就会出现形状的重复,而最小的重复长度呢,就是最小正周期了,一般用大写字母 T 来表示。
我还可以随便找一个点,然后呢,经过周期 T 的长度之后,它的函数值啊是重复的,也就是 F(x) 是等于 F(x+T) 的啊,这也是表达周期函数的一种方法.
好,那下一个问题,周期函数加周期函数还是周期函数吗?
如果有两个或者是多个周期不等的函数,它们之间的周期的比值是有理数的话呢,那么这些函数相加起来还是周期函数啊。
这里稍微解释一下原理,函数之所以能够成周期性的重复,关键是能够形成循环。
通俗点讲,就是两个同样的形状放一起,能够头尾相接,像这样。如果两个周期函数相加之后,还是呈周期性重复的,那就说明我循环开始的时候,你刚好也循环开始,我循环结束的时候呢,你也刚好循环结束。当然,中间经历了几个循环呢,并不重要,重要的是能够找到一致的起点和节点啊。
例如这两个函数一起开始了循环啊,蓝色这个呢,它是经历了两个周期的循环,而绿色这个经历了三个周期循环,大家同样的一起来到了节点,用数学表达呢,就是 2T1 等于 3T2 了,所以这两个函数相加也必定是周期函数。而且它们相加完之后的,新函数的周期是 2T1,或者说 3T2。
接下来给个问题,大家思考一下,一个函数周期是1/4,另一个函数周期是1/3,请问这两个函数加起来之后的,新函数的周期是多少啊?
这里的 T1×4是等于一的,T2×3呢,也是等于一的,也就是说 4T1是等于 3T2的,所以说这两个周期函数加起来之后,形成的新周期函数啊,它的周期就是一啦。
接下来我们就能解答,为什么傅里叶级数,一开始只能针对 2π 周期的函数了。
正交基的选择决定了傅里叶级数的周期。
因为你对组成函数空间的正交基的选择,造成了它的周期只能是2π。
我们来看一下之前的傅里叶级数展开,第一个是常数项,它不影响周期啊,我们不用管它,然后我们再来看后面的这些基的周期啊,这个呢,是2π,这是2π/2,2π/3……一直到 2π/N,由于画面的限制啊,正弦那边呢,我就不写了啊,其实是一样的。
这里乘以二,这里乘以三,一直到这里乘以 N ,大家的结果呢,都是2π。
由我们刚刚所研究的结果就可以知道啊,一堆正弦函数和余弦函数构成的正交基组成的函数啊,它的周期就是2π。
既然是正交基的选择,决定了傅里叶级数的周期,那我想表达任意周期的函数,岂不是选择正确的正交基就可以了,的确是的啊。
例如我想用傅里叶级数来表达,这个周期为二的函数,只需要让它的基的周期是2,2/2,2/3,一直到 N 分之二,然后再利用T=2π/ω的公式,可以反推出它的基就是 cos(πx) ,cos(2πx),cos(3πx),一直到 cos(nπx),正弦的部分呢,我就先不写出来。
接下来我想让它更具有一般的意义,假如我想表达的函数的周期,它不是2,而是2L ,L 是任意正实数,整不整的无所谓。
当然,这里选择2L作为周期,主要也是为了公式好看而已啊,因为 L 已经是任意正实数了,2 L 也好,3 L 也好啊,其实都是一样的。
要使周期为2 L ,那么它的基的周期呢,就应该是……啊,然后呢,再利用T=2π/ω公式,就可以推出,它的基是这样的啊。
因此呢,这个一般周期的傅里叶级数的表达式,是这样的。
这里要求出具体的表达式呢,就是要把这些啊,A0、 AN 、 BN 啊,这些求出来啊,这里求 an 和 bn 的公式,和第二部分的推导是一致的啊,还是利用了一个周期之内,自己和自己积分呢不为零,其他的情况积分都是零的特殊性,来完成公式的求解的。
就像这里一样啊,从负 L 到 L ,自己和自己积分的结果呢,是 L ,否则呢,都是零。利用这个事实,如果我要求 an ,就可以在两边同时乘以 cos(nπx/L),然后求积分,右边除了 an 项啊,其他都全部变成了零,那么右边呢,就是 an 乘以 L 了啊,整理一下,我们就可以得到了an 的公式啊,同理也可以求得 bn 的公式啊,就是这样子。
以上呢,就是任意周期函数的傅里叶级数了。
接下来我们再来思考一下,如果像这种只有部分地方有定义的函数呢?
诶,我们可以先把它补成一个偶函数,然后呢,再把它延拓成一个周期函数啊,我们就可以继续用刚刚的公式来求解了啊。
求得结果之后呢,我们再把多余的去掉,留下来有定义的部分就可以了。——框定定义域
这个方法呢,叫做周期延拓。
当然这里周期延拓呢,你可以做奇延拓或者是偶延拓,刚刚是用了偶延拓啊。
接下来我们还有问题,如果函数的定义是在负无穷到正无穷的,非周期函数呢?像这样子补也补不了,那这种还可以吗?
当然可以。
接下来我们将由傅里叶级数正式进入,傅里叶变换了。
6. 傅里叶分析
傅里叶变换的应用,可以说是渗透到了我们生活中的每一个角落,可不止科研哟,这次我再拿一个很常见,但却很容易被忽略的东西来讲讲啊——某个东西的价格。
受供求关系的影响和环境的变化,东西的价格往往都不是一成不变的,变得厉害的,甚至一天一个价啊,我们把时间展开一条轴,然后把不同时间点的价格描出来啊,然后再连起来,于是呢,就得到了一个随时间变化而波动的价格图。
如果说某个东西的价格是这样的,几乎毫无规律可言啊,前几天都还在节节攀升,呵,今天下午就突然来了个这个90度下跌啊,通过傅里叶分析啊,得知其中的分量呢,是长这样的啊,频率高,波动的幅度也高,那就证明了这个东西的价格,存在着较短时间内的大起大落,不靠谱啊。
上面所讲的价格随时间的波动图,我们通常称呼这一类为时域信号,它可以分解成多个不同频率的正弦分量啊。
假设我分解出来的分,频率分别是1、7、8、9Hz。
我这里的横坐标呢,是频率啊,刚刚的分量就在对应的位置上,画一条不同高度的线,这条线的高度呢,就表示了它的波动幅度啊,我们就得到了一个频谱图,这一条一条的呢,就叫做频谱线。
大家发现了一个问题没有,这些谱线啊,都是离散的,一条条分开的,好,接下来我再告诉大家,一个关于谱线的秘密啊,用 T 分之一来计算频率的间隔啊,我们发现了当周期越长,谱线呢就越密集。
那像第二个东西的价格波动啊,他就根本不可能有重复的周期可言的,它就是定义在整个实数域的非周期函数,那怎么办呀,这种情况我们就把它当作周期是无穷大的,不就行了吗。
周期 T 无穷大,那 T 分之一呢,就无穷小,那谱线之间的间隔就无穷小,间隔无穷小不就是连续了吗,所以非周期函数频率的存在啊,是连续的。
这里有一段声音的信号,它是关于时间的非周期信号,那你看它的频谱就是右边的这个连续的啊。
黑体向外辐射的能量就是随时间变化的非周期函数。
在不同的频率下,只能一份一份的发射,例如一赫兹的能量,你要么就来一份,要么就来 N 份,你是不能来零点几份一赫兹的能量啦,每一份的能量的大小呢,就是普朗克常量乘以频率啊,这就是量子的由来,于是乎就有不少人认为能量就是不连续的。
那我们应该怎么去看这个问题呢,啊,我提供另一个思路给大家看一下啊。
虽然每个频率下,只能一份一份的发射和吸收,但是频率的变化却是连续的,一赫兹到2Hz 之间,它还可以有1.1 Hz ,1.01 Hz ,1.0000001 Hz 等等等等,无穷无尽,也就是说,你不能有零点几份的一赫兹的能量,但是你可以有一份或者是好多份,零点几赫兹的能量啊。
那这个时候我们对能量不连续的说法,是不是就有了更深刻的认识呢。
7. 语谱图
5年前的一个听力小测试,……,你们听到的到底是 laurel 还是 yanny 啊,最后呢,会给出答案。
上面的例子,无论是 AI 克隆声音还是声音分析,都离不开我们今天要讲的内容,傅里叶变换。
今天呢,我就从声学的角度给大家讲讲,傅里叶变化啊。
我们这个世界纷繁复杂,声音也是一样的,传到你耳朵的时候呢,已经是混叠过无数次的结果了,但是为什么你还能从众多的声音当,认出那个在小小声叫你靓仔的小明呢?
往期视频讲过,傅里叶变换可以把复杂多变的波形,分解为一个个简单波形的线性叠加。
而人类的大脑就自带高效的傅里叶分析器啊,它可以把杂音过滤掉之后剩下人声,然后呢,再通过声纹特征把小明给拽了出来。
傅里叶变换,甚至还赐予了我们看见声音的超能力啊,而我们看见声音世界的窗口呢,就叫做语谱图。
语谱图的横坐标呢,是时间,纵坐标是频率,一般从下向上,频率呢,是从低到高的。颜色冷暖或者是亮度的大小呢,则代表了能量的高低。
我们来看一个具体的例子吧。
这个语谱图告诉了我们一个什么样的情况啊:0~1秒的时候,能量集中在零到1000 Hz ,也就是第一秒的声音呢,是以低频为主的,我们再来看一下一秒半到两秒半的区域,增加了高频部分的能量,同时呢,低频的能量也有所增强,而后面4~7秒的声音能量啊,比前面的都要高,而且呢,高频的能量也比前面的都多,这里可能就是演讲或者是演唱的正文内容了,中间的3~4秒能量分布很少,而且比较均匀,极有可能就是底噪或者是呼吸的声音啊,这就是对语谱图的初步认识。
接下来我们再深入一点啊,我们来看一下这个图是怎么来的。
拿一段声音的波形来看一下啊,随着时间的流逝,波形的振幅也在上上下下波动,这个其实就是声音的时域信号。
如果这个时候我们拿这一整段时间的信号,做傅里叶变换,就可以得到一个像这样的频谱图啊。
这样我们就可以十分清晰的看到,不同频率的振幅能量分布了。
朋友们,发现什么问题了没,这样处理,虽然你能够十分清晰地看到,这个信号是由什么频率成分组成的,但是你不知道这些频率成分,分别在哪个时间段出现啊。
这个其实就是时频的不确定性。
在频谱图当中,关于时间的信息是丢失了的,如果能够同时知道频率和时间的信息啊,当然我说的是在同一个坐标系当中啊,意义就十分重大了。
因为当你知道了各个频率成分,在不同时间的分布的时候呢,你就可以对它展开任意的编辑。
例如,语音中第5~8秒有高频,杂音呢很刺耳,你就可以直接定格到第5~8秒,然后呢,把这部分刺耳的高频部分去掉就行了。
如果你拿到的是一个没有时间信息的,频谱图来处理,那就意味着不管有用的、没用的,任何时间段的高频呢,也全都被你干掉了。
另外,时间和频率维度同时展开,也可以帮我们识别一些特殊的信号。
例如,一个人讲话,我们就可以轻松地分析出他的声音能量啊,是集中在哪些频段,以及他说的词汇的持续时间是多久,这就意味着,我们甚至可以分析他的发音习惯啊,这样呢,我们就可以对这个人的讲话进行模仿了。
然而,要做到时间为和频率为同时展开并不容易,实际上,在第一部分就讲过,时间和频率其实是受制于不确定性原理的,两个量啊,是鱼与熊掌的关系。
那怎么办呢,啊,不用怕,办法还是有的。
我们可以把这一整段语音的信号,每隔一段时间,例如每40 ms 就给他来一刀啊,把它切成一小段一小段啊,这里的一小段我们就叫做一帧,然后呢,再对每一帧做短时傅里叶变换,得到每一帧的频谱图哈。
然后再把这些频谱图由下向上,按照频率由低到高,把它们再旋个90度,最后呢,再把它们按时间的顺序拼到一起,这样子呢,我们就可以得到一个横坐标是时间,纵坐标是频率的图谱了啊。
诶,等等啊,先别高兴,方向虽然是这样的,但是我们还有很多问题是需要解决的。
首先,一个语音信号的能量大多都集中在低频,高频的能量呢,是相对比较弱的,那在做频谱处理的时候啊,高频细节呢,就很可能会被你当成噪音给嘎掉了。
对于这种情况,我们一般会用一个高通滤波器,来提高高频的相对能量,让大家的能量相差不会那么大,这个动作呢,我们就叫做预加重。
顺便提一下啊,随着计算能力的大幅提升,以及数字信号传输技术的发展,预加重,这个小把戏呢,在现代的语音系统当中啊,也变得没那么必要了啊。
好,接着我们把信号切块,也就是分帧的时候,问题又出现了,切开后的信号段的边缘啊,一般是比较突兀的,戛然而止,也就是说它不完整。
由于信息的缺乏,边界的地方啊,可以被解释成高频,也可以被解释成低频。
那么这个时候得出来的频谱图,就会多出好多不属于原信号的频率成分了。
原本频谱分布呢,应该是一个一个集中的尖峰啊,像这样,也就是说可以清晰的分辨出,能量分布在哪个频率上啊。
但是被你切开之后的信号的频谱的尖峰呢,就很不明显了,这种现象叫做频谱泄漏。
所以为了改善频谱泄漏啊,我们得把突兀的边边给修剪一下,让它乘以一个函数,把边边的位置呢,逐渐衰减为零。
啊,那这样就不突兀了呀,就相当于是给每一帧加了一个窗口啊,这个步骤呢,我们叫做加窗。
但是又有问题了,边边修剪了频谱,虽然不泄漏了,但是部分有用的信息也被你一并剪掉了啊。
别慌,我们只需要在分帧的时候,每一帧都取大一些,让帧与帧的边界地带存在小范围的重叠。
那这个时候再来加装修剪频谱图呢,就可以无损连接了啊。
接下来就是要拼接功率谱了。
拼接的时候也有问题,因为我们的图形是二维的,一个维度表示时间,另一个维度表示频率,那没有维度表示函数值,怎么办呢,感觉还得增加一个维度来表示函数值才行啊。
所以呢,它应该是一个三维的图像才对,像这样。
但是我们只有二维怎么办呢?
那我们就压缩维度啊,函数值的大小,用亮度的高低或者用颜色的冷暖来表示啊。
一般的彩色语谱图呢,红色的函数值最高,逐渐过渡到绿色最低。
于是呢,我们就得到了一张完整的语谱图了,上面可以同时显示频率和时间的信息。
诶,刚刚不是说频率和时间的信息,是鱼与熊掌的关系吗,那鱼谱图是不是就摆脱了,这个不确定性原理的束缚呢?
其实并没有啊,我们来看一下。
因为时间维度是切割之后再拼接的,所以说你并不能准确的说出,第58 ms 的时候的能量状态是什么,你只能说第40 ms 到第80 ms 之间的,能量状态是什么。
只能说一个时间段的,不能说时间点。
这时有聪明的同学就想到了,那我把信号再切细一点不就行了吗?
一样有问题,因为你切完之后的信号,是要做傅里叶变换的,一长段的信号包含的频率信息非常完整,所以转换出来的频谱呢,频率的分辨率很高,而当你把每一帧信号切得非常细的时候,那它所包含的频率的信息呢,就不够完整了。通俗点理解就是,你都不给够时间,别人去振满一个周期,那你测量出来的频率信息啊,就很不准确,只能得到一个大概的范围。(奈奎斯特采样)
来,我们来看一下同一段语音的两个语谱图啊。
这个呢,是把时间切得比较宽的,可以看到频率方向,频率与频率之间的分界比较清晰,所以呢,看起来有一条条横向的纹路,这个呢,其实就是各个频率之间的谐波结构啊,这种频率的带宽比较细,我们就把它叫做窄带语谱图啊。
而第二个图呢,是把时间切的比较细的,每20 ms 呢,作为一帧,可以看到频率方向啊,频率与频率之间的分界啊,都糊成了一团了啊,当然,糊成一团也有糊成一团的作用,这样子反而可以更容易地看出,能量整体的分布情况,这种一团一团的呢,叫做共振峰。
共振峰的大概位置呢,就很清楚了啊,这个对于分析语音特征也是有帮助的,这种情况频率的带宽比较宽,它就叫做宽带语谱图。
8. 傅里叶级数的复域展开
虚数曾被认为是不属于这个世界的东西啊,但是却在后来的计算机、通信、医疗、化学,光学等等领域啊,大放异彩,甚至还在量子力学领域被证明了,是超越了数学工具的存在啊,极有可能是物理现实。
那虚数又是如何被应用到这些领域的呢?
其实啊,这些通常都和傅里叶变换有关系,本节呢,我就来讲一下,傅里叶变换与虚数的梦幻联动啊——傅里叶级数在复数域的展开。
傅里叶级数的思想呢,就是把复杂的周期波形,分解成了多个高矮胖瘦不同的正余弦波形啊。
演示一下,我随便画一个波形,在右边呢,它就被分解成了很多个正余弦波形啊。
下面呢,可以控制这些正余弦波形的个数啊,个数越多,合起来的形状呢就越精细。
这些正余弦波形呢,我们就称之为组成这个函数的基。数学表达式是这样的啊。
正余弦波形可以组成一个复杂的函数,这个事情呢,在我们学了欧拉公式之后,就变得更有趣了,因为它可以让我们升高一个维度,去看这些函数。
欧拉公式把指数函数,虚数、正余弦函数都关联了起来了,它其实是描述了一个在复平面上旋转的动作。
这个在前传中,以及在虚数的那期里面呢,有讲过啊。
例如这个复指数啊,表示的是复平面上以三为半径,逆时针旋转了60度。
当我们升高维度,把时间可视化成一条轴的时候,旋转的动作呢,就变成了螺旋形,从侧面看这个螺旋就可以看到正弦波形了,而变换90度,从上面俯视啊,就可以看到余弦波形,所以说 sin 和 cos它们是有着90度的相位差的。
那是不是说非常复杂的信号波动,我们换了个维度去看它,它其实就是一个特殊的,转圈圈的动作而已啊?
的确是的啊,再来看这个例子,你看这个沿时间轴变化的信号啊,上上下下有点复杂,我们开启上帝视角,我们在正面看到了一个什么东西啊,在正面看到的竟然是一个比耶啊。
这个比耶从正面视角去分解了呢,其实就是很多个转圈圈的动作,当然,在这个视角之下啊,是迎着时间轴的箭头去看的啊,时间轴是看不见的,其实这也可以一定程度说明了,时频不确定性啊。
看这个有时间轴的信号啊,你可以随意看到,第几秒的信号的振幅是多少,也就是它在时间上给你留了痕迹,但是转圈圈的动作转过去就转过去了,在时间上没有留下痕迹给你,你能清楚看到的只是这个圈它大不大,以及它转的快不快啊。
按这样看,我们是可以把转圈圈,也就是 e 的 iθ 次方作为函数分解的基。
如果把时间 T 作为变量,那么θ呢,是等于ωt的,那这个 e 的 iθ 次方呢,就变成了 e 的 iωt 次方,ω呢,是角频率,ω的绝对值越大啊,那它就转的越快。
如果角频率是正的,那它就是逆时针旋转,如果角频率是负的啊,它就是顺时针旋转啊。
用 e 的iωt次方作为基的话,它是通过转圈圈的快慢,对这些基进行分类了。
这里呢,有一组非常经典的基啊,e^it,e^i2t,e^i3t,……一直到e^int,然后呢,e^i(-1)t,e^i(-2)t,一直到e^i(-n)t啊,以此类推。
这组基呢,可以合成一个以2π为周期的函数,关于和函数的周期性和频率的关系啊,在第5部分将了。
转圈圈动作详解?
举个具体的例子,来讲一下这个转圈圈的动作,R 乘以 E 的 I 欧米伽 T 次方啊,它表示的是以 R 为半径,欧米伽为角频率的逆时针旋转啊,因为当 T 等于零的时候啊,也就是刚开始转的时候呢,欧米伽 T 是等于零的,也就是说这个旋转呢,是从零度开始转的。
如果它旋转的起始角度不是零呢,也就是他的初项不为零,怎么办啊,这也简单啊,给这里加个角度就行了啊,R 乘以 E 的 I 欧米伽 T 加阿尔法次方,当 T 等于零的时候,这个复数呢,就变成了 R 乘以 E 的 I 阿尔法次方了,R 它的初始相位就是阿尔法,也就是从角度阿尔法的位置再开始旋转。
化简一下啊,它就变成了这个样子啊,R 乘以 E 的 I 阿尔法次方,再乘以 E 的 I 欧米伽 T 次方。
所以实数 R 表示了旋转的半径,E 的 I 阿尔法次方呢,这个复数表示了起始的位置,欧米伽表示了旋转的快慢和方向啊。
而 R 乘以e的iα次方呢,可以看成是一个常数,我们就把它写成是 C 吧,那么这个旋转的式子呢,就被简化成了,C 乘以 E 的 I 欧米伽 T 1次方。
那么一个周期为2π的函数 f(t) 啊,就可以这样分解了啊。
按刚刚所讲的每一项基前面呢,都应该有一个系数C,这个系数啊,一般是一个复数来的,如果虚部为零,也就是 C 是实数的时候,这一项的初相位呢,就是零了。
这么多个系数,我们得写一个下标来做下区别啊,那么当欧米伽等于零的时候,就作为第零项吧,啊,那它就是 C 0,欧米伽等于一,那就是 C 1,然后 C 2、 C 3一直到 CN ,以此类推啊。
负频率这边也一样啊,c -1、 c -2、 c -3,一直到 C 的负 N 项。
可能有同学会对这里的 C 的负 N 项比较疑惑,其实呢,我们看到 CN ,可以把它理解成一个数列的通项,就像我们以前高中学的 an 一样啊,数列呢,其实是一个离散的函数,N 可以看作是这个函数的自变量啊,当我们允许自变量取负数的时候,不就可以有负 N 项了吗,所以说这个表达式呢,就变成了这个样子啊。
之前讲过了求和符号,而这个式子呢,可以用求和符号缩略成这样啊,f(t)等于 CN 乘以 E 的 INT 次幂,N 的取值呢,是从负无穷到正无穷大。
大家对比一下,在第二部分中讲过的傅里叶级数的式子,你看三角级数的形式啊,它是既有 sin ,它又有 cos,而这里呢,一个 E 的 int 次幂搞定。
要想傅里叶级数分解成功,那你就需要把各项的系数 AN 、 BN 都求出来了,而在这里的复指数形式呢,只需要求一个 CN 就可以了。
CN 怎么求呢,后面会讲啊,不得不说欧拉真神。
转圈圈如何叠加?
最后说一下转圈圈的表达式,加起来是怎样的场景。
表达式的每一项啊,其实就是一个复数,而复数相加呢,在复平面上其实就是向量叠加的效果。
大家不妨看一下,这个4+3i 加上1+2i ,它是等于5+5i 的。
可以看到它是遵循平行四边形法则的。
当然也可以看成是三角形法则,意思也就是在一个向量的末端,作为另一个向量的起始端啊,连接到一起,那连接的最末端所指向的地方呢,就是相加的结果了。
例如,三乘以 E 的 i(-1)T 次方,加上 E 的 I(-2)T 次方,它的运动呢,可以表示成,先是一条长为三的杆,一端定住,以一弧度每秒的速度顺时针旋转啊。
然后再可以旋转的端点,再钉上一条长为一的杆,以二弧度每秒的速度啊,也是顺时针旋转啊。
这个连杆末端画出来的蓝色轨迹,就是这两个复数叠加的结果了。
然后大家可以按这个规律,不断的往连杆的末端继续叠加,继续叠加啊,就可以表示多项复数相加的结果了。
你看这个比耶不就出来了吗。
又例如,大家看一下这个啊,你们看到了什么呀。
下一期就用数学来证明,其实傅里叶级数的三角函数分解,和复指数分解呢,是等价的,并且给大家讲讲系数,CN 计算公式的来龙去脉,然后你们就会明白,为什么我之前说,傅里叶变换是共轭对称的啦。
9. 三角级数到复指数的证明
还是拿一个周期为2π的函数 f(x)做例子,这是它复指数级数的形式啊,而这个呢,是它的三角级数的形式。
这边复指数的 N 呢,是从负无穷一直加到正无穷的,而这边的三角级数呢,是从一加到正无穷。
你想要从这个三角级数的形式啊,去推导得到这个复指数的形式,我们就得要把他们这里的三角函数,和这里的复指数关联起来,所以说我们这里呢,就得借助一个数学工具啊,欧拉公式。
上面的式子呢,是 cos(nx) 跟 sin(nx) 啊,我们这里要对欧拉公式做一下拓展啊。
E 的 INX 次幂啊,NX 看成一个整体,那么这个公式呢,就变成了 cos(nx)+isin(nx)。
我们证明的思路啊,其实就是对这个 cos 和 sin 进行代换哈,就是用这个复指数的形式对它进行代换,然后再逐步的推导,得到这个 E 的 INX 的次幂的形式啊。
但是我们在代换的时候发现了,你想要用这个复指数的形式去代换这个 cos ,那你这个 sin 你就得要消失,对吧,你想要去代换 sin 的时候呢,你的这个 cos 呢就得消失,但是这里的 cos 和 sin 呢,它是同时出现的啊,就比较难代换,那怎么办呢。
我们还得对这个欧拉公式再做一次拓展啊,E 的负 INX 次幂啊,这里的负 NX 呢,是作为一个整体啊,这个公式呢,就变成了 cos 的负 NX ,加上 I 乘以 sin 的负 NX ,这个 cos 呢,它是个偶函数啊,所以说这里的 cos 负 NX 呢,是直接等于 cos n x 的,直接写,那么 sin 呢,是个奇函数,sin 的负 NX 啊,它是等于负的 sin x ,这里改成 NX ,这里的加号啊,就变成了减号。
这样子呢,我们就有了两个式子啊,我们突然就发现了,刚刚的代换问题迎刃而解,为什么呢,因为一式加二式除以二,它是等于 cos 的 NX 的,它的复指数形式呢,就变成了这样啊,而一式减去二式再除以2 I ,我们就得到了 sin 的 NX 。
但是我们发现了 sin nx 这个表达式啊,它的分母啊,有一个 I ,这个看起来不好看,也不好去运算啊,所以说我们得要把它给有理化,上下同时乘以一个 I ,那么分母的 I 乘 I 就是 I 的平方,就是等于一的啊,我们把负一提到这里来啊,然后呢,再把它乘到括号里面去,整个式子呢,就变成了 E 的负 INX 次幂,减去 E 的 INS 次幂除以二,然后再乘以 I 的。
好,那么接下来呢,我们就可以对这个 cos 和 sin 进行代换了,就是拿这一块啊,带到这里来啊,这一块带到这里来。
我们的目标是要从这个形式,然后呢,再统一到最后的这个 E 的 inx 次幂的形式,所以说我们下一步呢,得要合并同类项。
我们看一下这里的复指数有哪一些项啊,首先有一个是一的 INX 项,以及一个 E 的负 INX 项啊,我们来看一下怎么去把它们合并起来。
E 的 INX 项啊,在前面这里的它的系数是an/2 ,在后面这里的 E 的 INX 次幂啊,它的系数是-(ibn)/2。
好,接下来到这个e的负 INX 次幂啊,在这里呢,它前面的这个系数是an/2,后面这,这个e的-inx次幂的系数,就是(ibn)/2啊。
而到了这一步呢,我们又发现问题了,为什么,因为我们的目标只有一个,就是 E 的 INX 项,而你在这里的这两项啊,是不一样的,一个是 E 的 INX 项,一个是 E 的负 INX 次方向啊,这两项的形式不一致,所以说你是合不到一块的啊,所以我们要对后面的这项啊做处理。
那么我们要怎样去处理这个 E 的负 INX 项,才可以让它变成 E 的 INX 项呢,其实我们用函数的思维呢,就可以解决这个问题了,为什么,因为如果有一个f(x)函数啊,它的表达式是啊,假如是 X 加一,那么你可以带一个负 X 进去,那它就变成负 X 加一,对吧。
那么我们看回来这里啊,AN 、 BN ,我说过了,他其实就是一个数列,而数列呢,它就是离散的函数,那就得了,那这一整块我就可以把它看成是一个,以 N 为自变量的函数啊——f(n)。
N 的这个取值范围啊,也就是它的定义域呢,应该是一到正无穷,而它取值的间隔呢,是整数啊,你想要把它形式统一到了 E 的 INX 次幂,那我就在这里啊,带一个负 N 进去就行了,二分之 a 的-n 项,加上 I 乘以 b 的-n项,这里呢,就顺利的变成了 E 的 INX 次幂了啊,当你带进去的东西啊,你丢个负 N 进去,那你这个负 N 呢,也得要满足上面的这个定义域的啊,也就是你的负 N 呢,也得是符合一到正无穷的这个取值范围,我们整理一下,在下面丢进来的这个 N 的这个形式啊,它的取值范围呢,应该是负无穷到-1的啊,就是由这一步推到这里来。
还有同学对这一步感到比较疑惑啊,实际上你可以这样子理解啊,就当 N 是一到正无穷的时候,这个函数规律你就得要用这个形式来表现,但是如果我换了这个 N 的范围,如果它变成了负无穷到-1的时候,那你同样的函数规律呢,它的表现形式就得相应的,改成了下面的这个样子了,所以说上面跟下面这个式子啊,它的这个 N 的范围不同,表现的形式也发生了相应的变化,但它们的本质呢,是一样的一个函数规律啊,所以说上面和下面是等价的。
根据下面的这个表达式呢,我们就可以把这个求和的这一项啊,变成这样啊,N 是从负无穷啊加到-1的,这里的系数呢,咱照抄下来,到了这一步呢,我们就可以把后面这半段的 E 的-inx次幂的形式啊,统一到了e的 INX 的形式,但是我们还不能够把它直接代换到上面去,为什么呀,因为你看前面这半项的系数是什么呀,人家是 an 和 bn,而你这里的呢,是 a(-n) 和 b(-n),这里的系数与形式还是不一致啊,也还是凑不到一块啊。
那么我们就要对这个 AN 和 A 的负 N ,BN 和 B 的负 N 呢,做一下处理啊,回想第二部分讲过的 an 的求解公式啊,它是这样子的,那么 A 的负 N ,其他的东西不变照抄啊,这里的 NX 呢,就变成了负 NX 啊,cos 呢,它是个偶函数,所以说cos(-nx)啊,直接改成 cos(nx)就可以了啊,大家观察一下,an 和 A 的负 N 是不是一模一样啊,对了啊,所以说 an 呢,它就是等于 A 的负 N 项的。
那么这个式子啊,我就可以直接把它改写成 an 了啊,好,再到下一个要处理的就是 BN ,那么 BN 的求解公式呢,是这样的啊,那么 B 的负 N 项呢,其他东西不变啊,积分范围也不变,只不过是这里的就不是 sin 的 NX ,而是 sin 的负 NX 啊,sin 呢,它是一个奇函数,所以说 sin(-nx)呢,是等于-sin(nx)的啊,这里改成 NX ,这个负号呢,提到前面。这里再观察一下,BN 和 B 的负 N 呢,它其实是互为相反数的,所以说 BN 它是等于负,B 的负 N 项。
哎,所以这里的 B 的负 N 项呢,我们可以做一个代换了啊,直接代换成 BN 项,但是这里的加号就要变成减号。
好,那么到了这一步的时候啊,我们就可以暂停看一下了,我们推导出来的这个形式啊,是用上面的后半项来推导出来的啊,观察一下它的表达式,你看一下跟前半段的是不是一模一样的呀,这表达式的形式就一致啊,所以说我们就可以直接把这一个啊,写到上面来了啊,把它换了。
我们再来观察一下,前面的这一段的求和,它是从一加到正无穷,而后面的这段的求和呢,是从负无穷加到一的,他们的表达形式是一样的,哎,这不就是从负无穷一直加到正无穷嘛,啊,表达式都一样啊,只不过是求和的范围变大了而已,但是细心的同学呢,就发现了一个问题啊,后面这半项呢,它是从负无穷一直加加加加加到一的,而前面的求和呢,它是从1一直加加加加加加到正无穷的,中间漏了一个第零项呀。
哎,别慌,我们看一下,这里还有个常数项,我们看一下,如果我用这样的表达式,当 N 等于零的时候带进去,如果求出来刚好就是二分之 A 0,那就证明了他们的表达形式就是这个,只不过这个二分之 A 0呢,就是 N 等于零时候的的样子啊,我们代一下看一下啊,当 N 等于零的时候啊,这个表达式呢,就变成 A 0减去 I 乘以 B0 再除以2,再乘以的e的i0x。那么 E 的 I 0 X 次幂啊,它其实就是一,这项呢,可以消掉啊。
那么我们再看一下 B0是等于多少,sin(0x)还是等于零的,那么整一块呢,就是等于零了,所以 IB 0呢,就是等于零的,哎,这一项也没了。
全部项呢,就只剩下二分之 A 0了,我们是用这个表达式拿 N 等于零带进去的,所以说这个二分之 A 0呢,就是第零项了。
至此呢,我们就把所有的项都统一到了一起了。
所以最后他的表达式呢,可以这样写啊,N 是从负无穷一直加到正无穷,我们通过观察发现,这个 an 减 IBN 再除以二,其实它就是一个普通的复数嘛,跟 N 的取值有关啊,诶,那我们是不是就可以在这里做一个代换呢,令 CN 直接等于二分之 an 减去 IBN ,就行了呀,CN 它就是一个随着 N 变化的复数嘛,之前有讲过啊。
至此呢,我们最终的形式就可以写成这样,那么我们开头所讲的这些东西呢,就全部得证啊,在这里呢,再稍微提个有趣的东西啊,你看一下,CN 呢,是等于二分之 AN 减 IBN 的,那么 C 的负 N 项是等于什么的呀,它是等于二分之 A 的负 N ,减去 IB 的负 N 项。
因为 A 的负 N 项呢,是等于 AN 项的,推导过的啊,直接写啊,B 的负 N 项是跟 BN 项呢,是互为相反数的啊,这里呢,写成 bN ,这里的减号变成加号。
大家发现个什么问题了没,CN 和 C 的负 N 项啊,它们是共轭的意思,也就是实部相等,而虚部互为相反数啊,是不是说明这个 CN 的形式啊,他跟傅里叶级数和傅里叶变换的共轭对称,有一定的关联呢,的确是。
下节就对这个现象进行深入的剖析,让大家对傅里叶变换的印象更加深刻。
10. 频谱图
讲了这么多节的傅里叶啊,好像没怎么讲过频谱图是怎么看、怎么画的啊,那么这一节呢,就专门给大家讲,频谱图的第一印象,他应该怎么看怎么画啊。
傅里叶变换的一大作用啊,就是把一个信号从时域变换到频域啊。
时域信号就是看一个信号,它的能量随时间变化的波动状况。
就好比这个信号啊,它是随着时间的流逝而波动增强的。
我们得知道一个事实,波它是会叠加的,同样的波形叠加呢,它只是振幅会变大啊,形状什么的都还能保持啊。
但是如果不同的波形叠加起来,那么原来的东西呢,就面目全非了啊,就像声音一样啊,一个人唱一首歌可能好听,一群人同时唱同一首歌呢,也可能好听,但是如果一群人各唱各的,那场面就堪比稻花香里说丰年啦。
而傅里叶变换的作用呢,就是把这些叠加的毫不讲理的波给拆了。
就像现在的通话降噪功能,虽然你的声音和环境音呢,混杂了在一起,但是傅里叶变换呢,可以把它拆开,再把不属于你的频率成分给嘎掉啊,然后剩下的再合回去啊,这其实就是滤波的原理啦。
说到这,我们就明白了,知道一个信号的能量在不同频率上的分布,有多么的重要了啊,如果你要画出能量在不同频率下的分布,也就是频谱图。
那你是不是得把频率作为自变量呀,好,那我就画一条坐标轴来表示频率的啊,既然是能量在频率上的分布,那么纵坐标呢,就得是能量了,但是对于波形来讲啊,它的能量是和它的振幅的平方成正比的,哎,那我就直接把振幅作为纵坐标啊,那不也挺直观的吗。
假如有一个频谱图是这样的啊,横坐标频率的单位是赫兹啊,它的间隔为一,就像这样啊,一赫兹、2 Hz 、3 Hz 、4 Hz 啊等等,我们随便挑两个频率来看一下啊,2 Hz 的位置高度是三,意思呢,就是组成原信号的成分里面呢,有一个频率是2 Hz 的余弦波形,而且它的振幅呢,是三。
5 Hz 的位置的高度是0.5,意思呢,就是频率是5 Hz 的余弦波形呢,它的振幅是0.5啊。
大家注意一下啊,频率的间隔呢,主要是和原信号函数的周期是有关的,这个后面会细讲,于是呢,我们就得到了一个横坐标为频率,纵坐标为振幅的图像了,这就是最基础的频谱图了。
大家注意到一个事情了没有,振幅代表了什么物理量和它的单位是什么,我没有说。
那是因为纵坐标这个振幅,它所代表的物理量,是跟你研究的对象是相关的——如果你研究的信号是声音,那么振幅呢,就是声压,单位是帕斯卡,也可以是相对声压,单位是分贝;如果你研究的是电压信号,那振幅代表的就是电压,单位是伏特啊。
诶,大家看这个频谱图,这不就是一个函数图像吗,以频率为自变量,然后对应到不同频率上的振幅作为函数值,那这个函数值和傅里叶变换(级数)的公式的关系是什么呀?我们是如何由傅里叶变换得到这些,一个个频率上的函数值的呢?
之前说傅里叶级数的时候讲过,一个普通的函数,可以分解成一个个正余弦函数的线性叠加,公式呢,是这样的啊。
大家看这里的 A 1、 A 2、 A 3等等等等啊,这些是什么来的呀,这其实就是每一个波形的振幅呀。
就好比 sin x 是这样的,在它前面乘个二呢,它就变得高一些,乘以三,3sin x 呢,就更高了啊.
举个简单的例子啊,假如有一个函数,经过傅里叶级数的分解之后呢,就变成了这样啊,f(t)是等于5 cos t 加3 cos 2t 加0.4cos 3t ,再加2 cos 4t的,我们先把横坐标画出来先啊,cos t 呢,它所代表的角频率是一弧度每秒啊,cos 2t 的角频率是二弧度每秒,然后这个呢是三弧度每秒啊等等等等,至于角频率,弧度每秒跟频率赫兹之间的关系,在之前就讲过了,这里呢,就不展开了啊。
我们来看一下常数项,也就是零频率的位置啊,它是零,也就是振幅为零,不用画啊,一弧度每秒的位,对应的振幅呢,是5,所以呢,我们这里的函数值就是五,二弧度每秒的位置啊,对应的振幅呢是三,所以这里的函数值呢,就是三,以此类推,我们就把其他的都画好啊,这样子呢,频谱图就画出来了,所以大家明白,傅里叶级数为什么要求 an 了吧,因为他就是频谱图里面的函数值呀。
可能有同学就会问啊,如果有正弦项,也就是有 BN 怎么办呀,好比上面的这个例子多了一个 sint 啊,简单习惯上呢,我们会把它们都化成余弦的形式啊,毕竟a0常数项呢,它是由 cos0作为基得来的啊。
我们用辅助角公式处理一下啊,全部都变成了余弦的形式,于是呢,就变成了这个样子啊。
刚刚的频谱图呢,就得改一改了啊,一弧度每秒的位置的振幅呢,就变成了根号的26了。
诶,那这个负的0.197弧度是什么来的呀,这个其实是它的相位了啊。
相位是相对原来的位置,往前或者往后挪了多少。
因为对于波形来讲啊,虽然大家都是同样的组成成分,但是你往前挪一点,往后挪一点,它们叠加起来的东西啊,可就大不一样了,你想想,1万个人同时唱一首歌啊,那叫做气势恢宏,如果1万个人各自在不同的时间开始唱啊,那就不行了。
所以呢,我们一般呢,还得再画一个相位谱,来记录一下不同频率成分的相位信息啊。
这里呢,只有一弧度,每秒的时候啊,有负的0.197弧度的相位,其他频率相位为零啊,也就是其他频率呢,都是在初始的位置同时开始震的啊。
那么相位谱画出来就是这样的啊,好,至此呢,我们就完成了对频谱图的第一印象的建立了。
我们还可以再深入一点,是不是有同学还发现了,有些频谱图是有负频率的。
可上面的这个频谱图的频率,却是从零开始的非负数。
不光这个啊,从上面的频谱图来看啊,频谱图反映的是一个离散的函数,但实际上我们常常看到的频谱图却是连续的,那这又是怎么回事呢?
还有一些频谱图它是对称的,而你上面所讲的这些频谱图啊,它一点也不对称呀。
11. 频谱连续 && 傅里叶级数→变换
上一节给大家讲了频谱图的第一印象,讲到的频谱图是离散的。
但是这样离散的频谱图,是由于原函数的周期性导致的。
原函数的周期性是如何导致频谱离散的呢,这其实就要说到傅里叶变换(级数)出现的初衷是什么了。
它的出现本来就是一个化繁为简的思想,把一个复杂的东西,拆成一个个简单的成分叠加。
如果说能把任意周期函数都拆成,一个个更简单的周期函数,不更方便研究了吗。
那最简单且美妙的周期函数是什么呀,那可不就是三角函数的正余弦了吗。
分解之后,我们就可以轻松的得到,不同频率对应的能量有多少了。
而这种操作呢,就是傅里叶级数了,这个是傅里叶级数操作的直观化啊,大家可以看一下。
注意哦,不是说周期函数只能分解成周期函数的叠加,而是我们想要把它分成周期函数的叠加。
因为周期函数其实也是可以分为,周期函数加非周期函数的,但是那样就没有研究的意义了啊。
那周期函数加周期函数等于新周期函数,需要满足什么条件呢?
这个在第五部分讲过了啊,这里再简单的带过一下。
两个周期函数,如果它们的振动是同时开始又同时结束的,那这两个函数叠加出来的新波形,肯定也是能够头尾相接,形成循环的啊。
要满足振动同时开始,然后又同时结束,那这两个函数中间各自正了几个周期,其实不用管,只要都是整数个就行了啊。
例如 T1比 T2是等于二比三的啊,这种呢就可,它们叠加起来就长这样了啊,这个新函数的周期呢,就是3T1或者2T2了。
又例如有三个函数的周期之比,是二比三比一啊,这种也行,因为3T1是等于2T2等于6T3的,那么这三个函数相加形成的新函数周期呢,就是3T1或者是2T2,或者是6T3了。
我们刚开始学傅里叶级数的时候啊,它是针对2π周期函数的。
既然原函数的周期是2π,那我的基函数的周期,就先来一个 T1=2π的打底,然后再按照整数倍缩小啊,T2等于2π/2,T3等于2π/3等等啊,一直到 TN等于2π/n的,这样子就可以轻松实现,所有基函数的震荡点,同时开始又同时结束了。
你看 T1等于2T2等于3T3等于4T4等等等,一直等到 NTn ,他们都是等于2π的,就算不看图像,也能知道这些基合成的函数的周期呢,就是2π了。
好,那么我们再看一下这些周期的三角函数,所对应的角频率是多少呀。
稍微讲一下角频率与周期的关系啊,ω是角频率,通俗点理解呢,就是转的有多快,当然还得加上一个人为的定义,逆时针是正,顺时针是负,而周期 T 就是转一圈所用的时间,所以ωT呢,刚好就是等于一圈的弧度,也就是2π了,整理一下啊,就可以得到ω = 2π/T的。
OK ,可以回过头来看一下,2π周期函数的 ,对应的角频率了啊,用2π/T带进去就可以得到,这里的呢,ω1是等于1的,ω2等于2,ω3等于3,一直到ωn等于 n。
如果要画频谱图啊,就是这样了啊,横坐标自变量是角频率,按刚刚计算的结果呢,就是一、二、三、四等等等等啊。那你看自变量都离散了,那频谱不就离散了吗。
接下来我们再继续啊,如果原函数的周期是4π呢。一样的,只需要把这里打底的基的周期,2π换成4π就可以了,T1等于四派,T2等于4π/2,然后是4π/3派啊,以此类推,再用刚刚的公式,把它们对应的角频率给算出来啊,欧米伽一是等于0.5,欧米伽二是等于一,欧米伽三等于1.5,等等啊。
同学们发现了没,4π周期函数的频谱的自变量间隔,比2π周期的间隔要小。
难道说原函数周期越长,频谱图的间隔就越密。
没错,是这样的啊,当原函数的周期越来越大、越来越大,频谱呢,就越来越密、越来越密,像这样啊。
频谱的横坐标间隔呢,就刚好是等于2π除以原函数的周期 T 的。
而非周期函数,我们可以看成周期无穷大,而当周期无穷大的时候,频谱横坐标自变量的间隔等于2π除以 T ,就变成无穷小了,而间隔无穷小不就连续了吗。
所以说,为什么你们经常看到的频谱,是连续的呀,因为原函数是非周期的呀。
而当你处理的函数,由周期变成非周期的时候,上面的操作就不再是傅里叶级数了,而是傅里叶变换了啊。
至于它们的公式的解析呢,后面会细讲。
还有一点要注意的:
傅里叶级数的基函数的周期之比是有理数,所以傅里叶级数频谱的自变量角频率,必定是有理数。
例如在傅里叶级数的频谱里面,你不可能找到根号三弧度每秒对应的函数值。
而傅里叶变换的频谱是连续的。
你是可以找到根号三弧度每秒对应的函数值的。
12. 频谱对称性
这个之所以能成为一个疑问,是因为频谱图偶尔是这样的,这样的,以及这样的。
之前讲过了,一个函数可以被分解为一个个不同频率的基函数,再乘以一个个系数啊,然后再加起来。
这些系数被拎出来,作为对应频率的函数值,于是呢,频谱图就出来了。
- 周期函数可以得到离散的频谱,非周期函数呢,可以得到连续的频谱;
- 但是无论怎样,频谱都是不对称的;
- 主要是因为如果用三角函数来做基,频率就只有正的,所以频谱图也肯定是不对称的;
- 频谱想要对,还得要有负频率才行;
说到负频率啊,我们还得感谢欧拉啊。
之前的傅里叶分析,分解的基呢,是用正弦和余弦来表示的,欧拉公式则神奇的把这两者呢,结合到了一起。
不过在这里就引入了虚数 I ,所以傅里叶分析就从单纯的实空间,拓展到了虚实结合的复空间了,而角频率也就有了新的数学意义了。
从复平面上看,正的角频率表示了逆时针旋转,负的角频率则表示了顺时针旋转,当然,这个旋转和正余弦的关系啊,在之前就讲过了啊。
我们用一个简单的例子来讲一下,欧拉公式是如何做到的。
例如,我在一个2π周期函数的分解式当中呢,摘出其中一项三角函数来啊,假如摘出来的这一项是4cos(3t+0.6π),这个函数的振幅呢,是四,初相位是0.6π,利用欧拉公式把4提出来啊,然后再带入欧拉公式的拓展式,得到的结果呢,再进一步化简,最终呢,就化成了这个样子啊。
这个表示的是旋转半径,这个表示的是旋转的初相位,而这个呢,表示的是旋转的角频率。
你看这个三角函数就被分解为了两个完全对称的旋转叠加。
如果你把 E 的 I 3 T 和 E 的 i(-3)T ,作为分解的基的话呢,那么前面的这两项呢,就是系数了。
按照之前的定义,这个呢是 C3项,这个是C-3项。
所以说Cn和 C(-n)项肯定是同时出现的,因为它们都是来自于同一个实函数的分解。
你再加上其他的三角函数项,也是同样的处理.
这个时候我们再来画频谱图啊,也是一样的,把 CN 这些系数给拎出来,作为幅度谱的函数值啊,先画横坐标啊,如果你按照数列的画法,横坐标,就是 N 等于一、二、三、四、五、六、七这些整数啊,但是频谱图得用频率来作为横坐标,在2π周期函数当中,频率的间隔呢,是等于2π/T啊,这里T=2π,那么这个间隔就刚好是等于一了。
那这里的 N 是一的时候,欧米伽就是一,N 是二的时候呢,欧米伽就是二等等等等啊。
如果原函数周期是4π,频率的间隔呢,就是2π/T就等于0.5了,那么 N 等于一就代表着欧米伽等于0.5,N 等于二代表着欧米伽等于一,N 等于三代表欧米伽等于1.5,以此类推啊。
由于 CN 项和 C 的负 N 项是同时出现的,所以呢,有 N 就一定会有负 N 啊。
也就是说有1就有-1,有2就有-2,以此类推,自然而然的呢,负频率这边就出来了。
好,我们再来画纵坐标,但这个 CN 是一个复数,不能直接画,我们一般是取 CN 的模来作为函数值的,它表示的其实也是振幅啊。
就像上面的这个例子,C3项的模是二,这个C-3项的模也是二,把它们在坐标中画出来,这就有了两个对称的凸起了。
如果这个时候加入更多的三角函数,分解完之后也是一样对称的,把所有的项都补齐之后,就出现美丽的对称图形了。
我们再回到刚才的例子啊,观察一下相位有什么特点。
从这里看,CN 项和 C 的负 N 项的相位啊,是互为相反数的,而正频率这边的相位和三角函数,是保持一致的啊,所以它们的相位谱是这样的,一个关于原点对称的图像。
小结一下,频谱的对称性,是由于实函数分解成复函数导致的。
既然是对称的,那频谱图只看一边就行了呀,为什么要两边都画出来呢。
事实上是在实际的研究当中,对于实信号,我们的确通常只画其中一边来研究而已啊,这种就是单边谱。
但是如果遇到某些复函数,你就不得不画两边了。
例如,f(t)=5cos(5t)+isin(5t)的,通过代入化简之后,就可以得到f(t)的复指数形式了啊。
这就很容易看出来,在频率等于五的时候呢,振幅是三,而在对称的频率五的地方呢,振幅却是二,明显不对称。
你可能就会疑问了,纯复函数,这种不靠分解实函数而得到的复函数啊,在现实世界当中真的有对应的东西吗?
有的啊,这种函数在量子力学当中呢,其实是很常见的,之前科学家就通过实验证明了,只在实空间去描述量子力学的现象呢,是不完备也不准确的啊。
13. 傅里叶逆变换
经常拆家的朋友呢,应该都知道啊,把东西拆了容易,但要把它再装回去呢,就没那么简单了。
而傅里叶变换就是这样的一个拆家工具啊,它可以把一个复杂的信号,拆开成简单的成分,看看哪里出了问题。
但其实大家平时看的比较多的,只是傅里叶变换的残本,只看到了拆的部分,就是这个。
而合并回去的部分呢,也就是这个,傅里叶逆变化却常常被忽略,或者是被一笔带过,以至于留下非常多的疑问。
最大的疑问莫过于这里的1/2π,他为什么要在这里除以一个2π呢。
如果我告诉你,逆变换这里其实也可以不用除以2π,甚至除以根号2π也是可以的。
首先大家要知道一个事实,时域信号 f(t)经过正变换,可以得到以频率为自变量的频率信号F(ω),频率信号经过逆变换之后呢,又可以变回去 f(t)。
所以问题的关键就是要把这个正则推,再逆回来这个过程给找出来,而逆变换的奥妙就藏在其中。
就好比你在丛林探秘的路上,撒下彩色的小石头,最后呢,再顺着小石头回到了原点一样,去路即是归途。
那大家再跟着我看看,是否能够沿着正变换的彩石找到逆变换的归途吧。
我们还得回头从傅里叶级数的复指数形式讲起啊,啊,这个在第八节就讲过了。
f(t)呢,是可以看成是一个系数乘以一个基,再加上另一个系数乘以另一个基,这样的不断不断的累加的啊,所以这些系数实际上就是频谱里面,对应频率的函数值。
例如,这是一个周期为2π的函数的傅立叶级数展开,CN 呢,在这里是系数,同时也是频谱的函数值。
例如一弧度每秒的频,对应的函数值呢,是 C 1,二弧度每秒对应的是函数值,C 2,它是一个复数来的,包含了幅度和相位的信息。
假如求出来的 C 1啊,它是等于3乘e的 i*3分之π次幂,它的模长三可以化为频谱图的纵坐标,幅角π/3就可以化为相位谱的纵坐标。
所以正变换的任务呢,就是要把这个系数 CN 给求出来。
那么 CN 是怎么求出来的呢?
我们可以利用傅里叶级数基的正交性,例如我想求第二项系数,也就是 C2的值,只需要左右两边同时乘以 C2项,基的共轭,e^(-i2t)次幂。
然后呢,再求积分,因为周期是2π,所以积分的范围是从-π积到π,当然积分的上下限的差距,保证是一个周期就行了啊,0~2π也是可以的。
好,再看这个积分呐,这里除了 C 2的这一项,其他项的积分全都是零。
而 C 2这里呢,变成了 E 的零次方,也就是-π到π的积分,积出来就是2π*C2了,移一下项就可以得到 C 2的公式了。
类似的我们也可以得到 CN 的公式。
可能有同学会问了,这些其他项为什么是零呢???
我随便填挑两个非共轭的项出来算,给你们看一下就知道了。
例如e的 I 3 T 和 E 的 I 2 T ,这两项相乘,再求积分可以得到,这里是 E 的 I 5 T ,用欧拉公式化开成余弦和正弦两部分,再求积分。
sin 的5 T 呢是奇函数,所以这里的积分是零,cos 5 T 与 X 轴围成的面积啊,上下刚好是相等的,不难得出结果也是零,所以呢,整个积分的结果就是零了。
这个其实就是基与基之间的正交性了。
这个公式是针对2π周期函数的,如果原函数周期变为任意周期 T 呢?
函数周期的变化,那么组成函数的基也要相应的变化。
例如2π周期函数的基频率间隔呢,是一弧度每秒,所以它的频谱的横坐标呢,就是1、2、3、4,一直到 N ,一个频率对应一个基,那它的基呢,就是 E 的 INT 次幂。
周期为 T 的函数,基频率间隔呢,是2π/T ,频谱的横坐标呢,就是 N 乘以2π/T 了啊,当然,为了书写方便,2π/T 呢,可以写成ω啊,那它的基呢,就变成了 E 的 INωT 次幂。
当然,这个nω呢,可以用下标的方式来表示啊,写成也行了啊,表示的是第 N 个ω的值。
所以呢,针对任意周期 T 函数的 CN 求解公式,可以这样写啊。
这里的基的共轭就变成了e^-it,积分的上下限呢,就变成了从 -T/2 到 T/2 了,这里就不是除以2π了,而是除以 T。
之前除以2π,是由于基函数和自己共轭的乘积在于一个周期内积分为2π,提出系数,再移项。
和前面利用正交性来计算的步骤,其实是一样的啊,这里除以 T ,主要是由积分的上下限的差决定的。
这样呢,我们就完成了正变换的步骤了。
好,我们再沿着正变换的路逆着走回去试试啊,系数乘以基再累加起来,就可以变回去时域的函数 f(t)了,我们原封不动的,把刚刚求得的系数的式子代回去。
那系数乘以基就变成了这个样子,这里呢,我们可以把 T 分之一提到前面来哈。
f(t)就变成了这个样子,为了表达的规范,我把这里的 T 改成 τ 啊,实际上呢是一个意思来的。
到这我们是不是已经把逆变换的路走完了嘞?
还没啊,因为这是周期函数的频谱是离散的,如果是非周期的函数呢,非周期函数,实际上可以看成是周期无穷大的情况,也就是 T 趋向于无穷,这里呢,我们可以用一个极限来表示啊。
因为我们要求的是函数在频域中的表现,接下来呢,我们要用频率对周期进行代换,是频谱的横坐标,那横坐标的间隔就是∆ωn = 2π/T。所以1/T呢,就等于∆ωn/2π。
∆ωn可以放到后面去,1/2π是常数,可以提到最前面来,因为 T 趋向于无穷,所以∆ωn呢,就是趋向于零的。
那么极限的这里呢,就变成了∆ωn趋向于零了啊,同时这个积分的上下限呢,就变成了负无穷到正无穷。
大家注意看这里啊,极限趋向于零,然后呢,还搭配着求和函数,高数经常考满分的同学啊,一眼就看出来了,这不就是求定积分吗?
啊,这个∆ωn呢,就变成了dω,积分范围是从负无穷积到正无穷的。
好,至此呢,我们就得到了这样的一个公式,他是正着走进丛林,然后再逆着走回来的地图,它就是傅里叶变换公式的完整版。
中括号里的内容呢,是正变换,它可以得到频域函数.
当正变换的结果是已知的时候,它可以被写成是 F(ω).
这个时候,这个积分就变成了我们所熟知的,傅里叶逆变换的公式了.
角频率的机制引入了2π积分计算的法则,又告诉我们,这个1/2π,也可以放到中括号里面去的,这个时候呢,正变换就有了1/2π,而逆变换没有。
当然你也可以一人分一半啊,每个人都分一个根号2π分之一。
这个就是我们前面提到的疑问的答案了。
所以说,傅里叶变换其实就是一个一体两面的东西,正变换和逆变换应该是一起给的,只给正变换,就好比一个外科医生给你拉开了,又不给你缝回去啊。
同时提醒一下做科研的同学啊,不要拿别人系统的正变换,结果放到自己的系统去做逆变换,因为你不知道别人系统的1/2π,是怎么分配的啊,别到时候纠结个两天半,也不知道问题出在哪了。
14. 解微分方程
有句话说得好,这个世界唯一不变的就是变化,变化中隐藏着未知,而未知呢,又会带来恐惧,所以,能用数学把变化这个事情描述出来呢,对我们来说就很重要了。
今天给大家讲一下,如何用傅里叶变换,来洞悉这个世界的变化规律,用傅里叶变换求解微分方程。
长久以来,傅里叶变换都被我们用作信号处理的利器,但是你们有没有想过哈,傅里叶变换刚出来的时候呢,都还没有信号这回事啊。
因为傅里叶变换最初的目的,就是为了解方程。
而微分方程又是我们描述这个世界,变化的重要手段,那我们就从微分方程讲起啊。
假如在不远处有一座火焰山,我越往前走就会感觉到越热,这是温度所以位置变化的曲线。
我们是这样子衡量温度变化的是否剧烈的啊,在你当前的位置向前挪∆x,相应的呢,就会带来温度上的变化,变化量是∆y,再用∆y除以∆x来表示温度随位置的变化率,这个数值越大,就证明温度随位置的变化就越剧烈。
这个时候你就可能会疑问啦,这个位置跨度这么大,中间包含的温度起伏比较复杂,那这样子计算是不是不够准确呀?
的确,所以你可以把横坐标的跨度呢,缩小一点就更准确了。
如果你把∆x缩到无穷小,也就是趋向于零,甚至可以精确得到某一个点的变化率,这个时候的变化率呢,就得写成dy/dx了。
dy、dx都是微分量啊,从几何意义上来看,这个 dy 除以 dx,是等于曲线上某点切线的斜率的。
如果 dy 除以 dx 是等于一个恒定的实数的,就意味着这个函数的变化呢,处处都是一样的,它的图像就是一条直线。
但是如果回到刚刚火焰山的例子,越靠近火焰山,那温度肯定是飙升的更厉害的,所以说dy除以 dx就不可能是一个恒定实数。
假如你通过你的实测得出了,温度的变化率呢,是服从2x的规律变化的,诶,这样我们就得到了一个微分方程,你只要把它解出来,就可以得到 Y 的表达式了,也就是温度随位置的分布函数。
这个dy除以dx啊,还有一个大家很熟悉的名字,就是导函数。
导函数也可以写作f ' (x)啊,它就是原函数的变化率。
那这个微分方程怎么解呢,啊,我们把 dx 移项到这边,它就变成了 dy=2x dx,dy是y的微分量,那我把这些零零碎碎的dy,都加加加加加起来啊,不就把y给还原了吗。
连续尺度上的求和啊,我们用的是这个符号,它就是积分符号。左边积分,那么右边呢,也要同步积分。
在这里特别提醒一下,很多同学,把积分符号和这个dx呢,看成了一个整体,这是不对的啊。
这个dx和这里的2x啊,就是简单的乘起来而已啊,而这个积分符号就是一个特殊的求和符号。
通过积分公式可以得到,刚刚的这个 Y 呢,它是等于 X 平方加上 C 的,这个 C 是任意实数,它跟你的积分范围是有关的啊,不同的积分范围算出来的 C 值呢是不一样的。
我在这里写出来就是先占个位置啊,可能你会说啊,我直接测分布函数它不香吗,搞微分方程干嘛呢?
因为有很多分布函数,不是你想测就能直接测的,好比量子力学中的波函数,它是通过求解薛定谔方程得到的,而薛定谔方程呢,又是基于实验观察、物理直觉和数学一致性得到的,波函数本身是没有物理意义的,它的模的平方才有意义。
微分方程呢,往往不会那么简单,因为很多时候变化率本身也在变,所以求第一次导可以得到原函数的变化率,再求一次就可以得到变化率的变化率,啊,就是二阶导函数,甚至有些变化率的变化率还在变哈,那就得有更高阶的导函数了。
如果对于高阶导函数,还用上面的方法硬求的话呢,呵,我只能说一,好汉受我一拜哈。
在面对 N 阶导函数的时候,要么就先降阶再求解,要么就有一个数学工具,可以无视它求导的阶数,直接进行输出的啊,这个工具呢,就是傅里叶变换了。
我们先看一下傅里叶变换是如何无视求导阶数的。
然后我再用数学给大家证明。
假如有一个时域函数 f(t),经过傅里叶变换之后呢,就变成了频域函数 F(ω),这个大黑F就是傅里叶变换操作的意思啊。
这个时域函数的导函数呢,是 df(t)除以 dt 啊,当然你也可以直接写成f ' (t)啊。
如果我直接对这个导函数,进行傅里叶变换啊,那它就是等于iω,直接乘以原函数的傅里叶变换的结果。
有了这个性质的话,哎,就可以直接进行套娃了呀,例如 F 的二阶导,我对它求傅里叶变换,它是等于iω,乘以一阶导的傅里叶变换的,而一阶导的傅里叶变换呢,刚刚求过了,直接带进来,结果就是iω的平方,乘以原函数的傅里叶变换的结果。
那 N 阶导也是同样的套娃思路,可以得到 N 阶导的傅里叶变换,是等于iω的 N 次方,乘以原函数的傅里叶变换的。
你看,这不就把 N 阶导的操作给抹掉了吗,所以,问题的关键就是,这里的一阶导的傅里叶变换,性质是怎么来的。
现在就让我用数学证明一下啊,首先对df除以dt,用傅里叶变换公式套上来,那么这里的dt呢,可以约掉,整理一下就得到这个结果。
接下来我们再利用积分的分部积分法啊,公式是这个样子的啊,这里我们令 U 是等于e^-iωt,f(t)呢是等于 V。
带进去就有了这个结果啊,而e^-iωt的微分量,是等于-iω·e^-iωt乘以dt的啊。
其实就是求导之后再乘多个dt而已啊,整理一下就变成了这个样子啊。
诶,你看加号右边不就是原函数的傅里叶变换了吗,而加号的左边这部分是等于零的。
为什么等于零呢,因为你原函数既然可以用来做傅里叶变换,那它必定是绝对可积的,也就是在无穷远处是等于零的。(狄利克雷是充分条件,此处不严谨)
而e^-iωt,用欧拉公式化开之后呢,是这个样子的,它是有界的,所以说它乘以 f(t)在无穷远处呢,就是等于零的。
所以这个一阶导的傅里叶变换性质呢,就得证了。
接下来我用一个简单的例子来讲一下,整体的傅里叶变换求微分方程的流程啊。
假如我在研究某种波动的现象,注意到啊,它有以下的规律,别问我为什么能注意到,问就是注意力惊人,它的二阶导加上一阶导乘以 A,加上 B 乘以波函数本身,是等于某个规律的,而这个规律呢,可以用 f(t)来进行描述。
注意一下啊:
这个二阶导的符号,这里是一个整体,不像一阶导是上面除以下面的那种关系。
好,现在我们想把y(t)的表达式求出来,两边同时求傅里叶变换,利用我们前面讨论过的公式,可以得到,负欧米伽平方乘以Y(ω),加上a(iω)·Y(ω),加上b·Y(ω),是等于F(ω)的。
把Y(ω)呢,提公因式,再移项,就可以得到这个结果,然后再对左右两边同时求傅里叶逆变换,就可以解得y(t)了。
当然如果有初始条件和边界条件,就带进去,再对你的结果进行修正就可以了。
这就是傅里叶变换求微分方程的流程了,那偏微分方程呢,换汤不换药啊。