EE6317 Course Information

Table of Contents

Welcome to EE6317 (Channel coding). This is a follow-up course to EE 2340 (Information Sciences) and EE 5847 (Information theory). This course will cover the basic concepts of coding for reliable communication over noisy channels. While not a strict prerequisite, it would be helpful if you have already taken EE5390 (Source coding).

Most of our interaction will take place on Google classroom. Please send me an email if you have not received an invite.

Prerequisites

1 Assessment (tentative):

Each student will be expected to

  • attend classes and solve short in-class quizzes
  • participate in class
  • solve a mid-term exam
  • solve ONE homework assignment, roughly 2 (collaboration is fine as long as it is explicitly declared, but you have to write the solutions in your own words)
  • present a paper/do a project/solve a final exam
Homeworks 30%
Attendance and class participation 10%
Mid-term exam 30%
Final project/paper presentation/final exam 30%

2 Instructor:

Name Dr. Shashank Vatedka
Email shashankvatedka@ee.iith.ac.in
Office 214/D, Academic block C

3 Class timings:

  • Slot E: Tuesdays 10:00-11:00, Thursdays 12:00-13:00 and Fridays 09:00-10:00
  • Class venue: A-LH1

4 Textbook and references:

Primarily, the material will be drawn from

  • Lecture notes and slides, uploaded here and piazza.
  • Elements of Information Theory, (EIT) Thomas M Cover and Joy A Thomas, second edition, Wiley inc. (Amazon link). Limited number of copies available in the university library. While the first edition of the book has all the material we need for the course, the second edition has a much expanded problem set.

Other references:

  • "A mathematical theory of communication", Claude Shannon, Bell systems Tech Journal, 1948. The classic paper that started this field.
  • Modern Coding Theory, Tom Richardson and Ruediger Urbanke, Cambridge University Press, 2008. The bible for LDPC codes.
  • Information theory, inference, and learning algorithms, David MacKay (soft copy available for free on the author's website). A very nice book, but gives a very different flavour that what will be covered in the course. Suggested for additional reading.
  • A student's guide to coding and information theory, Stefan Moser (amazon link).
  • Information theory: coding theorems for discrete memoryless systems, Imre Csiszar and Janos Korner. An advanced textbook. Recommended reading after covering this course as well as EE6317.

Light reading:

5 Tentative syllabus:

Recap of basic concepts in information theory; Channels and error correcting codes; Discrete memoryless channels; Shannon's channel coding theorem; Typical sets and the asymptotic equipartition property; Joint and conditionally typical sets; Proof of the channel coding theorem; Linear codes; Linear codes achieve capacity; Low-density parity-check (LDPC) codes; Belief propagation decoding of LDPC codes; Polar codes; Polar codes achieve capacity of binary-input memoryless symmetric channels;

6 Tentative schedule

Topic Date Notes/links/material Homeworks
Reliable communication over noisy channels Week 1 Review Chapter 2 EIT  
- Review of basic concepts   Review (video,notes)  
- Discrete memoryless channels   EIT Sec 7.1-7.5  
- Rate, encoding, decoding, complexity      
- The channel coding theorem      
       
Proof of the channel coding theorem Week 1-2 Typical sets (video 1, video 2, notes)  
- Typical sets, AEP, concentration   EIT Chapter 7, for a slightly different proof  
- Random codes and proof of achievability   Converse: EIT Sec 7.6  
- Fano's inequality and proof of converse   Class notes  
- Gaussian channels      
Linear codes Week 3    
- Construction      
- Encoding and decoding   References: 1 2  
- Linear codes achieve capacity      
Low-density parity check codes Week 3    
- Introduction and construction      
- Belief propagation decoding   Reference: Chapter 3 of Richardson and Urbanke  
- Other aspects      
Polar codes Week 4    
- Introduction and construction      
- Successive interference cancellation decoding      
- Polar codes achieve capacity      
- Discussion      

7 Topics for final paper/project presentation

This section is tentative.

You may work in groups of at most 2 people each. Specific topics will be updated here. Good sources for the latest work on channel coding can be found in the IEEE Transactions on Information Theory, IEEE Transactions on Communications, various IEEE conferences including the annual IEEE International Symposium on Information Theory (ISIT), Information Theory Workshop (ITW). Several good preprints are made available online on the Arxiv preprint server.

The following are representative papers. You should go through papers citing/cited by the following as well.

8 General comments regarding presentations/reports

You are expected to prepare a short (15min) recorded presentation summarizing the paper you have chosen. You are required to present slides (or equivalent) conveying the problem statement, important technical results, key ideas used to obtain those results, and your opinions on the paper (is this interesting/what are the limitations/what could be improved/…).

In addition to learning cool stuff in information theory, you should also learn to present your work. The final presentation is an opportunity to develop your presenting skills. You must be able to convey your ideas and thoughts clearly to another person. Here are some general comments for making good presentations:

  • Make sure that you acknowledge all the references/material that you used (papers/code/etc.) While it does not matter much for the purposes of this class, this is very important to keep in mind when you are delivering presentations at bigger venues
  • In a presentation, always introduce yourself and your team members/collaborators in the very beginning.
  • If much of the presentation is based on on one/two papers/references, explicitly state which references you are using in the first/second slide.
  • Avoid saying "We did this/we showed that…" when you are in fact talking about some other authors' work. Unless you have derived something/programmed something yourself, always say "they/the authors did/showed/observed that…"
  • A presentation/report is like telling a story: even before preparing the slides/document, imagine that you want to explain the work to a friend in 15-20 mins, identify exactly what you want to convey, and only then proceed.
  • Make sure that you explain the problem clearly.
  • When reading a paper, you should first understand what the problem is, what makes it challenging, and why it is worthwhile solving the problem. Then, you should identify what is new about the paper, and what the contributions are. To understand the rest of the paper, you should then try to understand the constructions/proof techniques/ideas. Your presentation should also bring out these aspects. See this article and this one on how to read a paper.
  • There is no single best rule for presentations, but generally in any presentation, the viewer/audience's attention is maximum in the first 5-10 minutes and then gradually decreases. So it is helpful to get to the punchline in the first few minutes.
  • Citations should be treated differently in papers and slides. When you are making a reference to a particular paper/book/website (for e.g., when you say that result A can be found in paper B) in your slides, mention the paper/book/website as a footnote rather than saying [1], and putting the reference in the last slide. 
  • Do not put too much text on your slides. This is bad practice. Each slide should contain at most 3-5 points. You should absolutely avoid long sentences. 
  • Do not copy text directly from the paper.
  • Do not read out your slides word-to-word.
  • Similarly, do not put too many lemmas in a slide. Each slide should convey a single idea. Unless very important, do not put too much math/long derivations in a short presentation. It is more important to convey ideas/intuition. But at the same time, there should be a significant amount of technical content. It is therefore very useful to instead explain using examples.
  • Make sure that the fonts/diagrams/labels/plots are clear. Label all the axes on your plots.
  • Speak clearly, and make sure that the audio quality is fine. Check your mic volume. Do a couple of dry runs.
  • If you are using Google meet to record, then make sure that you "pin" the slides since meet might automatically switch displaying you/your icon instead of the presentation. 
  • Make sure that you check, and double check the slides and report for typos, technical and grammatical errors.
  • If your group has more than one person, then the presentation must be shared equally.

Author: Shashank Vatedka

Created: 2022-04-11 Mon 17:39