Coding is a crucial aspect of communications, as it allows for meeting the fundamental limits in a reliable manner. In the center of coding lie a variety of techniques for designing error detecting and correcting codes, which are the corner stone of any communications systems. Coding theory also gives insights as to how to design modern network systems: such techniques include network coding, index coding, memory-aided coding, etc. This short course will seek to expose the student to a variety of theoretical and practical aspects of modern error correcting codes as well as to other coding theoretic aspects. In addition to theory, the course will also provide practical training in the form of MATLAB sessions, as well as homework assignments.
Teaching and Learning Methods : Lectures, exams, MATLAB practical training and different assignments.
Course Policies : The Final Exam will be two hours long, and it will be comprehensive. During the final exam, all notes corresponding to this class are allowed.
T. Richardson and R. Urbanke, Modern Coding Theory. Also, at the end of each topic detailed references will be provided.
Basic skills in math. Related courses include Digital communications and Information Theory.
The goal of this course is to introduce channel coding theory and its applications in communication systems. This is done by the design and performance analysis of encoders and decoders in both wireline and wireless communication systems. The course will address classical topics of algebraic coding theory (e.g. block codes and convolutional codes) and modern coding approaches based on soft decision, as well as coding aspects relating to revolutionary directions in telecommunications, like coding for channels with caches, coding channels with side information, etc.
Some outcomes can include understanding of the general communication and coding problem, emphasizing on the erasure and AWGN Channel, understanding of the basic principles behind decoding. Then emphasis will also be given to algebraic coding, where we will explore different coding fundamentals as well as different coding applications and different specific codes such as the Hamming code, different Cyclic codes, etc.
Then focus will be given to convolutional codes and some aspects of turbo codes, and if time allows also on LDPC codes. Within this context, we will consider the representation of codes, how to perform soft-input and soft-output decoding, and provide different performance bounds.
Finally we may also touch upon coding for networks, coding for channels with side information, and coding for channels with caches/memory.
Nb hours : 21
Grading Policy : Final exam 65% & Matlab session and assignment 35%