JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

取樣與奈奎斯特定理

感測器那一階交給你一個乾淨、平滑的類比電壓——但電腦只懂數字。這篇要跨過那道鴻溝:取樣如何把連續的波形切成一排點,以及那一條規則——奈奎斯特定理——告訴你取得多頻繁才算夠,免得波形在你眼前倒著轉。

從平滑的波形到一排點

整個感測器階段都在為你準備一樣東西:一個乾淨的類比電壓——換能器的讀數,經調理與放大後成為一道在電源軌之間滑行的平滑波形。但微控制器握不住平滑的波形。它只懂數字,而且一次取一個。取樣就是跨越那道鴻溝的動作:你在規律的瞬間量測那個電壓,並把每一個值寫成一個數字。想像一台電影攝影機,把連續的動作凍結成每秒 24 張靜止畫面——取樣對電壓做的正是這件事,把一條流動的曲線變成一排點。

有兩個數字描述你如何取樣。取樣率 fs 是你每秒取多少個樣本(單位是赫茲,或樣本/秒);它的倒數是取樣週期 Ts = 1/fs,也就是相鄰兩點之間的時間間隔。以 fs = 1000 Hz 取樣,你每 Ts = 1 ms 抓一個值。把 fs 調高,點就擠得更近、緊貼曲線;讓 fs 下垂,點就拉得更開,開到在點與點之間,波形可以為所欲為,而你毫不知情。整個這一階的核心問題就藏在這裡:你到底需要多少個點?

取得多頻繁才算夠?奈奎斯特的答案

從最簡單的訊號——一個純弦波——開始。要釘住它的頻率,你至少得抓到它的上升與下降——每個週期至少兩個樣本。每個週期只取一個樣本,可能每次都落在波形的同一點上、報出一條平線;你會完全錯過那個振盪。這個直覺正是奈奎斯特-夏農取樣定理:要忠實地擷取一個訊號,你的取樣率必須大於其中最高頻率的兩倍,fs > 2 times fmax。那條分界線 fs/2 有它自己的名字,叫奈奎斯特頻率——是你所選取樣率能誠實表示的最高頻率。

用真實的數字就具體了。人耳聽覺的上限約在 20 kHz,所以要錄音你的取樣率就得高於 40 kHz——這正是 CD 標準選 44.1 kHz 的原因,把奈奎斯特頻率放在 22.05 kHz,在 20 kHz 之上留了一點餘裕。電話只需要傳遞約 3.4 kHz 以下的語音,所以 8 kHz 取樣(奈奎斯特 4 kHz)綽綽有餘,還省下頻寬。模式永遠相同:先決定你真正在乎的最高頻率,再以舒舒服服超過它兩倍的速率取樣。

 system             sample rate fs    Nyquist fs/2     honestly captures up to
 -------------------------------------------------------------------------------
 telephone voice     8 kHz             4 kHz            ~3.4 kHz speech
 CD audio            44.1 kHz          22.05 kHz        20 kHz (limit of hearing)
 studio audio        96 kHz            48 kHz           extra filter headroom
 hobby MCU ADC       ~10 kHz           ~5 kHz           slow sensor signals

 rule:  fs  >  2 x fmax           Nyquist frequency = fs / 2
常見系統,以及每個取樣率買到的奈奎斯特頻率。能擷取的頻帶總是舒服地待在 fs/2 之下,絕不貼著它。

誠實面對那些附帶條款。定理說的是嚴格大於兩倍,而非等於:以恰好兩倍頻率取樣一個弦波,你的點可能每次都落在它的零交越點上,報出死板板的零。定理還假設訊號是完美頻帶受限的(不含任何高於 fmax 的成分),且重建用的是一個理想的數學濾波器——這兩者都是我們在實務上只能逼近的理想。乾淨的定理與雜亂的現實之間的這道縫隙,正是接下來兩個觀念——混疊與抗混疊濾波器——之所以存在的原因。

違反規則,輪子就倒著轉

你其實見過違反奈奎斯特定理會發生什麼,即使你不知道它的名字:老西部片裡的驛馬車輪子,看起來緩緩地倒著轉。底片每秒只對輪輻取樣 24 次;輪子轉得比那更快,於是每一格都把輪輻抓在比眼睛預期稍前一點的位置,大腦便讀出一個其實並不存在的緩慢逆向旋轉。取樣太慢,一個高頻就會把自己偽裝成一個低頻。這個冒名頂替者叫做混疊——一個高於奈奎斯特頻率的成分折返回來,化身為一個低於它的幽靈。

