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

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

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

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

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

 

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

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

 從表1可知,本文與參考文獻[6]相比,MAC結(jié)構的硬件資源上要減少約29%,DA算法的也減少了約73%;與參考文獻[7]相比,MAC硬件資源減少約47%,DA減少約9%,而在運行速度方面,MAC的增加了約8%,DA的也增加了約25%;與參考文獻[8]相比,MAC的硬件資源減少約13%,DA的減少約43%。
本文采用FPGA平臺實現(xiàn)了FIR數(shù)字低通濾波器,同一個濾波器,實現(xiàn)結(jié)構不同,所耗費的資源和所能夠達到的速度完全不同。本文采用流水線技術提高了濾波器的運行速率,同時運用邏輯單元實現(xiàn)乘法運算并復用該模塊以達到減少邏輯單元消耗,并通過適當時序約束,對布局布線進行控制,通過手動布局,提高資源運用率。與其他同類型的濾波器相比,本文的MAC結(jié)構濾波器硬件資源占用減少了約30%,且運行速度增加了約19%;DA算法濾波器也減少了約41%,運行速度增加了約25%,不僅節(jié)約的硬件資源,而且提高了系統(tǒng)處理速度。
參考文獻
[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語言算法實現(xiàn)[J].無線電工程,2011,41(1):13-14.
[5] 岑光.基于FPGA的FIR數(shù)字濾波器研究與設計[D].西安:西安電子科技大學,2011.
[6] 崔亮,張芝賢.基于FPGA設計的FIR濾波器的實現(xiàn)與對比[J].電子設計工程,2012,20(20):168-170.
[7] 李仙琴,周盛,計建軍,等.基于FPGA的兩種高速高階FIR濾波器的設計與比較[J].國際生物醫(yī)學工程雜志,2008,31(6):325-329.
[8] 李飛.低資源高速度FIR濾波器設計及其FPGA實現(xiàn)[D].湘潭:湘潭大學,2011.

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