為何要講性質,而不只是那個積分
在上一篇指南裡,你見過了傅立葉變換對:時間域裡的函數 f(t) 與它在頻率域裡的變換 F(omega) = f(t) e^{-i omega t} dt 之積分,同一個對象的兩張臉。原則上,你可以對每個新問題都從零開始硬磨那個積分。但幾乎沒人這麼做,原因在此:你親手算出的少數幾個變換會成為一本小字典,而幾條性質就能讓你對字典裡的條目做平移、拉伸與組合,從而幾乎夠到你所需的一切——再也不必碰那個積分號。
下面每一條性質都源自同一處:變換是線性的,且建立在波 e^{-i omega t} 之上。單單線性就已經說明,和的變換等於各變換之和,常數倍則可直接穿過——正是那條貫穿傅立葉級數與線性微分方程的疊加原理。更豐富的性質來自一個更尖銳的提問:當你在時間域裡對 f 做某件簡單的事,頻率域裡 F 上對應的動作是什麼?答案出奇地乾淨,一旦記住,便把變換變成了一台計算器。
平移與調制:兩個域之間的一場拔河
先看最簡單的動作:把訊號在時間上往後滑動一個量 a,即把 f(t) 換成 f(t - a)。F 會怎樣?時移性質說,F(omega) 的幅度絲毫不變——每個頻率仍以相同的量存在——但每個頻率會沾上一個相位扭轉 e^{-i omega a}。這在直覺上恰恰正確:把一首歌延遲播放,並不改變它含有哪些音,只改變每個波在何時到達波峰。純粹的延遲對能量譜是隱形的,它整個地藏在相位裡。
現在把它反過來。不做平移,而是把訊號乘以一個波:把 f(t) 換成 e^{i omega_0 t} f(t)。這就是調制性質,它在頻率域裡所做的,恰好就是平移在時間域裡所做的事——它把整個頻譜滑動,使 F(omega) 變成 F(omega - omega_0)。在一個域裡乘以一個波,就是在另一個域裡做平移;這兩種操作隔著變換互為鏡像。這正是調幅廣播的原理:把你的聲音乘以一個高頻載波,就把它的頻譜抬升到廣播頻段,而接收機再乘一次,把它滑回原處。
縮放與對偶:這邊窄,意味著那邊寬
把訊號在時間上擠緊——把 f(t) 換成 f(a t),其中 a > 1,將它壓成一段更短的爆發。縮放性質說,它的變換變成 (1/|a|) F(omega/a):訊號越窄,頻譜反而鋪得越寬,並略微變暗以守恆面積。這不是怪癖,而是一條定律。一記尖銳、短促的咔噠聲,必然含有一整段寬闊的頻帶;而一個綿長、慵懶的音,則幾乎是單一的純頻率。你無法同時擁有一個在時間上緊湊、又在頻率上緊湊的訊號——擠緊一頭,另一頭就攤開。這個權衡,正是量子力學中海森堡不確定性原理底下的數學骨架;那條原理究其本質,就是把這條縮放性質用到一個波包上。
在所有這些性質對的對稱背後,坐著一個更深的事實:變換的對偶性。正變換(時間到頻率)與逆變換(頻率到時間)幾乎是同一個積分——它們只差指數上的一個符號和一個 2 pi 因子。於是任何一個變換對,倒過來讀,就白送你第二個變換對。經典例子是高斯函數,也就是來自高斯積分的那條鐘形曲線:它的傅立葉變換仍是一個高斯函數。它是自己隔著變換的回聲——這正是為什麼鐘形曲線是寬度權衡的邊界情形,是那個在兩個域裡同樣緊湊的唯一形狀。
卷積:一個訊號被另一個訊號抹開
現在輪到主角。世上許多最有用的操作都不是逐點的——它們把一個值與它的鄰居們攪在一起。把照片模糊,是用每個像素周圍那些像素的加權平均來替換它。一間有混響的房間,是用之前各時刻漸漸衰減的回聲來替換當下每一刻的聲音。任何線性時不變系統的輸出,都是它的輸入被該系統的衝激響應抹開的結果。這個抹開操作有個名字:卷積,寫作 (f * g)(t) = f(tau) g(t - tau) d tau 之積分。慢慢讀它:對每個輸出時刻 t,你把 g 翻轉,滑到位置 t,處處與 f 相乘,再把重疊加起來。它是把一個函數拖過另一個函數的一次掃掠。
若直接計算,卷積是沉重的:對每一個輸出點,你都得做一整個積分,一個拖過整段訊號的重疊求和。對於一段長錄音或一張百萬像素的圖像,那是巨量的算術。這就是那堵牆——而卷積定理就是穿牆而過的那道門。你在拉普拉斯的世界裡已經見過它的同胞,拉普拉斯卷積定理;傅立葉版本是同一個美麗的想法,是整套頻率域工具背後的引擎。
卷積定理:抹開變成相乘
下面這句話,才讓本篇指南配得上它的標題。傅立葉卷積定理說:一個卷積的變換,等於各變換的普通乘積。用符號寫,若 f * g 是卷積,則它的變換不過是 F(omega) 乘以 G(omega),逐點相乘。時間域裡那個笨拙的掃掠積分,到了變換域裡就成了一次樸素的、逐頻率的乘法。(對偶性兩邊都成立:在時間裡把兩個訊號相乘,就是在頻率裡把它們的頻譜卷積——這是搭檔命題。)它為什麼成立?因為卷積恰恰是這樣構造出來的:讓每個純波互不糾纏地穿過;而變換正是把一個訊號分揀成那些純波。
這份直覺值得多停留一會兒。把單一純波 e^{i omega t} 餵進一個抹開操作,它出來時還是同一個波,只是被縮放並移了相——它的頻率毫髮未損。所以在純波這組基底裡,抹開是對角的:每個頻率只是被乘上屬於它自己的一個數,而那個數就是 G(omega),抹開者的變換。把 f 分揀成它的各個頻率、把每個乘上對應的因子、再重新組裝,恰好就是「變換、相乘、逆變換」。卷積定理說的就是:傅立葉變換把卷積對角化了——正是當年在線性代數裡特徵值讓矩陣變簡單的同一個道理。
- 把兩個訊號都做變換:把輸入 f 和抹開核 g(一個模糊形狀、一個濾波器、一個衝激響應)送到它們的頻譜 F(omega) 與 G(omega)。
- 逐點相乘:在每個頻率上,作出乘積 F(omega) G(omega)。這一次乘法,替代了整個掃掠的卷積積分。
- 逆變換回時間域:對乘積做逆傅立葉變換,你就得到了 f * g,那個被抹開的輸出——全程不曾算過一個重疊積分。
濾波,以及對這本字典的誠實審視
正是這條定理,讓濾波在頻率空間裡如此簡單。要從一段錄音裡除去 60 Hz 的嗡嗡聲,你不必在時間域裡設計什麼繁複的平均——你做變換,把頻譜在 60 Hz 附近置零,再變換回去。要銳化或模糊一張圖像,你重塑它的頻譜再逆變換。每一個均衡器、雜訊門、邊緣檢測器,骨子裡都是一次乘法 G(omega),它被選來放行你想要的頻率、壓制其餘。又因為存在一種快速演算法來計算取樣資料的變換,「變換、相乘、逆變換」這一來回,遠比它所替代的直接卷積便宜得多——這正是它不止是優雅理論、更是現代訊號與圖像處理主力的原因。
還有一條性質把這個圓圈合攏,並接到能量上。帕塞瓦爾-普朗歇爾定理說,一個訊號的總能量——|f(t)|^2 的積分——等於它頻譜的總能量,即 |F(omega)|^2 的積分,至多相差一個常數。跨到頻率那一側,沒有任何東西被創造或丟失;變換只是把同一份能量在各頻率間重新分配。它是你在傅立葉級數裡見過的帕塞瓦爾恆等式的連續後裔。它與那些性質對以及卷積定理一道,補全了你對變換的可用語法:平移、縮放、調制、卷積、並清點能量——全程無需回到那個定義性的積分。本階梯接下來,這套語法將被放出去,對付物理學的微分方程。