This repository provides reproducible, model-compatible reference data-generation pipelines for channel foundation models (CFMs), including CSI-MAE and CSI-CLIP. It generates the complex channel frequency response (CFR/CSI) format consumed by both model repositories.
This is a code release, not a data release. Generated tensors and third-party simulation assets are intentionally excluded.
Important
The committed configurations are runnable reference examples. They do not reconstruct the complete training data used for the released CSI-MAE or CSI-CLIP checkpoints. Do not claim exact training-data or bitwise reproduction from these examples.
| Pipeline | Reference configuration | Intended output |
|---|---|---|
| Sionna UMi | Sionna 1.1.0, 3GPP TR 38.901 UMi, 3.5 GHz | complex64 [N, 256, 256] |
| DeepMIMO | DeepMIMOv3 0.2.9, O1_60 example | complex64 [N, 256, 256] |
Each example contains a frozen JSON configuration, generator, full-output validator, and pipeline-specific documentation.
The generators write scenario directories below a local data root. The model
loaders consume cfr.npy; metadata.json records how it was generated.
DATA_ROOT/
├── scenario_a/
│ ├── cfr.npy
│ └── metadata.json
└── scenario_b/
├── cfr.npy
└── metadata.json
The shared tensor contract is:
cfr.npy: complex64 [sample, spatial_port, frequency]
shape: [N, 256, 256]
The spatial axis contains 4 UE ports × 64 BS ports. Port ordering and any
pipeline-specific side information are documented by the corresponding
generator.
The generators save physical complex CFR without model normalization.
- CSI-MAE converts CFR to real/imaginary channels and applies the fixed
statistics in its
dataset.py. This normalization is part of the published CSI-MAE weight contract. - CSI-CLIP applies its real/imaginary conversion, per-sample normalization, and CFR-to-CIR IFFT in the model repository.
Do not normalize the generated arrays in this repository; doing so would make the same files unsuitable for both model pipelines.
The reference environments were tested with Python 3.10. Use separate Python environments because the two dependency sets use different NumPy versions.
Sionna reference environment:
python -m venv .venv-sionna
source .venv-sionna/bin/activate
pip install -r requirements/sionna.txtDeepMIMO reference environment:
python -m venv .venv-deepmimo
source .venv-deepmimo/bin/activate
pip install -r requirements/deepmimo.txtDeepMIMO scenario archives must be downloaded separately from the official scenario catalog.
Validate both frozen configurations without importing either simulator:
python examples/csi_mae_sionna/generate.py \
--check-config --sets 0 --trajectories 0 --frame-limit 8
python examples/csi_clip_deepmimo/generate.py --check-configRun a small Sionna smoke generation:
python examples/csi_mae_sionna/generate.py \
--sets 0 \
--trajectories 0 \
--frame-limit 8 \
--output-root outputs/sionna-smoke
python examples/csi_mae_sionna/validate.py outputs/sionna-smokeFor DeepMIMO generation and full Sionna runs, follow the README inside the corresponding example directory.
- Reproducibility is numerical/semantic, not guaranteed bitwise across CPUs, GPUs, drivers, or simulator builds.
- The Sionna UMi example is model-compatible but is not asserted to match the distribution of the full CSI-MAE checkpoint training data.
- The O1_60 DeepMIMO entry is one runnable example, not the complete CSI-CLIP pre-training scenario collection described in the paper.
- Keep complete scenarios together when constructing train/validation/test partitions to avoid leakage between correlated users or frames.
- Simulator packages, 3GPP materials, ray-tracing scenarios, and derived data remain subject to their own terms.
We thank the NVIDIA Sionna and DeepMIMO teams and contributors for making wireless channel simulation software and scenarios available to the research community. See the example READMEs for simulator-specific citations.
Repository-owned code and documentation are released for research and other non-commercial use under the Creative Commons Attribution-NonCommercial 4.0 International license. Commercial use requires prior written authorization from the copyright holders.
This license does not relicense Sionna, TensorFlow, DeepMIMO, 3GPP materials, ray-tracing scenarios, or generated datasets. Users must follow all applicable upstream licenses and redistribution terms.