黃玉健,黃永慶
(1.2.梧州學院 圖像處理與智能信息系統廣西高校重點實驗室,廣西 梧州 543002)
IIR數字濾波器,即無限脈沖響應(Infinite Impulse Response,IIR)數字濾波器是最常用的數字濾波器之一。由于IIR濾波器具有通常階數比較低長度比較短就可以實現所需功能且能以比較高的速度運行以及可以閉環設計算法等優點,它被廣泛應用于數字信號處理(DSP)系統。在非實時系統和低速系統中,IIR濾波處理可以用軟件算法實現,但是在實時高速處理系統中,用軟件算法實現IIR濾波器功能往往無法滿足要求。這時就必須要用硬件高速實現,而FPGA作為并行高速處理器件,不僅在運算處理速度上滿足要求,而且集成度高、設計靈活、穩定性高,是實時性要求高或計算量大的系統的優秀解決方案。本文論述用Matlab設計IIR級聯型數字濾波器并在FPGA上實現。
本文的組織結構如下:第2節對IIR直接型和級聯型濾波器原理進行理論分析;第3節闡述用Matlab設計并求取級聯型IIR濾波器系數;第4節闡述如何應用已經設計出的級聯型IIR濾波器系數在FPGA實現濾波功能,通過聯合Modelsim仿真和實際下載到FPGA芯片上運行來驗證設計的正確性。第5節對本文進行總結。
IIR濾波器全稱為無限脈沖響應濾波器,它的單位脈沖響應是無限長的,它的離散變換的傳遞函數如公式(1)所示:
(1)
公式(1)中,M是分子的階數,N是分母的階數,al是分母的系數,bi是分子的系數,通常N>M。把公式(1)變換成差分方程,可以得到公式(2):

(2)

從公式(2)可以得到IIR濾波器的信號流圖,結構形式如圖1所示,稱為IIR濾波器的直接Ⅰ型結構。
對于線性時不變系統的Z變換形式,交換子系統的次序,系統的函數不變。因此可以把公式(1)變換得到公式(3):
(3)
根據公式(3)得到IIR濾波器的信號流圖,結構如圖2所示,稱為IIR濾波器的直接Ⅰ型的變形。對于圖(2),由于兩個串行時延支路具有相同的輸入,因此可以合并,合并后得到下頁圖3,稱為IIR濾波器直接Ⅱ型結構。對于N階差分方程而言,相比直接Ⅰ型結構,直接Ⅱ型結構的延時單元少一半,僅需要N個延時單元。因此,直接Ⅱ型結構在用軟件實現時可以節省存儲空間,在用硬件實現時可以節省寄存器,比直接Ⅰ型結構有非常明顯的優勢。

圖1 IIR濾波器的直接Ⅰ型結構圖 圖2 IIR濾波器直接Ⅰ型結構的變形圖
從公式(1)可知,一個N階IIR濾波器系統可以用它的零點和極點表示。因為IIR濾波器系統函數的系數都是實數,所以它的零點和極點只能有兩種情況:要么是實數,要么是復共軛對。把(1)式分子分母進行因式分解,可得公式(4):
(4)

(5)

圖3 IIR濾波器直接Ⅱ型結構圖 圖4 四階IIR系統的級聯結構圖
本論文設計一個六階IIR低通以及一個六階IIR高通濾波器。設計參數為:采樣頻率fs=10MHz,截止頻率fc=3MHz,阻帶衰減60dB,濾波器系數量化位數為14位。用Matlab調用cheby2函數設計滿足參數要求的IIR濾波器,得到直接型IIR低通濾波器分母多項式系數a1=[1.0000 -1.0099 1.2239 -0.5394 0.2415 -0.0381 0.0047]和分子多項式的系數b1=[0.0269 0.0999 0.1948 0.2396 0.1948 0.0999 0.0269];直接型IIR濾波器分母多項式系數a2=[1.0000 3.0736 4.3761 3.5128 1.6615 0.4334 0.0486]和分子多項式的系數b2=[0.0063 0.0066 0.0138 -0.0129 0.0138 0.0066 0.0063]。頻率響應如下頁圖5所示。

a.低通幅頻響應 b.低通相頻響應

c.高通幅頻響應 d.高通相頻響應圖5 六階IIR濾波器頻率響應圖


由上述可知,本設計的六階IIR濾波器可用3個二階IIR濾波器級聯來實現,第3節已經對濾波器的系數進行了量化。根據級聯結構量化系數可以得到低通濾波器的差分方程,見公式(6);以及高通濾波器的差分方程,見公式(7)。
(6)
(7)
根據差分方程,可以得到二階IIR濾波器的FPGA實現結構圖[2]如下頁圖6所示。然后用3級二階IIR濾波器級聯得到六階IIR濾波器。FPGA實現后的頂層RTL原理圖如下頁圖7所示。

圖6 二階IIR濾波器的FPGA實現結構圖

圖7 六階IIR濾波器FPGA實現頂層RTL電路圖
為了驗證FPGA實現的IIR濾波器的濾波效果,對本設計分別采用Quartus II 聯合Modelsim仿真驗證和下載到FPGA器件Altera公司的Cyclone III 系列的EP3C25Q240C8芯片上實際運行濾波驗證。IIR低通濾波Modelsim仿真圖如8所示。圖中Xin為輸入頻率1MHz正弦波和4.1MHz正弦波的疊加波形經14位量化后混合波形圖,Y1out和Y2out分別是第一級和第二級濾波輸出,Yout為最終濾波輸出。下頁圖9則是IIR高通濾波Modelsim仿真圖,輸入波形參數同低通濾波輸入波形參數一樣。可以看出均達到良好濾波效果。

圖8 IIR低通濾波器濾波效果Modelsim仿真圖

圖9 IIR高通濾波器濾波效果Modelsim仿真圖
下載到FPGA芯片運行實際低通濾波效果的SignalTap II圖如圖10所示。圖10中Xin同樣為輸入頻率1MHz正弦波和4.1MHz正弦波的疊加波形經14位量化并轉換為HEX格式文件[5],后經信號發生器產生的混合波形圖[6],IIR_OUT為濾波輸出波形,同樣可以看出濾波效果也很好。

圖10 IIR低通濾波器實際運行濾波SignalTap II圖
本文用采用Matlab的切比雪夫II型函數設計出直接型IIR濾波器系數,然后再把直接型系數轉換為級聯型系數,最后采用Verilog語言在FPGA上實現。通過仿真驗證與下載運行測試的結果表明,該設計是快速可靠的,可作為高速數字濾波器設計的較好方案。