




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、DSP課程實驗報告 利用DSP實現(xiàn)實時信號譜分析學院:電子信息工程學院 指導老師:高海林 學生:目錄1、設計任務書22、設計內(nèi)容33、設計方案33、1整體思路33.2信號的實時采集與傳輸33.3 FFT算法43.4 “ping-pong”存儲方式84、實驗步驟85、實驗結(jié)果及分析96、實驗中遇到的問題及解決方法97、實驗感想101、設計任務書在信息處理中,可以對信號進行時域分析,也可以對信號進行變換域分析,在頻域?qū)π盘栠M行頻譜分析是最常見的分析之一。利用DSP可以實時地對信號進行頻譜分析快速傅立葉變換(FFT)。本設計要求利用DSP的DMA方式進行信號采集和信號輸出,同時對外部輸入的信號進行頻
2、譜分析?;静糠郑?1) 設計譜分析算法,或調(diào)用DSPLIB中 FFT函數(shù),實現(xiàn)對信號的頻譜分析。(2) 在DMA中斷服務程序中,實現(xiàn)信號的實時譜分析(3) 利用CCS信號分析工具分析信號的頻譜成分, 對FFT算法結(jié)果進行驗證。 發(fā)揮部分: (1)信號頻譜數(shù)據(jù)實時輸出到Headphone輸出接口,并在示波器上進行顯示; (2)在實驗板的Line in輸入端接入正弦信號,分左右聲道分別采集,并分別進行頻譜分析;(3)利用CCS的Profiler工具計算FFT算法所需要的時間,并根據(jù)實時性要求進行必要的算法優(yōu)化。2、設計內(nèi)容(1)掌握CCS的安裝、設置,工程的建立、工程設置、編譯運行和調(diào)試方法(2
3、)編寫C語言程序?qū)崿F(xiàn)設計要求,并在CCS集成開發(fā)環(huán)境下調(diào)試通過,實現(xiàn)設計所要求的各項功能。(3)按要求撰寫課程設計報告。3、設計方案3、1整體思路首先利用DSP的DMA方式對外部信號進行實時采集,外部模擬信號先進行A/D轉(zhuǎn)換,利用MCBSP的接收寄存器接收數(shù)據(jù),并將數(shù)據(jù)存放到DSP存儲區(qū)中。設計FFT算法或調(diào)用DSPLIB中的rfft或cfft頻譜分析函數(shù),對信號進行快速傅立葉變換。頻譜數(shù)據(jù)利用DMA方式送到D/A轉(zhuǎn)換器轉(zhuǎn)換為模擬信號在示波器上顯示。3.2信號的實時采集與傳輸DMA控制器可以在不影響CPU的情況下完成數(shù)據(jù)的傳輸,因此數(shù)據(jù)傳輸速度快,在要求信號實時采集和處理的系統(tǒng)中常采用DMA方
4、式進行信號傳輸。本設計中輸入信號經(jīng)過A/D轉(zhuǎn)換成數(shù)字信號后,將DMA通道4的源地址設為串口的接收寄存器,利用DMA通道4進行傳輸;而將DMA通道5的目的地址設置為串口的發(fā)送寄存器,將信號頻譜利用DMA5通道進行傳輸,此步驟需要對AIC23、McBSP、DMA通道4和DMA通道5進行初始化配置。處理流圖如圖3.2.1所示。 圖3.2.1信號實時采集和頻譜分析流程圖3.3 FFT算法 FFT(FastFourierTransformation),即為快速傅氏變換,是離散傅氏變換(DFT)的快速算法,它是根據(jù)離散傅氏變換的奇、偶、虛、實等特性,對離散傅立葉變換的算法進行改進獲得的。(1) 離散傅里葉
5、變換DFTN點DFT的正變換公式為: 式中,WN=e-j*2/N,稱為旋轉(zhuǎn)因子或蝶形因子。從DFT的定義可以看出,在x(n)為復數(shù)序列的情況下,對某個k值,直接按(1)式計算X(k)只需要N次復數(shù)乘法和(N-1)次復數(shù)加法。因此,對所有N個k值,共需要N2次復數(shù)乘法和N(N-1)次復數(shù)加法。對于一些相當大有N值(如1024點)來說,直接計算它的DFT所需要的計算量是很大的,因此DFT運算的應用受到了很大的限制。(2)快速傅里葉變換FFT旋轉(zhuǎn)因子WN有如下的特性:對稱性:WNk+N/2=-WNk周期性:WNn(N-k)=WNk(N-n)=WN-nk利用這些特性,既可以使DFT中有些項合并,減少了
6、乘法積項,又可以將長序列的DFT分解成幾個短序列的DFT。FFT就是利用了旋轉(zhuǎn)因子的對稱性和周期性來減少運算量的。一般而言,F(xiàn)FT算法分為按時間抽取的FFT(DITFFT)和按頻率抽取的FFT(DIFFFT)兩大類。DIFFFT算法是在時域內(nèi)將每一級輸入序列依次按奇偶分成個短序列進行計算。而DIFFFT算法是在頻域內(nèi)將每一級輸入序列依次奇偶分成個短序列進行計算。兩者的區(qū)別是旋轉(zhuǎn)因子出現(xiàn)的位置不同,得算法是一樣的。在DIFFFT算法中,旋轉(zhuǎn)因子出現(xiàn)在輸入端,而在DIFFFT算法中它出現(xiàn)在輸入端。假定序列x(n)的點數(shù)N是2的冪,按照DIFFFT算法可將其分為偶序列和奇序列。偶序列:x(2r)=x
7、1(r)奇序列:x(2r+1)=x2(r)其中:r=0,1,2,N/2-1則x(n)的DFT表示為: 式中,x1(k)和x2(k)分別為x1(r)和x2(r)的N/2的DFT。由于對稱性,WNk+N/2=-WNk。因此,N點DFT可分為兩部分: 前半部分:x(k)=x1(k)+WkNx2(k)(1) 后半部分:x(N/2+k)=x1(k)-WkNx2(k)k=0,N/2-1 (2)從式(1)和式(2)可以看出,只要求出0N/2-1區(qū)間x1(k)和x2(k)的值,就可求出0N-1區(qū)間x(k)的N點值。以同樣的方式進行抽取,可以求得N/4點的DFT,重復抽取過程,就可以使N點的DFT用上組2點的D
8、FT來計算,這樣就可以大減少運算量?;? DIF FFT的蝶形運算如圖3.3.1所示。設蝶形輸入為X1(k)和X2(K),輸出為x(k)和x(N/2+K),則有x(k)=x1(k)+WkNx2(k)(6)x(N/2+k)=x1(k)-WkNx2(k)(7)在基數(shù)為2的FFT中,設N=2M,共有M級運算,每級有N/2個2點FFT蝶形運算,因此,N點FFT總共有MN/2個蝶形運算。 圖3.3.1基2DIFFFT的蝶形運算例如:基數(shù)為2的FFT,當N=8時,共需要3級,12個基2DITFFT的蝶形運算。其信號流程如圖3.3.2所示。圖3.3.2從圖可以看出,輸入是經(jīng)過比特反轉(zhuǎn)的倒位序列,稱為位碼倒置
9、,其排列順序為x(0),x(4),x(2),x(6),x(1),x(5),x(3),x(7),輸出是按自然順序排列,其順序為x(0),x(1),x(2),x(3),x(4),x(5),x(6),x(7).在本設計中,信號的頻譜通過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-po
10、ng”存儲方式Ping-pong存儲方式在內(nèi)存開辟四塊存儲區(qū),分別是gBufferRcvPing、gBufferRcvPong、gBufferXmtPing、gBufferXmtPong,其中前兩塊用于DMA接收,后兩塊用于DMA發(fā)送。目的是將正在接收或發(fā)送的區(qū)域與正在處理的區(qū)域分離開。這個過程通過變量“pingpong”控制,以進入中斷時pingpong=0為例,進入終端后將其值改為1,將DMA接收目的區(qū)改為gBufferRcvPong,處理gBufferRcvPing的數(shù)據(jù),并將處理的數(shù)據(jù)發(fā)往gBufferXmtPing,而同時DMA發(fā)送源是gBufferXmtPong,這樣發(fā)送和接收都不
11、沖突。本實驗中g(shù)BufferRcvPing/gBufferRcvPong接收到的數(shù)據(jù)是左右聲道交替的,因此要將接收回來的數(shù)據(jù)根據(jù)左右兩聲道分成兩個數(shù)組存放,再將每一個聲道的實部和虛部存到DDataBufferi.real/ DDataBufferi.imag當中,做256點FFT變換后求模值得到幅度譜,再將經(jīng)過防溢出處理的數(shù)據(jù)存入gBufferRcvPing/gBufferRcvPong中。重復循環(huán)上述過程即可實現(xiàn)實時信號譜的分析。4、實驗步驟(1)新建工程,正確設置工程選項(buildoption),設置工程的存儲器模式、頭文件路徑及庫文件路徑等,注意工程存放路徑不能有中文名;(2)編寫工程
12、所需的所有實驗源程序,實驗程序包括c文件、h文件、cmd文件、GEL文件、中斷向量s55文件等,并添加進工程;(3)將仿真器等硬件正確連接上,注意音頻輸入輸出方向是否正確。將音頻立體聲輸入J5接電腦耳機輸出口,將J7接電腦語音錄入口;(4)按F7鍵編譯連接生成obj文件(無錯誤時),若程序有錯誤則查看錯誤信息,雙擊錯誤處光標自動跳轉(zhuǎn)到錯誤處,直到排除所有錯誤;(5)點擊file菜單下loadprogram載入程序,將程序下載在DSP芯片中,點擊“run”或按鍵F5全速運行;(6)使用變量觀察圖形觀察窗等工具觀察分析輸入輸出信號是否與預期效果相同;(7)系統(tǒng)調(diào)試、代碼優(yōu)化等;(8)確定最終方案,
13、撰寫設計報告。5、實驗結(jié)果及分析圖1為左右聲道分別輸入頻率為2kHz和5kHz的正弦信號,示波器輸出圖像:圖1圖2為信號源輸入情況顯示: 圖2圖3和圖4分別是ccs工具得出的結(jié)果,左聲道輸入為2kHz,右聲道輸入為5kHz,采樣頻率為32kHz,左右聲道分別采256個點:32k/2k=16 32k/5k=6.4圖3圖4圖5顯示的是ccs同時對捕獲到的左右兩聲道信號進行FFT處理,圖中顯示的兩個峰值分別代表左右聲道的頻率,坐標軸0-255表示左聲道,256-512表示右聲道,由圖可知左聲道的頻率大概為2kHz,右聲道的頻率大概為5kHz,基本和輸入頻率相吻合。 圖5圖7和圖8分別為左右聲道輸入對
14、應頻域波形圖: 圖7 圖8從實驗結(jié)果來看還有一些失真,但總體實現(xiàn)了預期效果。6、實驗中遇到的問題及解決方法(1)實驗運行程序的過程中,改變輸入信號的頻率,示波器時而有圖像時而無顯示,只顯示雜波。只有重新加載程序才可以輸出波形。此實驗的進行與硬件密切相關(guān),要保證硬件狀態(tài)完好。(2)在創(chuàng)建工程時遇到困難,總是在步驟完成后不能運行程序。最后只能先在老師原有的工程文件下進行代碼粘貼并改錯,才可以運行成功。(3)對于DMA的理解不夠透徹,對中斷的設置不夠熟練,導致實驗初始階段出現(xiàn)了一系列的理解問題,經(jīng)查閱相關(guān)資料即組內(nèi)討論后解決了問題。(4)開始運行代碼時發(fā)現(xiàn)示波器和GRAPH中的顯示總有一個是倒過來的
15、,后來修改代碼,發(fā)現(xiàn)溢出部分的寫法有問題,修改后一切正常。7、實驗感想祖健文: 首先,我覺得DSP是一門比較難的課程,可是這門課程的理論學時卻只有短短的8學時,而且老師上課講課速度比較快,我也沒有認真做什么筆記,所以,理論課上基本只學到了CCS一些非?;镜氖褂梅椒ǎ珼SP的原理掌握的又是皮毛中的皮毛,這都導致后來的課程設計中理論知識的儲備嚴重不足。這次的課程設計,基本就是實踐中去驗證一些老師課上或課件中的一些知識,比如我們所選的題目是“利用DSP實現(xiàn)信號的實時譜分析”,其實這算是一個比較簡單的題目,理論上就是將例程中的DMA實時信號采集程序和FFT譜分析程序結(jié)合在一起就可以。雖然說起來簡單,
16、但實際操作中確實問題重重,比如在新建工程時由于頭文件和Build Option中的配置不符而出現(xiàn)的編譯錯誤;還有實驗箱和線材的問題,有時會導致實驗始終沒有結(jié)果。再后來調(diào)試程序,發(fā)現(xiàn)DMA程序運行的并不是很穩(wěn)定,有時可能會不輸出任何數(shù)據(jù),而View Graph中卻顯示一切正常,有時甚至只能重新啟動CCS才能解決問題。關(guān)于程序的設計,我們本打算按照實驗的要求,在DMA中斷服務程序中調(diào)用dsplib中的rfft函數(shù)進行信號的譜分析,但經(jīng)過多次修改后,仍沒有實現(xiàn)rfft的正確調(diào)用。后來我們利用老師所給的BJTU_FFT例程中的fft256函數(shù),通過修改入口參數(shù),成功實現(xiàn)了對輸入信號的FFT計算。本次實
17、驗對我來說,難度是挺大的,但是通過和小組成員的交流和溝通,確實弄清楚了很多問題。所以我覺得本次實驗收獲最大的就是和小組成員間通力合作,發(fā)現(xiàn)問題,分析問題,解決問題;并且在每一次的交流、探討、實踐中,加深了對DSP以及程序的理解,并且最終實現(xiàn)了任務要求。吳楚婷:這次的DSP實驗做的題目是信號實時譜分析,其實最開始沒有打算選擇這個題目,因為自己對于信號與系統(tǒng)還有DSP課程的掌握程度不夠好,不過也正是因為這樣才在這次實驗中收獲了更多的東西,通過實踐驗證了理論的正確性,也同時重新溫習了一下理論知識,算是一舉兩得。還有關(guān)于DMA的部分是我在學習微機原理的時候就非常好奇的一部分,通過這次實驗熟悉了DMA的實際工作方式和流程,很是收益。CCS對于我們來說都是一款完全沒有接觸過的開發(fā)軟件,以前也沒有任何關(guān)于DSP處理的經(jīng)驗,所以之前的很多時間都花在看老師的課件和參考相關(guān)資料上面,只有先把基礎的部分搞懂才能做后面的發(fā)揮。雖然每次看都會多懂很多知識,不過要等到所有的都弄清楚再開始顯然是不可能的,因為知識太多又太陌生,所以后來就索性摸索著來了,邊做邊熟悉功能和流程。其實我們組去實驗室的次數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度孩子上學期間安全保障與生活照料合同
- 二零二五年度城市排水系統(tǒng)改造合同補充協(xié)議書
- 2025年度智能家居安防系統(tǒng)集成房屋裝修合同模板
- 二零二五年度創(chuàng)業(yè)公司股權(quán)激勵與轉(zhuǎn)讓協(xié)議
- 2025年度船舶轉(zhuǎn)讓與船舶交易物流服務合同
- 2025年度油茶種植土地承包與生態(tài)保護合同
- 長期土地租賃合同書(2025年度)鄉(xiāng)村旅游開發(fā)專用
- 二零二五年度房地產(chǎn)項目建筑材料購銷合同
- 二零二五年度樂器租賃與音樂節(jié)器材租賃合同
- 室外健身器材維保合同
- 2025安徽省投資集團控股有限公司校園招聘34人筆試參考題庫附帶答案詳解
- 2025年新部編統(tǒng)編版中學七年級下冊歷史全冊分課知識點總結(jié)課件105張
- 2025年湖南科技職業(yè)學院單招職業(yè)技能測試題庫匯編
- 語文-浙江省寧波市慈溪市2024學年高二第一學期期末測試試題和答案
- 2025海南三亞政府雇員人才儲備庫招聘300人易考易錯模擬試題(共500題)試卷后附參考答案
- 植被重建施工方案
- 培養(yǎng)自律與自控能力主題班會
- 交替?zhèn)髯g課件外研社王丹
- 人教版(2024)八年級下冊物理第九章《壓強》第4節(jié) 跨學科實踐:制作簡易活塞式抽水機 教案
- 《餐飲業(yè)概述》課件 - 探索美食與服務之道
- 2024年黑龍江生態(tài)工程職業(yè)學院高職單招語文歷年參考題庫含答案解析
評論
0/150
提交評論