Advanced forward error correction and iterative decoding
Overall Course Objectives
To introduce students to advanced forward error correction (FEC) codes such as low-density parity check (LDPC) codes and convolutional turbo codes.
To introduce signal processing techniques for their decoding and error correction as applied in communication standards, such as 4G, 5G, deep space and satellite communications, as well as in quantum communication systems.
To relate nonlinear signal processing theory to the theory and application of FEC.
See course description in Danish
Learning Objectives
- explain the theory of convolutional codes and their relation to block codes.
- explain the principle of convolutional turbo codes.
- explain the principle of LDPC codes.
- explain the relation between decoding of turbo and LDPC codes and the belief propagation algorithm.
- implement in Matlab, Python, or C++, C (or similar) an advanced iterative decoder for a turbo, product or an LDPC code.
- simulate the performance of a typical LDPC or turbo coded system as per a telecommunication standard.
- extract relevant information from telecommunication standards employing convolutional, turbo and LDPC codes.
- Design a decoder configuration for these codes depending on system requirements for performance and complexity.
Course Content
– Standard convolutional codes of rate 1/n: notation, theory, puncturing-based rate control
and relation to block codes.
– The BCJR algorithm for decoding of convolutional codes.
– Turbo codes with convolutional constituent codes.
– Turbo codes in telecommunication standards: deep space communications and 4G
LDPC codes: notation and theory.
– LDPC codes in telecommunication standards: DVB-S2 television standard and 5G.
– Hamming codes as LDPC codes.
– Decoding algorithms for LDPC codes: the sum-product algorithm.
– Belief propagation algorithm and its relation to the sum-product and BCJR algorithms.
– Simulation of basic FEC in the presence of Gaussian noise.
– Examples of applications in tele- and quantum-communication
The course is composed of lectures around the topics of interest with simple exercises following each lecture. The course concludes with a project on either an LDPC or a turbo code decoder.
Teaching Method
Lectures, exercises, and project work
Faculty
Remarks
It is assumed that the students bring their own laptop computer and have access to programming in MATLAB, Python or C/C++.