This course is typically meant for an Masters-level or final-year BE student. Error-correcting codes are in widespread use for data storage as well as most forms of communication where reliability is of importance. Examples range from compact discs to deep-space communication. This course will cover both classical error-correcting codes such as BCH, Reed-Solomon and convolutional codes as well as the more modern class of iteratively decodable codes, low-density, parity-check codes in particular.
Course details:
- Course overview; Basics of binary block codes for the binary symmetric channel; Mathematical preliminaries: groups, subgroups and cosets.
- Linear block codes; Bounds on the size of a block code; Bounded and maximum-likelihood decoding of binary block codes; standard array decoding.
- Basics of convolutional codes; the Viterbi decoding algorithm.
- The generalized distributive law (GDL).
- The GDL perspective on the Viterbi and BCJR decoding algorithms; Turbo codes in brief.
- LDPC codes.
- Fields; Polynomials rings; construction of finite fields.
- Deducing the structure of a finite field; Subfields and cyclotomic cosets.
- The finite field (Fourier) transform; cyclic codes via finite field transforms.
- BCH and Reed-Solomon codes; decoding of BCH and RS codes.