Skip to content

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.

Notifications You must be signed in to change notification settings

avnisinngh/Recognition-and-Detection-of-Modulated-Waveforms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Modulation Recognition and Detection System

πŸ“Œ Overview

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.

πŸš€ Features

βœ” 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.

πŸ› οΈ Technologies Used

  • Python
  • NumPy – Signal processing and numerical computations.
  • Matplotlib & Seaborn – Data visualization.
  • Scikit-learn – Machine learning model training.
  • Joblib – Model saving and loading.

πŸ“‚ Project Structure

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

πŸ“Œ Project Description

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.

πŸ“œ Files and Directories

  • 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.

πŸš€ How to Run

  1. Generate modulation signals
    python modulation_signal_generator.py

πŸ”§ Installation

git clone https://github.com/yourusername/Modulation_Recognition.git cd Modulation_Recognition pip install -r requirements.txt

🎯 Usage

  1. Generate Modulation Signals bash Copy Edit python modulation_signal_generator.py πŸ‘‰ Saves QPSK, 8PSK, 16APSK, 32APSK, and 64APSK signals as text files.

  2. 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.

πŸ“Š Model Performance

The trained RandomForestClassifier achieves an accuracy of 80% on test data.

πŸ“œ License

This project is open-source and licensed under the MIT License.

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages