第7节 TMS320C54x应用程序开发实例[DSP技术与应用实例(第3版)].ppt

第7节 TMS320C54x应用程序开发实例[DSP技术与应用实例(第3版)].ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 第7章 TMS320C54x应用程序开发实例 7.1 正弦信号发生器 7.2 FIR滤波器的DSP实现方法 7.3 IIR滤波器的DSP实现方法 7.4 快速傅里叶变换的DSP实现方法 7.5 语音信号压缩的DSP实现方法 7.6 数字基带信号的DSP实现方法 7.1 正弦信号发生器 通常有两种方法可以产生正弦波和余弦波: (1)查表法 (2)泰勒级数展开法 也可以由递推公式求正弦和余弦值: sin(nx)=2cos(x)sin[(n-1)x]-sin[(n-2)x] cos(nx)=2cos(x)cos[(n-1)x]-cos[(n-2)x] 利用递推公式计算正弦和余弦值需已知cos(x)和正弦、余弦的前两个值。用这种方法,求少数点还可以,如产生连续正弦、余弦波,则积累误差太大,不可取。 1.计算一个角度的正弦值 利用泰勒级数展开式计算一个角度的正弦值。为了方便起见,编写计算sin(x)的程序sinx.asm,调用前只要在数据存储器d_x单元中设定x的弧度值就行了,计算结果在d_sinx单元中。程序中要用到一些存储单元存放数据和变量,如图所示。 (c4=1556H) (c3=0666H) (c2=030BH) c4=1/(2*3) (c1=01C7H) d_coeff c3=1/(4*5) (7FFFH) c_1 c2=1/(6*7) sin(x) d_sinx c1=1/(8*9) table d_temp 程序存储器 x2 d_squr_x x d_x 数据存储器 计算结果存储在数据存储单元 计算正弦值存储单元分配 2.计算一个角度的余弦值 利用泰勒级数展开式计算一个角度的余弦值,采用调用cosx.asm程序方式。调用前只要在数据存储器d_x单元中设定x的弧度值就行了,计算结果在d_cosx单元中。程序中要用到一些存储单元存放数据和变量,如图所示。 (c4=4000H) (c3=0AABH) (c2=0444H) c4=1/2 (c1=0249H) d_coeff c3=1/(3*4) (7FFFH) c_1 c2=1/(5*6) cosx d_cosx c1=1/(7*8) table d_temp 程序存储器 x2 d_squr_x x d_x 数据存储器 计算余弦值存储单元分配 计算结果存储在数据存储单元 3.产生正弦波程序 先以sinx.asm和cosx.asm程序,计算00~450(间隔为0.50)的正弦和余弦值,再利用sin(2x)=2sin(x)cos(x)求出00~900的正弦值(间隔为10)。然后通过复制,获得00~3590的正弦值。 正弦波数据 数据存储单元 若执行菜单命令“View”→“Graph” →“Time/Frequcecy” 就可以观察到所生成的正弦波波形,如图所示。 若执行菜单命令“File”→“Data” →“Save”,再按下图所示设置就可将正弦波数据存储在数据文件out.dat中了。 7.2 FIR滤波器的DSP实现方法 1.FIR滤波器的特点 z-1 z-1 z-1 z-1 x(n) x(n-1) x(n-N+1) x(n-2) h0 h1 h2 hN-2 hN-1 y(n) 图7-9 FIR滤波器结构图 2.FIR滤波器的DSP实现 (1)用线性缓冲区法实现z-1 x(n-3) *ARx- x(n-4) *ARx- x(n-5) *ARx- x(n-2) ↑ x(n-3) ↑ x(n-4) ↑ x(n-1) x(n-2) x(n-3) x(n) x(n-1) x(n-2) x(n+1) x(n) x(n-1) x(n+2) PORTR→ x(n+1) PORTR→ x(n) 线性缓冲区顶部 数据存储器 数据存储器 数据存储器 N=6的线性缓冲区存存储器图 (2)用循环缓冲区法实现z-1 ↓ ↓ x(n+1) ←ARx x(n+1) x(n-7) 循环缓冲区底部 ←ARx x(n+2) x(n-6) x(n-6) x(n-5) x(n-5) x(n-5) x(n-4) x(n-4) x(n-4) x(n-3) x(n-3) x(n-3) x(n-2) x(n-2) x(n-2) x(n-1) x(n-1) ↓ x(n-1) x(n) x(n) ←ARx x(n) 循环缓冲区顶部

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档