About this course
Module 1: Channel coding theorem, definition of a forward error correction code (channel code), channel codes main parameters, capacity of soft and hard decision decoding.
Module 2: Linear block codes, generator matrix, parity check matrix, main properties. Decoding in the binary symmetric channel: syndrome decoding. Main coding bounds.
Module 3: Algebraic codes, bounded distance decoders, product codes.
Module 4: Convolutional codes. Viterbi decoder. BCJR decoder. The turbo principle and turbo codes.
Module 5: Low-density parity check codes: graph representation, properties, construction. Belief propagation. Min-sum decoder.
Module 6: Polar codes, conservation of capacity, polarization, LLR computation, frozen bit selection, successive cancelation decoding.
Module 7: Coded Modulation. Geometric constellation shaping. Probabilistic constellation shaping.
Module 8: Coding for security applications.
Course Plan
Structure: Two weekly teaching blocks (2 hours each). One block is dedicated to lectures, while the other combines lectures with in-class tutorials.
Tutorials: Designed to deepen theoretical understanding through student-led exercises or programming sessions.
Assignments: Weekly assignments covering both theory and implementation.
Support: Weekly office hours available for additional guidance.
Learning outcomes
The course focuses on the principles of coding theory for reliable and secure transmission over digital communication channels. The course introduces the state-of-the-art codes used in today's communication systems such as product codes, LDPC codes, polar codes, and turbo codes. An emphasis is given to the software implementation aspects of such codes.
To successfully complete the course the student is expected to:1. Explain key concepts of coding theory, including channel capacity, coding gain, linear block code structures, and decoding strategies (hard vs. soft decision).
2. Compare and evaluate the performance of different code classes and decoders, benchmarking them against theoretical limits such as channel capacity.
3. Apply abstract coding theory principles to algorithmic implementations of encoders and decoders.
4. Implement key encoding and decoding algorithms in software (e.g., MATLAB) and simulate their transmission performance.
5. Analyze and critically assess numerical simulation results, interpreting them using theoretical foundations from the course.
Examination
Individual MATLAB programming assignments (written reports with code): 50% of the final grade; oral examination: 50% of the final grade.
Course requirements
Prior knowledge of probability theory, linear algebra and basic digital communications is expected. Experience with MATLAB (or similar programming) is highly advisable. Without such experience, the course can be followed, but it will take more effort than is represented by 5 EC.
Resources
- Lecture slides provided during the course
- Channel Codes: Classical and Modern
Activities
Lectures, tutorial sessions (exercises and simulation), and individual MATLAB programming assignments.
Additional information
- Electrical Engineering
- More infoCourse page on website of Eindhoven University of Technology
- Contact a coordinator
- About studying within the EuroTeQ alliance
- LevelMaster
- Contact hours per week1
- InstructorsAlexios Balatsoukas Stimming, Gabriele Liga, Kadir Gumus, Kaiquan Wu, Roel Maes
- Mode of deliveryHybrid
