- Description
- Model structure
- Data in this project
- Files in this repo
- Results
- Dependencies for this project
- Running the code
This project implements two deep learning (DL) models on classifying the modulation formats of various radio frequency (RF) signals. The two DL models are the Artificial Neural Network (ANN) and Convolutional Neural Network (CNN), while the radio frequency signals are generated by GNU Radio software and consist of 11 modulation formats (8 digital and 3 analog) at varying signal-to-noise ratios (SNR). Conducting modulation classification on the RF signals, this work compares the performance of ANN and CNN models at different values of SNR. Plus, this project applies Principal Component Analysis (PCA) technique on both ANN and CNN models. The purpose is to observes the trade-off relationship between the classification accuracy and the length of training time
| ANN | CNN |
|---|---|
![]() |
![]() |
The original dataset in this project is publicly available on the DeepSig RF Datasets For Machine Learning. The dataset is called RADIOML 2016.10A and is generously offered by DeepSig Inc.
This GitHub repo contains the following folders or files
-
imgfolder contains the images of the training results, neural network structures, and test results -
modelfolder contains all the trained ANN and CNN models used in this project -
ANN_vs_CNN.ipynbis the code for comparing the performance of ANN and CNN on classifying the modulation schemes of the RF signals in dataset -
ANN_using_PCA.ipynbandCNN_using_PCA.ipynbare the code for applying PCA on the original dataset and observing the performance of ANN and CNN versus different values of dimension reduction -
ANN.ipynbandCNN.ipynbare the prototype of ANN and CNN models at the beginning stage of this project -
Project_Report.pdfis the report of this project, which contains specific technical details and in-depth discussion
| ANN | CNN |
|---|---|
![]() |
![]() |
This project requires the following python modules:
numpy matplotlib.pyplot pickle sklearn random tensorflow.keras seaborn timePlease make sure you have all the modules installed before running the code. For installing these modules, one can use command pip install or conda install
-
Click here to download the dataset for this project. It may require contact verification before downloading the dataset
-
Extract the dataset from the zipped folder into a folder named
data -
Download this repository to your local machine
git clone https://github.com/zhaoshengEE/Modulation_Classification.git-
Relocate the
datafolder into the repository -
Start your journey on this project




