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

頻率響應:濾波器與波德觀點

上一階,傅立葉教會我們:任何訊號都是一道由純正弦波組成的食譜。這一階要把它兌現:一個線性非時變系統根本「看不見」你的波形——它只逐一看見每個正弦波,並對它只做兩件事,縮放大小、平移相位。把這兩個數字攤遍所有頻率,就得到 [[ee-frequency-response|H(f)]],這一條曲線道盡濾波器將會做的一切。讀完本篇,你能讀懂波德圖、找出截止頻率、親手設計一個 [[ee-rc-time-constant|RC]] 低通濾波器,並看清濾波與[[ee-convolution|摺積]]其實是同一件事穿著兩套戲服。

一個只會一招的系統

站在一座長盪鞦韆下,每當它盪回來就推一下。如果你正好按著鞦韆的天然節奏推,它便越盪越高;推得太快或太慢,多數力氣就白費了。鞦韆回應的是你推的頻率,而不是任何單一推力的形狀。一個線性非時變(LTI)系統——濾波器、放大器、一段纜線、一間滿是回音的房間——表現也是如此。餵它一個純正弦波,它回給你的是完全相同頻率的正弦波,只是被重新縮放並做了時間平移。它從不無中生有出新的頻率。這個近乎平淡的事實,正是電機工程師最深的依靠。

為什麼會這樣?因為正弦波(寫成複指數 e^{j2πft})是任何 LTI 系統的特徵函數:把它推進去,出來的還是同一個波,只不過乘上了一個常數。這個常數是複數——它帶著大小與角度——而且取決於頻率 f。我們稱它為 H(f),即頻率響應。於是整個 LTI 系統的個性,就壓縮成一個關於頻率的複值函數。只要告訴我 H(f),我就能預測任何輸入的輸出,完全不必動用微分方程式。

INPUT spectrum        FILTER's response       OUTPUT spectrum
  X(f)            ×        H(f)          =        Y(f)

  |X|                     |H|                     |Y| = |H||X|
  ###                     ‾‾‾\__                  ##
  ####                       \                    ###
  #####  every freq          \   keeps lows,      ####
  ######  present            \    kills highs      ##
  +---------- f         +----------- f         +----- ·
                                                  (highs gone)

  Frequency f1: Y(f1) = H(f1) · X(f1)   <- independent
  Frequency f2: Y(f2) = H(f2) · X(f2)   <- of each other
  ...
  No frequency leaks into any other. Pure scaling per channel.
LTI 系統在每個頻率各自的專屬車道上處理訊號。輸出=響應×輸入,逐個聲道進行。

幅值與相位:兩張圖,一個故事

因為 H(f) 是複數,它在每個頻率都帶來兩則消息。幅值 |H(f)| 說明那個正弦波被放大或衰減了多少——增益 2 把振幅加倍,增益 0.1 把它縮成十分之一。相位 ∠H(f) 說明輸出正弦波相對輸入在時間上被推移了多少——某頻率落後 −90° 意味著那個波晚了四分之一週期才出來。我們幾乎從不把兩者畫在同一組軸上。我們改畫兩條疊放、對頻率作圖的曲線:上方是幅值響應,下方是相位響應。兩者合起來就是波德圖

兩個尺度技巧讓這些圖在實際電子學龐大的範圍內仍易讀。第一,頻率採對數軸,所以每一步是一個十倍頻程(decade,×10):10 Hz、100 Hz、1 kHz、10 kHz 都等距排列。音訊跨三個十倍頻程,射頻跨九個——線性軸根本沒法用。第二,幅值用分貝表示:|H| 的 dB = 20·log₁₀|H|。係數 20 用於振幅比(功率比用 10)。這把乘法變成加法,於是串接兩個濾波器只要把它們的 dB 曲線相加,眼睛讀的是斜率而非曲線。

  dB ratios worth memorising
  --------------------------
  |H| = 1     -> 20·log10(1)    =   0 dB    (no change)
  |H| = 2     -> 20·log10(2)    =  +6 dB    (double)
  |H| = 10    -> 20·log10(10)   = +20 dB    (×10)
  |H| = 0.707 -> 20·log10(.707) =  -3 dB    (the cutoff!)
  |H| = 0.5   -> 20·log10(.5)   =  -6 dB    (half)
  |H| = 0.1   -> 20·log10(.1)   = -20 dB    (1/10)

  A slope of '-20 dB/decade' means: every ×10 in
  frequency, the output drops by a factor of 10.
