  Inspired by recent advances in deep learning, we propose a novel iterative
BP-CNN architecture for channel decoding under correlated noise. This
architecture concatenates a trained convolutional neural network (CNN) with a
standard belief-propagation (BP) decoder. The standard BP decoder is used to
estimate the coded bits, followed by a CNN to remove the estimation errors of
the BP decoder and obtain a more accurate estimation of the channel noise.
Iterating between BP and CNN will gradually improve the decoding SNR and hence
result in better decoding performance. To train a well-behaved CNN model, we
define a new loss function which involves not only the accuracy of the noise
estimation but also the normality test for the estimation errors, i.e., to
measure how likely the estimation errors follow a Gaussian distribution. The
introduction of the normality test to the CNN training shapes the residual
noise distribution and further reduces the BER of the iterative decoding,
compared to using the standard quadratic loss function. We carry out extensive
experiments to analyze and verify the proposed framework. The iterative BP-CNN
decoder has better BER performance with lower complexity, is suitable for
parallel implementation, does not rely on any specific channel model or
encoding method, and is robust against training mismatches. All of these
features make it a good candidate for decoding modern channel codes.
