This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: MATH 55, FALL 2008 SUPPLEMENTARY NOTES ON ERROR-CORRECTING CODES In these notes we give an introduction to the basic theory of error-correcting codes. These are coding schemes designed to preserve information despite the possibility of errors occurring during its transmission or storage and retrieval. We will first discuss the general principles behind error correcting codes. Next, using some basic facts about probability, we will work out a simplified version of Claude Shannon’s information theory , which provides a precise theoretical limit on the rate at which information can be reliably transmitted over a noisy channel. The Shannon theoretical limit can be achieved by codes constructed at random, but these are infeasible to use in practice. Therefore we will also consider more practical types of codes. The most important of these are the linear codes , whose general principles we discuss in Section 3. Finally we describe one form of Reed-Solomon code , with its algorithms for encoding and decoding with error correction. Reed-Solomon codes are widely used in practice, for example to record data in CD or DVD format, and to communicate by radio with spacecraft. 1. Error correcting and error detecting codes In an error correcting code, a message M is encoded as a sequence of symbols a 1 a 2 ...a n , called a codeword . The set of possible symbols is fixed in advance; for instance each symbol might be a byte (8 bits) of binary data. The code incorporates some redundancy, so that if some of the symbols in a codeword are changed, we can still figure out what the original message must have been. Usually, the number of symbols in the codeword, n , is also fixed, so each message carries a fixed amount of data. To encode larger amounts of data, one would break it up into a number of messages and encode each one separately. The simplest example of an error correcting code is the triple-redundancy code. In this code, the message M consists of a single symbol a , and we encode it by repeating the symbol three times, as aaa . Suppose one symbol in the codeword is changed, so we receive a word baa or aba or aab . We can still recover the original symbol a by taking a majority vote of the three symbols received. If errors result in two symbols being changed, we might receive a word like abc . In that case we can’t correct the errors and recover the original message, but we can at least detect the fact that errors occurred. However, with this code we cannot always detect two errors. If the codeword was aaa , two errors might change it to something like bba . This received word would be miscorrected by the majority vote decoding algorithm, giving the wrong message symbol b ....
View Full Document
- Fall '08
- Math, Coding theory, Hamming Code, Error detection and correction, zp