基于DSP的數(shù)字濾波器的設(shè)計(jì)與仿真_第1頁(yè)
基于DSP的數(shù)字濾波器的設(shè)計(jì)與仿真_第2頁(yè)
基于DSP的數(shù)字濾波器的設(shè)計(jì)與仿真_第3頁(yè)
基于DSP的數(shù)字濾波器的設(shè)計(jì)與仿真_第4頁(yè)
基于DSP的數(shù)字濾波器的設(shè)計(jì)與仿真_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2.1系統(tǒng)功能介紹一個(gè)實(shí)際的應(yīng)用系統(tǒng)中,總存在各種干擾。數(shù)字濾波器在語音信號(hào)處理、信號(hào)頻譜估計(jì)、信號(hào)去噪、無線通信中的數(shù)字變頻以及圖像信號(hào)等各種信號(hào)處理中都有廣泛的應(yīng)用,數(shù)字濾波器也是使用最為廣泛的信號(hào)處理算法之一。在本設(shè)計(jì)中,使用MATLAB模擬產(chǎn)生合成信號(hào),然后利用CCS進(jìn)行濾波。設(shè)定模擬信號(hào)的采樣頻率為48000Hz,。設(shè)計(jì)一個(gè)FIR低通濾波器,其參數(shù)為:濾波器名稱: FIR低通濾波器采樣頻率: Fs=48000Hz通帶截止頻率: 15000Hz阻帶截止頻率: 16000Hz通帶最大衰減: 0.1dB阻帶最少衰減: 80dB濾波器系數(shù): 由MATLAB根據(jù)前述參數(shù)求得。2.2 總體設(shè)計(jì)方

2、案流程圖 圖1 總體設(shè)計(jì)方案 主要內(nèi)容和步驟3.1 濾波器原理對(duì)于一個(gè)FIR濾波器系統(tǒng),它的沖擊響應(yīng)總是又限長(zhǎng)的,其系統(tǒng)函數(shù)可記為: 其中是FIR的濾波器的階數(shù),為延時(shí)結(jié),為端口信號(hào)函數(shù)。最基本的FIR濾波器可用下式表示: 其中輸入采樣序列,是濾波器系數(shù),是濾波器的階數(shù)表示濾波器的輸出序列,也可以用卷積來表示輸出序列與、的關(guān)系,如下: 3.2 操作步驟(1)打開FDATOOL,根據(jù)濾波要求設(shè)置濾波器類型、通帶截止頻率、指定階數(shù)、采樣頻率等。指定完設(shè)計(jì)參數(shù)后單擊按鈕Design Filter,生成濾波器系數(shù)。(2)把生成的濾波器系數(shù)傳到目標(biāo)DSP。選擇菜單Targets-Export to Co

3、de Composer Studio(tm)IDE,打開Export to C Header File對(duì)話框,選擇C header file,指定變量名(濾波器階數(shù)和系數(shù)向量),輸出數(shù)據(jù)類型可選浮點(diǎn)型或32 b,16 b整型等,根據(jù)自己安裝選擇目標(biāo)板板號(hào)和處理器號(hào),單擊OK,保存該頭文件,需指定文件名(filtercoeffh)和路徑(保存在c:timyprojectsfir工程中)。(3)修改CCS匯編程序,刪掉數(shù)據(jù)前的所有文字,在開頭加上.data,第二行加coeff .word,在每行的前面加上.word,比且把每行的最后的逗號(hào)去掉。(4)編譯匯編程序,如果有錯(cuò)誤,按錯(cuò)誤進(jìn)行修改;沒錯(cuò)誤

