EE5161 is an advanced course on coding theory. Students are assumed to have had
an introductory course on error control coding such as EE5160 or EE5142. I will
be covering a selection of topics from two books: i) Channel codes by Ryan and Lin and ii) Iterative error correction by S. Johnson.
As the title suggests the emphasis is on modern codes and by that we mean the developments that began circa 1990s with
the discovery of turbo codes and rediscovery of LDPC codes. Our focus will be on LDPC codes and turbo codes.
Depending on the time some additional topics such as finite geometry LDPC codes, polar codes, spatially coupled LDPC
codes might be covered. There will be 2--3 projects in this course along with some matlab assignments. Some programming
knowledge is essential. At the end of this course you should be able to design and simulate the performance of LDPC and
turbo codes. More details about the syllabus, grading policy can found in the
course webpage
https://courses.iitm.ac.in
Textbooks:
Channel codes, Classical and Modern by W. Ryan and S. Lin.
Iterative Error Correction by S. Johnson
References:
Modern coding theory by R. Urbanke and T. Richardson
Course topics.
- Introduction to modern coding theory
- Common channels and their capacities
- Review of block codes
- LDPC codes (constructions, decoding and design)
- Review of convolutional codes
- Turbo codes (constructions, decoding and design)
- Factor graphs
- Density evolution
- EXIT charts
- Spatially coupled LDPC codes, polar codes, codes for standards (time permitting)
Grading policy (Tentative)
40% Projects, 10% Miniquizzes+assignments, 20% Midsem, 30% Finals.
Midsem TBD
Endsem 19 Nov 2015
Lectures
03 Aug Lecture 1: Introduction
04 Aug Lecture 2: Common discrete channels and capacities
05 Aug Lecture 3: AWGN channels
10 Aug Lecture 4: Algebra review
11 Aug Lecture 5: Linear block codes review
12 Aug Lecture 6: Decoding linear codes
14 Aug Lecture 7: Shannon's theorem for BSC
17 Aug Lecture 8: Limitations of bounded distance decoder
18 Aug Lecture 9: Factor graphs
19 Aug Lecture 10: Factor graphs
21 Aug Lecture 11: Decoding using factor graph framework
24 Aug Lecture 12: LDPC codes
26 Aug Lecture 13: Sum product algorithm (SPA probability domain),
miniquiz-1
31 Aug Lecture 14: SPA log domain
01 Sep Lecture 15: SPA variations, erasure filling algorithm
04 Sep Lecture 16: SPA approximations
07 Sep Lecture 17: Erasure decoding and bit flipping algorithms
09 Sep Lecture 18: LDPC codes: degree distributions, miniquiz-2
11 Sep Lecture 19: LDPC code constructions
14 Sep Lecture 20: LDPC code constructions
15 Sep Lecture 21: Thresholds via density evolution
16 Sep Lecture 22: Density evolution for BEC (irregular codes), BSC (regular)
21 Sep Lecture 23: Design of capacity achieving codes (BEC)
22 Sep Lecture 24: Density evolution for BiAWGN
23 Sep Lecture 25: Gaussian approximation (regular LDPC codes)
28 Sep Lecture 26: Gaussian approximation (irregular LDPC codes)
29 Sep Lecture 27: EXIT charts for LDPC codes
30 Sep Lecture 28: EXIT charts for LDPC codes
05 Oct Lecture 29: Wrapup LDPC codes, miniquiz-3
06 Oct Lecture 30: Convolutional codes
07 Oct Lecture 31: Convolutional codes
09 Oct Lecture 32: Structural properties of convolutional codes
12 Oct Lecture 33: Decoding convolutional codes
13 Oct Lecture 34: BCJR algorithm (probability domain)
14 Oct Lecture 35: BCJR algorithm (log domain)
16 Oct Lecture 36: Turbo codes (Parallel concatenated convolutional codes)
21 Oct Lecture 37: Turbo codes
23 Oct Lecture 38: Performance of block codes
26 Oct Lecture 39: Performance of convolutional codes
28 Oct Lecture 40: Performance of turbo codes, miniquiz-4
30 Oct Lecture 41: Density evolution and EXIT charts for turbo codes
02 Nov Lecture 42: EXIT charts for LDPC codes, turbo codes project
03 Nov Lecture 43: Serial concatenation
04 Nov Lecture 44: Serial concatenated convolutional codes
06 Nov Lecture 45: Wrapup