FIR濾波器設計方案

2021-01-10 電子發燒友
FIR濾波器設計方案

電子設計 發表於 2018-10-02 14:09:07

1.引言

在信息信號處理過程中,如對信號的過濾、檢測、預測等,都要使用濾波器,數字濾波器是數位訊號處理(DSP,DigitalSignalProcessing)中使用最廣泛的一種器件。常用的濾波器有無限長單位脈衝響應(ⅡR)濾波器和有限長單位脈衝響應(FIR)濾波器兩種,其中,FIR濾波器能提供理想的線性相位響應,在整個頻帶上獲得常數群時延從而得到零失真輸出信號,同時它可以採用十分簡單的算法實現,這兩個優點使FIR濾波器成為明智的設計工程師的首選,在採用VHDL或VerilogHDL等硬體描述語言設計數字濾波器時,由於程序的編寫往往不能達到良好優化而使濾波器性能表現一般。而採用調試好的IPCore需要向Altera公司購買。採用了一種基於DSPBuilder的FPGA設計方法,使FIR濾波器設計較為簡單易行,並能滿足設計要求。

2 FIR濾波器介紹

2.1 FIR濾波器設計的原理

FIR濾波器的數學表達式可用差分方程(1)來表示:

其中:r是FIR的濾波器的抽頭數;b(r)是第r級抽頭數(單位脈衝響應);x(n-r)是延時r個抽頭的輸入信號。

設計濾波器的任務就是尋求一個因果,物理上可實現的系統函數H(z),使其頻率響應H(ejw)滿足所希望得到的頻域指標。

2.2 設計要求

數字濾波器實際上是一個採用有限精度算法實現的線性非時變離散系統,它的設計步驟為先根據需要確定其性能指標,設計一個系統函數H(z)逼近所需要的技術指標,最後採用有限的精度算法實現。本系統的設計指標為;設計一個16階的低通濾波器,對模擬信號的採樣頻率fs為48KHz要求信號的截止頻率fc=10.8kHz輸入序列位寬為9位(最寬位為符號位)。

3 DSPBuilder介紹

DSPbuilder是Altera推出的一個DSP開發工具,它在QuartusⅡFPGA設計環境中集成了Mathworks的Matlab和simulinkDSP開發軟體[2]。

以往Matlab工具的使用往往作為DSP算法的建模和基於純數學的仿真,其數學模型無法為硬體DSP應用系統直接產生實用程序代碼,仿真測試的結果也僅僅是基於數學算法結構。而以往FPGA所需的傳統的基於硬體描述語言(HDL)的設計由於要考慮FPGA的硬體的δ延時與VHDL的遞歸算法的銜接,以及補碼運算和乘積結果截取等問題,相當繁雜。

對DSP是Builder而言,頂層的開發工具是MatLab/Simulink整個開發流層幾乎可以在同一環境中完成,真正實現了自定向下的設計流程,包括DSP系統的建模、系統級仿真、設計模型向VHDL硬體描述語言代碼的轉換、RTL(邏輯綜合RegisterTransferLevel)級功能仿真測試、編譯適配和布局布線、時序實時仿真直至對DSP目標器件的編程配置,整個設計流程一氣呵成地將系統描述和硬體實現有機地融為一體,充分顯示了現代電子設計自動化開發的特點與優勢。

4 FIR數字濾波器的DSPBuilder設計

4.1 FIR濾波器參數選取

用Matlab提供的濾波器設計的專門工具箱———FDATool仿真設計濾波器,滿足要求的FlR濾波器幅頻特性如圖1,由於浮點小數FPGA中實現比較困難,且代價太大,因而需要將濾波器的係數和輸入數據轉化為整數,其中量化後的係數在Matlab主窗口可直接轉化,對於輸入數據,可乘上一定的增益用Altbus控制位寬轉化為整數輸入。

4.2 FIR濾波器模型建立

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

4.3 基於DSPBuilder的濾波器仿真

輸入信號分別採用頻率f1=8KHz和f2=16KHz的兩個正弦信號進行疊加。其中的仿真波形如圖3所示,從FIR濾波電路的仿真結果看出,輸入信號通過濾波器後輸出基本上變成單頻率的正弦信號,進一步通過頻譜儀可看出f2得到了較大的抑制,與條件規定的fc=10.8kHz低通濾波器相符合,至此完成了模型仿真。

4.4 運用Modelsim進行功能仿真

在Simulink中進行的仿真是屬於系統驗證性質的,是對MDL文件進行的仿真,並沒有對生成的VHDL代碼進行過仿真。事實上,生成VHDL描述是RTL級的,是針對具體的硬體結構的,而在Matlab的Simulink中的模型仿真是算法級(系統級)的,是針對算法實現的,這二者之間有可能存在軟體理解上的差異,轉換後的VHDL代碼實現可能與MDL模型描述的情況不完全相符,這就是需要針對生成的RTL級VHDL代碼進行功能仿真。

