SDR Smart Modem


The SDR Smart Modem was designed to take advantage of the software designed radio capabilities. It is able to receive a signal from a USRP2, attempt to recognize the modulation scheme, and then demodulate the signal. On the trasnmitter end it can be used to modulate and transmit signals. To find this project, please visit the project GitHub.


This project utilizes machine learning classifiers to recognize the modulation schemes of captured signals. We generated data using GNURadio to collect representative sample vectors of signals with various modulation schemes. Then, we trained a convolutional neural network with this data. An example confusion matrix is shown below:

Performance of Modulation Scheme Recognition

The neural network can detect a signal modulated with a QAM scheme but has trouble determining the specific QAM scheme. Therefore, we attempt to use a support vector machine to accompany the neural network when it detects a signal modulated with QAM to find the specific scheme. This SVM uses the 2nd and 4th k-statistic of the QAM signal to improve recognition. This acts as a placeholder until extraction of cyclic cumulants is achieved. (Cyclic cumulants have been shown to have very good performance at QAM recognition)

To modulate and demodulate the signals, GNURadio scripts are used according to the desired modulation schemes.

Tools Used

USRP2: Software defined radio

Quadro K5000: Workstation GPU

GNURadio: SDR Toolkit

TensorFlow: Neural Network Library

Keras: High level Neural Network API

Scikit-learn: Machine Learning Library


Week One

Week Two

Week Three

Week Four

Week Five

Week Six

Week Seven

Week Eight

Week Nine

Week Ten

Week Eleven

Week Twelve


The Team

Avanish Mishra Brendan Bruce:


Last modified 3 years ago Last modified on Aug 11, 2017, 7:32:36 PM

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.