DSP原理與應(yīng)用練習(xí)題+參考答案-通信-廣工(可編輯修改word版)_第1頁
DSP原理與應(yīng)用練習(xí)題+參考答案-通信-廣工(可編輯修改word版)_第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余7頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

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

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

3、375解法二,運(yùn)用教材P7公式,EA000000/23o=-16000000/23o=-11/25=-0.34375FRCT=1時(shí)累加器A低31位為小數(shù)位乘積為Q.31,其中高16位為Q.15解法一,寫出小數(shù)點(diǎn)后二進(jìn)制位數(shù)值,乘積7D000000H小數(shù)點(diǎn)后的二進(jìn)制為1111101B得2-1+2-2+2-3+2-4+2-5+2-7=125/27=0.9765625解法二,運(yùn)用教材P7公式,7D000000H/231=125/27=0.9765625解法三,取乘積Q.15形式,乘積Q.15形式為7D00H=32000/32768=0.97656252. 解決圖像編碼中常見的8x8離散余弦變換在VC

4、5402DSP上定點(diǎn)運(yùn)算問題。33用VC5402指令寫出定點(diǎn)運(yùn)算實(shí)現(xiàn)192xcosxcos的代碼。其中定點(diǎn)乘法精度16位。最后結(jié)168果保留整數(shù)部分??梢岳檬椎刂?000H的128字長數(shù)據(jù)緩存區(qū)存放數(shù)據(jù)。(10分)3數(shù)據(jù)頁1000H的地址存放的數(shù)據(jù)是cosx32768=27246163數(shù)據(jù)頁1001H的地址存放的數(shù)據(jù)是cosx32768=1254081000H存放27246,1001H存放12540,結(jié)果存放1002HSSBXFRCTMPY*(1000H),#192,AMPYA*(1001H)STHB,*(1002H)以上有符號(hào)數(shù)乘法中小數(shù)點(diǎn)位置:1/rr.1C4萊J宀-S高15位數(shù)低15位

5、數(shù)001S高'15/位數(shù)字1彳IT.1C/亠熬r宀|0|S高15位數(shù)字低15位數(shù)033寫出用上面的指令段計(jì)算出192xcosxcos的數(shù)值。(6分)168192*27246乘積取1位符號(hào)和高15位得159,159*12540乘積取1位符號(hào)和高15位得60。33用計(jì)算器,分兩步,第一步算192xcos取整數(shù)得159;第二步算159xcos取整數(shù)得6016861.0924得0分61得1分60得2分159和60得3分3. 現(xiàn)在需要對(duì)16位整型音頻信號(hào)數(shù)據(jù)執(zhí)行512點(diǎn)FFT,待處理數(shù)據(jù)放在數(shù)據(jù)頁首地址為0A00H,長度為512的緩沖區(qū)內(nèi)。在按時(shí)間抽取基2FFT碟形運(yùn)算中輸入數(shù)據(jù)倒序,輸出數(shù)據(jù)順

6、序。寫出在一個(gè)2次循環(huán)中以降序ARx-0B讀入數(shù)據(jù)頁0BFFH0A00H的512個(gè)輸入數(shù)據(jù)的匯編指令代碼。STM#0BFFH,AR1STM#256,AR0STM#511,AR2loop:LD*AR1-0B,ABANZloop,*AR2-或者STM#0BFFH,AR1STM#256,AR0STM#511,BRCRPTBendoopTLD*AR1-0B,Aendoop:或者STM#0BFFH,AR1STM256,AR0RPT#511LD*AR1-0B,AFFT基2碟形運(yùn)算,時(shí)間抽取時(shí)輸入亂序、輸出順序;頻域抽取時(shí)輸入順序、輸出亂序AR0數(shù)值設(shè)為FFT點(diǎn)數(shù)一半。循環(huán)計(jì)數(shù)器初值設(shè)為循環(huán)次數(shù)-1也就是F

7、FT點(diǎn)數(shù)-1。升序時(shí),AR1數(shù)值設(shè)為緩沖區(qū)首地址,亂序讀LD*AR1+0B,A,亂序?qū)慡TLA.*AR1+0B降序時(shí),AR1數(shù)值設(shè)為緩沖區(qū)尾地址,亂序讀LD*AR1-0B,A,亂序?qū)慡TLA.*AR1-0B4. 在VC5402芯片上對(duì)無限長16位整型音頻信號(hào)執(zhí)行分段實(shí)時(shí)采集、濾波、輸出至功放。其中濾波使用51階Hamming窗低通濾波以及循環(huán)緩沖區(qū)方法。匯編指令代碼段如下:LOOP_FILTERING:STM#DATABUFPTR+50,AR3或者AR4STM#COEFBUFPTR,AR4或者AR5STM#LEN-1,AR7STM#IN_BUF_PTR,AR2STM#OUT_BUF_PTR,A

