教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

基于CORDIC算法的NCO在FPGA中的实现

来源:网络收集 时间:2026-07-18
导读: 基于CORDIC算法的NCO在FPGA中的实现 总第242期2009年第12期 计算机与数字工程 Computer&DigitalEngineering V01.37No.12 21 基于CORDIC算法的NCO在FPGA中的实现。 王玉良李宏生夏敦柱 (东南

基于CORDIC算法的NCO在FPGA中的实现

总第242期2009年第12期

计算机与数字工程

Computer&DigitalEngineering

V01.37No.12

21

基于CORDIC算法的NCO在FPGA中的实现。

王玉良李宏生夏敦柱

(东南大学仪器科学与工程学院南京210096)

摘要介绍如何利用CORDIC(Coordination

Rotation

DigitalComputer)算法产生正余弦信号的实现过程基础上,研

究并在FPGA中实现了基于流水线CORDIC算法的数控振荡器。仿真验证结果表明,该方法较之其它方法具有精度高、结构简单易于实现、节省资源且功耗低等特点,非常适合应用于高速高精度数字调制解凋。

关键词数控振荡器CORDIC算法FPGA中图分类号TN914.3

FPGAImplementationofNCOBased

Wang

Yuliang

LiHongsheng

on

CORDICAlgorithm

XiaDunzhu

(InstrumentScienceandEngineeringCollege。SoutheastUniversity,Nanjing

Abstract

Based

introducinghow

generatesineandcosinesignalwith

210096)

ontoa

CORDIC(CoordinationRotationDig—

italComputer)algorithm,thispaperstudiedandimplementedlinedCORDIC

NumericallyControlledOscillator(NCO)withthepipe-

algorithm

on

FPGA(FieldProgrammableGateArray).Simulationresultsindicatedthatthismethodhas

structure

characteristicsofhigh

SO

accuracy,simple

to

and

easy

to

implement,saving

resources

andlowpowerconsumptionand

on,isverysuitableKey

applyinthehighspeedandhighaccuracydigital

modulation

and

demodulation.

words

numericallycontrolledoscillator(NCO),coordinationrotationdigital

computer(CORDIC)algorithm,

field

programmablegatearray(FPGA)

Class

NumlⅪrTN914.3

引言

数控振荡器(NCO)作为直接数字频率合成器

就可以达到很高的精度,并且适合用FPGA等可编程器件实现。FPGA技术是最近20年迅速发展起来的可编f\!逻辑器件技术,其具有的可重复编程与远程在线配置功能,使得硬件可以像软件一样灵活编程修改,从而无形中缩短了产品开发时间与开发成本。因此,基于CORDIC算法的NCO在FP—GA芯片中的实现具有重要的研究意义。2

(DDS)的核心器件,具有频率精度高、响应速度快、频谱纯度高及相位易编程等优点而在软件无线电、通信和测量领域得到了广泛应用。其主要作用是生成正交的正余弦信号,主要的实现方式是查找表法、多项式展开法和基于CORDIC算法的实现方法。在精度与速度要求高时查找表法需要大量的存储资源,多项式展开法需要乘法器资源,所以这两种方法在速度、精度与资源之间很难兼顾。而采用由Voider和Walther首先提出的CORDIC算法来计算超越函数[1],只需要简单的移位与加法运算

NCO原理结构

不论以何种方式实现NC0,NCO的结构都是

由相位累加器、相位加法器和波形发生器构成,不同的是波形发生器的实现方式。查找表法将波形存于存储器中,通过索引控制发出波形的相位与幅

。收稿日期:2009年8月15日,修回日期:2009年9月20日

作者简介:王玉良,男,硕士研究生,研究方向:硅微机械陀螺仪数字化信号处理电路的关键技术。李宏生,男,博士生导师,教授。研究方向:基于ARM、DSP和MCU的多核嵌入式系统及其应用技术。

万方数据

基于CORDIC算法的NCO在FPGA中的实现

王玉良等:基于CORD]C算法的NCO在FPGA中的实现第37卷

度,而基于CORDIC算法的方法,通过算法的迭代来计算输出的波形。NCO的结构图如图1所示。相位累加器在系统时钟^的控制下,以频率控制字FF为步长累加,然后输出给相位加法器与相位控制字FP相加后输出给波形发生器,波形根据此相位信息输出期望的波形。输出波形的频率厂由系统时钟的频率厂。,频率控制字FF及相位寄存器字长N通过下式:

,一(FF ,f)/2N

(1)

确定。频率分辨率△厂由厂。和N通过下式:

△,一工/2N

(2)根据此式,在系统时钟不变的情况下相位寄存器字

长N越大,NCO输出波形的分辨率越高。

图l

NCA3原理结构图

CORDIC算法原理[1,5~6]

CORDIC(坐标旋转数字式计算机)算法由

Volder于1959年首次提出,1971年Walther统一了该算法的形式[3],Meyer-base第一次利用FPGA实现了该算法[4|。该算法主要应用于计算三角函数、双曲函数、对数函数、指数函数等。其基本原理是:初始向量(Xo,Yo)按照一定的角度序列顺时针或逆时针旋转,从而逐渐逼近目标向量(XN,YN)。不失一般性假设第,z次旋转后的向量为(X。,L),

则第咒+1次旋转后的向量(X州,E+。)可以表示

为:

劁一甚sinO,_Scos嗽&㈦

1一I

,口、

【L+。J【JlLJ

将上式转换为如下形式:

剧一观[。三一}㈦

取tgO,一S。 (1/2”),其中S。一{1,一1)则所

有旋转角度之和为:

口2∑S。0。,式(4)化为:

劁一co蛾p。埘吲引㈣

万方数据

其中m代表操作模式:m一1为圆周变换,m=0为线性变换,m一一1为双曲线变换,cosO.一COS

(arctg(21))。

随着迭代次数的增加cos&的乘积将收敛于常数K,当然对于固定的字长竹,此项也是一个常数,即

K一儿cos(arctg(21))≈o.60725

(6)

为了完成上述旋转过程还需一个变量Z用于

记录每次迭代后的角度,即

乙+1=乙+S。0。

如果上述迭代过程工作于使Z旋转到0的旋转 …… 此处隐藏:4627字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于CORDIC算法的NCO在FPGA中的实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1713664.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)