無限脈衝響應濾波器，簡稱 IIR 數位濾波器，是數位濾波器的一種。由於無限脈衝響應濾波器中存在反饋迴路，因此對於脈衝輸入訊號的響應是無限延續的。濾波器的任務是透過一定運算關係，改變輸入訊號的頻譜。數位濾波器是利用計算機程式、專用晶片等軟、硬體改變數字訊號頻譜。如果要處理的是模擬訊號可以透過 AD 在訊號形式上進行轉換，在利用數位濾波器處理後經過 DA 恢復為模擬訊號。 選頻數位濾波器 利用選頻濾波器的特性可以提取有用的訊號頻率分量，這類濾波器適用輸入訊號中有用訊號頻帶與幹擾訊號頻帶不同的情況。 選頻數位濾波器設計過程一般歸納為以下三個步驟 按照實際需求效能要求確定濾波器技術指標。 用一個因果穩定的系統函式 IIR 去逼近這個要求。 用一個有限精度的運算 軟、硬體 去實現這個傳遞函式 概述 無限脈衝響應濾波器的脈衝響應無限長，不像有限脈衝響應濾波器，所以有以下問題： 如何使能量集中在 n0 附近。 如何正向 Z 轉換（forward Z transform）以及逆向 Z 轉換（inverse Z transform）為穩定。 能使用最小相位濾波器（minimum phase filter）來解決以上問題，使一無限脈衝響應濾波器為穩定且能量集中在 n0 附近。 最小相位濾波器（minimum phase filter）：所有的極點（poles）以及零點（zeros）都在單位圓以內。 最小相位濾波器為穩定（stable）且因果（causal），且最小相位濾波器的逆向（inverse）轉換也為穩定（stable）且因果（causal）。 H zCfrac zz_1zz_2zz_3zz_Rzp_1zp_2zp_3zp_S H1zC1 zSRfrac 1p_1z11p_2z11p_3z11p_Sz11z_1z11z_2z11z_3z11z_Rz1 其中 z_1z_2z_R 為 R 個零點，p_1p_2p_S 為 S 個極點，R 個零點和 S 個極點都在單位圓內。 如何將無限脈衝響應濾波器轉換成最小相位濾波器： H zCfrac zz_1zz_2zz_3zz_Rzp_1zp_2zp_3zp_S 假設 z_2 在單位圓外。 H_1 zCfrac zz_1zz_2zz_3zz_Rzp_1zp_2zp_3zp_S times z_2frac zoverline z_21zz_2 z_2Cfrac zz_1zoverline z_21zz_3zz_Rzp_1zp_2zp_3zp_S H_1 z 為最小相位濾波器（minimum phase filter），符合 H_1 zH z 且 H_1 z 和 H z 只有相位不同。 另外，z_2frac zoverline z_21zz_2 稱為全通濾波器（all pass filter）。 無限脈衝響應濾波器為一個最小相位濾波器和一個全通濾波器串接（cascade）： H zH_mpz H_apz 其中 H z：無限脈衝響應濾波器，H_mpz：最小相位濾波器，H_apz：全通濾波器。 特性 無限脈衝響應濾波器（IIR filter）的優點： 較容易設計以及實現。 無限脈衝響應濾波器（IIR filter）的缺點： 脈衝響應（impulse response）為無限長：造成當輸入數位訊號為有限長的時候，輸出數位訊號會變成無限長。 比有限脈衝響應濾波器（FIR filter）較不易最佳化（optimize）。 不一定是穩定的（stable）：因為 Z 轉換（Z transform）後所有的極點（pole）不一定都在單位圓內。 數位濾波器設計原理 IIR 數位濾波器設計有以下幾種基本方法 零、極點累試法：由於頻率響應在靠近集點頻處會出現峰值，在靠近零點頻率處會出現谷值，並且零、極點越靠近單位圓峰谷越明顯。所以在設計時透過不斷調整零、極點位置，達到設計標準，對要求不高的簡單濾波器，可以用此方法設計。 最最佳化設計：這種設計方法一般事先確定最好的推測，找出最好推測下誤差最小的系統函式 H z。在得到最佳結果之前，因為設計需要大量反覆計算，所以必須用到 CAD 技術，而此類設計隨著技術發展，應用也越來越多。 用模擬濾波器理論設計數位濾波器：利用模擬濾波器理論先設計模擬濾波器，得到其系統函式 Ha s。然後經過一定的變換，得到滿足要求的數位濾波器系統函式 H z。這樣設計的優點是模擬濾波器設計理論成熟，有許多現成的公式、曲線、表格可以直接使用。並且在許多場合下就是用數位濾波器代替模擬濾波器。這種由模擬濾波器設計數位濾波器的方法，其實就是從 s 平面到 z 平面的對映變換，對這個變換基本要求是 數位濾波器的頻率響應要保持模擬濾波器的頻率響應，所以 s 平面的虛軸 jΩ 應當對映到 z 平面的單位圓 ejw 上。 模擬濾波器的因果穩定性經對映數位濾波器仍應保持，所以 s 平面的左半平面應當對映到 z 平面的單位圓內。 設計方法 脈衝響應不變法 脈衝響應不變法也稱衝激響應不變法，是滿足 s 平面到 z 平面的對映兩個基本要求的常用方法之一。實現方法是已知模擬濾波器的衝衝響應 ha t，讓數位濾波器 h n 的包絡為 ha t，即 h n h_a t_tnT 故此得名脈衝不變法，這種方法的實質上是時域取樣法，基本設計步驟是先得到模擬濾波器的系統函式 Ha s；然後對沖激響應 ha t 取樣，得到數位濾波器的單位脈衝響應 h n；最後，h n 所對應的 z 變換，正是所要求的數位系統的系統函式 H z，即 H_a s leftrightarrow h_a tlongrightarrow h nleftrightarrow H z 脈衝不變法又稱標準 z 變換法。根據理想取樣序列 z 變換與拉普拉斯變換的關係式，我們可以得到 H zmid_zesT frac 1Tsum_minftyinfty H_a sjOmega _sm frac 1Tsum_minftyinfty H_a sjfrac 2piT mqquad qquad1 其對映關係為 z esT 或 s frac 1Tln z 由 1 式當 s jΩ 時，得到的數位濾波器的響應為 H zmid_zejOmega T H ejomegamid_omegaOmega T frac 1Tsum_Kinftyinfty H_a jOmega jfrac 2piT k qquadqquad 2 由 2 式可見，數位濾波器的頻率響應不是簡單的重現模擬濾波器的頻率響應，而是模擬濾波器頻率響應的週期展開，其中頻率對映關係為 omega Omega T 若模擬濾波器是帶限的，即 H_a jOmega0Omegage pi T 則 H ejomega frac 1T H_a jOmega frac 1T H_a frac omegaTqquad qquadomegalepiqquadqquad3 這時，數位濾波器可在摺疊頻率內不失真的重現模擬濾波器的頻率響應。但是實際模擬濾波器頻率響應不可能是真正帶限的，所以脈衝響應不辨法總會有混疊失真。 下面以 Ha s 均為單極點為例，討論脈衝不變法設計 IIR 濾波器的具體方式。Ha s 可展開為部分分式 H_a ssum_k 1Nfrac A_kss_k 上面式子中 s_ksigma _k jOmega _k 是 H_a s 的極點，對應的模擬系統單位沖激響應為 h_a t sum_k1N A_kes_kt u t 對 ha t 取樣，所有連續時間便量 t 由離散時間便量 nT 代替，則 h_a nTsum_k1N A_kes_knT u nT 對 Ha n 取 z 變換 mathcal Llefth n rightH zsum_k1Nfrac A_k1es_kT z1 上式中 z_kes_kT 是 z 平面的極點，當極點 sk 在 s 平面的左半平面時，Re s_ksigma _kll 0 ，則 z_kes_kTesigma _kT ejOmega _k Tr_kejomega _k ，r_kesigma _kT1 ，H z 的極點在單位圓內。由此可知，s 平面與 z 平面的極點一一對應，並且穩定的模擬系統變換後仍為穩定的數位系統。 在 3 式 H ejomegafrac 1T H_a jOmega，考慮到若取樣頻率很高時，會使得數位系統的福頻特性的增益很高。為防止溢位，通常在取樣時做修正，令 h nTha n，這樣實際數位濾波器的系統函式及頻率響應特性分別為 H zsum_k1N frac TA_k1es_kT z1 H ejomegasum_kinftyinfty H_aleft jfrac omegaT jkOmega _srightapprox H_aleft frac omegaT right qquadqquad omegalepi 由以上分析可見，按照 H_a srightarrow h_a trightarrow h nrightarrow H z 變換過程，從模擬濾波器 Ha s 得到數位濾波器 H z，設計還是相當冗繁，不過由於 s 平面與 z 平面的極點一一對應，我們可以簡化變換步驟。 設 Ha s 均為一階極點，省略中間步驟，從 H_a srightarrow H z 設計過程分為兩個步驟 將 Ha s 部分分式展開 H_a ssum_k1Nfrac A_kss_k 直接對應 H z 的部分分式 H zsum_k1Nfrac TA_k1es_kT z1 如果 Ha s 還有 m 階的重極點，我們給出對應的 z 變換的有理分式為 frac 1ss_kmrightarrow frac 1m1m1frac dm1ds_km1frac 11es_kT z1 除了單極點與重極點外，對 Ha s 的共軛極點，我們也給出對應的 z 變換的一般有理分式 frac sasa2b2rightarrowfrac 1eaTcos bTz112eaTcos bT21e2aT z2 frac sbsa2b2rightarrowfrac 1eaTsin bTz112eaTcos bT21e2aT z2 這樣，當 Ha s 部分分式展開式中如果有重極點或共軛極點，在上述設計過程第二步做相應修改即可。 脈衝不變法的頻率變換 omegaOmega T 是線性關係，所以在幅度及相位上數位濾波器都保留著模擬濾波器的頻率響應特點。但是由於脈沖不變法本身具有頻譜週期延展拓寬的特性，所以失真較大。尤其是對衰減特性差的濾波器頻率響應會有嚴重的混疊現象，適用範圍受到限制。 下面給出用脈沖不變法設計數位濾波器的一般步驟 確定數位濾波器的效能要求及各數字臨界頻率 omega _k 由脈沖不變法的變換關係將 omega _k 變換為模擬域臨界頻率 Omega _k 按 omega _k 及衰減指標求出模擬濾波器的傳遞函式 Ha s。這個模擬低通濾波器也稱為模擬原型濾波器。 由脈沖不變法的變換關係將 Ha s 轉換為數位濾波器的系統函式 H z 在設計過程中，除了第一步求數字臨界頻率 omega _k 時，要用到取樣間隔 T 或取樣頻率 fs 以外，最後的結果與其他各步驟中 T 或 fs 的取值無關。所以為了簡化運算，在實際運算時，除了第一步外，通常取 T1。 脈衝響應不變法 這是由解出和類比濾波器在同樣的取樣時間下有一樣輸出值的 T z 所獲得，且當這兩者的輸入接為一個脈衝時才適用。 有一點需要注意的是，藉由此種方法產生的數位濾波器的所有輸入皆是一個近似值，除了只對於脈衝輸入非常精確。這是一種最簡單的 IIR 濾波器設計方法，它在低頻是最精確的，所以通常被用在低通濾波器上。 對於拉普拉斯轉換 Laplace transform 或是 ztransform，轉換過後的輸出只是輸入乘上相對應的轉換函式，T s 或 T z。Y s 和 Y z 分別是輸入 X s 和輸入 X z 轉換過後的輸出。 Y sT s X s Y zT z X z 然而，當拉普拉斯轉換和 ztransform 對單位脈衝作轉換時為 1，轉換後的輸出結果分別為 Y sT s Y zT z 現在類比濾波器的輸出在時域上就只是拉普拉斯逆轉換 inverse Laplace transform y tL1Y sL1T s 如果我們用 nT 代替 t，可以得到在取樣時間下源於脈衝的輸出，y nT，又可以為了便利性表為 y n y ny nTy t_tsT 這個離散時間訊號可以被 ztransform 得到 T z T zY zZ y n T zZ y nZ y nT T zZleftL1T s_tnTright 最後這條等式指出在數學領域描述數位 IIR 濾波器就是對取樣完經拉普拉斯轉換為 T s 的類比訊號作 ztransform，通常會簡化為 T zZ T sT 雖然在數學領域上不是完全正確的。 需特別注意有一個乘法數 T 出現在式子中，這是因為就算拉普拉斯轉換和 ztransform 對單位脈衝為 1，脈衝本身不一定是一樣的。對類比訊號而言，脈衝在 t0 時有無限大的值但是面積為 1，但在離散時間的脈衝 t0 時為 1，所以為了這個情況，需要乘法數 T 的存在。 step invariant 這通常相較於 impulse invariant 昰一個更好的設計方法，數位濾波器正是在取樣時有幾段不同常數的輸入，也就是由離散步階 step 組成。step invariant IIR 濾波器和同樣輸入步階訊號至 ADC 相比是較低精確度的，然而，和 impulse invariant 相比這對任何輸入而言是一個較好的近似法。 當 T z 和 T s 兩者都是步階 step 輸入時，step invariant 解決一樣取樣值的困擾，對數位濾波器的輸入為 u s，對類比濾波器的輸入是 u t，ztransform 和拉普拉斯轉對這兩個輸入作轉換以得到轉換後的輸出訊號。 ztransform 的轉換函式為 Z u ndfrac zz1 經 ztransform 的輸出 Y zT z U zT zdfrac zz1 Laplace transform 的轉換函式為 L u tdfrac 1s 經 Laplace transform 的輸出 Y sT s U sdfrac T ss 類比濾波器的輸出是 y t，就是 Y s 的拉普拉斯逆轉換。如果每經過 T 秒就被取樣一次，它就是 y n，也就是 Y z 的逆轉換。這些訊號被用來解出數位濾波器的和類比濾波器在取樣時間下有著相同輸出 以下的等式指出 T z 的解法，也就是對類比濾波器取近似的公式 T zdfrac z1z Y z T zdfrac z1z Z y n T zdfrac z1z Z Y s T zdfrac z1z Z dfrac T ss bilinear transform 雙線性變換 BLT 公式利用拉普拉斯轉換 Laplace transform 的特性：對於一個 x t 經 Laplace 轉換成的 X s 而言，它的積分在沒有初始條件下相當於 X ss。所以得出將拉普拉斯轉換的訊號乘上 1s 相當於對此訊號在時域下做積分。 然而，接下來這個不同的等式一樣也是用近似積分 x t 訊號的特性達成：利用 x nTx n。 在沒有初始條件下積分訊號相當於計算訊號下的面積 y ny n1dfrac x nx n12T 此等式告訴我們再經過一個新的數入訊號 x n 後計算新的面積 y n，就只是將先前運算的面積 y n1 加上新輸入和先前輸入的平均乘上取樣時間。藉由 z 轉換先前的等式變為以下的式子 Y zz1 Y z05 X zz1 X zT Y z1z105TX z1z1 T zdfrac Y zX zdfrac T2dfrac 1z11z1 當我們得出 X z 和 Y z 後，我們將解出 T z 先前的等式是一個數位訊號處理系統中的轉換函式，此函式將一個系統中的類比轉換函式趨近成作積分，並在分子分母同乘上 z 後開始解 s dfrac T2dfrac z1z1approxeqdfrac 1s sdfrac 2Tdfrac z1z1 這個關係被用在任何類比濾波器的拉普拉斯轉換函式，以或取近似於類比濾波器的數位無限脈衝響應 IIR 濾波器 T z。這個結果被標示在下列公式中，此公式用來運算 BLT IIR 數位濾波器，並從類比濾波器的拉普拉斯轉換函式開始運算起 T zT s_sdfrac 2Tdfrac z1z1 這條公式指出近似類比濾波器的 bilinear transform 數位 IIR 濾波器可以從把類比轉換函式 T s 中的 s 替換成和 z 的關係得出 外部連結 Kalman filter 與 IIR、FIR 比較 參見 數字訊號處理 數字濾波器 Category 數字濾波器