目录
CORDIC 算法
坐标旋转数字计算机(Coordinate Rotation Digital Computer,CORDIC)算法可以追潮1957年由了J.Volder发表的一篇文章。在 20世纪50年代,在大型实际的计算机中,由现移位相加受到了当时条件的限制,所以使用CORDIC变得非常必要。到了20世纪70年代,惠普公司和其他公司生产了手持计算器,许多计算器使用一个内部CORDIC单元来所有的三角函数(那时计算一个角度的正切值需要大约1s的延迟)。
20世纪80年代,随着高速度乘法器与带有大存储量的通用处理器的出现,CORDIC算法变得无关紧要了。然而,对于各种通信技术和矩阵算法而言,需要执行三角函数和均方根等运算。
但是,对于FPGA 来说,CORDIC是数字信号处理应用中,如多输入多输出(multi-input & multi-output,MIMO)、波束形成及其他自适应系统,用于计算三角函数的首选方法。
本文主要将CORDIC在双曲线坐标系旋转下的对数运算
双曲线坐标系旋转
旋转模式
双曲坐标系下的旋转模式如图所示,其迭代过程表示为
在旋转模式中,使得。n次迭代后得到:
在双曲坐标系下旋转时,伸缩因子,当时
从式中可知,当,时可以得到
向量模式
在向量模式中,使得。n次迭代后得到
从式中可知,当,时可以得到
根据三角函数之间的关系,可以通过CORDIC算法计算下面的函数值
FPGA实现
我们要运算的是对数函数,所以应该选用向量模式