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

縮放、準位移位與抗混疊濾波

你的儀表放大器交給你一個乾淨的訊號——但它大小不對、停在錯的電位上,還帶著類比數位轉換器處理不了的頻率。這篇是類比這最後一哩路的簡短而誠實的食譜:把它拉伸、滑移、過濾,讓它完美落進轉換器的視窗裡。

這一級在訊號鏈中的位置

第 3 篇留給你一項勝利:一個儀表放大器,把電橋那微小、浮動、微伏級的差值,轉成乾淨、以地為基準的電壓。但這個電壓還沒準備好被數位化。類比數位轉換器很挑剔——它透過一扇固定的視窗看世界,比方說 0 到 3.3 V,而且它只能誠實地擷取低於取樣率一半的頻率。我們放大後的訊號,可能擺幅落在錯的範圍、停在錯的直流電位上,還帶著轉換器處理不了的頻率。

所以儀表放大器與轉換器之間的一切,只做三件事,而前兩件能收攏成一個俐落的想法:一個仿射映射,Vout = m times Vin + c。斜率 m 是縮放——一個把訊號拉伸到填滿視窗的增益。偏移 c 是準位移位——一個把訊號的零點滑到視窗想要的位置的平移。第三件事是一個抗混疊濾波器,剝掉取樣器否則會攪爛的頻率。把 m、c 與那個濾波器都弄對,你的感測器全量程就乾淨地落在轉換器的全量程上。這正是訊號調理的核心。

縮放:用盡 ADC 的每一個位元

轉換器把它的輸入視窗切成 2^n 個微小的階。一台跨越 3.3 V 的 12 位元 ADC,每階是 3.3 / 4096,約 0.8 mV——這就是它的解析度。現在假設你放大後的訊號只擺過視窗的十分之一。那你就只用到那 4096 個碼裡的約 410 個,剩下的 3686 個閒置:你在取樣都還沒開始前,就悄悄丟掉了三位元以上。縮放修好這件事——把增益挑成讓最大的預期訊號幾乎填滿視窗,於是每一個碼都派上用場。

弄得具體些。假設經過儀表放大器後,你的訊號擺幅是 0 到 300 mV,而 ADC 視窗是 0 到 3.3 V。你需要約 11 倍的增益,把 300 mV 拉伸到 3.3 V。一個非反相放大器辦得到:增益 = 1 + Rf / Rin,於是 Rf = 100 k、Rin = 10 k 給出 1 + 100/10 = 11,而 300 mV times 11 = 3.3 V。整個視窗現在都動起來了,比起把訊號留得很小,你的有效解析度跳升了三位元以上。

兩項誠實的告誡,能讓縮放不反咬你一口。第一,留餘裕:別瞄準恰好的滿刻度。訊號會過衝、偏移會漂移,而真實的運算放大器也搆不太到電軌,所以瞄準視窗的大約 80 到 90 個百分比。把一個尖峰削平是無法復原的——遠比浪費幾個碼糟糕。第二,增益放大雜訊就和放大訊號一樣忠實;它無法改善感測器與儀表放大器早已定下的訊雜比。縮放讓訊號對位元而言大小剛好;它不會添上上游鏈從來沒有過的準確度。

準位移位:把零點滑進視窗

偏移 c 是兩個數字裡比較棘手的一個,而它要緊,是因為太多真實感測器給出雙極性訊號——一個同時擺向零以上與零以下的訊號。一個被一邊推、又被另一邊拉的荷重元,一支麥克風,一個讀取兩個方向磁場的霍爾感測器:全都產生會正會負的電壓。但單電源的 ADC 只接受 0 到 Vref。餵它一個負輸入,最好的情況是它箝在零、你損失一半訊號;最壞的情況是你讓輸入受壓。準位移位把整個訊號往上滑,讓它的零點落在中刻度,安穩地待在視窗裡。

最乾淨的工具,是加上一個穩定的直流電位。一個差動放大器有一支參考腳,能精確設定「零輸入」在輸出端出現在哪裡:把那支腳接到 Vref/2,一個擺幅正負 1 V 的訊號就變成 0.65 到 2.65 V,置中於 3.3 V 的視窗。一個加法放大器靠把你的訊號加上一個直流項,做到同樣的事。無論哪種,那個直流電位都必須來自一個穩定的參考電壓——若你移位過去的電位會遊走,你的零點就跟著遊走,而那個誤差會偽裝成真實訊號。

Two-point map:  sensor span   ->   ADC window
   Vin_min = -1.00 V    ->    0.10 V    (leave 10% headroom at bottom)
   Vin_max = +1.00 V    ->    3.20 V    (use ~90% of a 3.3 V ADC)

   slope  m = (3.20 - 0.10) / (1.00 - (-1.00)) = 3.10 / 2.00 = 1.55
   offset c = 0.10 - m*(-1.00)            = 0.10 + 1.55  = 1.65 V

   ==>  Vout = 1.55 * Vin + 1.65
        ( gain 1.55, signal now centred at 1.65 V = mid-scale )

   Build it with a difference amp:  R2/R1 = 1.55,  reference pin = 1.65 V
