JSCC系列论文中的慢瑞利衰落是如何仿真的y=hx+n,其中h是随时变化的还是固定还是通过导频信号估...
作成日: 2026年9月10日
使用モデル GPT-5.6 Thinking by Chat01
作成日: 2026年9月10日
使用モデル GPT-5.6 Thinking by Chat01
JSCC系列论文中的慢瑞利衰落是如何仿真的y=hx+n,其中h是随时变化的还是固定还是通过导频信号估计
如果你说的是 Bourtsoulatze / Kurka / Gündüz 那条 DeepJSCC 系列,那么“慢瑞利衰落”最典型的仿真方式是:
其中 在一张图像/一个码字的整个传输期间固定不变,但传下一张图像时重新随机生成。也就是典型的 block fading / quasi-static fading(块衰落),而不是每个符号都变。原始 DeepJSCC 论文明确写的是:对每张待传图像随机采样一个 ,整个图像传输期间保持恒定,下一张图像再独立采样新的 。(Hugging Face)
具体来说,一般设
例如 ,因此
服从 Rayleigh 分布。假设编码器产生
那么同一张图像是
这里所有 个 channel uses 共用完全相同的 。到了下一张图像:
再使用新的 。
所以你可以把它理解成:
而不是
后者更接近 fast fading。
原始 DeepJSCC 的经典 Rayleigh fading 实验里,不是。
作者明确说明,在相应实验中:
也就是说,他们不是先做
而是直接
论文甚至指出,这种结果暗示 decoder 网络自己学会了某种隐式的信道状态估计/信道适应能力。(Hugging Face)
不过这里有一个容易忽略的细节:在原论文后面的 Kodak/time-varying-channel 实验中,作者又假设 接收端知道信道引入的相位旋转,因此主要剩下随机幅度衰落;但仍不是显式发送导频来估计完整的 。(Imperial College London)
如果你自己复现,最典型的 PyTorch 思路其实就是:
python# x: [batch, k] complex # 每张图像产生一个 h h = (torch.randn(batch, 1) + 1j * torch.randn(batch, 1)) / sqrt(2) # h 自动 broadcast 到这一张图像的全部 k 个符号 noise = sigma / sqrt(2) * ( torch.randn_like(x.real) + 1j * torch.randn_like(x.real) ) y = h * x + noise
重点就是 h.shape = [batch, 1],而不是 [batch, k]。
前者:
就是 slow Rayleigh fading。
后者:
pythonh.shape = [batch, k]
意味着每个 channel symbol 都有新的衰落系数,这已经不是原始 DeepJSCC 论文采用的慢衰落模型了。
另外,若定义
平均 SNR 为
所以通常可以按
来设置噪声。但由于 每张图不同,每张图实际经历的瞬时 SNR 是
所以即便实验设置为平均 SNR = 10 dB,某一张图片可能实际上经历 3 dB,另一张可能经历 14 dB。这正是慢瑞利衰落实验的意义。
需要特别注意的是,后续 JSCC 论文不一定都这么做。例如 DeepJSCC-Q 的一种 fading 设置假设 receiver 知道 ,然后先进行
这样的信道均衡,再送入 decoder。(ResearchGate) 而 OFDM/实际物理层方向的 DeepJSCC 工作则可能明确插 pilot,再做 LS/MMSE 或神经网络信道估计。
所以可以简单记成:
如果你现在是在复现某一篇具体 JSCC 论文的代码,把论文名或 channel layer 那几行代码发我,我可以直接帮你判断它到底是 每 symbol 变 、每 image 变 、完美 CSI,还是 pilot 估计 CSI。
给出JSCC领域的信道的符号是离散的论文以及方法,比如基于vq的矢量量化,或者标量量化
可以。先把概念卡准:你说的“信道符号是离散的 JSCC”,更准确地说通常是指信道输入 alphabet 是有限的
例如 BPSK/QPSK/16QAM,或者发送的是 VQ codebook index。经过 AWGN/Rayleigh 后
的 本身仍然是连续复数。传统 DeepJSCC 与数字式 JSCC 的核心区别正是在这里:传统 DeepJSCC 的 基本连续,而下面这些工作显式引入了离散化。
| 论文 | 离散化方法 | 实际发送什么 | 我认为与你的方向匹配度 |
|---|---|---|---|
| DeepJSCC-Q, Tung et al., JSAIT 2022 | 星座量化 / soft-to-hard | 有限星座点 | ★★★★★ |
| VQ-DeepSC, Fu et al., IEEE WCL 2023 | Vector Quantization | codebook index → 数字调制 | ★★★★★ |
| Digital Wireless Image Transmission via Distribution Matching, Yang et al., PIMRC 2024 | 标量/星座量化 + STE | 离散星座点 | ★★★★★ |
| Joint Coding-Modulation via VAE, Bo et al., TCOM 2024 | categorical / 概率式离散映射 | BPSK/QAM星座 | ★★★★★ |
| OFDM-Based Digital Semantic Communication, Liu et al., TCOM 2024 | Scalar Quantization | bits → QAM → OFDM | ★★★★★ |
| Digital-SC, Guo et al., TCCN 2025 | learned nonlinear scalar quantization | 量化比特 | ★★★★☆ |
| D²-JSCC, Huang et al., JSAC 2025 | 数字源编码+信道编码 | bitstream | ★★★☆☆ |
| VQ-DeepISC, Chen et al., 2025 | VQ | VQ index → QPSK/OFDM | ★★★★★ |
| VQJSCC / CAVQ, Meng et al., 2025 | channel-aware VQ | 离散符号 | ★★★★★ |
| Se-HiLo, 2026 | Finite Scalar Quantization (FSQ) | 有限离散 latent | ★★★★☆ |
下面重点讲前几篇。
这是你首先应该看的。
T. Y. Tung, D. B. Kurka, M. Jankowski, D. Gündüz, “DeepJSCC-Q: Constellation Constrained Deep Joint Source-Channel Coding,” IEEE JSAIT, 2022.
它明确指出原始 DeepJSCC 的问题是 encoder 可以产生任意复数
而真实数字通信系统希望
例如
因此结构变成
其中硬量化就是
所以这里每个 channel symbol 只能取有限个值。论文研究了固定星座和可学习星座,并利用 soft-to-hard quantization 解决不可微问题。(IEEE Xplore)
训练时可以使用类似
的 soft assignment;推理阶段变成 nearest-neighbor hard decision。(ResearchGate)
这篇与原始 DeepJSCC 的关系最清楚:
变成
Q. Fu, H. Xie, Z. Qin, G. Slabaugh, X. Tao, “Vector Quantized Semantic Communication System,” IEEE Wireless Communications Letters, 2023.
这篇就是非常典型的 VQ-VAE 思想进入数字 JSCC/SemCom。
encoder 首先得到高维特征:
建立共享 codebook
然后进行最近邻矢量量化:
并令
真正需要发送的不再是连续 维向量,而是
所以如果
一个 VQ index 只需要
VQ-DeepSC 使用多尺度 semantic embedding/codebook,使连续语义特征转换为离散 index,并面向数字通信系统。(arXiv)
典型链路是
这是与你说的“基于 VQ 的矢量量化”最标准的一篇。
如果你的兴趣是:
不想做 VQ,一个 latent value 一个 latent value 地量化。
那么这篇非常值得看。
C. Liu et al., “OFDM-Based Digital Semantic Communication With Importance Awareness,” IEEE Transactions on Communications, 2024.
它明确采用 scalar quantizer:
然后转换为 bits,再通过真实的数字 OFDM 链路传输:
而且它不是简单 AWGN abstraction,而是研究 frequency-selective channel,并联合做 semantic importance、subcarrier allocation 和 bit allocation。(IEEE Xplore)
论文:
C. Liu, C. Guo, Y. Yang, W. Ni, T. Q. S. Quek, IEEE TCOM 72(10), 6301–6315, 2024, DOI 10.1109/TCOMM.2024.3397862. (IEEE Xplore)
如果你以后想做
这篇是很好的参考。
L. Guo, W. Chen, Y. Sun, B. Ai, “Digital-SC: Digital Semantic Communication With Adaptive Network Split and Learned Non-Linear Quantization,” IEEE TCCN, 2025.
它的重点不是固定 uniform quantizer,而是学习量化 level。
普通均匀量化可能是
Digital-SC 则让
本身成为可以优化的参数:
因此量化级可以变成非均匀的,例如:
而不是强制均匀间隔。
论文提出 learned nonlinear quantization,同时结合 structured pruning 和自适应 split/rate。(arXiv)
不过它更多偏向task-oriented semantic communication / classification,不像 DeepJSCC-Q 那么纯粹是端到端图像重构。
这篇我觉得对你做实验非常有启发。
P. Yang, G. Zhang, Y. Cai, “Digital Wireless Image Transmission via Distribution Matching,” IEEE PIMRC 2024.
作者直接指出:
大部分 DeepJSCC 是 continuous/analog channel symbols,实际数字通信需要映射到 discrete space。
它考虑两种办法。
例如把 encoder 输出
量化到某种有限 constellation:
但是根据 DeepJSCC latent 的实际分布调整 constellation spacing。
先训练 analog JSCC,得到大量
然后对这些 feature 做 clustering:
也就是说星座本身根据 DeepJSCC feature distribution 构造。
因此它其实位于
和
之间。
由于硬量化
不可微,训练采用 STE。(arXiv)
论文已发表于 PIMRC 2024。(DBLP)
这是另一种很漂亮的思路。
Y. Bo, Y. Duan, S. Shao, M. Tao, “Joint Coding-Modulation for Digital Semantic Communications via Variational Autoencoder,” IEEE TCOM, 2024.
它不采用传统的
而是学习:
即 encoder 给出:
其中
再从有限星座
中产生发送符号。
所以:
从结构上就是离散的。
作者用 VAE/variational learning 学习从 source 到 discrete constellation symbols 的 transition probability,从而绕开普通数字调制不可微的问题。实验包括 BPSK、4QAM、16QAM、64QAM。(IEEE Xplore)
这条路线可以理解为:
而 JCM 是:
这是更近期、工程链路更完整的一篇:
J. Chen et al., “VQ-DeepISC: Vector Quantized-Enabled Digital Semantic Communication with Channel Adaptive Image Transmission,” 2025.
它使用 Swin Transformer 提取 hierarchical semantic features,再使用 VQ:
区别在于,它进一步明确使用
而不是只在抽象数字信道上测试,并按 IEEE 802.11a 风格构建数字通信链路。(arXiv)
所以如果你的目标最终是:
JSCC + 离散 latent + modulation + fading channel
这篇很值得参考。
这篇尤其符合你说的“离散信道”。
Z. Meng et al., “Channel-Aware Vector Quantization for Robust Semantic Communication on Discrete Channels,” 2025.
作者直接构建
并且不只是普通 VQ。
传统 VQ:
它考虑 channel transition probability:
设计 codebook 时希望信道上容易互相混淆的两个符号,对应的语义 codeword 也彼此相近。
直观理解:
假设调制符号
在信道上容易判错,那么希望:
也比较小。
这样即使
发生 symbol error,图像语义失真也不会特别大。
它还处理
的问题,通过 multi-codebook alignment 适配不同 modulation order。(arXiv)
这其实很接近经典 JSCC 里的 index assignment / channel-optimized vector quantization 思想,只不过换成了神经 VQ。
如果你正在考虑自己设计方法,我建议不要只看传统 VQ,还可以关注 Finite Scalar Quantization, FSQ。
传统 VQ:
整个向量找最近 codeword:
codebook 大小是
FSQ 则对每个 dimension 单独有限量化:
最后离散 state 数量:
例如:
实际上有
种组合,却不用显式维护 512 个 VQ embedding。
2026 年的 Se-HiLo: Noise-Resilient Semantic Communication via Frequency-Decoupled Quantization 就使用 FSQ,把 representation 限制在 predefined discrete spaces。(IEEE Xplore)
另外已有数字语义通信工作采用 FSQ-based implicit codebook,并指出它可以避免传统 VQ 的 codebook collapse。(PubMed)
如果你想做:
FSQ 是一个非常值得研究的方向。
你看论文时,可以按下面这个谱系理解。
对于每个 feature:
比如 -bit uniform quantization:
链路:
代表:
OFDM-Based Digital Semantic Communication
Digital-SC
优点:简单、容易接真实通信系统。
缺点:没利用 feature dimensions 之间相关性。
把
映射为:
链路:
代表:
以及 VQ-DeepISC、VQJSCC。
优点是压缩能力强,而且天然得到 discrete tokens。
缺点是:
这一类以 DeepJSCC-Q 为代表。
直接:
不一定经过:
所以 encoder 直接输出一个可以被物理层发送的星座符号。
这是:
而不是传统:
代表 JCM:
它本质上把数字 modulation 视为 categorical latent variable。
这种路线通常采用:
我认为这条路线在理论上比简单 STE 更漂亮。
分别进行:
得到组合 token:
可以看成:
因此近年来越来越值得关注。
很多论文都叫 Digital JSCC / Digital Semantic Communication,但其实可以分成两种。
第一种:
例如:
这种其实还是有比较清晰的传统数字链路。
第二种则是:
例如:
它没有显式
这几层,而是直接学习从 source 到有限星座序列的 JSCC codebook。
从严格意义上的“离散输入 JSCC”研究来看,我认为第二类其实更有意思。
按阅读顺序:
DeepJSCC-Q, 2022
先理解如何把连续 DeepJSCC 改成
VQ-DeepSC, 2023
理解
(arXiv)
Joint Coding-Modulation via VAE, 2024
理解“不用 hard quantizer,直接学习 categorical constellation symbol”。(IEEE Xplore)
Digital Wireless Image Transmission via Distribution Matching, 2024
理解 DeepJSCC latent distribution 与 discrete constellation 应该怎样匹配。(arXiv)
OFDM-Based Digital Semantic Communication, 2024
看最接近真实数字 PHY 的
VQJSCC / Channel-Aware VQ, 2025
看如何把
真正纳入 VQ/codebook 设计。(arXiv)
如果你的研究重点是图像重构 + Rayleigh fading + 离散符号,我最建议从
这条线切入;如果想做一个比较容易形成新方法的方向,则可以考虑
尤其是研究“VQ codeword 与 QAM symbol 如何联合映射,使邻近/易混淆星座点对应语义相近 codeword”,这本质上就是现代神经 JSCC 版的 channel-optimized vector quantization + index assignment,研究逻辑非常清楚。
我现在的实验是vq+qam(vq指导星座图的生成)的方案,实验设置是CBR=1/48或者CBR=1/192,推理的是kodak/CLIC数据集,我应该找哪些论文来对比,最好他们的实验结果也是这样,或者有开源的代码或者权重
你这个方案如果是 “VQ 决定/引导 QAM 星座结构或 VQ codeword 与星座联合设计”,我建议不要只按“谁 PSNR 高”找 baseline,而要同时覆盖:
按你现在的设置,我会优先选下面这些。
| 方法 | 和你的方法相似度 | Kodak/CLIC | CBR=1/48 | CBR=1/192 | QAM/VQ | 代码/权重 | 建议 |
|---|---|---|---|---|---|---|---|
| DeepJSCC-Q | ★★★★★ | Kodak | ✅ | — | learned constellation/QAM | 代码不算正式公开 | 必比 |
| MDJCM | ★★★★★ | Kodak + CLIC2021 | 可做低 CBR;论文重点含 rate curve | — | 多阶 QAM + constellation generator | ✅代码 + checkpoint | 必比 |
| euJSCC | ★★★★★★ | Kodak + CLIC2021 + DIV2K | ✅精确 | — | VQ + dynamic codebook + modulation | 暂未找到官方代码 | 必引用,极其接近你 |
| VQJSCC/CAVQ | ★★★★★★ | CIFAR-10 | 不匹配 | 不匹配 | VQ 与 constellation 联合优化 | 暂无官方代码 | 必引用机制 |
| SwinJSCC | ★★★ | Kodak + CLIC2021 | ✅ | — | 连续模拟符号 | ✅代码 + 预训练权重 | 强 baseline |
| MambaJSCC | ★★★ | Kodak + CLIC2021 | ✅ | — | 连续模拟符号 | ✅代码 + checkpoint | 推荐 |
| DiffJSCC | ★★ | Kodak | ✅ Rayleigh | ✅ Rayleigh | 连续+生成式 | ✅代码 + 部分权重 | 1/192 特别有用 |
| BPG+LDPC+QAM | ★★★★ | 任意 | ✅自己配 | ✅自己配 | 标准数字通信 | 易实现 | 必比 |
下面说为什么。
这篇实际上应该是你论文里最核心的 baseline/citation:
Tung et al., “DeepJSCC-Q: Constellation Constrained Deep Joint Source-Channel Coding,” IEEE JSAIT, 2022. (IEEE Xplore)
它与你的区别可以概括成:
而你大概是:
它已经研究:
而且论文里明确给了 的 Kodak 图像结果,其 rate-distortion 图也比较了 DeepJSCC-Q、learned 64-point constellation、64-QAM 和 BPG+LDPC。(ResearchGate)
所以如果审稿人问:
为什么需要 VQ 来指导 constellation,而 DeepJSCC-Q 已经能学习 constellation?
这基本就是你必须回答的问题。
至少做:
以及
如果你的结果能证明:
那么故事非常完整。
一个有用的实现线索是 ST-JSCC 的公开仓库明确感谢 DeepJSCC-Q 作者提供过代码,但我目前没有查到一个维护良好的 DeepJSCC-Q 官方独立仓库。(GitHub)
From Analog to Digital: Multi-Order Digital Joint Coding-Modulation for Semantic Communication,IEEE TCOM 2025。(arXiv)
这个甚至比普通 DeepJSCC-Q 更适合你。
它也是:
而且包含 multi-order constellation generator,研究
论文在 Kodak 上直接画了不同 CBR 下的性能,并在 Kodak 和 CLIC2021 上给了 SNR-PSNR 曲线;其中固定 SNR 曲线实验的平均 CBR 是
同时它的 rate 实验覆盖更宽的 CBR 区域。(ResearchGate)
它和你的核心差别应该是:
而你:
这非常适合当 nearest competitor。
更重要的是,它有官方 PyTorch,而且提供 MDJCM-A 的 pretrained checkpoint。(GitHub)
我会优先把这套代码拉下来改 CBR,而不是自己从论文重写。
这是 2026 年比较新的:
Extended Universal Joint Source-Channel Coding for Digital Semantic Communications: Improving Channel-Adaptability。(arXiv)
你尤其应该认真看这篇。
因为它本身就是:
它有一个 Dynamic Codebook Generation (DCG) network,根据 SNR 修改基础 VQ codebook。(arXiv)
实验协议更关键:
并且测试:
训练 patch 是 ,Kodak 是 ,而且同时研究 AWGN 与 block fading。(ResearchGate)
所以从 experimental setup 来看,它几乎就是你应该找的论文。
你可以这样区分你和它:
而如果你的方法是:
那实际上研究重点完全不同:
euJSCC 是让 channel condition reshape codebook;
你是让 semantic VQ structure reshape constellation。
这是很好的 related work 对照。
缺点是:我目前没有找到作者公开的正式代码仓库或 pretrained weights。所以我会“必引用”,但不一定要求你复现。
这篇标题就很明显:
Channel-Aware Vector Quantization for Robust Semantic Communication on Discrete Channels, 2025。(arXiv)
它的思想是:
更关键的是,它不只是普通 VQ,而是利用 channel transition probabilities:
去改变 VQ codebook。
它希望:
在 QAM 星座上容易互相误判的 symbols,其对应的 VQ semantic codewords 也应该比较接近。
所以它实际上优化:
这个思想和“VQ 指导星座图生成”已经非常接近。(arXiv)
不过它有两个问题:
第一,它目前的主要实验是 CIFAR-10,32×32,并不是 Kodak/CLIC。(ResearchGate)
第二,我目前没有找到官方开源代码。
所以我的建议是:
否则如果投稿时 reviewer 知道这篇,很可能会直接问你和 CAVQ/VQJSCC 的区别。
如果你需要一个高分辨率、大家都认可、而且很好复现的 neural JSCC baseline,我首选 SwinJSCC。
SwinJSCC: Taming Swin Transformer for Deep Joint Source-Channel Coding, IEEE TCCN 2024。
它的实验非常适合你:
尤其论文明确给了:
下的 Kodak AWGN 和 Rayleigh 曲线。(Scribd)
它的 rate-adaptive 模型也有
这种典型设置。(Scribd)
官方:
repo 直接支持:
text--testset kodak --testset CLIC21 --channel-type awgn --channel-type rayleigh
而且官方提供 pretrained models。(GitHub)
有一个需要注意的问题:官方 repo 后来特别提醒,torch > 1.12 时 SA&RA 模型推理结果可能和论文不一致,建议 inference 用 torch <=1.12。(GitHub)
这个坑值得提前避免。
MambaJSCC 有一个优势:
本身就是其主要实验条件之一,并研究 AWGN + Rayleigh。论文的 1/48 实验同时比较了:
官方 repo 目前已经开源,而且明确支持:
同时已经给出了部分 pretrained checkpoints,包括 DIV2K + Rayleigh 模型。(GitHub)
如果篇幅有限,我甚至会:
换成
作为现代 analog neural baseline。
这一点非常巧。
Diffusion-Aided Joint Source Channel Coding for High Realism Wireless Image Transmission 的论文中,Kodak + Rayleigh fading 的 Figure 7 正好就是
和
这与你的实验配置非常少见地完全撞上了。
论文里 JSCC backbone 支持:
因此超低 CBR 对比非常有价值。(ResearchGate)
官方代码也开了:
而且有 Hugging Face checkpoints。官方 repo 当前列出的公开模型包括:
(GitHub)
这里需要注意:论文虽然有 Kodak + 1/48、1/192 曲线,但 repo 目前并没有把所有论文 rate 的 OpenImages/Kodak 对应 checkpoint 全都列出来。
所以:
另外 DiffJSCC 是 generative 方法,所以如果你只用 PSNR,不一定最合适;如果你的论文也报:
它就非常值得比较。
因为你本身就是:
如果没有传统 digital baseline,会比较可惜。
推荐:
SwinJSCC 的官方实现/实验就是 BPG + 5G LDPC + QAM;WITT repo 也明确说明使用 block length 6144 的 5G LDPC,并针对不同 coding rate 和 QAM 做比较。(GitHub)
你的论文最终就可以形成很漂亮的三层比较:
这是我最推荐的组合:
然后对于 CBR=1/192 再额外加入:
如果篇幅允许,再引用但不一定重跑:
这样 reviewer 基本很难说你的 baseline coverage 不够。
你现在是 VQ+QAM,不能简单把 latent tensor 大小当 CBR。
假设一张 RGB 图:
VQ 一共产生 个 index,codebook size
每个 index 需要
bits。
如果使用
每个复 channel symbol 携带
bits。
那么无 channel coding 时实际使用的 complex channel symbols 数是
因此按照 DeepJSCC-Q 的定义:
如果加 rate- LDPC:
这件事对你非常关键。
例如同样是 个 VQ tokens:
用 QPSK:
个 complex channel symbols/token;
而 16QAM:
个 symbols/token。
所以如果你改变 QAM order 却保持 token 数固定,CBR 实际上已经变了。
这恰恰是做 VQ+QAM 实验时最容易被 reviewer 抓住的问题。
固定:
对于每一个 CBR 分别测试:
或者与 SwinJSCC 一致:
两种 channel:
和
然后两套 benchmark:
Kodak24:
CLIC2021/2022:
同样三项。
再专门做一个 constellation ablation:
这个 ablation 可能比再加三个无关 JSCC baseline 更能证明你的贡献。
第一:MDJCM——与你的 digital/QAM 结构最接近,而且有 checkpoint。(GitHub)
MDJCM code
第二:SwinJSCC——Kodak/CLIC、1/48、AWGN/Rayleigh、weights 基本全齐。(GitHub)
SwinJSCC code
第三:MambaJSCC——同样支持 Kodak/CLIC、Rayleigh,并有 checkpoint。(GitHub)
MambaJSCC code
你现在这个课题里,euJSCC 和 VQJSCC 是最需要认真处理 related work novelty 的两篇;DeepJSCC-Q 和 MDJCM 是最需要真正跑数值 baseline 的两篇;SwinJSCC/MambaJSCC 是最适合证明你与强连续 JSCC 差距的两篇。