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