# DF01：从 CT 环路到调制器输出频谱

## 目标

建立统一的幅度、功率、PSD、信号带宽和采样率口径，避免 FFT 图看起来合理但积分结果错误。

## 讲解

CT 环路滤波器是连续时间部分；其输出经量化形成离散序列。常用线性化模型为 Y=STF·X+NTF·E，滤波器 H 之后为 H·Y。量化误差的白噪声/独立近似只是模型条件，实际码流可有相关性、idle tones 和非线性。

若 E 的 PSD 近似平坦，NTF=(1−z⁻¹)^L 在低频使噪声 PSD 按 f^(2L) 上升，dB 图的低频斜率约 20L dB/decade。它不直接给出真实 CT 设计的稳定性、过载和实际噪声底。

先选归一化参考：调制器输入允许峰值 1，full-scale sine 的功率为 1/2。峰值 A=0.5 正弦功率为 A²/2=0.125，信号电平为 −6.0206 dBFS。24 位输出的容器范围未必等于模拟输入 FS。

对长度 N 的序列 x、窗 w、采样率 Fs，双边 PSD 可按下式归一化：

```text
X = FFT(w*x)
S_two[k] = |X[k]|² / (Fs * sum(w²))
delta_f = Fs/N
```

实数序列单边谱的内部 bins 乘 2；DC 与偶数 N 的 Nyquist bin 不乘 2。PSD 单位为归一化幅度²/Hz，带内功率用 sum(S_one×delta_f) 积分。不能把 dB 数值直接相加，也不能在抽取后继续使用旧 Fs。

窗对正弦幅度和噪声功率的归一化不同。相干单音可用 `A≈2|X_tone|/sum(w)` 校验幅度；PSD 用 sum(w²)，涉及窗的等效噪声带宽。非相干单音要积分完整主瓣/泄漏范围，不能只取一格作为信号功率。

SNR 排除谐波失真，SNDR 包含噪声和失真；积分频带和排除 bins 的规则要固定。经典 ENOB=(SNDR−1.76)/6.02 假设接近满量程正弦等测量条件，不能把任意小幅单音的 SNDR 直接当有效位数。

## Worked example

Fs=6.144 MHz、N=65536，则 delta_f=93.75 Hz，3 kHz 位于 bin32，是相干单音。抽取 128 后，同时间记录有 512 个输出样本，Fs=48 kHz，delta_f 仍为 93.75 Hz。

若噪声功率相对 FS sine 为 −100 dBFS，A=0.5 的信号为 −6.0206 dBFS，无其他失真时 SNR=93.9794 dB。这是给定功率的计算，不是教学调制器已达到的性能。

## 实验

先用纯正弦验证 amplitude 与 power，再用白噪声验证 PSD 积分和时域均方。然后通过 (1−z⁻¹)、(1−z⁻¹)³ 给噪声整形，观察斜率和带内积分。此时输出是线性化数值序列，不是合法 1-bit modulator 输出。

对真实/模型 bitstream 明确 0/1 是 unipolar 还是映射为 ±1。去均值、DC 排除和 startup discard 写入记录；不要为了漂亮频谱任意删除异常点。

## 验收

正弦幅度与功率符合预期；PSD 积分与相同窗归一化的时域能量一致；每张图标 Fs、N、窗、单位、频带、输入模型和 transient 处理。答案见 [DF01 参考](10_answers.md)。
