




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、dsp課程考核論文 課程名稱(chēng): dsp原理與應(yīng)用教程 題 目:基于dsp的卷積算法的實(shí)現(xiàn) 專(zhuān) 業(yè): 電子信息工程 班 級(jí): 08級(jí)1班 目錄摘 要.3緒 論.3課程設(shè)計(jì)方案及原理.3課程設(shè)計(jì)步驟及過(guò)程.10總 結(jié).17參考文獻(xiàn).17基于dsp的卷積算法的實(shí)現(xiàn)摘要:卷積和(簡(jiǎn)稱(chēng)卷積)是信號(hào)處理中常用的算法之一。數(shù)字卷積運(yùn)算通常采用兩種方法:線性卷積和圓卷積。為了能使卷積運(yùn)算在c54x系列dsp上的實(shí)現(xiàn)方法,首先要對(duì)數(shù)字卷積的基本概念作深入了解。使大家從根本上掌握卷積的實(shí)現(xiàn)方法,我們以模擬信號(hào)的卷積和數(shù)字信號(hào)的卷積為主,以及他們?cè)赾54x系列dsp上的實(shí)現(xiàn)方法。緒論:在通信和信號(hào)處理中,常用的運(yùn)算
2、,如卷積,自相關(guān),濾波和快速傅里葉交換等。都具有較高的密度性和復(fù)雜性,而這些運(yùn)算中所用到的最基本的是乘法-累加運(yùn)算。c54x的硬件及軟件設(shè)計(jì)使其具有快速的進(jìn)行乘法-累加運(yùn)算功能,并具有豐富的軟件資源為這些算法的實(shí)施提供有力的條件。因此,這種芯片在通信及信號(hào)處理等領(lǐng)域得到廣泛的應(yīng)用。本節(jié)主要介紹卷積算法在dsp原理中的應(yīng)用。課程設(shè)計(jì)方案及原理一、實(shí)驗(yàn)?zāi)康?掌握用窗函數(shù)法設(shè)計(jì)卷積算法的原理和方法;2熟悉卷積算法特性;3了解各種窗函數(shù)對(duì)卷積算法的影響。二、實(shí)驗(yàn)設(shè)備計(jì)算機(jī),code composer studio 2.0 for c5000系統(tǒng)。三、實(shí)驗(yàn)原理1卷積的基本原理和公式 卷集和:對(duì)離散系統(tǒng)“
3、卷積和”也是求線性時(shí)不變系統(tǒng)輸出響應(yīng)(零狀態(tài)響應(yīng))的主要方法。 卷積和的運(yùn)算在圖形表示上可分為四步: y(n)= x(m)h(nm)=x(n)*h(n) m= 1)翻褶 先在啞變量坐標(biāo)m上作出x(m)和h(m),將m=0的垂直軸為軸翻褶成h(-m)。 2)移位 將h(-m)移位n,即得h(n-m)。當(dāng)n為正整數(shù)時(shí),右移n位。當(dāng)n為負(fù)整數(shù)時(shí),左移n位。 3)相乘 再將h(n-m)和x(m)的相同m值的對(duì)應(yīng)點(diǎn)值相乘。 4)相加 把以上所有對(duì)應(yīng)點(diǎn)的乘積疊加起來(lái),即得y(n)值。依上法,取n=,-2,-1,0,1,2,3,各值,即可得全部y(n)值。 2.程序流程圖3程序的自編函數(shù)及其功能 (1)pr
4、ocessing1(int *input2, int *output2) 調(diào)用形式:processing1(int *input2, int *output2) 參數(shù)解釋?zhuān)篿ntput2、output2為兩個(gè)整型指針數(shù)組。 返回值解釋?zhuān)悍祷亓艘粋€(gè)“tren”,讓主函數(shù)的while循環(huán)保持連續(xù)。 功能說(shuō)明:對(duì)輸入的input2 buffer波形進(jìn)行截取m點(diǎn),再以零點(diǎn)的y軸為對(duì)稱(chēng)軸進(jìn)行翻褶,把生成的波形上的各點(diǎn)的值存入以output2指針開(kāi)始的一段地址空間中。 (2)processing2(int *output2, int *output3) 調(diào)用形式:processing2(int *outp
5、ut2, int *output3) 參數(shù)解釋?zhuān)簅utput2、output3為兩個(gè)整型指針數(shù)組。 返回值解釋?zhuān)悍祷亓艘粋€(gè)“tren”,讓主函數(shù)的while循環(huán)保持連續(xù)。 功能說(shuō)明:對(duì)輸出的output2 buffer波形進(jìn)行作n點(diǎn)移位,然后把生成的波形上的各點(diǎn) 的值存入以output3指針開(kāi)始的一段地址空間中。 (3)processing3(int *input1,int *output2,int *output4) 調(diào)用形式:processing3(int *input1,int *output2,int *output4) 參數(shù)解釋?zhuān)簅utput2、output4、input1為三個(gè)整型
6、指針數(shù)組。 返回值解釋?zhuān)悍祷亓艘粋€(gè)“tren”,讓主函數(shù)的while循環(huán)保持連續(xù)。 功能說(shuō)明:對(duì)輸入的input2 buffer波形和輸入的input1 buffer作卷積和運(yùn)算,然后把 生成的波形上的各點(diǎn)的值存入以output4指針開(kāi)始的一段地址空間中。 (4)processing4(int *input2,int *output1) 調(diào)用形式:processing4(int *input2,int *output1) 參數(shù)解釋?zhuān)簅utput1、input2為兩個(gè)整型指針數(shù)組。 返回值解釋?zhuān)悍祷亓艘粋€(gè)“tren”,讓主函數(shù)的while循環(huán)保持連續(xù)。 功能說(shuō)明:對(duì)輸入的input2 buffe
7、r波形截取m點(diǎn),然后把生成的波形上的各點(diǎn)的值存 入以output1指針開(kāi)始的一段地址空間中。源程序如下:#include #include volume.h/* global declarations */int inp1_bufferbufsize;int inp2_bufferbufsize; /* processing data buffers */int out1_bufferbufsize;int out2_bufferbufsize;int out3_bufferbufsize;int out4_bufferbufsize*2;int size = bufsize;int ain
8、= mingain;int zhy=0;int sk=64; /*sk代表所開(kāi)的bufsize的大小,需修改它.輸入文件sine.dat為32點(diǎn),sine11.dat, sin22.dat,sin33.dat,sin44.dat為64點(diǎn)的輸入波形.*/ /* volume control variable */unsigned int processingload = 1; /* processing routine /load value */* functions */extern void load(unsigned int loadvalue);static int processin
9、g1(int *output1, int *output2);static int processing2(int *output2, int *output3); static int processing3(int *input1,int *output2,int *output4);static int processing4(int *input2, int *output1);static void dataio1(void);static void dataio2(void);/* * = main = */void main() int *input1 = &inp1_buffe
10、r0; int *input2 = &inp2_buffer0; int *output1 = &out1_buffer0; int *output2 = &out2_buffer0; int *output3 = &out3_buffer0; int *output4 = &out4_buffer0; puts(volume example startedn); /* loop forever */ while(true) /* * read input data using a probe-point connected to a host file. * write output dat
11、a to a graph connected through a probe-point. */ dataio1(); dataio2(); /* apply gain */ processing4(input2,output1); processing1(output1, output2); processing2(output2, output3); processing3(input1,output2,output4) ; /* * = processing = * * function: apply signal processing transform to input signal
12、. * * parameters: address of input and output buffers. * * return value: true. */static int processing4(int *input2,int *output1) int m=sk; for(;m=0;m-) *output1+ = *input2+ * ain; for(;(size-m)0;m+) output1m=0; /load(processingload); return(true); static int processing1(int *output1,int *output2) i
13、nt m=sk-1; for(;m0;m-) *output2+ = *output1+ * ain; /* additional processing /load */ /load(processingload); return(true);static int processing2(int *output2, int *output3) int n=zhy; size=bufsize; for(;(size-n)0;n+) *output3+ = output2n; /* for (;n0;n-) *output3+ = 0; */ /load(processingload); retu
14、rn(true); static int processing3(int *input1,int *output2,int *output4) int m=sk; int y=zhy; int z,x,w,i,f,g; for(;(m-y)0;) i=y; x=0; z=0; f=y; for(;i=0;i-) g=input1z*output2f; x=x+g; z+; f-; *output4+ = x; y+; m=sk; y=sk-1; w=m-zhy-1; for(;m0;m-) y-; i=y; z=sk-1; x=0; f=sk-y; for(;i0;i-,z-,f+) g=in
15、put1z*output2f; x=x+g; out4_bufferw=x; w+; /load(processingload); return(true); /* * = dataio = * * function: read input signal and write processed output signal. * * parameters: none. * * return value: none. */static void dataio1() /* do data i/o */ return;static void dataio2() /* do data i/o */ re
16、turn;課程設(shè)計(jì)步驟及過(guò)程 1實(shí)驗(yàn)準(zhǔn)備 (1)連接設(shè)備 關(guān)閉計(jì)算機(jī)和實(shí)驗(yàn)箱電源。 如使用pp型仿真器則用附帶的并口連線連接計(jì)算機(jī)并口和仿真器相應(yīng)接口。 檢查icetek-vc5416-a板上dip開(kāi)關(guān)mp/mc的位置,應(yīng)設(shè)置在“off”位置(靠近 復(fù)位按鈕),即設(shè)置dsp工作在mp方式。 關(guān)閉實(shí)驗(yàn)箱上三個(gè)開(kāi)關(guān)。 (2)開(kāi)啟設(shè)備 打開(kāi)計(jì)算機(jī)電源。 打開(kāi)實(shí)驗(yàn)箱電源開(kāi)關(guān), 如使用usb型仿真器用附帶的usb電纜連接計(jì)算機(jī)和仿真器相應(yīng)接口,注意仿真器上 兩個(gè)指示燈均亮。 (3)設(shè)置code composer studio為simulator方式: 參見(jiàn)“code composer studio入門(mén)實(shí)
17、驗(yàn)”之四.2。 (4)啟動(dòng)code composer studio 2.02打開(kāi)工程,瀏覽程序,工程目錄為c:icetek-vc5416-edulablab20-convolve3編譯并下載程序 4設(shè)置輸入數(shù)據(jù)文件 請(qǐng)?jiān)赾程序中的如下兩行上設(shè)置probe point:dataio1();1 dataio2(); 設(shè)置方法是把光標(biāo)指示到這一行上,按鼠標(biāo)右鍵,從顯示的菜單上分別選擇probe point。 在c程序的“dataio1();”行上設(shè)置break point。5打開(kāi)觀察窗口-選擇菜單“view”、“graph”、“time/frequency”進(jìn)行如下設(shè)置: -選擇菜單“view”、“
18、graph”、“time/frequency”進(jìn)行如下設(shè)置: -在彈出的三個(gè)圖形窗口中單擊鼠標(biāo)右鍵,選擇“clear display”。6. 設(shè)置波形輸入文件 -選擇“file”菜單中的“file i/o”,打開(kāi)“file i/o”窗口;單擊“add file”按鈕,在“fileinput”窗口中選擇c:icetek-vc5416-edulablab20-convolve目錄下的sin.dat文件,單擊“打開(kāi)”按鈕;在“address”項(xiàng)中輸入inp1_buffer,在“l(fā)ength”項(xiàng)中輸入32,在“warp around”項(xiàng)前加上選擇標(biāo)記,單擊“add probe point”按鈕; -在
19、“break/probe/profile points”窗口中單擊“probe point”列表中的“convolve.c line52 noconnection”,再單擊“connect”項(xiàng)尾部的展開(kāi)按鈕,在顯示的展開(kāi)式列表中選擇列表末尾的“file in:c:.sin.dat”,單擊“replace”按鈕,單擊“確定”按鈕。 -在“file i/o”窗口中單擊“確定”,完成設(shè)置。 -選擇“file”菜單中的“file i/o”,打開(kāi)“file i/o”窗口;單擊“add file”按鈕,在“fileinput”窗口中選擇c:icetek-vc5416-edulablab20-convolv
20、e目錄下的sin.dat文件,單擊“打開(kāi)”按鈕;在“address”項(xiàng)中輸入inp2_buffer,在“l(fā)ength”項(xiàng)中輸入32,在“warp around”項(xiàng)前加上選擇標(biāo)記,單擊“add probe point”按鈕; -在“break/probe/profile points”窗口中單擊“probe point”列表中的“convolve.c line53 noconnection”,再單擊“connect”項(xiàng)尾部的展開(kāi)按鈕,在顯示的展開(kāi)式列表中選擇列表末尾的“file in:c:.sin.dat”,單擊“replace”按鈕,單擊“確定”按鈕。 -在“file i/o”窗口中單擊“確定”,完成設(shè)置。7運(yùn)行程序,觀察結(jié)果 -按f5鍵運(yùn)行程序,待程序停留在軟件斷點(diǎn);觀察剛才打開(kāi)的三個(gè)圖形窗口,其中顯示的是輸入和輸出的時(shí)域波形; -觀察頻域波形:在各圖形窗口中單擊鼠標(biāo)右鍵,選擇“properties”,在“graph property dialog”中的第1項(xiàng)“display type”項(xiàng)中選擇“fft magnitude”,單擊“ok”完成;這 時(shí)圖形窗口中顯示波形的頻域圖。(也可再打開(kāi)顯示頻域圖的窗口) -驗(yàn)算結(jié)果:在各頻域窗口中的波形上單擊鼠標(biāo)左鍵,將光標(biāo)停到統(tǒng)一的位置(通過(guò)觀察窗口狀態(tài)欄中的第1個(gè)浮點(diǎn)數(shù)表示其坐標(biāo)值),讀取
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 入戶維修調(diào)研報(bào)告范文
- 熱成型實(shí)驗(yàn)報(bào)告范文
- 2025年度智慧城市建設(shè)合作協(xié)議解除合同書(shū)
- 二零二五年度網(wǎng)絡(luò)游戲押金轉(zhuǎn)讓與賬號(hào)安全保障協(xié)議
- 二零二五年度平面模特時(shí)尚雜志封面拍攝合同書(shū)
- 二零二五年度獵聘市場(chǎng)營(yíng)銷(xiāo)人才委托協(xié)議
- 二零二五年度輪胎品牌授權(quán)與銷(xiāo)售代理合同
- 二零二五年度交通事故保險(xiǎn)賠償協(xié)議書(shū)(含事故調(diào)查服務(wù))
- 2025年度社區(qū)餐飲合伙經(jīng)營(yíng)與社區(qū)服務(wù)合同
- 二零二五年度農(nóng)村土地流轉(zhuǎn)合同轉(zhuǎn)讓與生態(tài)保護(hù)協(xié)議
- 委托處置不良資產(chǎn)協(xié)議(三篇)
- 中鐵建新員工培訓(xùn)
- 2024年02月國(guó)家鐵路局事業(yè)單位招考聘用27人筆試歷年(2016-2023年)真題薈萃帶答案解析
- 化學(xué)實(shí)驗(yàn):水樣中鈣離子的測(cè)定
- 機(jī)加工安全教育培訓(xùn)
- 星巴克運(yùn)營(yíng)管理手冊(cè)
- 人教鄂教版小學(xué)科學(xué)三年級(jí)下冊(cè)全冊(cè)教案教學(xué)設(shè)計(jì)
- 第三單元第1課 形式和內(nèi)容豐富的動(dòng)漫 課件 2023-2024學(xué)年人教版初中美術(shù)九年級(jí)下冊(cè)
- 提高護(hù)士搶救率品管圈課件
- 頸動(dòng)脈超聲若干問(wèn)題的專(zhuān)家共識(shí)
- 新概念英語(yǔ)第一冊(cè)全書(shū)重點(diǎn)知識(shí)匯總
評(píng)論
0/150
提交評(píng)論