This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Error Detecting Codes Lign 17, A. Kehler As we have seen throughout the course, we use coding schemes to transmit information. But sometimes errors can occur during the transmission process, for example when we send information over a telephone line (or wireless channel), or store it on a hard disk. Why should the ‘recipient’ of this information have any faith that the information hasn’t be corrupted? He/she/it shouldn’t. As such, there is a need for what we will call error-detecting codes. The idea is to design a coding scheme such that a function can be applied to information encoded with it to determine whether the information is valid or is likely to have been corrupted. 1 Checksum The codes that we will consider are sometimes called checksum codes. The basic idea is simple. We start with some information that is represented numerically (for example, in bits) that we are going to transmit. A function is then computed on the information. In some cases the sender might send the result of this function. In other cases, the result is known a priori . Here’s a simple example. Cindy wants to send Donald a message, in this case the word error , which is represented in ASCII as the following sequences of bits: 0110010101110010011100100110111101110010 Before sending this information, Cindy’s computer computes the sum of these bit values (in this case, 22), and, representing it in 8-bit binary (00010110), appends it to the end of the message: 011001010111001001110010011011110111001000010110 Donald’s computer knows to reverse this process: take the last 8 bits off, interpret it as a checksum value, and see if the other bits sum to this value. If the two values do not agree, then Donald knows that there was a problem in transmission. (Although note that it could be that the message was transmitted correctly, and only one or more bits in the checksum value itself were incorrect.) If the two values do agree, then he can have more confidence that the information is correct. But not total confidence. For instance, if extra 0’s were added to the sequence of bits during transmission, he wouldn’t know it, since it would result in the same checksum value. Likewise if a set of offsetting corruptions were made: say, one or more 1’s were turned into a 0, and an equal number of 0’s were turned into a 1. But at least it will catch a reasonable percentage of the errors, which is perhaps better than nothing. In practice, one wouldn’t want to compute and transmit a sum like this if it was very large. Indeed, it might be best to keep it within 8 bits. An alternative is compute the sum ( mod N ) and send only the residue. If we are going to an 8-bit checksum value, what should the value of N be?...
View Full Document
This note was uploaded on 09/15/2011 for the course LIGN 17 taught by Professor Kehler during the Winter '08 term at UCSD.
- Winter '08