IIR數字濾波器的Matlab和FPGA實現
摘要:提出一種通過兩個二階節級聯構成四階IIR數字橢圓濾波器的設計方法,并利用Matlab仿真軟件設計了通帶內波紋不大于0.1 dB,阻帶衰減不小于42 dB的IIR數字濾波器。論述了一種采用可編程邏輯器件,通過VHDL硬件描述語言實現該濾波器的方法。給出了在QuartusⅡ軟件下的仿真結果,并在FPGA器件上驗證實現。實驗證明,這種方法是切實可行的。
關鍵詞:無限長單位脈沖響應濾波器;Matlab;FPGA;VHDL
0 引言
數字濾波器具有比模擬濾波器精度高、穩定、體積小、重量輕、靈活、不要求阻抗匹配,以及能夠實現模擬濾波器無法實現的特殊濾波功能等特點,因此數字濾波器被廣泛應用于圖像處理和識別、語音處理和識別、通信、雷達、人工智能、核技術等多個領域。
數字濾波器的實現方法很多,采用FPGA器件實現具有速度快、效率高、成本低、開發周期短等優點,而且還可以直接使用Altera公司提供的FIR/IIR IP core或采用LPM的設計方法進行設計,使數字濾波器設計變得簡單、可靠。本系統通過一個實例說明如何通過Matlab設計并在FPGA器件上實現IIR橢圓函數濾波器。
1 IIR數字濾波器的Matlab設計
1.1 IIR數字濾波器設計要求
本系統的設計指標如下:模擬信號采樣頻率為2 MHz,每周期最少采樣20點,即模擬信號的通帶邊緣頻率為fp=100 kHz,阻帶邊緣頻率fs=200 kHz,通帶波動Rp≤0.1 dB(通帶誤差不大于5%),阻帶衰減As≥42 dB。換算為數字域指標為:Wp=0.1π,Ws=0.2π,Rp=0.1 dB,As=42 dB。
1.2 IIR數字濾波器設計方案
(1)根據設計要求確定濾波器數字域指標
換算為數字域指標為:Wp=0.1π,Ws=0.2π,Rp=0.1 dB,As=42 dB。
(2)采用Matlab軟件設計濾波器系統函數
IIR濾波器系統函數是采用計算機輔助工程CAE工具進行設計的。系統函數H(z)的計算采用Matlab軟件設計比較方便,其中有兩個現成的函數可以使用:ellipord(Wp/pi,Ws/pi,Rp,As)函數用來計算數字橢圓濾波器的階次N和3 dB截止頻率Wn;ellip(N,Rp,As,Wn)函數可以求得直接型橢圓IIR濾波器的各個系數。
根據要求,設計采用Matlab軟件實現IIR濾波器的源程序如下:
利用Matlab軟件可以得到如下結果:
電源濾波器相關文章:電源濾波器原理
數字濾波器相關文章:數字濾波器原理
評論