YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Radio Modulation Classifier
CNN-based automatic modulation classification (AMC) for radio signals. Classifies common digital modulations (e.g. BPSK, QPSK, 8PSK, 16QAM) from I/Q samples.
Motivation
Automatic modulation recognition is used in spectrum monitoring, cognitive radio, and signal intelligence. Deep learning can learn discriminative features from raw I/Q data without hand-crafted feature design.
Dataset
- You can use the RadioML 2018.01A dataset (available from Deepsig) or similar public AMC datasets.
- Alternatively, run
generate_synthetic_data.pyto create a small synthetic dataset for quick experiments. - Data format: (N, 2, L) โ N samples, 2 channels (I, Q), L time steps per sample.
Project structure
model.pyโ ResNet-style 1D CNN.train.pyโ training loop; uses synthetic data if nothing is in./data.generate_synthetic_data.pyโ writes synthetic I/Q to./data/synthetic_iq.pt.
Model
- Small ResNet-style CNN that takes (2, L) I/Q input and outputs class logits.
- Implemented in
model.py; training script intrain.py.
Usage
pip install -r requirements.txt
python train.py
Training expects data in ./data (or set DATA_DIR). For RadioML, place the .hdf5 or processed files in that directory and adjust paths in train.py if needed.
Limitations / future work
- Trained and evaluated on a single dataset; performance may drop under different SNR or channel conditions.
- Could be extended with attention or 1D variants for longer sequences.
Author
Alireza Aminzadeh
- Email: alireza.aminzadeh@hotmail.com
- Hugging Face: syeedalireza
- LinkedIn: alirezaaminzadeh
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐ Ask for provider support