顧夢(mèng)祺
(淮陰師范學(xué)院 物理與電子電氣工程學(xué)院,江蘇 淮安 223300)
一種高階低通FIR濾波器的Matlab與FPGA實(shí)現(xiàn)
顧夢(mèng)祺
(淮陰師范學(xué)院 物理與電子電氣工程學(xué)院,江蘇 淮安 223300)
濾波器是電子專業(yè)常用的信號(hào)處理工具,是用來(lái)減少或消除干擾的電氣部件。文章基于FPGA開(kāi)發(fā)的自頂向下層次化的設(shè)計(jì)思路,采用Matlab以及QuartusⅡ軟件設(shè)計(jì)實(shí)現(xiàn)16階低通濾波器,仿真以及實(shí)物測(cè)試結(jié)果都顯示達(dá)到低通濾波性能。與傳統(tǒng)的數(shù)字濾波器相比,F(xiàn)PGA器件更優(yōu)越的性能使得所設(shè)計(jì)的濾波器具有更好的實(shí)時(shí)性、可移植性等。
Matlab;FPGA;濾波器;仿真
濾波器在各種控制系統(tǒng)中應(yīng)用的極其普遍,其功能主要是對(duì)特定頻率或者某頻率之外的所有頻率信號(hào)進(jìn)行濾除,進(jìn)而達(dá)到實(shí)現(xiàn)濾除干擾或噪聲的目的。隨著數(shù)字信號(hào)處理理論的不斷成熟以及電子器件各方面性能的不斷提升,越來(lái)越多的技術(shù)人員開(kāi)始研究濾波器的實(shí)現(xiàn)方法。有限脈沖響應(yīng)(Finite Impulse Response,F(xiàn)IR)數(shù)字濾波器的實(shí)現(xiàn),一般可以分為硬件和軟件兩種設(shè)計(jì)路線。其中用軟件實(shí)現(xiàn)方法是在普通計(jì)算機(jī)上用編程實(shí)現(xiàn)的。需要借用計(jì)算機(jī)的內(nèi)存、計(jì)算器和控制算法編譯,通過(guò)計(jì)算機(jī)執(zhí)行濾波器的操作。因?yàn)檫@個(gè)方法很慢,所以很難用于對(duì)時(shí)間精度要求較高的信號(hào)進(jìn)行處理,主要用于教學(xué)和研究。
硬件實(shí)現(xiàn)是專門設(shè)計(jì)的數(shù)字濾波電路,現(xiàn)在FIR濾波器的硬件設(shè)計(jì)有多種實(shí)現(xiàn)方法。(1)用單片機(jī)來(lái)實(shí)現(xiàn),但單片機(jī)的處理速度相對(duì)較慢。(2)專用的數(shù)字信號(hào)處理(Digital Signal Processing,DSP)芯片,但DSP的串行指令執(zhí)行使其速度和效率大大降低,所以隨著濾波器系數(shù)或字長(zhǎng)的增長(zhǎng),計(jì)算時(shí)間將大大增加,并且在一些高速應(yīng)用中,DSP的性能增長(zhǎng)的背后是系統(tǒng)需求的增長(zhǎng)。(3)使用商用FIR濾波器集成電路,但由于其通用性,很難滿足設(shè)計(jì)師的獨(dú)特要求。(4)利用可編程邏輯器件來(lái)實(shí)現(xiàn)。
可編程邏輯器件如現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)等在電子技術(shù)領(lǐng)域的應(yīng)用給數(shù)字硬件電路系統(tǒng)的設(shè)計(jì)帶來(lái)了極大的靈活性和主動(dòng)性。由于可編程邏輯器件可以由軟件編程,其硬件結(jié)構(gòu)可以隨具體項(xiàng)目需要進(jìn)行調(diào)整,所以其硬件設(shè)計(jì)和軟件設(shè)計(jì)一樣方便。
本文根據(jù)自頂向下的層次化、模塊化的設(shè)計(jì)思想,將整個(gè)濾波器的設(shè)計(jì)劃分為多個(gè)模塊,利用硬件描述語(yǔ)言(Hardware Description Language,VHDL)的描述方法進(jìn)行了各個(gè)模塊的功能設(shè)計(jì),并用Matlab軟件設(shè)計(jì)16階濾波器各抽頭系數(shù),最終在QuartusⅡ軟件上進(jìn)行編程仿真,并利用FPGA芯片對(duì)設(shè)計(jì)結(jié)果進(jìn)行驗(yàn)證。
考慮到既要使濾波器工作速度快,又要使得相應(yīng)的資源功耗比較少,所以選定用線性相位型來(lái)設(shè)計(jì)實(shí)現(xiàn),且N=16為偶數(shù),選用如圖1所示的線性相位FIR濾波器對(duì)稱結(jié)構(gòu)。
圖1 若N為偶數(shù),線性相位FIR濾波器的對(duì)稱結(jié)構(gòu)
圖中之路增益應(yīng)取“+1”。如圖1所示,要完成濾波器的設(shè)計(jì),需包含延時(shí)單元、加法電路單元,乘以負(fù)一單元、乘法器單元及截取8位數(shù)單元的底層文件設(shè)計(jì)。
設(shè)計(jì)FIR數(shù)字濾波器最簡(jiǎn)單、最普通的方法是窗函數(shù)法。這種方法通常是理想濾波器的頻率響應(yīng)在給定的條件下,按照要求設(shè)計(jì)一個(gè)F I R濾波器頻率響應(yīng)去無(wú)限接近理想的頻率響應(yīng)通常使用窗函數(shù)法設(shè)計(jì)FIR數(shù)字濾波器是在時(shí)域中進(jìn)行的,因此,必須首先由理想頻率響應(yīng)的傅里葉反變換推導(dǎo)出對(duì)應(yīng)的單位脈沖響應(yīng)hd(n),
分段恒定的或分段函數(shù)表示的頻率響應(yīng)是用來(lái)定義許多理想系統(tǒng)的常用手段,但是這種系統(tǒng)具有非因果的和無(wú)限長(zhǎng)的脈沖響應(yīng),即hd(n)一定是無(wú)限長(zhǎng)的序列,且是非因果的。而我們要設(shè)計(jì)的是FIR濾波器,其h(n)必定是有限長(zhǎng)的,所以要用有限長(zhǎng)的h(n)來(lái)逼近無(wú)限長(zhǎng)的hd(n),最簡(jiǎn)單且最有效的方法是截?cái)鄅d(n)
可以把h(n)表示為所需單位脈沖響應(yīng)與一個(gè)有限長(zhǎng)的窗口函數(shù)序列w(n)的乘積,即
打開(kāi)Matlab的FDAtool設(shè)計(jì)工具,分別設(shè)定響應(yīng)類型為低通,設(shè)計(jì)方法為FIR,窗函數(shù)取Kaiser窗,Beta設(shè)為0.5,濾波器階數(shù)指定為15,其采樣頻率為6.25 MHz,截止頻率是625 kHz,如圖2所示。完成濾波器參數(shù)設(shè)定后,單擊設(shè)計(jì)濾波器按鈕,即可得到設(shè)計(jì)濾波器的幅頻特性、相頻特性、沖擊響應(yīng)等。且可生成FIR濾波器系數(shù)為:
因?yàn)榫矸e運(yùn)算與加乘運(yùn)算間的換算關(guān)系,可以將濾波功能用加乘模塊具體實(shí)現(xiàn)。在QuartusⅡ軟件中,針對(duì)各加乘模塊單元進(jìn)行VHDL編程編譯后,生成相應(yīng)的符號(hào)文件。最后連接成頂層原理圖。整個(gè)電路的原理設(shè)置方案如圖3所示。
圖2 Matlab設(shè)計(jì)工具FDAtool的設(shè)計(jì)界面
對(duì)于濾波器濾波性能的驗(yàn)證方法,本文采用是輸入頻率計(jì)一定幅值的頻率信號(hào),并逐漸增大輸入信號(hào)頻率,觀察隨著信號(hào)頻率的增大,在跨越截止頻率之后信號(hào)幅值是否有大幅度衰減。由于所設(shè)計(jì)的濾波器的通帶截止頻率是625 kHz,阻帶截止頻率是1 250 kHz,可以從如圖4所示的驗(yàn)證結(jié)果中看出當(dāng)輸入信號(hào)的頻率為421 kHz時(shí),信號(hào)濾波的結(jié)果幾乎與原信號(hào)相同,但當(dāng)信號(hào)頻率增加為921 kHz時(shí),可明顯觀察出濾波后的信號(hào)幅值被衰減。
圖3 FIR濾波器整體設(shè)計(jì)方案原理
圖4 濾波效果
FIR濾波器是最常見(jiàn)、使用也最為廣泛的一類濾波器。本文首先簡(jiǎn)單介紹濾波器目前常用的設(shè)計(jì)方法,然后在此基礎(chǔ)上介紹了濾波器的直接型結(jié)構(gòu)、窗函數(shù)設(shè)計(jì)法等,并且利用Matlab軟件設(shè)計(jì)符合要求的16階濾波器的抽頭系數(shù),最后用VHDL語(yǔ)言進(jìn)行編程,并在QuartusⅡ軟件上進(jìn)行編譯仿真,最終在FPGA器件上下載驗(yàn)證濾波效果,從驗(yàn)證結(jié)果來(lái)看,該FIR濾波器的實(shí)現(xiàn)方案,具有工作速度快、實(shí)時(shí)信號(hào)好等特點(diǎn),能夠滿足實(shí)際數(shù)字系統(tǒng)的要求。
[1] 趙穎,劉祖深,李勝寅.基于MATLAB的FIR數(shù)字濾波器的方法設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2012(10):35-37.
[2] 馬月紅,馬彥恒,王雪飛.基于MATLAB的FIR數(shù)字濾波器設(shè)計(jì)與仿真[J].電子測(cè)量技術(shù),2010(11):66-69.
[3] 孫耀奇,高火濤,熊超,等.基于Matlab和FPGA的FIR數(shù)字濾波器設(shè)計(jì)及實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2008(11):89-92.
[4] 張猛.基于Matlab的FIR數(shù)字濾波器設(shè)計(jì)[J].長(zhǎng)春大學(xué)學(xué)報(bào),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
顧夢(mèng)祺(1987— ),女,江蘇徐州人,助理實(shí)驗(yàn)師,碩士;研究方向:復(fù)雜動(dòng)態(tài)網(wǎng)絡(luò)同步控制,電子產(chǎn)品開(kāi)發(fā)。