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