卷積運(yùn)算及算法的DSP實(shí)現(xiàn)_第1頁
卷積運(yùn)算及算法的DSP實(shí)現(xiàn)_第2頁
卷積運(yùn)算及算法的DSP實(shí)現(xiàn)_第3頁
卷積運(yùn)算及算法的DSP實(shí)現(xiàn)_第4頁
卷積運(yùn)算及算法的DSP實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、現(xiàn)代信號(hào)處理課程設(shè)計(jì)課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目設(shè)計(jì)題目 卷積運(yùn)算及算法的卷積運(yùn)算及算法的 DSPDSP 實(shí)現(xiàn)實(shí)現(xiàn) 目 錄第 1 章 總序.11.1 設(shè)計(jì)目的與背景.11.2 設(shè)計(jì)要求.11.3 設(shè)計(jì)思路簡(jiǎn)介.1第 2 章 系統(tǒng)開發(fā)平臺(tái)與環(huán)境.22.1 CCS 開發(fā)環(huán)境.22.2 ICETEK-F2821-A 開發(fā)實(shí)驗(yàn) 板.2第 3 章 卷積算法設(shè)計(jì)過程 .33.1 卷積算法設(shè)計(jì)總框圖 .33.2 卷計(jì)算法設(shè)計(jì)的原理 .3第 4 章 系統(tǒng)軟件設(shè)計(jì).54.1 程序流程圖.54.2 程序源代碼.6第 5 章 系統(tǒng)仿真.115.1 仿真設(shè)置.115.2 仿真圖.12第 6 章 總結(jié).16參考文獻(xiàn)

2、.17第第 1 章章 緒論緒論1.11.1 設(shè)計(jì)目的與背景設(shè)計(jì)目的與背景1 1)設(shè)計(jì)背景)設(shè)計(jì)背景 卷積是在信號(hào)與線性系統(tǒng)的基礎(chǔ)上或背景中出現(xiàn)的,脫離這個(gè)背景單獨(dú)談卷積是沒有任何意義的,除了那個(gè)所謂褶反公式上的數(shù)學(xué)意義和積分(或求和,離散情況下)。信號(hào)與線性系統(tǒng),討論的就是信號(hào)經(jīng)過一個(gè)線性系統(tǒng)以后發(fā)生的變化(就是輸入輸出和所經(jīng)過的所謂系統(tǒng),這三者之間的數(shù)學(xué)關(guān)系)。所謂線性系統(tǒng)的含義,就是,這個(gè)所謂的系統(tǒng),帶來的輸出信號(hào)與輸入信號(hào)的數(shù)學(xué)關(guān)系式之間是線性的運(yùn)算關(guān)系。因此,實(shí)際上,都是要根據(jù)我們需要待處理的信號(hào)形式,來設(shè)計(jì)所謂的系統(tǒng)傳遞函數(shù),那么這個(gè)系統(tǒng)的傳遞函數(shù)和輸入信號(hào),在數(shù)學(xué)上的形式就是所謂的

3、卷積關(guān)系。卷積關(guān)系最重要的一種情況,就是在信號(hào)與線性系統(tǒng)或數(shù)字信號(hào)處理中的卷積定理。利用該定理,可以將時(shí)間域或空間域中的卷積運(yùn)算等價(jià)為頻率域的相乘運(yùn)算,從而利用 FFT 等快速算法,實(shí)現(xiàn)有效的計(jì)算,節(jié)省運(yùn)算代價(jià)。DSP(數(shù)字信號(hào)處理器)與一般的微處理器相比有很大的區(qū)別,它所特有的系統(tǒng)結(jié)構(gòu)、指令集合、數(shù)據(jù)流程方式為解決復(fù)雜的數(shù)字信號(hào)處理問題提供了便利,本文選用 F2812 作為 DSP 處理芯片,通過對(duì)其編程來實(shí)現(xiàn)卷積。2 2)設(shè)計(jì)目的)設(shè)計(jì)目的 通過本次設(shè)計(jì)掌握并熟悉 dsp 的應(yīng)用以及 ICETEK-F2812-A 的平評(píng)估板的使用,了解卷積算法的原理和計(jì)算方法,以及其特性與特點(diǎn),并學(xué)習(xí)卷積

