codic算法原理

上传人:小** 文档编号:89123206 上传时间:2019-05-18 格式:DOC 页数:11 大小:836KB
返回 下载 相关 举报
codic算法原理_第1页
第1页 / 共11页
codic算法原理_第2页
第2页 / 共11页
codic算法原理_第3页
第3页 / 共11页
codic算法原理_第4页
第4页 / 共11页
codic算法原理_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《codic算法原理》由会员分享,可在线阅读,更多相关《codic算法原理(11页珍藏版)》请在金锄头文库上搜索。

1、-2CORDIC算法与实现2.1 CORDIC算法原理CORDIC是一种迭代算法,它可以用来计算sin,cos等三角函数,计算幅值和相位等到所需的精度,CORDIC算法计算幅值和相位的原理如下:假设直角坐标系内有向量A(Xn,Yn),向量A顺时针旋转n后得到向量B(Xn,Yn),如图2所示。向量A和向量B之间存在以下关系,用矩阵表示为将cosn提出以后得到在这里我们取0i=arctan(1/2i),所有迭代的总和为,其中Si=-1,+1,则tani=Si2-i,可得上式Si中的符号决定了向量的旋转方向,当时Yi0,Si=1,顺时针旋转;当Yi0时,Si=-1,逆时针旋转,式中的cosi=cos

2、(arctan(1/2i),随着迭代次数的增加它收敛于一个常数,我们暂不考虑这个常数增益,这样式(2-3)就变为设总共旋转的角度为,初值为0,则,给定向量 一组初值如下从上面的式子可以看出,当向量A旋转到X轴时,可以得到迭代的结果为 ,即可求得向量A的幅值和相位。由式(2-4)可知每次旋转的角度的正切值都是2的负幂次,在硬件实现时只需要执行右移和相加运算就可以实现每次迭代,易于硬件的实现。2.2 用CORDIC算法的流水结构实现坐标变换CORDIC迭代结构如图3所示,采用流水结构每次迭代完成一次旋转,每级迭代都用寄存器寄存,这样每个时钟周期都可以计算出一次幅度和相位。迭代的次数越多,精度越高,

3、当然耗费的资源也就越多。在数字下变频器输出I,Q两路信号后(输出信号用补码表示),用CORDIC实现坐标变换时,为简化电路结构,只用计算的相角,其他象限的相角,采用处理后再映射的办法求取,冈此,对刚进入的数据会进行预处理。首先就是求输人数据的绝对值,并记录符号位作为处理后象限映射的依据。接下来,会判断I,Q两路数据的大小关系,并将较小的值交换到Q路,这样做的目的是要在同样的迭代次数下,达到更高的迭代精度。进入CORDIC迭代单元前会对I,Q两路数据进行位宽拓展,从而保证CORDIC迭代过程中,不会因截断误差造成太大的偏差。经过CORDIC迭代后所得的幅度值是有增益的,此时需要对其进行修正,另一

4、方面,相位值需根据先前记录的I,Q两路数据的符号位和I,Q两路数据交换的情况作象限映射,表1列出了相位映射的规则。坐标变换模块的实现结构如图4所示。2.3 使用modeIsim仿真的结果图5是当输入激励为I路:sin(sin2f);Q路:COS(COS2f)时的modelsim仿真结果,由图中可以看出坐标变换得出的相位值是一个标准正弦信号,幅度值为恒定值,幅度相位完全正确。2.4 硬件实现结果在硬件实现时,用verilog语言对坐标变换模块进行描述,为满足DDC的精度要求进行了18次迭代,并用DC基于UMC0.18m的库进行了综合,硬件实现结果如图6所示。图6(a)是DC综合后的面积报告,图6

5、(c)是关键路径的时序报告,综合后的最大路径延时为9.77ns,完全可以满足本模块数字下变频器100MHz的处理速度要求,综合出的单元(cell)的总面积仅为0.27。图6(b)是该设计在FPGA上验证的结果,该DDC的工作频率为80MHz,通道2为输入的基带信号频率20kHz,载波频率5MHz,频偏200KHz的FM信号,通道1是通过DDC下变频后交给坐标变化模块的I,O两路信号求出的相位信息,即频率为20kHz的正弦信号,由图可知该没计实现了坐标变换功能。-改进的并行CORDIC算法研究及其FPGA实现(2008-08-22 09:44:33)标签:it分类:数字信号处理改进的并行CORD

6、IC算法研究及其FPGA实现张 甜, 王祖强,徐 辉山东大学 信息科学与工程学院, 山东 济南250100摘要: 在介绍基本CORDIC算法原理的基础上,介绍了其改进的并行算法原理。对并行CORDIC算法进行了详细叙述,并且使用Verilog HDL描述了该算法。通过模块复用,并且采用两相门控时钟等方法,节省了FPGA资源,保持了信号的同步性。最后在Quartus II下进行了综合、仿真,取得了良好的仿真结果。关键词: CORDIC BBR MAR FPGACORDIC(Coordinated Rotation Digital Computer),即协调旋转数字计算机,可广泛应用于基本函数的计

7、算,如DSP、FFT、DCT等技术函数的计算。CORDIC算法是Jack Volder于1959年首先提出的。为了扩展可解决的基本函数个数,J.Walter于1971年提出了统一的CORDIC算法(The Unified Cordic Algorithms);2004年,Tso-Bing Juang等又提出了一种改进的并行的CORDIC算法,该改进的算法主要运用BBR(Binary-To-Bipolar Recoding)和MAR(Microrotation Angle Recoding),大大提高了CORDIC算法的迭代速度,并且达到了很高的精度。随着可编程逻辑器件规模的增大和应用范围的扩大,使得利用硬件电路实现该算法成为可能并具有良好的应用价值。1 CORDIC算法原理CORDIC算法可分为旋转(rotation)和定向(vectoring)两种方式,还可分为圆形坐标、双曲线坐标和线形坐标三种方式,圆形坐标下旋转方式的原理公式如下:式中,xi,yi和xi+1,yi+1分别表示旋转前后的向量,i-1,1表示每次旋转的方向。从公式可知,该运算只有移位和相加(相减)运算。为了获得i的值,需另设一个变量zi表示每次旋转后的角度与目标角度的差值,然后利用公式zi+1=zi-iarctan(2-i)进行计算。根据Jack Vold

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号