SignalSight is an end-to-end intelligent signal classification system built to identify and interpret digital modulation types using deep learning and real-time visualization. It integrates a trained hierarchical model with a user-friendly Flask web interface that allows anyone to upload wireless signal data and view classification results with interpretability.
It automates complex modulation recognition by converting 1D I/Q signals into 2D spectrograms and passing them through a multi-stage classifier pipeline. The system distinguishes between pure, mixed, and jammed/spoofed signals while visualizing critical spectrogram regions that influenced each decision.
- ✨ Key Features
- 🧩 Tech Stack
- 🧠 Trained Models
- 🚀 How to Run the Project
- 📈 Project Architecture
- 🏭 Industrial Applications
- 🌐 User Interface Highlights
- 🎯 Converts 1D signal arrays into 2D spectrograms for model inference
- 🔁 Hierarchical classification pipeline (pure, mixed, and spoofed signals)
- 🧠 Specialized CNN trained for various SNR levels
- 🖥️ Flask-based web UI for easy real-time testing and visualization
- 🔍 Interpretable AI via Grad-CAM — highlights decisive spectrogram regions
- ⚙️ Supports classification across 24 digital modulation types (QAM, PSK, AM, FM, etc.)
| Component | Technology |
|---|---|
| Programming | Python |
| Backend Framework | Flask |
| Deep Learning | PyTorch |
| Signal Processing | Matplotlib |
| Visualization | Grad-CAM |
| Dataset | RadioML 2018.01A |
| UI Frontend | HTML/CSS |
Pre-trained .pth model files located in checkpoints/:
best_pure_cnn_model.pth– Pure signal classifierbest_pure_mixed_model.pth– Mixed signal classifierbest_qam_specialist_model.pth– QAM modulation specialistbest_phase_specialist_model.pth– Phase modulation specialistbest_analog_specialist_model.pth– Analog modulation specialistbest_jamming_classifier_model.pth– Spoofing and jamming detectorbest_router_model.pth– SNR routing model
# Clone the repository
git clone https://github.com/your-username/Signal-Sight.git
cd Signal-Sight
# Install dependencies
pip install -r requirements.txt
# Start the Flask server
python app.py
Ensure all .pth model files are present inside the checkpoints/ directory:
best_pure_cnn_model.pthbest_pure_mixed_model.pthbest_qam_specialist_model.pthbest_phase_specialist_model.pthbest_analog_specialist_model.pthbest_jamming_classifier_model.pthbest_router_model.pth
Open your browser and go to:
http://127.0.0.1:5500/Signal-Sight/templates/index.html
- Upload your I/Q signal data in JSON format.
- Click Classify Signal.
- View the predicted modulation type plus the Grad-CAM heatmap for interpretability.

