dds协议c语言实例,以AD9850为例简述DDS工作原理

以AD9850 为例来谈一谈DDS的工作原理。DDS系统的核心是相位累加器,每来一个时钟脉冲,它的内容就更新一次。在每次更新时,相位增量寄存器的相位增量M就加到相位累加器中的相位累加值上。假设相位增量寄存器的M为00...01,相位累加器的初值为00...00。这时在每个时钟周期,相位累加器都要加上 00...01。如果累加器位宽n是32位,相位累加器就需要232个时钟周期才能恢复初值(见图2)。

相位累加器的输出作为正弦查找表的查找地址。查找表中的每个地址代表一个周期的正弦波的一个相位点,每个相位点对应一个量化振幅值。因此,这个查找表相当于一个相位/振幅变换器,它将相位累加器的相位信息映射成数字振幅信息,这个数字振幅值就作为D/A变换器的输入。

例如n=32,M=1, 这个相应的输出正弦波频率等于时钟频率除以232。如果M=2,输出频率就增加1倍。对于一个n-bit的相位累加器来说,就有2n个可能的相位点,相位增量寄存器中控制字M就是在每个时钟周期被加到相位累加器上的值。假设时钟频率为fc,那么输出正弦波的频率就为:

f0 = M*fc / 2n

这就是DDS的“tuningequation”。这个系统的分辨率达fc / 2n ,如果n = 32 ,分辨率比40亿分之一还要好,在一个实际应用的DDS系统里,相位累加器的所有输出位并没有全部送到查找表,一般只取高K位(AD9850就只取高13 到15位),于是既减少了查找表的规模,又不影响系统的频率分辨率。这个相位输出给最后的输出只带来小到可以接受的相位噪声。相位噪声基本上来源于参考时钟。

在DDS 系统中,最重要的是对带宽和频率纯度之间的折中。如果时钟频率降低,则Nyquist频率下降,带宽减小,同时D/A变换器的分辨率提高,这样就可以得到更高的频率纯度。所以,对DDS输出频率分频就可以减小带宽并且提高频谱纯度。模拟信号频谱纯度主要取决于D/A变换器的性能。

上述基本DDS 系统是相当灵活的。而且拥有高分辨率。它可以通过相位累加器来同时相位连续地改变频率。然而,实际DDS系统首先要在相位累加器之前加入一个内部缓冲寄存器(即图中的Data and control input register),通常这个缓存串行输入相位累积值,按顺序字节输入(Byte-load)相位控制字。由于相位增量寄存器和相位累加器是并行输入,加了缓存相当于串并转换,可以减少封装的管脚数。控制字载入缓存与相位增量寄存器以及相位累加器的并行输出是同步的,因此不影响DDS的速率。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值