基于CORDIC算法2FSK调制器的FPG - FPGA/ASIC技术 -
本文提出了应用CORDIC(Coordinate RotaTIon Digital Computer)算法实时计算正弦值的方案,并基于CORDIC算法在FPGA芯片上设计了2FSK调制器。这不仅能够节省大量的FPGA逻辑资源,而且能很好地兼顾速度、精度、简单、高效等方面。
1 CORDIC算法原理及结构
1.1 CORDIC算法原理
CORDIC算法是由J.Volder于1959年提出的。该算法适用于解决一些三角学的问题,如平面坐标的旋转和直角坐标到极坐标的转换等。C-ORDIC算法的基本思想是通过一系列固定的、与运算基数有关的角度的不断偏摆以逼近所需的旋转角度。从广义上讲,CORDIC方法就是一种数值计算的逼近方法。该算法实现三角函数的基本原理如图1所示。

设初始向量(x0,y0)逆时针旋转角度θ后得到向量(xn,yn),如图1所示。则:

为了避免复杂的乘法运算,用一系列微旋转来处理,第i次旋转可表示为:

式中:θi表示第i次旋转的角度,并且满足tanθi=2-i;zi表示第i次旋转后与目标角度的差;δi表示向量的旋转方向,由zi的符号位来决定,即δi=sign zi。


为每一级的校正因子,也就是每一级旋转时向量模长发生的变化,对于字长一定的运算,总的校正因子是一个常数。若总的旋转次数为n,则总校正因子用k表示为:

由式(7)可知:xn,yn分别为输入角θ的余弦和正弦值,故基于CORDIC算法可产生正弦载波信号,而且由式(5)可以看出所有运算简化成加减法和移位操作,因此很容易用硬件实现。