基于CORDIC算法的DDS实现
原理
直接数字式频率合成器DDS(Direct Digital Synthesizer),实际上是一种分频器:通过编程频率控制字来分频系统时钟(SYSTEM CLOCK)以产生所需要的频率。DDS有两个突出的特点,一方面,DDS工作在数字域,一旦更新频率控制字,输出的频率就相应改变,其跳频速率高;另一方面,由于频率控制字的宽度宽(48bit或者更高),频率分辨率高。
CORDIC算法是一种迭代算法,它通过一系列简单的加法、减法、位移等操作来计算三角函数、双曲函数等复杂函数。
在xy坐标平面上将点( x 1 , y 1 x_{1,}y_{1} x1,y1)旋转 θ \theta θ角度到点( x 2 , y 2 x_{2,}y_{2} x2,y2)的标准方法如下所示:
x 2 = x 1 cos θ − y 1 sin θ x_{2} = x_{1}\cos\theta - y_{1}\sin\theta x2=x1cosθ−y1sinθ
y 2 = y 1 sin θ + y 1 cos θ y_{2} = y_{1}\sin\theta + y_{1}\cos\theta y2=y1sinθ+y1cosθ
这被称为是平面旋转、向量旋转或线性(矩阵)代数中的Givens旋转。
通过提出因子 cos θ \cos\theta cosθ,方程可写为下面的形式:
x 2 = x 1 cos θ − y 1 sin θ = c o s θ ( x 1 − y 1 t a n θ ) x_{2} = x_{1}\cos\theta - y_{1}\sin\theta = cos\theta(x_{1} - y_{1}tan\theta) x2=x1cosθ−y1sinθ=cosθ(x1−y1