王 艷
華南師范大學(xué)物理與電信工程學(xué)院,廣東廣州 510006
基于FPGA的高速FIR濾波器設(shè)計(jì)
王 艷
華南師范大學(xué)物理與電信工程學(xué)院,廣東廣州 510006
在數(shù)字無(wú)線(xiàn)電中,高速的FIR濾波器起到重要的作用。因此,提出了一種基于FPGA的高速FIR濾波器設(shè)計(jì)方案,并采用Quartus II軟件和Matlab軟件對(duì)該方案進(jìn)行了開(kāi)發(fā)、仿真和驗(yàn)證。該方案設(shè)計(jì)的FIR濾波器具有運(yùn)算速度快、實(shí)時(shí)性好和節(jié)省硬件資源的特點(diǎn),能廣泛應(yīng)用于各種濾波領(lǐng)域。
FPGA;FIR濾波器;Verilog HDL;Matlab
在現(xiàn)代信號(hào)處理和電子應(yīng)用技術(shù)領(lǐng)域,系統(tǒng)的設(shè)計(jì)正朝著高速、實(shí)時(shí)的方向發(fā)展。在數(shù)字系統(tǒng)中,特別是在無(wú)線(xiàn)通信系統(tǒng)中,除A/D轉(zhuǎn)換前的抗混疊濾波和D/A轉(zhuǎn)換之后的抗鏡像濾波必須采用模擬濾波器外,其它場(chǎng)合可以?xún)?yōu)先采用數(shù)字濾波器。而濾波器主要作為系統(tǒng)的前端部分,對(duì)信號(hào)進(jìn)行預(yù)處理。濾波性能的優(yōu)劣直接影響著下一級(jí)的信號(hào)處理。因此,高性能的濾波器在系統(tǒng)中占據(jù)著重要位置。
FIR濾波器由于具有嚴(yán)格的線(xiàn)性相位特性以及易于實(shí)現(xiàn)等特點(diǎn)在數(shù)字信號(hào)處理中被廣泛應(yīng)用。目前FIR濾波器主要有3種實(shí)現(xiàn)方式:第1種,采用DSP處理器實(shí)現(xiàn);第2種,采用專(zhuān)用信號(hào)處理芯片實(shí)現(xiàn);第3種,采用可編程邏輯器件FPGA實(shí)現(xiàn)。第1種實(shí)現(xiàn)方式使用靈活,但是由于其結(jié)構(gòu)的限制不能進(jìn)行并行運(yùn)算,對(duì)于FIR階數(shù)較高或者數(shù)據(jù)位寬較寬的情形,處理速度通常無(wú)法滿(mǎn)足實(shí)時(shí)性的要求;第2種實(shí)現(xiàn)方式實(shí)時(shí)性好,由于其通用性差,經(jīng)常無(wú)法滿(mǎn)足特定的濾波需求;第3種實(shí)現(xiàn)方式,由于FPGA具有高邏輯密度、可編程以及能夠可并行計(jì)算等優(yōu)點(diǎn),能夠很好地滿(mǎn)足通用性和實(shí)時(shí)性的要求。因此,采用FPGA實(shí)現(xiàn)FIR濾波器成為高性能FIR濾波器的優(yōu)選方案。
1.1 數(shù)字濾波器的分類(lèi)
數(shù)字濾波器是從分析信號(hào)提取用戶(hù)需要的信息,濾去不需要的信號(hào)成分或者干擾成分??梢詮臅r(shí)域或頻域進(jìn)行信號(hào)濾波設(shè)計(jì)。時(shí)域?yàn)V波主要是根據(jù)信號(hào)和噪聲之間的統(tǒng)計(jì)特性差異完成濾波的。頻域?yàn)V波是要提取或抑制所分析信號(hào)中某些頻帶的信號(hào)成分,要求信號(hào)和被濾除的信號(hào)在頻域具有可分性。
1.2 數(shù)字濾波器的數(shù)學(xué)模型
線(xiàn)性時(shí)不變數(shù)字濾波器的數(shù)學(xué)模型有多表示方法,在時(shí)域中可以用線(xiàn)性常系數(shù)差分方程給出:
其等效的Z域傳遞函數(shù)為:
當(dāng)dk值不全為零時(shí),該濾波器Z域系統(tǒng)函數(shù)至少包含一個(gè)極點(diǎn),此時(shí)相應(yīng)的單位脈沖必定無(wú)限長(zhǎng),所以常被稱(chēng)為無(wú)限沖激響應(yīng)(IIR)數(shù)字濾波器。對(duì)于一個(gè)穩(wěn)定的數(shù)字系統(tǒng),極點(diǎn)必須都在單位圓內(nèi)部。當(dāng)dk值全為0時(shí),Z域系統(tǒng)函數(shù)只有零點(diǎn),數(shù)字濾波器的單位沖激響應(yīng)有限,通常被稱(chēng)為有限沖激響應(yīng)(FIR)濾波器。
FIR濾波器有直接型、級(jí)聯(lián)型和頻率抽樣型三種基本結(jié)構(gòu),其中直接型是最常見(jiàn)的結(jié)構(gòu),其差分方程表達(dá)式為:
式中,N是濾波器的階數(shù)??梢钥吹?,F(xiàn)IR濾波器的輸出是x(n)與單位脈沖響應(yīng)h(n)的直接卷積。這種結(jié)構(gòu)也稱(chēng)為抽頭延遲線(xiàn)結(jié)構(gòu),在實(shí)現(xiàn)的過(guò)程中,每一抽頭的信號(hào)被適當(dāng)?shù)南禂?shù)(脈沖響應(yīng))加權(quán),然后將所得乘積相加就得到輸出y(n)。
線(xiàn)性相位FIR濾波器的結(jié)構(gòu)如圖1所示:
圖1 FIR濾波器結(jié)構(gòu)圖
3.1 FIR濾波器的設(shè)計(jì)流程
FIR濾波器的設(shè)計(jì)流程如圖2,先確定濾波器的特性要求,借助Matlab數(shù)學(xué)軟件計(jì)算抽頭系數(shù),在Quartus II軟件上用硬件描述語(yǔ)言進(jìn)行邏輯設(shè)計(jì),用第三方仿真軟件Modelsim進(jìn)行功能仿真和時(shí)序仿真,最后把程序下載到開(kāi)發(fā)板上進(jìn)行測(cè)試。
圖2 FIR濾波器設(shè)計(jì)流程圖
3.2 FIR濾波器設(shè)計(jì)舉例
本文以設(shè)計(jì)一個(gè)低通濾波器為例,按系統(tǒng)設(shè)計(jì)的要求,F(xiàn)IR濾波器的設(shè)計(jì)指標(biāo)確定如表1。
采樣頻率輸入數(shù)據(jù)寬度截止頻率階數(shù)類(lèi)型系數(shù)寬度32KHz 16位2KHz 51階低通12位
FIR濾波器的沖激響應(yīng)h(n)的確定主要有頻率抽樣法、最佳一致法和采用窗函數(shù)法。其中采用窗函數(shù)法是一種較為成熟的方法,本文選擇的窗函數(shù)是Kaiser窗。具體實(shí)現(xiàn)是使用MATLAB軟件中start目錄下Toolboxes工具箱中的Filter Design的Filter Design& Analysis Tool(FDA Too1),調(diào)用濾波函數(shù)fir1(),選擇相應(yīng)的參數(shù):濾波器類(lèi)型,窗類(lèi)型,采用頻率Fs,截止頻率Fc,階數(shù),即可以得到符合設(shè)計(jì)指標(biāo)的51階線(xiàn)性相位FIR數(shù)字低通濾波器的特征參數(shù)。設(shè)計(jì)代碼如下:
grid
xlabel('頻率Hz');
ylabel('幅度dB');
圖3是由以上代碼得出51階FIR濾波器幅頻特性圖,信號(hào)在2kHz時(shí)開(kāi)始進(jìn)入過(guò)渡帶。
圖3 FIR濾波器的幅頻特性圖
3.3 FIR濾波器的FPGA實(shí)現(xiàn)
圖4 RTL級(jí)設(shè)計(jì)圖
圖4是用Verilog HDL語(yǔ)言描述的RTL級(jí)功能圖,F(xiàn)irRom模塊存儲(chǔ)h(n)系數(shù)表,F(xiàn)irRam模塊存儲(chǔ)每一個(gè)輸入的樣本數(shù)據(jù),Mult模塊實(shí)現(xiàn)乘法功能,F(xiàn)ir51是總控制模塊,使每一次輸入,對(duì)51個(gè)數(shù)據(jù)進(jìn)行加權(quán)運(yùn)算。
3.4 FIR濾波器仿真結(jié)果分析
圖5所示,輸入信號(hào)是一個(gè)方波,經(jīng)過(guò)FIR濾波器后,輸出信號(hào)為一正弦波。仿真結(jié)果表明,此FIR濾波器能夠?qū)崟r(shí)工作,并對(duì)輸入信號(hào)進(jìn)行有效選擇,濾除截止頻率以上的高頻信號(hào)。
圖5 仿真圖
FIR濾波器在數(shù)字信號(hào)處理領(lǐng)域有著廣泛的應(yīng)用。本文采用高速對(duì)稱(chēng)型算法設(shè)計(jì)了51階的低通濾波器,并在FPGA上進(jìn)行了系統(tǒng)仿真。仿真結(jié)果表明該方法不僅提高系統(tǒng)的運(yùn)算速度而且占有較少的硬件資源,另外可以通過(guò)修改查找表的內(nèi)容,很容易實(shí)現(xiàn)同階數(shù)的高通,帶通濾波器。
[1]王學(xué)梅.基于FPGA的有限7沖激響應(yīng)數(shù)字濾波器的研究及實(shí)現(xiàn)[D].長(zhǎng)沙:中南大學(xué),2004.
[2]李明偉,黃世震.應(yīng)用分布式算法在FPGA平臺(tái)上實(shí)現(xiàn)FIR低通濾波器[J].中國(guó)集成電路,2007,2:50-51.
[3][美]John G,Proakis,Dimitris( Manolakis).數(shù)字信號(hào)處理[M].4版.北京:電子工業(yè)出版社,2007.
[4]劉海兵,劉雄飛,張德恒.基于FPGA的數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2006,29(15):70-71.
TN911
A
1674-6708(2011)34-0201-02