基於FDATool的FIR濾波器設計方法(一)

2021-01-10 電子產品世界

  FIR 濾波器廣泛應用於數位訊號處理中,主要功能就是將不感興趣的信號濾除,留下有用信號。FIR濾波器是全零點結構,系統永遠穩定;並且具有線性相位的特徵,在有效頻率範圍內所有信號相位上不失真。在無線通信收發機中的DDC/DUC模塊,抽取和內插都需要加入濾波器以防止信號在頻譜上混疊,最典型的是採用 FIR濾波器實現半帶濾波器。

本文引用地址:http://www.eepw.com.cn/article/249651.htm

  FIR濾波處理如下式所示,其中x(n)為輸入信號,h(n)為FIR濾波係數,y(n)為經過濾波後的信號;N表示FIR濾波器的抽頭數,濾波器階數為N-1。

  

 

  由上式可得到FIR濾波器在FPGA中的實現結構,如圖1所示,主要由延遲單元Z-1、乘法器和累加器組成。此結構為直接型FIR濾波器結構,也稱橫向結構(transverse)。

  

 

  圖1

  設計FIR濾波器的方法有多種,其中Matlab軟體提供了很多關於濾波器設計的工具箱,FDATool就是一個很好的工具,如圖2所示就是FDATool的界面,可以在Matlab的Command窗口中直接輸入FDATool命令來調用。

  

 

  圖2

  濾波器的設計首先需要設置的參數:

  (1) Response Type:選擇FIR濾波器的類型:低通、高通、帶通和帶阻等。如圖3所示為Lowpass中的下拉選項,在DDC/DUC模塊設計中,抽取和內插需要使用Halfband Lowpass類型,而channel filter需要使用Raised-cosine類型。

  

 

  圖3

  (2) Design Method:FIR濾波器設計方法有多種,如圖4所示,最常用的是窗函數設計法(Window)、等波紋設計法(Equiripple)和最小二乘法 (Least-Squares)等。其中窗函數設計法在學校課堂中是重點講解的,提到FIR濾波器肯定會想到hamming、kaiser窗,但是實際應用中卻很少使用,因為如果採用窗函數設計法,達到所期望的頻率響應,與其它方法相比往往階數會更多;而且窗函數設計法一般只參照通頻帶wp、抑制頻帶ws 和理想增益來設計濾波器,但是實際應用中通頻帶和抑制帶的波紋也是需要考慮的,那在這種情況下,採用等波紋設計法就非常適用了。

  

 

  圖4

  (3) Filter Order:設置濾波器的階數,這個選項直接影響濾波器的性能,階數越高,性能越好,但是相應在FPGA實現耗用的資源需要增多。在這個設置中提供2個選項:Specify order和Minimum order,Specify order是工程師自己確定濾波器的階數,Minimum order是讓工具自動確定達到期望的頻率相應所需要的最小階數,因此具體選擇哪個選項得視實際情況而定了。

  

 

  圖5

  (4) Frequency Specification:設置頻率響應的參數,包括採樣頻率Fs、通帶頻率Fpass和阻帶頻率Fstop。

  

 

  圖6

  參數設置完成後,FDATool就會分析並且生成濾波係數,如圖7所示,可以得到濾波器的頻率相應曲線,並且可以通過File-》Export導出濾波係數,如圖8所示。

  

 

  圖7

  

 

  圖8

  為了快速驗證FIR濾波器的FPGA實現,使用Xilinx的System Generator工具,如圖9所示為FIR濾波器的驗證模型,其中通過Gateway In和Gateway out模塊分隔matlab simulink模塊和Xilinx FPGA模塊,matlab simulink模塊用於產生測試源,接收並顯示濾波後波形。還有System Generator Token用於生成Xilinx FPGA模塊的HDL代碼。

  

 

  圖9

  其中FIR Compiler 5.0模塊的參數設置如圖10所示,濾波係數直接調用FDATool生成的濾波係數equ_coe,輸出為全精度數據。

  

 

  圖10

  得到輸出結果如圖11所示,上邊圖為輸入原波形,由兩個頻率分量的正弦波疊加而成,頻率分別為2MHz和100MHz,經過FIR濾波之後,100MHz頻率分量被濾除。

  

 

  圖11

濾波器相關文章:濾波器原理

濾波器相關文章:濾波器原理

電源濾波器相關文章:電源濾波器原理

高通濾波器相關文章:高通濾波器原理 數字濾波器相關文章:數字濾波器原理

