DDS的工作原理是首先在板载存储器中存储一个大型的重复波形。任意波形发生器(AWG)里面波形的任何一个单周期(正弦波、三角波、方波、任意波形)都可以由精确的16,384个点来表示并存储在内存中。一旦波形被存储在内存中,它就可以以非常精确的频率生成。
函数发生器利用DDS技术通过从内存中选择样本而不是生成波形的所有样本来生成精确频率的周期信号。相比之下,任意波形发生器(AWG)会生成存储在内存中的波形的每个样本。虽然AWG允许用户精确定义正在生成的波形,但它们在所能实现的频率精度方面受到限制,特别是在高频时。相比之下,下图展示了函数发生器如何生成21MHz的正弦波,即使其频率不是采样率的直接倍数。
图1:使用直接数字合成(DDS)技术生成21MHz正弦波
从上面的图中,我们可以注意到正弦波的频率并不是采样率的因数。因此,使用采样率为100 MS/s的任意波形发生器(AWG)生成21MHz的正弦波会比较困难。另一方面,函数发生器使用直接数字合成(DDS)技术在内存中存储一个包含16,384个样本的波形。在每个时钟周期内,从查找表中选择合适的样本,然后生成该样本对应的信号。因此,当我们为模数转换器(DAC)提供一个恒定的100MHz时钟时,能够生成精确频率的信号。
功能概述
直接数字合成的实际实现需要一个查找表,以确定在任何时间点上的相位输出信号。下面的图展示了基于直接数字合成的波形生成系统的各个组成部分。
图2:直接数字合成(DDS)方框图
如上图所示,相位累加器通过比较采样时钟和期望频率来增加相位寄存器的值。这里的基本思想是,我们可以基于任何时间点上的特定频率的相位来生成相应的样本,从而生成具有精确频率的信号。此外,通过用2¹⁴(即16,384)个点来表示我们的波形,我们能够在查找表中精确地表示16,384个相位增量。
相位累加器使用简单的算术运算来计算每个生成样本的查找表地址。它通过将期望频率除以采样时钟频率,然后将结果乘以2⁴⁸来计算这个地址。这个数字是基于相位寄存器的位分辨率得出的。对于信号发生器,为了获得最大精度,使用了48位的相位寄存器。其中,34位用于存储剩余相位,而14位用于从查找表中选择一个样本。
因此,相位累加器生成一个14位的地址,该地址对应于信号的精确相位。例如,地址“00000000000000”对应于0°。另一方面,地址“11111111111111”对应于359.978°。因此,信号发生器可以使用这个地址来控制任何时间点上信号的相位。这在下图中得到了展示:
图3:相位寄存器的计算
如图所示,相位累加器能够以248个点的精度表示所生成信号的相位。但是,由于我们的波形中仅有214个可用点,因此查找表中仅使用相位寄存器的14个最高有效位。剩下的34位用于存储相位增量的其余部分。这个余数确保了DDS(直接数字合成)的精度,确保在相位寄存器溢出(每个波形周期一次)后,查找表能够返回正确的相位信息。
应用
由于直接数字合成能够以非常精确的频率生成周期信号,因此它对于需要相位连续频率扫描的应用非常有用。一个常见的应用是滤波器特性表征。下面是一个典型系统设置的方框图:
图4:低通滤波器特性表征方框图
在此应用中,函数发生器用于在离散的频率步长内,使正弦波在较宽的频率范围内进行扫描。利用直接数字合成技术,我们能够确保频率扫描中每个步长生成的信号精度在0.355微赫兹以内。因此,通过生成更宽范围的频率,能够更准确地表征模拟滤波器。