給它配上數字。以 fs = 44.1 kHz 取樣(奈奎斯特為 22.05 kHz),餵進一個 30 kHz 的音——在線之上。它折下來成為 fs - fin = 44.1 - 30 = 14.1 kHz,化身為一個乾淨、可聽見的 14.1 kHz 音,端坐在你音樂的正中央。下面這一點,正是讓奈奎斯特定理沒得商量的地方:那個 30 kHz 的音一旦混疊成 14.1 kHz,它就和一個真正的 14.1 kHz 音一位元一位元地完全相同。沒有任何濾波器、任何巧妙的數學、任何之後的處理,能再把它們分開。傷害在取樣的那一瞬間就已造成。

凍結移動中的目標:取樣保持

有一個乾淨的定理略過不提的實務皺褶。真實的類比數位轉換器並非瞬間量測——它需要時間去比較電壓、最後落定成一個數字。如果輸入在這段轉換期間持續移動,它究竟擷取了哪個值?答案是一團模糊。解法是在轉換器前頭擺一個取樣保持電路:它在一個乾淨的瞬間抓住電壓,把它凍得紋風不動,好讓 ADC 對著一個不再移動的目標做它的工作。

這個機制簡單得漂亮,而且你早已懂得它的核心。一個開關把輸入連到一個小電容器——那個抗拒電壓驟變的小小可充電水桶。開關閉合時(追蹤階段)水桶充電,直到它的電壓與輸入相符。接著開關啪地打開(保持階段),電荷無處可去,水桶就坐在那裡,把那個確切的電壓穩穩握住,讓 ADC 從容地讀取。兩側各有一個緩衝器,避免水桶去拖累訊號源,或在面對轉換器時下垂。

  1. 追蹤:閉合開關,讓保持電容充電以跟隨輸入。預留足夠的擷取時間讓水桶充滿——時間太短,你凍結的就是一個還沒追上的值。
  2. 保持:在選定的取樣瞬間打開開關。電容此刻握住那個電壓;孔徑(開關真正打開所花的時間)越小,你在時間上釘住那一刻就越精確。
  3. 轉換:當那個值凍結著,ADC 比較它、把它數位化成一個數字。在這整段間隔裡,被保持的電壓只能下垂到可忽略的程度。
  4. 重複:再次閉合開關以取下一個樣本,每個取樣週期 Ts = 1/fs 走完一個完整循環。這些循環的節奏就是你的取樣率。

來回一趟:取樣進,重建出

取樣只是旅程的一半。數字處理完後,你往往想要再變回一個類比訊號——送音訊給喇叭、送控制電壓給馬達。這就是數位類比轉換器的工作:它把每個數字變回一個電壓,產生一道方塊狀的階梯,每一階保持一個取樣週期。最後一個重建濾波器——又一個低通,抗混疊濾波器的鏡像——把那道階梯重新平滑成它原本的柔順曲線。濾波、取樣、處理、轉換、濾波:這趟來回在兩端是對稱的。

把這篇的範圍守得誠實。我們只固定了時間軸——何時取每一個樣本,以及主宰它的那條不可違背的規則。我們對電壓軸還隻字未提:每一個擷取到的值量得多細、轉換器能分辨出多少個不同的階。那是量化與解析度,本階第三篇的主題。這兩個軸是彼此獨立的——你可以取樣得快卻量得粗,或取樣得慢卻量得細——而一個真實的轉換器在兩者上都會被評等。

最後帶走一塊設計者的判斷力。理論上 fs 只要略大於 2 times fmax 就夠,但沒有任何真實的抗混疊濾波器能瞬間跌落懸崖——越陡的濾波器要付出漣波與相位失真的代價,而平緩的濾波器需要空間去滾降。所以實務上人們以 fmax 的 2.5 到 4 倍(或遠高於此)取樣,替濾波器買來喘息的餘地。刻意以遠高於最低值取樣,叫做過取樣,它做的不只是讓濾波器輕鬆——它還能被換成更好的雜訊表現,那正是你會在本階末尾遇見的Σ-Δ轉換器精巧的核心。眼下,地基已打好:取樣得夠快、在取樣前先濾波,並在讀取每個值之前先把它凍結。