Coder Social home page Coder Social logo

zhongyuanzhao / dl_ofdm Goto Github PK

View Code? Open in Web Editor NEW
120.0 10.0 74.0 82.02 MB

Deep-Waveform: A Learned OFDM Receiver Based on Deep Complex-valued Convolutional Networks

Home Page: https://arxiv.org/abs/1810.07181

License: MIT License

MATLAB 18.02% Python 81.98%
wireless-communication radio-frequency-machine-learning machine-learning

dl_ofdm's Introduction

Paper

Zhongyuan Zhao, Mehmet C. Vuran, Fujuan Guo, and Stephen Scott, Deep-Waveform: A Learned OFDM Receiver Based on Deep Complex-valued Convolutional Networks, in IEEE Journal on Selected Areas in Communications, vol. 39, no. 8, pp. 2407-2420, Aug. 2021, doi: 10.1109/JSAC.2021.3087241.

@ARTICLE{zhao2021deepwaveform,
  author={Zhao, Zhongyuan and Vuran, Mehmet Can and Guo, Fujuan and Scott, Stephen D.},
  journal={IEEE Journal on Selected Areas in Communications}, 
  title={Deep-Waveform: A Learned OFDM Receiver Based on Deep Complex-Valued Convolutional Networks}, 
  year={2021},
  volume={39},
  number={8},
  pages={2407-2420},
  doi={10.1109/JSAC.2021.3087241},
}

Pre-Print

The majority of this work was completed during the Ph.D. studies of the author Zhongyuan Zhao at UNL. This work was supported by the NSF under Grant CNS-1731833.

UNL-CPN-Lab: website, github

Abstract

The (inverse) discrete Fourier transform (DFT/IDFT) is often perceived as essential to orthogonal frequency-division multiplexing (OFDM) systems. In this paper, a deep complex-valued convolutional network (DCCN) is developed to recover bits from time-domain OFDM signals without relying on any explicit DFT/IDFT. The DCCN can exploit the cyclic prefix (CP) of OFDM waveform for increased SNR by replacing DFT with a learned linear transform, and has the advantage of combining CP-exploitation, channel estimation, and intersymbol interference (ISI) mitigation, with a complexity of \mathcal{O}(N^2). Numerical tests show that the DCCN receiver can outperform the legacy channel estimators based on ideal and approximate linear minimum mean square error (LMMSE) estimation and a conventional CP-enhanced technique in Rayleigh fading channels with various delay spreads and mobility. The proposed approach benefits from the expressive nature of complex-valued neural networks, which, however, currently lack support from popular deep learning platforms. In response, guidelines of exact and approximate implementations of a complex-valued convolutional layer are provided for the design and analysis of convolutional networks for wireless PHY. Furthermore, a suite of novel training techniques are developed to improve the convergence and generalizability of the trained model in fading channels. This work demonstrates the capability of deep neural networks in processing OFDM waveforms and the results suggest that the FFT processor in OFDM receivers can be replaced by a hardware AI accelerator.

About this code

Source code for Deep Learning-Based OFDM Receiver.

  • Modulation: BPSK, QPSK, 8-QAM, 16-QAM, of Gray mapping.
  • SNR: -10:1:29 dB

Software platform

  • Matlab R2017b, R2018a (replace rayleighchan in the code for newer release)
  • Python3 compatiable
  • TensorFlow 1.x: tensorflow-gpu==1.15, docker tensorflow image 1.15.5-gpu-jupyter is highly recommended if you just want a quick tryout. If your GPU is not supported by that docker image, checkout latest docker images with tag [year.month]-tf1-py3 on Nvidia NGC.
  • Note: newer versions of Matlab and Tensorflow are possible, but require quite some work on the code (read here).

Contents of directories

.
├── dev # latest working source code
├── test_v1 # archived for old version https://arxiv.org/abs/1810.07181v3
├── README.md 
└── LICENSE

Usage

  1. Run script_rayleigh in Matlab for benchmarks
  2. Run python3 run_local_ofdm.py --awgn=True in terminal for training and testing results.

For newer versions of Matlab and Tensorflow

Matlab: rayleighchan was removed and replaced by 'comm.RayleighChannel' from later versions of matlab. You may uncomment the lines 202-210, lines 293-300 in /dev/m/OFDM_Benchmark_dev.m to use the newer function. However, you need either replace parfor to for in that code to directly use the newer function, or change the code to initialize multiple identical objects of comm.RayleighChannel in lines 202-210 and use different objects (lines 293-300) in each parallel loop to enable the parfor.

Tensorflow: I use tf.contrib.graph_editor to enable the transfer learning scheme described in the paper. However, in Tensorflow 2, the tf.contrib is removed and graph_editor no longer exists. If you want to use TF2 rather than TF1, you will need to re-write the transfer learning (lines 264-365 in ofdmreceiver_np_mp.py) with whatever equivalent new methods in TF 2.

Update

  1. A few missing CSV files are uploaded in commit 26ea69. These CSV files are the FIR filter coefficients for the Rayleigh channels used in the evaluation. They are necessary for experiments in fading channel. These CSV files are computed according to equation (2) in the paper, based on the channel tapes configured here. They can also be found as h.AlphaMatrix in OFDM_Benchmark_dev.m after stepping over line 283 (change parfor to for in line 282 in order to step into that block of code in Matlab).

dl_ofdm's People

Contributors

zhongyuanzhao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dl_ofdm's Issues

Dataset for the model

Hello team,

I am a novice in the field and I am looking for a project in the field of Machine Learning in wireless communication.
I have no idea if my query is appropriate or not for the paper and the code, but I was looking for the dataset that the model can be trained on.

Kindly let me know. I would really appreciate any kind of guidance on this.

Thank You,
Rahul

Some bugs

mv: cannot stat 'Test_DCCN_OFDM_Dense3_1mod_snr5_cpFalse_Equalizer0_mixRayleigh*.csv': No such file or directory

ofdm equalizer

hi,
Do you have the code for ofdm equalizer?

Thanks,
Nikil

colab file

Can you please share its google colab link to run this code..

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.