前言
本文新手向,虽然不会过多涉及纯概念的东西,但是在基础的傅里叶变换上也没有做太多的公式拓展,希望读者在看这篇文章的时候侧重理解。
说法不严谨的地方恳请指正。
傅里叶变换
傅里叶级数
要引出傅里叶变换,我们先来了解一下一种神奇的级数,它是用频率来表示时域的级数。看不懂没关系,我们来举几个例子。
先来个简单情形
当你看见这个式子,你会毫不犹豫自然得想到一个正弦函数。
在这个基础上再加一个
这样你或许要想像一下了,不过经过短暂的思考,你就看出来这个图形也比较显然,在这里我就不画了。
再来一个……
你会慢慢发现这个函数已经让你有点认不出它正弦的模样了。
毫不吝啬的加无穷个上去
完了,这下真的看不出来了。
不过不要担心,你只是看不出它正弦的模样,看着它的表现形式,你有没有觉得其实这个与$n$有关的式子挺优美的?1
2
3
4
5
6x = np.arange(0, 2 * np.pi, 0.01)
y = 0
for n in range(1, 50, 2):
y += 1 / (np.pi * n) * np.sin(np.pi * n * x)
plt.plot(x, y)
plt.show()
这段代码向我们展示了一个方波,但明明丢进去的是若干个正弦啊。
看到这里你是不是已经恍然大悟了!其实正弦波变方波就是不停地叠加,甚至不止方波可以被分解,我们联想到很多周期性的波都能被分解。
举个栗子
情人节那天你收到了npy发来的几百条录音,你激动地点开每一条去听,发现都只是简单的“哔~”,只是音调有低有高。为此你抱怨该直男如此无聊,而他却说你使用方法有问题。他把这几百条语音同时播放,但是每一个的音量却调的不一样,有的声音大有的小,当所有声音一起播放,你竟然听到了循环的“我爱你我爱你我爱你~”(准确来说是没法改变的音色和说话的韵母等因素的,所以最多只有这句话的音调吧)!
这个例子旨在解释,周期信号可以被分解成无穷的级数这件事情。
傅里叶级数的形式
以下有较多数学推导,应该在一定程度上可以帮助理解这种级数的本质,觉得枯燥不愿意看的可以直接跳过啦~
三角形式
根据我们刚才的想法,我们认为一个信号可以被分解成这样的形式
现在我们求解一下这个式子中的各项参数。
这个式子看起来非常吓人,不过不要害怕。
我们惊喜的发现,这个和式中的后两项积分都是0!是的,你没看错。
其实这个性质很容易被忽略,你一定很久以前就知道,不同频率的电压和电流在一个周期内的功之和是0,所以当电压和电流周期不同,它们产生的功率是零(请记住这个性质,因为它可以用来证明帕斯瓦尔定理,在未来频域功率与能量的分析中将会有很大作用)。证明非常容易,积分带进去算一下就好了。
于是很快就能被计算出来,同理计算出,
指数形式
既然有了三角形式,我们不妨将它用指数再写一下,把正弦和余弦统一起来(并不是为了迎合傅里叶变换)。
欧拉公式人尽皆知,它不是我这篇文章的主角。
现在这样表示
这样表示为什么是对的呢?
其实我们之所以能用不同频率的正弦和余弦表示,是因为他们的正交性。
这里不扯什么完备正交集之类的概念了,就像我们熟知的XY坐标系,我们从X上随便选一个点,Y上随便选一个点,都会对应二维平面上一个点,XY如此,$sin$和$cos$如此,虚数的实部和虚部亦如此,因此我们可以方便的将它们一一对应。
傅里叶变换
我们要进入正题了——傅里叶变换。
通过以上对傅里叶级数的讨论,我们知道了不同的频率的正弦波可以组合成各种各样的周期波,只有你想不到,没有做不到。
真的没有做不到吗?
还真有!给你一个非周期的函数,你去分解一下试试。
首先,这个周期$T$你就没有办法带进去。
当傅里叶同学被打了脸,他觉得很没面子,自己的级数竟然只能分解周期信号,他哪能咽下这口气,一气之下,他大喊一声,“我不管!就算让周期等于无穷,他也得是个周期信号!继续分解!”
傅里叶变换的形式
傅里叶同学自幼习武,力大无穷,旁边的同学根本拦不住他做这种“非周期信号是周期无穷”这种“丧尽天良”的事情。
或许你没看懂他干了什么,别急,我们慢慢分析一波。
傅里叶变换与傅里叶级数的关系
之前提到,傅里叶之所以能把非周期信号分解,关键在于他霸道的让周期等于无穷,或许你表示不服,但是先别着急,往下看,你会觉得这样并不是没有道理。
相比之前,我们做了一个极不人道的操作,
并且我们考虑新的“级数”的含义,这个级数不再表示处的大小是多少。
因为如果我们定义处的幅值,我们会发现,作为的和,将非常大,这是周期趋近无穷导致的。
当周期越来越大,我们原本的傅里叶级数会越加越多,就好像在上面那个小故事中,如果想得到一句“我爱你”,可能你的npy要录无穷多的音频(可见一句用心的情话比不停重复更来之不易)。
所以说,我们定义的“级数”意义必须要变。
傅里叶同学说,你这玩意儿是连续的,还绝对可和,我用表示附近的频谱密度,而非一个点处的大小。越大,表示这个地方的频谱分量越密集,频谱越丰富,“你从里面单单挑出一个点问我它对的贡献是多少?不好意思,没贡献”,傅里叶同学说,“这就好比你给我一沓纸,问我其中一张厚度是多少。”
好的,我们现在再整理一下思路,傅里叶变换从傅里叶级数完成华丽蜕变,经过了下面的过程:
周期趋近于无穷,一个非周期信号我们也可以作为周期信号处理。
由于附近频谱线特别多,用具体一个点来解释频谱能量并不科学,于是改用一个新的变量——频谱密度来诠释,科学一点来说
至于这个等于多少,我们马上就会看到。
回顾之前我们学的如何计算三角形式的傅里叶级数,很容易想到用同样的方法去表示傅里叶变换的。实际上我们距离傅里叶同学在纸上写的式子还有一个常数的差距,在他的算式中,上述内容还不是完全正确,我们还要再乘上一个。万事大吉!来看看我们接下来可以得到的东西。
解释一下这个式子,你是否还记得我们刚才怎么计算的(不记得的话翻上去看看),利用了不同频率的信号在一个周期的积分是0对吧。这里我们也利用了这个性质,其中就是在频率附近的贡献。
同时这里面有一位仁兄好像有些面熟?啊!,就是你,别躲了,刚才就看你不顺眼,今天咱俩坐下来好好唠唠。
这货在这个地方出现有啥用?它只是一小段频段啊?好像……是的小弟?在这个地方他竟然没有被那个神奇的性质消掉,而在一个周期的积分中与 共存了,只能说,它必然是深得大哥的喜爱,紧跟的步伐,至于跟的有多近呢?大哥说:“我们的差距甚至也就是一个最小的基频的大小哦。”
原来如此,这一小段里的频率都可以近似成,那就直接去参与的贡献嘛。
同时我们刚才在一点处的频谱是没有意义的这个猜想,是不是也得以证实了呢?不得不感慨傅里叶同学(以及发扬光大傅里叶变换的同胞们)的智慧。
继续算这个式子
同理可以计算出正弦部分,综合两部分变成复数后,我们就得到了一个漂浪的柿子
把前面化简就是傅里叶变换的式子没错了,但我为什么没有化简呢,当然是为了和傅里叶级数作对比(呼应一下本段标题),别忘记
傅里叶级数:
看着这两个式子是不是觉得他们十分的相似呢~