3.4 KiB
EDMA — Affinity-Aware Embedding Division Multiple Access
Reproducibility package for
K.-H. Lee, H.-H. Choi, and J.-R. Lee, "Affinity-Aware Embedding Division Multiple Access for Multi-User Semantic Communications," submitted to IEEE Transactions on Vehicular Technology, 2026.
This repository contains the simulation code, the raw result data, and the figure files behind every numerical claim in the paper. It is private during peer review and will be made public upon publication.
Layout
| Folder | Contents |
|---|---|
code/ |
Simulation and plotting scripts (Python, CPU only) |
data/ |
Raw results written by the scripts, one CSV per experiment |
fig/ |
Figure PDFs included in the manuscript |
Requirements
Python 3.10 or later with numpy and matplotlib. The Fig. 4
experiment additionally uses torch (CPU build is sufficient). No GPU
is required. Every script fixes the seed 2026 and writes its raw output
to data/, so plotting is decoupled from simulation.
Reproducing the figures
Run the scripts from inside code/.
| Figure | Content | Script | Data |
|---|---|---|---|
| Fig. 2 | Per-user MSE and self-interference floor | revision_sims.py E1 |
floor_validation.csv |
| Fig. 3 | Effective sum rate at the CLIP affinity | revision_sims.py E7a |
rate_corrected.csv |
| Fig. 4 | Cosine recovery on real BERT+ViT pairs | fig_real_merged.py, then refine_matched.py; replot with replot_merged.py |
bertvit_merged.csv |
| Fig. 5 | Realizable versus genie-aided SIC | revision_sims.py E2; replot with replot_sic.py |
sic_comparison.csv |
| Fig. 6 | Affinity sweep and crossover | revision_sims.py E7a |
beta_sweep_corrected.csv |
| Fig. 7 | Multi-user scaling | revision_sims.py E7c |
multiuser_corrected.csv |
Fig. 1 is a system diagram and has no simulation behind it.
Quantities quoted in the text but not plotted come from the same
driver: revision_sims.py E0 writes theorem_check.csv (Theorem 1
constants), E4 writes csi_error.csv (imperfect-CSI robustness), and
E5 writes mask_family_rev.csv (Walsh–Hadamard versus Haar masks).
revision_sims.py with no argument runs every experiment.
Verifying the analysis
verify_math.py re-derives every closed-form expression in the paper
numerically and prints one PASS/FAIL line per item, covering the
per-realization Gram identity, Theorem 1 and its self-interference
constants, the effective-SINR corollary, the MAC-consistency
proposition, the wideband limit, both crossover conditions, the
affinity-mismatch bound, the CSI-invariance identity, the multi-user
inverse formula, and the Walsh–Hadamard construction. It depends only
on numpy.
Conventions
The scripts follow the manuscript exactly: unit per-block transmit
energy E_b = 1 per user, rho = E_b / sigma_n^2 as the per-block
SNR with per-symbol SNR rho/d, complex block-Rayleigh gains unless
the evaluation point h_u = 1 is stated, real unit-norm embeddings,
and masks drawn fresh from the Haar mixture on every realization.
fig_real_merged.py also produces columns for a retrained
attention-based receiver. Those columns are kept in bertvit_merged.csv
for completeness but are not used by any figure in the paper.
revision_sims.py E6 covers a high-affinity combining mode that is
outside the scope of this paper.
Citation and license
Citation details and a license will be added when the paper is published.