給孩子講傅立葉變換,肖邦的鋼琴會怎麼説? | 樂聊樂有理_風聞
返朴-返朴官方账号-关注返朴(ID:fanpu2019),阅读更多!2020-01-11 10:36
撰文 | 吳進遠(美國費米國家加速器實驗室)
兩個音色不同的聲音,它們的波形是不同的。我們可以把很多正弦波加起來,構成一個複雜的波形。反過來,也可以把複雜的波形,拆開成一個個正弦波。後面這個過程即是數學中的傅立葉變換。
晚自習之後,我和珍旭班長離開圖書館,一起走在校園裏。見我不做聲,珍旭班長問:“你前一陣寫了不少音樂的文章吧?”(參見向牛學琴:偉大的七聲音階是怎樣出現的、問道朱載堉,尋蹤維也納:十二平均律的前世今生、畢達哥拉斯在鐵匠鋪發現錘子聲音的和諧?當真?、小號只有三個鍵,為啥能吹那麼多音?、歌劇大師搞發明:拉風的阿依達小號有啥科學道理?)
“是的。可是讀者們説,講音樂不能不把傅立葉變換講清楚。”
“對呀。”
“我其實是寫了傅立葉變換的,但讀者們認為我寫得太晦澀,專有術語太多。”我説:“可是傅立葉變換是大學的課程,沒法講得簡單呀。”
“要想把傅立葉變換講透徹的確需要大學知識。”珍旭班長説:“但你可以先用一些簡單實際的例子,做個初步的説明呀。”
見我一時説不出話,珍旭班長示意我在路邊長椅坐下,在手機上劃了一陣:“給你看看我小時候,爺爺給我講睡前故事,是怎麼講傅立葉變換的吧。”説着在我身旁坐下。
我頓時覺得心跳加速,腦子裏有一段時間一片空白。隱約記得珍旭班長介紹説,這些睡前故事的視頻本來是用老式8毫米錄像帶錄下來的,幾個月前爺爺奶奶剛把它們轉換成數字的視頻文件。
1 音色與波形
珍旭班長點開一個視頻,屏幕上出現一個毛絨動物熊貓。她介紹説,這是我們家庭成員中最小的一位,叫熊貓晶晶。
“我是熊貓,”小珍旭粗着嗓子扮演熊貓晶晶。
“我吃竹子,”視頻中熊貓晶晶仰頭搖晃,好像非常驕傲,“我要唱《五指歌》。”
小珍旭稚嫩的童音和爺爺渾厚的男中音一齊唱響:
“一二三四五,上山打老虎。(老虎!老虎!老虎!老虎!——熊貓晶晶驚恐喊道。)”
“老虎打不着(老虎!老虎!老虎!老虎!),看見小松鼠。”
“松鼠有幾個,讓我數一數。數來又數去,一二三四五。”
見我一頭霧水懵在那裏,珍旭班長解釋道:“熊貓的天敵是各種食肉猛獸,因此熊貓晶晶聽到老虎會害怕。”
視頻繼續,小珍旭問道:“爺爺,我們唱一樣的《五指歌》,為什麼我們的聲音不同呀?”
“這倒是一個好問題。”爺爺説:“不過,你首先要解釋清楚,你説的聲音不同是什麼意思。”
小珍旭從牀頭櫃抽屜裏拿出她的兒童口琴,吹了一個音:“咪——”
“咪——”她自己按照這個音高唱出這個音符,然後説:“爺爺唱。”
“咪——”
“熊貓晶晶,”小珍旭捧起毛絨熊貓:“我和爺爺唱的音符一樣嗎?”
“一樣一樣。”
“可以聽出兩個人的聲音不同嗎?”
“可以可以。”
“哈哈哈,”爺爺笑道:“晶晶説得對,我們兩人唱的音符是一樣的。都是C調中的咪,也就是E,頻率為 659.3 赫茲。”
“既然頻率一樣,為什麼我們的聲音仍然可以聽出差別呢?”
“這是因為我們的音色不同。”
“什麼叫音色?”
“音色和聲音的波形有關,”爺爺解釋道:“兩個音色不同的聲音,它們的波形是不同的。”
“什麼是波形?”
“我們聽到的聲音是一種波動,它是振動的物體推動周圍空氣產生的。振動的物體讓周圍的空氣一會兒壓縮,一會兒舒張,使得空氣的壓強出現微小的強弱變化,於是這種壓強的強弱變化就會傳播開來,變成聲波。”

