Changes between Version 12 and Version 13 of Other/Summer/2017/SpectrumClassification
- Timestamp:
- Aug 10, 2017, 6:31:32 PM (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Other/Summer/2017/SpectrumClassification
v12 v13 1 1 [[TOC(Other/Summer/2017*, depth=2)]] 2 2 3 = S pectrum Classification Application=3 = SDR Smart Modem = 4 4 5 5 == Introduction == 6 6 7 The goal of this project is to create an application that will run on a receiver node and processes signals. It will take the received signal as an input, analyze the components and details of the signal, and classify the signal based on the analysis. This will require machine learning techniques to perform the classification. 8 9 The program will receive signals, determine what modulation scheme was used to modulate the signal, and then demodulate the signal with the found scheme. This can also be expanded to creating a modem that will also choose the best modulation scheme to modulate a signal depending on the SNR of the given range of wireless frequencies. 7 The Smart Modem is designed to receive any signal from a USRP2, recognize the modulation scheme, and demodulate the signal. It also can be given an analog or digital signal, modulate it using a given scheme, and send it to a USRP2. To find this project, please visit [https://github.com/Avanish14/SmartModem/ the project GitHub.] 10 8 11 9 == Background == 12 10 13 [https://docs.google.com/presentation/d/1JEqRF-rsv4_6ZWyGA7lsgeIpxCud4YGXjgjtWhPPOvs/edit?usp=sharing Summary of Project] 11 This project utilizes machine learning algorithms to recognize the modulation schemes of incoming signals. We first generated data using GNURadio to collect representative sample vectors of signals modulated with various modulation schemes. Then, we trained a convolutional neural network with this data. The results of the training are shown below: 14 12 15 To recognize the modulation scheme of a received signal, we will train a classifier with a synthetic dataset that contains signals modulated with varying modulation schemes with different parameters (SNR, different noise distributions). Once trained, it will be run on an ORBIT node and tested on signals transmitted/received from SDRs. 13 {{{ 14 #!html 16 15 17 Once the modulation scheme classification is done we will implement a modem system using the technology. 16 <center> 17 <table cellpadding=1> 18 <tr> 19 <td><center><img src="http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2017/SpectrumClassification/matrix.png" height=300></center></td> 20 </tr> 21 <tr> 22 <td align='center'>Performance of Modulation Scheme Recognition</td> 23 </tr> 24 </table> 18 25 26 27 28 <br><br> 29 30 </center> 31 }}} 32 33 The neural network can always detect a signal modulated with a QAM scheme but has trouble determining the specific QAM scheme. Therefore, we 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 determines [https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.kstat.html the 2nd and 4th k-statistic] of the QAM signal to better determine the scheme. 34 35 36 To modulate and demodulate the signals, GNURadio scripts are used according to the desired modulation schemes. 19 37 == Tools Used == 20 38 21 TensorFlow: Neural network library 39 USRP2: Software defined radio 22 40 23 Scikit-learn: Machine learning library 41 Quadro K5000: high-end GPU 24 42 25 [https://radioml.com/datasets/radioml-2016-04-dataset/ RadioML Dataset Signal Training Data] 43 GNURadio: SDR Toolkit 26 44 27 GNURadio: Software defined radio toolkit 45 TensorFlow: Neural Network Library 28 46 29 CUDA: NVIDIA Parallel Processing framework 47 Keras: High level Neural Network API 30 48 31 Anaconda: Python powered data science focused platform 49 Scikit-learn: Machine Learning Library 32 50 33 51 == Presentations == … … 55 73 [https://docs.google.com/presentation/d/153AQ9sh_Zh7_buXHPbwW-KhlsyJCBH7v4yLrktg5DSc/edit?usp=sharing Week Eleven] 56 74 75 [https://docs.google.com/presentation/d/1oipH2wTvMcrijJQ4hq9K-w2Ip66EchBDkdOGUokFKd4/edit?usp=sharing Week Twelve] 76 77 [https://docs.google.com/presentation/d/15YdWQmidhWBq1kMlEhYAmT0OID3ySTuEabgHzJ2I5Eg/edit?usp=sharing Poster] 78 57 79 == The Team == 58 80 59 Avanish Mishra60 Brendan Bruce61 81 82 {{{ 83 #!html 84 <center> 85 <table cellpadding=10> 86 <tr> 87 <td><center><img src="http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2017/SpectrumClassification/avanish.png" height=300 hspace="100"></center></td> 88 <td><center><img src="http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2017/SpectrumClassification/brendan.png" height=300 hspace="100"></center></td> 89 </tr> 90 <tr> 91 <td align='center'>Avanish Mishra</td> 92 <td align='center'>Brendan Bruce</td> 93 </tr> 94 </table> 95 96 97 <br><br> 98 99 }}} 100