IIR數字濾波器
具有無限脈衝響應的機器
IR(Infinite Impulse Response)數字濾波器,又名無限脈衝響應數字濾波器,或遞歸濾波器。遞歸濾波器,也就是IIR數字濾波器,顧名思義,具有反饋,一般認為具有無限的脈衝響應。
IIR濾波器有以下幾個特點:
1.1、封閉函數
IIR數字濾波器的系統函數可以寫成封閉函數的形式。
1.2、IIR數字濾波器採用遞歸型結構
IIR數字濾波器採用遞歸型結構,即結構上帶有反饋環路。IIR濾波器運算結構通常由延時、乘以係數和相加等基本運算組成,可以組合成直接型、正准型、級聯型、並聯型四種結構形式,都具有反饋迴路。由於運算中的舍入處理,使誤差不斷累積,有時會產生微弱的寄生振蕩。
1.3、藉助成熟的模擬濾波器的成果
IIR數字濾波器在設計上可以藉助成熟的模擬濾波器的成果,如巴特沃斯、契比雪夫和橢圓濾波器等,有現成的設計數據或圖表可查,其設計工作量比較小,對計算工具的要求不高。在設計一個IIR數字濾波器時,我們根據指標先寫出模擬濾波器的公式,然後通過一定的變換,將模擬濾波器的公式轉換成數字濾波器的公式。
1.4、需加想為校準網路
IIR數字濾波器的相位特性不好控制,對相位要求較高時,需加相位校準網路。
IIR數字濾波器
2.1、單位響應
IIR濾波器的單位脈衝響應為無限長,網路中有反饋迴路。FIR(Finite Impulse Response)濾波器的單位脈衝響應是有限長的,一般網路中沒有反饋迴路。
2.2、幅頻特性
IIR數字濾波器幅頻特性精度很高,不是線性相位的,可以應用於對相位信息不敏感的音頻信號上;FIR數字濾波器的幅頻特性精度較之於IIR數字濾波器低,但是線性相位,就是不同頻率分量的信號經過fir濾波器后他們的時間差不變,這是很好的性質。
2.3、實時信號處理
FIR數字濾波器是有限的單位響應也有利於對數字信號的處理,便於編程,用於計算的時延也小,這對實時的信號處理很重要。
利用MATLAB信號處理工具箱中的濾波器設計和分析工具(FDATool)可以很方便地設計出符合應用要求的未經量化的IIR數字濾波器。需要將MATLAB設計出的IIR數字濾波器進一步分解和量化,從而獲得可用FPGA實現的濾波器係數。
3.1、IIR數字濾波器的設計步驟
由於採用了級聯結構,因此如何將濾波器的每一個極點和零點相組合,從而使得數字濾波器輸出所含的雜訊最小是個十分關鍵的問題。為了產生最優的量化后的IIR數字濾波器,採用如下步驟進行設計。
3.1.1、首先計算整體傳遞函數的零極點;
3.1.2、選取具有最大幅度的極點以及距離它最近的零點,使用它們組成一個二階基本節的傳遞函數;
3.1.3、對於剩下的極點和零點採用與3.2相類似的步驟,直至形成所有的二階基本節。
通過上面三步法進行的設計可以保證IIR數字濾波器中N位乘法器產生的量化舍入誤差最小。
3.2、獲得最優IIR數字濾波器係數
為了設計出可用FPGA實現的數字濾波器,需要對上一步分解獲得的二階基本節的濾波器係數進行量化,即用一個固定的字長加以表示。量化過程中由於存在不同程度的量化誤差,由此會導致濾波器的頻率響應出現偏差,嚴重時會使IIR濾波器的極點移到單位圓之外,系統因而失去穩定性。為了獲得最優的濾波器係數,採用以下步驟進行量化。
3.2.1、計算每個係數的絕對值;
3.2.2、查找出每個係數絕對值中的最大值;
3.2.3、計算比此絕對值大的最小整數;
3.2.4、對3.2.3的結果取反獲得負整數;
3.2.5、計算需要表示此整數的最小位數;
3.2.6、計算用於表示係數值分數部分的餘下位數。
與FIR數字濾波器的設計不同,IIR濾波器設計時的階數不是由設計者指定,而是根據設計者輸入的各個濾波器參數(截止頻率、通帶濾紋、阻帶衰減等),由軟體設計出滿足這些參數的最低濾波器階數。在MATLAB下設計不同類型IIR濾波器均有與之對應的函數用於階數的選擇。
3.3.1 脈衝響應不變法
步驟:
1)對已知的(s) 進行拉氏反變換,求得(t);(t) (nt)
2)對(t) 進行取樣,得(nt);
3)令h(n)=T(nt),以求得h(n);
4)對h(n) 進行Z 變換,得H(Z)。