基于DSP Builder的16階FIR濾波器實(shí)現

發(fā)布時(shí)間:2010-11-29 18:14    發(fā)布者:conniede
關(guān)鍵詞: dsp , FIR , FPGA , 濾波器
1 引 言

FIR數字濾波器在數字信號處理的各種應用中發(fā)揮著(zhù)十分重要的作用,它能夠提供理想的線(xiàn)性相位響應,在整個(gè)頻帶上獲得常數群時(shí)延,從而得到零失真輸出信號,同時(shí)它可以采用十分簡(jiǎn)單的算法予以實(shí)現。這些優(yōu)點(diǎn)使FIR濾波器成為設計工程師的首選。在采用VHDLVerilogHDL等硬件描述語(yǔ)言設計數字濾波器時(shí)。由于程序的編寫(xiě)往往不能達到良好優(yōu)化而使濾波器性能表現一般,而采用調試好的IP Core需要向Al-tera公司購買(mǎi)。在此,采用一種基于DSP Builder的FPGA設計方法,使FIR濾波器設計較為簡(jiǎn)單易行,并能滿(mǎn)足設計要求。

2 FIR濾波器介紹

2.1 FIR濾波器原理

對于一個(gè)FIR濾波器系統,它的沖激響應總是有限長(cháng)的,最具體的FIR濾波器可用下式表示:



式中:r是FIR濾波器的抽頭數;x(n-r)是延時(shí),r個(gè)抽頭的輸入信號;b(r)是第r級抽頭數(單位脈沖響應);M是濾波器的階數;y(n)表示濾波器的輸出序列。濾波器就是尋求一個(gè)可實(shí)現的系統函數H(z),使其頻率響應H(ejω)滿(mǎn)足所希望得到的頻域信號,也可以用卷積的形式來(lái)表示:

y(n)=z(n)*h(n)

典型的直接I型FIR濾波器如圖1表示,其輸出序列y(n)滿(mǎn)足下式:



2.2 設計要求

數字濾波器實(shí)際上是一個(gè)采用有限精度算法實(shí)現的線(xiàn)性非時(shí)變離散系統。它的設計步驟是先根據需要確定其性能指標,設計一個(gè)系統函數h(n)逼近所需要的性能指標,濾波器的系數計算可以借助Matlab強大的計算功能和現成濾波器設計工具來(lái)完成,最后采用有限的精度算法實(shí)現。該系統的設計指標為:設計一個(gè)16階的低通濾波器,選模擬信號的采樣頻率Fs為5 kHz,要求信號的截止頻率Fc=1 kHz,輸入序列的位寬為9位(最寬位為符號位)。激勵源為幅值為27,頻率為800 Hz與1 600 Hz兩個(gè)信號的混頻信號。

3 基于DSP Builder設計FIR濾波器

3.1 DSP Builder介紹

DSP Builder是美國Al-tera公司推出的一個(gè)面向DSP開(kāi)發(fā)的系統級設計工具,它在QuartusⅡ設計環(huán)境中集成了Matlab和SimuIinkDSP開(kāi)發(fā)軟件。以往使用的Matlab工具僅僅作為DSP算法的建模和基于純數學(xué)的仿真,其數學(xué)模型無(wú)法為硬件DSP應用系統直接產(chǎn)生實(shí)用的程序代碼,仿真測試的結果也往往是基于數學(xué)的算法結果。而以往的FPGA所需要的傳統基于硬件描述語(yǔ)言的設計因考慮了FPGA硬件的延時(shí)與VHDL遞歸算法的銜接,以及補碼運算和乘積結果截取等問(wèn)題,所以相當繁瑣。而對于DSP Builder而言,它作為Matlab的一個(gè)Simulink工具箱,使得用FPGA設計的DSP系統完全可以通過(guò)Simulink的圖形化界面進(jìn)行建模、系統級仿真。設計模型可直接向VHDL硬件描述語(yǔ)言轉換,并自動(dòng)調用QuartusⅡ等EDA設計軟件,完成綜合、網(wǎng)表生成以及器件適配乃至FPGA的配置下載,使得系統描述與硬件實(shí)現有機地融合,充分體現了現代電子技術(shù)自動(dòng)化開(kāi)發(fā)的特點(diǎn)與優(yōu)勢。

