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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

11、.set 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,

12、*AR2+0 .end 用循環(huán)緩沖區(qū)實現(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

13、#6 MVPD 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, 10

14、6 .word 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, -

15、1456, -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, 3

16、7, -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)容:.title"fir.asm".mmregs.global_c_int00ORDER .set154D_LEN.set1024; The Length of Input Dataxn.usect&q

17、uot;xn",(ORDER-1)a0.usect"a0",(ORDER-1)input.usect"input",D_LENoutput.usect"output",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

18、_COEF; Copy a0(coefs) to FIR_COEF(AR3) RPT #ORDER-1 MVPD #coeff,*FIR_COEF+ STM#1, FIR_INDEX 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 "input"STM#output, DATA_OUT; Write data to "output"STM#D_LEN-1, BRCRPTBDnext-1STM#ORDER, BKLD*DATA_IN

溫馨提示

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

評論

0/150

提交評論