快速傅里葉變換程序設(shè)計(jì)_第1頁(yè)
快速傅里葉變換程序設(shè)計(jì)_第2頁(yè)
快速傅里葉變換程序設(shè)計(jì)_第3頁(yè)
快速傅里葉變換程序設(shè)計(jì)_第4頁(yè)
快速傅里葉變換程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 1.設(shè)計(jì)主要內(nèi)容及要求;1)掌握DSP A/D轉(zhuǎn)換器使用方法。2)研究FFT原理以及利用DSP實(shí)現(xiàn)的方法。3)編寫(xiě)A/D采樣和FFT程序,調(diào)試,觀察結(jié)果。2.對(duì)設(shè)計(jì)論文撰寫(xiě)內(nèi)容、格式、字?jǐn)?shù)的要求;(1).課程設(shè)計(jì)論文是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,一般不應(yīng)少于3000字。(2).學(xué)生應(yīng)撰寫(xiě)的內(nèi)容為:中文摘要和關(guān)鍵詞、目錄、正文、參考文獻(xiàn)等。課程設(shè)計(jì)論文的結(jié)構(gòu)及各部分內(nèi)容要求可參照沈陽(yáng)工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫(xiě)規(guī)范執(zhí)行。應(yīng)做到文理通順,內(nèi)容正確完整,書(shū)寫(xiě)工整,裝訂整齊。(3).論文要求打印,打印時(shí)按沈陽(yáng)工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫(xiě)規(guī)范的要求進(jìn)行打印。(4). 課程設(shè)計(jì)論文裝訂順序?yàn)椋悍饷?、?/p>

2、務(wù)書(shū)、成績(jī)?cè)u(píng)審意見(jiàn)表、中文摘要和關(guān)鍵詞、目錄、正文、參考文獻(xiàn)。3.時(shí)間進(jìn)度安排;順序階段日期計(jì) 劃 完 成 內(nèi) 容備注1月 日教師講解題目,學(xué)生查閱相關(guān)資料2月 日進(jìn)行方案論證,確定程序流程,計(jì)算參數(shù)3 月 日編寫(xiě)程序4 月 日調(diào)試程序5 月 日撰寫(xiě)論文,程序驗(yàn)收III 一 設(shè)計(jì)任務(wù)描述1.1 設(shè)計(jì)題目快速傅里葉變換程序設(shè)計(jì)。1.2 設(shè)計(jì)要求1.2.1設(shè)計(jì)目的1)理解FFT的算法以及利用DSP實(shí)現(xiàn)的方法。2)能熟練的調(diào)試程序并能觀察其結(jié)果。3)熟悉TMS320F2812系列DSP芯片的軟件設(shè)計(jì)方法。1.2.2基本要求1)掌握DSP A/D轉(zhuǎn)換器使用方法。2)研究FFT原理以及利用DSP實(shí)現(xiàn)的方

3、法。3)編寫(xiě)A/D采樣和FFT程序,調(diào)試,觀察結(jié)果。二 設(shè)計(jì)思路2.1 FFT算法簡(jiǎn)介快速傅里葉變換(FFT)是一種高效實(shí)現(xiàn)離散傅里葉變換(DFT)的快速算法,是數(shù)字信號(hào)處理中最重要的工具之一,它在聲學(xué),語(yǔ)音,信號(hào)處理等領(lǐng)域有著廣泛的應(yīng)用。是將信號(hào)從時(shí)域變換到頻域的一種變換形式,是信號(hào)處理領(lǐng)域中一種重要的分析工具。離散傅里葉變換(DFT)是連續(xù)傅里葉變換在離散系統(tǒng)中的表現(xiàn)形式。傅里葉變換分為連續(xù)傅里葉變換和離散傅里葉變換。離散傅里葉變換簡(jiǎn)稱(chēng)DFT,是對(duì)離散信號(hào)進(jìn)行傅里葉變換的方法,其運(yùn)算量大、復(fù)雜度與變換點(diǎn)數(shù)的二次方成正比,因而不適用于進(jìn)行實(shí)時(shí)信號(hào)處理。20世紀(jì)60年代由Cooley和Tuke

4、y提出了快速傅里葉變換(FFT)算法,它是快速計(jì)算DFT的一種高效方法,可以明顯地降低運(yùn)算量,大大地提高DFT的運(yùn)算速度,從而使DFT在實(shí)際中得到了廣泛的應(yīng)用,已成為數(shù)字信號(hào)處理最為重要的工具之一。DSP芯片的出現(xiàn)使FFT的實(shí)現(xiàn)變得更加方便。由于多數(shù)的DSP芯片都能在單指令周期內(nèi)完成乘法累加運(yùn)算,而且還提供了專(zhuān)門(mén)的FFT指令(如實(shí)現(xiàn)FFT算法所必需的比特反轉(zhuǎn)等),使得FFT算法在DSP芯片上實(shí)現(xiàn)的速度更快。本節(jié)首先簡(jiǎn)要介紹FFT算法的基本原理,然后介紹FFT算法的DSP實(shí)現(xiàn)。2.2 FFT算法原理快速傅氏變換(FFT)是離散傅氏變換的快速算法,根據(jù)離散傅氏變換的奇、偶、虛、實(shí)等特性,對(duì)離散傅里

