This preview shows page 1. Sign up to view the full content.
Unformatted text preview: s an example of a cyclic code. The
idea in a polynomial code is to represent every code word w = wn−1 wn−2 wn−2 . . . w0 as a
polynomial of degree n − 1. That is, we write
w ( x) = n −1
w i xi . (7.1) i=0 For example, the code word 11000101 may be represented as the polynomial x7 + x6 +
x2 + 1, plugging the bits into Eq.(7.1).
We use the term code polynomial to refer to the polynomial corresponding to a code word.
The key idea in a CRC (and, indeed, in any cyclic code) is to ensure that every valid code
polynomial is a multiple of a generator polynomial, g (x). We will look at the properties of good
generator polynomials in a bit, but for now let’s look at some properties of codes built with
All arithmetic in our CRC will be done in F2 . The normal rules of polynomial addition,
division, multiplication, and division apply, except that all coefﬁcients are either 0 or 1 and
the coefﬁcients add and multiply using the F2 rules. In particular, note that all minus signs
can be replaced with + signs, making life quite convenient.
7.2.1 Encoding Step The CRC encoding step of producing the digest is simple. Given a message, construct
the message polynomial m(x) using the same method as Eq.(7.1). Then, our goal is to
construct the code polynomial, w(x) from m(x) and g (x) so that g (x) divides w(x) (i.e.,
w(x) is a multiple of g (x)).
First, let us multiply m(x) by xn−k . The reason we do this multiplication is to shift the
message left by n − k bits, so we can add the redundant check bits (...
View Full Document
- Fall '13