8、R1STM#1,AR0SSBXFRCTloop2:STM#51,BKMVDD*AR2+.AR3+0%或者AR4+0%LD#0,ASTM#50,AR6loop1:MACAR3+0%或者AR4+0%,AR4+0%或者AR5+0%,ABANZloopl,*AR6-STHA,*AR1+BANZloop2,*AR7-其中COEF_PTR指向?yàn)V波系數(shù)緩沖區(qū),DATA_PTR指向輸入緩沖區(qū),N_BUF指向音頻采集緩沖區(qū),OUT_BUF指向音頻功放輸出緩沖區(qū)。試寫出下面問題的答案:(1) 在上面匯編指令代碼段中9個(gè)標(biāo)有序號(hào)的空中填空,使程序完整并且正確運(yùn)行。AR3或者AR4,AR4或者AR5,#1,#FRCT

9、,#51,AR3+0%或者AR4+0%,#50,AR3+0%或者AR4+0%.AR4+0%或者AR5+0%(2) 在上面代碼段跟蹤過程中,讀出指向?yàn)V波系數(shù)緩沖區(qū)的輔助寄存器內(nèi)容為AFH隨后連續(xù)執(zhí)行4次MAC指令所訪問的4個(gè)內(nèi)存地址分別是多少?又讀出指向輸入緩沖區(qū)的輔助寄存器內(nèi)容為10F1H,隨后同一輔助寄存器對(duì)同一緩沖區(qū)訪問102次后讀數(shù)是多少?循環(huán)尋址運(yùn)算是*ARx+%BK,在BK個(gè)地址的集合內(nèi)循環(huán)遞增。緩沖區(qū)尾地址+1=首地址的條件是首地址低N位全零,N為2N>BK的最小整數(shù)。任意給出一個(gè)循環(huán)尋址的緩沖區(qū)內(nèi)地址,可唯一確定該緩沖區(qū)(首、尾地址)。本題BK=51,N=6。第1問,10B

10、0,10B1,10B2,1080地址10AFH二進(jìn)制展開后,低6位全零時(shí)得首地址1080H,尾地址=1080H+51-1=10B2H第2問,10F1H循環(huán)尋址的緩沖區(qū)內(nèi)任一地址a+51n=a5.在題7標(biāo)示為LOOP_FILTERING的使用循環(huán)緩沖區(qū)法完成FIR濾波的匯編指令代碼段中存在兩重循環(huán)嵌套?,F(xiàn)有代碼采用根據(jù)輔助寄存器進(jìn)行條件跳轉(zhuǎn)的方法實(shí)現(xiàn)循環(huán)。C54xDSP還提供另外一種執(zhí)行效率更高的實(shí)現(xiàn)循環(huán)的方法,即重復(fù)和塊重復(fù)。試寫出下面問題的答案:重復(fù)指令RPT和RPTZ使用C54xDSP內(nèi)核什么專門的寄存器或者標(biāo)志位?把他們?nèi)苛信e出來。重復(fù)指令RPT和RPTZ使用C54xDSP內(nèi)核RC寄存

11、器塊重復(fù)指令RPTB使用C54xDSP內(nèi)核什么專門的寄存器或者標(biāo)志位?把他們?nèi)苛信e出來。塊重復(fù)指令RPTB使用C54xDSP內(nèi)核BRC、RSA、REA寄存器和ST1寄存器的BRAF位對(duì)題7標(biāo)示為LOOP_FILTERING的使用循環(huán)緩沖區(qū)法完成FIR濾波的匯編指令代碼段進(jìn)行優(yōu)化,用重復(fù)指令和塊重復(fù)指令完全消除根據(jù)輔助寄存器進(jìn)行條件跳轉(zhuǎn)的指令。LOOP_FILTERING:STM#DATA_BUF_PTR+50,AR3STM#COEF_BUF_PTR,AR4STM#LEN-1,BRCSTM#IN_BUF_PTR,AR2STM#OUT_BUF_PTR,AR1STM#1,AR0SSBXFRCTST

12、M#51,BKRPTBend_loop-1MVDD*AR2+,AR3+0%RTPZA,#50MAC*AR3+0%,*AR4+0%,ASTHA,*AR1+end_loop:6.上題4標(biāo)號(hào)為LOOP_FILTERING的濾波代碼段必須封裝成為如下形式的函數(shù)方能被C語言主程序調(diào)用。voidfir(int*in_buf,int*data_buf,int*coeff_buf,intlen,int*out_buf)其中第一形參為指向音頻采集緩沖區(qū)的指針in_buf,第二形參為指向輸入緩沖區(qū)的指針data_buf,第三形參為指向?yàn)V波系數(shù)緩沖區(qū)的指針coeff_buf,第四形參為濾波長度(不等于信號(hào)分段長度)