5、葉變換算法進(jìn)行改進(jìn)獲得的。對(duì)傅氏變換的理論并沒(méi)有新的發(fā)現(xiàn),但是對(duì)在計(jì)算機(jī)系統(tǒng)或者數(shù)字系統(tǒng)中應(yīng)用離散傅里葉變換,可以說(shuō)進(jìn)了一大步。設(shè)為N項(xiàng)的復(fù)數(shù)序列,由DFT變換,任一X(M)的計(jì)算需要N次復(fù)數(shù)乘法和N-1次復(fù)數(shù)加法,而一次復(fù)數(shù)乘法等于四次實(shí)數(shù)乘法和兩次實(shí)數(shù)加法,一次復(fù)數(shù)加法等于兩次實(shí)數(shù)加法,即使把一次復(fù)數(shù)乘法和一次復(fù)數(shù)加法定義成一次“運(yùn)算”(四次實(shí)數(shù)乘法和四次實(shí)數(shù)加法),則求出N項(xiàng)復(fù)數(shù)序列的X(M),即N點(diǎn)DFT變換大約需要次運(yùn)算。當(dāng)N=1024點(diǎn)甚至更多的時(shí)候,需要次運(yùn)算,在FFT中,利用的周期性和對(duì)稱(chēng)性,把一個(gè)N項(xiàng)序列(設(shè)N=2k,k為正整數(shù)),分為兩個(gè)項(xiàng)的子序列,每個(gè)點(diǎn)DFT變換需要次運(yùn)

6、算,再N次運(yùn)算把兩個(gè)點(diǎn)的DFT變換組合成一個(gè)N點(diǎn)DFT變換。這樣變換以后,總運(yùn)算次數(shù)變成。繼續(xù)上面的例子,N=1024時(shí),總的運(yùn)算次數(shù)就變成了525312次,節(jié)省了大約50%的運(yùn)算量。如果將這種“一分為二”思想不斷進(jìn)行下去,直到分成兩兩一組DFT運(yùn)算單元,則N點(diǎn)DFT變換只需要次運(yùn)算,N在1024時(shí),運(yùn)算量?jī)H有10240次,是先前直接算法的1%,點(diǎn)數(shù)越多,運(yùn)算量節(jié)約就越大,這就是FFT的優(yōu)越性。2.3 快速傅立葉變換算法FFT的基本思想:將大點(diǎn)數(shù)的DFT分解為若干個(gè)小點(diǎn)數(shù)DFT組合,從而減少運(yùn)算量。根據(jù)對(duì)序列分解與選取方法的不同而產(chǎn)生了FFT的多種算法。算法分類(lèi)如圖2-1所示:FFT算法基-2

7、FFT算法基-4FFT算法混合基算法分裂基算法線性調(diào)頻Z變換算法按時(shí)間抽取按頻率抽取圖2-1 FFT的幾種算法在這次設(shè)計(jì)中,采用最基礎(chǔ)的按時(shí)間抽取的基-2FFT算法來(lái)實(shí)現(xiàn)快速傅里葉變換。為了將大點(diǎn)數(shù)的DFT分解為小點(diǎn)數(shù)的DFT運(yùn)算,要求序列的長(zhǎng)度N為復(fù)合數(shù),最常用的是的情況(M為正整數(shù))。該情況下的變換稱(chēng)為基-2FFT算法。下面討論基-2FFT情況的算法。先將序列x(n)按奇偶項(xiàng)分解為兩組: (2-1)將DFT運(yùn)算也相應(yīng)分為兩組: (2-3)至此,一個(gè)點(diǎn)DFT被分解為兩個(gè)點(diǎn)的DFT。由式(2-3)能否將全部的點(diǎn)的解求出來(lái)?分析: (2-4)和只有個(gè)點(diǎn),則由式(2-4)只能求出X(k)的前個(gè)點(diǎn)的

