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

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

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

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

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

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

7、FFT算法中,旋轉(zhuǎn)因子出現(xiàn)在輸入端,而在DIFFFT算法 中它出現(xiàn)在輸入端。假定序列x(n)的點(diǎ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由于對(duì)稱性, WNk+N2=-WNk因此,N點(diǎ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點(diǎn)值。以同樣的方式進(jìn)行抽取,可以求得 N/4點(diǎn) 的DFT重復(fù)抽取過(guò)程,就可以使 N點(diǎn)的DFT用上組2點(diǎn)的 DFT來(lái)計(jì)算,這樣就可以大減少運(yùn)算量?;? DlF FFT的蝶形運(yùn)算如

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個(gè)2點(diǎn)FFT蝶BCA-SC在基數(shù)為2的FFT中,設(shè)N=2M共有M級(jí)運(yùn)算,每級(jí)有 形運(yùn)算,因此,N點(diǎn)FFT總共有MN/2個(gè)蝶形運(yùn)算圖3.3.1 基2 DIF FFT的蝶形運(yùn)算例如:基數(shù)為2的FFT,當(dāng)N=8時(shí),共需要3級(jí),12個(gè)基2 DIT FFT的蝶 形運(yùn)算。其信號(hào)流程如圖3.3.2所示-1-1-IP圖 3.3.2從圖可以看出,輸入是經(jīng)過(guò)比特反轉(zhuǎn)的倒位序列,稱為位碼倒置,其排列順 序?yàn)閤(O),x,x(2),x(6)

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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)論