Python based tool that generates synthetic RF IQ recordings (.sigmf-data
+ .sigmf-meta
) with optional steganographic payloads embedded via LSB.
It also produces spectrogram PNGs and a manifest (metadata.csv
+ metadata.jsonl.gz
).
- Modulations: BPSK, QPSK, GFSK, 16-QAM (Gray), 8-PSK
- Channel Impairments: AWGN, phase noise, IQ imbalance, Rician / Nakagami fading, frequency & phase offsets
- Steganography: LSB embedding into the I‑component
- Outputs: SigMF files, spectrogram images, CSV & gzipped JSONL manifests
- Configurable: via
config.yaml
or interactive menu
Each clip folder contains:
clip_<idx>_<uuid>.sigmf-data
clip_<idx>_<uuid>.sigmf-meta
clip_<idx>_<uuid>.png
(spectrogram)
The manifest lists:
- Dataset name, sample rate
- Modulation, impairment parameters, SNR, frequency offset
- Stego method used
- File name, generation time, clip duration
- Machine Learning: train modulation classification or stego detection models
- Signal Processing: benchmark algorithms under controlled impairments
- Security Research: study steganography in RF domains
- Clone repo:
git clone https://github.com/tegridydev/rf-stego-dataset.git
- Install dependencies:
pip install -r requirements.txt
- Edit
config.yaml
or run:python rf-gen.py
and choose Show config / Change param - Generate data: select Generate all clips
~~Enjoy <3