离散余弦变换(DCT)的DSP程序设计与实现(11页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《离散余弦变换(DCT)的DSP程序设计与实现(11页).doc》由会员分享,可在线阅读,更多相关《离散余弦变换(DCT)的DSP程序设计与实现(11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-离散余弦变换(DCT)的DSP程序设计与实现-第 9 页DSP课程设计论文题 目 离散余弦变换(DCT)的DSP实现 专 业 电气工程及其自动化 姓 名 陈梦泽 班 级 11东电气 学 号 11811527 执行学期 2014-2015 离散余弦变换(DCT)的DSP实现一、实验目的 1. 掌握离散余弦变换的概念和实现方法; 2. 掌握用 C 语言或汇编语言编写 DSP 程序的方法; 3. 熟悉DCT原理;二、实验设备 1. 一台装有 CCS 软件的计算机; 2. DSP 实验箱的TMS320C5410 主控板; 3. DSP 硬件仿真器;三、实验原理论述 1、原理 离散余弦变换(Discr
2、ete Cosine Transform,简称DCT变换)是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。对于给定的实际数据序列x(0),X(1) ,x(2). X( N-1 )的DCT(FDCT)算法如下:(1)其中:(2)二维离散余弦变换(FDCT):(3)其逆运算是:(4)其中 N= 8 为 8x8 DCT. 2、DCT的DSP 程序设计 无论是C语言还是汇编语言,程序流程均分为初始化、行变换、列变换和移位输出四个步骤。行、列变换具有相似性,如果对行变换的结果矩阵转
3、置,则列变换程序跟行变换一样。对于汇编而言,初始化部分主要初始化FP指针以指向前一函数地址,初始化数据和指针寄存器以保存返回数据等。由于DCT行变和列变换过程相似,且列变换是在行变换操作的基础上进行的。则可利用多种索引寻址寄存器的灵活组合,把行变换结果直接以转置方式存储而不增加实际的存储时间,这样行列变换可使用同一代码循环两次实现,减小了实际代码大小。本程序实现的是FDCT,可以使用2次一维DCT变换来实现二维DCT变换。 3、DCT的DSP实现二维DCT 变换时结果为两次无理数sqrt(8)相乘,产生了有理项,因此,在程序里首先多乘一次sqrt(8),然后在两次DCT 变换结束以后,使用右移
4、3位以达到正常输出。四、方案论证及系统设计 本次实习有两种方案,C语言和汇编语言实现,由于考虑到DSP程序的特点,我采用汇编语言实现。 1.打开CCS软件,编制程序简化行列变换的代码如下: 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 .de
5、f entry .sect INIT* Initialiseentry 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
6、.SET 24dPAGE25 .SET 25dB0 .SET 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
7、 ST #4000H, ROUND2 ST #40H, 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
8、#3, AR0 STM #X, AR1 ; Reset 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 *A
9、R1+, 4, A ; + (16)*(X6) ADD *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+,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散 余弦 变换 DCT DSP 程序设计 实现 11
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内