基于FDATool的FIR濾波器設(shè)計(jì)方法(一)
FIR 濾波器廣泛應(yīng)用于數(shù)字信號(hào)處理中,主要功能就是將不感興趣的信號(hào)濾除,留下有用信號(hào)。FIR濾波器是全零點(diǎn)結(jié)構(gòu),系統(tǒng)永遠(yuǎn)穩(wěn)定;并且具有線性相位的特征,在有效頻率范圍內(nèi)所有信號(hào)相位上不失真。在無(wú)線通信收發(fā)機(jī)中的DDC/DUC模塊,抽取和內(nèi)插都需要加入濾波器以防止信號(hào)在頻譜上混疊,最典型的是采用 FIR濾波器實(shí)現(xiàn)半帶濾波器。
本文引用地址:http://2s4d.com/article/249651.htmFIR濾波處理如下式所示,其中x(n)為輸入信號(hào),h(n)為FIR濾波系數(shù),y(n)為經(jīng)過(guò)濾波后的信號(hào);N表示FIR濾波器的抽頭數(shù),濾波器階數(shù)為N-1。
由上式可得到FIR濾波器在FPGA中的實(shí)現(xiàn)結(jié)構(gòu),如圖1所示,主要由延遲單元Z-1、乘法器和累加器組成。此結(jié)構(gòu)為直接型FIR濾波器結(jié)構(gòu),也稱橫向結(jié)構(gòu)(transverse)。
圖1
設(shè)計(jì)FIR濾波器的方法有多種,其中Matlab軟件提供了很多關(guān)于濾波器設(shè)計(jì)的工具箱,FDATool就是一個(gè)很好的工具,如圖2所示就是FDATool的界面,可以在Matlab的Command窗口中直接輸入FDATool命令來(lái)調(diào)用。
圖2
濾波器的設(shè)計(jì)首先需要設(shè)置的參數(shù):
(1) Response Type:選擇FIR濾波器的類型:低通、高通、帶通和帶阻等。如圖3所示為L(zhǎng)owpass中的下拉選項(xiàng),在DDC/DUC模塊設(shè)計(jì)中,抽取和內(nèi)插需要使用Halfband Lowpass類型,而channel filter需要使用Raised-cosine類型。
圖3
(2) Design Method:FIR濾波器設(shè)計(jì)方法有多種,如圖4所示,最常用的是窗函數(shù)設(shè)計(jì)法(Window)、等波紋設(shè)計(jì)法(Equiripple)和最小二乘法 (Least-Squares)等。其中窗函數(shù)設(shè)計(jì)法在學(xué)校課堂中是重點(diǎn)講解的,提到FIR濾波器肯定會(huì)想到hamming、kaiser窗,但是實(shí)際應(yīng)用中卻很少使用,因?yàn)槿绻捎么昂瘮?shù)設(shè)計(jì)法,達(dá)到所期望的頻率響應(yīng),與其它方法相比往往階數(shù)會(huì)更多;而且窗函數(shù)設(shè)計(jì)法一般只參照通頻帶wp、抑制頻帶ws 和理想增益來(lái)設(shè)計(jì)濾波器,但是實(shí)際應(yīng)用中通頻帶和抑制帶的波紋也是需要考慮的,那在這種情況下,采用等波紋設(shè)計(jì)法就非常適用了。
圖4
(3) Filter Order:設(shè)置濾波器的階數(shù),這個(gè)選項(xiàng)直接影響濾波器的性能,階數(shù)越高,性能越好,但是相應(yīng)在FPGA實(shí)現(xiàn)耗用的資源需要增多。在這個(gè)設(shè)置中提供2個(gè)選項(xiàng):Specify order和Minimum order,Specify order是工程師自己確定濾波器的階數(shù),Minimum order是讓工具自動(dòng)確定達(dá)到期望的頻率相應(yīng)所需要的最小階數(shù),因此具體選擇哪個(gè)選項(xiàng)得視實(shí)際情況而定了。
圖5
(4) Frequency Specification:設(shè)置頻率響應(yīng)的參數(shù),包括采樣頻率Fs、通帶頻率Fpass和阻帶頻率Fstop。
圖6
參數(shù)設(shè)置完成后,F(xiàn)DATool就會(huì)分析并且生成濾波系數(shù),如圖7所示,可以得到濾波器的頻率相應(yīng)曲線,并且可以通過(guò)File-》Export導(dǎo)出濾波系數(shù),如圖8所示。
圖7
圖8
為了快速驗(yàn)證FIR濾波器的FPGA實(shí)現(xiàn),使用Xilinx的System Generator工具,如圖9所示為FIR濾波器的驗(yàn)證模型,其中通過(guò)Gateway In和Gateway out模塊分隔matlab simulink模塊和Xilinx FPGA模塊,matlab simulink模塊用于產(chǎn)生測(cè)試源,接收并顯示濾波后波形。還有System Generator Token用于生成Xilinx FPGA模塊的HDL代碼。
圖9
其中FIR Compiler 5.0模塊的參數(shù)設(shè)置如圖10所示,濾波系數(shù)直接調(diào)用FDATool生成的濾波系數(shù)equ_coe,輸出為全精度數(shù)據(jù)。
圖10
得到輸出結(jié)果如圖11所示,上邊圖為輸入原波形,由兩個(gè)頻率分量的正弦波疊加而成,頻率分別為2MHz和100MHz,經(jīng)過(guò)FIR濾波之后,100MHz頻率分量被濾除。
圖11
濾波器相關(guān)文章:濾波器原理
濾波器相關(guān)文章:濾波器原理
電源濾波器相關(guān)文章:電源濾波器原理
高通濾波器相關(guān)文章:高通濾波器原理 數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理
評(píng)論