/AutoEncoder-Based-Communication-System

Tensorflow Implementation and result of Auto-encoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

Primary LanguageJupyter Notebook

AutoEncoder-Based-Communication-System

Implementation and result of AutoEncoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

This Repo is effictively implementation of AutoEncoder based Communication System From Research Paper "An Introduction to Deep Learning for the Physical Layer" written by Tim O'Shea and Jakob Hoydis.During My wireless Communication Lab Course,I worked on this research Paper and re-generated result of this research Paper. Idea of Deep learning Based Communication System is new and there is many advantages of Deep learning based Communication.This paper gives complete different apporach than many other paper and tries to introduce deep learning in physical layer.

Abstract of Research Paper

We present and discuss several novel applications of deep learning for the physical layer. By interpreting a communications system as an autoencoder, we develop a fundamental new way to think about communications system design as an end-to-end reconstruction task that seeks to jointly optimize transmitter and receiver components in a single process. We show how this idea can be extended to networks of multiple transmitters and receivers and present the concept of radio transformer networks as a means to incorporate expert domain knowledge in the machine learning model. Lastly, we demonstrate the application of convolutional neural networks on raw IQ samples for modulation classification which achieves competitive accuracy with respect to traditional schemes relying on expert features. This paper is concluded with a discussion of open challenges and areas for future investigation.

From "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/ written by Tim O'Shea and Jakob Hoydis

Requirements

  • Tensorflow
  • Keras
  • Numpy
  • Matplotlib

Note

Given Jupyter-Notebook file is dynamic to train any given (n,k) autoencodeer but for getting optimal result one has to manually tweak learning rate and epochs. Plots are generated by matlab script which for now i am not providing it.Anyone can plot result in matlab by training autoencoder and copy-pasting BER array and ploting it into matlab. All re-generated result below are generated with autoencoder_dynamic.ipynb file.

Result

Re-generated Result Research Paper
BER Perfomance of (7,4) AutoEncoder Research Paper Result-1
BER Perfomance of R=1 AutoEncoders Research Paper Result-2

Constellation diagram

(2,2) AutoEncoder's Constellation diagram

Following Constellation diagram are learned by Autoencoder after training it. (2,2) Autoencoder constellation diagram

(2,4) AutoEncoder Constellation diagram

(2,4) Autoencoder constellation diagram