(完整word版)DSP原理與應(yīng)用練習(xí)題+參考答案-通信-廣工_第1頁
(完整word版)DSP原理與應(yīng)用練習(xí)題+參考答案-通信-廣工_第2頁
(完整word版)DSP原理與應(yīng)用練習(xí)題+參考答案-通信-廣工_第3頁
(完整word版)DSP原理與應(yīng)用練習(xí)題+參考答案-通信-廣工_第4頁
(完整word版)DSP原理與應(yīng)用練習(xí)題+參考答案-通信-廣工_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、DSP原理與應(yīng)用練習(xí)題參考答案24學(xué)時版本用于通信方向注意:紅色字體文字為解題注解與說明,萬萬不可作為答題內(nèi)容1. Q.15表示是16位數(shù)據(jù)中第15位為符號位,第140位為小數(shù)位。試寫出下面問題的答案: 分別寫出十進制正數(shù) 0.68和十進制負數(shù)-0.245的Q.15表示。0.68*32768=570AH-0.245*32768=-1F5CH=E0A4H 分別寫出Q.15表示的A200H和5A00H的十進制數(shù)值。A200H/32768=-5E00H/32768=- 0.734375 5A00H/32768=0.703125上面兩小題使用教材P7兩條公式,公式中 Q為數(shù)據(jù)中的小數(shù)位數(shù),digits

2、data。取補碼的正規(guī)方法是按位取反得到的反碼加上1。16進制下快速算法是找出互補的數(shù),即加上該互補數(shù)得10000H。例如求 1F5CH 補碼,1F5CH+E0A4H=10000H。故 E0A4H 為所求。 已知兩個Q.15數(shù)相乘的乘積存放于累加器A中。FRCT=O時A為16進制OxFFEAOOOOOO,該乘積的十進制數(shù)是多少?FRCT=1時A為16進制0X007D000000,該乘積的十進制數(shù)又是多少?FRCT=0時累加器A低30位為小數(shù)位乘積既非Q.31,也非Q.30解法一,寫出小數(shù)點后二進制位數(shù)值,乘積為-16000000H,小數(shù)點后的二進制為01011B,得2-2+2-4+2-5=-1

3、1/25=-0.34375解法二,運用教材 P7 公式,EA000000/2 30=-16000000/2 30=-11/25=-0.34375FRCT=1時累加器A低31位為小數(shù)位乘積為Q.31,其中高16位為Q.15解法一,寫出小數(shù)點后二進制位數(shù)值,乘積7D000000H小數(shù)點后的二進制為1111101B,得2-1+2-2+2-3+2-4+2-5+2-7=125/27= 0.9765625解法二,運用教材 P7 公式,7D000000H/2 31=125/27= 0.9765625解法三,取乘積 Q.15形式,乘積 Q.15形式為7D00H=32000/32768=0.97656252.解

4、決圖像編碼中常見的8x8離散余弦變換在 VC5402 DSP上定點運算問題。33用VC5402指令寫出定點運算實現(xiàn)192 cos cos 的代碼。其中定點乘法精度16 8128字長數(shù)據(jù)緩存區(qū)存放數(shù)據(jù)。(10分)果保留整數(shù)部分??梢岳檬椎刂窋?shù)據(jù)頁1000H的地址存放的數(shù)據(jù)是數(shù)據(jù)頁1001H的地址存放的數(shù)據(jù)是1000H 的3cos一163cos一832768=2724632768=1254016位。最后結(jié)1000H 存放 27246,1001H 存放 12540,結(jié)果存放 1002HSSBX FRCTMPY *(1000H), #192, AMPYA *(1001H)STH B, *(1002H

5、)以上有符號數(shù)乘法中小數(shù)點位置:第一次乘法第二次乘法33 寫出用上面(1)的指令段計算出192 cos cos 的數(shù)值。(6分) 16 8192*27246乘積取1位符號和高15位得159,159*12540乘積取1位符號和高15位得60。33用計算器,分兩步,第一步算192 cos 取整數(shù)得159;第二步算159 cos取整數(shù)得6016 861.0924 得 0 分61得1分60得2分159和60得3分3. 現(xiàn)在需要對16位整型音頻信號數(shù)據(jù)執(zhí)行 512點FFT,待處理數(shù)據(jù)放在數(shù)據(jù)頁首地址為0A00H,長度為512的緩沖區(qū)內(nèi)。在按時間抽取基2 FFT碟形運算中輸入數(shù)據(jù)倒序,輸出數(shù)據(jù)順序。寫出在

