基于cordic算法的流水型dds设计的路径建设

基于cordic算法的流水型dds设计的路径建设

ID:23185256

大小:59.00 KB

页数:7页

时间:2018-11-05

基于cordic算法的流水型dds设计的路径建设_第1页
基于cordic算法的流水型dds设计的路径建设_第2页
基于cordic算法的流水型dds设计的路径建设_第3页
基于cordic算法的流水型dds设计的路径建设_第4页
基于cordic算法的流水型dds设计的路径建设_第5页
资源描述:

《基于cordic算法的流水型dds设计的路径建设》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于CORDIC算法的流水型DDS设计的路径建设 直接数字频率合成(Direct Digital Synthesis,DDS)技术,最早于1971年,美国学者J.Tierney等撰写的A Digital Frequency Synthesizer一文中提出的[1]。它以有别于其他频率合成方法具有低成本、低功耗、高分辨率和快速转换时间等优点而得到广泛的运用。但是传统的DDS主要运用查找表结构,其存放相位到幅度转换的查找表ROM的大小和相位精度的位数成指数关系,很难实现数字信号处理中的高精度、高分辨率、实时运算的要求[2]。而采用CO

2、RDIC算法的DDS很容易满足这些要求。  本文提出了基于CORDIC算法的16位流水线并行结构的DDS,替代了传统的查找表结构。实现了高速,高精度,硬件实现简单的DDS。CORDIC算法只需要硬件的加、减法器和移位器就可以完成正、余弦函数的计算。  1 CORDIC基本原理  CORDIC 算法最早由J.Volder 于1959年在美国航天控制系统设计中提出[3],其是一种用于计算运算函数的循环迭代算法。到1971年,Valther提出了统一的CORDIC算法[4]。如图1所示,初始向量A(x0,y0)旋转θ角度之后

3、得到新的向量B(x1,y1),此向量满足以下关系:x1  y1=cos θ-sin θ  sin θcos θx0  y0  =cos θ1-tan θ  tan θ1x0  y0  (1)  图1 CORDIC算法图解假设初始向量经过n次旋转后得到新的向量,且每次旋转的角度θi满足条件tan θi=2-i,则第i次旋转的角度θi=arctan 2-i。即cos θi=(1+2-2i)-12。引入s(

4、i)={1;-1},s(i)=1时表示逆时针旋转,s(i)=-1时表示顺时针旋转。则第i步旋转的向量关系可以表示为:xi+1  yi+1=cos θi1-si2i  si2i1xi  yi  =(1+2-2i)-121-si2i  si2i1xi  yi  (2)式中cos θi=(1+2-2i)-12称为校模因子,收敛于一个常数,即∏∞i=0(1+2-2i)-12≈0.607 3  这样,算法的每一步就可以简化为:xi+1  yi+1=1-si2i  si2i1xi  y

5、i  (3)式中对于移动角度θ,只需要硬件的移位器、加法器和减法器就可以实现。现在引入变量zi表示第i次旋转后剩余未旋转的角度。则zi+1=zi-siarctan 2-i。  2 CORDIC算法的DDS实现  本文设计主要实现正、余弦信号的产生。在高速数字信号处理系统中,系统的运算速度,已经成为衡量系统性能的一个重要指标。CORDIC 算法的实现可分为迭代结构和流水结构2种[56] 。式(2)是CORDIC算法的迭代结构,传统的方法是将角度集存放于查找表中,用状态机跟踪迭代过程。那么随着迭代次数的增加,查找表的地址也

6、随着增加,而且每次迭代必须在前一次迭代完成后进行[7]。这不适合高速、高精度、实时处理的要求。而采用提高数据吞吐率的流水线结构,极大的提高了处理速度。本文设计了16级并行运算的流水线结构,相对于8级精度得到了很大的提高,但是增加了运算的复杂度。因此必需在精度和速度之间折中。流水结构只需要一个时钟周期就能输出一个数据。多级流水结构如图2所示。  当n→∞旋转角度和∑∞n=0arctan 2-n≈89.883°,所以只要迭代的次数足够大,就可以实现-89.883°~

7、89.883°之间的任意角度的转换。在工程实际应用中,需要对-π~π之间任意角度值进行运算。由于sin θ和cos θ只需计算[0,π/2]便可恢复整个周期的值[810]。本文采用分象限法,将输入角转到第一象限之中,此称为前处理。相位累加器对频率控制字K进行线性累加,产生输入相位,用16位的phase_in表示。利用它的最高两位判断该相位所在的象限,然后转入到第一象限中。在同样的精度下,可以节约硬件成本。前处理Verilog编写的代码如下:  begin  case(phase_i

8、n[15:14])  2'b00:phase_in_reg <= phase_in;  2'b01:phase_in_reg <= phase_in-16'h40_00;  2'b10:phase_in_reg <= phase_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。