卷積運算與算法的DSP實現(xiàn)_第1頁
卷積運算與算法的DSP實現(xiàn)_第2頁
卷積運算與算法的DSP實現(xiàn)_第3頁
卷積運算與算法的DSP實現(xiàn)_第4頁
卷積運算與算法的DSP實現(xiàn)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

./《現(xiàn)代信號處理課程設(shè)計》課程設(shè)計報告設(shè)計題目卷積運算與算法的DSP實現(xiàn)目錄TOC\o"1-2"\f\u第1章總序11.1設(shè)計目的與背景11.2設(shè)計要求11.3設(shè)計思路簡介1第2章系統(tǒng)開發(fā)平臺與環(huán)境22.1CCS開發(fā)環(huán)境22.2ICETEK-F2821-A開發(fā)實驗 板2第3章卷積算法設(shè)計過程33.1卷積算法設(shè)計總框圖33.2卷計算法設(shè)計的原理3第4章系統(tǒng)軟件設(shè)計54.1程序流程圖54.2程序源代碼6第5章系統(tǒng)仿真115.1仿真設(shè)置115.2仿真圖12第6章總結(jié)16參考文獻17第1章緒論1.1設(shè)計目的與背景1〕設(shè)計背景卷積是在信號與線性系統(tǒng)的基礎(chǔ)上或背景中出現(xiàn)的,脫離這個背景單獨談卷積是沒有任何意義的,除了那個所謂褶反公式上的數(shù)學(xué)意義和積分〔或求和,離散情況下〕。信號與線性系統(tǒng),討論的就是信號經(jīng)過一個線性系統(tǒng)以后發(fā)生的變化〔就是輸入輸出和所經(jīng)過的所謂系統(tǒng),這三者之間的數(shù)學(xué)關(guān)系〕。所謂線性系統(tǒng)的含義,就是,這個所謂的系統(tǒng),帶來的輸出信號與輸入信號的數(shù)學(xué)關(guān)系式之間是線性的運算關(guān)系。因此,實際上,都是要根據(jù)我們需要待處理的信號形式,來設(shè)計所謂的系統(tǒng)傳遞函數(shù),那么這個系統(tǒng)的傳遞函數(shù)和輸入信號,在數(shù)學(xué)上的形式就是所謂的卷積關(guān)系。卷積關(guān)系最重要的一種情況,就是在信號與線性系統(tǒng)或數(shù)字信號處理中的卷積定理。利用該定理,可以將時間域或空間域中的卷積運算等價為頻率域的相乘運算,從而利用FFT等快速算法,實現(xiàn)有效的計算,節(jié)省運算代價。DSP〔數(shù)字信號處理器〕與一般的微處理器相比有很大的區(qū)別,它所特有的系統(tǒng)結(jié)構(gòu)、指令集合、數(shù)據(jù)流程方式為解決復(fù)雜的數(shù)字信號處理問題提供了便利,本文選用F2812作為DSP處理芯片,通過對其編程來實現(xiàn)卷積。2〕設(shè)計目的通過本次設(shè)計掌握并熟悉dsp的應(yīng)用以與ICETEK-F2812-A的平評估板的使用,了解卷積算法的原理和計算方法,以與其特性與特點,并學(xué)習(xí)卷積算法的程序?qū)崿F(xiàn)。并且通過本次設(shè)計來提高自己的動手實踐能力,增加我們對本專業(yè)的各種芯片的了解,增強我們的專業(yè)素養(yǎng)。1.2設(shè)計要求利用C語言在CCS環(huán)境中編寫一個卷積算法程序,并能利用已設(shè)計好的卷積器對一些常用信號進行卷積運算處理。1.3設(shè)計思路簡介在TMS320C54x系統(tǒng)開發(fā)環(huán)境CCS〔CodeComposerStudio〕下對卷積的DSP實現(xiàn)原理進行討論。利用C語言設(shè)計相應(yīng)的算法,通過實驗仿真,從輸入信號和輸出信號的時域和頻域曲線可看出在DSP上實現(xiàn)的卷積算法能完成預(yù)定的計算任務(wù)。第2章系統(tǒng)開發(fā)平臺與環(huán)境2.1CCS開發(fā)環(huán)境DSP開發(fā)工具:PC機+目標(biāo)板+仿真器+CCS開發(fā)環(huán)境一般是先在CCS開發(fā)環(huán)境下編寫程序〔使用C語言、匯編語言或者兩者混合〕CCS內(nèi)置軟仿真simulator提供了編譯,調(diào)試,運行功能。其作用主要是檢測目標(biāo)程序運行的正確性和連貫性!但不能夠?qū)崟r查看和控制。當(dāng)程序成功運行通過后,通過仿真器〔XDS510或者XDS560〕與目標(biāo)板連接,安裝仿真器驅(qū)動,然后loadprogram到目標(biāo)板,運行,利用仿真器提供的RTDX可實時查看存儲器和寄存器變化。2.2ICETEK-F2821-A開發(fā)實驗板第3章卷積算法設(shè)計過程3.1卷積算法設(shè)計總框圖取移位值n開始取移位值n開始初始化DSP產(chǎn)生輸入信號將卷積信號X〔m〕和H〔m〕輸入在同一個坐標(biāo)系內(nèi)翻轉(zhuǎn):將H〔m〕以m=0的垂直軸為軸翻褶成H〔-m〕移位:將H〔-m〕移位n,即得H〔n-m〕移位:將H〔-m〕移位n,即得H〔n-m〕相乘:再將H〔n-m〕和X〔m〕的相同m值的對應(yīng)點值相乘相乘:再將H〔n-m〕和X〔m〕的相同m值的對應(yīng)點值相乘相加:把以上所有點的對應(yīng)點的乘積疊加起來,即得Y<n>值。相加:把以上所有點的對應(yīng)點的乘積疊加起來,即得Y<n>值。N值取遍整個坐標(biāo)軸N值取遍整個坐標(biāo)軸YESYES結(jié)束結(jié)束3.2卷積算法設(shè)計的原理1〕卷積算法基礎(chǔ)理論卷積的基本理論和公式卷積和:對離散系統(tǒng)"卷積和"也是求線性時不變系統(tǒng)輸出響應(yīng)〔零狀態(tài)響應(yīng)〕的主要方法。卷積和的運算在圖形表示上可分為四步:翻褶現(xiàn)在亞變量坐標(biāo)M上作出X〔m〕和H〔m〕,將m=0的垂直軸為軸翻褶成H〔-m〕。移位將H〔-m〕移位n,即得H〔n-m〕。當(dāng)n為正整數(shù)時,右移n位。當(dāng)n為負整數(shù)時,左移n位。相乘再將H〔n-m〕和X〔m〕的相同m值的對應(yīng)點值相乘。相加把以上所有點的對應(yīng)點的乘積疊加起來,即得Y<n>值。依上法,取n=……,-2,-1,0,1,2,3,……各值,即可得全部Y〔n〕值。第4章系統(tǒng)軟件設(shè)計4.1程序流程圖開始開始執(zhí)行processing3〔〕子程序執(zhí)行processing2〔〕子程序執(zhí)行processing1〔〕子程序打印"volumeexampletarted\n"While〔TRUE〕執(zhí)行dataIO2〔〕子程序執(zhí)行dataIO〔〕子程序執(zhí)行processing4〔〕子程序執(zhí)行processing3〔〕子程序執(zhí)行processing2〔〕子程序執(zhí)行processing1〔〕子程序打印"volumeexampletarted\n"While〔TRUE〕執(zhí)行dataIO2〔〕子程序執(zhí)行dataIO〔〕子程序執(zhí)行processing4〔〕子程序結(jié)束YESNO執(zhí)行processing4〔〕子程序程序的自編函數(shù)與其功能processing〔int*input2,int*output2〕調(diào)用形式:processing1〔int*input2,int*output2〕參數(shù)解釋:input2、output為兩個整型指針數(shù)組。返回值解釋:返回一個"TURE",讓主函數(shù)的While循環(huán)保持連續(xù)。功能說明:對輸入的input2buffer波形進行截取m點,再以零點的Y軸為對稱軸進行翻褶,把生成的波形上的各點的值存入以O(shè)UTPUT2指針開始的一段地址空間中。processing2〔int*output2,int*output3〕調(diào)用形式:processing2〔int*output2,int*output3〕參數(shù)解釋:output2、output3為兩個整形指針數(shù)組。返回值解釋:返回了一個"TREN",讓主函數(shù)的While循環(huán)保持連續(xù)。功能說明:對輸出的output2buffer波形進行作n點移位,然后把生成的波形上的各點的值存入以O(shè)UTPUT3指針開始的一段空間中。processing3〔int*input1,int*output2,int*output4〕調(diào)用形式:processing3〔int*input1,int*output2,int*output4〕參數(shù)解釋:output2、output4、input1為三個整型指針數(shù)組。返回值解釋:返回了一個"TRUE",讓主函數(shù)的While循環(huán)保持繼續(xù)。功能說明:對輸入的input2buffer波形和輸入的input1buffer做卷積和運算,然后把生成的波形上的各點的值存入以O(shè)UTPUT4指針開始的地址空間中。processing4〔int*input2,int*output1〕調(diào)用形式:processing4〔int*input2,int*output1〕參數(shù)解釋:output1、input為兩個整型指針數(shù)組返回值解釋:返回了一個"TRUE",讓主函數(shù)的循環(huán)保持繼續(xù)。功能說明:對輸入的input2buffer波形截取m點,然后把生成的波形上的各點的值存入以O(shè)UTPUT1指針開始的一段地址空間中。4.2程序源代碼源程序:#include"DSP281x_Device.h"#include"DSP281x_Examples.h"#include"f2812a.h"#include"stdio.h"#include"volume.h"intinp1_buffer[BUFSIZE];intinp2_buffer[BUFSIZE];intout1_buffer[BUFSIZE];intout2_buffer[BUFSIZE];intout3_buffer[BUFSIZE];intout4_buffer[BUFSIZE*2];intsize=BUFSIZE;intain=MINGAIN;intzhy=0;intsk=64;unsignedintprocessingLoad=1;staticintprocessing1<int*output1,int*output2>;staticintprocessing2<int*output2,int*output3>;staticintprocessing3<int*input1,int*output2,int*output4>;staticintprocessing4<int*input2,int*output1>;staticvoiddataIO1<void>;staticvoiddataIO2<void>;int*input1=&inp1_buffer[0];int*input2=&inp2_buffer[0];int*output1=&out1_buffer[0];int*output2=&out2_buffer[0];int*output3=&out3_buffer[0];int*output4=&out4_buffer[0];voidmain<void>{intjishu=0;int*input1=&inp1_buffer[0];int*input2=&inp2_buffer[0];int*output1=&out1_buffer[0];int*output2=&out2_buffer[0];//int*output3=&out3_buffer[0];int*output4=&out4_buffer[0];puts<"volumeexamplestarted\n">;while<TRUE>{dataIO1<>;dataIO2<>;processing4<input2,output1>;processing1<output1,output2>;/*processing2<output2,output3>;*/processing3<input1,output2,output4>;jishu++;//在此處加斷點}} staticintprocessing4<int*input2,int*output1>{intm=sk;for<;m>=0;m-->{*output1++=<*input2++>*ain;}for<;<size-m>>0;m++>{output1[m]=0;}}staticintprocessing1<int*output1,int*output2>{intm=sk-1;for<;m>0;m-->{*output2++=*output1++*ain;}}staticintprocessing2<int*output2,int*output3>{intn=zhy,m;size=64;for<;n<64;n++>{*output3++=output2[n];m=*output3;}return<TRUE>;}staticintprocessing3<int*input1,int*output2,int*output4>{intm=sk;inty=zhy;intz,x,w,i,f,g;for<;<m-y>>0;>{i=y;x=0;z=0;f=y;for<;i>=0;i-->{g=input1[z]*output2[f];x=x+g;z++;f--;}*output4++=x;y++;}m=sk;y=sk-1;w=m-zhy-1;for<;m>0;m-->{y--;i=y;z=sk-1;x=0;f=sk-y;for<;i>0;i--,z--,f++>{g=input1[z]*output2[f];x=x+g;}out4_buffer[w]=x;w++;}}staticvoiddataIO1<>{return;}staticvoiddataIO2<>{/*dodataI/O*/return;}第5章系統(tǒng)仿真5.1仿真設(shè)置1〕在程序中"dataIO1〔〕;"上單擊鼠標(biāo)右鍵選擇"Togglesoftwarebreakpoint",設(shè)置軟件斷點:再在同一行上單擊鼠標(biāo)右鍵,選擇"softwarebreakpoint","edit",來設(shè)置斷點。此時打開了一個新的窗口。最后設(shè)置成如下圖所示:2〕同理,在程序中"dataIO2〔〕;"上同樣操作設(shè)置。最后設(shè)置如下圖:3〕打開窗口菜單Viwe->Graph->Frequency…進行如下設(shè)置:5.2仿真圖1〕當(dāng)輸入波為SIN,SIN時SINinp1SINinp2SINout2>當(dāng)輸入波為SIN11、SIN11時SIN11inp1SIN11inp2SIN11out3〕當(dāng)輸入波為SIN22、SIN22時SIN22inp1SIN22inp2SIN22out當(dāng)輸入波為SIN33、SIN33時SIN33inp1SIN33inp2SIN33out當(dāng)輸入波為SIN44、SIN44時SIN44inp1SIN44inp2SIN44out7〕當(dāng)輸入波為SIN44、SINSin44inp1Sininp2SIN44、SINOut8〕當(dāng)輸入波為SIN11、SIN33時Sin11inp1Sin33inp2Sin11.sin33Out9〕當(dāng)輸

溫馨提示

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

評論

0/150

提交評論