4、算法的程序?qū)崿F(xiàn)。 并且通過本次設(shè)計(jì)來提高自己的動(dòng)手實(shí)踐能力,增加我們對(duì)本專業(yè)的各種芯片的了解,增強(qiáng)我們的專業(yè)素養(yǎng)。1.21.2 設(shè)計(jì)要求設(shè)計(jì)要求利用 C 語言在 CCS 環(huán)境中編寫一個(gè)卷積算法程序,并能利用已設(shè)計(jì)好的卷積器對(duì)一些常用信號(hào)進(jìn)行卷積運(yùn)算處理。1.31.3 設(shè)計(jì)思路簡(jiǎn)介設(shè)計(jì)思路簡(jiǎn)介在 TMS320C54x 系統(tǒng)開發(fā)環(huán)境 CCS(Code Composer Studio)下對(duì)卷積的 DSP 實(shí)現(xiàn)原理進(jìn)行討論。利用 C 語言設(shè)計(jì)相應(yīng)的算法,通過實(shí)驗(yàn)仿真,從輸入信號(hào)和輸出信號(hào)的時(shí)域和頻域曲線可看出在 DSP 上實(shí)現(xiàn)的卷積算法能完成預(yù)定的計(jì)算任務(wù)。第第 2 章章 系統(tǒng)開發(fā)平臺(tái)與環(huán)境系統(tǒng)開發(fā)平

5、臺(tái)與環(huán)境2.12.1 CCSCCS 開發(fā)環(huán)境開發(fā)環(huán)境DSP 開發(fā)工具: PC 機(jī)+目標(biāo)板+仿真器+CCS 開發(fā)環(huán)境一般是先在 CCS 開發(fā)環(huán)境下編寫程序(使用 C 語言、匯編語言或者兩者混合)CCS 內(nèi)置軟仿真 simulator 提供了編譯,調(diào)試,運(yùn)行功能。其作用主要是檢測(cè)目標(biāo)程序運(yùn)行的正確性和連貫性!但不能夠?qū)崟r(shí)查看和控制。當(dāng)程序成功運(yùn)行通過后,通過仿真器(XDS510 或者 XDS560)與目標(biāo)板連接,安裝仿真器驅(qū)動(dòng),然后 load program 到目標(biāo)板,運(yùn)行,利用仿真器提供的 RTDX 可實(shí)時(shí)查看存儲(chǔ)器和寄存器變化。2.22.2 ICETEK-F2821-AICETEK-F2821

6、-A 開發(fā)實(shí)驗(yàn)板開發(fā)實(shí)驗(yàn)板第第 3 章章 卷積算法設(shè)計(jì)過程卷積算法設(shè)計(jì)過程3.13.1 卷積算法設(shè)計(jì)總框圖卷積算法設(shè)計(jì)總框圖開 始初始化 DSP 產(chǎn)生輸入信號(hào)將卷積信號(hào)X(m)和 H(m)輸入在同一個(gè)坐標(biāo)系內(nèi)翻轉(zhuǎn):將 H(m)以 m=0 的垂直軸為軸翻褶成 H(-m)移位:將 H(-m)移位 n,即得 H(n-m)相乘:再將 H(n-m)和X(m)的相同 m 值的對(duì)應(yīng)點(diǎn)值相乘相加:把以上所有點(diǎn)的對(duì)應(yīng)點(diǎn)的乘積疊加起來,即得 Y(n)值。取移位值 nN 值取遍整個(gè)坐標(biāo)軸結(jié) 束YES3.23.2 卷積算法設(shè)計(jì)的原理卷積算法設(shè)計(jì)的原理1 1)卷積算法基礎(chǔ)理論)卷積算法基礎(chǔ)理論 卷積的基本理論和公式 卷

