【正文】
ealize Finite Impulse Response Filter and plete hardware design simulation and verification as an example by the realization of 24step lowpass digital FIR filter.Through simulation and verification, the system of the digital filter designed can run successfully, and the designed filter has good stability, high accuracy, less susceptible to environmental impacts. In the use of FPGA for the development of digital filters using Matlabbased environment as a design tool for DSP Builder can be more convenient to create models, and to plete the whole design. Key words: MATLAB。數(shù)字信號處理課程設計題 目:基于DSP Builder的FIR數(shù)字濾波器的仿真設計姓 名: 專 業(yè): 通信工程工程班 級: 09級3班院 系: 工學院入學年度:2008年指導教師: 日 期: 2011年12月12日基于DSP Builder的FIR數(shù)字濾波器的仿真設計摘要:數(shù)字濾波器是數(shù)字信號處理中的核心環(huán)節(jié),而FIR數(shù)字濾波器因其具有嚴格的線性相位,系統(tǒng)總是穩(wěn)定等特點而廣泛應用于數(shù)字信號處理的各個領域,因此是一個重要的研究課題。 Digital filter。穩(wěn)定和線性相位特性是FIR濾波器突出的優(yōu)點。此外,任何數(shù)字信號處理系統(tǒng)中也還不可避免地用到模擬濾波器,因此模擬濾波器設計也是數(shù)字信號應該掌握的技術。如果采用普通的數(shù)字信號處理器(DSP Processor)來實現(xiàn),只能用串行的方式順序的執(zhí)行延時,乘加操作,這不可能在一個DSP(指數(shù)字信號處理器)指令周期內(nèi)完成,必須用多個指令周期來完成。在這兩步中,與一般的Matlab Simulink建模過程幾乎沒有什么區(qū)別,所不同的是設計模型庫采用Altera DSP Builder的Simulink庫,也不涉及到其它EDA軟件,沒有自動流程和手動流程的區(qū)別。由于這個過程操作可能比較繁瑣,所以DSP Builder的SignalCompiler相應提供了一個接口,針對設計,自動產(chǎn)生一個TCL腳本與綜合器Synplify或者LelnardoSpectrum相接。通過ModelSim仿真生成的TestBench可以驗證生成的VHDL代碼與Simulink中DSP模型的一致性。這里采用直接I型來實現(xiàn)FIR濾波器。圖74 直接I型FIR濾波器結(jié)構(gòu)圖75是一個直接I型的4階FIR濾波器節(jié)結(jié)構(gòu)。比如要實現(xiàn)一個20階的低通濾波器,可以調(diào)用5個4階FIR濾波器來實現(xiàn)。注意:在做好子系統(tǒng)后,要修改其Mask參數(shù)MaskType為“SubSystem AlteraBlockSet”。點擊MATLAB主窗口下方的“Start”(開始)按鈕,按圖81選擇“ToolBox”→“Filter Design”→“Filter Design amp。分析操作步驟如下:1. 選擇FDATool的菜單“Analysis”→“Magnitude Response”,啟動幅頻響應分析。這可以通過菜單選擇“Analysis”→“Magnitude﹠Phase Response”來啟動分析。圖811 FIR濾波器系數(shù)(五)量化從圖811可以看到,F(xiàn)DATool計算出的值是一個有符號小數(shù),而在DSP Builder下建立的FIR濾波器模型需要一個整數(shù)作為濾波器系數(shù)。在此量化優(yōu)化設置對話框中選擇相關的優(yōu)化選項。這時濾波器系數(shù)就存入到一個一維變量Num中了,不過這時Num中的元素是以小數(shù)形式出現(xiàn)的:Num=現(xiàn)在若要在FIR濾波器模型中使用這些數(shù)據(jù),還需要將他們轉(zhuǎn)化為整數(shù),在MATLAB主窗口的命令中鍵入:Num*(2^15)得到: Num*(2^15)ans = Columns 1 through 9 891 1435 1601 1240 2504 735 3729 360 5763 Columns 10 through 18 3184 11846 27093 27093 11846 3184 5763 360 3729 Columns 19 through 24 735 2504 1240 1601 1435 891(七)修改FIR濾波器模型添加參數(shù)把計算出的系數(shù)逐個填入到FIR濾波器模型中,見圖818。我深刻地認識到,只有單純的理論知識是不行的,必須多實踐,多操作才可以使自己的知識得到鞏固,從而提高自身素質(zhì)。當然,在實際應用中,受精度、速度和器件選擇方面的影響,可以對其轉(zhuǎn)化的VHDL進行進一步的優(yōu)化。圖816 量化后的噪聲分析(六)導出濾波器系數(shù)為導出設計好的濾波器系數(shù),選擇FDATool菜單的“File”→“Export….”,打開導出(Export)對話框,如圖817所示。在圖812中設置前4項的量化格式(Format)為“[16 15]”,表示量化后位寬為16位,絕對值為15位;設置后2項(乘積、乘積和)的量化格式為“[32 30]”。圖88 FIR濾波器的沖激響應圖89 FIR濾波器的階躍響應圖810 FIR濾波器的零極點求出的FIR濾波器的系數(shù)可以通過選擇菜單“Analysis”→“Filter Coefficients”來觀察,見圖811。由圖可以看到設計的FIR濾波器在通帶內(nèi)相位響應為線性的,即該濾波器是一個線形相位濾波器。點擊 Design Filter ,讓MATLAB計算FIR濾波器系數(shù)并作相關分析。(二)打開MATLAB的FDATOOLMATLAB集成了一套功能強大的濾波器設計工具FDATool(Filter Design amp。前一及的輸出端口x4接后一級x輸入端口,并附加上20個常數(shù)端口,作為FIR濾波器系數(shù)的輸入。圖76顯示的就是一個設計好的4階FIR濾波器節(jié),與