hannel coding is an error-control technique used for providing robust data transmission through imperfect channels by adding redun- dancy to the data. There are two important classes of such coding meth- ods: block and convolutional. For this tutorial, we focus on linear block codes because they provide much insight and allow for a simple visuali- zation of the error detection/correction process. Forward error correction (FEC) is the name used when the receiving equipment does most of the work. In the case of block codes, the decoder looks for errors and, once detected, corrects them (according to the capability of the code). The technique has become an important signal-processing tool used in modern communication systems and in a wide variety of other digital applications such as high-density memory and recording media. Such coding provides system per- formance improvements at significantly lower cost than through the use of other methods that increase signal-to-noise ratio (SNR) such as increased power or antenna gain. In this article we first develop the ideas behind sim- ple binary codes. We then treat cyclic and nonbinary An intuitive treatment of error detection and correction Bernard Sklar and Fredric J. Harris IEEE SIGNAL PROCESSING MAGAZINE 14 JULY 2004 1053-5888/04/$20.00©2004IEEE © MASTERSERIES C Authorized licensed use limited to: Constantin Paleologu. Downloaded on November 23, 2009 at 16:35 from IEEE Xplore. Restrictions apply.