一文讲透 DDS 数字合成:定义、原理、核心模块与频率公式
在实际应用中,我们通常希望输出一个模拟信号,例如设定频率的正弦波或方波等,而非离散的电压值。我们可以使用 DAC 输出一个预先定义好的数字信号,但是通过 DAC 直接生成的信号波形,其频率、幅度等特性通常是固定的或受限的;如果需要改变波形,通常需要重新生成和加载新的数字数据,这个过程比较慢,不太适合实时动态变化的应用场景。
此时,我们可以使用 DDS 信号发生器,直接数字合成(Direct Digital Synthesis, DDS)是一种高效的信号合成技术,用于生成任意波形信号,如正弦波、方波、锯齿波和三角波。它在信号发生器、调制解调器、无线电通信等领域应用广泛,DDS 的优点在于它的频率分辨率高、调谐速度快、相位噪声低以及在频率、相位和幅度控制方面的灵活性。
通过改变 DDS 的输入参数,波形可以在运行时实时调整。DDS 适用于需要频率合成、调制或相位调整的应用场景,如无线通信、雷达等。实际上,DAC是 DDS信号发生器的一部分,DDS 的输出波形是通过 DAC 来生成的,DDS 负责生成数字相位值并将其转换为波形的幅度值,而 DAC 则负责将这些数字幅度值转换为模拟信号。
我们可以做一个形象比喻说明二者关系:
- DDS 就像乐队指挥,它决定了整个乐曲的节奏、调性和变化。指挥通过手势和乐谱指示乐队何时演奏什么音符,这就类似于 DDS 通过数字信号决定输出波形的频率和相位
- DAC 就像乐器,它根据指挥的指示演奏出实际的音乐,这就类似于 DAC 将数字信号转化为模拟波形,最终输出到扬声器或其他模拟设备中
DDS 信号发生器的核心是一个数字相位累加器、波形存储器(查找表,LUT)和数模转换器(DAC):

其中,各个部分作用如下:
- 时钟源:提供 DDS 系统的时钟信号,通常为一个稳定的高频时钟,时钟频率越高,DDS 输出信号的频率分辨率和波形质量越高
- 相位累加器:一个二进制加法器,通常为 32 位或更高位宽,它在每个时钟周期将频率控制字(FCW)累加到当前相位值中
- 频率控制字(FCW)寄存器:存储频率控制字,用于控制输出信号的频率,通过改变 FCW,可以快速改变输出信号的频率
- 波形存储器(查找表):存储数字波形数据,通常是正弦波的各个采样点,波形存储器的大小和内容决定了 DDS 可以生成的波形种类和精度
- DAC(数模转换器):将数字波形数据转换为模拟信号
- 输出滤波器:对 DAC 输出的信号进行滤波,去除高频成分和噪声,得到干净的模拟波形信号
以下是 DDS 的工作过程:
-
相位累加:这里主要工作单元位相位累加器,这是一个基于模 N 计数器的模块,它以固定的步长递增其值,每次递增的步长由频率控制字(Frequency Control Word, FCW)决定
- 假设系统的时钟频率为 fclk,则输出信号的频率 fout 可以通过以下公式计算:
$$
fout = \frac{FCW \times f_{clk}}{2^N}
$$其中 FCW 是频率控制字, N 是相位累加器的位宽- 相位累加器的输出是一个相位值,该相位值用于查找波形存储器中的对应波形数据
-
波形查找:
- 波形存储器存储着预先计算好的波形数据,例如正弦波的各个采样点的幅值,相位累加器的输出作为波形存储器的地址,用于查找相应的波形数据
- 通过将相位累加器的输出映射到波形存储器的地址,DDS 能够生成不同相位的波形信号
-
数模转换:从波形存储器中读取的数字波形数据通过 DAC 转换为模拟信号,输出给负载
-
输出信号:通过滤波器处理后,将最终的模拟信号输出

在实际应用中,我们通常希望输出一个模拟信号,例如设定频率的正弦波或方波等,而非离散的电压值。我们可以使用 DAC 输出一个预先定义好的数字信号,**但是通过 DAC 直接生成的信号****波形****,其频率、幅度等特性通常是固定的或受限的;如果需要改变波形,通常需要重新生成和加载新的数字数据,这个过程比较慢,不太适合实时动态变化的应用场景。**
浙公网安备 33010602011771号