资源描述:
《离散余弦变换(dct)的dsp程序设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一、实习题目:1二、实习目的1三、实习任务与要求:1四、系统原理论述五、方案论证及系统设计2六、一维DCT变换流程图3七、程序模块源程序4八、仿真调试及性能分析与实验7九、实习结论10十、实习总结10十一、参考文献:11一、实习题目:离散余弦变换(DCT)的DSP程序设计与实现二、实习目的1、熟悉和掌握DCT设计方法跟步骤。2、通过仿真验证实现DCT的DSP程序的正确性。3、掌握专业实验中常用的仪器设备和开发工具。4、通过一周的设计实践培养学牛综合利用所学知识编写DSP程序的能力,为今后的工作学习打下坚实的基础。5、掌握用DSP
2、程序实现DCT的原理和方法。6、熟悉DCT原理。三、实习任务与要求:(1)利用C语言或汇编语言编写一个实现DCT的DSP程序(2)在CCS上仿真运行(3)查看分析结果,记录必要参数四、系统原理论述1、DCT原理离散余弦变换(DiscreteCosineTransform,简称DCT变换)是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。对于给定的实际数据序列x(0),X(1),x(2)•・・・X(N-l)的D
3、CT(FDCT)算法如下:z(k)=2N-l伙)》兀(/2)COS“=()龙⑵2+l)k2N其屮:亦)=1二维离散余弦变换forkH0(FDCT):z(k,/)(2—ja伙)a(x(m,n)cosN_N_;r(2m+)k2Ncos7r(2n+)l2N其逆运算是:n=()m=0x(m,71)=z(k,l)cos龙(2加+)k_INCOS龙(2〃+1)/_2N其中n=8为8x8DCT.2、DCT的DSP程序设计无论是C语言还是汇编语言,程序流程均分为初始化、行变换、列变换和移位输出四个步骤。行、列变换具有相似性,如果对行变
4、换的结果矩阵转置,则列变换程序跟行变换一样。对于汇编而言,初始化部分主要初始化FP指针以指向前一函数地址,初始化数据和指针寄存器以保存返回数据等。由于DCT行变和列变换过程相似,且列变换是在行变换操作的基础上进行的。则可利用多种索引寻址寄存器的灵活组合,把行变换结果直接以转置方式存储而不增加实际的存储时间,这样行列变换可使用同一代码循环两次实现,减小了实际代码大小。本程序实现的是FDCT,可以使用2次一维DCT变换来实现二维DCT变换。3、DCT的DSP实现二维DCT变换时结果为两次无理数sqrt(8)相乘,产生了有理项,因此,
5、在程序里首先多乘一次sqrt(8),然后在两次DCT变换结束以后,使用右移3位以达到正常输出。五、方案论证及系统设计本次实习有两种方案,C语言和汇编语言实现,由于考虑到DSP程序的特点,我采用汇编语言实现。1、打开CCS软件,编制程序简化行列变换的代码如下:2、BO=R0;B3=R1;B2=R2;…LSETUP(DCT_START,DCT_END)LCO=PO;DCTSTART:-LSETUP(ROW_START,ROW_END)LC1=P2;ROW_START:…ROWEND:…Bl=BO;BO二B2;DCT_END:B2=B
6、l;六、一维DCT变换流程图七、程序模块源程序DSP程序:・mmregsentry〃INIT〃*•def•sect*Initialise*entryNOPNOPSSBXSXMSSBXOVMLD#0,DPSTMOFFEOh,PMSTRSBXFRCT・includez,fdct_dat.inc"MODE.SET1PAGEO.SET0PAGE4.SET4PAGE24.SET24dPAGE25.SET25dBO.SET0200hBl.SET0300hB2.SET060hPA1B1S.SET1PA2BIS.SET2PA3BTS.SET3P
7、A4BIS.SET4PA5B1S.SET5PA6BIS.SET6*Initializationoftheregisterssect"FDCT〃INITLD#PAGE24,DPST#21407,EP6ST#8867,FP6ST#200011,ROUND1TBL:LD#PAGE25,DPST#21407,E_P7ST#8867,FP7ST#400011,R0UXD2ST#40H,ROUND3START*IFMODE=SIMULATORIFMODE=1STM#63,AROSTM#X,ARIBEGPORTE:#PA1BIS,*AR1+B
8、ANZBEG,*ARO-;setsignextensionmode;onablesaturation;setdatapage;TnitPMSTreg.;FOOTdatastoragedeclaration;MODE二1TESTONSIMULATOR;ARO=#o