4、,則往下執(zhí)行。(5)加載初始化DATA數(shù)據(jù)。運(yùn)行程序,查看輸入輸出波形,修改相應(yīng)參數(shù)進(jìn)行調(diào)試第4章 詳細(xì)設(shè)計(jì)在本實(shí)驗(yàn)中使用MATLAB模擬產(chǎn)生信號(hào),觀察濾波前的時(shí)域波形和頻域波形。MATLAB仿真后,使用得到的濾波器參數(shù),進(jìn)行DSP編程,在DSP中實(shí)現(xiàn)帶通濾波,并使用CCS的頻譜分析功能,查看DSP的濾波效果。MATLAB程序流程圖如圖4.1所示圖4.1 MATLAB程序流程圖CCS匯編程序流程圖如圖4.2所示圖4.2 CCS匯編程序流程圖第5章 實(shí)驗(yàn)過程5.1 匯編語言實(shí)驗(yàn)步驟與內(nèi)容MATLAB輔助DSP 實(shí)現(xiàn)FIR ,其總體過程為在DSP 中編寫處理程序,在MATLAB中利用濾波器設(shè)計(jì)、分

5、析工具( FDATOOL) ,根據(jù)指定的濾波器性能快速設(shè)計(jì)一個(gè)FIR ,然后把濾波器系數(shù)以頭文件形式導(dǎo)入CCS 中,頭文件中MATLAB 輔助DSP 實(shí)現(xiàn)FIR 數(shù)字濾波器含濾波器階數(shù)和系數(shù)數(shù)組,在MATLAB中調(diào)試、運(yùn)行DSP 程序并顯示、分析處理后的數(shù)據(jù)。使用該方法,便于采用匯編語言來實(shí)現(xiàn)程序。頭文件名不變,當(dāng)MATLAB中設(shè)計(jì)的濾波器系數(shù)改變時(shí),相應(yīng)頭文件中系數(shù)也改變,方便了程序調(diào)試、仿真。(1)在MATLAB中先編寫程序,查看待濾波和已濾波的信號(hào)的時(shí)域和頻域波形,如圖5.1和圖5.2所示。 圖5.1 待濾波信號(hào)的時(shí)域圖 圖5.2 待濾波信號(hào)的頻域圖利用FDA TOOL 設(shè)計(jì)FIR 濾波

6、器的參數(shù),操作步驟如圖5.3所示。圖5.3 FIR濾波器的參數(shù)打開Export,把Numerator改為B,如圖5.4所示。圖5.4 Export設(shè)置已濾波的信號(hào)的時(shí)域和頻域波形,如圖5.5和圖5.6所示。圖5.5 已濾波信號(hào)時(shí)域波形圖 圖5.6 已濾波信號(hào)頻域波形圖MATLAB濾波器設(shè)計(jì)工具在完成FIR設(shè)計(jì)后,如圖5.7所示,在Export as中選擇16bit符號(hào)整數(shù)輸出,然后單擊OK按鈕。生成fir.h C語言頭文件。將系數(shù)稍作修改,調(diào)整后拷貝到程序的系數(shù)初始化空間即可。圖5.7 MATLAB輸出數(shù)值轉(zhuǎn)換圖(2)在CCS中編寫匯編語言程序,進(jìn)行調(diào)試,實(shí)現(xiàn)帶通濾波的功能。在CCS IDE

7、中建立LHM.pjt工程,用匯編語言編寫處理主程序fir.asm。另外根據(jù)板上的存儲(chǔ)器配置方式,編寫存儲(chǔ)器配置文件fir.cmd文件,將MATLAB生成的LHM.h和input1.dat文件拷貝到LHM.pjt工程文件夾下,進(jìn)行編譯、鏈接,生成可執(zhí)行文件LHM.out。 (3)加載初始化data數(shù)據(jù),圖5.8所示。圖5.8 data初始化圖運(yùn)行程序,查看輸入輸出波形,修改相應(yīng)參數(shù)進(jìn)行調(diào)試。5.2 實(shí)驗(yàn)過程中出現(xiàn)的錯(cuò)誤及解決的辦法(1)在MATLAB程序設(shè)計(jì)中,采樣頻率設(shè)置的過小,截止頻率大于采樣頻率的一半,運(yùn)行的時(shí)候圖形出現(xiàn)錯(cuò)誤。(2)FIR.m中的采樣頻率要和開始設(shè)置時(shí)的采樣頻率一致,否則結(jié)

