《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > IIR數(shù)字濾波器的Matlab和FPGA實(shí)現(xiàn)[圖]
IIR數(shù)字濾波器的Matlab和FPGA實(shí)現(xiàn)[圖]
摘要: 提出一種通過(guò)兩個(gè)二階節(jié)級(jí)聯(lián)構(gòu)成四階IIR數(shù)字橢圓濾波器的設(shè)計(jì)方法,并利用Matlab仿真軟件設(shè)計(jì)了通帶內(nèi)波紋不大于0.1dB,阻帶衰減不小于42dB的IIR數(shù)字濾波器。論述了一種采用可編程邏輯器件,通過(guò)VHDL硬件描述語(yǔ)言實(shí)現(xiàn)該濾波器的方法。給出了在QuartusⅡ軟件下的仿真結(jié)果,并在FPGA器件上驗(yàn)證實(shí)現(xiàn)。實(shí)驗(yàn)證明,這種方法是切實(shí)可行的。
Abstract:
Key words :
0 引言

數(shù)字濾波器具有比模擬濾波器精度高、穩(wěn)定、體積小、重量輕、靈活、不要求阻抗匹配,以及能夠?qū)崿F(xiàn)模擬濾波器無(wú)法實(shí)現(xiàn)的特殊濾波功能等特點(diǎn),因此數(shù)字濾波器被廣泛應(yīng)用于圖像處理和識(shí)別、語(yǔ)音處理和識(shí)別、通信、雷達(dá)、人工智能、核技術(shù)等多個(gè)領(lǐng)域。

數(shù)字濾波器的實(shí)現(xiàn)方法很多,采用FPGA器件實(shí)現(xiàn)具有速度快、效率高、成本低、開(kāi)發(fā)周期短等優(yōu)點(diǎn),而且還可以直接使用Altera公司提供的FIR/IIR IP core或采用LPM的設(shè)計(jì)方法進(jìn)行設(shè)計(jì),使數(shù)字濾波器設(shè)計(jì)變得簡(jiǎn)單、可靠。本系統(tǒng)通過(guò)一個(gè)實(shí)例說(shuō)明如何通過(guò)Matlab設(shè)計(jì)并在FPGA器件上實(shí)現(xiàn)IIR橢圓函數(shù)濾波器。

1 IIR數(shù)字濾波器的Matlab設(shè)計(jì)

1.1 IIR數(shù)字濾波器設(shè)計(jì)要求

本系統(tǒng)的設(shè)計(jì)指標(biāo)如下:模擬信號(hào)采樣頻率為2MHz,每周期最少采樣20點(diǎn),即模擬信號(hào)的通帶邊緣頻率為fp=100kHz,阻帶邊緣頻率fs=200kHz,通帶波動(dòng)Rp≤0.1dB(通帶誤差不大于5%),阻帶衰減As≥42dB。換算為數(shù)字域指標(biāo)為:Wp=0.1π,Ws=0.2π,Rp=0.1dB,As=42dB。

1.2 IIR數(shù)字濾波器設(shè)計(jì)方案

(1)根據(jù)設(shè)計(jì)要求確定濾波器數(shù)字域指標(biāo)

換算為數(shù)字域指標(biāo)為:Wp=0.1π,Ws=0.2π,Rp=0.1dB,As=42dB。

(2)采用Matlab軟件設(shè)計(jì)濾波器系統(tǒng)函數(shù)

IIR濾波器系統(tǒng)函數(shù)是采用計(jì)算機(jī)輔助工程CAE工具進(jìn)行設(shè)計(jì)的。系統(tǒng)函數(shù)H(z)的計(jì)算采用Matlab軟件設(shè)計(jì)比較方便,其中有兩個(gè)現(xiàn)成的函數(shù)可以使用:ellipord(Wp/pi,Ws/pi,Rp,As)函數(shù)用來(lái)計(jì)算數(shù)字橢圓濾波器的階次N和3dB截止頻率Wn;ellip(N,Rp,As,Wn)函數(shù)可以求得直接型橢圓IIR濾波器的各個(gè)系數(shù)。

根據(jù)要求,設(shè)計(jì)采用Matlab軟件實(shí)現(xiàn)IIR濾波器的源程序如下:

IIR數(shù)字濾波器的Matlab和FPGA實(shí)現(xiàn)

利用Matlab軟件可以得到如下結(jié)果:

IIR數(shù)字濾波器的Matlab和FPGA實(shí)現(xiàn)

這是一個(gè)四階IIR系統(tǒng),通過(guò)Matlab計(jì)算出該系統(tǒng)的頻率響應(yīng)如圖1所示,可見(jiàn)能滿足設(shè)計(jì)要求。