3.2 FIR濾波器的設計

3.2.1 FIR濾波器參數選取

采用Matlab提供的濾波器專(zhuān)用設計工具FDAtool仿真設計的濾波器,可滿(mǎn)足要求的FIR濾波器幅頻特性,由于浮點(diǎn)小數在FPGA中實(shí)現得比較困難,且代價(jià)太大,因而需要將濾波器的系數和輸人數據轉化為整數,其中量化后的系統可以在Matlab主窗口中直接轉化,對于輸入數據,乘以28的增益用Altbus控制位寬轉化為整數輸入。

3.2.2 FIR濾波器模型的建立

根據FIR濾波器原理,可以利用FPGA來(lái)實(shí)現FIR濾波電路。DSP Builder設計流程的第一步是在Matlab/Simulink中進(jìn)行設計輸入的,即在Matlab的Simulink環(huán)境中建立一個(gè)MDL模型文件,用圖形方式調用DSP Builder和其他Simulink庫中的圖形模塊,構成系統級或算法級設計框圖,如圖2所示。


3.2.3 在Simulink中的仿真并生成VHDL代碼

完成模型設計之后,可以先在Simulink中對模型進(jìn)行仿真,可以通過(guò)Simulink中的示波器模塊查看各個(gè)步驟的中間結果。輸入信號采用800 Hz和1 600 Hz,幅值相同的兩個(gè)正弦信號的疊加。仿真結果如圖3所示。從仿真波形可以看出,通過(guò)濾波器之后,1 600 Hz的信號能夠被很好地濾除。


雙擊SignalCompiler可對以上的設計模型進(jìn)行分析,選擇相應的芯片,將以上設計模塊圖文件“翻譯”成VHDL語(yǔ)言。

3.2.4 Modelsim的RTL仿真

在Simulink中進(jìn)行的仿真屬于系統驗證性質(zhì)的,是對mdl文件進(jìn)行的仿真,并沒(méi)有對生成的VHDL代碼進(jìn)行仿真。事實(shí)上,生成VHDL描述的是RTL級的,是針對具體的硬件結構,而在Matlab的Simulink中的模型仿真是算法級的,兩者之間有可能存在軟件理解上的差異,轉化后的VHDL代碼實(shí)現可能與mdl模型描述的情況不完全相符。這就需要針對生成的RTL級VHDL代碼進(jìn)行功能仿真,仿真結果如圖4所示。


仿真結果說(shuō)明,在Modelsim中仿真結果和Simulink里的仿真結果基本一致,該濾波器有較好的濾波效果?梢钥闯,輸入正弦波經(jīng)過(guò)數字化過(guò)程以后,能夠在Modelsim中還原出模擬波形.符合設計的要求,可以在QLtortusⅡ的環(huán)境下進(jìn)行硬件設計。

3.2.5 濾波器在FPGA上的實(shí)現

在QuartusⅡ環(huán)境中,打開(kāi)DSP Builder建立的QuartusⅡ項目文件,在QuartusⅡ中再進(jìn)行一次仿真,由此可以看到符合要求的時(shí)序波形。然后指定器件引腳,并進(jìn)行編譯,最后下載到FPGA器件中,就可以對硬件進(jìn)行測試,加上clok信號和使能信號,用信號發(fā)生器產(chǎn)生所要求的兩個(gè)不同頻率的正弦信號,就可以在示波器上看到濾波后的結果。需要設計不同的濾波器電路是僅修改FIR濾波器模型文件就可以實(shí)現,這樣不僅避免了繁瑣的VHDL語(yǔ)言編程,而且便于進(jìn)行調整。

4 結 語(yǔ)

在利用FPGA進(jìn)行數字濾波器開(kāi)發(fā)時(shí),采用DSPBuilder作為設計工具,能加快進(jìn)度。當然,在實(shí)際應用中,受精度、速度和器件選擇方面的影響,可能對其轉化的VHDL進(jìn)行進(jìn)一步的優(yōu)化。
本文地址:http://selenalain.com/thread-42949-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页