离散余弦变换的DSP程序设计与实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TOC \o 1-5 \h \z 一、 实习题目: 1 二、 实习目的 1 三、 实习任务与要求: 1 四、系统原理论述 五、 方案论证及系统设计 2 六、 一维DCT变换流程图 3 七、 程序模块源程序 4 八、 仿真调试及性能分析与实验 7 九、 实习结论 10 十、实习总结 10 十一、 : 11 一、实习题目: 离散余弦变换(DCT)的DSP程序设计与实现 二、 实习目的 1、 熟悉和掌握DCT设计方法跟步骤。 2、 通过仿真验证实现DCT的DSP程序的正确性。 3、 掌握专业实验中常用的仪器设备和开发工具。 4、 通过一周的设计实践培养学牛综合利用所学知识编写DSP程序的 能力,为今后的工作学习打下坚实的基础。 5、 掌握用DSP程序实现DCT的原理和方法。 6、 熟悉DCT原理。 三、 实习任务与要求: 利用C语言或汇编语言编写一个实现DCT的DSP程序 在CCS上仿真运行 查看分析结果,记录必要参数 四、系统原理论述 1、DCT原理 离散余弦变换(Discrete Cosine Transform,简称DCT变换)是一种与傅立叶 变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函 数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称 之为离散余弦变换。对于给定的实际数据序列x(0) ,X(1) ,x(2) ????X( N-l ) 的DCT(FDCT)算法如下: z(k)=2 N-l z(k)= 2 N-l 伙)》兀(/2)COS “=() 龙⑵2 + l)k 2N 其屮: 亦)=1 二维离散余弦变换for k H 0 (FDCT):z(k, /)(2—j a 伙)a( x(m, n) cosN_\ N_\;r(2m+ \)k 亦)=1 二维离散余弦变换 for k H 0 (FDCT): z(k, /) (2 —j a 伙)a( x(m, n) cos N_\ N_\ ;r(2m+ \)k 2N cos 7r(2n + \)l 2N 其逆运算是: n=() m=0 x(m, 71)= z(k,l) cos 龙(2加+ \)k _IN COS 龙(2〃 + 1)/ _2N 其中 n=8 为 8x8 DCT. 2、 DCT的DSP程序设计 无论是C语言还是汇编语言,程序流程均分为初始化、行变换、列变换和 移位输出四个步骤。行、列变换具有相似性,如果对行变换的结果矩阵转置,则 列变换程序跟行变换一样。对于汇编而言,初始化部分主要初始化FP指针以指 向前一函数地址,初始化数据和指针寄存器以保存返回数据等。由于DCT行变 和列变换过程相似,且列变换是在行变换操作的基础上进行的。则可利用多种索 引寻址寄存器的灵活组合,把行变换结果直接以转置方式存储而不增加实际的存 储时间,这样行列变换可使用同一代码循环两次实现,减小了实际代码大小。本 程序实现的是FDCT,可以使用2次一维DCT变换来实现二维DCT变换。 3、 DCT的DSP实现 二维DCT变换时结果为两次无理数sqrt (8)相乘,产生了有理项,因此, 在程序里首先多乘一次sqrt (8),然后在两次DCT变换结束以后,使用右移3 位以达到正常输出。 五、方案论证及系统设计 本次实习有两种方案,C语言和汇编语言实现,由于考虑到DSP程序 的特点,我采用汇编语言实现。 1、 打开CCS软件,编制程序简化行列变换的代码如下: 2、 BO = R0; B3 = R1; B2 = R2;… LSETUP (DCT_START, DCT_END) LCO = PO; DCT START:- LSETUP (ROW_START, ROW_END) LC1=P2; ROW_START:… ROW END:… Bl = BO; BO 二 B2; DCT_END:B2 = Bl; 六、一维DCT变换流程图 七、程序模块源程序 DSP程序: ? mmregs entry 〃INIT〃 * def sec t * Initialise * entry NOP NOP SSBX SXM SSBX OVM LD #0, DP STM OFFEOh, PMST RSBX FRCT ? include z,fdct_dat. inc MODE .SET 1 PAGEO .SET 0 PAGE4 .SET 4 PAGE24 .SET 24d PAGE25 .SET 25d BO .SET 0200h Bl .SET 0300h B2 .SET 060h PA1B1S .SET 1 PA2BIS .SET 2 PA3BTS .SET 3 PA4BIS .SET 4 PA5B1S .SET 5 PA6BIS .SET 6 * Initialization of t

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档