8、DFT。要求出全部點(diǎn)的,需要找出、和的關(guān)系,其中k=0,1,2.(N/2)-1。由式子(2-4)可得化簡(jiǎn)得 (2-5)這樣N點(diǎn)DFT可全部由下式確定出來(lái): (2-6)上式可用一個(gè)專(zhuān)用的蝶形符號(hào)表示,如圖2-2所示,對(duì)應(yīng)一次復(fù)乘和兩次復(fù)加運(yùn)算。-1圖2-2 蝶形運(yùn)算符號(hào)通過(guò)這樣的分解以后,每一個(gè)點(diǎn)的DFT只需要次復(fù)數(shù)乘法,兩個(gè)點(diǎn)的DFT需要次復(fù)乘,再加上將兩個(gè)點(diǎn)DFT合并成N點(diǎn)的DFT時(shí),有次與因子相乘,一共需要次復(fù)乘??梢?jiàn),通過(guò)這樣的分解,運(yùn)算量節(jié)省了近一半。因?yàn)椋匀皇桥紨?shù),因此可以對(duì)兩個(gè)點(diǎn)的DFT分別作進(jìn)一步的分解,將兩個(gè)的DFT分解成兩個(gè)點(diǎn)的DFT。例如對(duì),可以再按其偶數(shù)部分及奇數(shù)部分進(jìn)

9、行分解: (2-7)則運(yùn)算可相應(yīng)分為兩組:將系數(shù)統(tǒng)一為以N為周期,即,可得 (2-8)同樣,對(duì)也可以進(jìn)行類(lèi)似的分解。一直分解下去,最后是2點(diǎn)的DFT,2點(diǎn)的DTF的運(yùn)算也可以用蝶形符號(hào)來(lái)表示。這樣,對(duì)于一個(gè)的DFT運(yùn)算,最終結(jié)如圖2-3圖2-3蝶形圖這種方法,由于每一步分解都是按輸入序列在時(shí)域上的次序是屬于偶數(shù)還是奇數(shù)來(lái)抽取的,故稱(chēng)為“時(shí)間抽取法”。分析上面的流圖,一共要進(jìn)行M次分解,構(gòu)成了從到的M級(jí)運(yùn)算過(guò)程。每一級(jí)運(yùn)算都是由個(gè)蝶形運(yùn)算構(gòu)成,因此每一級(jí)運(yùn)算都需要次復(fù)乘和M次復(fù)加,則按時(shí)間抽取的M級(jí)運(yùn)算后總用需要:復(fù)數(shù)乘法次數(shù): 復(fù)數(shù)加法次數(shù): 根據(jù)上面過(guò)程,分析FFT算法的兩個(gè)特點(diǎn),它們對(duì)FF

10、T的軟硬件構(gòu)成產(chǎn)生很大的影響。原位運(yùn)算:也成為同址運(yùn)算,當(dāng)數(shù)據(jù)輸入到存儲(chǔ)器中以后,每一級(jí)運(yùn)算的結(jié)果仍然存儲(chǔ)在原來(lái)的存儲(chǔ)器中,直到最后輸出,中間無(wú)需其它的存儲(chǔ)器。根據(jù)運(yùn)算流圖分析原位運(yùn)算是如何進(jìn)行的。原位運(yùn)算的結(jié)構(gòu)可以節(jié)省存儲(chǔ)單元,降低設(shè)備成本。變址:分析運(yùn)算流圖中的輸入輸出序列的順序,輸出按順序,輸入是“碼位倒置”的順序,見(jiàn)表2-1所示。自然順序 二進(jìn)制表示 碼位倒置 碼位倒置順序 0 000 000 0 1 001 100 4 2 010 010 2 3 011 110 6 4 100 001 1 5 101 101 5 6 110 011 3 7 111 111 7 表2-1 碼位倒置順序

11、實(shí)際運(yùn)算中,直接將輸入數(shù)據(jù)按碼位倒置的順序排好輸入很方便,一般總是先按自然順序輸入存儲(chǔ)單元,然后通過(guò)變址運(yùn)算將自然順序的存儲(chǔ)換成碼位倒置順序的存儲(chǔ),這樣就可以進(jìn)行FFT的原位運(yùn)算。用軟件實(shí)現(xiàn)是通用采用雷德(Rader)算法,算出的倒序以后立即將輸入數(shù)據(jù)和對(duì)換。盡管變址運(yùn)算所占運(yùn)算量的比例很小,但對(duì)某些 高要求的應(yīng)用(尤其在實(shí)時(shí)信號(hào)處理中),也可設(shè)法用適當(dāng)?shù)碾娐方Y(jié)構(gòu)直接實(shí)現(xiàn)變址。例如單片數(shù)字信號(hào)處理器TMS320C25就有專(zhuān)用于FFT的二進(jìn)制碼變址模式。2.4 功能實(shí)現(xiàn)2.4.1位置倒碼 當(dāng)進(jìn)行原位運(yùn)算時(shí),發(fā)現(xiàn)當(dāng)運(yùn)算完成后,F(xiàn)FT的輸出X(k)按正常順序排列在存儲(chǔ)單元中,即按X(0),X(1),