7、積和:對(duì)離散系統(tǒng)“卷積和”也是求線性時(shí)不變系統(tǒng)輸出響應(yīng)(零狀態(tài)響應(yīng))的主要方法。 卷積和的運(yùn)算在圖形表示上可分為四步:A)翻褶 現(xiàn)在亞變量坐標(biāo) M 上作出 X(m)和 H(m),將 m=0 的垂直軸為軸翻褶成 H(-m)。B)移位 將 H(-m)移位 n,即得 H(n-m)。當(dāng) n 為正整數(shù)時(shí),右移 n 位。當(dāng)n 為負(fù)整數(shù)時(shí),左移 n 位。C)相乘 再將 H(n-m)和 X(m)的相同 m 值的對(duì)應(yīng)點(diǎn)值相乘。D)相加 把以上所有點(diǎn)的對(duì)應(yīng)點(diǎn)的乘積疊加起來,即得 Y(n)值。依上法,取 n=,-2,-1,0,1,2,3,各值,即可得全部 Y(n)值。第第 4 章章 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì)4.14

8、.1 程序流程圖程序流程圖 While(TRUE)執(zhí)行 dataIO2()子程序執(zhí)行 dataIO()子程序執(zhí)行 processing4()子程序結(jié)束YESNO執(zhí)行 processing4()子程序開始打印“volume example tartedn”執(zhí)行 processing1()子程序執(zhí)行 processing2()子程序執(zhí)行 processing3()子程序程序的自編函數(shù)及其功能1)processing(int *input2,int *output2)調(diào)用形式:processing1(int *input2,int *output2)參數(shù)解釋:input2、output 為兩個(gè)整型指

9、針數(shù)組。返回值解釋:返回一個(gè)“TURE”,讓主函數(shù)的 While 循環(huán)保持連續(xù)。功能說明:對(duì)輸入的 input2 buffer 波形進(jìn)行截取 m 點(diǎn),再以零點(diǎn)的 Y軸為對(duì)稱軸進(jìn)行翻褶,把生成的波形上的各點(diǎn)的值存入以 OUTPUT2 指針開始的一段地址空間中。2)processing2(int *output2,int *output3)調(diào)用形式: processing2(int *output2,int *output3)參數(shù)解釋:output2、output3 為兩個(gè)整形指針數(shù)組。返回值解釋:返回了一個(gè)“TREN”,讓主函數(shù)的 While 循環(huán)保持連續(xù)。功能說明:對(duì)輸出的 output2 b

10、uffer 波形進(jìn)行作 n 點(diǎn)移位,然后把生成的波形上的各點(diǎn)的值存入以 OUTPUT3 指針開始的一段空間中。3)processing3(int *input1,int *output2,int *output4)調(diào)用形式:processing3(int *input1,int *output2,int *output4)參數(shù)解釋:output2、output4、input1 為三個(gè)整型指針數(shù)組。返回值解釋:返回了一個(gè)“TRUE”,讓主函數(shù)的 While 循環(huán)保持繼續(xù)。功能說明:對(duì)輸入的 input2 buffer 波形和輸入的 input1 buffer 做卷積和運(yùn)算,然后把生成的波形上的各

11、點(diǎn)的值存入以 OUTPUT4 指針開始的地址空間中。4)processing4(int *input2,int *output1)調(diào)用形式:processing4(int *input2,int *output1)參數(shù)解釋:output1、input 為兩個(gè)整型指針數(shù)組返回值解釋:返回了一個(gè)“TRUE”,讓主函數(shù)的循環(huán)保持繼續(xù)。功能說明:對(duì)輸入的 input2 buffer 波形截取 m 點(diǎn),然后把生成的波形上的各點(diǎn)的值存入以 OUTPUT1 指針開始的一段地址空間中。4.24.2 程序源代碼程序源代碼源程序:源程序:#include DSP281x_Device.h #include DSP

