《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的FIR濾波器設(shè)計(jì)與實(shí)現(xiàn)
基于FPGA的FIR濾波器設(shè)計(jì)與實(shí)現(xiàn)
來源:微型機(jī)與應(yīng)用2013年第23期
馬維華,謝虎城,梁赫西
(湖北師范學(xué)院 文理學(xué)院 信息工程系,湖北 黃石 435002)
摘要: 采用并行分布式算法和MAC算法給出了FIR濾波器的FPGA實(shí)現(xiàn)。以32階FIR濾波器的設(shè)計(jì)為例,采用Altera公司Cyclone II系列的EP2C35F672C8 FPGA作為硬件平臺(tái),通過Modelsim、Quartus II、MATLAB軟件平臺(tái)對(duì)設(shè)計(jì)進(jìn)行了聯(lián)合仿真測(cè)試分析及驗(yàn)證。結(jié)果顯示,該設(shè)計(jì)達(dá)到了指標(biāo)要求,功能正確,資源占用及處理速度均得到了優(yōu)化。
關(guān)鍵詞: FPGA 分布式算法 FIR濾波器
Abstract:
Key words :

摘  要: 采用并行分布式算法和MAC算法給出了FIR濾波器FPGA實(shí)現(xiàn)。以32階FIR濾波器的設(shè)計(jì)為例,采用Altera公司Cyclone II系列的EP2C35F672C8 FPGA作為硬件平臺(tái),通過Modelsim、Quartus II、MATLAB軟件平臺(tái)對(duì)設(shè)計(jì)進(jìn)行了聯(lián)合仿真測(cè)試分析及驗(yàn)證。結(jié)果顯示,該設(shè)計(jì)達(dá)到了指標(biāo)要求,功能正確,資源占用及處理速度均得到了優(yōu)化。
 關(guān)鍵詞: FPGA;分布式算法;FIR濾波器

 現(xiàn)場(chǎng)可編程門陣列FPGA(Field-Programmable Gate Array)在器件密度、處理速度等達(dá)到片上系統(tǒng)的要求后,其具有系統(tǒng)內(nèi)可重構(gòu)的特性成為實(shí)現(xiàn)DSP應(yīng)用的優(yōu)選方案之一。而且國外有許多院校和科研機(jī)構(gòu)都在研究FPGA與DSP的應(yīng)用,實(shí)現(xiàn)了FPGA在電機(jī)轉(zhuǎn)子控制設(shè)備[1]、三相數(shù)字信號(hào)處理[2]、宇宙射線射頻干擾[3]等研究上的突破。FPGA的DSP解決方案為數(shù)字信號(hào)處理開創(chuàng)了新的領(lǐng)域,使得構(gòu)造的數(shù)字信號(hào)處理系統(tǒng)既能夠保持基于軟件解決方案的靈活性,又能接近ASIC的性能。數(shù)字濾波器是數(shù)字信號(hào)處理的重要組成部分,其實(shí)質(zhì)是用有限精度算法實(shí)現(xiàn)的離散線性時(shí)不變系統(tǒng)對(duì)數(shù)字信號(hào)進(jìn)行濾波處理[4]。數(shù)字濾波器根據(jù)其單位沖激響應(yīng)函數(shù)的時(shí)域特性可分為無限沖激響應(yīng)(IIR)濾波器和有限沖激響應(yīng)(FIR)濾波器兩類。FIR濾波器是有限長單位沖激響應(yīng)非遞歸型濾波器。它可以在幅度特性隨意設(shè)計(jì)的同時(shí),保證精確嚴(yán)格的線性相位,廣泛應(yīng)用于數(shù)字信號(hào)處理系統(tǒng)中。
1 FIR濾波器基本原理
 FIR濾波器是數(shù)字信號(hào)處理系統(tǒng)中最基本的元件,它可以在保證任意幅頻特性的同時(shí)具有嚴(yán)格的線性相頻特性,同時(shí)其單位抽樣響應(yīng)是有限長的,其具有以下特點(diǎn)。