“當聲波來到我們的耳朵或者話筒時,耳朵裏的鼓膜或者話筒裏的膜片就被空氣有時推,有時拉。如果把這種推拉運動放大,帶動一根針,讓它在一張勻速運動的紙上刻畫,就可以畫出一個波浪一樣的圖形。剛才我們兩人唱的音符是E,頻率為 659 赫茲,也就是説,這種推拉運動每秒鐘重複 659 個週期。但我們可以聽出兩個人的音色不同,畫出的波形也不同。除了人的聲音,不同的樂器也有不同的音色。”
“那麼,”小珍旭問:“我的口琴聲音波形是什麼樣的呢?”
爺爺點開電腦上一個軟件,小珍旭吹響她的口琴,她吹的是音符E,電腦記錄下一個波形。(其實,現在我們在手機的應用商店裏,也可以找到顯示聲音波形的軟件。)

“我們再看看別的樂器波形是什麼樣的。”爺爺拿來一把小提琴,拉響一個音符,也是E。電腦記錄下另一個波形。

“呀,口琴和小提琴聲音的波形真的很不一樣。”小珍旭説:“可是,這些波形裏,有那麼多上上下下,看着好複雜呀。”
“確實很複雜。”爺爺在電腦上打開另一個軟件,説:“不過,複雜毛糙的波形可以看成是一些簡單光滑的波形疊加起來的,你看。”

“這裏有好幾個波形,看着很光滑。”小珍旭説:“最上面那個波動得最慢,往下一個比一個快。”
“對的,這些波形叫正弦波,橫座標是時間,單位是毫秒。最上面那個正弦波的頻率是659赫茲,第二到第五個波形,它們的頻率分別是659赫茲的2、3、4、5倍。這些整數倍頻的正弦波,在音樂上叫做泛音。”
“我會算。”小珍旭搶着説:“659赫茲的2倍是1318赫茲,3倍是1977,4倍是2636,5倍是?5倍是3295。”
“不錯,算得挺快。”爺爺表揚道,然後接着解釋:“這樣一些正弦波,按照一定的比例疊加起來,就可以得到最下面那個波形。”
“什麼叫疊加?”
“你在每一個時間點上畫一條豎線,每一個波形在這個時刻都有一個高度,把這些高度像疊羅漢那樣加起來,就叫疊加。”
“真有趣,本來幾個光滑的正弦波,疊加起來就變得像鋸齒一樣了。”
“你再看看這個。”爺爺在電腦上改了幾個數。

“咦,疊加出來的波形變得像方方的饅頭了。您在電腦上改了什麼呀?”
“這些正弦波還是原來的頻率,我只不過改了一下這些正弦波疊加時振幅的比例。你比較一下兩個圖,就可以看出有的頻率成分變大了,而有的變小了。”
“這就是説,”小珍旭若有所思,“不同頻率的正弦波,疊加時的比例不同,形成的波形也不同。也就是説,一個樂器的音色,是這些頻率成分,或者説泛音的比例決定的?”
“不錯,總結得很好。把一個複雜的波形,分解成為許多正弦波的過程,叫做傅立葉變換。”
“噢,我明白了。我們可以把很多正弦波加起來,構成一個複雜的波形。反過來,也可以把複雜的波形,拆開成一個個正弦波。”小珍旭的確天資聰穎。“可是,怎麼才能拆開呢?”
“明天還要上學,且聽下回分解。”爺爺逗她。
小珍旭顯然不想睡,於是像演木偶戲那樣舉起熊貓晶晶:“爺爺,晶晶不懂。請爺爺,用熊貓和竹子作為例子,給晶晶再講一講。”
“一隻熊貓,拿着一根竹子,一邊走,一邊在地上畫。如果只有它的腿在左右搖晃,那麼在地上畫出來的波形就比較簡單光滑。可是今天熊貓吃飽了嫩竹筍很高興,身子也在搖晃,走一步搖晃兩次。胳膊也搖晃,走一步搖晃三次。手也搖晃,走一步搖晃四次。這樣一來,就會在地上畫出一個很複雜的波形。晶晶懂了嗎?”
“懂了懂了。”
“好了。現在熊貓晶晶回到牀頭櫃上,小珍旭蓋好被子,睡覺。”
2 通過共振理解傅立葉分析
第二天晚自習之後,我和珍旭班長在校園長椅上接着看視頻。我想看看爺爺怎樣講解把複雜波形分拆為正弦波,當然,我更享受和女神在一起的美好時光。
“我是熊貓,我吃竹子,我要唱《五指歌》。”
“一二三四五,上山打老虎。(老虎!老虎!老虎!老虎!)……”
好嘛,她們家睡前故事還挺講究程式化的。後來珍旭班長告訴我,她的節奏感還有和聲知識,都是通過唱《五指歌》學的。
視頻裏,爺爺開始講故事:“從前有座山,山裏有個廟,廟裏有個老和尚。他房間裏有個磬,經常自己發出聲音,有時在白天,有時在黑夜。老和尚以為有妖怪,嚇得生了病。”
“這是個唐朝的故事,我知道,叫《曹紹夔 (kuí) 捉妖》。”小珍旭搶着説:“後來,老和尚的朋友,洛陽一個管音樂的官叫曹紹夔的來看望他。正好趕上廟裏敲鐘,磬也跟着響了起來。於是曹紹夔大笑,讓和尚第二天準備好酒好菜,他來捉妖。第二天,曹紹夔來了,酒足飯飽之後,拿出一把銼刀,在磬上銼了幾下。以後磬就再也不響了。”
“這是為什麼呢?”
“這是因為鐘聲的頻率和磬的共振頻率一樣,敲鐘的時候,聲波引起磬共振。曹紹夔在磬上銼了幾下,把它的共振頻率改變了,就不會再共振了。”
“講得對。”爺爺説:“現在我們把這個故事拓展一下,設想老和尚房間裏放了好多個磬,它們的共振頻率從低到高各不相同。如果你去了,隨便唱出一個音,情況會怎麼樣呢?”
“我覺得,那麼多的磬,不管我唱什麼音,總會有一個的共振頻率和我唱出聲音的頻率接近,所以應該會引起共振。”
“只會引起一個磬共振嗎?”
“這?”小珍旭苦苦思索。
“我們昨天講了,當我們唱一個音符時,比如唱E,裏面除了 659 赫茲的頻率成分,還有哪些?”
“還有 659 赫茲的2、3、4、5 等倍頻的正弦波,或者叫泛音。它們的頻率是 1318、1977、2636、3295 赫茲。”小珍旭豁然開朗:“也就是説,我唱出一個音,會引起很多個磬一起共振,只要它們的共振頻率與這些泛音頻率相近。”

