文档介绍:DDS设计
基本原理
直接数字频率合成器(DDS)是通信系统中常用到的部件,利用DDS可以制成很有用的信号源。与模拟式的频率锁相环PLL相比,它有许多优点,突出为(1)频率的切换迅速;(2)频率稳定度高。
一个直接数字频率合成器由相位累加器、波形ROM、D/A转换器和低通滤波器构成。DDS的原理框图如下所示:
其中K为频率控制字, fc为时钟频率,N为相位累加器的字长,D为ROM数据位及D/A转换器的字长。相位累加器在时钟 fc的控制下以步长K作为累加,输出N位二进制码作为波形ROM的地址,对波形ROM进行寻址,波形ROM输出的幅码S(n)经D/A转换器变成梯形波S(t),再经低通滤波器平滑后就可以得到合成的信号波形了。合成的信号波形形状取决于波形ROM中存放的幅码,因此用DDS可以产生任意波形。本设计中直接利用D/A转换器得到输出波形,省略了低通滤波器这一环节。
频率预置与调节电路
不变量K被称为相位增量,也叫频率控制字。DDS方程为:f0= fc K/2n,f0为输出频率,fc为时钟频率。当K=1时,DDS输出最低频率(也既频率分辩率)为fc /2n
DDS的最大输出频率由 Nyguist 采样定理决定,即fc /2,也就是说K的最大值为2n-,只要N足够大,DDS可以得到很细的频率间隔。要改变DDS的输出频率,只要改变频率控制字K即可。
累加器
相位累加器的原理图如下图
相位累加器由N为加法器与N位寄存器级联构成。每来一个时钟脉冲fc,加法器将频率控制字与寄存器输出的累加相位数据相加,再把相加后的结果送至寄存器的数据输入端,寄存器将加法器在上一个时钟作用后所产生的下数据反馈到加法器的输入端;以使加法器在下一个时钟作用下继续频率控制字进行相加。这样,相位累加器在时钟的作用下,进行相位累加,当相位累加器累加满量时,就产生一次溢出,完成一个周期性的动作,这个周期应为 uk= 2n / GCD(2N ;k),其中GCD表示最大公约数。
3、波形存储器
用相位累加器输出的数据作为波形存储器的取样地址进行波形的相位——幅值转换,即可在给定的时间上确定输出的波形的抽样幅值。N位的寻址ROM相当于把00--- 3600 的正弦信号离散成具有2n 样值的序列,若波形ROM有D位数据位,则2n个样值的幅值以D位二进制数值固化在ROM 中,按照地址的不同可以输出相宜相位的正弦信号的幅值。相位----幅值变换原理图如下所示。
4、D/A转换器
D/A转换器的作用是把已经合成的正弦波的数字量转换成模拟量,正弦幅度量化序列S(n)经D/A转换后变成了包络为正弦波的阶梯波S(t),S(t)的周期为T=uk*Tc.。需要注意的是,频率合成器对D/A转换器的分辨率有一定的要求,D/A转换器的分辨率越高,合成的正弦波S(t)台阶数就越多,输出波形的精度也就越高。
整体的设计原理图
各个模块的实现
通过“freq_in”可以产生频率控制字。在“frep_in”的上升沿来的时候,频率控制字加1。输出宽度为4位的频率控制字,范围为1~16。
相位累加器实现的功能是:(1)设置DDS的初始相位。(2)波形ROM地址发生器。(3)DDS工作状况显示。
(1)、通过xiang_en,set_up,set_ok设置初始相位。
初始相位的调节范围可以是0度到360度。
(2)、system_clk为系统时钟的输入端。Count_clk 为地址发生器的工作时钟输入端。Frep_in为频率控制字输入端。
(3)、load_data[9..0]为波形ROM的地址发生器地址输出端,led_out[2..0]为系统工作状态显示。
.address[9..0]为波形ROM的地址输入端,宽度为10位,可寻址空间为1K。clock为地址锁存信号输入端。.q[7..0]为相应地址存储的波形信号数据输出端。
Sel_in1
Sel_in2
输出数据
0
0
正弦波信号
0
1
三角波信号
1
0
方波信号
1
1
方波信号
六、附件
/*-------------*/ 相位与频率设置模块
library ieee;
use ;
use ;
use ;
entity set360 is
port( set_up, set_ok, clk, clk1 : in std_logic ;
en : in std_logi