CORDIC 理论分析
CORDIC 理论分析1.1、 坐标旋转数字计算机CORDIC坐标旋转数字计算机CORDIC(COordinate Rotation DIgital Computer)算法,通过移位和加减运算,能递归
理论分析 CORDIC 、坐标旋转数字计算机 1.1CORDIC 坐标旋转数字计算机算法,通过移位和加减运算, CORDIC(COordinateRotationDIgitalComputer) 能递归计算常用函数值,如,,,等函数,由于年提出,首先用于 SinCosSinhCoshJ.Volder1959 导航系统,使得矢量的旋转和定向运算不需要做查三角函数表、乘法、开方及反三角函数等复杂运算。 J. 在年用它研究了一种能计算出多种超越函数的统一算法。 Walther1974 、原理 1.2CORDIC 如图所示,初始向量,旋转角度之后得到向量,,此向量有如下关系: (X(0)Y(0))θ(X1Y1) X1=X0*cos(θ)-Y0*sin(θ)=cos(θ)(X0-Y0*tan(θ)) Y1=Y0*cos(θ)+X0*sin(θ)=cos(θ)(Y0+X0*tan(θ)) 假设初始向量经过次旋转之后得到新向量,且每次旋转角度都是正切值为的倍数,则第次旋转角 Nδ2i 度为,即。 δ-arctan(2^(-i))cosδ=(1/(1+2^(-2i)))^0.5 容易得到角度,其中或,表示旋转角度的方向, θ≈∑S(i)●δ(i)S(i)=1-1 第步旋转可以表示为: i X(i+1)=((1/(1+2^(-2i)))^0.5)●(X(i)-S(i)Y(i)2^(-i)) Y(i+1)=((1/(1+2^(-2i)))^0.5)●(Y(i)+S(i)X(i)2^(-i)) 其中称为校模因子,当旋转次数一定时,趋于一个常数, (1/(1+2^(-2i)))^0.5) Π(1/(1+2^(-2i)))^0.5)≈0.6073 这样,算法每一步就可以简化为: X(i+1)=(X(i)-S(i)Y(i)2^(-i)) Y(i+1)=(Y(i)+S(i)X(i)2^(-i)) 从而可以看出,对于的角度,现在只需要硬件加减法器和移位器就可以算出结果。引入,表示次旋 __θZi 转后相位累加的部分和,则: Z(i+1)=Z(i)-S(i)arctan(2^(-i)) 经过次旋转之后,,即与目标角重合,即: nZ→0 X(n)=X1=X0*cos(θ)-Y0*sin(θ)

