6
雷鋒網(wǎng)按:本文作者韓昊,原載于知乎專欄,雷鋒網(wǎng)已獲授權(quán)。
我保證這篇文章和你以前看過的所有文章都不同,這是12年還在果殼的時(shí)候?qū)懙?,但是?dāng)時(shí)沒有來得及寫完就出國了……于是拖了兩年,嗯,我是拖延癥患者……
這篇文章的核心思想就是:
傅里葉分析不僅僅是一個(gè)數(shù)學(xué)工具,更是一種可以徹底顛覆一個(gè)人以前世界觀的思維模式。但不幸的是,傅里葉分析的公式看起來太復(fù)雜了,所以很多大一新生上來就懵圈并從此對(duì)它深惡痛絕。老實(shí)說,這么有意思的東西居然成了大學(xué)里的殺手課程,不得不歸咎于編教材的人實(shí)在是太嚴(yán)肅了。(您把教材寫得好玩一點(diǎn)會(huì)死嗎?會(huì)死嗎?)所以我一直想寫一個(gè)有意思的文章來解釋傅里葉分析,有可能的話高中生都能看懂的那種。所以,不管讀到這里的您從事何種工作,我保證您都能看懂,并且一定將體會(huì)到通過傅里葉分析看到世界另一個(gè)樣子時(shí)的快感。至于對(duì)于已經(jīng)有一定基礎(chǔ)的朋友,也希望不要看到會(huì)的地方就急忙往后翻,仔細(xì)讀一定會(huì)有新的發(fā)現(xiàn)。
————以上是定場(chǎng)詩————
下面進(jìn)入正題:
抱歉,還是要啰嗦一句:其實(shí)學(xué)習(xí)本來就不是易事,我寫這篇文章的初衷也是希望大家學(xué)習(xí)起來更加輕松,充滿樂趣。但是千萬!千萬不要把這篇文章收藏起來,或是存下地址,心里想著:以后有時(shí)間再看。這樣的例子太多了,也許幾年后你都沒有再打開這個(gè)頁面。無論如何,耐下心,讀下去。這篇文章要比讀課本要輕松、開心得多……
從我們出生,我們看到的世界都以時(shí)間貫穿,股票的走勢(shì)、人的身高、汽車的軌跡都會(huì)隨著時(shí)間發(fā)生改變。這種以時(shí)間作為參照來觀察動(dòng)態(tài)世界的方法我們稱其為時(shí)域分析。而我們也想當(dāng)然的認(rèn)為,世間萬物都在隨著時(shí)間不停的改變,并且永遠(yuǎn)不會(huì)靜止下來。但如果我告訴你,用另一種方法來觀察世界的話,你會(huì)發(fā)現(xiàn)世界是永恒不變的,你會(huì)不會(huì)覺得我瘋了?我沒有瘋,這個(gè)靜止的世界就叫做頻域。
先舉一個(gè)公式上并非很恰當(dāng),但意義上再貼切不過的例子:
在你的理解中,一段音樂是什么呢?
這是我們對(duì)音樂最普遍的理解,一個(gè)隨著時(shí)間變化的震動(dòng)。但我相信對(duì)于樂器小能手們來說,音樂更直觀的理解是這樣的:
好的!下課,同學(xué)們?cè)僖姟?/p>
是的,其實(shí)這一段寫到這里已經(jīng)可以結(jié)束了。上圖是音樂在時(shí)域的樣子,而下圖則是音樂在頻域的樣子。所以頻域這一概念對(duì)大家都從不陌生,只是從來沒意識(shí)到而已。
現(xiàn)在我們可以回過頭來重新看看一開始那句癡人說夢(mèng)般的話:世界是永恒的。
將以上兩圖簡化:
時(shí)域:
頻域:
在時(shí)域,我們觀察到鋼琴的琴弦一會(huì)上一會(huì)下的擺動(dòng),就如同一支股票的走勢(shì);而在頻域,只有那一個(gè)永恒的音符。
所(前方高能!~~~~~~~~~~~非戰(zhàn)斗人員退散~~~~~~~)
以(~~~~~~~~~~~~~~~前方高能預(yù)警~~~~~~~~~~~~~~前方高能~~~~~~~~)
(眾人:雞湯滾出知乎!)
抱歉,這不是一句雞湯文,而是黑板上確鑿的公式:傅里葉同學(xué)告訴我們,任何周期函數(shù),都可以看作是不同振幅,不同相位正弦波的疊加。在第一個(gè)例子里我們可以理解為,利用對(duì)不同琴鍵不同力度,不同時(shí)間點(diǎn)的敲擊,可以組合出任何一首樂曲。
而貫穿時(shí)域與頻域的方法之一,就是傳中說的傅里葉分析。傅里葉分析可分為傅里葉級(jí)數(shù)(Fourier Serie)和傅里葉變換(Fourier Transformation),我們從簡單的開始談起。
還是舉個(gè)栗子并且有圖有真相才好理解。
如果我說我能用前面說的正弦曲線波疊加出一個(gè)帶90度角的矩形波來,你會(huì)相信嗎?你不會(huì),就像當(dāng)年的我一樣。但是看看下圖:
第一幅圖是一個(gè)郁悶的正弦波cos(x)
第二幅圖是2個(gè)賣萌的正弦波的疊加cos(x)+a.cos(3x)
第三幅圖是4個(gè)發(fā)春的正弦波的疊加
第四幅圖是10個(gè)便秘的正弦波的疊加
隨著正弦波數(shù)量逐漸的增長,他們最終會(huì)疊加成一個(gè)標(biāo)準(zhǔn)的矩形,大家從中體會(huì)到了什么道理?
(只要努力,彎的都能掰直?。?/p>
隨著疊加的遞增,所有正弦波中上升的部分逐漸讓原本緩慢增加的曲線不斷變陡,而所有正弦波中下降的部分又抵消了上升到最高處時(shí)繼續(xù)上升的部分使其變?yōu)樗骄€。一個(gè)矩形就這么疊加而成了。但是要多少個(gè)正弦波疊加起來才能形成一個(gè)標(biāo)準(zhǔn)90度角的矩形波呢?不幸的告訴大家,答案是無窮多個(gè)。(上帝:我能讓你們猜著我?)
不僅僅是矩形,你能想到的任何波形都是可以如此方法用正弦波疊加起來的。這是沒有接觸過傅里葉分析的人在直覺上的第一個(gè)難點(diǎn),但是一旦接受了這樣的設(shè)定,游戲就開始有意思起來了。
還是上圖的正弦波累加成矩形波,我們換一個(gè)角度來看看:
在這幾幅圖中,最前面黑色的線就是所有正弦波疊加而成的總和,也就是越來越接近矩形波的那個(gè)圖形。而后面依不同顏色排列而成的正弦波就是組合為矩形波的各個(gè)分量。這些正弦波按照頻率從低到高從前向后排列開來,而每一個(gè)波的振幅都是不同的。一定有細(xì)心的讀者發(fā)現(xiàn)了,每兩個(gè)正弦波之間都還有一條直線,那并不是分割線,而是振幅為0的正弦波!也就是說,為了組成特殊的曲線,有些正弦波成分是不需要的。
這里,不同頻率的正弦波我們成為頻率分量。
好了,關(guān)鍵的地方來了?。?/strong>
如果我們把第一個(gè)頻率最低的頻率分量看作“1”,我們就有了構(gòu)建頻域的最基本單元。
對(duì)于我們最常見的有理數(shù)軸,數(shù)字“1”就是有理數(shù)軸的基本單元。
(好吧,數(shù)學(xué)稱法為 —— 基。在那個(gè)年代,這個(gè)字還沒有其他奇怪的解釋,后面還有正交基這樣的詞匯我會(huì)說嗎?)
時(shí)域的基本單元就是“1秒”,如果我們將一個(gè)角頻率為ω的正弦波cos(ωt)看作基礎(chǔ),那么頻域的基本單元就是ω。
有了“1”,還要有“0”才能構(gòu)成世界,那么頻域的“0”是什么呢?cos(0t)就是一個(gè)周期無限長的正弦波,也就是一條直線!所以在頻域,0頻率也被稱為直流分量,在傅里葉級(jí)數(shù)的疊加中,它僅僅影響全部波形相對(duì)于數(shù)軸整體向上或是向下而不改變波的形狀。
接下來,讓我們回到初中,回憶一下已經(jīng)死去的八戒,啊不,已經(jīng)死去的老師是怎么定義正弦波的吧。
正弦波就是一個(gè)圓周運(yùn)動(dòng)在一條直線上的投影。所以頻域的基本單元也可以理解為一個(gè)始終在旋轉(zhuǎn)的圓
動(dòng)圖的源文件請(qǐng)戳
File:Fourier series square wave circles animation.gif
以及這里:
File:Fourier series sawtooth wave circles animation.gif
點(diǎn)出去的朋友不要被wiki拐跑了,wiki寫的哪有這里的文章這么沒節(jié)操是不是。
介紹完了頻域的基本組成單元,我們就可以看一看一個(gè)矩形波,在頻域里的另一個(gè)模樣了:
這是什么奇怪的東西?
這就是矩形波在頻域的樣子,是不是完全認(rèn)不出來了?教科書一般就給到這里然后留給了讀者無窮的遐想,以及無窮的吐槽,其實(shí)教科書只要補(bǔ)一張圖就足夠了:頻域圖像,也就是俗稱的頻譜,就是——
再清楚一點(diǎn):
可以發(fā)現(xiàn),在頻譜中,偶數(shù)項(xiàng)的振幅都是0,也就對(duì)應(yīng)了圖中的彩色直線。振幅為0的正弦波。
動(dòng)圖源文件請(qǐng)戳:
File:Fourier series and transform.gif
老實(shí)說,在我學(xué)傅里葉變換時(shí),維基的這個(gè)圖還沒有出現(xiàn),那時(shí)我就想到了這種表達(dá)方法,而且,后面還會(huì)加入維基沒有表示出來的另一個(gè)譜——相位譜。
但是在講相位譜之前,我們先回顧一下剛剛的這個(gè)例子究竟意味著什么。記得前面說過的那句“世界是靜止的”嗎?估計(jì)好多人對(duì)這句話都已經(jīng)吐槽半天了。想象一下,世界上每一個(gè)看似混亂的表象,實(shí)際都是一條時(shí)間軸上不規(guī)則的曲線,但實(shí)際這些曲線都是由這些無窮無盡的正弦波組成。我們看似不規(guī)律的事情反而是規(guī)律的正弦波在時(shí)域上的投影,而正弦波又是一個(gè)旋轉(zhuǎn)的圓在直線上的投影。那么你的腦海中會(huì)產(chǎn)生一個(gè)什么畫面呢?
我們眼中的世界就像皮影戲的大幕布,幕布的后面有無數(shù)的齒輪,大齒輪帶動(dòng)小齒輪,小齒輪再帶動(dòng)更小的。在最外面的小齒輪上有一個(gè)小人——那就是我們自己。我們只看到這個(gè)小人毫無規(guī)律的在幕布前表演,卻無法預(yù)測(cè)他下一步會(huì)去哪。而幕布后面的齒輪卻永遠(yuǎn)一直那樣不停的旋轉(zhuǎn),永不停歇。這樣說來有些宿命論的感覺。說實(shí)話,這種對(duì)人生的描繪是我一個(gè)朋友在我們都是高中生的時(shí)候感嘆的,當(dāng)時(shí)想想似懂非懂,直到有一天我學(xué)到了傅里葉級(jí)數(shù)……
抱歉,還是沒寫完。但是我想堅(jiān)持看到這里的人已經(jīng)很不容易了。我們都休息一下,下一講再繼續(xù)……
雷鋒網(wǎng)相關(guān)閱讀:
一文詳解神經(jīng)網(wǎng)絡(luò) BP 算法原理及 Python 實(shí)現(xiàn)
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。