IIR數(shù)字濾波器的Matlab和FPGA實(shí)現(xiàn)

(3)確定濾波器網(wǎng)絡(luò)結(jié)構(gòu)

本設(shè)計(jì)如果采用直接型結(jié)構(gòu)實(shí)現(xiàn),則需用的乘法器和延遲單元相對(duì)較多,而且分子和分母的系數(shù)相差較大,需要較多的二進(jìn)制位數(shù)才能實(shí)現(xiàn)相應(yīng)的精度要求。

為了克服上述缺點(diǎn),采用二階級(jí)聯(lián)實(shí)現(xiàn)。IIR濾波器采用級(jí)聯(lián)型的網(wǎng)絡(luò)結(jié)構(gòu)既可以對(duì)各基本節(jié)的零點(diǎn)、極點(diǎn)方便地單獨(dú)進(jìn)行調(diào)整,又可以降低對(duì)二進(jìn)制數(shù)位數(shù)的要求。

這里采用Matlab中的“二階部分傳遞函數(shù)”tf2sos()完成IIR濾波器直接型網(wǎng)絡(luò)結(jié)構(gòu)到級(jí)聯(lián)型網(wǎng)絡(luò)結(jié)構(gòu)的轉(zhuǎn)換。

將IIR濾波器由直接型變?yōu)榧?jí)聯(lián)型的Matlab語(yǔ)言源程序如下:

IIR數(shù)字濾波器的Matlab和FPGA實(shí)現(xiàn)

可以看出,每個(gè)二階節(jié)的分子、分母系數(shù)差異減少了。值得注意的是,在分配二階節(jié)的增益時(shí),要保證每個(gè)節(jié)不會(huì)發(fā)生運(yùn)算溢出,可以先用Matlab軟件分析計(jì)算來(lái)合理安排各節(jié)的增益。經(jīng)過(guò)計(jì)算,本文采用第一級(jí)分配0.1626,第二級(jí)分配0.0658,可以保證在要求的輸入范圍,沒(méi)有數(shù)據(jù)溢出發(fā)生。

(4)濾波器參數(shù)量化

差分方程的量化后各系數(shù)如表1所示,這里采用10位定點(diǎn)純小數(shù)補(bǔ)碼表示。

IIR數(shù)字濾波器的Matlab和FPGA實(shí)現(xiàn)

2 IIR數(shù)字濾波器的FPGA實(shí)現(xiàn)

2.1 總體設(shè)計(jì)方案

根據(jù)上述參數(shù)計(jì)算可知,需要設(shè)計(jì)的IIR濾波器為2個(gè)二階節(jié)的系統(tǒng)級(jí)聯(lián)形式,其二階節(jié)系統(tǒng)函數(shù)的差分方程均為:

IIR數(shù)字濾波器的Matlab和FPGA實(shí)現(xiàn)

可以看出,一個(gè)二階節(jié)的實(shí)現(xiàn),需要五次乘法運(yùn)算、四次加法運(yùn)算(采用二進(jìn)制補(bǔ)碼將減法運(yùn)算變?yōu)榧臃ㄟ\(yùn)算),兩個(gè)二階節(jié)共需要10次乘法運(yùn)算,所有乘法運(yùn)算均為無(wú)符號(hào)數(shù)的乘法運(yùn)算,所以使用時(shí)需要先將兩個(gè)補(bǔ)碼乘數(shù)轉(zhuǎn)換為無(wú)符號(hào)數(shù)相乘后,再將乘積轉(zhuǎn)換為補(bǔ)碼乘積輸出,送入累加器求和。根據(jù)以上設(shè)計(jì)思想可知,一個(gè)二階節(jié)系統(tǒng)均由控制模塊、移位模塊、求補(bǔ)模塊、乘法模塊和累加器模塊等模塊組成,其系統(tǒng)電路框圖如圖2所示。

IIR數(shù)字濾波器的Matlab和FPGA實(shí)現(xiàn)

由于IIR濾波器的兩個(gè)節(jié)系統(tǒng)電路結(jié)構(gòu)完全相同,只是系數(shù)不同,故另一個(gè)二階節(jié)的設(shè)計(jì)與此類似。

2.2 主要功能模塊的設(shè)計(jì)

控制模塊主要用來(lái)產(chǎn)生對(duì)其他模塊的時(shí)序控制。

累加模塊的功能是將10位×1位乘法器的5個(gè)輸出數(shù)據(jù)在10個(gè)時(shí)鐘周期內(nèi)累加后,并將結(jié)果輸出。

