[[TOC(Other/Summer/2017*, depth=2)]] = SDR Smart Modem = == Introduction == The Smart Modem is designed to receive a signal from a USRP2, attempt to recognize the modulation scheme, and then demodulate the signal. It also can be used to modulate and transmit signals. To find this project, please visit [https://github.com/Avanish14/SmartModem/ the project GitHub.] == Background == 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: {{{ #!html
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 [https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.kstat.html 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 == Presentations == [https://docs.google.com/presentation/d/1m9rotuVr4hpLpY10MMBGhZTetcKyzV9BF0v6NnRmkjc/edit?usp=sharing Week One] [https://docs.google.com/presentation/d/1nEzAFW227iqZQlQSqCR4I4HzhQwYi-DRduJD6i7ntRQ/edit?usp=sharing Week Two] [https://docs.google.com/presentation/d/1UGR-wCjR8GUwFSox5ljbt6E6zZkFVFF-U1Cy-Sc3nkg/edit?usp=sharing Week Three] [https://docs.google.com/presentation/d/1XyAgdPgiC1NR1tk8_XtX3J916pG3mhQxLxu84l584Xg/edit?usp=sharing Week Four] [https://docs.google.com/presentation/d/1jRdCbB2hDMHOXRkbJRgn2cik0OHAayGbLOnudCcP03A/edit?usp=sharing Week Five] [https://docs.google.com/presentation/d/1eGAuI4eXQHe116WpSlT5IU-Q9iIYOJtsy2s4VZc1iME/edit?usp=sharing Week Six] [https://docs.google.com/presentation/d/1qhJ73yLCRhwp5UXDOw8PaRTNP30N4PJHPC5J8sUzrOQ/edit?usp=sharing Week Seven] [https://docs.google.com/presentation/d/1ZHFW3yFiQhlixTc8fYEmlTr-PkClrOe5GyDPc-MS-hI/edit?usp=sharing Week Eight] [https://docs.google.com/presentation/d/1Y9pTFxY1WNoe7iWtB68ckklxPV7BF_02LsgW08adK0c/edit?usp=sharing Week Nine] [https://docs.google.com/presentation/d/1B56JoLX-Ohv6TZ8DT6Tmnnq8Jk4nVpYodjn6MZw_PhA/edit?usp=sharing Week Ten] [https://docs.google.com/presentation/d/153AQ9sh_Zh7_buXHPbwW-KhlsyJCBH7v4yLrktg5DSc/edit?usp=sharing Week Eleven] [https://docs.google.com/presentation/d/1oipH2wTvMcrijJQ4hq9K-w2Ip66EchBDkdOGUokFKd4/edit?usp=sharing Week Twelve] [https://docs.google.com/presentation/d/15YdWQmidhWBq1kMlEhYAmT0OID3ySTuEabgHzJ2I5Eg/edit?usp=sharing Poster] == The Team == {{{ #!html
Avanish Mishra Brendan Bruce: bbruce.ece@gmail.com


}}} == References == https://github.com/radioML/dataset https://github.com/gnuradio/gnuradio https://github.com/tensorflow/tensorflow https://pdfs.semanticscholar.org/7ff6/8ad5af36a8818886e0f562f0599990fb9111.pdf