dsp實驗報告_實時信號譜分析_第1頁
dsp實驗報告_實時信號譜分析_第2頁
dsp實驗報告_實時信號譜分析_第3頁
dsp實驗報告_實時信號譜分析_第4頁
dsp實驗報告_實時信號譜分析_第5頁
免費預(yù)覽已結(jié)束,剩余11頁可下載查看

下載本文檔

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

文檔簡介

1、DSP課程實驗報告利用DSF實現(xiàn)實時信號譜分析學(xué)院:電子信息工程學(xué)院指導(dǎo)老師:高海林學(xué)生:目錄1、設(shè)計任務(wù)書 32、設(shè)計內(nèi)容 33、設(shè)計方案 43、1 整體思路 43.2 信號的實時采集與傳輸 43.3 FFT 算法 53.4 “ping-pong ”存儲方式 84、實驗步驟 95、實驗結(jié)果及分析 106、實驗中遇到的問題及解決方法 137、實驗感想 131、設(shè)計任務(wù)書在信息處理中,可以對信號進(jìn)行時域分析,也可以對信號進(jìn)行變換域分析,在頻域?qū)π盘栠M(jìn)行頻譜分析是最常見的分析之一。 利用DSP可以實時地對信號進(jìn) 行頻譜分析一快速傅立葉變換(FFT)。本設(shè)計要求利用DSP的 DMA方式進(jìn)行信 號采集

2、和信號輸出,同時對外部輸入的信號進(jìn)行頻譜分析?;静糠郑海?)設(shè)計譜分析算法,或調(diào)用DSPLIB中FFT函數(shù),實現(xiàn)對信號的頻譜分析。(2)在DMA中斷服務(wù)程序中,實現(xiàn)信號的實時譜分析(3)利用CCS信號分析工具分析信號的頻譜成分,對FFT算法結(jié)果進(jìn)行驗證。發(fā)揮部分:(1)信號頻譜數(shù)據(jù)實時輸出到 HeadPhOne輸出接口,并在示波器上進(jìn)行顯示;( 2)在實驗板的 Line in 輸入端接入正弦信號,分左右聲道分別采集,并分 別進(jìn)行頻譜分析 ;(3)利用CCS的Profiler工具計算FFT算法所需要的時間,并根據(jù)實時性要 求進(jìn)行必要的算法優(yōu)化。2、設(shè)計內(nèi)容(1)掌握CCS的安裝、設(shè)置,工程的建

3、立、工程設(shè)置、編譯運行和調(diào)試方法(2)編寫C語言程序?qū)崿F(xiàn)設(shè)計要求,并在 CCS集成開發(fā)環(huán)境下調(diào)試通過,實現(xiàn) 設(shè)計所要求的各項功能。( 3)按要求撰寫課程設(shè)計報告。3、設(shè)計方案3、 1整體思路首先利用DSP的DMA方式對外部信號進(jìn)行實時采集,外部模擬信號先進(jìn)行 A/D轉(zhuǎn)換,利用MCBS的接收寄存器接收數(shù)據(jù),并將數(shù)據(jù)存放到 DSP存儲區(qū)中。 設(shè)計FFT算法或調(diào)用DSPLIB中的rfft或Cfft頻譜分析函數(shù),對信號進(jìn)行快速 傅立葉變換。頻譜數(shù)據(jù)利用DMA方式送到D/A轉(zhuǎn)換器轉(zhuǎn)換為模擬信號在示波器上示 O3.2信號的實時采集與傳輸DMA控制器可以在不影響CPU勺情況下完成數(shù)據(jù)的傳輸,因此數(shù)據(jù)傳輸速度

4、 快,在要求信號實時采集和處理的系統(tǒng)中常采用DM/方式進(jìn)行信號傳輸。本設(shè)計中輸入信號經(jīng)過A/D轉(zhuǎn)換成數(shù)字信號后,將DMAS道4的源地址設(shè)為串口的接收 寄存器,利用DMAI道4進(jìn)行傳輸;而將DMAS道5的目的地址設(shè)置為串口的發(fā) 送寄存器,將信號頻譜利用 DMA5S道進(jìn)行傳輸,此步驟需要對 AIC23、MCBSP DMAS道4和DMAS道5進(jìn)行初始化配置。處理流圖如圖 3.2.1所示。主程序中斷服務(wù)程序圖3.2.1信號實時采集和頻譜分析流程圖3.3 FFT算法FFT (FaSt FOUrier TranSfOrmatiOn ),即為快速傅氏變換,是離散傅氏 變換(DFT)的快速算法,它是根據(jù)離散傅

