Cordic算法又称为:坐标旋转数字计算方法,在最初是作为坐标变换的算法,现在发展为计算各种复杂函数的运算。
背景:现代数字信号处理的一个主要发展趋势是算法结构日趋复杂、计算量大、实时性要求高,且包含大量的三角函数、开方等复杂函数计算,MAC单元不能适合此类函数的需求,而cordic算法可以讲多种难以用硬件实现的复杂运算分解为统一的简单移位、加法迭代运算。而且结构规则、运算周期可以预测,适合VLSI电路实现。Cordic是用于计算广义矢量旋转的一种迭代算法,主要用于三角函数、双曲函数、指数、对数的运算,使之转化为加减和移位的运算。在 xy 坐标平面上将点 (x1, y1) 旋转角度到点(x2, y2) 的标准方法如下所示:
x2 = x1cosθ – y1sinθ
y2 = x1sinθ + y1cos
θ