没有合适的资源?快使用搜索试试~ 我知道了~
首页基于FPGA的DDS设计
基于FPGA的DDS设计

使用一个完整的实例 介绍了dds的原理以及用vhdl语言实现的方法。本文提供了完整的vhdl代码,来实现dds功能。
资源详情
资源评论
资源推荐

基于 FPGA 的 DDS 设计
基于 FPGA 的 DDS 设计
摘 要:直接数字频率合成(DDS)技术采用全数字的合成方法,所产生的信号具有频率
分辨率高、频率切换速度快、频率切换时相位连续,输出相位噪声低和可以产生任意
波形等诸多优点。
1

基于 FPGA 的 DDS 设计
第 1 章 总体设计
2.1 DDS 的基本原理
直接数字频率合成技术(Direct Digital Frequency Synthesis,即 DDFS,一般简称
DDS)是从相位概念出发直接合成所需波形的一种新的频率合成技术。近年来,技术
和器件水平不断发展,这使 DDS 合成技术也得到了飞速的发展,它在相对带宽、频率
转换时间、相位连续性、正交输出、高分辨力以及集成化等一系列性能指标方面已远
远超过了传统的频率合成技术所能达到的水平,完成了频率合成技术的又一次飞跃,
是目前运用最广泛的频率合成技术。
2.1.1 DDS 的基本原理和优化构想
DDS 的主要思想是从相位的概念出发合成所需的波形,其结构由相位累加器,正弦
ROM 查找表, D/A 转换器和低通滤波器组成。它的基本原理框图如图 2.1 所示。
图 2.1 DDS 原理图
图 2.1 中, fc 为时钟频率, K 为频率控制字, N 为相位累加器的字长, m 为 ROM 地
址线位数, n 为 ROM 的数据线宽度(一般也为 D/A 转换器的位数) , fo 为输出频率, 输出
频率 fo 由 fC 和 K 共同决定: fo = fC×K/2
N
。又因为 DDS 遵循奈奎斯特(Nyquist)取样定
律:即最高的输出频率是时钟频率的一半,即 fo = fC/2。实际中 DDS 的最高输出频率由
允许输出的杂散水平决定,一般取值为 fo ≤40% fC。
对 DDS 进行优化设计,目的是在保持 DDS 原有优点的基础上,尽量减少硬件复杂性,
降低芯片面积和功耗,提高芯片速度等。为了减小 DDS 的设计成本, 对其结构进行优化,
优化后 DDS 的核心结构框图如下所示。
2

基于 FPGA 的 DDS 设计
图 2.2 优化后的 DDS 核心框图
其中的地址转换器是根据 adri[14]的数值判断数值是增长(0~π/2)或减少(π/2~π) ,
数据转换器是根据 adri[15]的数值判断生成波形的前半个周期(0~π)或者后半个周期(π
~2π) 。
2.1.2 DDS 的工作原理
图 2.3 所示是一个基本的 DDS 电路工作原理框图。
图 2.3 DDS 输出原理框图
电路一般包括基准时钟、频率累加器、相位累加器、幅度/相位转换电路、D/A 转
换器和低通滤波器(LPF)。每来一个时钟脉冲 ,N 位加法器将频率控制数据 X 与
累加寄存器输出的累加相位数据相加,把相加后的结果 Y 送至累加寄存器的输入端。
累加寄存器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输
入端,以使加法器在下一时钟的作用下继续与频率控制数据 X 相加;另一方面,将这
个值作为取样地址值送入幅度/相位转换电路,幅度/相位转换电路根据这个地址值输出
相应的波形数据。最后,经数 /模转换(D/A Converter)和低通滤波器(Low Pass
Filter)将波形数据转换成所需要的模拟波形。相位累加器在基准时钟的作用下,进行
线性相位累加,当相位累加器累加满量时就会产生一次溢出,这样就完成了一个周期,
这个周期也就是 DDS 合成信号的一个频率周期。
其中,输出频率的变化是通过改变累加器中的 PIR(相位递增寄存器)中的常数
X,便改变了每个周期中的点数,而这些点数正是用来改变整个波形的频率。当一个新
的 PIR 常数被存进寄存器,波形的输出频率便随着下一个时钟周期连续地改变改变相
位。相位累加器将依据 PIR 中存储的常数来改变 RAM 中的地址,若 PIR 数值很小(即
频率较低),累加器便一步一步地经过每一个 RAM 地址。当 PIR 的值较大时,相位累
加器将跳跃某些 RAM 地址。因此,随着频率的增加,每个波形周期中的输出采样点数
将减小。实际上,在不同频率的波形中,每个周期给出的点数是不同的。
3

