| name | jonc-reproducibility |
| description | 当为《通信学报》(Journal on Communications, JOC) 稿件建立可复现性与实验可重复保障时调用;用于让 Journal on Communications 外审能按说明在声明环境下复现通信仿真主结果。指导固定通信仿真的信道实现、随机种子、蒙特卡洛次数、参数表与数据集划分,规范复现包(环境依赖、config、脚本、校验和)的组织,防范数据泄漏与"精挑参数",处理受限数据/私有信道测量的可获取性说明,并把复现信息恰当写入正文实验设置与数据可用性声明,帮助把一篇通信/网络/信息安全/信号处理方向的中文长文做到外审能按说明在声明环境下复现主结果,提升本刊三审制下对实证可信度的评价。 |
《通信学报》可复现性与实验可重复
本技能帮助让《通信学报》(Journal on Communications, JOC) 稿件的实验可被复现。JOC 由中国通信
学会主办,虽无独立制品徽章制度(见 jonc-artifact-evaluation),但通信仿真结果的可复现性是外审
判断可信度的核心。以下与 2026-07-09 核验的本刊定位一致(见 resources/official-source-map.md)。
一、可复现性三层
| 层次 | 含义 | 通信语境 |
|---|
| 可重复 (repeatable) | 同环境同参数复跑得同结果 | 固定种子与信道实现 |
| 可复现 (reproducible) | 他人按说明能复现主结论 | 提供 config + 脚本 + 数据 |
| 可推广 (replicable) | 换场景仍成立 | 多信道/多拓扑验证 |
二、必须固定的要素
| 要素 | 做法 |
|---|
| 随机种子 | 全局固定;报告种子值或种子集 |
| 信道实现 | 固定信道模型与其随机实现;给参数 |
| 蒙特卡洛次数 | 明确独立仿真次数;据此给置信区间 |
| 参数表 | 每个实验一份 config(SNR、码率、天线数、节点数等) |
| 数据集划分 | 训练/验证/测试固定;防泄漏 |
| 软件版本 | MATLAB/NS-3/Python 及关键库版本 |
三、复现包组织
参照 resources/code/README.md:
repo/
├── README.md # 环境 + 一键复现主图命令
├── env/ # requirements.txt / environment.yml / 工具版本
├── src/ # 信道、方法、基线、指标
├── configs/ # 每图一 config,含种子
├── data/ # 数据或生成脚本 + 校验和
└── scripts/ # run_figX.* 与论文图号对应
四、防范数据泄漏与挑参
- 泄漏防范:测试信道/数据不得参与训练或调参;时序数据防未来信息泄漏。
- 挑参防范:报告参数选取依据;给敏感性分析,避免只报最优点。
- 信道复用陷阱:训练与评测用同一批信道实现会高估性能,须分离。
五、受限数据/私有测量
- 公开数据:给来源、版本、许可。
- 自建数据:给生成脚本与统计描述。
- 私有/受限测量:说明获取方式、脱敏处理与待核实的许可限制,尽量给可公开的替代验证。
六、写入正文
- 实验设置节:列信道模型、参数表、种子、仿真次数、平台版本。
- 数据可用性/致谢:说明代码与数据的开放程度与获取方式。
- 匿名评审阶段用匿名仓库链接(若适用)。
七、复现自查清单
八、常见问题与修法
| 问题 | 后果 | 修法 |
|---|
| 未报种子/仿真次数 | 无法复现、统计存疑 | 补种子与次数、给置信区间 |
| 训练评测信道复用 | 性能高估 | 分离信道实现 |
| 参数无来源 | 挑参嫌疑 | 说明依据 + 敏感性 |
| 库版本缺失 | 环境不可重建 | 固定并记录版本 |
| 数据不可获取且无说明 | 可信度下降 | 给获取方式或替代验证 |
九、通信仿真的可复现性陷阱(专项)
通信仿真有一些区别于通用机器学习的复现陷阱,外审专家尤为敏感:
| 陷阱 | 表现 | 规避 |
|---|
| 信道实现未固定 | 每次运行信道不同,曲线抖动难比 | 固定信道随机实现或报告足够多次平均 |
| 蒙特卡洛次数不足 | 低误码率区间置信区间过宽 | 按目标 BER 量级设定足够仿真比特数 |
| 定点/浮点差异 | 硬件实现与仿真不一致 | 说明数值精度与量化设置 |
| 归一化口径不一 | SNR/Eb/N0 定义混用 | 明确 SNR 定义(每比特/每符号/每天线) |
| 基线实现差异 | 复现他人方法与原文不符 | 注明复现来源与差异、可给原作者代码 |
十、复现包 README 最小内容
# 环境
- OS / MATLAB(或 Python) 版本 / 关键库版本
# 一键复现
- bash scripts/run_fig3.sh # 生成正文图 3(SNR-BER)
- bash scripts/run_fig5.sh # 生成正文图 5(吞吐-负载)
# 参数
- configs/fig3.yaml(含 seed、SNR 范围、蒙特卡洛次数)
# 数据
- data/ 下载脚本 + 校验和(md5)
# 预计运行时间与硬件
- 图 3 约 ___ 分钟(CPU/GPU ___)
十一、与其它技能衔接
- 与
jonc-experiments 配套:实验设计定稿即固化复现要素。
- 与
jonc-supplementary 配套:把冗长参数表、额外场景放附录。
- 与
jonc-submission 配套:投稿时附复现包链接与数据可用性声明。
- 与
jonc-artifact-evaluation 配套:以复现包达到 L3 及以上可用性成熟度。
十二、要点回顾
- 可复现性分三层:可重复、可复现、可推广;通信实证至少做到可复现。
- 必须固定并报告:随机种子、信道实现、蒙特卡洛次数、参数表、数据划分、软件版本。
- 警惕通信专项陷阱:信道未固定、仿真次数不足、SNR 定义混用、训练评测信道复用。
- 复现包给 README + configs + scripts + 数据校验和,实现主图一键复现。
- 把复现信息写入实验设置节与数据可用性声明;受限数据说明获取方式(待核实 许可)。
目标:让《通信学报》/Journal on Communications (JOC) 的外审可以按 README 在声明环境下复现主图主表,
这是通信类实证长文可信度的底线,也是三审制下加分的稳妥做法。