8、果會(huì)出現(xiàn)偏差。(3)在CCS中未定義標(biāo)號(hào),程序運(yùn)行錯(cuò)誤。(4)在.h文件中未把coeff頂格寫,編譯時(shí)出現(xiàn)錯(cuò)誤。(5)未將fir.h和input.dat文件考入工程文件中。(6)間接尋址過程中,程序中丟失。 (7) 在View的Graph中單擊Time/frequency出現(xiàn)graph property dialog框,未修改抽樣點(diǎn)數(shù)。顯示的圖形出現(xiàn)差異5.3 CCS程序運(yùn)行后的各種輸出結(jié)果在View的Graph中單擊Time/frequency出現(xiàn)graph property dialog框。將顯示類型,圖形名稱,起始地址,抽樣點(diǎn)數(shù),數(shù)據(jù)類型等分別進(jìn)行設(shè)置,輸出各種波形。輸出濾波前的信號(hào)時(shí)域

9、波形。首先,設(shè)置如圖5.9所示,輸出濾波前的信號(hào)時(shí)域波形。圖5.9 Graph property dialog設(shè)置框圖單擊OK后生成如下圖5.10波形。圖5.10濾波前信號(hào)波形圖圖5.10為濾波前的信號(hào),波形很雜亂,從時(shí)域上很難看出信號(hào)的周期性。修改相應(yīng)設(shè)置,輸出如圖5.11所示濾波前信號(hào)頻譜。圖5.11濾波前信號(hào)頻譜波形圖經(jīng)過濾波后,時(shí)域波形頻譜波形如圖5.12和5.13所示。圖5.12 濾波后信號(hào)時(shí)域波形圖圖5.13 濾波后信號(hào)頻譜圖由上述的所有截圖可知,輸入?yún)?shù)中,通帶截止頻率和阻帶截止頻率是比較重要的兩個(gè)參數(shù),不宜過小,過小濾掉的高頻成分太多,很難還原出遠(yuǎn)波形的形狀,也不宜過大,過大濾

10、波效果欠佳。在本課程設(shè)計(jì)中,通帶截止頻率選用4000Hz,阻帶截止頻率選用4500Hz,因此,顯示圖形時(shí)的,時(shí)域顯示的抽樣點(diǎn)數(shù)為1024,頻域顯示的帶寬為0.5Hz。對(duì)比濾波前后信號(hào)的時(shí)域圖5.10和5.12、頻譜波形圖5.11和5.13可以知道,濾波前的時(shí)域信號(hào)的波形圖的波形很雜亂,很難看出信號(hào)的周期性,濾波后周期性也相對(duì)的明顯起來了;濾波前信號(hào)分布在整個(gè)頻帶上,濾波后阻帶范圍內(nèi)的基本被濾掉,這些都可以從上述截圖看出。附件:源程序清單用線性緩沖區(qū)實(shí)現(xiàn)FIR濾波器程序清單: .title “FIR1.ASM” .mmregs .def start x .usect “x”,8 PA0 .set

11、 0 PA1 .set 1 .data COEF: .word 1*32768/10 .word 2*32768/10 .word -4*32768/10 .word 3*32768/10 .word -4*32768/10 .word 2*32768/10 .word 1*32768/10 .textstart: SSBX FRCT STM #x+7,AR2 STM #6,AR0 LD #x+1,DP PORTR PA1,x+1FIR1: RPTZ A,#6 MACD *AR2-,COEF,A STH A,*AR2 PORTW *AR2+,PA0 BD FIR1 PORTR PA1,*AR2

