顧夢祺
(淮陰師范學院 物理與電子電氣工程學院,江蘇 淮安 223300)
一種高階低通FIR濾波器的Matlab與FPGA實現
顧夢祺
(淮陰師范學院 物理與電子電氣工程學院,江蘇 淮安 223300)
濾波器是電子專業常用的信號處理工具,是用來減少或消除干擾的電氣部件。文章基于FPGA開發的自頂向下層次化的設計思路,采用Matlab以及QuartusⅡ軟件設計實現16階低通濾波器,仿真以及實物測試結果都顯示達到低通濾波性能。與傳統的數字濾波器相比,FPGA器件更優越的性能使得所設計的濾波器具有更好的實時性、可移植性等。
Matlab;FPGA;濾波器;仿真
濾波器在各種控制系統中應用的極其普遍,其功能主要是對特定頻率或者某頻率之外的所有頻率信號進行濾除,進而達到實現濾除干擾或噪聲的目的。隨著數字信號處理理論的不斷成熟以及電子器件各方面性能的不斷提升,越來越多的技術人員開始研究濾波器的實現方法。有限脈沖響應(Finite Impulse Response,FIR)數字濾波器的實現,一般可以分為硬件和軟件兩種設計路線。其中用軟件實現方法是在普通計算機上用編程實現的。需要借用計算機的內存、計算器和控制算法編譯,通過計算機執行濾波器的操作。因為這個方法很慢,所以很難用于對時間精度要求較高的信號進行處理,主要用于教學和研究。
硬件實現是專門設計的數字濾波電路,現在FIR濾波器的硬件設計有多種實現方法。(1)用單片機來實現,但單片機的處理速度相對較慢。(2)專用的數字信號處理(Digital Signal Processing,DSP)芯片,但DSP的串行指令執行使其速度和效率大大降低,所以隨著濾波器系數或字長的增長,計算時間將大大增加,并且在一些高速應用中,DSP的性能增長的背后是系統需求的增長。(3)使用商用FIR濾波器集成電路,但由于其通用性,很難滿足設計師的獨特要求。(4)利用可編程邏輯器件來實現。
可編程邏輯器件如現場可編程門陣列(Field Programmable Gate Array,FPGA)等在電子技術領域的應用給數字硬件電路系統的設計帶來了極大的靈活性和主動性。由于可編程邏輯器件可以由軟件編程,其硬件結構可以隨具體項目需要進行調整,所以其硬件設計和軟件設計一樣方便。
本文根據自頂向下的層次化、模塊化的設計思想,將整個濾波器的設計劃分為多個模塊,利用硬件描述語言(Hardware Description Language,VHDL)的描述方法進行了各個模塊的功能設計,并用Matlab軟件設計16階濾波器各抽頭系數,最終在QuartusⅡ軟件上進行編程仿真,并利用FPGA芯片對設計結果進行驗證。
考慮到既要使濾波器工作速度快,又要使得相應的資源功耗比較少,所以選定用線性相位型來設計實現,且N=16為偶數,選用如圖1所示的線性相位FIR濾波器對稱結構。

圖1 若N為偶數,線性相位FIR濾波器的對稱結構
圖中之路增益應取“+1”。如圖1所示,要完成濾波器的設計,需包含延時單元、加法電路單元,乘以負一單元、乘法器單元及截取8位數單元的底層文件設計。
設計FIR數字濾波器最簡單、最普通的方法是窗函數法。這種方法通常是理想濾波器的頻率響應在給定的條件下,按照要求設計一個F I R濾波器頻率響應去無限接近理想的頻率響應通常使用窗函數法設計FIR數字濾波器是在時域中進行的,因此,必須首先由理想頻率響應的傅里葉反變換推導出對應的單位脈沖響應hd(n),