移位模塊主要完成數(shù)據(jù)交換功能,將輸入數(shù)據(jù)送入輸入寄存器x(n)中,同時(shí)將x(n)寄存器上一時(shí)刻的數(shù)據(jù)送入x(n-1)寄存器,同時(shí)又將x(n-1)寄存器上一時(shí)刻的數(shù)據(jù)送入x(n-2)寄存器。同理有y(n)→y(n-1)→y(n-2)。

求補(bǔ)模塊主要根據(jù)每路乘法器2個(gè)輸入數(shù)據(jù)的補(bǔ)碼,判斷輸入數(shù)據(jù)的正負(fù),設(shè)置該路乘積結(jié)果正負(fù)標(biāo)志位,并對(duì)輸入的負(fù)數(shù)進(jìn)行求補(bǔ)運(yùn)算,保證乘積是在2個(gè)無(wú)符號(hào)數(shù)之間進(jìn)行,再根據(jù)該路乘積結(jié)果正負(fù)標(biāo)志位,對(duì)乘積結(jié)果進(jìn)行求補(bǔ)運(yùn)算,保證送入累加器的數(shù)據(jù)為補(bǔ)碼。

將設(shè)計(jì)好的各模塊按照二階節(jié)系統(tǒng)電路框圖銜接,即可完成IIR濾波器其中一個(gè)二階節(jié)系統(tǒng)的設(shè)計(jì)。只要修改差分方程的系數(shù)就可完成另一個(gè)二階節(jié)系統(tǒng)的設(shè)計(jì)。

2.3 仿真結(jié)果

各功能模塊設(shè)計(jì)、調(diào)測(cè)完成之后,按照總體設(shè)計(jì)方案完成IIR濾波器的實(shí)現(xiàn),并下載到Altera公司的EP1C6Q240C8器件上驗(yàn)證,QuartusⅡ中的仿真結(jié)果如圖3所示。

IIR數(shù)字濾波器的Matlab和FPGA實(shí)現(xiàn)

圖3中:xn為輸入信號(hào),采用單極性方波周期信號(hào);頻率為100kHz,在采樣頻率為2MHz時(shí),每個(gè)周期采樣20個(gè)點(diǎn),換算成數(shù)字域頻率為0.1π;二次諧波的數(shù)字頻率為0.2π;yn為濾波輸出。觀察仿真波形可知,所設(shè)計(jì)的IIR濾波器符合設(shè)計(jì)要求。為了更直觀地觀察IIR濾波器濾波后的輸出結(jié)果,可將仿真波形文件轉(zhuǎn)換為*.tbl文件,在Matlab中描繪波形。

3 結(jié)語(yǔ)

數(shù)字濾波器的應(yīng)用十分廣泛,實(shí)現(xiàn)方法很多,運(yùn)用Matlab語(yǔ)言,能很容易地設(shè)計(jì)出具有嚴(yán)格指標(biāo)要求的數(shù)字濾波器。采用FPGA器件實(shí)現(xiàn)數(shù)字濾波器的方法,大大縮短了設(shè)計(jì)周期,降低了成本,提高了設(shè)計(jì)的可靠性、靈活性,為數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)提供了一種有效的方法。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 18禁黄网站禁片免费观看不卡| 欧美中文综合在线视频| 老司机福利深夜亚洲入口| 美女内射毛片在线看3D| 特级xxxxx欧美| 欧美a欧美1级| 我两腿被同学摸的直流水| 小说专区亚洲春色校园| 夜色资源网站www| 好男人视频在线观看免费看片| 国产精品欧美一区二区在线看| 国产免费久久精品丫丫| 动漫精品动漫一区三区3d| 亚洲日韩中文字幕天堂不卡| 久久午夜宫电影网| haodiaocao几万部精彩视频| caoporn97在线视频进入| 亚洲国产精品尤物yw在线观看| 亚洲人成人一区二区三区| 久久久久久久久亚洲| 99久久久精品免费观看国产| 高清欧美性暴力猛交| 色视频www在线播放国产人成 | 把胡萝卜立着自己坐上去| 久久午夜无码鲁丝片午夜精品| 一个人看的www免费高清中文字幕 一个人看的www在线免费视频 | 正在播放国产伦理片| 日本最新免费二区| 成人漫画免费动漫y| 在线免费观看一区二区三区| 国产乱码一区二区三区爽爽爽 | 国产一区二区三区不卡在线观看 | 亚洲精品视频在线| 久久亚洲精品无码观看不卡| a级毛片在线观看| 色婷婷免费视频| 波多野结衣有一部紧身裙女教师| 日本年轻的妈妈| 国产色视频一区| 别急慢慢来在线观看| 久久无码人妻一区二区三区|