分貝地標。−3 dB(增益 0.707)正是定義濾波器邊界、著名的半功率點。

四種形狀,四種任務:濾波器分類

一旦你能流暢讀懂幅值圖,濾波器就會依輪廓自動分類。低通讓慢訊號通過、扼住快訊號——這正是你想用來平滑雜訊感測讀數,或從解調訊號剝去載波時所要的。高通反其道而行,阻擋直流與緩慢漂移,卻放行俐落的邊緣,就像示波器的交流耦合輸入會忽略電池偏壓、卻把漣波顯示給你看。帶通保留一扇頻率窗口、拒斥窗外一切——好比收音機調諧器從空氣中挑出一個電台。帶阻(或陷波)恰恰相反,外科手術般移除某個惱人的頻段,例如在心電圖中以 50/60 Hz 陷波消滅市電哼聲。

  LOW-PASS              HIGH-PASS
  |H|                   |H|
  ‾‾‾‾\                       /‾‾‾‾
      \                      /
       \____                /____
  +--------- f          +--------- f
     pass | stop          stop | pass

  BAND-PASS             BAND-STOP (notch)
  |H|                   |H|
      /‾‾\              ‾‾\    /‾‾
     /    \               \  /
  __/      \__             \/
  +--------- f          +--------- f
   keeps a window        removes a window
四大濾波器家族可直接從幅值響應讀出——每一種都只是 |H(f)| 的不同形狀。

實作範例:RC 低通,從元件到曲線

沒有什麼比電子學中最樸素的濾波器更能把 H(f) 變具體:一個電阻 R 餵給一個電容 C,輸出取自電容兩端。在低頻時,電容有的是時間充電,所以它跟得上輸入、輸出等於輸入——增益約為 1。在高頻時,電容還沒怎麼開始充電,輸入就反向了,於是它停在接近 0 V——訊號被扼殺。這就是低通濾波器,用兩個元件加一條線就做成了。

要得到 H(f),我們把電路當成用複數阻抗構成的分壓器。電容的阻抗是 Z_C = 1/(j2πfC);電阻就是 R。分壓給出 H(f) = Z_C / (R + Z_C) = 1 / (1 + j2πfRC)。注意 R 與 C 合起來定出單一個時間常數 τ = RC,而截止點恰落在虛部等於 1 之處,也就是 2πf_c·RC = 1。

  1. 選元件。 取 R = 1.6 kΩ、C = 100 nF。則 τ = RC = 1.6×10³ × 100×10⁻⁹ = 1.6×10⁻⁴ 秒 = 160 µs。
  2. 求截止頻率。 f_c = 1 / (2πRC) = 1 / (2π × 1.6×10⁻⁴) ≈ 995 Hz——就當作 1 kHz。
  3. 驗證 −3 dB 點。 在 f = f_c 時,項 j2πfRC = j1,故 H = 1/(1+j1),|H| = 1/√2 = 0.707 → 恰為 −3 dB。✓
  4. 驗證該處相位。 ∠H = −arctan(2πfRC) = −arctan(1) = 在截止頻率處 −45°——一階低通標誌性的中途相位落後。
  5. 讀滾降。 在 f_c 之上一個十倍頻程(10 kHz),|H| ≈ 1/10 → −20 dB。之後每多一個十倍頻程再掉 20 dB。斜率 = −20 dB/decade。
    Vin o---[ R = 1.6k ]---+---o Vout
                           |
                         [ C ] 100nF
                           |
                          GND

  H(f) = 1 / (1 + j·2pi·f·R·C),   f_c = 1/(2pi·R·C) ~ 1 kHz

  |H| in dB                          phase
   0 ----____                          0 ---\__
  -3       ‾·(f_c)                    -45      ·(f_c)
 -20          ‾‾‾\__ -20dB/dec       -90          ‾‾‾---
      10  100  1k  10k  100k              10  100 1k 10k 100k
              (Hz, log)                        (Hz, log)

  freq     |H|      dB       phase
  100 Hz   0.995   -0.04    -5.7 deg
  1 kHz    0.707   -3.0    -45   deg   <- cutoff
  10 kHz   0.0995 -20.0    -84   deg
  100 kHz  0.010  -40.0    -89.4 deg