12、X(7)的順序排列,但是這時(shí)輸入x(n)卻不是按自然順序存儲(chǔ)的,而是按x(0),x(4), , x(7)的順序存入存儲(chǔ)單元,看起來(lái)好像是“混亂無(wú)序”的,實(shí)際上是有規(guī)律的,稱(chēng)之為倒位序。當(dāng)用二進(jìn)制表示順序時(shí),它正好是“位碼倒置”的順序。例如,原來(lái)的自然順序應(yīng)是x(1)的地方,現(xiàn)在放著x(4),用二進(jìn)制碼表示這一規(guī)律時(shí),則是在x(0 0 1)處放著x(1 0 0),x(0 1 1) 處放著x(1 1 0),即將自然循序的二進(jìn)制碼位倒置過(guò)來(lái),第一位碼變成最末位碼,這樣倒置以后的順序正是輸入所需要的順序,其結(jié)果與按時(shí)間抽樣算法FFT流程圖中的輸入順序是一致的。需要注意當(dāng)進(jìn)行原位運(yùn)算時(shí),輸入輸出序列為倒

13、位序的關(guān)系,若不為原位運(yùn)算,則這種關(guān)系不一定成立。在實(shí)際運(yùn)算中,一般直接將輸入數(shù)據(jù)x(n)按碼位倒置的順序排好輸入很不方便,總是先按自然順序的存儲(chǔ),然后進(jìn)行FFT的原位計(jì)算。自然順序二進(jìn)碼表示碼位倒置倒位序0000000010011004201001023011110641000011510110156110011371111117表2-1 碼位倒置順序2.4.2蝶距設(shè)N=,則整個(gè)運(yùn)算流圖中包含L級(jí)蝶形運(yùn)算,每一級(jí)則有N/2個(gè)蝶形單元。蝶距等于每個(gè)蝶形單元兩個(gè)輸入(出)節(jié)點(diǎn)的序列號(hào),即第m級(jí)蝶形單元的蝶距為:。2.4.3旋轉(zhuǎn)因子由FFT算法原理過(guò)程可知,若=,則共有級(jí)蝶形運(yùn)算,各級(jí)蝶形運(yùn)算中旋

14、轉(zhuǎn)因子分別如下:第級(jí)的旋轉(zhuǎn)因子為(=0,1,);第-1級(jí)的旋轉(zhuǎn)因子為(=0,1,);第一級(jí)的旋轉(zhuǎn)因子為(=0,1,)。由此可見(jiàn), 第級(jí)蝶形運(yùn)算中旋轉(zhuǎn)因子為,=0,1,。2.5 FFT算法的DSP的實(shí)現(xiàn)方法設(shè)FFT運(yùn)算的輸入數(shù)據(jù)為實(shí)數(shù),則2點(diǎn)實(shí)數(shù)FFT算法的實(shí)現(xiàn)步驟為:第一步,把2實(shí)數(shù)輸入序列組合成點(diǎn)的復(fù)數(shù)序列。然后把該復(fù)數(shù)序列進(jìn)行位倒序操作后存儲(chǔ)在輸入?yún)^(qū)。第二步,進(jìn)行的FFT運(yùn)算。第三步,把點(diǎn)FFT輸出拆成2的復(fù)數(shù)序列,這2的復(fù)數(shù)序列對(duì)應(yīng)于2點(diǎn)時(shí)實(shí)數(shù)輸入序列的DFT輸出。第四步,結(jié)果輸出及功率譜計(jì)算。2.6 FFT運(yùn)算中應(yīng)注意的問(wèn)題為了避免可能的結(jié)果溢出,在編寫(xiě)程序時(shí)我們應(yīng)該注意對(duì)每次蝶形運(yùn)算

15、的結(jié)果都右移一位,即除以2。為了減少FFT的運(yùn)算時(shí)間和充分利用C54xDSP資源,編程時(shí)應(yīng)盡可能多的采用并行指令。三 設(shè)計(jì)方框圖開(kāi)始程序初始化南北紅送入數(shù)據(jù)南北紅調(diào)入系數(shù)表南北紅輸入數(shù)據(jù)位碼倒置南北紅FFT的蝶形運(yùn)算南北紅是否發(fā)生 溢出?N Y歸一化南北紅輸入數(shù)據(jù) 結(jié)束? Y各圖形輸出南北紅N結(jié)束四 各部分程序設(shè)計(jì)及參數(shù)計(jì)算4.1 ADC采樣/*初始化系統(tǒng)*/InitSysCtrl();#if SAMPLELONG=1SampleLong =256;#endif#if SAMPLELONG=2SampleLong =512;#endif#if SAMPLELONG=3SampleLong =1

