一种降低CORDIC算法截断误差的方法
2021-02-24曲世隽王翾
曲世隽,王翾
(中国传媒大学信息与通信工程学院,北京 100024)
1 引言
坐标旋转数字计算机(Coordinate Rotation Digital Computer,CORDIC)算法是一种用于高效计算基本函数的迭代算法。该算法通过一般的加减和移位操作实现了乘除法的相关计算,使得向量的的旋转和定向的计算不再依赖于三角函数、乘法、开方、反三角、指数等复杂函数。CORDIC 算法的硬件实现只需要移位器和加法器,简单的硬件就能有效的运算复杂函数。
在1959年,Volder开发了一类计算三角函数、双曲函数的算法,其中包括指数运算和对数运算,这就是CORDIC算法的雏形。在提出这个算法之后,Volder将其应用在导航领域之中。但是在当时这个算法并没有被广泛的讨论和应用。直到1980 年,Haviland 和Tuszynski[1]给出了一种全模式的CORDIC算法的处理芯片。在这之后,CORDIC算法才引起人们的关注,被应用于各种领域。Hu Y H[2]将CORDIC算法应用于基于VLSI的数字信号处理领域。应用包括离散傅里叶变换的计算、矩阵运算和三角函数发生器。在2009 年,Vachhani L,Sridharan K,Meher P K[3]通过FPGA实现高效CORDIC 算法并将其应用在机器人探测上。当然,CORDIC算法也可以应用于其他领域。例如,计算机制图中求点到线的距离、直角坐标与极坐标的相互变换及求多维向量的欧几里得范数等,可以预见,CORDIC算法将在未来有更广泛的应用。
目前人们对于CORDIC算法的关注点主要集中在硬件资源消耗和计算精度两个问题上。想要获得高计算精度就必然要消耗更多的硬件资源,因此如何平衡两者关系就成了一个重要问题。在文献[4]中,提出了一种在硬件资源和计算精度之间寻求折中的方法。……
