雷达 · 通信 · 电子战 / 基础精学 109
数字下变频 信道化和频偏校正都需要可编程本振。本课建立 DDS 最基本的相位字模型。
直接数字频率合成器每个时钟把频率控制字加到有限位宽相位累加器,累加器自然回绕形成周期相位,输出频率与控制字成精确比例。
W:相位累加器位宽(bit)
K:频率控制字(整数)
fs:时钟频率(Hz)
fo:DDS 输出频率(Hz)
Δ f:频率分辨率(Hz)
无符号相位字满足
模运算由固定位宽自然回绕实现。
相位每拍增加 2π K/2W,因此 fo=Kfs/2W,最小控制字步进对应 Δ f=fs/2W。
若只取高 P<W 位寻址正弦表,低位截断会产生周期相位误差和杂散。增大查表位宽或加抖动可降低相关杂散。
相位累加器像一个有限刻度圆盘,每个时钟前进固定格数。前进格数决定平均转速,溢出正好对应绕圆一周。
MATLAB 对二十四位累加器计算多个控制字的理论与实测频率,绘制相位回绕和相位截断谱,并报告频率量化误差。
| 量 | 数值 |
|---|---|
| 时钟频率 / Hz | 100000000 |
| 相位累加器位宽 | 24 |
| phase table address bits | 10 |
| 频率控制字 | 2071261 |
| 频率分辨率 / Hz | 5.96046447754 |
| 设定频率 / Hz | 12345678 |
| 实际频率 / Hz | 12345677.6142 |
| frequency quantization error hz | -0.385787963867 |
| phase truncation sfdr db | 26.4205669339 |
图 1 DDS 相位回绕 频率控制字误差和相位截断杂散
数值结果由配套 MATLAB 脚本在固定参数和固定随机种子下实际执行。脚本包含针对闭式关系 边界条件或估计误差的断言,并把 MATLAB 版本与关键数值写入独立结果文件。
RTL 实现参数化无符号相位累加器和高位相位地址输出,复位后从零相位启动。
配套 RTL 只实现本课中可明确量化的定点核函数或数据通路。浮点矩阵分解 概率统计和图形生成保留在 MATLAB 参考程序中。
DDS 用于数字本振、扫频、载波校正和测试信号生成。杂散性能还取决于幅度查表和 DAC。
相位截断产生确定性杂散。
控制字与模数的公因数决定相位周期。
幅度量化增加谐波。
时钟抖动限制高频输出纯度。
DDS 相位累加器用模二幂加法把控制字线性映射为频率。位宽决定频率分辨率,高位截断决定相位表复杂度和杂散。
内容依据:每日精学第 109 课《DDS 相位累加器与频率控制字》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。