6、一個512次循環(huán)中以降序 ARX-0B讀入數(shù)據(jù)頁0BFFH0A00H的512個輸入數(shù)據(jù)的匯編指令代碼。STM #0BFFH, AR1STM #256, AR0STM #511, AR2loop:LD *AR1-0B, ABANZ loop, *AR2-或者STM #0BFFH, AR1STM #256, AR0STM #511, BRCRPTB end_loop -1LD *AR1-0B, Aen d_loop:或者STM #0BFFH, AR1STM 256, AR0RPT #511LD *AR1-0B, AFFT基2碟形運算,時間抽取時輸入亂序、輸出順序;頻域抽取時輸入順序、輸出亂序AR0

7、數(shù)值設(shè)為FFT點數(shù)一半。循環(huán)計數(shù)器初值設(shè)為循環(huán)次數(shù)-1也就是FFT點數(shù)-1。升序時,AR1數(shù)值設(shè)為緩沖區(qū)首地址,亂序讀 LD *AR1+0B, A,亂序?qū)慡TL A, *AR1+0B 降序時,AR1數(shù)值設(shè)為緩沖區(qū)尾地址,亂序讀 LD *AR1-0B, A,亂序?qū)慡TL A, *AR1-0B4. 在VC5402芯片上對無限長16位整型音頻信號執(zhí)行分段實時采集、濾波、輸出至功放。其中濾波 使用51階Hamming窗低通濾波以及循環(huán)緩沖區(qū)方法。匯編指令代碼段如下:LOOP FILTERING:STM #DATA_BUF_PTR+50,AR3或者 AR4STM #COEF_BUF_PTR, AR4或者

8、 AR5STM # LEN -1, AR7STM #IN_BUF_PTR, AR2STM #OUT_BUF_PTR, AR1STM#1, AR0SSBXFRCTIoop2:STM #51, BKMVDD *AR2+,AR3+0滅者 AR4+0%LD #0, ASTM #50, AR6loop1:MACAR3+0娥者 AR4+0% ,AR4+0娥者 AR5+0%, ABANZ loop1, *AR6-STH A, *AR1 +BANZ loop2, *AR7-其中COEF_PTR指向濾波系數(shù)緩沖區(qū),DATA_PTR指向輸入緩沖區(qū),IN_BUF指向音頻采集緩沖區(qū),OUT_BUF指向音頻功放輸出緩沖

9、區(qū)。試寫出下面問題的答案:(1) 在上面匯編指令代碼段中9個標(biāo)有序號的空中填空,使程序完整并且正確運行。AR3或者 AR4,AR4或者 AR5,#1,#FRCT,#51,AR3+0喊者AR4+0%#50,AR3+0娥者 AR4+0%,AR4+0喊者 AR5+0%(2) 在上面代碼段跟蹤過程中,讀出指向濾波系數(shù)緩沖區(qū)的輔助寄存器內(nèi)容為10AFH,隨后連續(xù)執(zhí)行4次MAC指令所訪問的4個內(nèi)存地址分別是多少?又讀出指向輸入緩沖區(qū)的輔助寄存器內(nèi)容為10F1H,隨后同一輔助寄存器對同一緩沖區(qū)訪問 102次后讀數(shù)是多少?循環(huán)尋址運算是*ARx+%BK,在BK個地址的集合內(nèi)循環(huán)遞增。緩沖區(qū)尾地址+仁首地址的條

