Simulation code and data for the TMC submission
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# Structured Shared–Private Embedding Multiplexing
|
||||
|
||||
Simulation code and data for the manuscript
|
||||
|
||||
> K.-H. Lee, H.-H. Choi, and J.-R. Lee, "Structured Shared–Private
|
||||
> Embedding Multiplexing for Semantic Multiple Access in Dynamic Mobile
|
||||
> Networks," submitted to *IEEE Transactions on Mobile Computing*, 2026.
|
||||
|
||||
Builds on the published shared-embedding multiple-access framework
|
||||
(Lee, Choi, Lee, *IEEE JSAC*, vol. 44, 2026, doi 10.1109/JSAC.2025.3643816).
|
||||
|
||||
## Layout
|
||||
|
||||
- `code/semantic_mac.py` — core library (content model, matched-filter
|
||||
front end, SR/SC/LMMSE/DR receivers, spectral structure recovery,
|
||||
mobility model, affinity tracker)
|
||||
- `code/exp1_theory.py` — E1: receiver theory validation (affinity and
|
||||
SNR sweeps, closed-form overlays) → `data/e1_*.csv`
|
||||
- `code/exp2_structure.py` — E2: embedding-structure optimization on
|
||||
real BERT embeddings (spectral recovery, learned adapter, held-out
|
||||
evaluation ladder) → `data/e2_*.csv`, `data/e2_exponents.txt`
|
||||
- `code/exp3_mobility.py` — E3: time-varying affinity tracking under
|
||||
mobility (scene traversal and speed sweep) → `data/e3_*.csv`
|
||||
- `code/exp4_mismatch.py` — E4: robustness to affinity estimation
|
||||
error → `data/e4_mismatch.csv`
|
||||
- `code/exp5_learned.py` — E5: comparison with a trained user-wise
|
||||
attention receiver → `data/e5_learned.csv`, `data/e5_train_log.csv`
|
||||
- `code/check_mask_realization.py` — realized Haar-mask front end vs
|
||||
the expected cross-Gram model → `data/e_mask_check.csv`
|
||||
- `code/replot_all.py` — the single canonical figure generator; reads
|
||||
only `data/*.csv` and writes every paper figure with a uniform
|
||||
canvas geometry
|
||||
- `code/lmmse_verify.py` — early derivation-check prototype for the
|
||||
affinity-aware LMMSE proposition (predecessor of E1)
|
||||
- `data/bert_agnews_8000.pt` — frozen `bert-base-uncased` mean-pooled
|
||||
embeddings of 8,000 AG News sentences (768-dim), the real-content
|
||||
pool used by E2
|
||||
|
||||
## Reproduction
|
||||
|
||||
Requirements: Python 3.10+, `numpy`, `torch` (CPU is sufficient),
|
||||
`matplotlib`.
|
||||
|
||||
```bash
|
||||
cd code
|
||||
python exp1_theory.py # E1 (minutes)
|
||||
python exp2_structure.py # E2 (about an hour on CPU)
|
||||
python exp3_mobility.py # E3 (about an hour on CPU)
|
||||
python exp4_mismatch.py # E4 (minutes)
|
||||
python exp5_learned.py # E5 (minutes)
|
||||
python replot_all.py # regenerate every figure from data/*.csv
|
||||
```
|
||||
|
||||
Every experiment fixes its random seeds, experiment scripts write CSVs
|
||||
only, and `replot_all.py` is the only script that produces figures, so
|
||||
each figure in the paper is regenerable from the shipped CSVs without
|
||||
rerunning the experiments.
|
||||
|
||||
## License
|
||||
|
||||
MIT — see `LICENSE`.
|
||||
Reference in New Issue
Block a user