基于 FPGA 的 DDS 设计
2.1.3 DDS 的输出频率及分辨率
DDS 输出信号的频率由式(2.1)给定:
(2.1)
式中, 为输出频率, 为系统同步的时钟频率,N 为累加器位数,M 为输入频
率的数值。可见,理论上通过设定 DDS 相位累加器位数频率控制字 N 和基准时钟
的值,就可以产生任一频率的输出。而 DDS 的频率分辨率定义:
(2.2)
也即输出频率的步进制。由于基准时钟一般固定,因此相位累加器的位数就决定了频
率分辨率。事实上 D/A 转换器的输出波形,相当于是一个连续平滑波形的采样,这样
根据奈奎斯特采样定律,采样率必需要大于信号频率的两倍。也就是说 D/A 转化器的
输出如果要完全恢复的话,输出波形的频率必须小于 /2。一般来说,位数越多,分
辨率越高。那么 M 的最大取有一定的过渡带的,所以输出频率还要有一定的余量,一
般来说在实际应用当中 DDS 的输出频率不能超过 0.4 。本设计采用 N=32,
=43MHZ,设计的分辨率约为 0.01HZ。
4

基于 FPGA 的 DDS 设计
第 2 章 VHDL 实现直接数字频率合成
通过第二章对DDS基本原理的分析,DDS的基本原理是以数控振荡器的方式,产
生频率、相位可控制的正弦波。电路一般由相位累加器、ROM波形存储器(正弦,方波
查找表)、数模转换器(DAC)、低通平滑滤波器(LPF)构成。
本设计采用N=32, =43MHZ,设计的相位累加器相位分辨率约为8.382X10
-8
度。
3.1 相位累加器的设计
相位累加器是整个 DDS 的核心。它的输入是相位增量 B
△θ
,又由于 B
△θ
,与输出频
率 F
OUT
是简单的线形关系:
. (3.1)
信号发生器的输出可以描述为:
. (3.2)
其中 是指前一个周期的相位值,同样得到:
(3.3)
由上面的推导,可以看出,只要对相位的量化值进行简单的累加运算,就可以得
到正弦信号的当前的相位值,而用累加的相位增量量化值 决定了信号的输出频率
,并呈简单的线形关系。相位累加器的输入又称为频率字输入,事实上当系统基
准时钟 是2
N
时, 就等于 。相位累加器由N位加法器与N位相位寄存器级联
成。此环节是典型的反馈电路:每来一个时钟脉冲,累加器将频率控制字M与相位寄
存器输出的累加相位数据相加,把相加后的结果送至相位寄存器的数据输入端;相位
寄存器将累加器上一个时钟作用后所产生的新相位数据反馈到累加器的输入端,以使
累加器在下一个时钟的作用下继续与频率控制数据相加。这样,相位累加器在参考时
钟的作用下,进行线性相位累加,当累加器累加满量时就会产生一次溢出,完成一个
周期性的动作,这个周期就是DDS合成信号的一个频率周期,累加器的溢出频率就是
DDS输出的信号频率。本设计采用32位的累加器,43M的晶振其频率分辨率可以达到
5
剩余24页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论4