资源描述:
《cordic算法的精度分析及其在fft设计中的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微电子学与计算机2004年7月·第21卷第7期一种COR.DIC算法的精度分析及其在FFT设计中的应用韩芳初建朋赖宗声(华东师范大学微电子电路与系统研究所,上海200062)摘要:针对CORDIC算法的精度问题进行了理论分析,首先研究了CORDIC算法中旋转级数、操作数位宽与精度的关系,并将这一结果实际应用于FFT算法的FPGA设计实现中。经实际验证,这种分析的结果是合理的,可作为设计过程中选取旋转级数和操作数数据位宽的参考。关健词:向f旋转,CORDIC算法,FPGA,误差中图法分类号:TN4文献标识码:A文章编号:1000-718
2、0(2004)07-014-03NumericalAccuracyofaCORDICAlgorithmanditsApplicationHANFang,CHUJian-peng,LAIZong-sheng(InstituteofMicroelectronicsCircuit&System,EastChinaNormalUniv.,Shanghai200062China)Abstract:Thevectorrotationoperationisextensivelyemployedinsignalprocessingandimagepr
3、ocessing.Inthispaper,aCORDICalgorithmisimplementedinrealizingvectorrotation..AdetailederroranalysisisgivenandtheresultisappliedtoaidthechoiceofthenumberoftheCORDICiterationsandtheinternalwordlengthduringthepracticaldesignprocedure.Keywords:Vectorrotation,CORDICalgorithm
4、,FPGA,Error1引言其对设计的意义,最后将基于精度考虑设计的CORDIC(CoordinateRotationDigitalComputer)CORDIC处理器应用于实际FFT的设计中,并给出是一种用于计算一些常用的基本运算函数和算术其FPGA综合结果。操作的循环迭代算法,最初由J.D.Voldei')于1959年提出,其基本思想是用一系列与运算基数相关的2CORDIC算法基本原理角度的不断偏摆从而逼近所需旋转的角度。由于具依据CORDIC算法,把向量(x,y)旋转角度:到有结构简单和整个运算只有加法与移位的优点,使向量(x,
5、,Y),可通过旋转一系列基本角度氏,反复迭得这些复杂运算在硬件上可以较好地实现。1971代,逐渐逼近:完成。基本的每一级迭代公式总结如年,J.S.Walter[]提出统一的CORDIC算法,把圆周下:旋转、双曲旋转和直线旋转统一到同一个CORDIC二*1=[x;y;xS;xtan9;](1)迭代方程里,为同一硬件实现多功能运算提供了前yc+i=[yyx;xS;xtan0j](2)提,使它展示出更为广泛的应用前景。由于它将许zct=Z;SiXBi(3)多复杂的算术运算化成简单的加法和移位操作,在i=0,1,2,3...n-l,n是总共旋
6、转的级数,s‘决定不影响运算速度和精度的情况下,极大地降低了硬旋转的方向。件设计的复杂性,因此它在许多DSP算法的硬件实一ifZ;<毕o(4)现中都有着极为重要的意义P)。经过人们不断地对+ifZl>,0其进行探索研究,目前CORDIC算法已被成功地应为方便硬件实现,令e;满足:用于FFT,DCT等信号处理,图像处理,解决线性系tan9F2,即9i--arctan(2'`)(5)统问题等领域。则每一级的运算就是相应输人的向量的移位本文主要研究一种基本的实现向量旋转功能相加。若要实现复数相乘,每级迭代时还要乘上的CORDIC算法:首先介
7、绍用CORDIC算法实现向coso;;若只是需要所求值的比例关系则不必考虑量旋转的基本原理,然后详细讨论了其精度问题及cosoi。因此,可根据实际应用的要求决定是否在最后收稿日期:2003-12-10须乘上修正因子:基金项目:上海市科委项目PDC(027062012)万方数据2004年7月·第21卷第7期微电子学与计算机3.2舍入误差K(1n)_加se填(6)可将公式(1)和(2)改写成:1+2沙了曰,,..1v(i+1)=P(i)v(i)、J由于所能获得的最大旋转角度[[4]为:v(i)二[}x(L),Y(L)}T是第i级的旋转向量
8、户曰4z=}lim艺aretan(2-)=1.7433(99.9110).工n-,wk二1,二{,S;21-`-S1j2~!f八J1为了能实现360度旋转,对所旋转的角度需要.勺1}}P(i)!}二V1+21f进行预处理