12、281x_Examples.h #include f2812a.h#include stdio.h#include volume.h int inp1_bufferBUFSIZE;int inp2_bufferBUFSIZE; int out1_bufferBUFSIZE;int out2_bufferBUFSIZE;int out3_bufferBUFSIZE;int out4_bufferBUFSIZE*2;int size = BUFSIZE;int ain = MINGAIN;int zhy=0;int sk=64; unsigned int processingLoad = 1; s

13、tatic int processing1(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);int *input1 = &inp1_buffer0;in

14、t *input2 = &inp2_buffer0;int *output1 = &out1_buffer0;int *output2 = &out2_buffer0;int *output3 = &out3_buffer0;int *output4 = &out4_buffer0;void main(void) int jishu=0; int *input1 = &inp1_buffer0; int *input2 = &inp2_buffer0; int *output1 = &out1_buffer0; int *outp

15、ut2 = &out2_buffer0; /int *output3 = &out3_buffer0; int *output4 = &out4_buffer0; puts(volume example startedn); while(TRUE) dataIO1(); dataIO2(); processing4(input2,output1); processing1(output1, output2); /*processing2(output2, output3); */ processing3(input1,output2,output4) ; jishu+;

16、/在此處加斷點(diǎn) static int processing4(int *input2,int *output1) int m=sk; for(;m=0;m-) *output1+ = (*input2+) * ain; for(;(size-m)0;m+) output1m=0; static int processing1(int *output1,int *output2) int m=sk-1; for(;m0;m-) *output2+ = *output1+ * ain; static int processing2(int *output2, int *output3) int n

17、=zhy,m; size=64; for(;n0;) 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=input1z*output2f; x=x+g; out4_bufferw=x; w+; static void dataIO1() return;static void dataIO2() /*

18、do data I/O */ return; 第第 5 章章 系統(tǒng)仿真系統(tǒng)仿真5.15.1 仿真設(shè)置仿真設(shè)置 1)在程序中“dataIO1();”上單擊鼠標(biāo)右鍵選擇“Toggle software breakpoint”,設(shè)置軟件斷點(diǎn):再在同一行上單擊鼠標(biāo)右鍵,選擇“software breakpoint”,“edit”,來設(shè)置斷點(diǎn)。此時(shí)打開了一個(gè)新的窗口。最后設(shè)置成如下圖所示: 2)同理,在程序中“dataIO2() ;”上同樣操作設(shè)置。最后設(shè)置如下圖: 3)打開窗口菜單 Viwe-Graph-Frequency進(jìn)行如下設(shè)置:5.25.2 仿真圖仿真圖1)當(dāng)輸入波為SIN,SIN 時(shí)SIN-

19、inp1SIN-inp2SIN-out2)當(dāng)輸入波為SIN11 、SIN11 時(shí)SIN11-inp1SIN11-inp2SIN11-out3)當(dāng)輸入波為SIN22、SIN22 時(shí)SIN22-inp1SIN22-inp2SIN22-out5)當(dāng)輸入波為SIN33、SIN33 時(shí) SIN33-inp1 SIN33-inp2 SIN33-out6)當(dāng)輸入波為SIN44、SIN44 時(shí)SIN44-inp1SIN44-inp2SIN44-out7)當(dāng)輸入波為 SIN44、SINSin44-inp1Sin-inp2SIN44、SIN-Out8)當(dāng)輸入波為 SIN11、SIN33 時(shí)Sin11-inp1Sin33-inp2Sin11.sin33-Out9)當(dāng)輸入波為 SIN22、SIN 時(shí)Sin22-inp1Sin-inp2Sin22.Sin-Out第第 6 章章 總結(jié)總結(jié)卷積計(jì)算是數(shù)字信號(hào)的基礎(chǔ),也是 dsp 芯片的基礎(chǔ)。通過本次設(shè)計(jì)不僅使我們對(duì)卷積計(jì)算的理解加深了,也加強(qiáng)了我們對(duì) dsp 芯片的了解與其應(yīng)用的學(xué)習(xí)程度。而且還增

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論