“這樣一來,我們就知道你唱的聲音裏有哪些頻率成分。而且,根據這些共振的相對振幅,我們就可以知道這些泛音之間振幅的比例。這其實就可以看成是傅立葉分析。”
“傅立葉分析?”
“傅立葉是個法國的數學家,和肖邦差不多同時代,比肖邦年齡大一些。”
“可是,”小珍旭問:“要作傅立葉分析,到哪裏去找那麼多磬呢?”
“不一定非得用磬,用弦也可以呀。鋼琴裏不是有很多弦嗎?”爺爺説:“我們可以到客廳用鋼琴做個實驗。”
小珍旭噌的一下,穿着睡衣睡褲從被窩裏跳了出來。
“披上衣服。”拍攝錄像的奶奶在畫面外喊道。
爺爺和小珍旭趴在地板上,輕輕地取下鋼琴底部的蓋板,按下鋼琴的右踏板,使得鋼琴的所有琴絃可以自由振動。
“咦,鋼琴裏有聲音,好像我們説話的回聲一樣。”
“你試試對着鋼琴喊一聲。”
“啊——”小珍旭喊道。
鋼琴跟着發出微弱的聲音,聽起來和小珍旭的聲音非常像。(點擊“閲讀原文”,查看視頻)
爺孫兩個對着鋼琴喊話、唱歌、學牛叫、學狼叫,鋼琴都會隨之發出相應的聲音。
哈哈,鋼琴華麗變身為傅立葉分析儀,不知道大鋼琴家肖邦當年有沒有試過。他經常在巴黎的沙龍里給那些紳士貴婦們演奏,聽眾中很可能有過傅立葉。如果他在演奏時,順便表演一下這個“魔術”,也許會減少一點演奏的辛苦吧。我不知怎麼,腦回路里搭出這麼一個念頭。
其實這個實驗我也做過,我在手機上找到一個圖給珍旭班長看:“用這個圖,可以把整個實驗過程看得更清楚。”

這個圖是使用手機的APP Spectrum View 來記錄的譜圖。橫座標為時間,縱座標為頻率,每個頻率成分的強度用顏色顯示。
在圖中,開始有0.8秒左右我們對鋼琴喊出一個持續穩定的聲音,顯然,這段時間內聲音的強度比較大。這個聲音的基頻大約是250 Hz左右,不過它的基頻成分強度不是很大,而是以2倍頻與3倍頻為主。此外還存在很多高倍頻的成分。
喊聲停止後,我們可以看出鋼琴上對應於1到5倍頻的琴絃被顯著地激勵起來,並持續振盪。
實際上,在喊聲停止後約1秒左右的時間內,鋼琴發出的聲音與原來的人聲非常像,而過了一會,雖然鋼琴還有聲音,但已經與原來的聲音不像了。這是由於開始時,鋼琴能夠按照原來聲音的比例發出4倍與5倍頻成分。隨着時間推移,這些高頻成分衰減很快,等到只剩下低頻成分時,聲音的相似度就會變差。從圖中我們可以看出4倍與5倍頻成分衰減得相當快。
3 相位與音色之謎
“你們在看什麼吶?”泉餘室友又一次毫無徵兆地出現了。
“我們在學習兒童睡前故事版的傅立葉變換。”
“正好,我有個青年失眠燒腦版的問題。”泉餘室友説着,從口袋裏掏出一疊皺皺巴巴的紙:“你們幫我看看。”

