FIR數(shù)字濾波器的MATLAB仿真和DSP的實(shí)現(xiàn)
3.1 濾波系數(shù)確定方法
首先,各技術(shù)指標(biāo)如下:
FIR濾波器的設(shè)計(jì)采用MATLAB數(shù)字信號(hào)處理軟件包提供的專用函數(shù)來直接求取FIR濾波器系數(shù)。在MATEAB中,提供了設(shè)計(jì)濾波器的函數(shù)。采用窗函數(shù)方法的函數(shù)firl,調(diào)用格式為:b=firl(n,ωn、window)或b=firl(n,ωn),其中n是濾波器階數(shù),ωn是0~1的數(shù),ωn=ωc/2π=0.25,window為窗函數(shù)類型。由于濾波器長度N為34,因此階數(shù)n=N-1=33,則求取濾波系數(shù)的表達(dá)式為b=firl(33,0.25)。表1為利用MATLAB計(jì)算所得的濾波系數(shù)表。本文引用地址:http://www.ex-cimer.com/article/241673.htm
3.2 FIR數(shù)字濾波器MATLAB仿真設(shè)計(jì)
在滿足各技術(shù)指標(biāo)的前提下,經(jīng)MATLAB仿真,圖1為頻率響應(yīng)曲線,阻帶衰減小于50 dB。圖2為S=S1+S2+S3的波形,其中S1=sin(50x 2xπxt),S2=0.15xsin(25x50x2xπxt),S3=0.1xsin(20x50x2xπxt)。圖3為濾除掉25次諧波S2和20次諧波S3后的波形圖。
由濾波前后兩個(gè)波形對(duì)比可以看出,該濾波器對(duì)20次以上諧波的濾除效果比較理想。3.3 FIR數(shù)字濾波器的DSP實(shí)現(xiàn)
下面對(duì)程序流程作詳細(xì)說明:
首先初始化DSP寄存器,分配存儲(chǔ)單元,并定義一些變量名稱,接著在數(shù)據(jù)存儲(chǔ)區(qū)中開辟一個(gè)N單元的緩沖區(qū),存放由MATLAB設(shè)計(jì)出的N個(gè)濾波系數(shù)。接下來讀入采樣值,并存入相應(yīng)存儲(chǔ)器A,然后開始濾波運(yùn)算。具體運(yùn)算步驟如下:
1)累加器ACC清零,初始化兩個(gè)準(zhǔn)備相乘的存儲(chǔ)單元A與B的計(jì)數(shù)值K和L;
2)將第K個(gè)采樣值A(chǔ)K與濾波器系數(shù)序列第L個(gè)數(shù)BL相乘(K+L=N+1),并將乘積送入累加器進(jìn)行累加;
3)將第K-1個(gè)采樣值A(chǔ)K-1存入AK單元,此時(shí)AK中的原數(shù)值被覆蓋;
4)重復(fù)(2)~(3)直至共完成N次乘加運(yùn)算;
5)輸出處理結(jié)果。
濾波運(yùn)算采用FFT算法。DSP控制器特有的反序間接尋址,為FFT算法的實(shí)現(xiàn)提供了方便。間接尋址方式還可以實(shí)現(xiàn)增/減l或增/減一個(gè)變址量,這就很容易實(shí)現(xiàn)各種查表方法。
4 結(jié)束語
介紹了采用窗函數(shù)設(shè)計(jì)法用Matlab仿真技術(shù)和DSP技術(shù)來實(shí)現(xiàn)FIR濾波器的設(shè)計(jì)過程。Matlab仿真非常方便設(shè)計(jì)出具有嚴(yán)格線性相位要求的濾波器,在應(yīng)用中只需對(duì)程序中濾波器的起始頻率、截止頻率、采樣頻率和窗函數(shù)等參數(shù)進(jìn)行修改就可實(shí)現(xiàn)需要的濾波功能,實(shí)用性強(qiáng)。采用DSP控制器來實(shí)現(xiàn)FFT運(yùn)算從而使設(shè)計(jì)實(shí)現(xiàn)實(shí)時(shí)控制。利用Matlab輔助DSP實(shí)現(xiàn)FIR濾波器的設(shè)計(jì)是解決濾波器從設(shè)計(jì)到實(shí)現(xiàn)的有效辦法,這個(gè)方法可以大大縮短DSP應(yīng)用程序的開發(fā)時(shí)間,提高了設(shè)計(jì)效率,具有很強(qiáng)的實(shí)用性。
濾波器相關(guān)文章:濾波器原理
濾波器相關(guān)文章:濾波器原理
電源濾波器相關(guān)文章:電源濾波器原理
數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理
評(píng)論