基于基于CORDIC改进算法的改进算法的NCO设计设计
数控振荡器(NCO)已经被广泛应用于数字信号处理、软件无线电系统等诸多领域中。针对基于传统
CORDIC(Coordinate Rotation Digital Computer)算法的NCO存在工作频率较低、精度不高、且消耗资源多等缺
点,通过对CORDIC算法进一步优化改进,提出了一种NCO的设计方法,将覆盖角度扩展至整个圆周范围,实
现了幅度与相位之间分别对应,且输出的正余弦波形具有完全正交性。实验结果表明,设计的NCO具有运算速
度快,消耗硬件资源较少,结构简单易于使用硬件电路实现的优势,最高频率比基于传统CORDIC算法的NCO
提高了114.3%,并将精度提高至10-5~10-6的数量级。
0 引言引言
数控振荡器(Numerically Controlled Oscillator,NCO)是信号处理系统的重要组成部分。随着现代通信系统的不断发
展,NCO凭借其相位可连续线性变化、频率分辨率高、全数字化处理等优越特性,在图像处理、快速傅里叶变换、直接数字
频率合成器等设计中得到了广泛应用。
传统数控振荡器的实现方法为只读存储器查找表法(ROM LUT),如图1所示。这种方法在对分辨率要求不高的情况下,
是一种简单的实现方式。但是若要进一步提高分辨率,就会消耗大量的ROM资源;此外,存储器读取速度的瓶颈也限制了
NCO的输出速度。而CORDIC算法易于使用数字电路实现,仅通过简单的加减法和移位操作就可以完成多种硬件电路难以直
接实现的复杂运算,因此在NCO的设计中也得到了很好的应用。本文将对传统CORDIC算法进一步改进,并结合改进方法提
出一种适合于硬件实现的数控振荡器的设计方法,从而提高输出精度和运算速度。
1 CORDIC算法原理算法原理
坐标旋转数字计算(Coordinate Rotation Digital Computer,CORDIC)首次由Jack Volder于1959年提出,1971年Walther统
一了CORDIC算法的形式。CORDIC的基本思想是通过一系列只与运算基数有关的固定小角度的不断偏摆从而逼近期望角度,
此算法具有线性收敛域和序列特性
[3]
。
CORDIC算法的基本原理是运用了Givens旋转法则。假设给定向量A(x
0
,y
0
),当旋转过一定角度θ后得到新向量
B(x
1
,y
1
),如图2所示。
根据旋转变换法则,可得式(1):