在此,筆者利用Modelsim對生成的VHDL代碼進行功能仿真。設置輸入輸出信號均為模擬形式,出現如圖4所示的仿真波形,可以看到這與Simulink裡的仿真結果基本一致,即可在QuartusⅡ環境下進行硬體設計。

4.5 在FPGA器件中實現FIR濾波器

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

5 結束語

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

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 一種改進型的FIR數字濾波器設計
    1 fir數字濾波器設計的基本步驟 數字濾波器根據其衝激響應函數的時域特性,可分為2種,即無限長衝激響應(iir)濾波器和有限長衝激響應(fir)濾波器。fir系統不像iir系統那樣易取得較好的通帶和阻帶衰減特性,要取得較好的衰減特性,一般要求h(z)階次要高,也即m要大。
  • 什麼是fir數字濾波器 什麼叫FIR濾波器
    衝激響應是有限的意味著在濾波器中沒有發反饋. 1.4 FIR 怎麼發音?有些人直接讀字母音 F-I-R; 也有人發做fir的音[:], fir是冷杉樹.1.5 FIR 濾波器外有什麼其他選擇?DSP濾波器還有一類: IIR(無限衝激響應,Infinite Impulse Response).
  • Matlab輔助DSP設計FIR數字濾波器
    3 Matlab輔助DSP實現FIR過程  Matlab輔助DSP實現FIR,其總體過程為在DSP中編寫處理程序;在Matlab中利用濾波器設計、分析工具(FDATool),根據指定的濾波器性能快速設計一個FIR,然後把濾波器係數以頭文件形式導人CCS中,頭文件中含濾波器階數和係數數組,在Matlab中調試、運行DSP程序並顯示、分析處理後的數據。
  • 基於Matlab的FIR數字濾波器設計方案
    本文先介紹FIR數字濾波器的相關概念,並利用MATLAB中的FDA TOOL工具箱和Simulink工具進行FIR帶通數字濾波器的設計,給出了基於Matlab的FIR數字濾波器設計方案。
  • 基於FPGA+MATLAB的串行多階FIR濾波器設計
    摘要 FIR濾波器的設計分為濾波器係數計算和濾波器結構的具體兩個部分。2 使用MatIab Fdatool設計FIR濾波器FDATool(Fliter Design & Analysis Tool)是Matlab信號處理工具箱專用的濾波器設計分析工具,操作簡單、靈活,可採用多種方法設計FIR和IIR濾波器。在Matlab命令窗口輸入FDATool後回車就會彈出FDATool界面。
  • MATLAB常用的FIR濾波器設計方法之窗函數法
    FIR濾波器很多工科出身的人都不會陌生,在我們的學習和工作中,也常常需要設計FIR濾波器。因為FIR濾波器有兩個特點:濾波器是穩定的以及具有線性相位。FIR濾波器在信號處理相關領域當然也包括本人所在的雷達信號處理領域有著廣泛的應用。本文主要介紹MATLAB最常用的FIR濾波器設計方法之窗函數法。其他的方法將在另一章中介紹。
  • 基於Matlab的FIR數字濾波器設計
    摘要:提出FIR敷字濾波器的設計方案,並基於Matlab實現濾波仿真。通過使用Matlab信號處理工具箱提供的函數,選擇適當的窗函數編寫程序,其中窗函數按照實際信號的處理需求,參數折中選擇。實驗獲得了比較理想的濾波器特性,可以實現較好的濾波作用。
  • 用MATLAB設計FIR濾波器的方法
    介紹了利用MATLAB信號處理工具箱進行FIR濾波器設計的三種方法:程序設計法、FDATool設計法和SPTool設計法,給出了詳細的設計步驟,並將設計的濾波器應用到一個混和正弦波信號,以驗證濾波器的性能。
  • 用頻率採樣法設計FIR濾波器
    有限長脈衝響應(FIR)數字濾波器由於設計靈活,濾波效果好以及過渡帶寬易控制,因此在數位訊號處理領域得到了廣泛的應用。FIR數字濾波器的典型設計方法主要有窗函數法和頻率採樣法。正確理解和掌握這兩種設計方法是學習FIR數字濾波器的一個重要環節。
  • 基於FPGA的高效FIR濾波器設計與實現
    該方法先通過MATLAB設計出一個具有具體指標的FIR濾波器, 再對濾波器係數進行處理, 使之便於在FPGA中實現, 然後採用基於分布式算法和CSD編碼的濾波器結構進行設計, 從而避免了乘法運算, 節約了硬體資源,其流水線的設計方式也提高了運行速度。Matlab和Modelsim仿真表明, 該設計功能正確, 能實現快速濾波。
  • 基於FDATool的FIR濾波器設計方法(一)
    圖1  設計FIR濾波器的方法有多種,其中Matlab軟體提供了很多關於濾波器設計的工具箱,FDATool就是一個很好的工具,如圖2所示就是     圖2  濾波器的設計首先需要設置的參數:  (1) Response Type:選擇FIR濾波器的類型:低通、高通、帶通和帶阻等
  • 低通模擬濾波器的設計方案
    圖2 巴特沃斯濾波器極點數增加帶來更加明顯的轉降  模擬濾波器近似計算類型  圖3顯示了WEBENCH濾波器設計器觀察屏幕的解決方案窗口中一些可用的用戶點擊「開始濾波器設計」按鈕(圖1)以後,出現該屏幕。
  • Matlab在FIR數字濾波器中的應
    提出FIR數字濾波器的設計方案,並基於Matlab實現濾波仿真。通過使用Matlab信號處理工具箱提供的函數,選擇適當的窗函數編寫程序,其中窗函數按照實際信號的處理需求,參數折中選擇。實驗獲得了比較理想的濾波器特性,可以實現較好的濾波作用。而且在實際應用中只需按需求修改濾波器參數,並結合程序的相應改動,即可實現不同功能的濾波器。
  • FIR濾波器原理
    Ⅱ、數字濾波器相比模擬濾波器有更高的信噪比。這主要是因為數字濾波器是以數字器件執行運算,從而避免了模擬電路中噪聲(如電阻熱噪聲)的影響。數字濾波器中主要的噪聲源是在數字系統之前的模擬電路引入的電路噪聲以及在數字系統輸入端的模數轉換過程中產生的量化噪聲。這些噪聲在數字系統的運算中可能會被放大,因此在設計數字濾波器時需要採用合適的結構,以降低輸入噪聲對系統性能的影響。
  • 不同階數的FIR數字濾波器的DSP設計實現
    1 FIR濾波器的設計方法  通常採用窗函數法設計FIR濾波器方法簡單,但是這些濾波器的設計還不是最優的。 首先 通帶和阻帶的波動基本上相等,雖然一般需要δ2δ1,但是在窗函數法中不能分別控制 這些參數。另外對於大部分窗函數來說,通帶內或阻帶內的波動不是均勻的,通常離開過渡 帶時會減小。
  • 基於MATLAB的數字基帶傳輸的 FIR濾波器的設計
    為了解決理想低通特性存在的問題,可採用升餘弦滾降特性的系統,以使理想低通濾波器的邊緣緩慢下降,並使振幅特性在滾降段中心頻率處呈奇對稱,從而保證滿足奈奎斯特第一準則。這種系統可減小碼間串擾和位定時誤差。 由於FIR數字濾波器可實現對升餘弦滾降特性的近似,故本文經過FIR數字濾波器設計來對各種窗函數進行選擇,並通過窗函數法實現對升餘弦特性低通濾波器的設計,同時用MATIAB來仿真實現。
  • FPGA實現32階FIR數字濾波器的硬體電路方案
    傳統的FIR濾波器一般採用通用DSP處理器,但是DSP處理器採用的是串行運算,而FPGA是現場可編程陣列,可以實現專用集成電路,另外還可以採用純並行結構及考慮流水線結構,因此在處理速度上可以明顯高於DSP處理器。本文採用並行分布式算法在FPGA上設計並實現了高速處理的32階FIR低通濾波器,在此過程中利用Matlab的數值計算與分析功能來提高設計效率。
  • 基於FPGA和IP核的FIR低通濾波器的設計與實現
    打開APP 基於FPGA和IP核的FIR低通濾波器的設計與實現 秩名 發表於 2012-12-03 11:50:23   FIR
  • 糖葫蘆低通濾波器的結構及原理方案設計
    打開APP 糖葫蘆低通濾波器的結構及原理方案設計 鄧佳佳 發表於 2018-04-02 11:15:04 糖葫蘆低通的設計方法遵循高低阻抗線低通濾波器的設計原理。但由於糖葫蘆低通屬於三維結構,糖葫蘆低阻抗線的邊緣電容無法法忽視,直接使用高低阻抗互聯模型給出的高低阻抗線長度尺寸不夠準確。這篇文章介紹一種簡單準確的糖葫蘆低通的設計方法。
  • 基於模擬退火神經網絡的I型FIR數字濾波器設計
    摘要:提出一種基於模擬退火神經網絡設計FIR數字濾波器的方法,是對用神經網絡設計方法的一種改進。由於線性相位FIR數字濾波器的幅頻特性是有限項的傅立葉級數,因此構造了一個三層餘弦基神經網絡模型,並用模擬退火算法進行了優化,然後給出了高階濾波器優化設計的實例。仿真表明經優化設計後的濾波器具有更好的性能和更穩定的效果。