XILINX FPGA数字信号处理——4、CORDIC算法原理及实现
坐标旋转数字计算机(Coordinate rotation Digital Computer,CORTDIC)
20世纪70年代许多计算器使用一个内部CORDIC单元来计算所用的三角函数,80年代,随着带有高速乘法器与带有大容量存储器的通用处理器的出现,CORDIC算法变得无果紧要
对于FPGA来说,CORDIC一定是在数字信号处理应用中(如多输入多输出(MIMO)、波束形成以及其他自适应系统)计算三角函数的备选技术。
写成矩阵形式:
提取公共因子cosθ
去除项cosθ,得到伪旋转方程式
伪旋转,角度正确,幅度发生了变化,最后根据迭代的次数将前面去除cos项执行伪旋转引发的幅度变化,与伸缩因子相乘得到真值。
CORDIC算法的核心是伪旋转角度,其中tanθ=2-i
其中di=±1,判决算子,决定旋转方向。
伸缩因子是伪旋转的副产物,党建华算法允许伪旋转时,忽略cosθ项。这样,将输出x(n),y(n)伸缩Kn倍,其中:
当n趋于无穷大时,
CORDIC方法有两种操作模式,即旋转模式和向量模式。在旋转模式下,将输入向量旋转到一个期望的角度;在向量模式下将输入向量旋转到x轴。
CORDIC算法的向量模式可以得到输入向量的幅度。
CORDIC计算结果的精度取决于两个因素
(1)在数据路径中小数位位数b;
(2)迭代次数n.