分段恒定的或分段函數表示的頻率響應是用來定義許多理想系統的常用手段,但是這種系統具有非因果的和無限長的脈沖響應,即hd(n)一定是無限長的序列,且是非因果的。而我們要設計的是FIR濾波器,其h(n)必定是有限長的,所以要用有限長的h(n)來逼近無限長的hd(n),最簡單且最有效的方法是截斷hd(n)

可以把h(n)表示為所需單位脈沖響應與一個有限長的窗口函數序列w(n)的乘積,即

打開Matlab的FDAtool設計工具,分別設定響應類型為低通,設計方法為FIR,窗函數取Kaiser窗,Beta設為0.5,濾波器階數指定為15,其采樣頻率為6.25 MHz,截止頻率是625 kHz,如圖2所示。完成濾波器參數設定后,單擊設計濾波器按鈕,即可得到設計濾波器的幅頻特性、相頻特性、沖擊響應等。且可生成FIR濾波器系數為:

因為卷積運算與加乘運算間的換算關系,可以將濾波功能用加乘模塊具體實現。在QuartusⅡ軟件中,針對各加乘模塊單元進行VHDL編程編譯后,生成相應的符號文件。最后連接成頂層原理圖。整個電路的原理設置方案如圖3所示。

圖2 Matlab設計工具FDAtool的設計界面
對于濾波器濾波性能的驗證方法,本文采用是輸入頻率計一定幅值的頻率信號,并逐漸增大輸入信號頻率,觀察隨著信號頻率的增大,在跨越截止頻率之后信號幅值是否有大幅度衰減。由于所設計的濾波器的通帶截止頻率是625 kHz,阻帶截止頻率是1 250 kHz,可以從如圖4所示的驗證結果中看出當輸入信號的頻率為421 kHz時,信號濾波的結果幾乎與原信號相同,但當信號頻率增加為921 kHz時,可明顯觀察出濾波后的信號幅值被衰減。

圖3 FIR濾波器整體設計方案原理

圖4 濾波效果
FIR濾波器是最常見、使用也最為廣泛的一類濾波器。本文首先簡單介紹濾波器目前常用的設計方法,然后在此基礎上介紹了濾波器的直接型結構、窗函數設計法等,并且利用Matlab軟件設計符合要求的16階濾波器的抽頭系數,最后用VHDL語言進行編程,并在QuartusⅡ軟件上進行編譯仿真,最終在FPGA器件上下載驗證濾波效果,從驗證結果來看,該FIR濾波器的實現方案,具有工作速度快、實時信號好等特點,能夠滿足實際數字系統的要求。
[1] 趙穎,劉祖深,李勝寅.基于MATLAB的FIR數字濾波器的方法設計[J].國外電子測量技術,2012(10):35-37.
[2] 馬月紅,馬彥恒,王雪飛.基于MATLAB的FIR數字濾波器設計與仿真[J].電子測量技術,2010(11):66-69.
[3] 孫耀奇,高火濤,熊超,等.基于Matlab和FPGA的FIR數字濾波器設計及實現[J].現代電子技術,2008(11):89-92.
[4] 張猛.基于Matlab的FIR數字濾波器設計[J].長春大學學報,2009(2):47-49.
Realization of high-order low-pass FIR filter by Matlab and FPGA
Gu Mengqi
(Physics and Electronic Electrical Engineering School, Huaiyin Normal University, Huai’an 223300, China)
Filter is signal processing tools that electronic professional commonly use and is electrical components to reduce or eliminate interference. Based on the top-down hierarchical design idea developed by FPGA, the 16th-order low-pass filter is realized and designed by Matlab and QuartusⅡ software, the simulation and the real test results show that the low-pass filter performance is achieved. Compared with the traditional digital filter, FPGA device superior performance makes the design of the filter better real-time, portability and so on.
MATLAB; FPGA; filter; simulation
顧夢祺(1987— ),女,江蘇徐州人,助理實驗師,碩士;研究方向:復雜動態網絡同步控制,電子產品開發。