12、+0 .end 用循環(huán)緩沖區(qū)實(shí)現(xiàn)FIR濾波器程序清單: .title “FIR2.ASM” .mmregs .def start .bss y,1xn .usect “xn”,7b0 .usect “b0”,7PA0 .set 0PA1 .set 1 .datatable: .word 1*32768/10 .word 2*32768/10 .word 3*32768/10 .word 4*32768/10 .word 5*32768/10 .word 6*32768/10 .word 7*32768/10 .text start: SSBX FRCT STM #b0,AR1 RPT #6 M

13、VPD table,*AR1+ STM #xn+6,AR2 STM #b0+6,AR3 STM #7,BK STM #-1,AR0 LD #xn,DP PORTR PA1,xnFIR2: RPTZ A,#6 MAC *AR2+0%,*AR3+0%,A STH A,y PORTW y,PA0 BD FIR2 PORTR PA1,*AR2+0% .end 匯編程序清單lhm.h文件內(nèi)容: .datacoeff .word -85, -64, -61, -36, 8, 62, 110, 136, 131 .word 96, 42, -11, -44, -44, -11, 39, 85, 106 .w

14、ord 88, 37, -29, -83, -101, -73, -7, 70, 124 .word 131, 82, -5, -96, -151, -144, -72, 37, 140 .word 191, 162,61, -76, -191, -231, -174, -35, 132 .word 256, 278, 180, -7, -208, -337, -330, -176, 72 .word 316, 445, 392, 156, -178, -475, -599, -470, -108 .word 361, 745, 857, 594, -6, -748, -1336, -1456

15、, -893 .word 386, 2192, 4154, 5816, 6768, 6768, 5816, 4154, 2192 .word 386, -893, -1456, -1336, -748, -6, 594, 857, 745 .word 361, -108, -470, -599, -475, -178, 156, 392, 445 .word 316, 72, -176, -330, -337, -208, -7, 180, 278 .word 256, 132, -35, -174, -231, -191, -76, 61, 162 .word 191, 140, 37, -

16、72, -144, -151, -96, -5, 82 .word 131, 124, 70, -7, -73, -101, -83, -29, 37 .word 88, 106, 85, 39, -11, -44, -44, -11, 42 .word 96, 131, 136, 110, 62, 8, -36, -61, -64 .word -85Fir.asm內(nèi)容:.titlefir.asm.mmregs.global_c_int00ORDER .set154D_LEN.set1024; The Length of Input Dataxn.usectxn,(ORDER-1)a0.use

17、cta0,(ORDER-1)input.usectinput,D_LENoutput.usectoutput,D_LEN.copy HM.h; Get coefs from coef.h.text.asgAR0, FIR_INDEX.asgAR2, FIR_DATA.asgAR3, FIR_COEF.asgAR5, DATA_IN.asgAR6, DATA_OUT_c_int00:SSBX FRCT STM #a0,FIR_COEF; Copy a0(coefs) to FIR_COEF(AR3) RPT #ORDER-1 MVPD #coeff,*FIR_COEF+ STM#1, FIR_I

18、NDEX STM#xn, FIR_DATA; Copy xn(data) to FIR_DATA(AR2) RPTZA,#ORDER-1 STLA, *FIR_DATA+STM #(xn+ORDER-1), FIR_DATASTM #(a0+ORDER-1), FIR_COEFSTM#input, DATA_IN; Get data from inputSTM#output, DATA_OUT; Write data to outputSTM#D_LEN-1, BRCRPTBDnext-1STM#ORDER, BKLD*DATA_IN+, AFIR:STLA, *FIR_DATA+%RPTZA, (ORDER-1)MAC*FIR_DATA+0%, *FIR_COEF+0%, A; FIRSSTHA, *DATA_OUT+nextFIR_END:B FIR_END.endFIR.m的程序如下:fs=40000; %/采樣HzN=1024 %數(shù)據(jù)個(gè)數(shù)T=1/fs; %采樣周期n=0:N-1;df=n*(fs/N)%待濾波信號(hào)波形xin=randn(1,1024)figure(1)plot(xin)%待濾波信號(hào)頻譜xinff=abs(fft(xin);figure(2)plo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論