# DeepGraph 免费验证案例 · OFDM + Saleh：DPD / DPoD / 无处理的频谱—功率效率折衷

**提交方向**：OFDM 系统 Saleh 功放非线性下 DPD、DPoD 与无处理的效率折衷（提交人选定选项 A）
**交付时间**：2026-08-26
**这一轮真跑了**：25 个输入回退点 × 5 个随机种子 × 200 个 OFDM 符号（1024 子载波、16-QAM），
四条臂（含一条零模型），纯 CPU。

---

## 0. 结论（先说结果）

**两条预测，一条成立、一条被推翻，而被推翻的那条更有用。**

- **成立**：DPD 在整个功率效率区间上支配无处理。同一功率效率下频谱效率显著更高。
- **被推翻**：我们原本预测 DPoD 会稳定地介于两者之间（优于无处理、劣于 DPD）。
  实际是——**在深度饱和区（输入回退 0.0–1.0 dB），DPoD 比什么都不做还差**，
  最差处低 0.208 bit/s/Hz。

**为什么**：收端后失真要对已经含噪声的信号做 Saleh 逆变换，而这个逆在接近饱和点时是病态的。
我们量了它的噪声放大系数：输出为饱和点 50% 时是 1.16 倍，95% 时 3.41 倍，99.9% 时 **4.57 倍**。
放大噪声带来的损失，超过了纠正失真带来的收益。这是 Saleh 逆的固有性质，不是实现问题
（第 3 节有专门的复核）。

DPD 与 DPoD 的差距也随非线性增强而拉大：强非线性区（回退≤3 dB）平均差 1.622 bit/s/Hz，
弱非线性区（≥9 dB）只差 0.401。这一半的预测方向是对的。

## 1. 数字

| 输入回退(dB) | 无处理 | DPD | DPoD | 错参零模型 |
|---:|---:|---:|---:|---:|
| 0.0 | 2.655 | 4.029 | 2.446 | 2.649 |
| 1.5 | 3.041 | 4.700 | 3.090 | 2.961 |
| 3.0 | 3.470 | 5.595 | 3.910 | 3.427 |
| 4.5 | 3.935 | 6.686 | 4.900 | 4.079 |
| 6.0 | 4.420 | 7.700 | 5.958 | 4.906 |
| 7.5 | 4.904 | 8.204 | 6.875 | 5.795 |
| 9.0 | 5.360 | 8.300 | 7.540 | 6.539 |
| 10.5 | 5.783 | 8.311 | 7.961 | 7.065 |
| 12.0 | 6.157 | 8.310 | 8.150 | 7.380 |

（频谱效率，bit/s/Hz；每格是 5 个种子的均值）
图：`work/figs/pareto.png`（左：Pareto 折衷面；右：DPoD 相对无处理的增益，红色区就是它反而更差的地方）

## 2. 判定规则（跑之前写死，见 `claims.json`）

- Pareto：输入回退 0–12 dB 扫描，每点算 (功率效率, 频谱效率)，取非支配集
- 频谱效率：由带内 SNDR 经 log2(1+SNDR)，SNDR 含非线性失真与 AWGN，三条臂都做同样的最小二乘增益校正
- 功率效率：B 类功放 eta = 0.785·sqrt(Pout/Pmax)
- **零模型**：用**错误的** Saleh 参数做预失真。若它也能拿到同等增益，说明增益来自任意信号操作而非真的逆了非线性

## 3. 我们怎么确认这不是实现问题

五项敌意复核（`work/adversarial_check.py`）：

1. **DPD 是不是靠少发功率换的？** 是的，部分是。同一回退点 DPD 的功率效率 0.624 < 无处理 0.689。
   **所以两者必须在 Pareto 面上比，不能只比频谱效率。**这一点请特别注意。
2. **噪声对三条臂一视同仁吗？** 噪声按各自输出功率归一到同一 SNR，加在功放之后、任何收端处理之前。
   DPD 在噪声之前工作、DPoD 在噪声之后——这是物理事实，不是实现偏袒。
3. **深饱和区 DPoD 变差是病态还是 bug？** 量化了逆变换的噪声放大系数（1.16→4.57），是固有性质。
4. **错参零模型为什么也有增益？** 平均 +0.560，因为任何压缩型逆映射都能部分补偿。
   关键是正确参数拿到 4.5 倍增益。
5. **换种子会翻吗？** 另外三个种子都复现「深饱和区 DPoD 更差」。这是一致性核查，不是统计检验——本轮没有对种子间差异做配对显著性检验，所以这条只能说"没被推翻"，不能当作带 p 值的证据。

另外用另写的一套 EVM→SNDR→SE 代码独立复算了 IBO=6 dB 三条臂，与主实验**完全一致（差 0）**
（复算用同样的种子与符号数，只把 SNDR→SE 换成 EVM 路径，结果**逐位一致**）。

## 4. 这些数**不**支持什么

1. **没有覆盖范围这一维。** 本轮做的是选项 A（频谱效率—功率效率两维）。覆盖范围是选项 B 的内容。
2. **Saleh 是无记忆模型。** 真实功放有记忆效应，会改变 DPD 的可达增益；本轮结论不外推到有记忆的情形。
3. **DPD 假设参数完全已知。** 真实系统要在线辨识，误差会吃掉一部分增益——错参零模型那一栏
   可以当作「参数辨识很差」时的下界参考。
4. **没有编码增益、没有 MIMO、没有实测功放数据。**
5. **绝对数值依赖 SNR=25 dB 与 16-QAM 的设定**，换设定绝对值会变，但三条臂的相对关系应当稳定
   （这一点本轮没验，属下一轮）。

## 5. 下一步

1. **把覆盖范围这一维加进来**（你原方向里的第三维），做三维 Pareto —— 这是你最初要的完整图景。
2. **换成有记忆的功放模型**（Volterra / 记忆多项式），看 DPD 的优势还剩多少、DPoD 的失效区会不会扩大。
3. **扫 SNR 与调制阶数**，验证「深饱和区 DPoD 反而更差」这个结论的适用边界在哪。

这三条属于付费轮。

## 6. 随附材料

`work/experiment.py`（四条臂全流程）、`work/adversarial_check.py`（第 3 节五项）、
`work/recheck.py`（独立复算）、`work/plot_results.py` + `figs/`、`claims.json`（跑前预测）、
`work/results.json`（数字唯一回查源）、`work/logs/run.log`。

本轮为纯仿真，不使用任何外部数据，不需要提交人提供任何材料。
