All Projects → jcbooth2 → autoencoder_for_physical_layer

jcbooth2 / autoencoder_for_physical_layer

Licence: MIT license
This is my attempt to reproduce and extend the results in the paper "An Introduction to Deep Learning for the Physical Layer" by Tim O'Shea and Jakob Hoydis

Programming Languages

Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to autoencoder for physical layer

Unsupervised Deep Learning
Unsupervised (Self-Supervised) Clustering of Seismic Signals Using Deep Convolutional Autoencoders
Stars: ✭ 36 (-16.28%)
Mutual labels:  autoencoder
SESF-Fuse
SESF-Fuse: An Unsupervised Deep Model for Multi-Focus Image Fusion
Stars: ✭ 47 (+9.3%)
Mutual labels:  autoencoder
mae-scalable-vision-learners
A TensorFlow 2.x implementation of Masked Autoencoders Are Scalable Vision Learners
Stars: ✭ 54 (+25.58%)
Mutual labels:  autoencoder
GATE
The implementation of "Gated Attentive-Autoencoder for Content-Aware Recommendation"
Stars: ✭ 65 (+51.16%)
Mutual labels:  autoencoder
peax
Peax is a tool for interactive visual pattern search and exploration in epigenomic data based on unsupervised representation learning with autoencoders
Stars: ✭ 63 (+46.51%)
Mutual labels:  autoencoder
2D-and-3D-Deep-Autoencoder
Convolutional AutoEncoder application on MRI images
Stars: ✭ 57 (+32.56%)
Mutual labels:  autoencoder
dltf
Hands-on in-person workshop for Deep Learning with TensorFlow
Stars: ✭ 14 (-67.44%)
Mutual labels:  autoencoder
Image deionising auto encoder
Noise removal from images using Convolutional autoencoder
Stars: ✭ 34 (-20.93%)
Mutual labels:  autoencoder
Video-Compression-Net
A new approach to video compression by refining the shortcomings of conventional approach and substituting each traditional component with their neural network counterpart. Our proposed work consists of motion estimation, compression and compensation and residue compression, learned end-to-end to minimize the rate-distortion trade off. The whole…
Stars: ✭ 20 (-53.49%)
Mutual labels:  autoencoder
seq3
Source code for the NAACL 2019 paper "SEQ^3: Differentiable Sequence-to-Sequence-to-Sequence Autoencoder for Unsupervised Abstractive Sentence Compression"
Stars: ✭ 121 (+181.4%)
Mutual labels:  autoencoder
Dual-CNN-Models-for-Unsupervised-Monocular-Depth-Estimation
Dual CNN Models for Unsupervised Monocular Depth Estimation
Stars: ✭ 36 (-16.28%)
Mutual labels:  autoencoder
Continuous-Image-Autoencoder
Deep learning image autoencoder that not depends on image resolution
Stars: ✭ 20 (-53.49%)
Mutual labels:  autoencoder
imagenet-autoencoder
Autoencoder trained on ImageNet Using Torch 7
Stars: ✭ 18 (-58.14%)
Mutual labels:  autoencoder
probabilistic nlg
Tensorflow Implementation of Stochastic Wasserstein Autoencoder for Probabilistic Sentence Generation (NAACL 2019).
Stars: ✭ 28 (-34.88%)
Mutual labels:  autoencoder
maui
Multi-omics Autoencoder Integration: Deep learning-based heterogenous data analysis toolkit
Stars: ✭ 42 (-2.33%)
Mutual labels:  autoencoder
Face-Landmarking
Real time face landmarking using decision trees and NN autoencoders
Stars: ✭ 73 (+69.77%)
Mutual labels:  autoencoder
Reducing-the-Dimensionality-of-Data-with-Neural-Networks
Implementation of G. E. Hinton and R. R. Salakhutdinov's Reducing the Dimensionality of Data with Neural Networks (Tensorflow)
Stars: ✭ 34 (-20.93%)
Mutual labels:  autoencoder
VisualML
Interactive Visual Machine Learning Demos.
Stars: ✭ 104 (+141.86%)
Mutual labels:  autoencoder
catseye
Neural network library written in C and Javascript
Stars: ✭ 29 (-32.56%)
Mutual labels:  autoencoder
handson-ml
도서 "핸즈온 머신러닝"의 예제와 연습문제를 담은 주피터 노트북입니다.
Stars: ✭ 285 (+562.79%)
Mutual labels:  autoencoder