?。?)系統(tǒng)的單位沖激響應(yīng)h(n)在有限個(gè)n值處不為零。
?。?)系統(tǒng)函數(shù)H(z)在|z|>0處收斂,極點(diǎn)全部在z=0處(因果系統(tǒng))。
?。?)結(jié)構(gòu)上主要是非遞歸結(jié)構(gòu),沒有輸出到輸入的反饋,但有些結(jié)構(gòu)中(例如頻率抽樣結(jié)構(gòu))也包含有反饋的遞歸部分。

 本文基于MAC的FIR濾波器采用了32個(gè)寄存器,分別寄存輸入的32個(gè)8位寬數(shù)據(jù),然后通過MAC結(jié)構(gòu)將數(shù)據(jù)與MATLAB計(jì)算的H(n)系數(shù)進(jìn)行乘法運(yùn)算,將結(jié)果累加,輸出累加和數(shù)據(jù)并向右移動(dòng)7位,舍棄后7位,即縮小128倍。出于FPGA不便于處理浮點(diǎn)型數(shù)據(jù),在濾波器的參數(shù)上擴(kuò)大了128倍,而使得最終的MAC結(jié)構(gòu)輸出的數(shù)據(jù)都擴(kuò)大了相同的倍數(shù),于是在這里舍棄后7位數(shù)據(jù),從而實(shí)現(xiàn)縮小128倍的效果,使得輸出正確的輸出信號(hào)。
 通過Modelsim導(dǎo)入在濾波器設(shè)計(jì)中MATLAB自動(dòng)產(chǎn)生的Modelsim的通用Testbench文件,利用這個(gè)Testbench文件作為本文設(shè)計(jì)的FIR低通濾波器的測(cè)試激勵(lì)文件。仿真結(jié)果如圖4所示,高頻部分被濾除,保留了低頻信號(hào)部分。

 通過綜合測(cè)試可知,在資源占用方面,本FIR濾波器僅占用556個(gè)邏輯單元(LE),216個(gè)寄存器資源以及203 bit的存儲(chǔ)資源。資源占用皆不到5%,占用面積極小。同時(shí)在速度方面,本FIR濾波器能夠工作的最高頻率Fmax為195.73 MHz,工作速度也能夠達(dá)到設(shè)計(jì)要求。
3  基于并行分布式算法的FIR濾波器
 基于分布式算法(DA)的計(jì)算最顯然而直接的形式是位串行,對(duì)基本算法的擴(kuò)展可消除這一潛在的吞吐能力限制[5]。位串行處理數(shù)據(jù)可得到適中的運(yùn)算速度。若輸入變量長度為N位,則需要N個(gè)時(shí)鐘周期來完成一次內(nèi)積計(jì)算。提高運(yùn)算速度常見方法是將輸入字段分割成L個(gè)子字段,然后并行處理這些子字段。該方法需要L倍的存儲(chǔ)查找表,從而導(dǎo)致存儲(chǔ)需求和成本的直線上升。通過將輸入變量分解為一位子字段可獲得最大速度。通過這種分解,每一時(shí)鐘周期就可計(jì)算出一個(gè)新的輸出采樣。采用MATLAB的Filter Design HDL CODER工具箱的數(shù)字濾波器設(shè)計(jì)軟件模塊FDATool(Filter Design & Analysis Tool)進(jìn)行設(shè)計(jì),設(shè)定指標(biāo)如下:Beta值為0.5的Kaiser窗函數(shù),采樣頻率為5 MHz,截止頻率為1.5 MHz,階數(shù)為32階。得到FIR的濾波器系數(shù)H(n),將H(n)擴(kuò)大128倍,再表示為8位二進(jìn)制補(bǔ)碼,以便于作為該低通濾波器的系數(shù),同時(shí)在濾波器的輸出,將輸出結(jié)果向右移動(dòng)7位,以縮小128倍,達(dá)到正確輸出結(jié)果。
 采用MATLAB平臺(tái),對(duì)FIR濾波器進(jìn)行建模,并配置相應(yīng)濾波器參數(shù)。采用頻率為0.5 MHz的正弦波和一個(gè)隨機(jī)噪聲,通過疊加合成后輸入到設(shè)計(jì)的FIR濾波器,得到輸入輸出波形,該FIR濾波器能夠很好地去除高頻部分,保留低頻信號(hào),其結(jié)構(gòu)如圖5所示。

 

 通過DSP Builder的交叉編譯平臺(tái),在經(jīng)過分析綜合、編譯仿真等流程后得到本設(shè)計(jì)的32階FIR濾波器在FPGA上的具體實(shí)現(xiàn)結(jié)構(gòu)。
 編譯綜合后,再次加入兩正弦波,頻率分別為0.5 MHz和2 MHz,疊加合成后通過實(shí)例化后的FIR濾波器,濾波結(jié)果如圖6所示。可見,本FIR濾波器成功濾除高頻信號(hào)成分,保留了低頻信號(hào)。
