GatedNet: Neural Network Decoding for LDPC over Impulsive Noise Channels

A novel neural network decoder (NND) for low-density parity-check (LDPC) decoding over impulsive noise channels.

System Model

Use Symmetric alpha-stable to model the impulsive noise. The structure of the system model is depicted as follow:

The structure of the system model.

  • The neurons are optimized with control gates, which shows much greater performance and robustness.

Shematics of a gated neuron and a normal neuron.

  • A partially connected layer (PCL) with specific connection is proposed to decrease the computation complexity and it brings an extra performance benefit.

Example structure of a GatedNet with PCL

Performance Result

  • Simulation results show the proposed GatedNet decoder can improve the traditional decoding method - belief propagation (BP) at least 1 dB in different degrees of impulsive noise. The closer that parameter alpha is to 1, the stronger weaker impulsive noise is. Results show in Result_Report.ipynb.

Comparison between GatedNet decoder with BP decoder

  • GatedNet decoder has better performance than DNN decoder under the same computation complexity.

Comparison between GatedNet decoder with DNN decoder

  • PCL can bring an extra performance benefit. PCL-Partially Connected Layer; FCL-Fully Connected Layer; RCL-Random Connected Layer(Use the same number weights of PCL)

Comparison between fully connected, partially connected,  and random connected Layer.

Usage

1. Install dependencies

conda env create -f environment.yml
source activate deepenv

2. Add PCL Layers in keras.layers.core

  • GatedPCL.py and GatedRanPCL.py are implementation of Partially Connected Layer and Random Partially Connected Layer. Add them in keras.layers.core.

3. (Recommend) IPython Notebook for training/benchmarking GatedNet decoder.

  • reproduce_result.ipynb: A Jypyter notebook demonstrates how to train a Neural Decoder and compare the performance with other Decoders. You can see the details about these models.

4. (Optional) Modify the model for your own projects.

  • The main models are implementation in Model, and some important communication functions are in CommFunc.py. The BP algorithm is implementation in matlab.