10、件是首地N址低N位全零,N為2 BK的最小整數(shù)。任意給出一個循環(huán)尋址的緩沖區(qū)內(nèi)地址,可唯一確定該緩沖區(qū)(首、尾地址)。本題 BK=51,N=6。第 1 問,10B0,10B1,10B2,1080地址10AFH二進制展開后,低 6位全零時得首地址 1080H,尾地址=1080H+51-1=10B2H第 2 問,10F1H循環(huán)尋址的緩沖區(qū)內(nèi)任一地址a+51 n=a5. 在題7標(biāo)示為LOOP_FILTERING的使用循環(huán)緩沖區(qū)法完成 FIR濾波的匯編指令代碼段中存在兩重 循環(huán)嵌套?,F(xiàn)有代碼采用根據(jù)輔助寄存器進行條件跳轉(zhuǎn)的方法實現(xiàn)循環(huán)。C54x DSP還提供另外一種執(zhí)行效率更高的實現(xiàn)循環(huán)的方法,即重復(fù)

11、和塊重復(fù)。試寫出下面問題的答案:重復(fù)指令RPT和RPTZ使用C54x DSP內(nèi)核什么專門的寄存器或者標(biāo)志位?把他們?nèi)苛信e出來。重復(fù)指令 RPT和RPTZ使用C54x DSP內(nèi)核RC寄存器塊重復(fù)指令RPTB使用C54x DSP內(nèi)核什么專門的寄存器或者標(biāo)志位?把他們?nèi)苛信e出來。塊重復(fù)指令 RPTB 使用 C54x DSP 內(nèi)核 BRC、 RSA 、 REA 寄存器和 ST1 寄存器的 BRAF 位 對題 7 標(biāo)示為 LOOP_FILTERING 的使用循環(huán)緩沖區(qū)法完成 FIR 濾波的匯編指令代碼段進行優(yōu)化, 用重復(fù)指令和塊重復(fù)指令完全消除根據(jù)輔助寄存器進行條件跳轉(zhuǎn)的指令。LOOP_FILTER

12、ING:STM #DATA_BUF_PTR+50, AR3STM #COEF_BUF_PTR, AR4STM # LEN -1, BRCSTM #IN_BUF_PTR, AR2STM #OUT_BUF_PTR, AR1STM #1, AR0SSBX FRCTSTM #51, BKRPTB end_loop - 1MVDD *AR2+, AR3+0%RTPZA, #50MAC *AR3+0%, *AR4+0%, ASTH A, *AR1+end_loop:6. 上題 4標(biāo)號為 LOOP_FILTERING 的濾波代碼段必須封裝成為如下形式的函數(shù)方能被 C 語言主程序 調(diào)用。void fir(in

13、t *in_buf, int *data_buf, int *coeff_buf, int len, int *out_buf) 其中第一形參為指向音頻采集緩沖區(qū)的指針 in_buf ,第二形參為指向輸入緩沖區(qū)的指針 data_buf, 第三形參為指向濾波系數(shù)緩沖區(qū)的指針 coeff_buf ,第四形參為濾波長度(不等于信號分段長度) len, 第五形參為指向音頻功放輸出緩沖區(qū)的指針out_buf。從C主程序跳入?yún)R編子函數(shù)時ST1狀態(tài)寄存器的CPL 位自動為 1。試寫出下面問題的答案: 在跳入?yún)R編子程序 fir 并且執(zhí)行如下現(xiàn)場保護后,寫出把上述 fir 函數(shù)五個形參傳遞至累加器 B 的指 令

14、。PSHM AR0PSHM AR1PSHM AR2PSHM AR3PSHM AR4PSHM AR5PSHM AR6PSHM AR7FRAME #-12LDM AL, B 或者 STLM A, BLLD 21, BLD 22, BLD 23, BLD 24, BC語言調(diào)用匯編子程序時 C編譯器規(guī)則:從C主程序一進入?yún)R編子程序,SP指向返回地址,累加器 A存放第一個形參,SP+1指向第二個形參,SP+2指向第三個形參,。由此類推在匯編子程序開頭,用PSHM保護現(xiàn)場,每條 PSHM指令使SP遞減1。接著使用FRAME指令為子程序內(nèi)局部變量分配內(nèi)存空間。子程序返回時通過累加器 A向主程序輸出返回值。本

