This project demonstrates multi-class modulation classification of radio signals using a VGG16-based deep learning model. The signals were captured using the ADALM-PLUTO SDR, with a Vector Signal Generator generating various modulation types at 915 MHz. Signals were preprocessed in Python, utilizing features such as constellation diagrams for training the model.
This folder contains 6 subfolders (for different modulation types: 2ASK, 2FSK, 4FSK, 8FSK, BPSK, QAM16). Each subfolder contains 5000 constellation images of size 224x224
.
This folder contains the following results from the trained model:
- Confusion Matrix: Displays the confusion matrix for testing results.
- Precision and Recall Scores: Provides precision and recall metrics for model performance.
- Training Progress: Tracks data from the model training process.
- Test Accuracy: Contains accuracy values for testing the model with the test dataset.
-
plotConstellationBins_of_IQ_CSV_Files.py
Generates constellation diagrams from CSV files containing IQ values (telemetry data from the RFD900). -
plotConstellationBins_of_VSG_Data.py
Generates constellation diagrams from.complex16s
files captured using a Vector Signal Generator. -
RF_MODULATION_CLASSIFICATION_MULTICLASS.ipynb
This Jupyter Notebook contains the code for defining the VGG16 model and testing it for multi-class modulation classification.
VGG16_Modulation_Multiclass_Classification.h5
The trained model file. It can be loaded anytime using theload_model
function for testing and evaluation.
-
CapturedSignalsFromVsgForModulationClassification
Contains.complex16s
files, which are actual signals captured from the VSG for different modulation types. These signals were used to generate constellation diagrams.- Samples Captured: 15M
- Sampling Frequency (fs): 2 MHz
- Carrier Frequency: 1 GHz
Dataset Location: Click Here
-
rfd900_fsk_csv_files.zip
Contains actual telemetry signals (2FSK signals) from the RFD900, used for generating constellation diagrams and training the model. -
CapturedSignalsFromVsgForModulationClassification
Contains signal data used for generating constellation diagrams and model training.
- Preprocess Signals: Use
plotConstellationBins_of_IQ_CSV_Files.py
orplotConstellationBins_of_VSG_Data.py
to generate constellation diagrams. - Train the Model: Use the notebook
RF_MODULATION_CLASSIFICATION_MULTICLASS.ipynb
to define, train, and evaluate the VGG16-based model. - Evaluate Results: The
Outcomes
folder contains evaluation metrics such as confusion matrix, precision-recall scores, and test accuracy.