A novel neural network decoder (NND) for low-density parity-check (LDPC) decoding over impulsive noise channels.
Use Symmetric alpha-stable to model the impulsive noise. The structure of the system model is depicted as follow:
- The neurons are optimized with control gates, which shows much greater performance and robustness.
- A partially connected layer (PCL) with specific connection is proposed to decrease the computation complexity and it brings an extra performance benefit.
- 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.
- GatedNet decoder has better performance than DNN decoder under the same computation complexity.
- 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)
conda env create -f environment.yml
source activate deepenv
- GatedPCL.py and GatedRanPCL.py are implementation of Partially Connected Layer and Random Partially Connected Layer. Add them in keras.layers.core.
- 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.
- The main models are implementation in Model, and some important communication functions are in CommFunc.py. The BP algorithm is implementation in matlab.