This course presents error-control coding with a view toward applying it as part of the overall design of a data communication or storage and retrieval system. Block, trellis, and turbo codes and associated decoding techniques are covered. Topics include system models, generator and parity check matrix representation of block codes, general decoding principles, cyclic codes, an introduction to abstract algebra and Galois fields, BCH and Reed-Solomon codes, analytical and graphical representation of convolutional codes, performance bounds, examples of good codes, Viterbi decoding, BCJR algorithm, turbo codes, and turbo code decoding.
Background in linear algebra, such as EN.625.609 Matrix Theory; in probability, such as EN.525.614 Probability and Stochastic Processes for Engineers; and in digital communications, such as EN.525.616 Communication Systems Engineering. Familiarity with MATLAB or similar programming capability.