5、氏變換的奇、偶、虛、實等特性,對離 散傅立葉變換的算法進(jìn)行改進(jìn)獲得的。(1) 離散傅里葉變換DFTN點DFT的正變換公式為:X (k) = Ix(H)咔疔HrjEM=C式中,WN=e-j*2 /N ,稱為旋轉(zhuǎn)因子或蝶形因子。從 DFT的定義可以看出, 在x(n)為復(fù)數(shù)序列的情況下,對某個k值,直接按(1)式計算X(k)只需要N 次復(fù)數(shù)乘法和(N-1)次復(fù)數(shù)加法。因此,對所有N個k值,共需要N2次復(fù)數(shù)乘 法和N(N-I)次復(fù)數(shù)加法。對于一些相當(dāng)大有 N值(如1024點)來說,直接計算 它的DFT所需要的計算量是很大的,因此DFT運算的應(yīng)用受到了很大的限制。(2) 快速傅里葉變換FFT旋轉(zhuǎn)因子WN

6、有如下的特性:對稱性:WNk+N2=-WNk周期性:WNn(N-k)=WNk(N-n)=WN-nk利用這些特性,既可以使DFT中有些項合并,減少了乘法積項,又可以將長 序列的DFT分解成幾個短序列的DFT FFT就是利用了旋轉(zhuǎn)因子的對稱性和周期 性來減少運算量的。一般而言,F(xiàn)FT算法分為按時間抽取的FFT(DIT FFT)和按頻率抽取的FFT(DIF FFT)兩大類。DIF FFT算法是在時域內(nèi)將每一級輸入序列依次按奇/偶分成2個短序列進(jìn)行計算。而 DlF FFT算法是在頻域內(nèi)將每一級輸入序列依 次奇/偶分成2個短序列進(jìn)行計算。 兩者的區(qū)別是旋轉(zhuǎn)因子出現(xiàn)的位置不同,得 算法是一樣的。在DIF

