Files
edma-semantic-mac/README.md
T

94 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
The design under test: each user applies an independent Haar
orthogonal mask, and the receiver runs a matched filter followed by
the closed-form affinity-aware Wiener demultiplexer, which harvests
the coherent interference component that the measured pairwise
affinity `beta` predicts. The affinity-blind reference sets `beta = 0`
in the same filter.
## Layout
| Folder | Contents |
|---|---|
| `code/` | Simulation and plotting scripts (Python) |
| `data/` | Raw results written by the scripts, one CSV per experiment |
| `fig/` | Figure PDFs included in the manuscript (`block_diagram_src.tex` is the TikZ source of Fig. 1) |
## Requirements
Python 3.10 or later with `numpy` and `matplotlib`. The Monte Carlo
experiments in `revision_sims_gpu.py`, `fig_real_merged.py`, and
`refine_matched.py` use `torch` (CUDA when available; the scripts fall
back to CPU). All random draws come from the numpy generator with the
fixed seed 2026 — torch only accelerates QR, matrix products, and
linear solves — and every script writes its raw output to `data/`, so
plotting is fully decoupled from simulation.
## Reproducing the figures
Run the scripts from inside `code/`. All plots are rendered from
`data/` only, by `replot_all.py` (Figs. 2, 3, 5, 6, 7) and
`replot_merged.py` (Fig. 4).
| Figure | Content | Simulation | Data |
|---|---|---|---|
| Fig. 1 | System diagram | `latexmk -pdf fig/block_diagram_src.tex` | — |
| Fig. 2 | Per-user MSE, aware vs blind 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` | `bertvit_merged.csv` |
| Fig. 5 | Receiver comparison under Rayleigh fading | `revision_sims_gpu.py E2` | `sic_comparison.csv` |
| Fig. 6 | Value of the measured affinity | `revision_sims.py E7a` | `beta_sweep_corrected.csv` |
| Fig. 7 | Multi-user scaling (joint Wiener) | `revision_sims_gpu.py E7c` | `multiuser_corrected.csv` |
Quantities quoted in the text but not plotted come from the same
drivers: `revision_sims.py E0` writes `theorem_check.csv` (Theorem 1
validation across affinities and channel phases),
`revision_sims_gpu.py E3` writes `rayleigh_mse.csv` (unconditional
Rayleigh MSE), `E4` writes `csi_error.csv` (imperfect-CSI
robustness), `E5` writes `mask_family_rev.csv` (WalshHadamard versus
Haar), `E8` writes `mismatch.csv` (affinity mismatch and
quantization), and `E9` writes `cosine_ceiling.csv` (cosine-ceiling
corollary check). The empirical affinity statistics quoted in the
manuscript are recomputable from `clip_realdata_beta.csv` and
`bert_vit_beta.csv` (32 paired and 32 unpaired samples per encoder
family), and the trained refinement gates behind the capacity-check
claim are stored in `refine_gates.npz`.
## Verifying the analysis
`verify_math.py` re-derives every closed-form claim numerically and
prints one PASS/FAIL line per item: Theorem 1 at the equal-gain point
and under random channel phases for both users, the aware and blind
error floors and the value-of-affinity ratio, the cosine-ceiling
corollary, the blind-receiver/matched-filter cosine equivalence, the
monotonicity proposition, the full-cooperation bound with its
equality case at `beta = 1`, the finite-SNR MAC-condition boundary,
the exact WalshHadamard closed form, the quadratic mismatch
stationarity, and the dominated floor of the correlated-mask
alternative from the Appendix. 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
with the orientation `<e1, e2> = +beta`, and independent Haar masks
drawn fresh on every realization.
## Citation and license
Citation details and a license will be added when the paper is
published.