《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于DSP Builder的16階FIR濾波器實現
基于DSP Builder的16階FIR濾波器實現
摘要: 在采用VHDL或VerilogHDL等硬件描述語言設計數字濾波器時。由于程序的編寫往往不能達到良好優化而使濾波器性能表現一般,而采用調試好的IP Core需要向Al-tera公司購買。在此,采用一種基于DSP Builder的FPGA設計方法,使FIR濾波器設計較為簡單易行,并能滿足設計要求。
Abstract:
Key words :

  0 引 言

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

  1 FIR濾波器介紹

  1.1 FIR濾波器原理

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

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

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

直接I型FIR濾波器

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

輸出序列y

  1.2 設計要求

  數字濾波器實際上是一個采用有限精度算法實現的線性非時變離散系統。它的設計步驟是先根據需要確定其性能指標,設計一個系統函數h(n)逼近所需要的性能指標,濾波器的系數計算可以借助Matlab強大的計算功能和現成濾波器設計工具來完成,最后采用有限的精度算法實現。該系統的設計指標為:設計一個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開發的系統級設計工具,它在QuartusⅡ設計環境中集成了Matlab和 SimuIinkDSP開發軟件。以往使用的Matlab工具僅僅作為DSP算法的建模和基于純數學的仿真,其數學模型無法為硬件DSP應用系統直接產生實用的程序代碼,仿真測試的結果也往往是基于數學的算法結果。而以往的FPGA所需要的傳統基于硬件描述語言的設計因考慮了FPGA硬件的延時與VHDL 遞歸算法的銜接,以及補碼運算和乘積結果截取等問題,所以相當繁瑣。而對于DSP Builder而言,它作為Matlab的一個Simulink工具箱,使得用FPGA設計的DSP系統完全可以通過Simulink的圖形化界面進行建模、系統級仿真。設計模型可直接向VHDL硬件描述語言轉換,并自動調用QuartusⅡ等EDA設計軟件,完成綜合、網表生成以及器件適配乃至FPGA 的配置下載,使得系統描述與硬件實現有機地融合,充分體現了現代電子技術自動化開發的特點與優勢。

  2.2 FIR濾波器的設計

  2.2.1 FIR濾波器參數選取

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

  2.2.2 FIR濾波器模型的建立

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

設計框圖

 

 

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

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

在Simulink中的仿真

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

   2.2.4 Modelsim的RTL仿真

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

 

仿真結果

  仿真結果說明,在Modelsim中仿真結果和Simulink里的仿真結果基本一致,該濾波器有較好的濾波效果??梢钥闯觯斎胝也ń涍^數字化過程以后,能夠在Modelsim中還原出模擬波形.符合設計的要求,可以在QLtortusⅡ的環境下進行硬件設計。

  2.2.5 濾波器在FPGA上的實現

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

  3 結 語

  在利用FPGA進行數字濾波器開發時,采用DSPBuilder作為設計工具,能加快進度。當然,在實際應用中,受精度、速度和器件選擇方面的影響,可能對其轉化的VHDL進行進一步的優化。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产不卡高清 | 98精品国产高清在线看入口 | 亚洲第一色网 | 免费一级黄色毛片 | 欧美第一福利 | 亚洲性夜夜夜谢夜夜2019 | www.日韩在线| 日本天堂在线播放 | 国产精品久久二区三区色裕 | 欧美激情xxx | 51短视频版在线观看www免费 | 国产一级一国产一级毛片 | 国产成人精品一区 | 久久精品一区 | 伊人日日操 | 一级特一级特色生活片 | 一级片视频免费 | 久久精品免视看国产成人2021 | 亚洲视频免费 | 韩国伦理在线 | 涩色影院 | 成人免费在线播放 | 一级爱一级做a性视频 | 日本人成18在线播放 | 日韩精品 欧美 | 欧美日韩亚洲第一页 | 又黄又爽的视频免费看 | 精品欧美一区二区三区精品久久 | 亚洲一区二区三区影院 | 亚洲成av人片在线观看 | 国产好片无限资源 | 色视频www在线播放国产人成 | 丁香五月亚洲综合在线 | 精品久久久久国产免费 | 日本资源在线观看 | 国产精品亚洲一区二区在线观看 | 在线亚洲+欧美+日本专区 | h小视频在线 | 婷婷99| 成人av.com| 亚洲国产欧美在线人网站 |