Courses » An Introduction to Coding Theory

An Introduction to Coding Theory

About the course
Error control coding is an indispensible part of any digital communication system. In this introductory course, we will discuss theory of linear block codes and convolutional codes, their encoding and decoding techniques as well as their applications in real world scenarios. Starting from simple repetition codes, we will discuss among other codes: Hamming codes, Reed Muller codes, low density parity check codes, and turbo codes. We will also study how from simple codes by concatenation we can build more powerful error correcting codes.

Intended Audience
3rd/4th year UG students, PG students & faculty in electronics and communications engineering 

An exposure to linear algebra and probability theory as well as a course in digital communications

Industries that will recognize this course
Telecommunication Companies

Course instructor

Prof. Adrish Banerjee received his Bachelors degree from Indian Institute of Technology, Kharagpur and Masters and Ph.D. degree from University of Notre Dame, Indiana. He is currently an Associate Professor in the Department of Electrical Engineering at Indian Institute of Technology, Kanpur. He is a recipient of Microsoft Research India young faculty award, Institute of Engineers India young engineer award, and IETE Prof. K. Sreenivasan memorial award. His research interests are in the physical layer aspects of wireless communications, particularly green communications, error control coding, and cognitive radio.

Course layout

Week 1:

Lecture 1: Introduction to error control coding

Lecture 2: Introduction to linear block codes, generator matrix and parity check matrix

Lecture 3: Properties of linear block codes: Syndrome, error detection

Week 2:

Lecture 4: Decoding of linear block codes

Lecture 5: Distance properties of linear block codes

Week 3: 

Lecture 6: Some simple linear block codes: Repetition codes, Single parity check codes, Hamming codes, Reed Muller codes

Lecture 7: Bounds on size of codes: Hamming bound, Singleton bound, Plotkin bound, Gilbert-Varshamov bound

Week 4: 

Lecture 8: Introduction to convolutional codes-I: Encoding, state diagram, trellis diagram

Lecture 9: Introduction to convolutional codes-II: Classification, realization, distance properties

Lecture 10: Decoding of convolutional codes-I: Viterbi algorithm

Week 5:

Lecture 11: Decoding of convolutional codes-II: BCJR algorithm

Lecture 12: Performance bounds for convolutional codes

Week 6: 

Lecture 13: Low density parity check codes

Lecture 14: Decoding of low density parity check codes: Belief propagation algorithm on BSC and AWGN channels

Week 7: 

Lecture 15: Turbo codes

Lecture 16: Turbo decoding

Week 8:

Lecture 17: Distance properties of turbo codes

Lecture 18: Convergence of turbo codes

Lecture 19: Automatic repeat request schemes

Lecture 20: Applications of linear codes

Suggested Reading

1. “Error Control Coding”, by Shu Lin and Daniel J. Costello, Jr., second edition, Prentice Hall, 2004.
2. Todd K. Moon, “Error Correction Coding”, 1st Edition, Wiley-Interscience, 2006. 
3. F. J. MacWilliams, N. J. A. Sloane, “The Theory of Error-Correcting Codes”, North-Holland, Amsterdam, 1977
4. R. E. Blahut, “Algebraic Codes for Data Transmission”, 1st Edition, Cambridge University Press 2003.
5. Cary W. Huffman, Vera Pless, “Fundamentals of Error-Correcting Codes”, 1st Edition, Cambridge University Press, 2003.
6. Rolf Johannesson and Kamil Sh. Zigangirov, ``Fundamentals of Convolutional Coding’’, IEEE Press, 1999.

More details about the course

Course url: https://onlinecourses.nptel.ac.in/noc17_ee07
Course duration: 08 weeks
Start date and end date of course: 23 January 2017-17 March 2017
Date of exam: 26 March, 2017
Time of exam: Shift 1: 9am-12noon; Shift 2: 2pm-5pm
Any one shift can be chosen to write the exam for a course

Final List of exam cities will be available in exam registration form.
Registration url - Announcements will be made when the registration form is open for registrations.
Exam Fee: The online registration form has to be filled and the certification exam fee of approximately Rs 1000 needs to be paid.


E-Certificate will be given to those who register and write the exam and score greater than or equal to 40% final score.

Final score = 25% assignment score + 75% exam score
25% assignment score is calculated as 25% of average of scores of Best 6 out of 8 assignments 

Certificate will have your name, photograph and the score in the final exam with the breakup. It will have the logos of NPTEL and IIT Kanpur. It will be e-verifiable at