16、024;#endif/*關(guān)中斷*/DINT;IER = 0x0000;IFR = 0x0000;/*初始化PIE中斷*/InitPieCtrl();/*初始化PIE中斷矢量表*/InitPieVectTable();/初始化cputimer InitCpuTimers();/*設(shè)置中斷服務(wù)程序入口地址*/EALLOW;/ This is needed to write to EALLOW protected registersPieVectTable.TINT2 = &ISRTimer2;PieVectTable.ADCINT = &ad;EDIS; / This is nee

17、ded to disable write to EALLOW protected registers/*開(kāi)中斷*/IER |= M_INT1;/ADC中斷EINT; / Enable Global interrupt INTMERTM;/ Enable Global realtime interrupt DBGMadconvover=0;DINT;/*設(shè)置CPU*/ConfigCpuTimer(&CpuTimer2, 150, 22); StartCpuTimer2();/*開(kāi)中斷*/IER |= M_INT14;EINT;4.2 FFT轉(zhuǎn)換switch(SampleLong/2) c

18、ase128:fft128.ipcbptr=ipcb;fft128.init(&fft128);for(i=0;i<SampleLong/2;i+)ipcbi = Ad_data1i;delay(5000);RFFT32_brev(ipcb,ipcb,FFTN128);fft128.calc(&fft128);fft128.split(&fft128);break;case256:fft256.ipcbptr=ipcb;fft256.init(&fft256);for(i=0;i<SampleLong/2;i+)ipcbi = Ad_data1i;

19、delay(5000);RFFT32_brev(ipcb,ipcb,FFTN256);fft256.calc(&fft256);fft256.split(&fft256);break;case512:fft512.ipcbptr=ipcb;fft512.init(&fft512);for(i=0;i<SampleLong/2;i+)ipcbi = (long)Ad_data1i; iostatus = 0x288; *p_trafficaddr=iostatus; delay(5000);RFFT32_brev(ipcb,ipcb,FFTN512);fft512.

20、calc(&fft512);fft512.split(&fft512);break;default:break;五 工作過(guò)程分析 5.1在CCS下調(diào)試程序步驟(1)點(diǎn)擊CCS圖標(biāo)啟動(dòng)CCS。(2)打開(kāi)fft.pjt工程。將已編好的匯編源文件FFT.c及其他相關(guān)源文件和命令文件2812.cmd等文件添加到工程中編譯,鏈接產(chǎn)生FFT.out文件。(3)下載FFT.out文件到目標(biāo)板中。(4)顯示示輸入信號(hào)的時(shí)域波形。首先,通過(guò)設(shè)置實(shí)驗(yàn)箱的函數(shù)信號(hào)發(fā)生器,使AD采集波形為0通道的標(biāo)準(zhǔn)正弦波。(5)顯示輸入信號(hào)的頻域波形。(6)顯示信號(hào)功率譜。由配置文件可知,經(jīng)程序計(jì)算得到的信號(hào)功率譜

21、放在DATA數(shù)組中。顯示經(jīng)程序計(jì)算得到的信號(hào)功率譜。(7)改變輸入信號(hào),如改為方波,三角波等等。并重復(fù)(4)(5)(6)三個(gè)步驟。5.2 程序的初始化256點(diǎn)實(shí)數(shù)FFT的程序主要由4部分組成,分別是位反轉(zhuǎn)子程序,F(xiàn)FT核心計(jì)算子程序,奇偶分離及結(jié)果產(chǎn)生子程序,還有功率譜計(jì)算子程序。首先在程序的開(kāi)始應(yīng)對(duì)程序進(jìn)行初始化,程序的初始化包括為輸入數(shù)據(jù)和旋轉(zhuǎn)因子表定義變量,還有是在此段程序中設(shè)置復(fù)數(shù)數(shù)據(jù)的個(gè)數(shù)以及FFT運(yùn)算的級(jí)數(shù),還設(shè)置了正弦表和余弦表。5.3 FFT計(jì)算當(dāng)2=256時(shí),128點(diǎn)復(fù)數(shù)FFT運(yùn)算過(guò)程分成七級(jí)、3個(gè)階段實(shí)現(xiàn),這三個(gè)階段是:第一級(jí)蝶形運(yùn)算,第二級(jí)蝶形運(yùn)算,第三級(jí)第級(jí)蝶形運(yùn)算,以

