黃玉健,黃永慶
(1.2.梧州學(xué)院 圖像處理與智能信息系統(tǒng)廣西高校重點(diǎn)實(shí)驗(yàn)室,廣西 梧州 543002)
IIR數(shù)字濾波器,即無限脈沖響應(yīng)(Infinite Impulse Response,IIR)數(shù)字濾波器是最常用的數(shù)字濾波器之一。由于IIR濾波器具有通常階數(shù)比較低長(zhǎng)度比較短就可以實(shí)現(xiàn)所需功能且能以比較高的速度運(yùn)行以及可以閉環(huán)設(shè)計(jì)算法等優(yōu)點(diǎn),它被廣泛應(yīng)用于數(shù)字信號(hào)處理(DSP)系統(tǒng)。在非實(shí)時(shí)系統(tǒng)和低速系統(tǒng)中,IIR濾波處理可以用軟件算法實(shí)現(xiàn),但是在實(shí)時(shí)高速處理系統(tǒng)中,用軟件算法實(shí)現(xiàn)IIR濾波器功能往往無法滿足要求。這時(shí)就必須要用硬件高速實(shí)現(xiàn),而FPGA作為并行高速處理器件,不僅在運(yùn)算處理速度上滿足要求,而且集成度高、設(shè)計(jì)靈活、穩(wěn)定性高,是實(shí)時(shí)性要求高或計(jì)算量大的系統(tǒng)的優(yōu)秀解決方案。本文論述用Matlab設(shè)計(jì)IIR級(jí)聯(lián)型數(shù)字濾波器并在FPGA上實(shí)現(xiàn)。
本文的組織結(jié)構(gòu)如下:第2節(jié)對(duì)IIR直接型和級(jí)聯(lián)型濾波器原理進(jìn)行理論分析;第3節(jié)闡述用Matlab設(shè)計(jì)并求取級(jí)聯(lián)型IIR濾波器系數(shù);第4節(jié)闡述如何應(yīng)用已經(jīng)設(shè)計(jì)出的級(jí)聯(lián)型IIR濾波器系數(shù)在FPGA實(shí)現(xiàn)濾波功能,通過聯(lián)合Modelsim仿真和實(shí)際下載到FPGA芯片上運(yùn)行來驗(yàn)證設(shè)計(jì)的正確性。第5節(jié)對(duì)本文進(jìn)行總結(jié)。
IIR濾波器全稱為無限脈沖響應(yīng)濾波器,它的單位脈沖響應(yīng)是無限長(zhǎng)的,它的離散變換的傳遞函數(shù)如公式(1)所示:
(1)
公式(1)中,M是分子的階數(shù),N是分母的階數(shù),al是分母的系數(shù),bi是分子的系數(shù),通常N>M。把公式(1)變換成差分方程,可以得到公式(2):
(2)
從公式(2)可以得到IIR濾波器的信號(hào)流圖,結(jié)構(gòu)形式如圖1所示,稱為IIR濾波器的直接Ⅰ型結(jié)構(gòu)。
對(duì)于線性時(shí)不變系統(tǒng)的Z變換形式,交換子系統(tǒng)的次序,系統(tǒng)的函數(shù)不變。因此可以把公式(1)變換得到公式(3):
(3)
根據(jù)公式(3)得到IIR濾波器的信號(hào)流圖,結(jié)構(gòu)如圖2所示,稱為IIR濾波器的直接Ⅰ型的變形。對(duì)于圖(2),由于兩個(gè)串行時(shí)延支路具有相同的輸入,因此可以合并,合并后得到下頁圖3,稱為IIR濾波器直接Ⅱ型結(jié)構(gòu)。對(duì)于N階差分方程而言,相比直接Ⅰ型結(jié)構(gòu),直接Ⅱ型結(jié)構(gòu)的延時(shí)單元少一半,僅需要N個(gè)延時(shí)單元。因此,直接Ⅱ型結(jié)構(gòu)在用軟件實(shí)現(xiàn)時(shí)可以節(jié)省存儲(chǔ)空間,在用硬件實(shí)現(xiàn)時(shí)可以節(jié)省寄存器,比直接Ⅰ型結(jié)構(gòu)有非常明顯的優(yōu)勢(shì)。
圖1 IIR濾波器的直接Ⅰ型結(jié)構(gòu)圖 圖2 IIR濾波器直接Ⅰ型結(jié)構(gòu)的變形圖
從公式(1)可知,一個(gè)N階IIR濾波器系統(tǒng)可以用它的零點(diǎn)和極點(diǎn)表示。因?yàn)镮IR濾波器系統(tǒng)函數(shù)的系數(shù)都是實(shí)數(shù),所以它的零點(diǎn)和極點(diǎn)只能有兩種情況:要么是實(shí)數(shù),要么是復(fù)共軛對(duì)。把(1)式分子分母進(jìn)行因式分解,可得公式(4):
(4)
(5)
圖3 IIR濾波器直接Ⅱ型結(jié)構(gòu)圖 圖4 四階IIR系統(tǒng)的級(jí)聯(lián)結(jié)構(gòu)圖
本論文設(shè)計(jì)一個(gè)六階IIR低通以及一個(gè)六階IIR高通濾波器。設(shè)計(jì)參數(shù)為:采樣頻率fs=10MHz,截止頻率fc=3MHz,阻帶衰減60dB,濾波器系數(shù)量化位數(shù)為14位。用Matlab調(diào)用cheby2函數(shù)設(shè)計(jì)滿足參數(shù)要求的IIR濾波器,得到直接型IIR低通濾波器分母多項(xiàng)式系數(shù)a1=[1.0000 -1.0099 1.2239 -0.5394 0.2415 -0.0381 0.0047]和分子多項(xiàng)式的系數(shù)b1=[0.0269 0.0999 0.1948 0.2396 0.1948 0.0999 0.0269];直接型IIR濾波器分母多項(xiàng)式系數(shù)a2=[1.0000 3.0736 4.3761 3.5128 1.6615 0.4334 0.0486]和分子多項(xiàng)式的系數(shù)b2=[0.0063 0.0066 0.0138 -0.0129 0.0138 0.0066 0.0063]。頻率響應(yīng)如下頁圖5所示。
a.低通幅頻響應(yīng) b.低通相頻響應(yīng)
c.高通幅頻響應(yīng) d.高通相頻響應(yīng)圖5 六階IIR濾波器頻率響應(yīng)圖
由上述可知,本設(shè)計(jì)的六階IIR濾波器可用3個(gè)二階IIR濾波器級(jí)聯(lián)來實(shí)現(xiàn),第3節(jié)已經(jīng)對(duì)濾波器的系數(shù)進(jìn)行了量化。根據(jù)級(jí)聯(lián)結(jié)構(gòu)量化系數(shù)可以得到低通濾波器的差分方程,見公式(6);以及高通濾波器的差分方程,見公式(7)。
(6)
(7)
根據(jù)差分方程,可以得到二階IIR濾波器的FPGA實(shí)現(xiàn)結(jié)構(gòu)圖[2]如下頁圖6所示。然后用3級(jí)二階IIR濾波器級(jí)聯(lián)得到六階IIR濾波器。FPGA實(shí)現(xiàn)后的頂層RTL原理圖如下頁圖7所示。
圖6 二階IIR濾波器的FPGA實(shí)現(xiàn)結(jié)構(gòu)圖
圖7 六階IIR濾波器FPGA實(shí)現(xiàn)頂層RTL電路圖
為了驗(yàn)證FPGA實(shí)現(xiàn)的IIR濾波器的濾波效果,對(duì)本設(shè)計(jì)分別采用Quartus II 聯(lián)合Modelsim仿真驗(yàn)證和下載到FPGA器件Altera公司的Cyclone III 系列的EP3C25Q240C8芯片上實(shí)際運(yùn)行濾波驗(yàn)證。IIR低通濾波Modelsim仿真圖如8所示。圖中Xin為輸入頻率1MHz正弦波和4.1MHz正弦波的疊加波形經(jīng)14位量化后混合波形圖,Y1out和Y2out分別是第一級(jí)和第二級(jí)濾波輸出,Yout為最終濾波輸出。下頁圖9則是IIR高通濾波Modelsim仿真圖,輸入波形參數(shù)同低通濾波輸入波形參數(shù)一樣??梢钥闯鼍_(dá)到良好濾波效果。
圖8 IIR低通濾波器濾波效果Modelsim仿真圖
圖9 IIR高通濾波器濾波效果Modelsim仿真圖
下載到FPGA芯片運(yùn)行實(shí)際低通濾波效果的SignalTap II圖如圖10所示。圖10中Xin同樣為輸入頻率1MHz正弦波和4.1MHz正弦波的疊加波形經(jīng)14位量化并轉(zhuǎn)換為HEX格式文件[5],后經(jīng)信號(hào)發(fā)生器產(chǎn)生的混合波形圖[6],IIR_OUT為濾波輸出波形,同樣可以看出濾波效果也很好。
圖10 IIR低通濾波器實(shí)際運(yùn)行濾波SignalTap II圖
本文用采用Matlab的切比雪夫II型函數(shù)設(shè)計(jì)出直接型IIR濾波器系數(shù),然后再把直接型系數(shù)轉(zhuǎn)換為級(jí)聯(lián)型系數(shù),最后采用Verilog語言在FPGA上實(shí)現(xiàn)。通過仿真驗(yàn)證與下載運(yùn)行測(cè)試的結(jié)果表明,該設(shè)計(jì)是快速可靠的,可作為高速數(shù)字濾波器設(shè)計(jì)的較好方案。