“一個週期函數f(t)可以展開成為傅立葉級數,寫出來是這個樣子。你們注意到了吧,每個頻率成分包含有兩個係數。”
“是啊,包含a和b,它們分別是餘弦函數和正弦函數的係數。通過這兩個係數,我們可以算出每個頻率分量的振幅和相位。”
“可是,我們討論頻譜時,很多時候比較關注振幅,很少注意相位。”泉餘室友説:“手機上的傅立葉分析軟件也經常是隻顯示強度分佈,不顯示相位關係。這是為什麼呢?”
“我覺得,原因之一是在很多實際應用中,頻率分量的強度比較重要,而相位相對不很重要。比如我們的耳朵辨別音色時,只能感知各個頻率成分之間的相對強度比例,而不能感知它們之間的相位關係。” 珍旭班長邊説邊掀開筆記本電腦:“你們看。”

“我們用基頻和幾個整數倍頻的正弦函數可以近似構成一個鋸齒波。可是如果我們讓二次倍頻的振幅不變,只改變一下相位,把它從正弦函數變成餘弦函數,最後組合出的波形就會改變。”
“對呀,倍頻成分的相位變了,波形自然也會改變。”泉餘室友説:“那麼,我們的耳朵能聽出來嗎?”
“在這種情況下,”珍旭班長説:“各個頻率成分的相對強度沒有變,因此我們的耳朵聽不出來,感覺還是原來的音色。”
“什麼?”我大惑不解:“你説聲音的波形變了,音色可以不變?視頻裏,爺爺怎麼説的?”
“爺爺説的是:兩個音色不同的聲音,它們的波形是不同的。”珍旭班長解釋:“但反過來卻不一定。”
“珍旭同學,”泉餘室友一本正經地開玩笑説:“我很尊重您,但我更尊重科學。我還是無法不經過思考,盲目相信您的説法。”
“要不要做個實驗?”珍旭班長説。
“好啊。”我贊成:“一言不合做實驗,這才是我們物理系學生的風格。”
“我負責生成聲音信號。”珍旭班長拿起手機:“你們也都拿出手機,一個負責觀察頻譜,一個負責觀察波形。”
珍旭班長點開手機軟件,在上面輸入了500、1000、1500、2000 和 2500 赫茲這幾個頻率值。

又點了一下屏幕,這樣一個混合的聲音播放了出來,聽着好像是鵠鸕鳥的叫聲。我們把手機湊到一起,我在頻譜上看到幾個尖峯,泉餘室友手機上顯示了一個奇形怪狀的波形。
“現在我把 1000 赫茲改成 1000.2 赫茲。”珍旭班長説:“這樣一來,等價於讓1000 赫茲頻率成分的相位緩慢變化。”
現在這個混合的聲音聽上去和剛才幾乎沒有不同,還是鵠鸕鳥的叫聲,儘管其中一個頻率成分的相對相位持續緩慢地變化着。從頻譜上看,幾個尖峯也沒有變化。可是,泉餘室友手機上的波形,卻像小蟲子一樣不停地蠕動着。(點擊“閲讀原文”,查看實驗視頻)
“好了,現在敲黑板。”珍旭班長有些得意:“期末考試部分選擇題如下。”
(1)音色不同則波形不同。答案:對(2)波形不同則音色不同。答案:很多時候如此,但不一定。
“嗯,我現在認同這個理論了。”泉餘室友説,可是仍然故意嘴硬:“但並不是因為聽了您的講解,而是因為看見了實驗結果。”
“這有什麼不同嗎?”珍旭班長酣暢淋漓地發揮她的伶牙俐齒:“我不是也要按照前人實驗的結果來講嗎?不過你這種科學態度應該表揚。對於科學問題,應該不迷信盲從他人,包括不迷信盲從班長、朋友乃至學術權威,堅持通過自己的思考理解科學結論。在這個問題上,我倆尊你為師。”
“你倆?”泉餘室友掩口而笑。

特 別 提 示
1. 進入『返樸』微信公眾號底部菜單“精品專欄“,可查閲不同主題系列科普文章。
2. 『返樸』開通了按月檢索文章功能。關注公眾號,回覆四位數組成的年份+月份,如“1903”,可獲取2019年3月的文章索引,以此類推。
版權説明:歡迎個人轉發,任何形式的媒體或機構未經授權,不得轉載和摘編。轉載授權請在「返樸」微信公眾號內聯繫後台。