The idea in a polynomial code is to represent every

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

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

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 this property. All arithmetic in our CRC will be done in F2 . The normal rules of polynomial addition, division, multiplication, and division apply, except that all coefficients are either 0 or 1 and the coefficients 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

Ask a homework question - tutors are online