王 艷
華南師范大學物理與電信工程學院,廣東廣州 510006
基于FPGA的高速FIR濾波器設計
王 艷
華南師范大學物理與電信工程學院,廣東廣州 510006
在數字無線電中,高速的FIR濾波器起到重要的作用。因此,提出了一種基于FPGA的高速FIR濾波器設計方案,并采用Quartus II軟件和Matlab軟件對該方案進行了開發、仿真和驗證。該方案設計的FIR濾波器具有運算速度快、實時性好和節省硬件資源的特點,能廣泛應用于各種濾波領域。
FPGA;FIR濾波器;Verilog HDL;Matlab
在現代信號處理和電子應用技術領域,系統的設計正朝著高速、實時的方向發展。在數字系統中,特別是在無線通信系統中,除A/D轉換前的抗混疊濾波和D/A轉換之后的抗鏡像濾波必須采用模擬濾波器外,其它場合可以優先采用數字濾波器。而濾波器主要作為系統的前端部分,對信號進行預處理。濾波性能的優劣直接影響著下一級的信號處理。因此,高性能的濾波器在系統中占據著重要位置。
FIR濾波器由于具有嚴格的線性相位特性以及易于實現等特點在數字信號處理中被廣泛應用。目前FIR濾波器主要有3種實現方式:第1種,采用DSP處理器實現;第2種,采用專用信號處理芯片實現;第3種,采用可編程邏輯器件FPGA實現。第1種實現方式使用靈活,但是由于其結構的限制不能進行并行運算,對于FIR階數較高或者數據位寬較寬的情形,處理速度通常無法滿足實時性的要求;第2種實現方式實時性好,由于其通用性差,經常無法滿足特定的濾波需求;第3種實現方式,由于FPGA具有高邏輯密度、可編程以及能夠可并行計算等優點,能夠很好地滿足通用性和實時性的要求。因此,采用FPGA實現FIR濾波器成為高性能FIR濾波器的優選方案。
1.1 數字濾波器的分類
數字濾波器是從分析信號提取用戶需要的信息,濾去不需要的信號成分或者干擾成分。可以從時域或頻域進行信號濾波設計。時域濾波主要是根據信號和噪聲之間的統計特性差異完成濾波的。頻域濾波是要提取或抑制所分析信號中某些頻帶的信號成分,要求信號和被濾除的信號在頻域具有可分性。
1.2 數字濾波器的數學模型
線性時不變數字濾波器的數學模型有多表示方法,在時域中可以用線性常系數差分方程給出:

其等效的Z域傳遞函數為:
當dk值不全為零時,該濾波器Z域系統函數至少包含一個極點,此時相應的單位脈沖必定無限長,所以常被稱為無限沖激響應(IIR)數字濾波器。對于一個穩定的數字系統,極點必須都在單位圓內部。當dk值全為0時,Z域系統函數只有零點,數字濾波器的單位沖激響應有限,通常被稱為有限沖激響應(FIR)濾波器。
FIR濾波器有直接型、級聯型和頻率抽樣型三種基本結構,其中直接型是最常見的結構,其差分方程表達式為:

式中,N是濾波器的階數。可以看到,FIR濾波器的輸出是x(n)與單位脈沖響應h(n)的直接卷積。這種結構也稱為抽頭延遲線結構,在實現的過程中,每一抽頭的信號被適當的系數(脈沖響應)加權,然后將所得乘積相加就得到輸出y(n)。
線性相位FIR濾波器的結構如圖1所示:

圖1 FIR濾波器結構圖
3.1 FIR濾波器的設計流程
FIR濾波器的設計流程如圖2,先確定濾波器的特性要求,借助Matlab數學軟件計算抽頭系數,在Quartus II軟件上用硬件描述語言進行邏輯設計,用第三方仿真軟件Modelsim進行功能仿真和時序仿真,最后把程序下載到開發板上進行測試。

圖2 FIR濾波器設計流程圖
3.2 FIR濾波器設計舉例
本文以設計一個低通濾波器為例,按系統設計的要求,FIR濾波器的設計指標確定如表1。

采樣頻率輸入數據寬度截止頻率階數類型系數寬度32KHz 16位2KHz 51階低通12位
FIR濾波器的沖激響應h(n)的確定主要有頻率抽樣法、最佳一致法和采用窗函數法。其中采用窗函數法是一種較為成熟的方法,本文選擇的窗函數是Kaiser窗。具體實現是使用MATLAB軟件中start目錄下Toolboxes工具箱中的Filter Design的Filter Design& Analysis Tool(FDA Too1),調用濾波函數fir1(),選擇相應的參數:濾波器類型,窗類型,采用頻率Fs,截止頻率Fc,階數,即可以得到符合設計指標的51階線性相位FIR數字低通濾波器的特征參數。設計代碼如下:

grid
xlabel('頻率Hz');
ylabel('幅度dB');
圖3是由以上代碼得出51階FIR濾波器幅頻特性圖,信號在2kHz時開始進入過渡帶。

圖3 FIR濾波器的幅頻特性圖
3.3 FIR濾波器的FPGA實現

圖4 RTL級設計圖
圖4是用Verilog HDL語言描述的RTL級功能圖,FirRom模塊存儲h(n)系數表,FirRam模塊存儲每一個輸入的樣本數據,Mult模塊實現乘法功能,Fir51是總控制模塊,使每一次輸入,對51個數據進行加權運算。
3.4 FIR濾波器仿真結果分析
圖5所示,輸入信號是一個方波,經過FIR濾波器后,輸出信號為一正弦波。仿真結果表明,此FIR濾波器能夠實時工作,并對輸入信號進行有效選擇,濾除截止頻率以上的高頻信號。

圖5 仿真圖
FIR濾波器在數字信號處理領域有著廣泛的應用。本文采用高速對稱型算法設計了51階的低通濾波器,并在FPGA上進行了系統仿真。仿真結果表明該方法不僅提高系統的運算速度而且占有較少的硬件資源,另外可以通過修改查找表的內容,很容易實現同階數的高通,帶通濾波器。
[1]王學梅.基于FPGA的有限7沖激響應數字濾波器的研究及實現[D].長沙:中南大學,2004.
[2]李明偉,黃世震.應用分布式算法在FPGA平臺上實現FIR低通濾波器[J].中國集成電路,2007,2:50-51.
[3][美]John G,Proakis,Dimitris( Manolakis).數字信號處理[M].4版.北京:電子工業出版社,2007.
[4]劉海兵,劉雄飛,張德恒.基于FPGA的數字濾波器的設計與實現[J].現代電子技術,2006,29(15):70-71.
TN911
A
1674-6708(2011)34-0201-02