The minimum burst length is 2 corresponding to the

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: 1 1: that is, the number of bits is b, the first and last bits are both 1, and the bits εi in the middle could be either 0 or 1. The minimum burst length is 2, corresponding to the pattern “11”. Suppose we would like our CRC to detect all such error patterns, where e(x) = ￿ −2 xs (1 · xb−1 + b=1 εi xi + 1). This polynomial represents a burst error pattern of size b i starting s bits to the left from the end of the packet. If we pick g (x) to be a polynomial of degree b, and if g (x) does not have x as a factor, then any error pattern of length ≤ b is guaranteed to be detected, because g (x) will not divide a polynomial of degree smaller than its own. Moreover, there is exactly one error pattern of length b + 1— corresponding to the case when the burst error pattern matches the coefficients of g (x) itself—that will not be detected. All other error patterns of length b + 1 will be detected by this CRC. 6 LECTURE 7. DETECTING BIT ERRORS Figure 7-2: Commonly used CRC generator polynomials, g (x). From Wikipedia. If fact, such a CRC is quite good at detecting longer burst errors as well, though it cannot detect all of them. CRCs are examples of cyclic codes, which have the property that if c is a code word, then any cyclic shift (rotation) of c is another valid code word. Hence, referring to Eq.(7.1), we find that one can represent the polynomial corresponding to one cyclic left shift of w as w(1) (x) = wn−1 + w0 x + w1 x2 + . . . wn−2 xn−1 = xw(x) + (1 + xn )wn−1 (7.3) (7.4) Now, because w(1) (x) must also be a valid code word, it must be a multiple of g (x), which means that g (x) must divide 1 + xn . Note that 1 + xn corresponds to a double error pattern; what this observation implies is that the CRC scheme using cyclic code polynomials can detect the errors we want to detect (such as all double bit errors) as long as g (x) is picked so that the smallest n for which 1 + xn is a multiple of g (x) is quite large. For example, in practice, a common 16-bit CRC has a g (x) for which the smallest such value of n is 215 − 1 = 32767, which means that it’s quite effective for all messages of length smaller than that. ￿ 7.2.5 CRCs in practice CRCs are used in essentially all communication systems. The table in Figure 7-2, culled from Wikipedia, has a list of common CRCs and practical systems in which they are used. You can see that they all have an even number of terms, and verify (if you wish) that 1 + x divides each of them....
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