通過Quartus II布局布線及綜合仿真,F(xiàn)IR濾波器最終適配到FPGA中,系統(tǒng)占用1 042個(gè)邏輯單元(LE),寄存器為274個(gè)??蛇_(dá)到的最大工作頻率Fmax為236.13 MHz,設(shè)計(jì)占用邏輯資源較少,工作頻率較高,完全符合設(shè)計(jì)目標(biāo)。

 本文設(shè)計(jì)的FIR濾波器的兩種方案中,濾波器的階數(shù)均為32階,兩種方案均在Altera公司的Cyclone II系列EP2C35F672C8 FPGA芯片上實(shí)現(xiàn),采用Quartus II 11.1綜合布局布線后,所占用的硬件資源總結(jié)如表1所示。

 從表1可知,本文與參考文獻(xiàn)[6]相比,MAC結(jié)構(gòu)的硬件資源上要減少約29%,DA算法的也減少了約73%;與參考文獻(xiàn)[7]相比,MAC硬件資源減少約47%,DA減少約9%,而在運(yùn)行速度方面,MAC的增加了約8%,DA的也增加了約25%;與參考文獻(xiàn)[8]相比,MAC的硬件資源減少約13%,DA的減少約43%。
本文采用FPGA平臺(tái)實(shí)現(xiàn)了FIR數(shù)字低通濾波器,同一個(gè)濾波器,實(shí)現(xiàn)結(jié)構(gòu)不同,所耗費(fèi)的資源和所能夠達(dá)到的速度完全不同。本文采用流水線技術(shù)提高了濾波器的運(yùn)行速率,同時(shí)運(yùn)用邏輯單元實(shí)現(xiàn)乘法運(yùn)算并復(fù)用該模塊以達(dá)到減少邏輯單元消耗,并通過適當(dāng)時(shí)序約束,對(duì)布局布線進(jìn)行控制,通過手動(dòng)布局,提高資源運(yùn)用率。與其他同類型的濾波器相比,本文的MAC結(jié)構(gòu)濾波器硬件資源占用減少了約30%,且運(yùn)行速度增加了約19%;DA算法濾波器也減少了約41%,運(yùn)行速度增加了約25%,不僅節(jié)約的硬件資源,而且提高了系統(tǒng)處理速度。
參考文獻(xiàn)
[1] MORALES-CAPORAL R, BONILLA-HUERTA E, HERNANDEZ C, et al. Transducerless acquisition of the rotor position for predictive torque controlled PM synchronous machines based on a DSP-FPGA digital system[C]. IEEE Transactions on Industrial Informatics, 2013,9(2): 799-807.
[2] NASCIMENTO P S B, NEVES F A S, DOMINGUES M A O. FPGA design methodology for DSP industrial applications A case study of a three phase positive sequence detector[C]. 2012 25th Symposium on Integrated Circuits and Systems Design (SBCCI), 2012:1-6.
[3] SZADKOWSKI Z, FRAENKEL E D. FPGA/NIOS implementation of an adaptive FIR filter using linear prediction to reduce narrow band RFI for radio detection of cosmic rays[C]. Real Time Conference(RT), 2012 18th IEEE-NPSS, 2012:1-8.
[4] 史明泉.基于DSP的FIR濾波器的C語言算法實(shí)現(xiàn)[J].無線電工程,2011,41(1):13-14.
[5] 岑光.基于FPGA的FIR數(shù)字濾波器研究與設(shè)計(jì)[D].西安:西安電子科技大學(xué),2011.
[6] 崔亮,張芝賢.基于FPGA設(shè)計(jì)的FIR濾波器的實(shí)現(xiàn)與對(duì)比[J].電子設(shè)計(jì)工程,2012,20(20):168-170.
[7] 李仙琴,周盛,計(jì)建軍,等.基于FPGA的兩種高速高階FIR濾波器的設(shè)計(jì)與比較[J].國際生物醫(yī)學(xué)工程雜志,2008,31(6):325-329.
[8] 李飛.低資源高速度FIR濾波器設(shè)計(jì)及其FPGA實(shí)現(xiàn)[D].湘潭:湘潭大學(xué),2011.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。