22、下分別分析這三個(gè)階段蝶形運(yùn)算的工作過(guò)程。第一級(jí)和第二級(jí)蝶形運(yùn)算僅含加減運(yùn)算,容易實(shí)現(xiàn),因此在編程時(shí)單獨(dú)處理。在第三級(jí)到最后一級(jí)蝶形運(yùn)算中,組內(nèi)蝶形運(yùn)算次數(shù)逐漸增多,而且多是乘法運(yùn)算,單獨(dú)處理是不可取的,因此這段運(yùn)算采用相同的程序塊來(lái)實(shí)現(xiàn)。蝶形運(yùn)算主要思想是輸入數(shù)據(jù)乘以旋轉(zhuǎn)因子得到下一級(jí)輸出,所以在運(yùn)算之前要計(jì)算出這一級(jí)的旋轉(zhuǎn)因子。而旋轉(zhuǎn)因子又是一復(fù)數(shù)運(yùn)算,因此在程序中設(shè)置了正弦表和余弦表,通過(guò)查這兩個(gè)表來(lái)計(jì)算旋轉(zhuǎn)因子。最后來(lái)確定FFT的輸出值。正弦系數(shù)表和余弦系數(shù)表由文件給出,主程序通過(guò).copy 匯編命令將正弦系數(shù)和余弦系數(shù)與程序代碼匯編在一起。數(shù)據(jù)文件twiddle1.inc和twiddl

23、e2.inc分別給出FFT的正弦系數(shù)、余弦系數(shù)各512個(gè)。利用此系數(shù)表可以完成81024點(diǎn)的FFT運(yùn)算。5.4 輸入信號(hào)及輸出波形5.4.1 正弦波輸入正弦波如圖5-1所示圖5-1正弦波輸出波形如圖5-2所示圖5-2正弦波FFT5.4.2 方波輸入方波如圖5-3所示圖5-3方波輸出波形如圖5-4所示圖5-4方波FFT5.4.3 三角波輸入三角波如圖5-5所示圖5-5三角波輸出波形如圖5-6所示圖5-5三角波FFT六 實(shí)驗(yàn)系統(tǒng)介紹6.1 DSP簡(jiǎn)介波形選擇為“正弦波” 、頻率輸入為“50” 、幅值輸入為“2” 、相位輸入為“0” 偏移量輸入為“0” 、占空比輸入量為“0” 。重置開(kāi)關(guān)置于“關(guān)”

24、。6.1.1 DSP微處理器DSP(digital signal processor)是一種獨(dú)特的微處理器,是以數(shù)字信號(hào)來(lái)處理大量信息的器件。其工作原理是接收模擬信號(hào),轉(zhuǎn)換為0或1的數(shù)字信號(hào)。再對(duì)數(shù)字信號(hào)進(jìn)行修改、刪除、強(qiáng)化,并在其他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實(shí)時(shí)運(yùn)行速度可達(dá)每秒數(shù)以千萬(wàn)條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過(guò)通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片。它的強(qiáng)大數(shù)據(jù)處理能力和高運(yùn)行速度,是最值得稱(chēng)道的兩大特色。 DSP微處理器(芯片)一般具有如下主要特點(diǎn): (1)在一個(gè)指令周期內(nèi)可完成一次乘法和一次加法; (2)程序和數(shù)據(jù)空間分開(kāi),可以

25、同時(shí)訪問(wèn)指令和數(shù)據(jù); (3)片內(nèi)具有快速RAM,通??赏ㄟ^(guò)獨(dú)立的數(shù)據(jù)總線在兩塊中同時(shí)訪問(wèn); (4)具有低開(kāi)銷(xiāo)或無(wú)開(kāi)銷(xiāo)循環(huán)及跳轉(zhuǎn)的硬件支持; (5)快速的中斷處理和硬件I/O支持; (6)具有在單周期內(nèi)操作的多個(gè)硬件地址產(chǎn)生器; (7)可以并行執(zhí)行多個(gè)操作; (8)支持流水線操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。 當(dāng)然,與通用微處理器相比,DSP微處理器(芯片)的其他通用功能相對(duì)較弱些。6.1.2 DSP的開(kāi)發(fā)工具數(shù)字信號(hào)處理器(DSP)作為一種可編程專(zhuān)用芯片,是數(shù)字信號(hào)處理理論實(shí)用化過(guò)程的重要技術(shù)工具,在語(yǔ)音處理、圖像處理等技術(shù)領(lǐng)域得到了廣泛的應(yīng)用。但對(duì)于算法設(shè)計(jì)人員來(lái)講,利用匯編語(yǔ)言或

26、C 語(yǔ)言進(jìn)行DSP 功能開(kāi)發(fā),具有周期長(zhǎng)、效率低的缺點(diǎn),不利于算法驗(yàn)證和產(chǎn)品的快速開(kāi)發(fā)。 由MathWorks 公司和TI 公司聯(lián)合開(kāi)發(fā)的DSPMATLAB Link for CCS Development Tools(簡(jiǎn)稱(chēng)CCSLink)是MATLAB6.5 版本(Release13)中增加的一個(gè)全新的工具箱,它提供了MATLAB、CCS 和DSP 目標(biāo)板的接口,利用此工具可以像操作MATLAB變量一樣來(lái)操作DSP 器件的存儲(chǔ)器和寄存器,使開(kāi)發(fā)人員在MATLAB 環(huán)境下完成對(duì)DSP 的操作,從而極大地提高DSP 應(yīng)用系統(tǒng)的開(kāi)發(fā)進(jìn)程。 MATLAB 具有強(qiáng)大的分析、計(jì)算和可視化功能,利用MAT