RC 低通與它的波德圖。幅值先平坦再以 −20 dB/decade 滾降;相位從 0° 擺向 −90°,並在 f_c 處通過 −45°。

同一齣戲,兩套戲服:濾波就是摺積

我們一直住在頻域裡,那裡濾波是一次乾淨的乘法,Y(f) = H(f)·X(f)。但電路本身住在時域,訊號一邊到達它就一邊逐點處理。頻域裡的一次乘法,如何翻譯回時域?靠的是摺積定理——整個訊號處理中最有用的橋樑:頻域的乘法等於時域的摺積。H(f) 在時域的孿生兄弟是脈衝響應 h(t)——也就是當你用一記無限尖銳的敲擊打它時,系統吐出來的那段擺動。

這個聯繫優美而緊密:H(f) 是 h(t) 的[[ee-fourier-transform|傅立葉轉換]],而 h(t) 是 H(f) 的反轉換。它們是同一個對象的兩種語言。以我們的 RC 濾波器為例,用脈衝敲它,電容瞬間充電、再以 h(t) = (1/RC)·e^{−t/RC} 洩放——一條長度由 τ 設定的衰減尾巴。把任何輸入與那條指數尾巴做摺積,跟把它的頻譜乘上 1/(1+j2πfRC) 完全等價。兩張圖,一個濾波器。

  TIME domain                    FREQUENCY domain
  -----------                    ----------------
  x(t) --[ * h(t) ]--> y(t)      X(f) --[ × H(f) ]--> Y(f)
         convolution                    multiplication
          (hard)                          (easy)

          h(t) <----- Fourier transform -----> H(f)
          impulse response                 frequency response
          (RC: a decaying e^{-t/RC} tail)  (RC: 1/(1+j2pi f RC))

  The two domains are bridged by the Fourier transform.
  Pick whichever side makes your problem simple.
摺積定理:在時域與 h(t) 摺積,等於在頻域乘上 H(f)。傅立葉轉換是兩者之間的那扇門。

像高手一樣讀波德圖

把這一切組合起來,波德圖就成了一眼可讀的故事。由左到右掃過幅值曲線:平坦區是通帶,下坡是阻帶在逼近,而斜率本身(dB/decade)告訴你階數。找出 −3 dB 點以標記截止頻率,並量出它們之間的頻寬。接著瞥一眼相位曲線,判斷濾波器會把快訊號的時序抹糊多少——在截止點附近劇烈擺動的相位,預示著振鈴與延遲。

  1. 找通帶。 幅值曲線的平坦頂部——以大致滿增益(0 dB)通過的頻率。
  2. 標出截止頻率。 曲線跌破通帶位準 −3 dB 之處。一個交點=低通/高通;兩個=帶通/帶阻。
  3. 讀頻寬。 各截止頻率之間(或低通單一截止頻率以下)的頻率跨度。
  4. 讀滾降斜率。 每階 −20 dB/decade。越陡=越高階=越銳利但相位失真越多。
  5. 檢視相位。 緩和的相位=忠實的時序;f_c 附近相位急轉=對銳利邊緣應預期延遲與振鈴。