15、題中,8條PSHM指令使SP-8, FRAME指令使SP-12,總共減去 20,新SP=舊 SP-20,第一形參在 累加器 A,第二形參在 SP+21 (舊SP=新SP+20,舊SP+仁新SP+20+1),第三形參在 SP+22,第四形 參在SP+23,第五形參在 SP+24 寫出返回C語言主函數(shù)前執(zhí)行現(xiàn)場恢復(fù)的匯編指令代碼。FRAME #12POPM AR7POPM AR6POPM AR5POPM AR4POPM AR3POPM AR2POPM AR1POPM AR0堆棧后進先出。7. 由美國國家科學(xué)獎?wù)芦@得者、美國高通公司創(chuàng)始人之一兼首席科學(xué)家、被譽為CDMA之父的An drew J. V

16、iterbi發(fā)明的Viterbi譯碼是卷積碼的譯碼方法之一,因運算復(fù)雜度最低而廣泛用于3G移動通信系統(tǒng)和衛(wèi)星通信系統(tǒng)的信道糾錯與檢錯。其運算核心為循環(huán)執(zhí)行的加比選 ACS碟形運算,VC5402匯編代碼如下:LD *AR2, BADD *AR5, B, ASUB *AR5(1), B, BMAX ASTL A, *AR4+LD *AR2, BSUB *AR5+, B, AADD *AR5+, B, BMAX A;本地碼間漢明距離 t BL;AL=Old_Met(2*j)+BL ;BL=Old_Met(2*j+1)-BL ;A=max(A, B);AL=Old_Met(2*j)-BL ;BL=Ol

17、d_Met(2*j+1)+BL ;A=max(A, B)STL A, *AR3+以下優(yōu)化過程必須用SSBX C16指令設(shè)置C16LD *AR2, TDADST *AR5, ADSADT *AR5+, BCMPS A, *AR4+CMPS B, *AR3+以上代碼源自文獻 SPRA071A , Viterbi Decodi ng Tech ni ques for the TMS320C54x DSP Gen eratio n, P13。相關(guān)匯編指令注釋如下:DADST *ARx, A 或者B累加器高16位=ARx指向的32位數(shù)據(jù)的高16位+T暫存器,同時累加器低16位=ARx指向的32位數(shù)據(jù)的低

18、16位-T暫存器DSADT *ARx, A 或者B累加器高16位=ARx指向的32位數(shù)據(jù)的高16位-T暫存器,同時累加器低16位=ARx指向的32位數(shù)據(jù)的低16位+T暫存器CMPS A或者B, *ARx ARx指向的16位數(shù)據(jù)=max(累加器低16位,累加器高16位)8. 現(xiàn)在需要對信號緩沖區(qū)的256個16位有符號整數(shù)的音頻信號數(shù)據(jù)減去其均值(直流分量),成為交流信號。信號緩沖區(qū)在數(shù)據(jù)頁,首地址2C00H。均值存放于數(shù)據(jù)頁 2D00H地址中。去直流分量的匯編指令代碼如下:STM #2C00H, AR1LD *(2D00H), BSTM #255, AR0loop:LD *AR1,ASUB B,

19、ASTL A,*AR1 +BANZ loop, *AR0-現(xiàn)在要求對上述代碼進行優(yōu)化以提高執(zhí)行效率,措施包括雙16位讀寫和減法運算、重復(fù)或者塊重復(fù)等。其中僅改寫為雙 16位操作便可使循環(huán)次數(shù)減半。寫出在上述代碼基礎(chǔ)上經(jīng)過優(yōu)化達到最高執(zhí)行 效率的匯編指令代碼。STM #2C00H, AR1LD *(2D00H), TSTM #127, BRC256 次 SUB 變成 128 次 DSUBTSSBX C16RPTB L1-1DSUBT *AR1,ADST A, *AR1 +L1:單16位運算改為雙16位運算,力口 ADD改為DADD,減SUB可改為DSUB、DRSUB和DSUBT中最 適合于具體應(yīng)