13、len,第五形參為指向音頻功放輸出緩沖區(qū)的指針out_buf。從C主程序跳入?yún)R編子函數(shù)時(shí)ST1狀態(tài)寄存器的CPL位自動(dòng)為1。試寫出下面問題的答案:在跳入?yún)R編子程序fir并且執(zhí)行如下現(xiàn)場(chǎng)保護(hù)后,寫出把上述r函數(shù)五個(gè)形參傳遞至累加器B的指令。PSHMAR0PSHMAR1PSHMAR2PSHMAR3PSHMAR4PSHMAR5PSHMAR6PSHMAR7FRAME#-12LDMAL,B或者STLMA,BLLD21,BLD22,BLD23,BLD24,BC語言調(diào)用匯編子程序時(shí)c編譯器規(guī)則:從C主程序一進(jìn)入?yún)R編子程序,SP扌指向坂回地址,累加器A存放第一個(gè)形參,SP+1扌指向第二個(gè)形參,SP+2指向第三

14、個(gè)形參,。由此類推在匯編子程序開頭,用PSHM保護(hù)現(xiàn)場(chǎng),每條PSHM指令使SP涕減1。接著使用FRAME指令為子程序局部變量分配內(nèi)存空間。子程序返回時(shí)通過累加器A向主程序輸出返回值。本題中,8條PSHM指令使SP-8,FRAME指令使SP-12,總共減去20,新SP-舊SP-20,第一形參在加器A,第二形參在SP+21(舊$卩=新SP+20,舊SP+1=新SP+20+1),第三形參在SP+22,第四形參在SP+23,第五形參在SP+24寫出返回C語言主函數(shù)前執(zhí)行現(xiàn)場(chǎng)恢復(fù)的匯編指令代碼。FRAME#12POPMAR7POPMAR6POPMAR5POPMAR4POPMAR3POPMAR2POPMA

15、R1POPMAR0堆棧后進(jìn)先出。7. 由美國國家科學(xué)獎(jiǎng)?wù)芦@得者、美國高通公司創(chuàng)始人之一兼首席科學(xué)家、被譽(yù)為CDMA之父的AndrewJ.Viterbi發(fā)明的Viterbi譯碼是卷積碼的譯碼方法之一,因運(yùn)算復(fù)雜度最低而廣泛用于3G移動(dòng)通信系統(tǒng)和衛(wèi)星通信系統(tǒng)的信道糾錯(cuò)與檢錯(cuò)。其運(yùn)算核心為循環(huán)執(zhí)行的加比選ACS碟形運(yùn)算,VC5402匯編代碼如下:LD*AR2,B;本地碼間漢明距離一BLADD*AR5,B,A;AL=Old_Met(2*j)+BLSUB*AR5(1),B,B;BL=Old_Met(2*j+1)-BLMAXA;A=max(A,B)STLA,*AR4+LD*AR2,BSUB*AR5+,B,

16、A;AL=Old_Met(2*j)-BLADD*AR5+,B,B;BL=Old_Met(2*j+1)+BLMAXA;A=max(A,B)STLA,*AR3+以下優(yōu)化過程必須用SSBXC16指令設(shè)置C16LD*AR2,TDADST*AR5,ADSADT*AR5+,BCMPSA,*AR4+CMPSB,*AR3+以上代碼源自文獻(xiàn)SPRA071A,ViterbiDecodingTechniquesfortheTMS320C54xDSPGeneration,P13。相關(guān)匯編指令注釋如下:DADST*ARx,A或者B累加器高16X=ARx指向的32位數(shù)據(jù)的高16位+T暫存器,同時(shí)累加器低16位-ARx指向

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

18、AR1+BANZloop,*AR0-現(xiàn)在要求對(duì)上述代碼進(jìn)行優(yōu)化以提高執(zhí)行效率,措施包括雙16位讀寫和減法運(yùn)算、重復(fù)或者塊重復(fù)等。其中僅改寫為雙16位操作便可使循環(huán)次數(shù)減半。寫出在上述代碼基礎(chǔ)上經(jīng)過優(yōu)化達(dá)到最高執(zhí)行效率的匯編指令代碼。STM#2C00H,AR1LD*(2D00H),TSTM#127,BRC256次SUB變成128次DSUBTSSBXC16RPTBL1-1DSUBT*AR1,ADSTA,*AR1+L1:單16位運(yùn)算改為雙16位運(yùn)算,加ADD改為DADD,減SUB可改為DSUB、DRSUB和DSUBT中最合于具體應(yīng)用的一種9. 實(shí)驗(yàn)六A/D轉(zhuǎn)換(輸入數(shù)據(jù))實(shí)驗(yàn)和實(shí)驗(yàn)七D/A轉(zhuǎn)換(輸出

