基于泰勒级数展开法的DSP正弦信号发生器设计.docVIP

基于泰勒级数展开法的DSP正弦信号发生器设计.doc

  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文档。上传文档
查看更多
基于泰勒级数展开法的DSP正弦信号发生器设计.doc

基于泰勒级数展开法的DSP正弦信号发生器设计   摘要:泰勒级数是使用多项式逼近已知函数的常用方法,本文分析了正弦信号的泰勒级数展开算法,基于TI公司C54xx系列DSP芯片的汇编语言编程实现该算法,并使用了存储单元复用的方法解决了为提高精度而增加展开项数导致的计数速度变慢的问题,同时也节省了硬件资源。实验结果表明,基于该算法在DSP芯片中实现正弦信号发生器所需的存储资源以及计算精度均优于其他方法。   关键词:泰勒级数展开 DSP 正弦信号 存储单元复用   中图分类号:TP274 文献标识码:A 文章编号:1007-9416(2013)07-0163-02   1 引言   正弦信号作为一种基本信号,具有非常有用的性质,如同频正弦信号相加,结果保持频率不变;整数倍频正弦信号之间的合成信号是频率与基波相同的的非正弦信号;正弦信号对时间的微分、积分后仍为同频的正弦信号等[1]。由于这些原因,正弦信号作为典型信号或测试信号大量应用于通信、仪器和控制等领域。正弦信号发生器的常用设计方法有查找表、递推公式法以及泰勒级数[2]。其中,查找表要求事先将正弦信号各点数据存入存储器,当精度要求较高时需要占用较多的存储器空间;递推公式法要求用前值算出后值,当数据点数较大时,容易产生积累误差。相比之下,泰勒级数是一种更适合于实际使用的算法。   2 硬件原理   以DSP为核心的硬件电路通常包括DSP芯片、CPLD芯片、ADC/DAC电路、显示电路以及外围电路等[3]。本文基于这种思路,设计的正弦信号发生器硬件框图如图1所示。限于篇幅,(图1)中未列出如电源模块、电平转换模块等常规模块。DSP采用了TI公司的16位定点DSP芯片TMS320C5416,CPLD芯片既要实现与键盘的交互,又是整个硬件系统的核心逻辑控制电路。键盘用于对输出波形的幅度、频率等作出调整。CPLD根据键盘的译码结果将不同的参数送往存储器,DSP在执行程序时从存储器中获得不同的参数从而产生不同的波形效果。   作为信号发生器的关键电路,DAC芯片采用了TI公司的AD50芯片,该芯片内部集成了ADC与DAC。AD50与TMS320VC5416以SPI方式连接,AD50工作在主机模(M/S=1),提供数据移位时钟SCLK和帧同步脉冲FS信号分别DSP的多通道缓冲串行口McBSP的时钟信号、帧同步信号相连,其数据输出引脚与McBSP的数据串行接收引脚相连。   3 算法分析   任一个角度为θ的正弦和余弦函数均可以展开成泰勒级数,展开的项数由计算的精度要求决定。本文为取其前五项进行近似,其展开式如(1)式所示[4]:   实现一个周期的正弦波,只需从0~2π依次计算各角度值即可。但是,以上方法有一定局限性,由于泰勒级数计算的精度取决于展开项数以及θ,显然:   (1)项数越多精度越高,但计算时间越长;   (2)θ越小,精度越高,但随着θ值的增加,精度必然下降。就越高。   为解决以上问题,我们考虑计算结果复用的方法,具体步骤:   (1)用前述的算法计算0°~45°的sin和cos值,保存以上计算结果。   (2)再利用 (3)式求出0°~90°的sin值。   (3)通过复制,获得0°~359°的正弦值,重复输出该值就可以得到正弦波。   正弦信号的频率f与x的关系如式(4)所示,其中fs为采样频率。   4 实验结果及分析   本文用TI公司C54xx系列DSP的汇编语言编程实现以上算法。程序中,将式(1)中出现的几个常量预先与7FFF相乘,化为16位定点数据,存入存储器中,由后续代码直接调用参加运算。具体数据如(表1)所示。   程序中,为了实现间隔0.5°的角度计算,通过计算32767*(π/360)=286,将此值命名为常量angle_step存入存储器。在后续计算过程中,采用以下代码实现0.5°的步进递增。   STM angle_step,AR0;角度步进   STM 0,AR1;起始角度0°   STM #n,BRC;n为循环次数   RPTB loop1-1;开始块重复计算   MAR *AR1+0;(AR1)+(AR0)   (图2)给出了基于CCS的仿真波形,图中给出了5个周期的正弦波形,每周期360点,每点表示1/2π弧度,共1800点数据。选择每个正弦周期中的样点数,改变每个采样点之间的延迟,由DAC输出就能够产生不同频率的波形。   5 结语   本文主要探讨了基于泰勒级数展开实时运算产生正弦信号的方法,给出了硬件原理,重点说明了软件实现的过程。与其他正弦信号产生方法相比,泰勒级数展开法只占用了较少的内存空间,当计算精度要求增加时,只要增加展开项数即可。仿真结果表明能产生预期的频率可调正弦信号。

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档