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 71: 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.
 Fall '13
 HariBalakrishnan

Click to edit the document details