7、FFT算法中,旋轉(zhuǎn)因子出現(xiàn)在輸入端,而在DIFFFT算法 中它出現(xiàn)在輸入端。假定序列x(n)的點數(shù)N是2的幕,按照DIFFFT算法可將其 分為偶序列和奇序列。偶序列:x(2r)=x1(r)奇序列:x(2r+1)=x2(r) 其中:r=0,1,2, , ,N/2-1則 x(n)的 DFT表示為:.v-.V-y-J(町二工工(M)R二工工(M)Jr乎+三工fl=QK奇數(shù).V2-lM3、二Y工(2尸艸嚴(yán)+藝工(2廠+ 1)眉嚴(yán)W= -r2-1*-V2-1rk=Y可0)(昭)+叭工E(>)(叫)FM)0Ar2-1U=悶(尸尸& +呎衍()V 2 r.0r>0= T1()÷

8、 FF ()匚 k=0 丄N/2_l式中,x1(k)和x2(k)分別為x1 (r)和x2(r)的N/2的DFT由于對稱性, WNk+N2=-WNk因此,N點DFT可分為兩部分:前半部分:x(k)=x1(k)+WkNx2(k)(1)后半部分:x(N2+k)=x1(k)-WkNx2(k)k=0, ,N2-1(2)從式(1)和式(2)可以看出,只要求出0N2-1區(qū)間x1(k)和x2(k)的值, 就可求出0N-1區(qū)間x(k)的N點值。以同樣的方式進(jìn)行抽取,可以求得 N/4點 的DFT重復(fù)抽取過程,就可以使 N點的DFT用上組2點的 DFT來計算,這樣就可以大減少運算量?;? DlF FFT的蝶形運算如

9、圖331所示。設(shè)蝶形輸入為X1(k)和X2(K),輸出為x(k)和x(N2+K),則有x(k)=x1(k)+WkNx2(k)x(N2+k)=x1(k)-WkNx2(k)(6)N/2個2點FFT蝶BCA-SC在基數(shù)為2的FFT中,設(shè)N=2M共有M級運算,每級有 形運算,因此,N點FFT總共有MN/2個蝶形運算圖3.3.1 基2 DIF FFT的蝶形運算例如:基數(shù)為2的FFT,當(dāng)N=8時,共需要3級,12個基2 DIT FFT的蝶 形運算。其信號流程如圖3.3.2所示-1-1-IP圖 3.3.2從圖可以看出,輸入是經(jīng)過比特反轉(zhuǎn)的倒位序列,稱為位碼倒置,其排列順 序為x(O),x,x(2),x(6)

10、,x(1),x(5),x(3),x,輸出是按自然順序排列,其順序為 x(O),x(1),x(2),x(3),x,x(5),x(6),x(7).在本設(shè)計中,信號的頻譜通過FFT算法得出,F(xiàn)FT算法可以自己編寫,也可 以調(diào)用55xdsp.lib 庫rfft或Cfft函數(shù)。調(diào)用庫函數(shù)的需要在工程中添加庫文 件55xdsp.lib ,并且在程序中包含頭文件 dsplib.h。調(diào)用的時候入口參數(shù)是時 域信號地址,返回處理后的FFT信號,注意返回值不包含求模過程,而是交替返 回實部和虛部。本實驗采用自己編寫的基2頻率抽取法計算FFT。3.4 “ Ping-POng ”存儲方式Ping-pong存儲方式在內(nèi)

11、存開辟四塊存儲區(qū),分別是 gBufferRcvPing、 gBufferRcvPong、gBufferXmtPing、gBufferXmtPong,其中前兩塊用于 DMA接收, 后兩塊用于DMA發(fā)送。目的是將正在接收或發(fā)送的區(qū)域與正在處理的區(qū)域分離開。這個過程通過變量“ pingpong ”控制,以進(jìn)入中斷時 pingpong=0 為例,進(jìn) 入終端后將其值改為1 ,將DMA接收目的區(qū)改為gBufferRcvPong ,處理gBufferRcvPing 的數(shù)據(jù),并將處理的數(shù)據(jù)發(fā)往 gBufferXmtPing ,而同時DMA發(fā) 送源是gBufferXmtPong,這樣發(fā)送和接收都不沖突。本實驗中

12、 gBufferRcvPing/gBufferRcvPong 接收到的數(shù)據(jù)是左右聲道交替 的,因此要將接收回來的數(shù)據(jù)根據(jù)左右兩聲道分成兩個數(shù)組存放, 再將每一個聲 道的實部和虛部存到 DDataBufferi.real/ DDataBufferi.imag 當(dāng)中 ,做 256 點 FFT 變 換 后 求 模 值 得 到 幅 度 譜 , 再 將 經(jīng) 過 防 溢 出 處 理 的 數(shù) 據(jù) 存 入 gBufferRcvPing/gBufferRcvPong 中。重復(fù)循環(huán)上述過程即可實現(xiàn)實時信號譜的 分析。4、實驗步驟( 1 )新建工程,正確設(shè)置工程選項( build option ),設(shè)置工程的存儲器

13、 模式、頭文件路徑及庫文件路徑等,注意工程存放路徑不能有中文名;(2) 編寫工程所需的所有實驗源程序,實驗程序包括C文件、h文件、Cmd 文件、GEL文件、中斷向量s55文件等,并添加進(jìn)工程;(3)將仿真器等硬件正確連接上,注意音頻輸入輸出方向是否正確。將音 頻立體聲輸入 J5 接電腦耳機輸出口,將 J7 接電腦語音錄入口;( 4)按 F7 鍵編譯連接生成 obj 文件(無錯誤時),若程序有錯誤則查看錯 誤信息,雙擊錯誤處光標(biāo)自動跳轉(zhuǎn)到錯誤處,直到排除所有錯誤;(5)點擊file菜單下Ioad PrOgram載入程序,將程序下載在DSP芯片中, 點擊“ run ”或按鍵F5全速運行;( 6)使

14、用變量觀察圖形觀察窗等工具觀察分析輸入輸出信號是否與預(yù)期效 果相同;( 7)系統(tǒng)調(diào)試、代碼優(yōu)化等;(8)確定最終方案,撰寫設(shè)計報告5、實驗結(jié)果及分析圖1為左右聲道分別輸入頻率為2kHz和5kHz的正弦信號,示波器輸出圖像:圖1圖2為信號源輸入情況顯示:電溫幵關(guān)萬用表頻率計I信號源圖3和圖4分別是CCS工具得出的結(jié)果,左聲道輸入為2kHz,右聲道輸入為5kHz,采樣頻率為32kHz,左右聲道分別采 256個點:32k2k=16 32k5k=6.4L圖5顯示的是CCS同時對捕獲到的左右兩聲道信號進(jìn)行 FFT處理,圖中顯示的兩 個峰值分別代表左右聲道的頻率,坐標(biāo)軸 0-255表示左聲道,256-51

15、2表示右聲 道,由圖可知左聲道的頻率大概為 2kH z,右聲道的頻率大概為5kHz,基本和輸入 頻率相吻合。圖5圖7和圖8分別為左右聲道輸入對應(yīng)頻域波形圖:圖8從實驗結(jié)果來看還有一些失真,但總體實現(xiàn)了預(yù)期效果。6、實驗中遇到的問題及解決方法(1)實驗運行程序的過程中,改變輸入信號的頻率,示波器時而有圖像時而無 顯示,只顯示雜波。 只有重新加載程序才可以輸出波形。 此實驗的進(jìn)行與硬件密 切相關(guān),要保證硬件狀態(tài)完好。(2)在創(chuàng)建工程時遇到困難,總是在步驟完成后不能運行程序。最后只能先在 老師原有的工程文件下進(jìn)行代碼粘貼并改錯,才可以運行成功。(3)對于DMA勺理解不夠透徹,對中斷的設(shè)置不夠熟練,導(dǎo)

16、致實驗初始階段出 現(xiàn)了一系列的理解問題,經(jīng)查閱相關(guān)資料即組內(nèi)討論后解決了問題。(4)開始運行代碼時發(fā)現(xiàn)示波器和 GRAP中的顯示總有一個是倒過來的,后來 修改代碼,發(fā)現(xiàn)溢出部分的寫法有問題,修改后一切正常。7、實驗感想祖健文:首先,我覺得DSP是一門比較難的課程,可是這門課程的理論學(xué)時卻只有短 短的 8 學(xué)時,而且老師上課講課速度比較快,我也沒有認(rèn)真做什么筆記,所以, 理論課上基本只學(xué)到了 CCS-些非?;镜氖褂梅椒ǎ珼SP的原理掌握的又是皮 毛中的皮毛,這都導(dǎo)致后來的課程設(shè)計中理論知識的儲備嚴(yán)重不足。這次的課程設(shè)計,基本就是實踐中去驗證一些老師課上或課件中的一些知 識,比如我們所選的題目是

17、“利用 DSP實現(xiàn)信號的實時譜分析”,其實這算是一 個比較簡單的題目,理論上就是將例程中的 DMA實時信號采集程序和FFT譜分 析程序結(jié)合在一起就可以。 雖然說起來簡單, 但實際操作中確實問題重重, 比如 在新建工程時由于頭文件和 Build Option 中的配置不符而出現(xiàn)的編譯錯誤;還有 實驗箱和線材的問題,有時會導(dǎo)致實驗始終沒有結(jié)果。再后來調(diào)試程序,發(fā)現(xiàn) DMA程序運行的并不是很穩(wěn)定,有時可能會不輸出任何數(shù)據(jù),而 VieW GraPh中 卻顯示一切正常,有時甚至只能重新啟動 CCS才能解決問題。關(guān)于程序的設(shè)計,我們本打算按照實驗的要求,在 DMA 中斷服務(wù)程序中調(diào) 用 dsplib 中的

18、 rfft 函數(shù)進(jìn)行信號的譜分析,但經(jīng)過多次修改后,仍沒有實現(xiàn) rfft 的正確調(diào)用。后來我們利用老師所給的 BJTU_FFT例程中的fft256函數(shù),通過修 改入口參數(shù),成功實現(xiàn)了對輸入信號的 FFT計算。本次實驗對我來說, 難度是挺大的, 但是通過和小組成員的交流和溝通, 確 實弄清楚了很多問題。 所以我覺得本次實驗收獲最大的就是和小組成員間通力合 作,發(fā)現(xiàn)問題,分析問題,解決問題;并且在每一次的交流、探討、實踐中,加 深了對DSP以及程序的理解,并且最終實現(xiàn)了任務(wù)要求。吳楚婷:這次的DSP實驗做的題目是信號實時譜分析,其實最開始沒有打算選擇這個 題目,因為自己對于信號與系統(tǒng)還有 DSP課程的掌握程度不夠好,不過也正是因 為這樣才

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論