




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、DSP課程設(shè)計(jì)論文題 目 離散余弦變換(DCT)的DSP實(shí)現(xiàn) 專 業(yè) 電氣工程及其自動(dòng)化 姓 名 陳夢(mèng)澤 班 級(jí) 11東電氣 學(xué) 號(hào) 11811527 執(zhí)行學(xué)期 2014-2015 離散余弦變換(DCT)的DSP實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康?1. 掌握離散余弦變換的概念和實(shí)現(xiàn)方法; 2. 掌握用 C 語(yǔ)言或匯編語(yǔ)言編寫 DSP 程序的方法; 3. 熟悉DCT原理;二、實(shí)驗(yàn)設(shè)備 1. 一臺(tái)裝有 CCS 軟件的計(jì)算機(jī); 2. DSP 實(shí)驗(yàn)箱的TMS320C5410 主控板; 3. DSP 硬件仿真器;三、實(shí)驗(yàn)原理論述 1、原理 離散余弦變換(Discrete Cosine Transform,簡(jiǎn)稱DCT變換)
2、是一種與傅立葉變換緊密相關(guān)的數(shù)學(xué)運(yùn)算。在傅立葉級(jí)數(shù)展開式中,如果被展開的函數(shù)是實(shí)偶函數(shù),那么其傅立葉級(jí)數(shù)中只包含余弦項(xiàng),再將其離散化可導(dǎo)出余弦變換,因此稱之為離散余弦變換。對(duì)于給定的實(shí)際數(shù)據(jù)序列x(0),X(1) ,x(2). X( N-1 )的DCT(FDCT)算法如下:(1)其中:(2)二維離散余弦變換(FDCT):(3)其逆運(yùn)算是:(4)其中 N= 8 為 8x8 DCT. 2、DCT的DSP 程序設(shè)計(jì) 無(wú)論是C語(yǔ)言還是匯編語(yǔ)言,程序流程均分為初始化、行變換、列變換和移位輸出四個(gè)步驟。行、列變換具有相似性,如果對(duì)行變換的結(jié)果矩陣轉(zhuǎn)置,則列變換程序跟行變換一樣。對(duì)于匯編而言,初始化部分主要
3、初始化FP指針以指向前一函數(shù)地址,初始化數(shù)據(jù)和指針寄存器以保存返回?cái)?shù)據(jù)等。由于DCT行變和列變換過(guò)程相似,且列變換是在行變換操作的基礎(chǔ)上進(jìn)行的。則可利用多種索引尋址寄存器的靈活組合,把行變換結(jié)果直接以轉(zhuǎn)置方式存儲(chǔ)而不增加實(shí)際的存儲(chǔ)時(shí)間,這樣行列變換可使用同一代碼循環(huán)兩次實(shí)現(xiàn),減小了實(shí)際代碼大小。本程序?qū)崿F(xiàn)的是FDCT,可以使用2次一維DCT變換來(lái)實(shí)現(xiàn)二維DCT變換。 3、DCT的DSP實(shí)現(xiàn)二維DCT 變換時(shí)結(jié)果為兩次無(wú)理數(shù)sqrt(8)相乘,產(chǎn)生了有理項(xiàng),因此,在程序里首先多乘一次sqrt(8),然后在兩次DCT 變換結(jié)束以后,使用右移3位以達(dá)到正常輸出。四、方案論證及系統(tǒng)設(shè)計(jì) 本次實(shí)習(xí)有兩種
4、方案,C語(yǔ)言和匯編語(yǔ)言實(shí)現(xiàn),由于考慮到DSP程序的特點(diǎn),我采用匯編語(yǔ)言實(shí)現(xiàn)。 1.打開CCS軟件,編制程序簡(jiǎn)化行列變換的代碼如下: 2.B0 = R0; B3 = R1; B2 = R2; LSETUP (DCT_START, DCT_END) LC0 = P0; DCT_START: LSETUP(ROW_START,ROW_END)LC1=P2; ROW_START: ROW_END: B1 = B0; B0 = B2; DCT_END:B2 = B1; 五、一維DCT變換流程圖六、程序模塊源程序DSP程序: .mmregs .def entry .sect INIT* Initialis
5、e*entry NOP NOP SSBX SXM ; set sign extension mode SSBX OVM ; enable saturation LD #0, DP ; set data page STM 0FFE0h, PMST ; Init PMST reg. RSBX FRCT .include fdct_dat.inc ; FDCT data storage declarationMODE .SET 1 ; MODE=1 TEST ON SIMULATORPAGE0 .SET 0PAGE4 .SET 4PAGE24 .SET 24dPAGE25 .SET 25dB0 .S
6、ET 0200hB1 .SET 0300hB2 .SET 060hPA1BIS .SET 1PA2BIS .SET 2PA3BIS .SET 3PA4BIS .SET 4PA5BIS .SET 5PA6BIS .SET 6* Initialization of the registers .sectFDCTINIT LD #PAGE24, DP ST #21407, E_P6 ST #8867, F_P6 ST #2000H, ROUND1TBL: LD #PAGE25, DP ST #21407, E_P7 ST #8867, F_P7 ST #4000H, ROUND2 ST #40H,
7、ROUND3START* IF MODE = SIMULATOR.IF MODE=1 STM #63, AR0 ; AR0= # of inputs to be taken - 1 STM #X, AR1 ; AR1= address of first inputBEG PORTR #PA1BIS, *AR1+ ; Read and store to addr(AR1) BANZ BEG, *AR0- ; Repeat above code 64 times ; till all 64 pixels are read.ENDIF STM #3, AR0 STM #X, AR1 ; Reset
8、AR1 to first input STM #Y00, AR2 ; Set AR2 to first Y blockDCT1 NOP NOP LD #PAGE24, DP LD *AR1+, 4, A ; + (16)*(X0) ADD *AR1+, 4, A ; + (16)*(X1) ADD *AR1+, 4, A ; + (16)*(X2) ADD *AR1+, 4, A ; + (16)*(X3) ADD *AR1+, 4, A ; + (16)*(X4) ADD *AR1+, 4, A ; + (16)*(X5) ADD *AR1+, 4, A ; + (16)*(X6) ADD
9、*AR1, 4,A ; + (16)*(X7) STL A, Y00 ; = Y00 RPTZ A, #7 MACP *AR1-, COEF_F1, A SFTA A, 4 MAR *AR1+ ; (64)A*X0+B*X1+C*X2-D*X3-D*X4 ADD ROUND1, A ; -C*X5-B*X6-A*X7 + 4*ROUND1 STH A, 2, Y01 ; = Y01 LD ROUND1, -4, A ; (ROUND1)/16 LD E_P6, T MAC *AR1+0, A ; + X0*E_P6 MAS *AR1+, A ; - X3*E_P6 MAS *AR1+0, A
10、; - X4*E_P6 MAC *AR1-, A ; + X7*E_P6 LD F_P6, TMAC *AR1-, A ; + X6*F_P6 MAS *AR1-0, A ; - X5*F_P6 MAS *AR1-, A ; - X2*F_P6 MAC *AR1-, A ; + X1*F_P6 STH A, 6, Y02 ; Multiply prev summation by 16 ; = Y02 RPTZ A, #7 MACP *AR1+, COEFF2, A ; 64(B*X0-D*X1-A*X2-C*X3+C*X4+A*X5 SFTA A, 4 MAR *AR1- ADD ROUND1
11、, A ; +D*X6-B*X7) + 4*ROUND1 STH A, 2, Y03 ; = Y03 LD *AR1-, 4, A ; X7*16 SUB *AR1-, 4, A ; - X6*16 SUB *AR1-, 4, A ; - X5*16 ADD *AR1-, 4, A ; + X4*16 ADD *AR1-, 4, A ; + X3*16 SUB *AR1-, 4, A ; - X2*16 SUB *AR1-, 4, A ; - X1*16 ADD *AR1, 4, A ; + X0*16 STL A, Y04 ; = Y04 RPTZ A, #7 MACP *AR1+, COE
12、FF3, A ; 8(D*X0-C*X1+B*X2-A*X3+A*X4-B*X5 SFTA A, 4 ; +C*X6-D*X7) MAR *AR1- ADD ROUND1, A ; + 4*ROUND1 STH A, 2, Y05 ; = Y05 LD ROUND1, -4, A ; (ROUND1)/16 LD F_P6, T MAC *AR1-0, A ; + F_P6*X7 MAS *AR1-, A ; - F_P6*X4 MAS *AR1-0, A ; - F_P6*X3 MAC *AR1+, A ; + F_P6*X0 LD E_P6, T MAS *AR1+, A ; - E_P6
13、*X1 MAC *AR1+0, A ; + E_P6*X2 MAC *AR1+, A ; + E_P6*X5 MAS *AR1+, A ; - E_P6*X6 STH A, 6, Y06 ; Multiply prev summation by 16 ; = Y06 RPTZ A, #7 MACP *AR1-, COEF_F4, A ; 64(D*X0-C*X1+B*X2-A*X3+A*X4-B*X5 SFTA A, 4 ; +C*X6-D*X7) MAR *AR1+ ADD ROUND1, A ; + 4*ROUND1 STH A, 2, Y07 ; = Y07 MAR *+AR1(8) ;
14、 Set AR1 to point to the next set ; of 8 inputsDCT3 NOP NOP* PLACE FDCT COEFFICIENTS IN FILE POINTED BY PA2 .IF MODE=1 STM #63, AR0 ; AR0= # of outputs - 1 STM #Z00, AR1 ; AR1= addr of first outputBEG1 PORTW *AR1+, #PA2BIS ; Send output value BANZ BEG1, *AR0- ; Repeat above process (64x).ENDIFEXITNO
15、P B START ; Go to start of program. ; Grab another 64 pixelsCOEF_F1 .WORD -22725,-19266,-12873,-4520,4520,12873,19266,22725COEFF2 .WORD 19266,-4520,-22725,-12873,12873,22725,4520,-19266COEFF3 .WORD 12873,-22725,4520,19266,-19266,-4520,22725,-12873COEF_F4 .WORD -4520,12873,-19266,22725,-22725,19266,-
16、12873,4520* with: A = cos(?16)*?*16384 = 22725* B = cos(3?16)*?*16384 = 19266* C = cos(5?16)*?*16384 = 12873* D = cos(7?16)*?*16384 = 4520* E = cos(?8)*?*16384 = 21407* F = cos(3?8)*?*16384 = 8867*.END鏈接文件:-m fdct.map-o fdct.out-e entryfdct.objMEMORY PAGE 0: OCDARAM1: origin = 00080h length = 00880h
17、 /* on-chip DARAM */ OCDARAM2: origin = 00900h length = 00300h OCDARAM4: origin = 00C00h length = 00400h OCDARAM5: origin = 01000h length = 00400h EXTERNAL: origin = 01400h length = 0EB80h INTRVECS: origin = 0FF80h length = 00079h PAGE 1: MMREGS: origin = 00000h length = 00060h SPRAM: origin = 00060
18、h length = 00020h OCDARAM1: origin = 00080h length = 00400h /* on-chip DARAM */ OCDARAM2: origin = 00480h length = 0077Fh OCDARAM4: origin = 00C00h length = 00400h OCDARAM5: origin = 01000h length = 00400h EXTERNAL: origin = 01400h length = 0EC00hSECTIONS INIT OCDARAM1 PAGE 0 FDCT OCDARAM1 PAGE 0 .bss OCDARAM4 PAGE 1七、仿真調(diào)試及性能分析與實(shí)驗(yàn)1.開電,運(yùn)行CCS軟件,打開項(xiàng)目文件fdct.prj,編譯運(yùn)行并下載。2.設(shè)置斷點(diǎn),再點(diǎn)擊“運(yùn)行”按鈕,如下圖所示。這里的相關(guān)算法是在程序中編寫的。3Build 程序 并 run 程序4、導(dǎo)入 .OUT 文件:5、點(diǎn)擊ViewGraphTime/Frquence打開圖形屬性對(duì)話框,如下設(shè)置。1、 點(diǎn)擊“OK”后,可以看到如下波形。八、心得體會(huì): 在本次實(shí)驗(yàn)中,經(jīng)過(guò)老師的悉心指導(dǎo)和認(rèn)真教學(xué),通過(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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 火花線切割機(jī)床項(xiàng)目投資可行性研究分析報(bào)告(2024-2030版)
- 中國(guó)醫(yī)用純化水設(shè)備行業(yè)發(fā)展監(jiān)測(cè)及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- 中國(guó)汽車平衡塊行業(yè)市場(chǎng)全景評(píng)估及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- 中國(guó)電容器用薄膜市場(chǎng)調(diào)查報(bào)告
- 2025年中國(guó)氣瓶光面環(huán)規(guī)行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)全鋼中央臺(tái)項(xiàng)目投資可行性研究分析報(bào)告
- 中國(guó)川烏頭行業(yè)市場(chǎng)深度評(píng)估及投資戰(zhàn)略規(guī)劃報(bào)告
- 中國(guó)回光燈市場(chǎng)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 早教班老師培訓(xùn)課件
- 同城配送合同
- 高三家長(zhǎng)會(huì)班主任發(fā)言稿課件
- 學(xué)前幼兒園-《快樂的小鼴鼠》教學(xué)課件設(shè)計(jì)
- 3停止間轉(zhuǎn)法教案
- 2022-2023學(xué)年重慶市合川市三下數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 全過(guò)程造價(jià)咨詢服務(wù)實(shí)施方案
- 初二生地會(huì)考復(fù)習(xí)資料全
- 里氏硬度法檢測(cè)鋼材強(qiáng)度范圍記錄表、鋼材里氏硬度與抗拉強(qiáng)度范圍換算表
- 四川省宜賓市翠屏區(qū)中學(xué)2022-2023學(xué)年數(shù)學(xué)八年級(jí)第二學(xué)期期末檢測(cè)試題含解析
- 2020-2021成都石室聯(lián)合中學(xué)蜀華分校小學(xué)數(shù)學(xué)小升初模擬試卷附答案
- 某冶金機(jī)械廠供配電系統(tǒng)設(shè)計(jì)
- 《在中亞細(xì)亞草原上》賞析 課件
評(píng)論
0/150
提交評(píng)論