27、LAB 提供的數(shù)十個(gè)專(zhuān)業(yè)工具箱,可以方便、靈活地實(shí)現(xiàn)對(duì)自動(dòng)控制、信號(hào)處理、通信系統(tǒng)等的算法分析和仿真,是算法設(shè)計(jì)人員和工程技術(shù)人員必不可少的軟件工具。6.1.3 DSP算法及芯片分類(lèi)DSP運(yùn)算的基本類(lèi)型是乘法和累加(MAC)運(yùn)算,對(duì)于卷積、相關(guān)、濾波和FFT基本上都是這一類(lèi)運(yùn)算。這樣的運(yùn)算可以用通用機(jī)來(lái)完成,但受到其成本和結(jié)構(gòu)的限制不可能有很高的實(shí)時(shí)處理能力。 DSP運(yùn)算的特點(diǎn)是尋址操作。數(shù)據(jù)尋址范圍大,結(jié)構(gòu)復(fù)雜但很有規(guī)律。例如FFT運(yùn)算,它的蝶形運(yùn)算相關(guān)節(jié)點(diǎn)從相鄰兩點(diǎn)直至跨越N/2間隔的地址范圍,每次變更都很有規(guī)律,級(jí)間按一定規(guī)律排列,雖然要運(yùn)算log2N遍,但每級(jí)的地址都可以預(yù)測(cè),也就是尋

28、址操作很有規(guī)律而且可以預(yù)測(cè)。這就不同于一般的通用機(jī),在通用機(jī)中對(duì)數(shù)據(jù)庫(kù)的操作,具有很大的隨機(jī)性,這種隨機(jī)尋址方式不是信號(hào)處理器的強(qiáng)項(xiàng)。 無(wú)論是專(zhuān)用的DSP芯片或通用DSP芯片在結(jié)構(gòu)考慮上都能適應(yīng)DSP運(yùn)算的這些特點(diǎn)。而專(zhuān)用芯片在結(jié)構(gòu)上考慮的更加專(zhuān)業(yè)化,更為合理,因而有更高的運(yùn)算速度。 為不同算法而專(zhuān)門(mén)設(shè)計(jì)的專(zhuān)用芯片:例如用于做卷積/相關(guān)并具有橫向?yàn)V波器結(jié)構(gòu),INMOS公司的A100、A110;HARRIS公司的HPS43168;PLESSYGEC公司的PDSP16256等。用于做FFT,Austek公司的A41102,PLESSYGEC公司的PDSP16150等。這些都是為做FIR、IIR、F

29、FT運(yùn)算而設(shè)計(jì)的,因而運(yùn)算速度高,但是具有有限的可編程能力,靈活性差。6.1.4 DSP技術(shù)的應(yīng)用(1)信號(hào)處理:數(shù)字濾波、自適應(yīng)濾波、FFT、Hilbert變換、相關(guān)運(yùn)算、頻譜分析、卷積、模式匹配、窗函數(shù)、波形產(chǎn)生等。 (2)語(yǔ)音處理:語(yǔ)音編碼、語(yǔ)音合成、語(yǔ)音識(shí)別、語(yǔ)音增強(qiáng)、語(yǔ)音郵件、語(yǔ)音儲(chǔ)存等。 (3)圖像/圖形:二維和三維圖形處理、圖像壓縮與傳輸、圖像識(shí)別、動(dòng)畫(huà)、機(jī)器人視覺(jué)、多媒體、電子地圖、圖像增強(qiáng)等。 (4)軍事:保密通信、雷達(dá)處理、聲吶處理、導(dǎo)航、全球定位、跳頻電臺(tái)、搜索和反搜索等。 (5)儀器儀表:頻譜分析、函數(shù)發(fā)生、數(shù)據(jù)采集、地震處理等。 (6)自動(dòng)控制:控制、深空作業(yè)、自動(dòng)駕

