Chinaunix首页 | 论坛 | 博客
  • 博客访问: 477388
  • 博文数量: 206
  • 博客积分: 4030
  • 博客等级: 上校
  • 技术积分: 1852
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-29 15:33
文章分类

全部博文(206)

文章存档

2010年(44)

2009年(75)

2008年(87)

我的朋友

分类:

2010-08-19 21:17:17

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的“tuning  equation”。这个系统的分辨率达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的速率。

阅读(2943) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~