縮放與準位移位是同一道計算。決定你感測器的最小與最大值該落在 ADC 視窗的哪裡(連同餘裕),這兩個端點就直接把斜率 m 與偏移 c 交給你。這裡一個正負 1 V 的訊號,用 1.55 倍增益與 1.65 V 偏移,映射到 0.10 到 3.20 V。

有時偏移是敵人,而不是目標。一個電橋即使靜止也有小小的內建失衡,儀表放大器加上它自己的輸入偏移電壓,而許多感測器停在一個你根本不在乎的基線上。減掉一個直流電位——同樣的差動放大器把戲,或一個小數位類比轉換器輕推參考電壓,或軟體裡的數位歸零——能移除那個基座,讓你能拉高增益而不讓偏移本身被削平。誠實的提醒:一個隨溫度漂移的偏移,沒辦法只抵消一次就永遠不管。追蹤那份漂移是校正的工作,那是第 5 篇的事。

抗混疊濾波:取樣器前的那道牆

還剩一件工作,而它正是你不能跳過、事後也補不了的那一件。以 fs 的速率取樣,只能忠實地表現低於 fs/2 的頻率——奈奎斯特極限,是整個數位化故事裡最重要的單一數字。任何高於 fs/2 的東西都不會就這麼消失。它會折返下來、偽裝成一個較低的頻率,正好落在你真實訊號的頭上,讓你永遠分不清它們。這種折返叫做混疊,而定下這道極限的規則,就是奈奎斯特取樣定理

這裡是關鍵的誠實:訊號一旦混疊,之後再沒有任何濾波器、任何數位訊號處理、任何聰明的數學能把它從真實訊號裡分出來,因為它們現在佔據著一模一樣的頻率。唯一的解藥是預防——你必須在取樣器「之前」,用一個類比低通濾波器移除那些高頻。那個濾波器就是抗混疊濾波器,它是轉換器前最後一個類比元件不是沒有原因的:它是那位守門人,決定 ADC 究竟被允許看到什麼。

  1. 找出你真正在乎的最高頻率——你的訊號頻帶。比方說一個有用內容到 1 kHz 為止的感測器。
  2. 別挑剛好的奈奎斯特下限。把那個 1 kHz 訊號只用 2.5 kHz 取樣,會逼濾波器在 1 kHz 與 1.25 kHz 之間像懸崖一樣陡降——一道做不出來的銳利牆(記得濾波器那一級:世上沒有磚牆)。
  3. 改用過取樣。把 fs 選成頻帶的約十倍——10 kHz——於是 fs/2 落在舒服的 5 kHz,與你 1 kHz 的內容之間有一道寬寬的縫隙。現在一個和緩的濾波器就有空間做事。
  4. 把低通的轉角設在頻帶剛上方(比方說 1.2 到 1.5 kHz),並給它足夠的階數,好在 fs/2 處被壓得很低。一個每十倍頻 40 dB 的二階 Sallen-Key,到 5 kHz 約給 24 dB 的抑制;四階則約 50 dB。
  5. 拿 fs/2 處的衰減去對照你的解析度。要守住 12 位元,你希望那裡大約壓低 72 dB;若四階還不夠,就過取樣得更兇、或加階數——那是一次乾淨轉換真正的代價。

比率量測,以及真正決定準確度的東西

有一個漂亮的把戲把整條鏈綁在一起。ADC 並不量測絕對的伏特;它把你的訊號量成它自己參考電壓的一個比率。所以若你的電阻式感測器——一個電橋、一個 RTD 分壓器、一個電位器——是由那「同一個」參考電壓激勵的,那麼參考電壓的任何漂移都恰好抵消。激勵升高,訊號等比升高,而轉換器回報的比率紋風不動。這就是比率量測,它把參考電壓的穩定度,從一樁惱人的憂慮變成一件無關緊要的事。

在最末端,仍有負載要尊重。儀表放大器的高輸入電阻保護了脆弱的電橋;現在轉換器本身成了負載。尤其是一個 SAR(逐次逼近型)ADC,有個切換電容式的輸入,會在每次取樣的瞬間從你的訊號猛吸一口電荷,而若驅動它的那一級不夠低阻抗、不夠快到能及時穩定,讀值就會下垂。解法是一個專用的運算放大器緩衝器,硬挺又敏捷地坐在 ADC 輸入處——又一次提醒:忽視負載效應,會悄悄毀掉一個紙面上看來完美的量測。

把一切疊起來,誠實的圖景就清晰了。轉換器的 12 或 16 位元是個天花板,從來不是地板。感測器的雜訊與非線性、電橋的偏移漂移、儀表放大器的偏移與雜訊、你的縮放與準位移位誤差、參考電壓漂移,以及一個不完美的抗混疊濾波器,全都從那塊天花板往下啃。誠實的品質指標是有效位元數——在真實世界發過言之後,你實際拿到的東西。一個乾淨的 12 位元前端,每一次都勝過一個草率的 16 位元前端。把整條訊號鏈當成一件事去設計,並記得最後一哩——透過線性度與校正,把一個忠實的數字變成一個正確的數字——是第 5 篇。