20、用的一種9. 實驗六A/D轉(zhuǎn)換(輸入數(shù)據(jù))實驗和實驗七 D/A轉(zhuǎn)換(輸出數(shù)據(jù))實驗利用 VC5402 DSP的片內(nèi) 外設(shè)第1號多通道緩沖串行口 McBSP#1分別接收和發(fā)送數(shù)據(jù)。 McBSP的結(jié)構(gòu)方框圖如圖1所示。在EL-DSP-EXP I教學(xué)實驗系統(tǒng)中,VC5402的McBSP#1與位于語音處理單元的 TLC320AD50C芯片相連, 分別完成一維音頻信號的輸入、A/D轉(zhuǎn)換、DSP采集和DSP輸出、D/A轉(zhuǎn)換、輸出。McBSPDRDX H RBRAExpandCompressCompandXSR Y fRSRDRR|CLKXCLKRFSX 4-FSRCLKS AClock and frame

21、-sync generation and controlSPCR ktRGR |XCR pSRGR R16七 it peripheral busPCR XMGR pMultichannelselectionRCER ktXCERRINTXINTInterrupts to CPUREVTSynchronizatia n events to DMAXEVTREVTAXEVTA圖1 VC5402芯片的片內(nèi)外設(shè)多通道緩沖串行口 McBSP的結(jié)構(gòu)方框圖接收數(shù)據(jù)時,自DR進入的數(shù)據(jù)最后到達 McBSP#1內(nèi)部16位寄存器DRR1 , DDR1在VC5402的 數(shù)據(jù)存儲區(qū)映像地址是0x0041,同時發(fā)生三個

22、動作:第 1號串行口控制寄存器 SPCR1的第1bit接收就緒位 RRDY( Receive Ready)顯1;RINT線向C5402的CPU發(fā)出中斷; REVT線向VC5402的DMA控制器發(fā)出事件激勵信號。一旦VC5402的CPU或者DMA控制器把DRR1的16位數(shù)據(jù)讀出,1號串行口控制寄存器 SPCR1的第1bit接收設(shè)備就緒位 (Receiver Ready)顯0。這樣VC5402的CPU或 者DMA控制器就逐個讀出 DRR1的16位數(shù)據(jù)并且轉(zhuǎn)存到數(shù)據(jù)緩存區(qū)中。實驗六的數(shù)據(jù)緩存區(qū)首地址 1000H,長度256個16位字。數(shù)據(jù)緩存區(qū)填滿后,便可進行數(shù)字信號處理。發(fā)送數(shù)據(jù)時,一旦上一個數(shù)據(jù)

23、自McBSP#1內(nèi)部16位寄存器DXR1 ( DXR1在C5402的數(shù)據(jù)存儲區(qū)映像地址是0x0043)復(fù)制到發(fā)送部件上去(最后從DX發(fā)送出去),相當(dāng)于DXR1被清空,就同時發(fā)生三個動作:第2號串行口控制寄存器 SPCR2的第1bit發(fā)送設(shè)備就緒位 XRDY(Transmitter Ready)顯1;XINT線向VC5402的CPU發(fā)出中斷;XEVT線向VC5402的DMA控制器發(fā)出事件激勵信 號。一旦 VC5402的CPU或者DMA控制器向DXR1寫入16位數(shù)據(jù),2號串行口控制寄存器 SPCR2 的第1bit發(fā)送設(shè)備就緒位 XRDY ( Transmitt Ready )顯0。這樣VC5402

24、的CPU或者DMA控制器就把 數(shù)據(jù)緩沖區(qū)中經(jīng)過數(shù)字信號處理的數(shù)據(jù)逐個寫入到DXR1。實驗七的數(shù)據(jù)緩存區(qū)首地址3000H,長度40個16位字。實驗六和實驗七的指導(dǎo)程序都是用CPU查詢方式分別完成數(shù)據(jù)接收和數(shù)據(jù)發(fā)送?,F(xiàn)在要求用效率較高的中斷方式完成數(shù)據(jù)接收與發(fā)送的方案。相關(guān)中斷系統(tǒng)參數(shù)如圖2和圖3所示。(h) C5402 /MR151413121110937654321 DBXINT1BRINT1TINT1D(JAC5IMAC4orrHPINTINT3orDMACOBXINTOBRINTOTINTOINT2INTIINTODM AC 3DMAC2圖2Table 6-26. TMS320C5402 Interrupt Locations and Priorities (Continued)TRAP/1NTRNumber fK)PriorityNameLocation(HexFunction163INTO/SINTO4

溫馨提示

  • 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

提交評論