基于DSP Builder的16階FIR濾波器實現(xiàn)
FIR數(shù)字濾波器在數(shù)字信號處理的各種應用中發(fā)揮著十分重要的作用,它能夠提供理想的線性相位響應,在整個頻帶上獲得常數(shù)群時延,從而得到零失真輸出信號,同時它可以采用十分簡單的算法予以實現(xiàn)。這些優(yōu)點使FIR濾波器成為設計工程師的首選。在采用VHDL或VerilogHDL等硬件描述語言設計數(shù)字濾波器時。由于程序的編寫往往不能達到良好優(yōu)化而使濾波器性能表現(xiàn)一般,而采用調(diào)試好的IP Core需要向Al-tera公司購買。在此,采用一種基于DSP Builder的FPGA設計方法,使FIR濾波器設計較為簡單易行,并能滿足設計要求。
1 FIR濾波器介紹
1.1 FIR濾波器原理
對于一個FIR濾波器系統(tǒng),它的沖激響應總是有限長的,最具體的FIR濾波器可用下式表示:
式中:r是FIR濾波器的抽頭數(shù);x(n-r)是延時,r個抽頭的輸入信號;b(r)是第r級抽頭數(shù)(單位脈沖響應);M是濾波器的階數(shù);y(n)表示濾波器的輸出序列。濾波器就是尋求一個可實現(xiàn)的系統(tǒng)函數(shù)H(z),使其頻率響應H(ejω)滿足所希望得到的頻域信號,也可以用卷積的形式來表示:
y(n)=z(n)*h(n)
典型的直接I型FIR濾波器如圖1表示,其輸出序列y(n)滿足下式:
1.2 設計要求
數(shù)字濾波器實際上是一個采用有限精度算法實現(xiàn)的線性非時變離散系統(tǒng)。它的設計步驟是先根據(jù)需要確定其性能指標,設計一個系統(tǒng)函數(shù)h(n)逼近所需要的性能指標,濾波器的系數(shù)計算可以借助Matlab強大的計算功能和現(xiàn)成濾波器設計工具來完成,最后采用有限的精度算法實現(xiàn)。該系統(tǒng)的設計指標為:設計一個16階的低通濾波器,選模擬信號的采樣頻率Fs為5 kHz,要求信號的截止頻率Fc=1 kHz,輸入序列的位寬為9位(最寬位為符號位)。激勵源為幅值為27,頻率為800 Hz與1 600 Hz兩個信號的混頻信號。
2 基于DSP Builder設計FIR濾波器
2.1 DSP Builder介紹
DSP Builder是美國Al-tera公司推出的一個面向DSP開發(fā)的系統(tǒng)級設計工具,它在QuartusⅡ設計環(huán)境中集成了Matlab和SimuIinkDSP開發(fā)軟件。以往使用的Matlab工具僅僅作為DSP算法的建模和基于純數(shù)學的仿真,其數(shù)學模型無法為硬件DSP應用系統(tǒng)直接產(chǎn)生實用的程序代碼,仿真測試的結果也往往是基于數(shù)學的算法結果。而以往的FPGA所需要的傳統(tǒng)基于硬件描述語言的設計因考慮了FPGA硬件的延時與VHDL遞歸算法的銜接,以及補碼運算和乘積結果截取等問題,所以相當繁瑣。而對于DSP Builder而言,它作為Matlab的一個Simulink工具箱,使得用FPGA設計的DSP系統(tǒng)完全可以通過Simulink的圖形化界面進行建模、系統(tǒng)級仿真。設計模型可直接向VHDL硬件描述語言轉換,并自動調(diào)用QuartusⅡ等EDA設計軟件,完成綜合、網(wǎng)表生成以及器件適配乃至FPGA的配置下載,使得系統(tǒng)描述與硬件實現(xiàn)有機地融合,充分體現(xiàn)了現(xiàn)代電子技術自動化開發(fā)的特點與優(yōu)勢。
2.2 FIR濾波器的設計
2.2.1 FIR濾波器參數(shù)選取
采用Matlab提供的濾波器專用設計工具FDAtool仿真設計的濾波器,可滿足要求的FIR濾波器幅頻特性,由于浮點小數(shù)在FPGA中實現(xiàn)得比較困難,且代價太大,因而需要將濾波器的系數(shù)和輸人數(shù)據(jù)轉化為整數(shù),其中量化后的系統(tǒng)可以在Matlab主窗口中直接轉化,對于輸入數(shù)據(jù),乘以28的增益用Altbus控制位寬轉化為整數(shù)輸入。
2.2.2 FIR濾波器模型的建立
根據(jù)FIR濾波器原理,可以利用FPGA來實現(xiàn)FIR濾波電路。DSP Builder設計流程的第一步是在Matlab/Simulink中進行設計輸入的,即在Matlab的Simulink環(huán)境中建立一個MDL模型文件,用圖形方式調(diào)用DSP Builder和其他Simulink庫中的圖形模塊,構成系統(tǒng)級或算法級設計框圖,如圖2所示。
評論