Overview

This is my attempt to reproduce and extend the results in the paper "An Introduction to Deep Learning for the Physical Layer" by Tim O'Shea and Jakob Hoydis. Available at https://doi.org/10.1109/TCCN.2017.2758370

There is also and attempt to use the autoencoder for simultaneous information and power transfer, based on the paper "A Learning Approach to Wireless Information and Power Transfer Signal And System Design" by Morteza Varasteh, Enrico Piovano, and Bruno Clerckx. Available at https://doi.org/10.1109/ICASSP.2019.8682485

Another very useful paper on this topic is "Deep Learning-Based Communication Over the Air" By Sebastian Dorner, Sebastian Cammerer, Jakob Hoydis, and Stephan ten Brink. It covers more complicated implementations for more realistic channels.

The implementation uses Keras with a Tensorflow backend on Jupyter Notebook. The paper from O'Shea and Hoydis covers multiple applications for using an autoencoder to replace the physical layer in a wireless communication system. I have searched and only found code for the most basic example, which implements a Gaussian Channel, but for the three more complex applications there is nothing. Therefore I am reproducing the results myself. Currently I have only reproduced the results for the Gaussian Channel. The end goal for this is to implement the trained encoder and decoder in real-time using GNU Radio and the gr-tflite module (which I am planning on writing).

Autoencoder for Gaussian Channel

This creates an autoencoder which finds the optimal modulating technique for robust communication over a white gaussian noise channel (the simplest of channels). The Block Error Rate of the communication through varying Signal to Noise Ratios is analyzed by varying the magnitude of added noise. The trained autoencoder successfully transmits the signal with performance comparable to other

Autoencoder for Reyleigh Channel

This Attempts to implement an autencoder with similar structure the the previous Gaussian Channel to a Reyleigh Channel. Currently, only a single tap Reyleigh Channel has been implemented, and is currently not effective.

Autoencoder for Reyleigh Channel with RTN

This is an improvement to the decoder portion of the autoencoder by including a RTN which predicts the channel taps and then performs a convolution using the recieved signal and predicted channel taps. In the paper "An Introduction to Deep Learning for the Physical Layer" this technique significantly improved the Block Error Rate of the system, but I have been unable to reproduce these results.

Autoencoder for MIMO Communication with a Gaussian Channel

This attempts to create two autoencoders that reject the other, allowing a communication between two systems. Here the output of one encoder is added to the output of the other encoder with white gaussian noise and is then recieved by the corresponding decoder, and vice versa. Interestingly enough, without a special adaptive loss function the combined system tends to highly optimize one of the channels at the cost of the other channel, where one channel will recive small BER and the other will have large BER. To overcome this I have implemented a custom loss function that weights the loss of each seperate autoencoder according to the accuracy of the previous batch. Currently this is not yet effective, and requires more work.

SISO for Simultaneous Info and Power Transfer

This is another interesting application of autoencoders to the physical layer. This attempt only uses a Gaussian Channel, and I have run into problems because the loss function used in the paper incorporates a modified bessel function of the first kind and zero order. Incorporating only the bessel function causes the loss to return as NaN because the bessel function returns extremely large numbers. Currently the code implements the natural log of the bessel function to avoid this, but I must do more reading to understand the purpose of this bessel function, because currently my calculations of recieved power do not match the recieved power presented in the paper.

License

This code is licensed under the MIT Open Source License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].