GithubHelp home page GithubHelp logo

alexanderbin123 / rf-signal-model Goto Github PK

View Code? Open in Web Editor NEW

This project forked from robinchenrichmond/rf-signal-model

1.0 0.0 0.0 75.98 MB

CNN models to solve Automatic Modulation Classification problem.

Python 48.59% Jupyter Notebook 51.41%

rf-signal-model's Introduction

RF-Signal-Model

We are trying to build different machine learning models to solve the Signal Modulation Classification problem.

With the dataset from RadioML, we work from 2 approaches to improve the classification performance for the dataset itself and its subset:

Improved CNN model for RadioML dataset

For this model, we use a GTX-980Ti GPU to speed up the execution time.

With our new architecture, the CNN model has the total data's Validation Accuracy improved to 56.04% from 49.49%, normal data's Validation Accuracy improved to 82.21% from 70.45%, with the running time for each epoch decreased to 13s from 15s(With the early stopping mechanism, it usually takes 40-60 epochs to train the model).

Here's the summary of model:

Layer (type)                   Output Shape              Param #   
=================================================================
reshape_1 (Reshape)            (None, 2, 128, 1)         0         
_________________________________________________________________
zero_padding2d_1 (ZeroPadding) (None, 2, 132, 1)         0         
_________________________________________________________________
conv2d_1 (Conv2D)              (None, 2, 129, 64)        320       
_________________________________________________________________
dropout_1 (Dropout)            (None, 2, 129, 64)        0         
_________________________________________________________________
zero_padding2d_2 (ZeroPadding) (None, 2, 133, 64)        0         
_________________________________________________________________
conv2d_2 (Conv2D)              (None, 1, 130, 64)        32832     
_________________________________________________________________
dropout_2 (Dropout)            (None, 1, 130, 64)        0         
_________________________________________________________________
conv2d_3 (Conv2D)              (None, 1, 123, 128)       65664     
_________________________________________________________________
dropout_3 (Dropout)            (None, 1, 123, 128)       0         
_________________________________________________________________
conv2d_4 (Conv2D)              (None, 1, 116, 128)       131200    
_________________________________________________________________
dropout_4 (Dropout)            (None, 1, 116, 128)       0         
_________________________________________________________________
flatten_1 (Flatten)            (None, 14848)             0         
_________________________________________________________________
dense1 (Dense)                 (None, 256)               3801344   
_________________________________________________________________
dropout_5 (Dropout)            (None, 256)               0         
_________________________________________________________________
dense2 (Dense)                 (None, 11)                2827      
_________________________________________________________________
reshape_2 (Reshape)            (None, 11)                0         
=================================================================
Total params: 4,034,187
Trainable params: 4,034,187
Non-trainable params: 0

A confusion matrix comparison between the original model(left) and the new model(right):

Spectrogram-CNN for RadioML subset

In our second approach, we converted the given data set into spectrogram images of size 41px x 108px and ran CNN models on the image data set. Sice this is a highly time and memory intensive process, we chose a smaller subets of the data. The subsets chosen are:

  1. Modulations - BPSK, QAM16, AM-DSB, WBFM with SNR ranging from +8 to +18 dB with steps of 2
  2. Modulations - BPSK, QAM16, AM-DSB, WBFM with SNR ranging from ๔€€€10 to +8 dB with steps of 2
  3. Modulations - BPSK, QAM16, AM-DSB, WBFM, AB-SSB, QPSK with SNR ranging from 0 to +18 dB with steps of 2

The results of the model are shown below:

rf-signal-model's People

Contributors

haripriya-b avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.