相關焦點

  • 一種改進型的FIR數字濾波器設計
    在數位訊號處理中,濾波佔有極其重要的作用,數字濾波器是譜分析、雷達信號處理、通信信號處理應用中的基本處理算法。目前常用的濾波器設計方法普遍採用matlab仿真,dsp實現。但這一傳統設計方法需要的開發周期較長,且設計過程反覆進行,非常不便。
  • 什麼是fir數字濾波器 什麼叫FIR濾波器
    躍遷帶越窄,需要更多的抽頭去實現濾波器。也有說,小的躍遷帶就是一個sharp濾波器。* 延時線- 一組存儲器單元,實現在FIR計算中的Z^-1延時。* 環形緩存 - 一個特殊的緩存,是首尾相連的。通常由DSP微處理器實現。
  • Matlab輔助DSP設計FIR數字濾波器
    3 Matlab輔助DSP實現FIR過程  Matlab輔助DSP實現FIR,其總體過程為在DSP中編寫處理程序;在Matlab中利用濾波器設計、分析工具(FDATool),根據指定的濾波器性能快速設計一個FIR,然後把濾波器係數以頭文件形式導人CCS中,頭文件中含濾波器階數和係數數組,在Matlab中調試、運行DSP程序並顯示、分析處理後的數據。
  • 基於FPGA+MATLAB的串行多階FIR濾波器設計
    摘要 FIR濾波器的設計分為濾波器係數計算和濾波器結構的具體兩個部分。2 使用MatIab Fdatool設計FIR濾波器FDATool(Fliter Design & Analysis Tool)是Matlab信號處理工具箱專用的濾波器設計分析工具,操作簡單、靈活,可採用多種方法設計FIR和IIR濾波器。在Matlab命令窗口輸入FDATool後回車就會彈出FDATool界面。
  • 基於Matlab的FIR數字濾波器設計
    摘要:提出FIR敷字濾波器的設計方案,並基於Matlab實現濾波仿真。通過使用Matlab信號處理工具箱提供的函數,選擇適當的窗函數編寫程序,其中窗函數按照實際信號的處理需求,參數折中選擇。實驗獲得了比較理想的濾波器特性,可以實現較好的濾波作用。
  • 基於FPGA的高效FIR濾波器設計與實現
    摘要: 給出了一種基於FPGA的數字濾波器的設計方法。該方法先通過MATLAB設計出一個具有具體指標的FIR濾波器, 再對濾波器係數進行處理, 使之便於在FPGA中實現, 然後採用基於分布式算法和CSD編碼的濾波器結構進行設計, 從而避免了乘法運算, 節約了硬體資源,其流水線的設計方式也提高了運行速度。Matlab和Modelsim仿真表明, 該設計功能正確, 能實現快速濾波。
  • MATLAB常用的FIR濾波器設計方法之窗函數法
    FIR濾波器很多工科出身的人都不會陌生,在我們的學習和工作中,也常常需要設計FIR濾波器。因為FIR濾波器有兩個特點:濾波器是穩定的以及具有線性相位。FIR濾波器在信號處理相關領域當然也包括本人所在的雷達信號處理領域有著廣泛的應用。本文主要介紹MATLAB最常用的FIR濾波器設計方法之窗函數法。其他的方法將在另一章中介紹。
  • 基於Matlab的FIR數字濾波器設計方案
    本文先介紹FIR數字濾波器的相關概念,並利用MATLAB中的FDA TOOL工具箱和Simulink工具進行FIR帶通數字濾波器的設計,給出了基於Matlab的FIR數字濾波器設計方案。
  • FIR濾波器設計方案
    常用的濾波器有無限長單位脈衝響應(ⅡR)濾波器和有限長單位脈衝響應(FIR)濾波器兩種,其中,FIR濾波器能提供理想的線性相位響應,在整個頻帶上獲得常數群時延從而得到零失真輸出信號,同時它可以採用十分簡單的算法實現,這兩個優點使FIR濾波器成為明智的設計工程師的首選,在採用VHDL或VerilogHDL等硬體描述語言設計數字濾波器時,由於程序的編寫往往不能達到良好優化而使濾波器性能表現一般。
  • 用MATLAB設計FIR濾波器的方法
    介紹了利用MATLAB信號處理工具箱進行FIR濾波器設計的三種方法:程序設計法、FDATool設計法和SPTool設計法,給出了詳細的設計步驟,並將設計的濾波器應用到一個混和正弦波信號,以驗證濾波器的性能。
  • 基於FPGA和IP核的FIR低通濾波器的設計與實現
    打開APP 基於FPGA和IP核的FIR低通濾波器的設計與實現 秩名 發表於 2012-12-03 11:50:23   FIR
  • 基於模擬退火神經網絡的I型FIR數字濾波器設計
    摘要:提出一種基於模擬退火神經網絡設計FIR數字濾波器的方法,是對用神經網絡設計方法的一種改進。由於線性相位FIR數字濾波器的幅頻特性是有限項的傅立葉級數,因此構造了一個三層餘弦基神經網絡模型,並用模擬退火算法進行了優化,然後給出了高階濾波器優化設計的實例。仿真表明經優化設計後的濾波器具有更好的性能和更穩定的效果。
  • 基於FPGA高階FIR濾波器的實現
    摘要:從FIR數字濾波器的基本結構模型出發,分析了FIR濾波器的設計思路及具體實現方法,詳細介紹了FIR濾波器的分布式算法(DA)結構。通過分析計算,得到普通DA結構實現高階濾波器會消耗大量的查找表資源,這樣的資源消耗甚至令硬體資源不可接受。
  • 基於MATLAB的數字基帶傳輸的 FIR濾波器的設計
    為了解決理想低通特性存在的問題,可採用升餘弦滾降特性的系統,以使理想低通濾波器的邊緣緩慢下降,並使振幅特性在滾降段中心頻率處呈奇對稱,從而保證滿足奈奎斯特第一準則。這種系統可減小碼間串擾和位定時誤差。 由於FIR數字濾波器可實現對升餘弦滾降特性的近似,故本文經過FIR數字濾波器設計來對各種窗函數進行選擇,並通過窗函數法實現對升餘弦特性低通濾波器的設計,同時用MATIAB來仿真實現。
  • FIR濾波器原理
    Ⅱ、數字濾波器相比模擬濾波器有更高的信噪比。這主要是因為數字濾波器是以數字器件執行運算,從而避免了模擬電路中噪聲(如電阻熱噪聲)的影響。數字濾波器中主要的噪聲源是在數字系統之前的模擬電路引入的電路噪聲以及在數字系統輸入端的模數轉換過程中產生的量化噪聲。這些噪聲在數字系統的運算中可能會被放大,因此在設計數字濾波器時需要採用合適的結構,以降低輸入噪聲對系統性能的影響。
  • 用頻率採樣法設計FIR濾波器
    有限長脈衝響應(FIR)數字濾波器由於設計靈活,濾波效果好以及過渡帶寬易控制,因此在數位訊號處理領域得到了廣泛的應用。FIR數字濾波器的典型設計方法主要有窗函數法和頻率採樣法。正確理解和掌握這兩種設計方法是學習FIR數字濾波器的一個重要環節。
  • 一種基於FPGA實現SRRC濾波及多速率變換模塊的方法介紹
    本文基於FPGA設計一種多速率變換器提高信號的採樣率,實現任意倍數的符號率變換(本文主要實現了上採樣變換,下採樣實現方法相同)。採用SRRC濾波與半帶(Half-band,HB)濾波器、級聯積分梳狀(Cascade Integrator Comb,CIC)濾波器、Farrow濾波級聯進行上採樣,實現平方根升餘弦濾波及信號任意倍數的上變頻處理。
  • 不同階數的FIR數字濾波器的DSP設計實現
    1 FIR濾波器的設計方法  通常採用窗函數法設計FIR濾波器方法簡單,但是這些濾波器的設計還不是最優的。 首先 通帶和阻帶的波動基本上相等,雖然一般需要δ2δ1,但是在窗函數法中不能分別控制 這些參數。另外對於大部分窗函數來說,通帶內或阻帶內的波動不是均勻的,通常離開過渡 帶時會減小。
  • 基於Matlab的IIR數字濾波器設計
    數字濾波器在數位訊號處理中起著非常重要的作用,在信號的過濾、檢測與參數的估計等方面,是使用最為廣泛的一種線性系統。  實現數字濾波器的方法有兩種,一是採用計算機軟體進行,就是把所要完成的工作通過程序讓計算機來實現;二是設計專用的數字處理硬體。這個地方主要用到的就是第一種方法。即是用Mafiab提供的信號處理工具箱來實現數字濾波器。
  • Matlab在FIR數字濾波器中的應
    提出FIR數字濾波器的設計方案,並基於Matlab實現濾波仿真。通過使用Matlab信號處理工具箱提供的函數,選擇適當的窗函數編寫程序,其中窗函數按照實際信號的處理需求,參數折中選擇。實驗獲得了比較理想的濾波器特性,可以實現較好的濾波作用。而且在實際應用中只需按需求修改濾波器參數,並結合程序的相應改動,即可實現不同功能的濾波器。