基于CORDIC改进算法的DDS设计

2011-07-17 16:17:39来源: 互联网

传统DDS是由美国学者Tierney 等提出,采用查找表结构实现,很难满足数字信号处理领域中高精度、高分辨率、实时运算的要求。而采用基于CORDIC算法的DDS结构可以很容易地满足这些要求,且易于采用流水线技术,因此这一技术越来越多的用于雷达等电子系统中[1]。本文提出了一种基于CORDIC算法的16位流水线并行结构的DDS,取代传统ROM查找表,实现了高速度和资源占用率低的要求。利用Matlab工具进行仿真分析,不仅能直观地看出输出波形,而且加快了设计进程。
1 DDS的基本结构
    DDS的基本结构如图1所示,主要包括:参考频率源、相位累加器、ROM正弦查找表、D/A转换器及低通滤波器。频率控制字K决定了相位累加器的步进大小。每一个时钟周期,相位寄存器中的数值就累加一个步长K,与初始相位相加后送入正弦查找表,正弦查找表一般是一个可编程存储器,存有相应的正弦波数据。存储器将输入的相位信息转换为地址信息,再将地址映射为正弦幅度值,经过D/A转换器生成阶梯波形,然后经过低通滤波器得到频率的连续波形。


    这种结构的缺点是ROM的容量与相位码的位数成指数关系,而大容量的ROM意味着系统高功耗、高成本、低稳定性。因此人们寻求直接计算正余弦值来代替ROM查找表。相位幅度转换主要有查表法、多项式展开法以及CORDIC算法[2]。CORDIC算法在硬件实现上只需移位和加减运算即可得到正余弦值,容易在VLSI芯片上实现。
2 CORDIC算法的原理及改进
  CORDIC(The Co-ordinate Rotation Digital Computer)算法由J.Volder[3]1959年在美国航空控制系统设计中提出,是一种用于计算运算函数的循环迭代算法。CORDIC算法的基本概念是将目标旋转角分解为一组预定单元旋转角的加权和,用这组预先规定的基本角度的线性组合逼近。该算法的巧妙之处在于基本角的选取恰好使每次矢量以基本角度旋转后,新矢量坐标值的计算仅需要简单的移位和加减法就能完成[4]。

其中p称为CORDIC算法的旋转增益。实际的算法中不可能做无穷迭代,因此实际的增益与迭代次数有关,当迭代次数逐渐增大时,p就不断逼近1.647。由于n不可能无穷大,因此会引入误差。在迭代的过程中可以忽略cosθn项,迭代的最后再将其乘入。这样就得到:


 
    从公式(7)而来的是CORDIC算法的迭代结构,在传统的迭代结构中随着迭代次数的增加,其查找表的地址也随之增加,查找表中存放旋转的角度集。必须有一个状态机来跟踪迭代过程,这将导致运行速度降低,不适合高速高精度的要求[6]。
    采用流水线结构,能够在执行进程的同时输入数据,从而极大提高程序的运行效率。迭代性流水线结构如图2所示。

3 Matlab软件实现CORDIC算法仿真
    Matlab是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括Matlab和Simulink两大部分。Matlab的应用范围非常广,包括信号和图像处理、通信、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。本文利用Matlab的M语言进行CORDIC算法的仿真,其优势在于仿真结果易于观察,充分利用可以有效的加快设计进程。
    本程序遵照上述CORDIC算法编写, 采用文件的方式编写,下面是部分源程序。仿真输出波形如图3所示。

function[x,y]=get_sincos(Angle,precision)%Initial Angle and
precision
InitialAngle=Angle*pi/180;%Coneversion to radian
K=1.0;
for i=1:precision
    cordic_table{i}.k=K;
    cordic_table{i}.phase_rads=atan(K);
    K=0.5*K;
end;
x=0.60725293510314;y=0;%Initial Value when computing
sin/cos
acc_phase_rads=InitialAngle;

for i=-90:1:90
    [x,y]=get_sincos_fxp(i,22);
    xx(j)=x;
    yy(j)=y;
    j=j+1;
end;
figure(1)
plot(xx,′r′)
hold on
plot(yy,′b′)
hold off
    在传统DDS设计的基础上,用CORDIC算法取代传统的查找表,提升了转换速度和精度,同时基于改进的并行流水线型的CORDIC,进一步提升了转换速度,在大部分转换角度固定的情况下,对初始值进行优化可以节省1/3的硬件资源。该设计已经作为IP应用于高端DDS芯片中。
参考文献
[1] 郭金淮,汤汉屏.DDS技术浅析[J].数据通信,2002(3).
[2] FATIMA S,WOOLDRIDGE M.An agent2based framework for multi2issue negotiation[J].Artificial Intelligence,2004,52(1):1245.
[3] 张明友.数字阵列雷达和软件化雷达[M].北京:机械工业出版社,2008.
[4] VOLDER E.The CORDIC Trigonometric computation teclrnique[J].IRE Trans.Electronic Comp-Utters,1959,EC 8:330-334.
[5] 周柱.基于CORDIC算法的直接频率合成技术的研究和应用[D].国防科学技术大学,2005.
[6] MAHARATNA K,VALLS J.50 Years of CORDIC:Algorithms,Architectures,and Applications[J].IEEE Circuits and  Systems Society 1549-8328 2009:1893-1907.
[7] CONSIDINE V.CORDIC trigonometric function generate for DSP,CH2673-2/0000-2381/1.00[J].IEEE,1989.

关键字:改进  算法  设计

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0717/article_7213.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
改进
算法
设计

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved