好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

龙源期刊网 http://www.qikan.com.cn

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

作者:姜志鹏 程嫚嫚

来源:《数字技术与应用》2013年第07期

摘要:泰勒级数是使用多项式逼近已知函数的常用方法,本文分析了正弦信号的泰勒级数展开算法,基于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),提

龙源期刊网 http://www.qikan.com.cn

供数据移位时钟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;开始块重复计算

龙源期刊网 http://www.qikan.com.cn

MAR *AR1+0;(AR1)+(AR0)

(图2)给出了基于CCS的仿真波形,图中给出了5个周期的正弦波形,每周期360点,每点表示1/2π弧度,共1800点数据。选择每个正弦周期中的样点数,改变每个采样点之间的延迟,由DAC输出就能够产生不同频率的波形。 5 结语

本文主要探讨了基于泰勒级数展开实时运算产生正弦信号的方法,给出了硬件原理,重点说明了软件实现的过程。与其他正弦信号产生方法相比,泰勒级数展开法只占用了较少的内存空间,当计算精度要求增加时,只要增加展开项数即可。仿真结果表明能产生预期的频率可调正弦信号。 参考文献

[1]吴湘淇.信号与系统(第3版)[M].电子工业出版社,2009.

[2]李真芳,苏涛,黄小宇.DSP程序开发—MATLAB调试及代码生成[M].西安电子科技大学出版社,2003.

[3]姜志鹏,姚健东,张燕.一种基于DSP 的数字声级计设计[J].价值工程,2010,32. [4]邹彦,唐冬,宁志刚.DSP原理及应用[M].电子工业出版社,2012.

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

龙源期刊网http://www.qikan.com.cn基于泰勒级数展开法的DSP正弦信号发生器设计作者:姜志鹏程嫚嫚来源:《数字技术与应用》2013年第07期摘要:泰勒级数是使用多项式逼近已知函数的常用方法,本文分析了正弦信号的泰勒级数展开算法,基于TI公司C54xx系列DSP芯片的汇编语言编程实现该算法,
推荐度:
点击下载文档文档为doc格式
1wrlv5qohl0vngk58yua7wp9920czo00zxl
领取福利

微信扫码领取福利

微信扫码分享