Case study

SpectrumSense AI

RF signal analysis system: I/Q → spectrogram → CNN modulation classifier + autoencoder anomaly detector with a Streamlit UI.

Sep 2024 – Oct 2024
Signal ProcessingDeep LearningProduct

Overview

SpectrumSense AI analyzes RF I/Q samples by converting them into spectrograms and running two deep learning models: a CNN for multi-class modulation classification and a convolutional autoencoder for anomaly detection.

Problem

RF environments are noisy and dynamic. Distinguishing modulation schemes and detecting anomalies/interference is hard with brittle heuristics, especially across varying SNR conditions.

Solution

I built a spectrogram-based pipeline with two dedicated models and wrapped it in a Streamlit app for interactive upload, visualization, and inference.

Architecture

  • I/Q input (.npy) → STFT spectrogram generation → log/normalization preprocessing
  • CNN classifier → modulation probabilities across supported classes
  • Autoencoder → reconstruction loss; anomaly flagged if loss > threshold (e.g., 0.05)
  • Streamlit UI → upload + show spectrogram + predictions + anomaly score

Tech stack

TensorFlow/Keras for model training and inferenceNumPy + SciPy for signal processing (STFT) and preprocessingStreamlit for the interactive UIDataset: RadioML 2016.10a (11 modulation types, SNR -20dB to +18dB)

Key engineering decisions

  • Spectrogram representation for visual debuggability and CNN compatibility.
  • Separate anomaly detector (autoencoder) to avoid conflating rare events with class labels.
  • Simple thresholding on reconstruction loss for transparent anomaly logic.

Results

  • Trained on RadioML 2016.10a (11 modulation classes, 220,000+ samples across SNR levels).
  • Implemented anomaly detection via reconstruction loss with a configurable threshold (default 0.05).

Links

What I’d improve next

  • Add SDR integration for live streaming input.
  • Quantize models for edge deployment and faster inference.
  • Add calibration/uncertainty to make predictions more trustworthy at low SNR.