Professional Documents
Culture Documents
Solutions Chapter 020607
Solutions Chapter 020607
p(α) = 1 + α + α3 = 0 ⇒ α3 = α + 1,
α4 = α · α3 = α · (α + 1) = α2 + α
α5 = α · α4 = α · (α2 + α) = α3 + α2 = α2 + α + 1
α6 = α · α5 = α · (α2 + α + 1) = α3 + α2 + α = α2 + 1
α7 = 1.
During the division we exploit the relations of the field elements specified by
Table 3. For example, if we want to add α7 x and α8 x we have that (α7 + α8 )
is equal to
α7 + α8 = (α3 + α + 1) + (α2 + 1) = α3 + α2 + α = α11 .
Error Control Coding — week 4: Finite fields, cyclic codes, RS codes 4
x + α5 y + z = α7 (1)
x + αy + α7 z = α9 (2)
α2 x + y + α7 z = α (3)
———————————————–
———————————————–
α2 y + α9 z = 1 (4)
α14 y + α5 z = α6 (5)
———————————————–
———————————————–
———————————————–
Thus, the solution is (x y z) = (α12 α14 α10 ).
α7 · a(α) = a0 α7 + a1 α8 + a2 α9 + a3 α10
Using the list of the field elements of GF (24 ) given in Table 3 we obtain that
the above expression is equivalent to
α7 · a(α) = a0 (1 + α + α3 ) + a1 (1 + α2 ) + a2 (α + α3 ) + a3 (1 + α + α2 )
= (a0 + a1 + a3 ) + (a0 + a2 + a3 )α + (a1 + a3 )α2 + (a0 + a2 )α3
This relation defines the multiplication by α7 and the realization using modulo-
2 adders is illustrated in Figure ??.
Error Control Coding — week 4: Finite fields, cyclic codes, RS codes 5
a3
a2
a1
a0
Figure 1: Multiplication of an element a(α) from GF (24 ) by α7
a(α) = a0 + a1 α + a2 α2 + a3 α3 + a4 α4
b(α) = b0 + b1 α + b2 α2 + b3 α3 + b4 α4
α5 = α2 + 1
α6 = α(α2 + 1) = α3 + α
α7 = α(α3 + α) = α4 + α2
α8 = α(α4 + α2 ) = α5 + α3 = α3 + α2 + 1
After substituting these relations into the expression for a(α)·b(α), and group-
ing the terms according to the exponent of α, we obtain
where ω is the field element of order N , that is, ω N = 1. The code length N
always divides (q − 1). In practice we often have N = q − 1 and q = 2n . If
N = 2n − 1, then ω = α, where α is the primitive element of the field. Then
we have
g(x) = (x + α)(x + α2 )...(x + α2t ).
The parameters of the code satisfy N − K = 2t.
For the triple error correcting RS code over GF (24 ) from Example 7.2 from
the book, we have t = 3 and N = 24 −1 = 15. Thus, N −K = 6. We conclude
that this is the (15, 9) RS code, whose generator polynomial is
The above generator polynomial is obtained assuming that the field GF (24 )
is generated with the primitive polynomial p(x) = 1 + x + x4 . Note that if the
other primitive polynomial was used to generate the field (in this case, the
possible alternative is p(x) = 1 + x3 + x4 ), we would have obtained different
generator polynomial! Thus, the form of the generator polynomial implicitly
carries the information about the primitive polynomial that generates the
field!
The code polynomial v(x) is obtained by multiplying the information polyno-
mial u(x) with the generator polynomial
v(x) = u(x)g(x) =
= α6 + (α9 + α11 )x + (α6 + α14 )x2 + (α4 + α11 )x3 + (α14 + α9 + α7 )x4
+α4 x5 + α7 x6 + (1 + α13 )x8 + (α + α11 )x9
+(α + α13 )x10 + α11 x11 + α6 x12 + α2 x13 + α7 x14
= α6 + α2 x + α8 x2 + α13 x3 + α3 x4 + α4 x5 + α7 x6 + α6 x8
+α6 x9 + α12 x10 + α11 x11 + α6 x12 + α2 x13 + α7 x14
The parity polynomial of the t-error correcting (N, K) RS code is the poly-
nomial h(x) = h0 + h1 x + ... + hK xK of degree K such that
g(x)h(x) = xN − 1
Thus, the parity polynomial is obtained via division h(x) = (xN − 1)/g(x).
For the RS codes over GF (2n ) with N = 2n − 1 this is equivalent to
h(x) = (x + α2t+1 )(x + α2t+2 )...(x + αN )
For the (15, 9) code from our example, the parity polynomial is obtained by
x15 + 1
h(x) = = (x + α7 )(x + α8 )...(x + α15 ).
g(x)
There are several ways to perform encoding of the RS codes:
(a) non-systematic encoding based on the generator polynomial:
the code polynomial is obtained from the information polynomial u(x)
by multiplication with the generator polynomial, v(x) = u(x)g(x)
Multiplication of the two polynomials can be realized by a sequential
circuit (an FIR filter with N − K delay elements whose input is the
information sequence and tap coefficients are the generator polynomial
coefficients g0 , g1 ,...,gN −K . In our case, this realization requires N − K =
2t = 6 delay elements.
(b) systematic encoding based on the generator polynomial:
The code polynomial in the systematic form is given by v(x) = p(x) +
x2t u(x), where the systematic bits appear as last K symbols in the
codeword, and where the polynomial p(x) specifies the parity check
symbols. Since we know that v(x) has to be divisible by g(x), i.e.,
v(x) = a(x)g(x), for some a(x), from the equality v(x) = a(x)g(x) =
p(x) + x2t u(x), we conclude that p(x) is the remainder of the division
p(x) = Rem{x2t u(x)/g(x)}. The circuit that performs the division is
shown in Figure 7.1 in the book (page 239) and it requires N − K delay
elements.
(c) systematic encoding based on the parity polynomial:
the code polynomial in the form v(x) = u(x)(xN − 1)/h(x), can be ob-
tained as the output of the linear feedback shift register, whose connec-
tion coefficients are parity polynomial coefficients h0 ,...,hK (cf. Figure
5.3). The register has K memory elements.
To perform encoding with minimum number of memory elements, we
should compare N and N −K and choose the realization with the smaller
number. In our example, N − K = 6 < K = 9, thus, realizations a) or
b) are preferred.
7.2 The generator polynomial of a double-error correcting RS code over GF (25 ),
of length N = 25 − 1 = 31 is given by
g(x) = (x + α)(x + α2 )(x + α3 )(x + α4 ),
Error Control Coding — week 4: Finite fields, cyclic codes, RS codes 8
where α is the primitive element of the field. Assuming that p(x) = x5 +x2 +1
is used to generate the field, the table of field elements is as given in Appendix
A of the book. Using this table we obtain
g(x) = α10 + α29 x + α19 x2 + α24 x3 + x4
Following the same approach, we find that the generator polynomial of the
triple error correcting code of the same length over the same field is