This project focuses on automatic recognition and classification of modulated waveforms using machine learning. It generates, processes, and classifies signals like QPSK, 8PSK, 16APSK, 32APSK, and 64APSK using a RandomForestClassifier with feature extraction and visualization.
β Automatic Modulation Recognition β Detects modulation type from input signals.
β Machine Learning Model β Uses RandomForestClassifier to classify waveforms.
β Feature Extraction β Extracts statistical and frequency-domain features from signals.
β Signal Visualization β Includes constellation diagrams, scatter plots, and confusion matrices.
β Interactive CLI β Allows users to train models, test signals, and view results.
- Python
- NumPy β Signal processing and numerical computations.
- Matplotlib & Seaborn β Data visualization.
- Scikit-learn β Machine learning model training.
- Joblib β Model saving and loading.
Modulation_Recognition/ βββ π modulation_signal_generator.py # Generates modulation signals and saves them to files βββ π modulation_recognition.py # Trains ML model & classifies signals βββ π sample_inputs/ # Stores generated signals βββ π modulation_model.pkl # Trained model file βββ π README.md # Documentation
This project focuses on Automatic Modulation Recognition (AMR) for DVB-S2X waveforms using machine learning.
It includes signal generation, training a classification model, and recognizing modulation types.
- modulation_signal_generator.py β Generates various modulation signals and stores them as files in
sample_inputs/. - modulation_recognition.py β Trains a machine learning model for modulation recognition and classifies signals.
- sample_inputs/ β Stores generated modulation signal files.
- modulation_model.pkl β The trained machine learning model for modulation classification.
- README.md β Project documentation.
- Generate modulation signals
python modulation_signal_generator.py
git clone https://github.com/yourusername/Modulation_Recognition.git cd Modulation_Recognition pip install -r requirements.txt
-
Generate Modulation Signals bash Copy Edit python modulation_signal_generator.py π Saves QPSK, 8PSK, 16APSK, 32APSK, and 64APSK signals as text files.
-
Train & Test the Model bash Copy Edit python modulation_recognition.py Option 1: Train a new model with custom sample size. Option 2: Test a new waveform signal file and get predictions.
The trained RandomForestClassifier achieves an accuracy of 80% on test data.
This project is open-source and licensed under the MIT License.