English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

guest
1 / ?
back to lessons

從理想響應到實用濾波器

Hamming 提出了一種使用傅立葉級數設計 FIR 濾波器的四步方法。

步驟 1:指定理想響應

定義 H_ideal(f):您想要的精確頻率響應。對於低通濾波器:f < f_c 時 H = 1,f > f_c 時 H = 0。這是頻域中的階躍函數。

步驟 2:計算傅立葉係數

將 H_ideal(f) 展開為頻率變量中的傅立葉級數。係數 c_k 是濾波器的理想脈衝響應值:

c_k = ∫₀¹ H_ideal(f) · e^{i2πfk} df

對於截斷頻率為 f_c 的低通濾波器:k ≠ 0 時 c_k = sin(2πf_c·k) / (πk),c_0 = 2f_c。

此脈衝響應是無限的——sinc 函數在時間上無限延伸。實用濾波器需要有限數量的係數。

步驟 3:截斷到 2N+1 項

只保留 |k| ≤ N 的係數 c_k。此 2N+1 項的矩形窗是最簡單的截斷。它會產生 Gibbs 現象:截斷附近約 9% 的超調。

步驟 4:應用視窗

將截斷的係數乘以視窗函數 w_k 以減少 Gibbs 超調:

c̃_k = c_k · w_k

視窗係數 c̃_k 定義實用濾波器。

Gibbs Phenomenon & Window Functions

計算傅立葉係數

傅立葉係數公式 c_k = sin(2πf_c·k) / (πk) 適用於截斷頻率為 f_c 的低通濾波器,給出脈衝響應。

對於下截斷頻率為 f_l 和上截斷頻率為 f_u 的帶通濾波器,理想響應的傅立葉係數為:c_k = [sin(2πf_u·k) − sin(2πf_l·k)] / (πk)。

對於截斷頻率為 f_c = 1/4 的低通濾波器,計算 k = 0、1、2 和 −1 的傅立葉係數 c_k。使用 c_0 = 2f_c 和 k ≠ 0 時的 c_k = sin(2πf_c·k)/(πk)。顯示每個的計算。然後解釋為什麼係數序列是對稱的:c_k = c_{−k}。

視窗如何減少 Gibbs 超調

視窗函數 w_k 將截斷的係數序列從其中央值逐漸縮小到邊緣處的零。此漸變消除了矩形截斷引入的尖銳邊緣。

為什麼漸變有效

Gibbs 超調出現是因為矩形視窗的傅立葉變換(sinc 函數)有很大的旁瓣。這些旁瓣在不連續處附近相加產生約 9% 的超調。

平滑的視窗具有較小旁瓣的傅立葉變換。將係數乘以視窗會將理想頻率響應與視窗的傅立葉變換進行卷積。較小的旁瓣 → 更少的漣漪。

常見視窗

矩形(無視窗化):旁瓣 ≈ −13 dB、Gibbs ≈ 9%。

Hann(von Hann):w_k = 0.5 + 0.5·cos(πk/N)。旁瓣 ≈ −31 dB。

Hamming:w_k = 0.54 + 0.46·cos(πk/N)。旁瓣 ≈ −41 dB、第一旁瓣 ≈ −43 dB。Gibbs < 0.2%。

Kaiser:w_k = I₀(α·√(1−(k/N)²)) / I₀(α)。可調:α 控制旁瓣級別,允許設計在旁瓣高度和轉換帶寬之間進行權衡。

視窗權衡

每個視窗都帶來權衡:抑制旁瓣總是會加寬主瓣。

更寬的主瓣意味著更寬的轉換帶——通帶和阻帶之間的頻率範圍。

Hamming 用 Kaiser 的設計參數形式化了這一點:

- δ:允許漣漪(與理想的垂直容差——響應可以偏離 0 或 1 的程度)

- ΔF:轉換寬度(水平容差——從通帶到阻帶的轉換有多窄)

Kaiser 的方法僅從 δ 和 ΔF 中找到 N(係數數)和 α(視窗形狀參數)。無需猜測視窗類型。

濾波器規格要求:通帶漣漪 ≤ 0.01(δ = 0.01)和轉換帶寬 ΔF = 0.05(標準化)。第二個濾波器要求:通帶漣漪 ≤ 0.001(δ = 0.001)和相同的 ΔF = 0.05。哪個濾波器需要更多的係數 N?解釋傅立葉級數設計中漣漪容差 δ 和濾波器階 N 之間的關係。

從規格到係數

Kaiser 的方法採用兩個規格——δ(漣漪容差)和 ΔF(轉換寬度)——並產生 N 和視窗係數,無需試驗和錯誤。

設計序列

1. 計算 A = −20·log₁₀(δ)(以 dB 為單位的衰減)

2. 計算形狀參數 α:

- 如果 A > 50:α = 0.1102·(A − 8.7)

- 如果 21 ≤ A ≤ 50:α = 0.5842·(A − 21)^{0.4} + 0.07886·(A − 21)

- 如果 A < 21:α = 0(矩形視窗)

3. 計算 N = (A − 8) / (2.285 · 2πΔF)

4. 計算 Kaiser 視窗權重:w_k = I₀(α·√(1−(k/N)²)) / I₀(α)

5. 將理想傅立葉係數乘以視窗權重

6. 評估所得轉移函數並檢查漣漪是否與 δ 相符。如果漣漪超過 δ(邊緣干擾),請以較小的容差重複。

Hamming 注意到:Kaiser 通過嘗試 0.5(過大)並發現 0.4 拼合得很好而得到指數 0.4。計算機用作理論研究的實驗工具。

應用 Kaiser 方法

貝塞爾函數 I₀(x) 出現在 Kaiser 的視窗公式中。它計算為快速收斂級數:

I₀(x) = Σ_{m=0}^∞ [(x/2)^m / m!]²

對於小的 x,由於分母中的 m!²,級數在幾項內收斂。

低通濾波器需要 δ = 0.01(1% 漣漪)和 ΔF = 0.1(採樣率的 10% 作為轉換寬度)。使用 Kaiser 的公式:A = −20·log₁₀(0.01) = 40 dB。由於 21 ≤ 40 ≤ 50,使用 α = 0.5842·(A−21)^{0.4} + 0.07886·(A−21)。計算 α。然後使用 N = (A−8)/(2.285·2πΔF) 計算所需的濾波器係數數。將 N 四捨五入到最近的整數。