# It should be easy to verify that this multiplication

This preview shows page 1. Sign up to view the full content.

This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: n − k of them) so that the code word is in systematic form. It should be easy to verify that this multiplication produces a polynomial whose coefﬁcients correspond to original message bits followed by all zeroes (for the check bits we’re going to add in below). Then, let’s divide xn−k m(x) by g (x). If the remainder from the polynomial division is 0, then we have a valid codeword. Otherwise, we have a remainder, R. We know that if we subtract this remainder from the polynomial xn−k m(x), we will obtain a new polynomial that will be a multiple of g (x). Remembering that we are in F2 , we can replace the subtraction with an addition, getting: w(x) = xn−k m(x) + R{xn−k m(x)/g (x)}, (7.2) where the notation R{a(x)/b(x)} stands for the remainder when a(x) is divided by b(x). The encoder is now straightforward to deﬁne. Take the message, construct the message 4 LECTURE 7. DETECTING BIT ERRORS Figure 7-1: CRC computations using “long division”. polynomial, multiply by xn−k , and then divide that by g (x). The remainder forms the check bits, acting as the digest for the entire message. Send these bits appended to the message. ￿ 7.2.2 Decoding Step The decoding step is essentially identical to the encoding step, one of the advantages of using a CRC. Separate each code word received into the message and remainder portions, and verify whether the remainder calculated from the message matches the bits sent together with the message. A mismatch guarantees that an error has occurred; a match suggests a reasonable likel...
View Full Document

## This document was uploaded on 02/26/2014 for the course CS 6.02 at MIT.

Ask a homework question - tutors are online