30、駛、機(jī)器人控制、磁盤(pán)控制等。 (7)醫(yī)療:助聽(tīng)、超聲設(shè)備、診斷工具、病人監(jiān)護(hù)、心電圖等。 (8)家用電器:數(shù)字音響、數(shù)字電視、可視電話、音樂(lè)合成、音調(diào)控制、玩具與游戲等。 6.2 CCS開(kāi)發(fā)環(huán)境簡(jiǎn)介6.2.1 驅(qū)動(dòng)程序的配置(1)雙擊桌面上的Setup CCStudio v3.3?!癈lear”原有的設(shè)備驅(qū)動(dòng)程序配置。 (2)根據(jù)DSP的型號(hào)選擇相應(yīng)的TI原裝驅(qū)動(dòng)程序,根據(jù)DSP的型號(hào)選擇相應(yīng)的TI驅(qū)動(dòng)程序,本實(shí)驗(yàn)箱采用SEED_DEC2812,故選擇F2812 XDS510 Emulator。如圖6-1所示。圖6-1目標(biāo)板選擇(3)點(diǎn)中F2812 XDS510 Emulator驅(qū)動(dòng)后,鼠標(biāo)右

31、鍵,在彈出的菜單中點(diǎn)擊Properties。設(shè)置完成后如下圖6-2所示。 圖6-2目標(biāo)板選擇(4)點(diǎn)擊Next,作如下圖6-3所示的設(shè)置。圖6-3目標(biāo)板選擇(5)保存并啟動(dòng)CCS調(diào)試界面。6.2.2 創(chuàng)建工程文件按照以下步驟創(chuàng)建一個(gè)新工程并運(yùn)行程序:(1)建一個(gè)文本文檔,在里面寫(xiě)下程序,修改文本文檔的擴(kuò)展名為.c(2)打開(kāi)CCStudio_v3.3, 選擇Project->New(3)在Project Name框里輸入工程名:(例如:1)(4)在Location框里輸入或者瀏覽創(chuàng)建的文件夾。(5)在第三步的創(chuàng)建的文件夾里添加命令腳本2812.cmd和編輯好的.c文件(6)在ccs里打開(kāi)編

32、好的.c文件,依次點(diǎn)擊編譯、連接、運(yùn)行,執(zhí)行File->Load Program加載程序。加載過(guò)程是將上述構(gòu)建成功,生成的可執(zhí)行文件加載到目標(biāo)板,目標(biāo)板可以是軟件仿真環(huán)境,也可以是硬件目標(biāo)板。默認(rèn)情況下,CCS集成開(kāi)發(fā)環(huán)境將會(huì)在你的工程路徑下創(chuàng)建一個(gè)Debug子目錄,把生成的.out文件放在里面。點(diǎn)擊Open加載。6.2.3 CCS窗口介紹及文件簡(jiǎn)介CCS窗口介紹如圖6-4所示圖6-4CCS窗口使用CCS常遇見(jiàn)的文件簡(jiǎn)介:program,c:C程序源文件program.asm:匯編程序源文件filename.h:C程序的頭文件,包含DSP/BIOSAPI模塊的頭文件filename.li

33、b:庫(kù)文件project.cmd:連接命令文件program.obj:由源文件編譯或匯編而得的目標(biāo)文件program.out:經(jīng)完整的編譯、匯編以及連接都生成可執(zhí)行文件program.map:經(jīng)完整的編譯、匯編以及連接后生成空間分配文件project.pjt:存儲(chǔ)環(huán)境設(shè)置信息的工作區(qū)文件programcfg.cmd:連接器命令文件programcfg.h54:匯編頭文件programcfg.s54:匯編源文件6.2.4 CCS軟件仿真CCS軟件仿真如圖6-5所示圖6-5CCS軟件仿真6.3 SEED-DTK2812實(shí)驗(yàn)系統(tǒng) 為了更好地配合學(xué)校的理論教學(xué),達(dá)到理論與實(shí)踐完美的結(jié)合,合眾達(dá)公司總結(jié)了 10 多年在 DSP 領(lǐng)域中的開(kāi)發(fā)與應(yīng)用經(jīng)驗(yàn),推出了雙 DSP 教學(xué)系統(tǒng) SEED-DTK 教學(xué)實(shí)驗(yàn)箱系列產(chǎn)品。它設(shè)計(jì)新穎、獨(dú)特,為師生提供了一個(gè)完整的教學(xué)實(shí)驗(yàn)平臺(tái),為學(xué)生加速學(xué)習(xí)與系統(tǒng)掌握DSP 的開(kāi)發(fā)與應(yīng)用提供了強(qiáng)有力的手段。SEED-DTK 教學(xué)實(shí)驗(yàn)箱采用模塊化設(shè)計(jì)理念,涵蓋了 TI 所有的主流 DSP 系列:C2000、C3X、C5000 和 C6000 系列。其中 SEED-DTK實(shí)驗(yàn)箱中的主控板 SEED-DECxxxx 采用統(tǒng)一的系統(tǒng)結(jié)構(gòu)、模塊結(jié)構(gòu)、機(jī)械結(jié)構(gòu)和標(biāo)準(zhǔn)的總線接口以及相同的物理尺

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論