quation 14.11. Similarly, the n digit codeword the corresponding double bit correction. If, however, more than one is represented by polynomial c(x). double bit error pattern could have given rise to that syndrome, the decoder cannot guarantee to correct the error. If this is the case, the (14.11) minimum distance of the shortened code is no greater than that of the unshortened code. The mathematical basis of cyclic codes is the 'algebra of polyno- In decoders for shortened cyclic codes, further modifications are mials over GF(M)'; this means that when adding, subtracting, desirable to reduce decode time. These are discussed in Section multiplying or dividing polynomials, the arithmetic which has to be 14.4.6. carried out on the coefficients is done in GF(M). Binary cyclic codes Cyclic codes 14/7 use polynomials over GF(2) so the coefficient arithmetic is modulo- coefficients) is written '35' in octal, the binary coefficients are 2. In this case, for example, the product of the polynomials given by (11101), and the generator polynomial is given by Equation 14.19. equations 14.12 and 14.13 is as in expression 14.14. (14.19) g(x) = 1.x  + 1.x 9 (14.12) Unsystematic codewords c(x) can be generated from input data p(x)=1.x2+1.x'+1.x" (14.13) words d(x) by calculating Equation 14.20. 1.x3 + (14.14) (x) = g (x)d(x) = (14.20) But Equation 14.15 holds, resulting in Equation 14.16. Of much more interest are systematic cyclic codes, in which the first k bits of the codeword are equal to the data word and the last r GF(2)(1+1)= 0 (14.15) bits are parity bits. In polynomial notation Equation 14.21 is ob- tained, where the parity check polynomial, p(x) is set equal to the (x)p(x) = 1.xxx+ (14.16) remainder after dividing x'd(x) by g(x). The variable X never needs to be evaluated; it serves only a 'place (14.21) keeping' role. An (n,k) cyclic code for M-ary digits is completely defined by a This remainder operation can be conveniently calculated by feed- generator polynomial. This generator polynomial must be a factor back shi