seen from the definition in Eq. (11.17) that Y1 (p) is a codeword polynomial representing a cyclically shifted version of Y(p) (Eq. (11.15)). Likewise, the polynomials Ym(p) = pm "Y(p) mod [M] are all cyclically shifted versions of the code Y(p). It is then possible to use the Y(p) polynomials as a new way of encoding messages, as I show next. Define g(p) as a generator polynomial of degree n - k, which divides p" + 1. As an example for n = 7, we have the irreducible polynomial factorization: p7+1=(p+1)(pp1(pp+1 (11.20) =(p+1)g1(p)g2(p), showing that = g2(p)= (p + 1)g1(p) and (p + 1)g2(p) are possible generator polynomials for k = 4 (first two) and k=3 (last two). Define next the message polynomial X(p) of degree k - 1: (11.21) We can now construct a cyclic code for the 2k possible messages X(p) according to the definition: Y(p)=X(p)g(p), (11.22) where g(p) is a generator polynomial. Equation (11.21) represents a polynomial version of the previous matrix definition in Eq. (11.2), i.e.,Y = XG. Although we will not make use of it here, one can define the parity-check polynomial h(p) from the relation g(p)h(p)=1+p" (11.23) or equivalently, g(p)h(p) = 0 mod[1 + pn], which is the polynomial version of the matrix Eq. (11.5), i.e., HGT = GHT = 0. I illustrate next the polynomial encoding through the example of the (n, k) = (7,4) Hamming block code. From Eq. (11.20), we can choose g(p) = p3 + as the generator polynomial (which divides by p7 + 1). The coefficients of the polynomial Y(p), as calculated from Eq. (11.22) for all possible message polynomials X(p), are listed in Table 11.3. It is seen from Table 11.3 that the obtained code representation is not systematic, i.e., the message bits no longer represent a separate word at the beginning or end of the code, unlike in the linear block codes previously seen (Table 11.1). For instance, as the table shows, the original four-bit message 0111 is encoded into 01100011. Next, I show how error detection and correction is performed in cyclic codes. Assume that Z(p) is the resu