您当前的位置:首页 > 生活热点

基于dds的信号发生器_DDS信号发生器的理解与实现

时间:2023-02-07 23:54:59

基于dds的信号发生器_DDS信号发生器的理解与实现

基于Verilog的DDS波形发生器的分析与实现

最近了解了一些关于DDS的知识,本文简要记录了我的理解和实现。

DDS信号发生器采用直接数字合成(DDS)技术,将信号发生器的频率稳定度和精度提高到与参考频率相同的水平,并能在较宽的频率范围内进行频率微调。用这种方法设计的信号源可以工作在调制状态,调节输出电平,输出各种波形。

下图显示了DDS的基本结构。

从上图可以看出,DDS主要由相位累加器、相位调制器、波形数据表和D/A转换器组成。

相位累积部分控制输出波形频率,相位字输入部分改变相位,ROM表存储周期波形的幅度值。

相位累加器由一个n位加法器和一个n位寄存器组成。每个时钟到来时,加法器将频率控制字与累加寄存器输出的相位数据相加,相加的结果反馈到累加寄存器的数据输入端,使加法器在下一个时钟脉冲的作用下继续相加频率控制字。这样,相位累加器在时钟的作用下,不断对频率控制字进行线性相位累加。也就是说,当输入每个时钟脉冲时,相位累加器累加一次频率控制字。相位累加器输出的数据是合成信号的相位。相位累加器的溢出频率是DDS输出的信号频率。(解释:定义一个N位寄存器,一般是32位。如果一个时钟算一次,就要算2 ^ 32次才算满,太慢了。所以频率控制字设置为A,以前是1,现在在A中计数累加,可以控制计数更新的速度。)

相位累加器输出的数据作为波形存储器的相位采样地址,通过查表可以找到波形存储器中存储的波形采样值,完成相位到幅度的转换。波形存储器的输出被送到D/A转换器,D/A转换器将数字信号转换成模拟信号并输出。

一般32位累加器并不全部作为ROM地址输出,而是根据ROM深度适当截取高位作为地址,其余位可以作为控制频率。比如目前ROM中存储的一个周期的波形数据,每个数据位都是8位宽,所以数据范围是0-2 ^ 8(256),但是产生一个周期的波形需要512,因为0-256一般在上升期,256-0在下降期,所以现在ROM深度是512,所以地址位宽应该是9位,2的九次方=512,所以只有32位累加器可用。如果现在每个时钟地址都改变了,那么剩下的位(也就是频率控制字A)应该设置为32 ' H800000,也就是32 ' b 0000 _ 0000000000000 _ 000000000,最高位1实际上是地址的最低位,累加器在几个时钟边沿初始为0。如果两个时钟变化一次,那么A就是32 ' b 0000 _ 00000100 _ 0000 _ 0000 _ 0000 _ 0000 _ 0000,地址的最低位会在两个时钟后发生变化。这样,通过设置频率控制字A,可以改变地址的变化频率,实际上就是输出频率。不知道观者能否理解这一点。

这里相位累加器的位数为n(实际应用中n的范围一般为24~32),相当于将正弦信号的相位精度定义为n,因此其分辨率为1 /2。如果DDS的时钟频率为

标签:频率累加器信号

相位

|| 相关文章
    无相关信息
最新文章