19、數(shù)據(jù))實(shí)驗(yàn)利用VC5402DSP的片內(nèi)外設(shè)第1號(hào)多通道緩沖串行口McBSP#1分別接收和發(fā)送數(shù)據(jù)oMcBSP的結(jié)構(gòu)方框圖如圖1所示。在EL-DSP-EXPI教學(xué)實(shí)驗(yàn)系統(tǒng)中,VC5402的McBSP#1與位于語音處理單元的TLC320AD50C芯片相連,分別完成一維音頻信號(hào)的輸入、A/D轉(zhuǎn)換、DSP采集和DSP輸出、D/A轉(zhuǎn)換、輸出。圖1VC5402芯片的片內(nèi)外設(shè)多通道緩沖串行口McBSP的結(jié)構(gòu)方框圖接收數(shù)據(jù)時(shí),自DR進(jìn)入的數(shù)據(jù)最后到達(dá)McBSP#l內(nèi)部16位寄存器DRR1,DDR1在VC5402的數(shù)據(jù)存儲(chǔ)區(qū)映像地址是0x0041,同時(shí)發(fā)生三個(gè)動(dòng)作:第1號(hào)串行口控制寄存器SPCR1的第lbit接

20、收就緒位RRDY(ReceiveReady)顯1;RINT線向C5402的CPU發(fā)出中斷;REVT線向VC5402的DMA控制器發(fā)出事件激勵(lì)信號(hào)。一旦VC5402的CPU或者DMA控制器把DRR1的16位數(shù)據(jù)讀出,1號(hào)串行口控制寄存器SPCR1的第1bit接收設(shè)備就緒位(ReceiverReady)顯0。這樣VC5402的CPU或者DMA控制器就逐個(gè)讀出DRR1的16位數(shù)據(jù)并且轉(zhuǎn)存到數(shù)據(jù)緩存區(qū)中。實(shí)驗(yàn)六的數(shù)據(jù)緩存區(qū)首地址1000H,長度256個(gè)16位字。數(shù)據(jù)緩存區(qū)填滿后,便可進(jìn)行數(shù)字信號(hào)處理。發(fā)送數(shù)據(jù)時(shí),一旦上一個(gè)數(shù)據(jù)自McBSP#1內(nèi)部16位寄存器DXR1(DXR1在C5402的數(shù)據(jù)存儲(chǔ)區(qū)映

21、像地址是0x0043)復(fù)制到發(fā)送部件上去(最后從DX發(fā)送出去),相當(dāng)于DXR1被清空,就同時(shí)發(fā)生三個(gè)動(dòng)作:第2號(hào)串行口控制寄存器SPCR2的第1bit發(fā)送設(shè)備就緒位XRDY(TransmitterReady)顯1;XINT線向VC5402的CPU發(fā)出中斷;XEVT線向VC5402的DMA控制器發(fā)出事件激勵(lì)信號(hào)。一旦VC5402的CPU或者DMA控制器向DXR1寫入16位數(shù)據(jù),2號(hào)串行口控制寄存器SPCR2的第1bit發(fā)送設(shè)備就緒位XRDY(TransmittReady)顯0。這樣VC5402的CPU或者DMA控制器就把數(shù)據(jù)緩沖區(qū)中經(jīng)過數(shù)字信號(hào)處理的數(shù)據(jù)逐個(gè)寫入到DXR1。實(shí)驗(yàn)七的數(shù)據(jù)緩存區(qū)首地

22、址3000H長度40個(gè)16位字。實(shí)驗(yàn)六和實(shí)驗(yàn)七的指導(dǎo)程序都是用CPU查詢方式分別完成數(shù)據(jù)接收和數(shù)據(jù)發(fā)送?,F(xiàn)在要求用效率較高的中斷方式完成數(shù)據(jù)接收與發(fā)送的方案。相關(guān)中斷系統(tǒng)參數(shù)如圖2和圖3所示。(h)C54O2IMR1E1413121110937e53210ResvdDMAC5MAC4BXINT1DMAC3BRINT1orDMAC2HPINTINT3TINT1orDF.1AC1DMACOBXINTOBRINTOTINTOINT2INT1IMTu圖2Table6-26.TMS320C54Q2InterruptLocationsandPriorrties(Continued)IRAP/INFRNumber(IQPriorityNameLocation(Hex)Function163INTO/SINTO40Externaluserint

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論