基于System Generator的CORDIC算法DDS的FPGA实现
2010-12-21夏少峰黄世震
电子器件 2010年1期
夏少峰,黄世震
(福州大学物理与信息工程学院,福州 350002)
在现代数字信号处理中,特别是在通信、雷达和导航等系统中高精度的DDS有着广泛的应用。近年来随着电子技术的迅速发展,传统的查表、多项式展开或近似的方法渐渐不能适应现代电子系统在速度、精度、简单性和高效实现方面的综合要求,而用CORDIC算法实现的DDS系统则能很好的兼顾这些方面,由于该算法仅涉及移位与加减运算,便于软硬件实现。因而受到了人们的广泛关注。目前该算法已经应用到FFT、DCT、DWT、DDFS以及极化调制等诸多领域。
本文先介绍DDS的原理,然后再从CORDIC算法的基本原理出发,论述了其流水线结构的FPGA实现的具体方法及其system generator模型,文中的模型经ISE编译并经过modelsim验证通过,仿真结果表明文中的设计方法是完全可行的,且运算结果具有较高的精度。
1 DDS原理
DDS一般由相位累加器、相幅转换器组成。具体工作原理为:相位累加器在时钟控制下以频率控制字为步长进行累加,累加的结果经过量化处理后送入相幅转换器输出为正弦和余弦波形。 DDS的输出频率为F=FcwFclk/2N,频率分辨率Δf=Fclk/2N,其中Fcw为频率控制字, Fclk为系统时钟频率, N为频率控制字的字长。
传统的相幅转换器采用查找表结构,为了达到高分辨率和较高的频谱程度, Fcw一般取值较大,本文的频率控制字为32位,如果存储全部的正、余弦值,需要大量的ROM资源,这在实际应用是不现实的。而采用CORDIC算法代替查找表结构的相幅转换器既能满足高精度、高分辨率、实时运算的要求,又减少了ROM资源,是一种好的实现方法。……
登录APP查看全文
