作者:實作派 Lab
示波器看波形,頻譜分析儀看頻率成分,這兩種儀器看似井水不犯河水,但是自從工程數學界發明了「傅立葉轉換」後,隨著 CPU 速度越來越快,現在的示波器幾乎都能做到將時域(Time Domain)的波形轉換為頻域(Frequency Domain)的頻譜圖,要達成這個功能便是要靠「快速傅立葉轉換」(Fast Fourier Transform,FFT)。
在我們進入解說以前,讓我們先來看看「快速傅立葉轉換」到底是怎麼操作的!
快速運算的 FFT
這邊沒有打算說明 FFT 的細節,想了解細節的人可以去翻翻工程數學,我沒記錯的話,光是 Fourier Series 與 Fourier Transform 就佔了一整個章節,FFT 只是實現如何快速把答案算出來而已。
這邊我想要聊的是, FFT 到底可以算多快呢?若波形由 N 個點組成,以傳統的 Fourier Transform 計算,會需要N*N 次的計算;若以 FFT 運算,運算量會縮減到 N*logN 次的運算。
那這樣可以節省多少次運算呢?我們代入實際數字,大家可能會比較有感覺,假設示波器的波形是由 N=10,000 個點所組成。
- Fourier Transform 的計算次數:N*N=100,000,000(一億次計算)
- FFT 的計算次數:N*logN=10000*4=40000 (四萬次計算),共縮減了 2500 倍
這個縮減倍數會隨 N 的增加而增加,換句話說, FFT 真的是一個非常有效的運算方式。雖然 FFT 很強,但沒有 Fourier Transform,也就不會有 FFT 。我想傅立葉這位老兄,在當年提出「無論連續或非連續的函數,都能展開為正弦函數的級數」的說法,應該是一項大膽的創舉,因為一般人應該很難聯想到,不連續的函數也能用連續的弦波來表示。
為何訊號都擠在頻譜左邊?
如下圖所示,通常只要打開 FFT,你會發現你想觀察的訊號都擠在頻譜的左邊,即便在 FFT 內可以使用 Horizontal 旋鈕盡量將訊號挪到中間,但到最後常常是已經轉到了盡頭,頻譜訊號卻仍然偏左。

示波器的 FFT 畫面(圖片來源:實作派提供)
解決訊號偏左顯示的方式是增加螢幕中的訊號 cycle 數,如此就能把 FFT 頻譜內的訊號間隔變得開一些,為什麼呢?因為示波器的記憶體容量是固定的,因此無論 cycle 多寡,取樣點數都是固定的。如下圖的 CASE A,若螢幕塞了較多的 cycle,每個 cycle 分配的取樣點較少,也就是每個取樣點之間的時間 T 比較長,取樣頻率(1/T)就會變低,反之亦然。

波形的 cycle 數量會影響 FFT 頻域的 span 頻寬(圖片來源:實作派提供)
這邊我直接將上圖的兩個 CASE 以實例來比較,你會發現週期多的 CASE A 取樣頻率較低,而週期少的 CASE B 取樣頻率較高。若取樣頻率高,頻譜就會展開(Span)得比較寬,相對的我們的待測訊號頻率看起來就會靠到左邊去,這就是 CASE B 發生的狀況。
因此,要讓 FFT 的低頻頻譜往中間靠一些的話,你可以增加週期數試試,就可以看到 CASE A 的情況。

不同 cycle 數量對頻域的影響(圖片來源:實作派提供)
為何以 dB 作為單位?
這邊簡述一下,為何看頻譜時大家都習慣以 dB 作為單位呢?
因為在工程領域,我們很常比大小,而比大小時,我們會用倍數來敘述,10 倍、100 倍、1000 倍之類的,但是若將 10 倍與 1000 倍的波形同時放在一個螢幕裡,通常你只會看到 1000 倍的波形,而看不到那個 10 倍的訊號,因為它的振福僅是人家的百分之一,可能連螢幕的 1 點都不到。
所以聰明的工程師就發現,不如將倍數轉化成某個簡單的數字,如此就能盡量呈現各種高低級距的細節,其中,能夠滿足這個功能的函數就是「對數 log」,所以工程界才會發展出 dB 這種定義,如下:
dB=10*log(A/B), A= 功率 A、B=功率 B
如此一來,放大 100 倍稱為 20 dB,放大 1 萬倍就稱為 40 dB,我想大家應該都同意 20 與 40 這種簡單的數字比後面帶很多零的倍數好理解,而且顯示在螢幕上也比較方便。
事實上,dB 不只在工程界作為常用單位,就連人類的聽覺也是如此,當你的耳朵覺得聲音每次都變大一個級距時,聲音實際上已經放大好幾倍了,這也是就是什麼音響擴大機都以 dB 標示音量的原因。
- 【實作實驗室】分配器效能測試 - 2024/12/30
- 【實作實驗室】頻道功率怎麼測?有線電視頻譜長這樣! - 2024/12/12
- 【實作實驗室】無線滑鼠游標定格,電源開關更換 DIY - 2024/11/12
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!