+ All Categories
Home > Documents > [Lin, Costello] Error Control Coding, 2E, Solutions Manual

[Lin, Costello] Error Control Coding, 2E, Solutions Manual

Date post: 22-Nov-2015
Category:
Upload: midoriinu
View: 274 times
Download: 34 times
Share this document with a friend
Description:
Solutions manual for "Error control coding", (Lin, Costello), second edition
126
Chapter 2 2.3 Since m is not a prime, it can be factored as the product of two integers a and b, m = a · b with 1 < a,b < m. It is clear that both a and b are in the set {1, 2, ··· ,m - 1}. It follows from the definition of modulo-m multiplication that a ¡ b =0. Since 0 is not an element in the set {1, 2, ··· ,m- 1}, the set is not closed under the modulo-m multiplication and hence can not be a group. 2.5 It follows from Problem 2.3 that, if m is not a prime, the set {1, 2, ··· ,m - 1} can not be a group under the modulo-m multiplication. Consequently, the set {0, 1, 2, ··· ,m - 1} can not be a field under the modulo-m addition and multiplication. 2.7 First we note that the set of sums of unit element contains the zero element 0. For any 1 ‘<λ, X i=1 1+ λ-X i=1 1= λ X i=1 1=0. Hence every sum has an inverse with respect to the addition operation of the field GF(q). Since the sums are elements in GF(q), they must satisfy the associative and commutative laws with respect to the addition operation of GF(q). Therefore, the sums form a commutative group under the addition of GF(q). Next we note that the sums contain the unit element 1 of GF(q). For each nonzero sum X i=1 1 with 1 ‘<λ, we want to show it has a multiplicative inverse with respect to the multipli- cation operation of GF(q). Since λ is prime, and λ are relatively prime and there exist two 1
Transcript
  • Chapter 2

    2.3 Since m is not a prime, it can be factored as the product of two integers a and b,

    m = a b

    with 1 < a, b < m. It is clear that both a and b are in the set {1, 2, ,m 1}. It followsfrom the definition of modulo-m multiplication that

    a b = 0.

    Since 0 is not an element in the set {1, 2, ,m1}, the set is not closed under the modulo-mmultiplication and hence can not be a group.

    2.5 It follows from Problem 2.3 that, if m is not a prime, the set {1, 2, ,m 1} can not be agroup under the modulo-m multiplication. Consequently, the set {0, 1, 2, ,m 1} can notbe a field under the modulo-m addition and multiplication.

    2.7 First we note that the set of sums of unit element contains the zero element 0. For any 1 ` < , `

    i=1

    1 +`i=1

    1 =i=1

    1 = 0.

    Hence every sum has an inverse with respect to the addition operation of the field GF(q). Sincethe sums are elements in GF(q), they must satisfy the associative and commutative laws withrespect to the addition operation of GF(q). Therefore, the sums form a commutative groupunder the addition of GF(q).Next we note that the sums contain the unit element 1 of GF(q). For each nonzero sum

    `i=1

    1

    with 1 ` < , we want to show it has a multiplicative inverse with respect to the multipli-cation operation of GF(q). Since is prime, ` and are relatively prime and there exist two

    1

  • integers a and b such thata `+ b = 1, (1)

    where a and are also relatively prime. Dividing a by , we obtain

    a = k+ r with 0 r < . (2)

    Since a and are relatively prime, r 6= 0. Hence

    1 r <

    Combining (1) and (2), we have

    ` r = (b+ k`) + 1

    Consider

    `i=1

    1 ri=1

    1 =`ri=1

    1 =

    (b+k`)i=1

    +1

    = (i=1

    1)(

    (b+k`)i=1

    1) + 1

    = 0 + 1 = 1.

    Hence, every nonzero sum has an inverse with respect to the multiplication operation of GF(q).Since the nonzero sums are elements of GF(q), they obey the associative and commutativelaws with respect to the multiplication of GF(q). Also the sums satisfy the distributive law.As a result, the sums form a field, a subfield of GF(q).

    2.8 Consider the finite field GF(q). Let n be the maximum order of the nonzero elements of GF(q)and let be an element of order n. It follows from Theorem 2.9 that n divides q 1, i.e.

    q 1 = k n.

    Thus n q 1. Let be any other nonzero element in GF(q) and let e be the order of .

    2

  • Suppose that e does not divide n. Let (n, e) be the greatest common factor of n and e. Thene/(n, e) and n are relatively prime. Consider the element

    (n,e)

    This element has order e/(n, e). The element

    (n,e)

    has order ne/(n, e) which is greater than n. This contradicts the fact that n is the maximumorder of nonzero elements in GF(q). Hence e must divide n. Therefore, the order of eachnonzero element of GF(q) is a factor of n. This implies that each nonzero element of GF(q)is a root of the polynomial

    Xn 1.

    Consequently, q 1 n. Since n q 1 (by Theorem 2.9), we must have

    n = q 1.

    Thus the maximum order of nonzero elements in GF(q) is q-1. The elements of order q 1are then primitive elements.

    2.11 (a) Suppose that f(X) is irreducible but its reciprocal f (X) is not. Then

    f (X) = a(X) b(X)

    where the degrees of a(X) and b(X) are nonzero. Let k and m be the degrees of a(X) andb(X) respectivly. Clearly, k +m = n. Since the reciprocal of f (X) is f(X),

    f(X) = Xnf (1

    X) = Xka(

    1

    X) Xmb( 1

    X).

    This says that f(X) is not irreducible and is a contradiction to the hypothesis. Hence f (X)must be irreducible. Similarly, we can prove that if f (X) is irreducible, f(X) is alsoirreducible. Consequently, f (X) is irreducible if and only if f(X) is irreducible.

    3

  • (b) Suppose that f(X) is primitive but f (X) is not. Then there exists a positive integer k lessthan 2n 1 such that f (X) divides Xk + 1. Let

    Xk + 1 = f (X)q(X).

    Taking the reciprocals of both sides of the above equality, we have

    Xk + 1 = Xkf (1

    X)q(

    1

    X)

    = Xnf (1

    X) Xknq( 1

    X)

    = f(X) Xknq( 1X).

    This implies that f(X) divides Xk + 1 with k < 2n 1. This is a contradiction to thehypothesis that f(X) is primitive. Hencef (X) must be also primitive. Similarly, if f (X) isprimitive, f(X) must also be primitive. Consequently f (X) is primitive if and only if f(X)is primitive.

    2.15 We only need to show that , 2, , 2e1 are distinct. Suppose that

    2i

    = 2j

    for 0 i, j < e and i < j. Then,(2

    ji1)2i

    = 1.

    Since the order is a factor of 2m 1, it must be odd. For (2ji1)2i = 1, we must have

    2ji1 = 1.

    Since both i and j are less than e, j i < e. This is contradiction to the fact that the e is thesmallest nonnegative integer such that

    2e1 = 1.

    4

  • Hence 2i 6= 2j for 0 i, j < e.

    2.16 Let n be the order of 2i . Then(2

    i

    )n= 1

    Hence

    (n)2

    i

    = 1. (1)

    Since the order n of is odd, n and 2i are relatively prime. From(1), we see that n divides nand

    n = kn. (2)

    Now consider(2

    i

    )n = (n)2i

    = 1

    This implies that n (the order of 2i) divides n. Hence

    n = `n (3)

    From (2) and (3), we conclude thatn = n.

    2.20 Note that c v = c (0+v) = c 0+ c v. Adding(c v) to both sides of the above equality,we have

    c v + [(c v)] = c 0+ c v + [(c v)]0 = c 0+ 0.

    Since 0 is the additive identity of the vector space, we then have

    c 0 = 0.

    2.21 Note that 0 v = 0. Then for any c in F ,

    (c+ c) v = 0

    5

  • (c) v + c v = 0.

    Hence (c) v is the additive inverse of c v, i.e.

    (c v) = (c) v (1)

    Since c 0 = 0 (problem 2.20),c (v + v) = 0

    c (v) + c v = 0.

    Hence c (v) is the additive inverse of c v, i.e.

    (c v) = c (v) (2)

    From (1) and (2), we obtain

    (c v) = (c) v = c (v)

    2.22 By Theorem 2.22, S is a subspace if (i) for any u and v in S, u + v is in S and (ii) for any cin F and u in S, c u is in S. The first condition is now given, we only have to show that thesecond condition is implied by the first condition for F = GF (2). Let u be any element in S.It follows from the given condition that

    u+ u = 0

    is also in S. Let c be an element in GF(2). Then, for any u in S,

    c u =

    0 for c = 0u for c = 1Clearly c u is also in S. Hence S is a subspace.

    2.24 If the elements of GF(2m) are represented by m-tuples over GF(2), the proof that GF(2m) is

    6

  • a vector space over GF(2) is then straight-forward.

    2.27 Let u and v be any two elements in S1 S2. It is clear the u and v are elements in S1, and uand v are elements in S2. Since S1 and S2 are subspaces,

    u+ v S1

    andu+ v S2.

    Hence,u + v is in S1 S2. Now let x be any vector in S1 S2. Then x S1, and x S2.Again, since S1 and S2 are subspaces, for any c in the field F , c x is in S1 and also in S2.Hence c v is in the intersection, S1 S2. It follows from Theorem 2.22 that S1 S2 is asubspace.

    7

  • Chapter 3

    3.1 The generator and parity-check matrices are:

    G =

    0 1 1 1 1 0 0 0

    1 1 1 0 0 1 0 0

    1 1 0 1 0 0 1 0

    1 0 1 1 0 0 0 1

    H =

    1 0 0 0 0 1 1 1

    0 1 0 0 1 1 1 0

    0 0 1 0 1 1 0 1

    0 0 0 1 1 0 1 1

    From the parity-check matrix we see that each column contains odd number of ones, and notwo columns are alike. Thus no two columns sum to zero and any three columns sum to a 4-tuple with odd number of ones. However, the first, the second, the third and the sixth columnssum to zero. Therefore, the minimum distance of the code is 4.

    3.4 (a) The matrixH1 is an (nk+1)(n+1) matrix. First we note that the nk rows ofH arelinearly independent. It is clear that the first (n k) rows of H1 are also linearly independent.The last row of H1 has a 1 at its first position but other rows of H1 have a 0 at their firstposition. Any linear combination including the last row of H1 will never yield a zero vector.Thus all the rows of H1 are linearly independent. Hence the row space of H1 has dimensionn k + 1. The dimension of its null space, C1, is then equal to

    dim(C1) = (n+ 1) (n k + 1) = k

    Hence C1 is an (n+ 1, k) linear code.(b) Note that the last row of H1 is an all-one vector. The inner product of a vector with oddweight and the all-one vector is 1. Hence, for any odd weight vector v,

    v HT1 6= 0

    and v cannot be a code word in C1. Therefore, C1 consists of only even-weight code words.(c) Let v be a code word in C. Then v HT = 0. Extend v by adding a digit v to its left.

    8

  • This results in a vector of n+ 1 digits,

    v1 = (v,v) = (v, v0, v1, , vn1).

    For v1 to be a vector in C1, we must require that

    v1HT1 = 0.

    First we note that the inner product of v1 with any of the first nk rows of H1 is 0. The innerproduct of v1 with the last row of H1 is

    v + v0 + v1 + + vn1.

    For this sum to be zero, we must require that v = 1 if the vector v has odd weight andv = 0 if the vector v has even weight. Therefore, any vector v1 formed as above is a codeword in C1, there are 2k such code words. The dimension of C1 is k, these 2k code words areall the code words of C1.

    3.5 Let Ce be the set of code words in C with even weight and let Co be the set of code words inC with odd weight. Let x be any odd-weight code vector from Co. Adding x to each vector inCo, we obtain a set of C e of even weight vector. The number of vectors in C e is equal to thenumber of vectors in Co, i.e. |C e| = |Co|. Also C e Ce. Thus,

    |Co| |Ce| (1)

    Now adding x to each vector in Ce, we obtain a set C o of odd weight code words. The numberof vectors in C o is equal to the number of vectors in Ce and

    C o Co

    Hence

    |Ce| |Co| (2)

    From (1) and (2), we conclude that |Co| = |Ce|.

    9

  • 3.6 (a) From the given condition on G, we see that, for any digit position, there is a row in Gwith a nonzero component at that position. This row is a code word in C. Hence in the codearray, each column contains at least one nonzero entry. Therefore no column in the code arraycontains only zeros.(b) Consider the `-th column of the code array. From part (a) we see that this column containsat least one 1. Let S0 be the code words with a 0 at the `-th position and S1 be thecodewords with a 1 at the `-th position. Let x be a code word from S1. Adding x to eachvector in S0, we obtain a set S 1 of code words with a 1 at the `-th position. Clearly,

    |S 1| = |S0| (1)

    andS 1 S1. (2)

    Adding x to each vector in S1, we obtain a set of S 0 of code words with a 0 at the `-thlocation. We see that

    |S 0| = |S1| (3)

    andS 0 S0. (4)

    From (1) and (2), we obtain|S0| |S1|. (5)

    From (3) and (4) ,we obtain|S1| |S0|. (6)

    From (5) and (6) we have |S0| = |S1|. This implies that the `-th column of the code arrayconsists 2k1 zeros and 2k1 ones.(c) Let S0 be the set of code words with a 0 at the `-th position. From part (b), we see thatS0 consists of 2k1 code words. Let x and y be any two code words in S0. The sum x + yalso has a zero at the `-th location and hence is code word in S0. Therefore S0 is a subspaceof the vector space of all n-tuples over GF(2). Since S0 is a subset of C, it is a subspace of C.The dimension of S0 is k 1.

    10

  • 3.7 Let x, y and z be any three n-tuples over GF(2). Note that

    d(x,y) = w(x+ y),

    d(y, z) = w(y + z),

    d(x, z) = w(x+ z).

    It is easy to see thatw(u) + w(v) w(u+ v). (1)

    Let u = x+ y and v = y + z. It follows from (1) that

    w(x+ y) + w(y + z) w(x+ y + y + z) = w(x+ z).

    From the above inequality, we have

    d(x,y) + d(y, z) d(x, z).

    3.8 From the given condition, we see that < bdmin12

    c. It follows from the theorem 3.5 that allthe error patterns of or fewer errors can be used as coset leaders in a standard array. Hence,they are correctable. In order to show that any error pattern of ` or fewer errors is detectable,we need to show that no error pattern x of ` or fewer errors can be in the same coset as anerror pattern y of or fewer errors. Suppose that x and y are in the same coset. Then x + yis a nonzero code word. The weight of this code word is

    w(x+ y) w(x) + w(y) `+ < dmin.

    This is impossible since the minimum weight of the code is dmin. Hence x and y are indifferent cosets. As a result, when x occurs, it will not be mistaken as y. Therefore x isdetectable.

    3.11 In a systematic linear code, every nonzero code vector has at least one nonzero component inits information section (i.e. the rightmost k positions). Hence a nonzero vector that consists ofonly zeros in its rightmost k position can not be a code word in any of the systematic code in .

    11

  • Now consider a nonzero vector v = (v0, v1, , vn1) with at least one nonzero componentin its k rightmost positions,say vnk+i = 1 for 0 i < k. Consider a matrix of the followingform which has v as its i-th row:

    p00 p01 p0,nk1 1 0 0 0 0p10 p11 p1,nk1 0 1 0 0 0.

    .

    .

    .

    .

    .

    v0 v1 vnk1 vnk vnk+1 vn1pi+1,0 pi+1,1 pi+1,nk1 0 0 1 0

    .

    .

    .

    .

    .

    .

    pk1,0 pk1,1 pk1,nk1 0 0 0 0 1

    By elementary row operations, we can put G into systematic form G1. The code generatedby G1 contains v as a code word. Since each pij has 2 choices, 0 or 1, there are 2(k1)(nk)

    matrices G with v as the i-th row. Each can be put into systematic form G1 and each G1generates a systematic code containing v as a code word. Hence v is contained in 2(k1)(nk)

    codes in .

    3.13 The generator matrix of the code is

    G = [P1 Ik P2 Ik]

    = [G1 G2]

    Hence a nonzero codeword in C is simply a cascade of a nonzero codeword v1 in C1 and anonzero codeword v2 in C2, i.e.,

    (v1,v2).

    Since w(v1) d1 and w(v2) d2, hence w[(v1,v2)] d1 + d2.

    3.15 It follows from Theorem 3.5 that all the vectors of weight t or less can be used as coset leaders.There are (

    n

    0

    )+

    (n

    1

    )+ +

    (n

    t

    )12

  • such vectors. Since there are 2nk cosets, we must have

    2nk (n

    0

    )+

    (n

    1

    )+ +

    (n

    t

    ).

    Taking logarithm on both sides of the above inequality, we obtain the Hamming bound on t,

    n k log2{1 +(n

    1

    )+ +

    (n

    t

    )}.

    3.16 Arrange the 2k code words as a 2k n array. From problem 6(b), each column of this codearray contains 2k1 zeros and 2k1 ones. Thus the total number of ones in the array is n 2k1.Note that each nonzero code word has weight (ones) at least dmin. Hence

    (2k 1) dmin n 2k1

    This implies that

    dmin n 2k1

    2k 1 .

    3.17 The number of nonzero vectors of length n and weight d 1 or less is

    d1i=1

    (n

    i

    )

    From the result of problem 3.11, each of these vectors is contained in at most 2(k1)(nk) linearsystematic codes. Therefore there are at most

    M = 2(k1)(nk)d1i=1

    (n

    i

    )

    linear systematic codes contain nonzero codewords of weight d 1 or less. The total numberof linear systematic codes is

    N = 2(k(nk)

    If M < N , there exists at least one code with minimum weight at least d. M < N implies

    13

  • that

    2(k1)(nk)d1i=1

    (n

    i

    )< 2k(nk)

    d1i=1

    (n

    i

    )< 2(nk).

    3.18 Let dmin be the smallest positive integer such that

    dmin1i=1

    (n

    i

    )< 2(nk)

    dmini=1

    (n

    i

    )

    From problem 3.17, the first inequality garantees the existence of a systematic linear codewith minimum distance dmin.

    14

  • Chapter 4

    4.1 A parity-check matrix for the (15, 11) Hamming code is

    H =

    1 0 0 0 1 0 0 1 1 0 1 0 1 1 1

    0 1 0 0 1 1 0 0 0 1 1 1 0 1 1

    0 0 1 0 0 1 1 0 1 0 1 1 1 0 1

    0 0 0 1 0 0 1 1 0 1 0 1 1 1 1

    Let r = (r0, r1, . . . , r14) be the received vector. The syndrome of r is (s0, s1, s2, s3) with

    s0 = r0 + r4 + r7 + r8 + r10 + r12 + r13 + r14,

    s1 = r1 + r4 + r5 + r9 + r10 + r11 + r13 + r14,

    s2 = r2 + r5 + r6 + r8 + r10 + r11 + r12 + r14,

    s3 = r3 + r6 + r7 + r9 + r11 + r12 + r13 + r14.

    Set up the decoding table as Table 4.1. From the decoding table, we find that

    e0 = s0s1s2s3, e1 = s0s1s2s3, e2 = s0s1s2s3,

    e3 = s0s1s2s3, e4 = s0s1s2s3, e5 = s0s1s2s3,

    . . . , e13 = s0s1s2s3, e14 = s0s1s2s3.

    15

  • Table 4.1: Decoding Tables0 s1 s2 s3 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12 e13 e140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 00 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 00 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 01 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 00 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 01 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 01 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 00 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 01 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 00 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 01 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 01 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 01 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

    r0 r1 Buffer Register r14

    +

    ...

    s0

    +

    s1

    +

    s2

    +

    s3

    ...

    s0 s1 s2 s3 s0 s1 s2 s3 s0 s1 s2 s3 s0 s1 s2 s3

    +

    e0r0

    +

    e1r1

    +

    e2r2

    +

    e14r14

    Decoded bits

    ... ... ...

    16

  • 4.3 From (4.3), the probability of an undetected error for a Hamming code is

    Pu(E) = 2m{1 + (2m 1)(1 2p)2m1} (1 p)2m1

    = 2m + (1 2m)(1 2p)2m1 (1 p)2m1. (1)

    Note that(1 p)2 1 2p, (2)

    and(1 2m) 0. (3)

    Using (2) and (3) in (1), we obtain the following inequality:

    Pu(E) 2m + (1 2m)[(1 p)2]2m1 (1 p)2m1

    = 2m + (1 p)2m1{(1 2m)(1 p) 1}

    = 2m (1 p)2m1{(1 (1 p)(1 2m)}. (4)

    Note that 0 1 p 1 and 0 1 2m < 1. Clearly 0 (1 p) (1 2m) < 1, and

    1 (1 p) (1 2m) 0. (5)

    Since (1 p)2m1 0, it follows from (4) and (5) that Pu(E) 2m.

    4.6 The generator matrix for the 1st-order RM code RM(1,3) is

    G =

    v0

    v3

    v2

    v1

    =

    1 1 1 1 1 1 1 1

    0 0 0 0 1 1 1 1

    0 0 1 1 0 0 1 1

    0 1 0 1 0 1 0 1

    (1)

    The code generated by this matrix is a (8, 4) code with minimum distance 4. Let (a0, a3, a2, a1)

    17

  • be the message to be encoded. Then its corresponding codeword is

    b = (b0, b1, b2, b3, b4, b5, b6, b7)

    = a0v0 + a3v3 + a2v2 + a1v1. (2)

    From (1) and (2), we find that

    b0 = a0, b1 = a0 + a1, b2 = a0 + a2, b3 = a0 + a2 + a1,

    b4 = a0 + a3, b5 = a0 + a3 + a1, b6 = a0 + a3 + a2,

    b7 = a0 + a3 + a2 + a1. (3)

    From (3), we find that

    a1 = b0 + b1 = b2 + b3 = b4 + b5 = b6 + b7,

    a2 = b0 + b2 = b1 + b3 = b4 + b6 = b5 + b7,

    a3 = b0 + b4 = b1 + b5 = b2 + b6 = b3 + b7,

    a0 = b0 = b1 + a1 = b2 + a2 = b3 + a2 + a1 = b4 + a3

    = b5 + a3 + a1 = b6 + a3 + a2 = b7 + a3 + a2 + a1.

    Let r = (r0, r1, r2, r3, r4, r5, r6, r7) be the received vector. The check-sum for decoding a1, a2and a3 are:

    (a1) (a2) (a3)

    A(0)1 = r0 + r1 B

    (0)1 = r0 + r2 C

    (0)1 = r0 + r4

    A(0)2 = r2 + r3 B

    (0)2 = r1 + r3 C

    (0)2 = r1 + r5

    A(0)3 = r4 + r5 B

    (0)3 = r4 + r6 C

    (0)3 = r2 + r6

    A(0)4 = r6 + r7 B

    (0)4 = r5 + r7 C

    (0)4 = r3 + r7

    18

  • After decoding a1, a2 and a3, we form

    r(1) = r a1v1 a2v2 a3v3= (r

    (1)0 , r

    (1)1 , r

    (1)2 , r

    (1)3 , r

    (1)4 , r

    (1)5 , r

    (1)6 , r

    (1)7 ).

    Then a0 is equal to the value taken by the majority of the bits in r(1).For decoding (01000101), the four check-sum for decoding a1, a2 and a3 are:

    (1) A(0)1 = 1, A(0)2 = 0, A(0)3 = 1, A(0)4 = 1;(2) B(0)1 = 0, B(0)2 = 1, B(0)3 = 0, B(0)4 = 0;(3) C(0)1 = 0, C(0)2 = 0, C(0)3 = 0, C(0)4 = 1.

    Based on these check-sums, a1, a2 and a3 are decoded as 1, 0 and 0, respectively.To decode a0, we form

    r(1) = (01000101) a1v1 a2v2 a3v3= (00010000).

    From the bits of r(1), we decode a0 to 0. Therefore, the decoded message is (0001).

    4.14

    RM(1, 3) = { 0, 1, X1, X2, X3, 1 +X1, 1 +X2,1 +X3, X1 +X2, X1 +X3, X2 +X3,

    1 +X1 +X2, 1 +X1 +X3, 1 +X2 +X3,

    X1 +X2 +X3, 1 +X1 +X2 +X3}.

    4.15 The RM(r,m 1) and RM(r 1,m 1) codes are given as follows (from (4.38)):

    RM(r,m 1) = {v(f) : f(X1, X2, . . . , Xm1) P(r,m 1)},RM(r 1,m 1) = {v(g) : g(X1, X2, . . . , Xm1) P(r 1,m 1)}.

    Then

    19

  • RM(r,m)={v(h) : h = f(X1, X2, . . . , Xm1) +Xmg(X1, X2, . . . , Xm1)with f P(r,m 1) and g P(r 1,m 1)}.

    20

  • Chapter 5

    5.6 (a) A polynomial over GF(2) with odd number of terms is not divisible by X + 1, hence itcan not be divisible by g(X) if g(X) has (X +1) as a factor. Therefore, the code contains nocode vectors of odd weight.

    (b) The polynomial Xn + 1 can be factored as follows:

    Xn + 1 = (X + 1)(Xn1 +Xn2 + +X + 1)

    Since g(X) divides Xn+1 and since g(X) does not have X+1 as a factor, g(X) must dividethe polynomial Xn1 + Xn2 + + X + 1. Therefore 1 + X + + Xn2 + Xn1 is acode polynomial, the corresponding code vector consists of all 1s.

    (c) First, we note that no X i is divisible by g(X). Hence, no code word with weight one.Now, suppose that there is a code word v(X) of weight 2. This code word must be of theform,

    v(X) = X i +Xj

    with 0 i < j < n. Put v(X) into the following form:

    v(X) = X i(1 +Xji).

    Note that g(X) and X i are relatively prime. Since v(X) is a code word, it must be divisibleby g(X). Since g(X) and X i are relatively prime, g(X) must divide the polynomial Xji+1.However, j i < n. This contradicts the fact that n is the smallest integer such that g(X)divides Xn + 1. Hence our hypothesis that there exists a code vector of weight 2 is invalid.Therefore, the code has a minimum weight at least 3.

    5.7 (a) Note that Xn + 1 = g(X)h(X). Then

    Xn(Xn + 1) = Xng(X1)h(X1)

    21

  • 1 +Xn =[Xnkg(X1)

    ] [Xkh(X1)

    ]= g(X)h(X).

    where h(X) is the reciprocal of h(X). We see that g(X) is factor of Xn + 1. Therefore,g(X) generates an (n, k) cyclic code.

    (b) Let C and C be two (n, k) cyclic codes generated by g(X) and g(X) respectively. Letv(X) = v0 + v1X + + vn1Xn1 be a code polynomial in C. Then v(X) must be amultiple of g(X), i.e.,

    v(X) = a(X)g(X).

    Replacing X by X1 and multiplying both sides of above equality by Xn1, we obtain

    Xn1v(X1) =[Xk1a(X1)

    ] [Xnkg(X1)

    ]Note that Xn1v(X1), Xk1a(X1) and Xnkg(X1) are simply the reciprocals of v(X),a(X) and g(X) respectively. Thus,

    v(X) = a(X)g(X). (1)

    From (1), we see that the reciprocal v(X) of a code polynomial in C is a code polynomial inC. Similarly, we can show the reciprocal of a code polynomial in C is a code polynomial inC. Since v(X) and v(X) have the same weight, C and C have the same weight distribution.

    5.8 Let C1 be the cyclic code generated by (X + 1)g(X). We know that C1 is a subcode of Cand C1 consists all the even-weight code vectors of C as all its code vectors. Thus the weightenumerator A1(z) of C1 should consists of only the even-power terms of A(z) =

    ni=0Aiz

    i.

    Hence

    A1(z) =

    bn/2cj=0

    A2jz2j (1)

    Consider the sumA(z) + A(z) =

    ni=0

    Aizi +

    ni=0

    Ai(z)i

    22

  • =ni=0

    Ai[zi + (z)i] .

    We see that zi + (z)i = 0 if i is odd and that zi + (z)i = 2zi if i is even. Hence

    A(z) + A(z) =bn/2cj=0

    2A2jz2j (2)

    From (1) and (2), we obtain

    A1(z) = 1/2 [A(z) + A(z)] .

    5.10 Let e1(X) = X i + X i+1 and e2(X) = Xj + Xj+1 be two different double-adjacent-errorpatterns such that i < j. Suppose that e1(X) and e2(X) are in the same coset. Then e1(X) +e2(X) should be a code polynomial and is divisible by g(X) = (X + 1)p(X). Note that

    e1(X) + e2(X) = Xi(X + 1) +Xj(X + 1)

    = (X + 1)X i(Xji + 1)

    Since g(X) divides e1(X) + e2(X), p(X) should divide X i(Xji + 1). However p(X) andX i are relatively prime. Therefore p(X) must divide Xji + 1. This is not possible sincej i < 2m 1 and p(X) is a primitive polynomial of degree m (the smallest integer n suchthat p(X) divides Xn + 1 is 2m 1). Thus e1(X) + e2(X) can not be in the same coset.

    5.12 Note that e(i)(X) is the remainder resulting from dividing X ie(X) by Xn + 1. Thus

    X ie(X) = a(X)(Xn + 1) + e(i)(X) (1)

    Note that g(X) divides Xn + 1, and g(X) and X i are relatively prime. From (1), we see thatif e(X) is not divisible by g(X), then e(i)(X) is not divisible by g(X). Therefore, if e(X) isdetectable, e(i)(X) is also detectable.

    23

  • 5.14 Suppose that ` does not divide n. Then

    n = k `+ r, 0 < r < `.

    Note thatv(n)(X) = v(k`+r)(X) = v(X) (1)

    Since v(`)(X) = v(X),v(k`)(X) = v(X) (2)

    From (1) and (2), we havev(r)(X) = v(X).

    This is not possible since 0 < r < ` and ` is the smallest positive integer such that v(`)(X) =v(X). Therefore, our hypothesis that ` does not divide n is invalid, hence ` must divide n.

    5.17 Let n be the order of . Then n = 1, and is a root of Xn + 1. It follows from Theorem2.14 that (X) is a factor of Xn + 1. Hence (X) generates a cyclic code of length n.

    5.18 Let n1 be the order of 1 and n2 be the order of 2. Let n be the least common multiple of n1and n2, i.e. n = LCM(n1, n2). Consider Xn + 1. Clearly, 1 and 2 are roots of Xn + 1.Since 1(X) and 2(X) are factors of Xn + 1. Since 1(X) and 2(X) are relatively prime,g(X) = 1(X) 2(X) divides Xn + 1. Hence g(X) = 1(X) 2(X) generates a cycliccode of length n = LCM(n1, n2).

    5.19 Since every code polynomial v(X) is a multiple of the generator polynomial p(X), every rootof p(X) is a root of v(X). Thus v(X) has and its conjugates as roots. Suppose v(X) isa binary polynomial of degree 2m 2 or less that has as a root. It follows from Theorem2.14 that v(X) is divisible by the minimal polynomial p(X) of . Hence v(X) is a codepolynomial in the Hamming code generated by p(X).

    5.20 Let v(X) be a code polynomial in both C1 and C2. Then v(X) is divisible by both g1(X) andg2(X). Hence v(X) is divisible by the least common multiple g(X) of g1(X) and g2(X),i.e. v(X) is a multiple of g(X) = LCM(g1(X),g2(X)). Conversely, any polynomial ofdegree n 1 or less that is a multiple of g(X) is divisible by g1(X) and g2(X). Hencev(X) is in both C1 and C2. Also we note that g(X) is a factor of Xn + 1. Thus the code

    24

  • polynomials common toC1 andC2 form a cyclic code of length nwhose generator polynomialis g(X) = LCM(g1(X),g2(X)). The code C3 generated by g(X) has minimum distanced3 max(d1, d2).

    5.21 See Problem 4.3.

    5.22 (a) First, we note that X2m1 + 1 = p(X)h(X). Since the roots of X2m1 + 1 are the2m 1 nonzero elements in GF(2m) which are all distinct, p(X) and h(X) are relativelyprime. Since every code polynomial v(X) in Cd is a polynomial of degree 2m 2 or less,v(X) can not be divisible by p(X) (otherwise v(X) is divisible by p(X)h(X) = X2m1+1and has degree at least 2m 1). Suppose that v(i)(X) = v(X). It follows from (5.1) that

    X iv(X) = a(X)(X2m1 + 1) + v(i)(X)

    = a(X)(X2m1 + 1) + v(X)

    Rearranging the above equality, we have

    (X i + 1)v(X) = a(X)(X2m1 + 1).

    Since p(X) divides X2m1 + 1, it must divide (X i + 1)v(X). However p(X) and v(X) arerelatively prime. Hence p(X) divides X i + 1. This is not possible since 0 < i < 2m 1 andp(X) is a primitive polynomial(the smallest positive integer n such that p(X) divides Xn+1is n = 2m1). Therefore our hypothesis that, for 0 < i < 2m1, v(i)(X) = v(X) is invalid,and v(i)(X) 6= v(X).

    (b) From part (a), a code polynomial v(X) and its 2m 2 cyclic shifts form all the 2m 1nonzero code polynomials in Cd. These 2m 1 nonzero code polynomial have the sameweight, sayw. The total number of nonzero components in the code words ofCd isw(2m1).Now we arrange the 2m code words in Cd as an 2m (2m 1) array. It follows from Problem3.6(b) that every column in this array has exactly 2m1 nonzero components. Thus the totalnonzero components in the array is 2m1 (2m 1). Equating w.(2m 1) to 2m1 (2m 1),we have

    w = 2m1.

    25

  • 5.25 (a) Any error pattern of double errors must be of the form,

    e(X) = X i +Xj

    where j > i. If the two errors are not confined to n k = 10 consecutive positions, we musthave

    j i+ 1 > 10,

    15 (j i) + 1 > 10.

    Simplifying the above inequalities, we obtain

    j i > 9

    j i < 6.

    This is impossible. Therefore any double errors are confined to 10 consecutive positions andcan be trapped.

    (b) An error pattern of triple errors must be of the form,

    e(X) = X i +Xj +Xk,

    where 0 i < j < k 14. If these three errors can not be trapped, we must have

    k i > 9

    j i < 6

    k j < 6.

    If we fix i, the only solutions for j and k are j = 5+ i and k = 10+ i. Hence, for three errorsnot confined to 10 consecutive positions, the error pattern must be of the following form

    e(X) = X i +X5+i +X10+i

    26

  • for 0 i < 5. Therefore, only 5 error patterns of triple errors can not be trapped.

    5.26 (b) Consider a double-error pattern,

    e(X) = X i +Xj

    where 0 i < j < 23. If these two errors are not confined to 11 consecutive positions, wemust have

    j i+ 1 > 11

    23 (j i 1) > 11

    From the above inequalities, we obtain

    10 < j i < 13

    For a fixed i, j has two possible solutions, j = 11+i and j = 12+i. Hence, for a double-errorpattern that can not be trapped, it must be either of the following two forms:

    e1(X) = Xi +X11+i,

    e1(X) = Xi +X12+i.

    There are a total of 23 error patterns of double errors that can not be trapped.

    5.27 The coset leader weight distribution is

    0 = 1, 1 =

    (23

    1

    ), 2 =

    (23

    2

    ), 3 =

    (23

    3

    )

    4 = 5 = = 23 = 0

    The probability of a correct decoding is

    P (C) = (1 p)23 +(23

    1

    )p(1 p)22 +

    (23

    2

    )p2(1 p)21

    27

  • +(23

    3

    )p3(1 p)20.

    The probability of a decoding error is

    P (E) = 1 P (C).

    5.29(a) Consider two single-error patterns, e1(X) = X i and e2(X) = Xj , where j > i. Supposethat these two error patterns are in the same coset. Then X i + Xj must be divisible byg(X) = (X3 + 1)p(X). This implies that Xji + 1 must be divisible by p(X). This isimpossible since j i < n and n is the smallest positive integer such that p(X) dividesXn + 1. Therefore no two single-error patterns can be in the same coset. Consequently, allsingle-error patterns can be used as coset leaders.

    Now consider a single-error pattern e1(X) = X i and a double-adjacent-error pattern e2(X) =Xj + Xj+1, where j > i. Suppose that e1(X) and e2(X) are in the same coset. ThenX i+Xj+Xj+1 must be divisible by g(X) = (X3+1)p(X). This is not possible since g(X)has X + 1 as a factor, however X i +Xj +Xj+1 does not have X + 1 as a factor. Hence nosingle-error pattern and a double-adjacent-error pattern can be in the same coset.Consider two double-adjacent-error patterns,X i+X i+1 and Xj+Xj+1 where j > i. Supposethat these two error patterns are in the same cosets. Then X i + X i+1 + Xj + Xj+1 must bedivisible by (X3 + 1)p(X). Note that

    X i +X i+1 +Xj +Xj+1 = X i(X + 1)(Xji + 1).

    We see that for X i(X + 1)(Xji + 1) to be divisible by p(X), Xji + 1 must be divisibleby p(X). This is again not possible since j i < n. Hence no two double-adjacent-errorpatterns can be in the same coset.

    Consider a single error pattern X i and a triple-adjacent-error pattern Xj + Xj+1 + Xj+2. Ifthese two error patterns are in the same coset, then X i+Xj +Xj+1+Xj+2 must be divisibleby (X3+1)p(X). But X i+Xj +Xj+1+Xj+2 = X i+Xj(1+X +X2) is not divisible byX3+1 = (X+1)(X2+X+1). Therefore, no single-error pattern and a triple-adjacent-errorpattern can be in the same coset.

    Now we consider a double-adjacent-error pattern X i+X i+1 and a triple-adjacent-error pattern

    28

  • Xj +Xj+1 +Xj+2. Suppose that these two error patterns are in the same coset. Then

    X i +X i+1 +Xj +Xj+1 +Xj+2 = X i(X + 1) +Xj(X2 +X + 1)

    must be divisible by (X3+1)p(X). This is not possible since X i+X i+1+Xj+Xj+1+Xj+2

    does not have X+1 as a factor but X3+1 has X+1 as a factor. Hence a double-adjacent-errorpattern and a triple-adjacent-error pattern can not be in the same coset.Consider two triple-adjacent-error patterns, X i + X i+1 + X i+2 and Xj + Xj+1 + Xj+2. Ifthey are in the same coset, then their sum

    X i(X2 +X + 1)(1 +Xji)

    must be divisible by (X3 + 1)p(X), hence by p(X). Note that the degree of p(X) is 3 orgreater. Hence p(X) and (X2 +X + 1) are relatively prime. As a result, p(X) must divideXji+1. Again this is not possible. Hence no two triple-adjacent-error patterns can be in thesame coset.

    Summarizing the above results, we see that all the single-, double-adjacent-, and triple-adjacent-error patterns can be used as coset leaders.

    29

  • Chapter 6

    6.1 (a) The elements , 2 and 4 have the same minimal polynomial 1(X). From table 2.9, wefind that

    1(X) = 1 +X3 +X4

    The minimal polynomial of 3 = 21 = 6 is

    3(X) = 1 +X +X2 +X3 +X4.

    Thus

    g0(X) = LCM(1(X), 2(X))

    = (1 +X3 +X4)(1 +X +X2 +X3 +X4)

    = 1 +X +X2 +X4 +X8.

    (b)

    H =

    1 2 3 4 5 6 7 8 9 10 11 12 13 141 3 6 9 12 15 18 21 24 27 30 33 36 39 42

    H =

    1 1 1 0 1 0 1 1 0 0 1 0 0 0 1

    0 1 0 0 0 1 1 1 1 0 1 0 1 1 0

    0 0 0 1 1 1 1 0 1 0 1 1 0 0 1

    0 1 1 1 1 0 1 0 1 1 0 0 1 0 0

    1 0 1 0 0 1 0 1 0 0 1 0 1 0 0

    0 0 1 0 1 0 0 1 0 1 0 0 1 0 1

    0 1 1 0 0 0 1 1 0 0 0 1 1 0 0

    0 1 1 1 1 0 1 1 1 1 0 1 1 1 1

    .

    30

  • (c) The reciprocal of g(X) in Example 6.1 is

    X8g(X1) = X8(1 +X4 +X6 +X7 +X8

    = X8 +X4 +X2 +X + 1 = g0(X)

    6.2 The table for GF (s5) with p(X) = 1 + X2 + X5 is given in Table P.6.2(a). The minimalpolynomials of elements in GF (2m) are given in Table P.6.2(b). The generator polynomialsof all the binary BCH codes of length 31 are given in Table P.6.2(c)

    Table P.6.2(a) Galois Field GF(25) with p() = 1 + 2 + 5 = 00 (0 0 0 0 0)1 (1 0 0 0 0) (0 1 0 0 0)2 (0 0 1 0 0)3 (0 0 0 1 0)4 (0 0 0 0 1)5 = 1 + 2 (1 0 1 0 0)

    31

  • Table P.6.2(a) Continued6 = + 3 (0 1 0 1 0)7 = 2 + 4 (0 0 1 0 1)8 = 1 + 2 + 3 (1 0 1 1 0)9 = + 3 + 4 (0 1 0 1 1)10 = 1 + 4 (1 0 0 0 1)11 = 1 + + 2 (1 1 1 0 0)12 = + 2 + 3 (0 1 1 1 0)13 = 2 + 3 + 4 (0 0 1 1 1)14 = 1 + 2 + 3 + 4 (1 0 1 1 1)15 = 1 + + 2 + 3 + 4 (1 1 1 1 1)16 = 1 + + 3 + 4 (1 1 0 1 1)17 = 1 + + 4 (1 1 0 0 1)18 = 1 + (1 1 0 0 0)19 = + 2 (0 1 1 0 0)20 = 2 + 3 (0 0 1 1 0)21 = 3 + 4 (0 0 0 1 1)22 = 1 + 2 + 4 (1 0 1 0 1)23 = 1 + + 2 + 3 (1 1 1 1 0)24 = + 2 + 3 + 4 (0 1 1 1 1)25 = 1 + 3 + 4 (1 0 0 1 1)26 = 1 + + 2 + 4 (1 1 1 0 1)27 = 1 + + 3 (1 1 0 1 0)28 = + 2 + 4 (0 1 1 0 1)29 = 1 + + 3 (1 0 0 1 0)30 = + 4 (0 1 0 0 1)

    32

  • Table P.6.2(b)Conjugate Roots i(X)

    1

    , 2, 4, 8, 16

    3, 6, 12, 24, 17

    5, 10, 20, 9, 18

    7, 14, 28, 25, 19

    11, 22, 13, 26, 21

    15, 30, 29, 27, 23

    1 + X

    1 + X2 + X5

    1 + X2 + X3 + X4 + X5

    1 + X + X2 + X4 + X5

    1 + X + X2 + X3 + X5

    1 + X + X3 + X4 + X5

    1 + X3 + X5

    Table P.6.2(c)n k t g(X)

    31 26 1 g1(X) = 1 +X2 +X5

    21 2 g2(X) = 1(X)3(X)

    16 3 g3(X) = 1(X)3(X)5(X)

    11 5 g4(X) = 1(X)3(X)5(X)7(X)

    6 7 g5(X) = 1(X)3(X)5(X)7(X)11(X)

    6.3 (a) Use the table for GF (25) constructed in Problem 6.2. The syndrome components ofr1(X) = X

    7 +X30 are:

    S1 = r1() = 7 + 30 = 19

    S2 = r1(2) = 14 + 29 = 7

    S3 = r1(3) = 21 + 28 = 12

    33

  • S4 = r1(4) = 28 + 27 = 14

    The iterative procedure for finding the error location polynomial is shown in Table P.6.3(a)Table P.6.3(a)

    ()(X) d ` 2 `

    -1/2 1 1 0 -1

    0 1 19 0 0

    1 1 + 19X 25 1 1( = 1/2)

    2 1 + 19X + 6X2 2 2( = 0)

    Hence (X) = 1 + 19X + 6X2. Substituting the nonzero elements of GF (25) into (X),

    we find that (X) has and 24 as roots. Hence the error location numbers are 1 = 30

    and 24 = 7. As a result, the error polynomial is

    e(X) = X7 +X30.

    The decoder decodes r1(X) into r1(X) + e(X) = 0.

    (b) Now we consider the decoding of r2(X) = 1+X17+X28. The syndrome components ofr2(X) are:

    S1 = r2() = 2,

    S2 = S21 =

    4,

    S4 = S22 =

    8,

    S3 = r2(3) = 21.

    The error location polynomial (X) is found by filling Table P.6.3(b):

    34

  • Table P.6.3(b) ()(X) d ` 2 `

    -1/2 1 1 0 -1

    0 1 2 0 0

    1 1 + 2X 30 1 1( = 1/2)

    2 1 + 2X + 28X2 2 2( = 0)

    The estimated error location polynomial is

    (X) = 1 + 2X + 28X2

    This polynomial does not have roots in GF (25), and hence r2(X) cannot be decoded and must

    contain more than two errors.

    6.4 Let n = (2t+ 1). Then

    (Xn + 1) = (X + 1)(X2t +X(2t1) + +X + 1

    The roots of X + 1 are 1, 2t+1, 2(2t+1), , (1)(2t+1). Hence, , 2, , 2t are rootsof the polynomial

    u(X) = 1 +X +X2 + +X(2t1) +X2t.

    This implies that u(X) is code polynomial which has weight 2t + 1. Thus the code has

    minimum distance exactly 2t+ 1.

    6.5 Consider the Galois field GF (22m). Note that 22m 1 = (2m 1) (2m + 1). Let bea primitive element in GF (22m). Then = (2m1) is an element of order 2m + 1. The

    elements 1, , 2, 2, 3, 4, , 2m are all the roots ofX2m+1+1. Let i(X) be the minimal

    35

  • polynomial of i. Then a t-error-correcting non-primitive BCH code of length n = 2m + 1 is

    generated by

    g(X) = LCM {1(X), 2(X), , 2t(X)} .

    6.10 Use Tables 6.2 and 6.3. The minimal polynomial for 2 = 6 and 4 = 12 is

    2(X) = 1 +X +X2 +X4 +X6.

    The minimal polynomial for 3 = 9 is

    3(X) = 1 +X2 +X3.

    The minimal polynomial for 5 = 15 is

    5(X) = 1 +X2 +X4 +X5 +X6.

    Hence

    g(X) = 2(X)3(X)5(X)

    The orders of 2, 3 and 5 are 21,7 and 21 respectively. Thus the length is

    n = LCM(21, 7, 21),

    and the code is a double-error-correcting (21,6) BCH code.

    6.11 (a) Let u(X) be a code polynomial and u(X) = Xn1u(X1) be the reciprocal of u(X).A cyclic code is said to be reversible if u(X) is a code polynomial then u(X) is also a code

    polynomial. Consider

    u(i) = (n1)iu(i)

    Since u(i) = 0 fort i t, we see that u(i) has t, , 1, 0, 1, , t as roots

    36

  • and is a multiple of the generator polynomial g(X). Therefore u(X) is a code polynomial.

    (b) If t is odd, t+1 is even. Hence t+1 is the conjugate of (t+1)/2 and (t+1) is the conjugateof (t+1)/2. Thus t+1 and (t+1) are also roots of the generator polynomial. It follows from

    the BCH bound that the code has minimum distance 2t + 4 (Since the generator polynomialhas (2t+ 3 consecutive powers of as roots).

    37

  • Chapter 7

    7.2 The generator polynomial of the double-error-correcting RS code over GF(25) is

    g(X) = (X + )(X + 2)(X + 3)(X + 4)

    = 10 + 29X + 19X2 + 24X3 +X4.

    The generator polynomial of the triple-error-correcting RS code over GF(25) is

    g(X) = (X + )(X + 2)(X + 3)(X + 4)(X + 5)(X + 6)

    = 21 + 24X + 16X2 + 24X3 + 9X4 + 10X5 +X6.

    7.4 The syndrome components of the received polynomial are:

    S1 = r() = 7 + 2 + = 13,

    S2 = r(2) = 10 + 10 + 14 = 14,

    S3 = r(3) = 13 + 3 + 12 = 9,

    S4 = r(4) = + 11 + 10 = 7,

    S5 = r(5) = 4 + 4 + 8 = 8,

    S6 = r(6) = 7 + 12 + 6 = 3.

    The iterative procedure for finding the error location polynomial is shown in Table P.7.4. Theerror location polynomial is

    (X) = 1 + 9X3.

    The roots of this polynomial are 2, 7, and 12. Hence the error location numbers are 3, 8,and 13.

    From the syndrome components of the received polynomial and the coefficients of the error

    1

  • Table P.7.4

    (X) d l l1 1 1 0 10 1 13 0 0

    1 1 + 13X 10 1 0 (take = 1)2 1 + X 7 1 1 (take = 0)3 1 + 13X + 10X2 9 2 1 (take = 1)4 1 + 14X + 12X2 8 2 2 (take = 2)5 1 + 9X3 0 3 2 (take = 3)6 1 + 9X3

    location polynomial, we find the error value evaluator,

    Z0(X) = S1 + (S2 + 1S1)X + (S3 + 1S2 + 2S1)X2

    = 13 + (14 + 013)X + (9 + 014 + 013)X2

    = 13 + 14X + 9X2.

    The error values at the positions X3, X8, and X13 are:

    e3 =Z0(3)(3)

    =13 + 11 + 3

    3(1 + 83)(1 + 133)=7

    3= 4,

    e8 =Z0(8)(8)

    =13 + 6 + 8

    8(1 + 38)(1 + 138)=2

    8= 9,

    e13 =Z0(13)(13)

    =13 + + 13

    13(1 + 313)(1 + 813)=

    13= 3.

    Consequently, the error pattern is

    e(X) = 4X3 + 9X8 + 3X13.

    and the decoded codeword is the all-zero codeword.

    2

  • 7.5 The syndrome polynomial is

    S(X) = 13 + 14X + 9X2 + 7X3 + 8X4 + 3X5

    Table P.7.5 displays the steps of Euclidean algorithm for finding the error location and errorvalue polynomials.

    Table P.7.5i Z

    (i)0 (X) qi(X) i(X)

    1 X6 00 13 + 14X + 9X2 + 7X3 + 8X4 + 3X5 11 1 + 8X + 5X3 + 2X4 2 + 12X 2 + 12X

    2 + 13X + 12X3 12 + X 3 + X + 13X2

    3 7 + 8X + 3X2 8 + 5X 9 + 3X3

    The error location and error value polynomials are:

    (X) = 9 + 3X3 = 9(1 + 9X3)

    Z0(X) = 7 + 8X + 3X2 = 9(13 + 14X + 9X2)

    From these polynomials, we find that the error location numbers are 3, 8, and 13, and errorvalues are

    e3 =Z0(3)(3)

    =7 + 5 + 12

    93(1 + 83)(1 + 133)=

    12= 4,

    e8 =Z0(8)(8)

    =7 + 1 + 2

    98(1 + 38)(1 + 138)=11

    2= 9,

    e13 =Z0(13)(13)

    =7 + 10 + 7

    913(1 + 313)(1 + 813)=10

    7= 3.

    3

  • Hence the error pattern is

    e(X) = 4X3 + 9X8 + 3X13.

    and the received polynomial is decoded into the all-zero codeword.

    7.6 From the received polynomial,

    r(X) = 2 + 21X12 + 7X20,

    we compute the syndrome,

    S1 = r(1) = 2 + 33 + 27 = 27,

    S2 = r(2) = 2 + 45 + 47 = ,

    S3 = r(3) = 2 + 57 + 67 = 28,

    S4 = r(4) = 2 + 69 + 87 = 29,

    S5 = r(5) = 2 + 81 + 107 = 15,

    S6 = r(6) = 2 + 93 + 127 = 8.

    Therefore, the syndrome polynomial is

    S(X) = 27 + X + 28X2 + 29X3 + 15X4 + 8X5

    Using the Euclidean algorithm, we find

    (X) = 23X3 + 9X + 22,

    Z0(X) = 26X2 + 6X + 18,

    as shown in the following table: The roots of (X) are: 1 = 0, 11 and 19. From theseroots, we find the error location numbers: 1 = (0)1 = 0, 2 = (11)1 = 20, and

    4

  • i Z(i)0 (X) qi(X) i(X)

    -1 X6 - 0

    0 S(X) - 11 5X4 + 9X3 + 22X2 + 11X + 26 23X + 30 23X + 30

    2 8X3 + 4X + 6 3X + 5 24X2 + 30X + 10

    3 26X2 + 6X + 18 28X + 23X3 + 9X + 22

    3 = (19)1 = 12. Hence the error pattern is

    e(X) = e0 + e12X12 + e20X

    20.

    The error location polynomial and its derivative are:

    (X) = 22(1 +X)(1 + 12X)(1 + 20X),

    (X) = 22(1 + 12X)(1 + 20X) + 3(1 +X)(1 + 20X) + 11(1 +X)(1 + 12X).

    The error values at the 3 error locations are given by:

    e0 =Z0(0)(0)

    =26 + 6 + 8

    22(1 + 12)(1 + 20)= 2,

    e12 =Z0(12)(12)

    =2 + 25 + 18

    3(1 + 19)(1 + 8)= 21,

    e20 =Z0(20)(20)

    =17 + 17 + 18

    11(1 + 11)(1 + 23)= 7.

    Hence, the error pattern is

    e(X) = 2 + 21X12 + 7X20

    and the decoded codeword is

    v(X) = r(X) e(X) = 0.

    5

  • 7.9 Let g(X) be the generator polynomial of a t-symbol correcting RS code C over GF(q) with ,2, . . . , 2t as roots, where is a primitive element of GF(q). Since g(X) divides Xq1 1,then

    Xq1 1 = g(X)h(X).

    The polynomial h(X) has 2t+1, . . . , q1 as roots and is called the parity polynomial. Thedual code Cd of C is generated by the reciprocal of h(X),

    h(X) = Xq12th(X1).

    We see that h(X) has (2t+1) = q2t2, (2t+2) = q2t3, . . . , (q2) = , and(q1) = 1 as roots. Thus h(X) has the following consecutive powers of as roots:

    1, , 2, . . . , q2t2.

    Hence Cd is a (q 1, 2t, q 2t) RS code with minimum distance q 2t.

    7.10 The generator polynomial grs(X) of the RS code C has , 2, . . . , d1 as roots. Note thatGF(2m) has GF(2) as a subfield. Consider those polynomial v(X) over GF(2) with degree2m2 or less that has , 2, . . . , d1 (also their conjugates) as roots. These polynomials overGF(2) form a primitive BCH code Cbch with designed distance d. Since these polynomials arealso code polynomials in the RS code Crs, hence Cbch is a subcode of Crs.

    7.11 Suppose c(X) =2m2

    i=0 ciXi is a minimum weight code polynomial in the (2m 1, k) RS

    code C. The minimum weight is increased to d+ 1 provided

    c = c(1) = 2m2i=0

    ci 6= 0.

    We know that c(X) is divisible by g(X). Thus c(X) = a(X)g(X) with a(X) 6= 0. Consider

    c(1) = a(1)g(1).

    Since 1 is not a root of g(X), g(1) 6= 0. If a(1) 6= 0, then c = c(1) 6= 0 and the vector(c, c0, c1, . . . , c2m2) has weight d+1. Next we show that a(1) is not equal to 0. If a(1) = 0,

    6

  • then a(X) has X 1 as a factor and c(X) is a multiple of (X 1)g(X) and must have aweight at least d+ 1. This contradicts to the hypothesis that c(X) is a minimum weight codepolynomial. Consequently the extended RS code has a minimum distance d+ 1.

    7.12 To prove the minimum distance of the doubly extended RS code, we need to show that no 2tor fewer columns of H1 sum to zero over GF(2m) and there are 2t + 1 columns in H1 sumto zero. Suppose there are columns in H1 sum to zero and 2t. There are 4 case to beconsidered:

    (1) All columns are from the same submatrix H.

    (2) The columns consist of the first column of H1 and 1 columns from H.

    (3) The columns consist of the second column of H1 and 1 columns from H.

    (4) The columns consist of the first two columns of H1 and 2 columns from H.

    The first case leads to a Vandermonde determinant. The second and third cases lead toa ( 1) ( 1) Vandermonde determinant. The 4th case leads to a ( 2) ( 2)Vandermonde determinant. The derivations are exactly the same as we did in the book. SinceVandermonde determinants are nonzero, columns of H1 can not be sum to zero. Hence theminimum distance of the extended RS code is at least 2t + 1. However, H generates an RScode with minimum distance exactly 2t + 1. There are 2t + 1 columns in H (they are also inH1), which sum to zero. Therefore the minimum distance of the extended RS code is exactly2t+ 1.

    7.13 Consider

    v(X) =2m2i=0

    a(i)X i =2m2i=0

    (k1j=0

    ajij)X i

    Let be a primitive element in GF(2m). Replacing X by q, we have

    v(q) =2m2i=0

    k1j=0

    ajijiq

    =k1j=0

    aj(2m2i=0

    i(j+q)).

    7

  • We factor 1 +X21 as follows:

    1 +X2m1 = (1 +X)(1 +X +X2 + +X2m2)

    Since the polynomial 1 + X + X2 + + X2m2 has , 2, . . . , 2m2 as roots, then for1 l 2m 2,

    2m2i=0

    li = 1 + l + 2l + + (2m2)l = 0.

    Therefore,

    2m2i=0

    i(j+q) = 0 when 1 j + q 2m 2.

    This implies that

    v(q) = 0 for 0 j < k and 1 q 2m k 1.

    Hence v(X) has , 2, . . . , 2mk1 as roots. The set {v(X)} is a set of polynomial overGF(2m) with 2mk1 consecutive powers of as roots and hence it forms a (2m1, k, 2mk) cyclic RS code over GF(2m).

    8

  • Chapter 8

    8.2 The order of the perfect difference set {0, 2, 3} is q = 2.(a) The length of the code n = 22 + 2 + 1 = 7.(b) Let z(X) = 1 +X2 +X3. Then the parity-check polynomial is

    h(X) = GCD{1 +X2 +X3, X7 + 1} = 1 +X2 +X3.

    (c) The generator polynomial is

    g(X) =X7 + 1

    h(X)= 1 +X2 +X3 +X4.

    (d) From g(X), we find that the generator matrix in systematic form is

    G =

    1 0 1 1 1 0 0

    1 1 1 0 0 1 0

    0 1 1 1 0 0 1

    .The parity-check matrix in systematic form is

    H =

    1 0 0 0 1 1 0

    0 1 0 0 0 1 1

    0 0 1 0 1 1 1

    0 0 0 1 1 0 1

    .

    The check-sums orthogonal on the highest order error digit e6 are:

    A1 = s0 + s2,

    A2 = s1,

    A3 = s3.

    Based on the above check-sum, a type-1 decoder can be implemented.8.4 (a) Since all the columns of H are distinct and have odd weights, no two or three columns

    can sum to zero, hence the minimum weight of the code is at least 4. However, the first,

    1

  • the second, the third and the 6th columns sum to zero. Therefore the minimum weight,hence the minimum distance, of the code is 4.

    (b) The syndrome of the error vector e is

    s = (s0, s1, s2, s3, s4) = eHT

    with

    s0 = e0 + e5 + e6 + e7 + e8 + e9 + e10,

    s1 = e1 + e5 + e6 + e8,

    s2 = e2 + e5 + e7 + e9,

    s3 = e3 + e6 + e7 + e10,

    s4 = e4 + e8 + e9 + e10.

    (c) The check-sums orthogonal on e10 are:

    A1,10 = s0 + s1 + s2 = e0 + e1 + e2 + e5 + e10,

    A2,10 = s3 = e3 + e6 + e7 + e10,

    A3,10 = s4 = e4 + e8 + e9 + e10.

    The check-sums orthogonal on e9 are:

    A1,9 = s0 + s1 + s3,

    A2,9 = s2,

    A3,9 = s4.

    The check-sums orthogonal on e8 are:

    A1,8 = s0 + s2 + s3,

    A2,8 = s1,

    A3,8 = s4.

    2

  • The check-sums orthogonal on e7 are:

    A1,7 = s0 + s1 + s4,

    A2,7 = s2,

    A3,7 = s3.

    The check-sums orthogonal on e6 are:

    A1,6 = s0 + s2 + s4,

    A2,6 = s1,

    A3,6 = s3.

    The check-sums orthogonal on e5 are:

    A1,5 = s0 + s3 + s4,

    A2,5 = s1,

    A3,5 = s2.

    (d) Yes, the code is completely orthogonalizable, since there are 3 check-sums orthogonalon each message bit and the minimum distance of the code is 4.

    8.5 For m = 6, the binary radix-2 form of 43 is

    43 = 1 + 2 + 23 + 25.

    The nonzero-proper descendants of 43 are:

    1, 2, 8, 32, 3, 9, 33, 10, 34, 40, 11, 35, 41, 42.

    8.6

    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

    u = ( 1 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 )

    Applying the permutation Z = 3Y + 11 to the above vector, the component at the locationi is permute to the location 3i+11. For example, the 1-component at the location Y = 8

    is permuted to the location 38 + 11 = 11 + 11 = . Performing this permutation to

    3

  • the each component of the above vector, we obtain the following vector

    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

    v = ( 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 )

    8.7 For J = 9 and L = 7, X63 + 1 can be factor as follows:

    X63 + 1 = (1 +X9)(1 +X9 +X18 +X27 +X36 +X45 +X54).

    Then pi(X) = 1+X9+X18+X27+X36+X45+X54. Let be a primitive element in GF(26)whose minimal polynomial is 1(X) = 1+X+X6. Because 63 = 1, the polynomial 1+X9

    has 0, 7, 14, 21, 28, 35, 42, 49, and 56 as all it roots. Therefore, the polynomial pi(X)has h as a root when h is not a multiple of 7 and 0 < h < 63. From the conditions (Theorem8.2) on the roots of H(X), we can find H(X) as: H(X) = LCM{minimal polynomials i(X)of the roots of H(X)}. As the result,

    H(X) = 1(X)3(X)5(X)9(X)11(X)13(X)27(X),

    where 1 = 1 + X + X6, 3 = 1 + X + X2 + X4 + X6, 5 = 1 + X + X2 + X5 + X6,9 = 1 +X

    2 +X3, 11 = 1 +X2 +X3 +X5 +X6, 13 = 1 +X +X

    3 +X4 +X6, and27 = 1 +X +X

    3. Then, we can find G(X),

    G(X) =X63 + 1

    H(X)=

    (1 +X9)pi(X)

    H(X)

    = (1 +X9)(1 +X2 +X4 +X5 +X6)(1 +X +X4 +X5 +X6)(1 +X5 +X6).

    For type-1 DTI code of length 63 and J = 9, the generator polynomial is:

    g1(X) =X27G(X1)

    1 +X=

    (1 +X9)(1 +X +X2 +X4 +X6)(1 +X +X2 +X5 +X6)(1 +X +X6)1 +X

    = (1 +X +X2 +X3 +X4 +X5 +X6 +X7 +X8)(1 +X +X2 +X4 +X6)(1 +X +X2 +X5 +X6)(1 +X +X6).

    Represent the polynomials pi(X), Xpi(X), X2pi(X), X3pi(X), X4pi(X), X5pi(X), X6pi(X),X7pi(X), and X8pi(X) by 63-tuple location vectors. Add an overall parity-check digit andapply the affine permutation, Y = X + 62, to each of these location vectors. Then, removethe overall parity-check digits of all location vectors. By removing one vector with odd weight,

    4

  • we can obtain the polynomials orthogonal on the digit position X62. They are:

    X11 +X16 +X18 +X24 +X48 +X58 +X59 +X62,

    X1 +X7 +X31 +X41 +X42 +X45 +X57 +X62,

    X23 +X33 +X34 +X37 +X49 +X54 +X56 +X62,

    X2 +X14 +X19 +X21 +X27 +X51 +X61 +X62,

    X0 +X3 +X15 +X20 +X22 +X28 +X52 +X62,

    X9 +X10 +X13 +X25 +X30 +X32 +X38 +X62,

    X4 +X6 +X12 +X36 +X46 +X47 +X50 +X62,

    X5 +X29 +X39 +X40 +X43 +X55 +X60 +X62.

    8.8 For J = 7 and L = 9,

    X63 + 1 = (1 +X7)(1 +X7 +X14 +X21 +X28 +X35 +X42 +X49 +X56)

    and pi(X) = 1+X7+X14+X21+X28+X35+X42+X49+X56. Let be a primitive element inGF(26) whose minimal polynomial is 1(X) = 1+X+X6. Because 63 = 1, the polynomial1 +X7 has 0, 9, 18, 27, 36, 45, and 54 as all it roots. Therefore, the polynomial pi(X)has h as a root when h is not a multiple of 9 and 0 < h < 63. From the conditions (Theorem8.2) on the roots of H(X), we can find H(X) as: H(X) = LCM{minimal polynomials i(X)of the roots of H(X)}. As the result,

    H(X) = 1(X)3(X)5(X)7(X)21(X),

    where 1 = 1 + X + X6, 3 = 1 + X + X2 + X4 + X6, 5 = 1 + X + X2 + X5 + X6,7 = 1 +X

    3 +X6, and 21 = 1 +X +X2. Then, we can find G(X),

    G(X) =X63 + 1

    H(X)=

    (1 +X7)pi(X)

    H(X)

    = (1 +X7)(1 +X2 +X3 +X5 +X6)(1 +X +X3 +X4 +X6)

    (1 +X2 +X4 +X5 +X6)(1 +X +X4 +X5 +X6)(1 +X5 +X6).

    5

  • For type-1 DTI code of length 63 and J = 7, the generator polynomial is:

    g1(X) =X37G(X1)

    1 +X

    =(1 +X7)(1 +X +X3 +X4 +X6)(1 +X2 +X3 +X5 +X6)

    1 +X(1 +X +X2 +X4 +X6)(1 +X +X2 +X5 +X6)(1 +X +X6)

    = (1 +X +X2 +X3 +X4 +X5 +X6)(1 +X +X3 +X4 +X6)(1 +X2 +X3 +X5 +X6)(1 +X +X2 +X4 +X6)(1 +X +X2 +X5 +X6)(1 +X +X6).

    Represent the polynomials pi(X), Xpi(X), X2pi(X), X3pi(X), X4pi(X), X5pi(X), andX6pi(X) by 63-tuple location vectors. Add an overall parity-check digit and apply the affinepermutation, Y = X + 62, to each of these location vectors. By removing one vector withodd weight, we can obtain the polynomials orthogonal on the digit position X62. They are:

    X11 +X14 +X32 +X36 +X43 +X44 +X45 +X52 +X56 +X62,

    X3 +X8 +X13 +X19 +X31 +X33 +X46 +X48 +X60 +X62,

    X2 +X10 +X23 +X24 +X26 +X28 +X29 +X42 +X50 +X62,

    X1 +X6 +X9 +X15 +X16 +X35 +X54 +X55 +X61 +X62,

    X0 +X4 +X7 +X17 +X27 +X30 +X34 +X39 +X58 +X62,

    X5 +X21 +X22 +X38 +X47 +X49 +X53 +X57 +X59 +X62.

    8.9 The generator polynomial of the maximum-length sequence code of length n = 2m 1 is

    g(X) = (Xn + 1)/p(X) = (X + 1)(1 +X +X2 + . . .+Xn1)/p(X),

    where p(X) is a primitive polynomial of degree m over GF(2). Since p(X) and (X + 1) arerelatively prime, g(X) has 1 as a root. Since the all-one vector 1 + X + X2 + . . . + Xn1

    does not have 1 as a root, it is not divisible by g(X). Therefore, the all-one vector is not acodeword in a maximum-length sequence code.

    8.17 There are five 1-flats that pass through the point 7. The 1-flats passing through 7 can berepresented by 7 + a1, where a1 is linearly independent of 7 and GF (22). They are

    6

  • five 1-flats passing through 7 which are:

    L1 = {7, 9, 13, 6},L2 = {7, 14, 10, 8},L3 = {7, 12, 0, 2},L4 = {7, 4, 11, 5},L5 = {7, 3, 1, }.

    8.18 (a) There are twenty one 1-flats that pass through the point 63. They are:

    L1 = {63, 0, 42, 21}L2 = {63, 6, 50, 39}L3 = {63, 12, 15, 37}L4 = {63, 32, 4, 9}L5 = {63, 24, 11, 30}L6 = {63, 62, 7, 17}L7 = {63, 1, 18, 8}L8 = {63, 26, 41, 38}L9 = {63, 48, 60, 22}L10 = {63, 45, 46, 53}L11 = {63, 61, 34, 14}L12 = {63, 25, 3, 51}L13 = {63, 2, 16, 36}L14 = {63, 35, 31, 40}L15 = {63, 52, 13, 19}L16 = {63, 23, 54, 58}L17 = {63, 33, 44, 57}L18 = {63, 47, 49, 20}

    7

  • L19 = {63, 27, 43, 29}L20 = {63, 56, 55, 10}L21 = {63, 59, 28, 5}

    (b) There are five 2-flats that intersect on the 1-flat, {63 + }, where GF (22). Theyare:

    F1 = {1, 6, 50, 39, 0, , 22, 43, 42, 29, 18, 48, 21, 60, 27, 8}F2 = {1, 6, 50, 39, 12, 26, 10, 46, 15, 53, 41, 56, 37, 55, 45, 38}F3 = {1, 6, 50, 39, 32, 35, 20, 57, 4, 33, 31, 47, 9, 49, 44, 40}F4 = {1, 6, 50, 39, 24, 16, 34, 17, 11, 62, 36, 14, 30, 61, 7, 2}F5 = {1, 6, 50, 39, 25, 5, 54, 52, 3, 13, 59, 58, 51, 23, 19, 28}

    8.19 The 1-flats that pass through the point 21 are:

    L1 = {21, 42, 11, 50, 22, 44, 25, 37}L2 = {21, 60, 35, 31, 47, 54, 32, 52}L3 = {21, 58, 9, 26, 6, 5, 28, 34}L4 = {21, 30, 57, 0, 3, 48, 39, 12}L5 = {21, 51, 61, 27, 19, 14, 62, 2}L6 = {21, 38, 40, 33, 46, 17, 18, 7}L7 = {21, 29, 16, 53, 23, 0, 4, 1}L8 = {21, 59, 15, 45, 56, 8, 55, 13}L9 = {21, 43, 41, 20, 10, 36, 24, 49}

    8.20 a. The radix-23 expansion of 47 is expressed as follows:

    47 = 7 + 5 23.

    8

  • Hence, the 23-weight of 47W23(47) = 7 + 5 = 12.

    b.W23(47

    (0)) = W23(47) = 7 + 5 = 12,

    W23(47(1)) = W23(31) = 7 + 3 = 10,

    W23(47(2)) = W23(62) = 6 + 7 = 13.

    Hence,

    max0l

  • Chapter 11

    Convolutional Codes

    11.1 (a) The encoder diagram is shown below.

    u

    v( 1 )

    v( 2 )

    v ( 0 )

    (b) The generator matrix is given by

    G =

    26664

    111 101 011111 101 011

    111 101 011. . . . . .

    37775 :

    (c) The codeword corresponding to u = (11101) is given by

    v = u G = (111; 010; 001; 110; 100; 101; 011):

    11.2 (a) The generator sequences of the convolutional encoder in Figure 11.3 on page 460 are given in(11.21).

    1

  • 2(b) The generator matrix is given by

    G =

    26666666664

    1111 0000 00000101 0110 00000011 0100 0011

    1111 0000 00000101 0110 00000011 0100 0011

    . . . . . .

    37777777775

    :

    (c) The codeword corresponding to u = (110; 011; 101) is given by

    v = u G = (1010; 0000; 1110; 0111; 0011):

    11.3 (a) The generator matrix is given by

    G(D) =

    1 + D 1 + D2 1 + D + D2:

    (b) The output sequences corresponding to u(D) = 1 + D2 + D3 + D4 are

    V(D) =hv(0)(D);v(1)(D);v(2)(D)

    i

    =1 + D + D2 + D5; 1 + D3 + D5 + D6; 1 + D + D4 + D6

    ;

    and the corresponding codeword is

    v(D) = v(0)(D3) + Dv(1)(D3) + D2v(2)(D3)= 1 + D + D2 + D3 + D5 + D6 + D10 + D14 + D15 + D16 + D19 + D20:

    11.4 (a) The generator matrix is given by

    G(D) =

    1 + D D 1 + DD 1 1

    and the composite generator polynomials are

    g1(D) = g(0)1 (D

    3) + Dg(1)1 (D3) + D2g(2)1 (D

    3)= 1 + D2 + D3 + D4 + D5

    and

    g2(D) = g(0)2 (D

    3) + Dg(1)2 (D3) + D2g(2)2 (D

    3)= D + D2 + D3:

    (b) The codeword corresponding to the set of input sequences U(D) =1 + D + D3; 1 + D2 + D3

    is

    v(D) = u(1)(D3)g1(D) + u(2)(D3)g2(D)= 1 + D + D3 + D4 + D6 + D10 + D13 + D14:

  • 311.5 (a) The generator matrix is given by

    G =

    26664

    111 001 010 010 001 011111 001 010 010 001 011

    111 001 010 010 001 011. . . . . .

    37775 :

    (b) The parity sequences corresponding to u = (1101) are given by

    v(1)(D) = u(D) g(1)(D)= (1 + D + D3)(1 + D2 + D3 + D5)= 1 + D + D2 + D3 + D4 + D8;

    and

    v(2)(D) = u(D) g(2)(D)= (1 + D + D3)(1 + D + D4 + D5)= 1 + D2 + D3 + D6 + D7 + D8:

    Hence,

    v(1) = (111110001)v(2) = (101100111):

    11.6 (a) The controller canonical form encoder realization, requiring 6 delay elements, is shown below.

    v( 0 )

    v( 1 )

    v

    u( 1 )

    u( 2 )

    ( 2 )

  • 4(b) The observer canonical form encoder realization, requiring only 3 delay elements, is shown below.

    v(2)

    v(1)

    v(0)

    u(2)

    u(1)

    11.14 (a) The GCD of the generator polynomials is 1.

    (b) Since the GCD is 1, the inverse transfer function matrix G1(D) must satisfy

    G(D)G1(D) =1 + D2 1 + D + D2

    G1(D) = I:

    By inspection,

    G1(D) =

    1 + DD

    :

    11.15 (a) The GCD of the generator polynomials is 1 + D2 and a feedforward inverse does not exist.

    (b) The encoder state diagram is shown below.

    S2 S5

    1/10

    0/00 S7

    S6

    S3

    S0

    S4

    S1

    0/01

    0/10

    1/10

    0/11

    0/011/11

    0/00

    1/00

    1/11

    1/01

    1/00

    1/01

    0/10

    0/11

    (c) The cycles S2S5S2 and S7S7 both have zero output weight.

    (d) The innite-weight information sequence

    u(D) =1

    1 + D2= 1 + D2 + D4 + D6 + D8 +

  • 5results in the output sequences

    v(0)(D) = u(D)(1 + D2

    = 1

    v(1)(D) = u(D)(1 + D + D2 + D3

    = 1 + D;

    and hence a codeword of nite weight.

    (e) This is a catastrophic encoder realization.

    11.16 For a systematic (n; k; ) encoder, the generator matrix G(D)is a k n matrix of the form

    G(D) = [IkjP(D)] =

    266664

    1 0 0 g(k)1 (D) g(n1)1 (D)0 1 0 g(k)2 (D) g(n1)2 (D)...

    ......

    0 0 1 g(k)k (D) g(n1)k (D)

    377775 :

    The transfer function matrix of a feedforward inverse G1(D) with delay l = 0 must be such that

    G(D)G1(D) = Ik:

    A matrix satisfying this condition is given by

    G1(D) =

    Ik0(nk)k

    =

    266666666664

    1 0 00 1 0...

    ......

    0 0 10 0 0...

    ......

    0 0 0

    377777777775

    :

  • 611.19 (a) The encoder state diagram is shown below.

    S2 S1

    S3

    S0

    0/000

    1/001

    1/1110/011

    1/100

    0/110 1/010

    0/101

    (b) The modied state diagram is shown below.

    S3

    X

    X

    X

    S1 S2 S0S0

    X2

    X2X3X2

    (c) The WEF function is given by

    A(X) =

    Xi

    Fii

    :

  • 7There are 3 cycles in the graph:

    Cycle 1: S1S2S1 C1 = X3

    Cycle 2: S1S3S2S1 C2 = X4

    Cycle 3: S3S3 C3 = X .

    There is one pair of nontouching cycles:

    Cycle pair 1: (Cycle 1, Cycle 3) C1C3 = X4.

    There are no more sets of nontouching cycles. Therefore,

    = 1X

    i

    Ci +Xi0;j0

    Ci0Cj0

    = 1 (X + X3 + X4) + X4= 1X X3:

    There are 2 forward paths:

    Forward path 1: S0S1S2S0 F1 = X7

    Forward path 2: S0S1S3S2S0 F2 = X8.

    Only cycle 3 does not touch forward path 1, and hence

    1 = 1X:Forward path 2 touches all the cycles, and hence

    2 = 1:

    Finally, the WEF is given by

    A(X) =X7(1 X) + X8

    1X X3 =X7

    1X X3 :

    Carrying out the division,

    A(X) = X7 + X8 + X9 + 2X10 + ;indicating that there is one codeword of weight 7, one codeword of weight 8, one codeword ofweight 9, 2 codewords of weight 10, and so on.

    (d) The augmented state diagram is shown below.

    (e) The IOWEF is given by

    A(W; X; L) =

    Xi

    Fii

    :

    There are 3 cycles in the graph:

    Cycle 1: S1S2S1 C1 = WX3L2

    Cycle 2: S1S3S2S1 C2 = W 2X4L3

    Cycle 3: S3S3 C3 = WXL.

  • 8S1 S2S0 S0W X3L X2L

    X2L

    X2L

    S3

    WXL

    WXL

    WXL

    There is one pair of nontouching cycles:

    Cycle pair 1: (Cycle 1, Cycle 3) C1C3 = W 2X4L3.

    There are no more sets of nontouching cycles. Therefore,

    = 1X

    i

    Ci +Xi0;j0

    Ci0Cj0

    = 1WX3L2 + W 2X4L3 + WXL + W 2X4L3:There are 2 forward paths:

    Forward path 1: S0S1S2S0 F1 = WX7L3

    Forward path 2: S0S1S3S2S0 F2 = W 2X8L4.

    Only cycle 3 does not touch forward path 1, and hence

    1 = 1WXL:Forward path 2 touches all the cycles, and hence

    2 = 1:

    Finally, the IOWEF is given by

    A(W; X; L) =WX7L3(1 WXL) + W 2X8L4

    1 (WX3L2 + W 2X4L3 + WXL) + X4Y 2Z3 =WX7L3

    1WXLWX3L2 :

    Carrying out the division,

    A(W; X; L) = WX7L3 + W 2X8L4 + W 3X9L5 + ;indicating that there is one codeword of weight 7 with an information weight of 1 and length 3,one codeword of weight 8 with an information weight of 2 and length 4, and one codeword ofweight 9 with an information weight of 3 and length 5.

  • 911.20 Using state variable method described on pp. 505-506, the WEF is given by

    A(X)=X4(12X4+X3+9X2042X18+78X16+38X12+3X17+5X13+9X119X152X774X1414X109X9+X6+6X8)

    1X+2X4X3X2+3X24+X213X20+32X188X22X1945X168X125X176X11+9X15+2X7+27X14+3X102X94X6+X8 :

    Performing the division results in

    A(X) = X4 + X5 + 2X6 + 3X7 + 6X8 + 9X9 + ;

    which indicates that there is one codeword of weight 4, one codeword of weight 5, two codewords ofweight 6, and so on.

    11.28 (a) From Problem 11.19(c), the WEF of the code is

    A(X) = X7 + X8 + X9 + 2X10 + ;

    and the free distance of the code is therefore dfree = 7, the lowest power of X in A(X).

    (b) The complete CDF is shown below.

    0 1 2 3 4

    1

    2

    3

    4

    5

    6

    7

    5 6 7

    d

    dmin = 5

    dfree =7

    (c) The minimum distance isdmin = dljl=m=2 = 5:

  • 10

    11.29 (a) By examining the encoder state diagram in Problem 11.15 and considering only paths that beginand end in state S0 (see page 507), we nd that the free distance of the code is dfree = 6. Thiscorresponds to the path S0S1S2S4S0 and the input sequence u = (1000).

    (b) The complete CDF is shown below.

    0 1 2 3 4

    1

    2

    3

    4

    5

    6

    d

    dfree = 6

    dmin = 3

    (c) The minimum distance isdmin = dljl=m=3 = 3:

    11.31 By denition, the free distance dfree is the minimum weight path that has diverged from and remergedwith the all-zero state. Assume that [v]j represents the shortest remerged path through the statediagram with weight free dfree. Letting [dl]re be the minimum weight of all remerged paths of lengthl, it follows that [dl]re = dfree for all l j. Also, for a noncatastrophic encoder, any path that remainsunmerged must accumulate weight. Letting [dl]un be the minimum weight of all unmerged paths oflength l, it follows that

    liml!1

    [dl]un !1:Therefore

    liml!1

    dl = min

    liml!1

    [dl]re; liml!1

    [dl]un

    = dfree:

    Q. E. D.

  • Chapter 12

    Optimum Decoding of ConvolutionalCodes

    12.1 (Note: The problem should read \ for the (3,2,2) encoder in Example 11.2 "rather than \ for the (3,2,2)code in Table 12.1(d)".) The state diagram of the encoder is given by:

    01/111

    11/101

    00/000

    01/01100/100

    10/101

    S3

    S1S2

    S0

    00/0

    11

    11/1

    10

    00/111

    10/01010/001

    01/100

    11/001

    10/110

    11/010

    01/000

    1

  • 2From the state diagram, we can draw a trellis diagram containing h + m + 1 = 3 + 1 + 1 = 5 levels asshown below:

    00/000

    10/10101

    /01111/110

    10/01000/111

    01/10011

    /001

    01/11110/001

    11/010

    00/100

    11/101

    01/000

    10/110

    00/011

    S3

    S1

    S2

    S0S000/000

    10/10101

    /01111/110

    10/01000/111

    01/10011

    /001

    01/11110/001

    11/010

    00/100

    11/101

    01/000

    10/110

    S0

    S3

    S1

    S2

    00/011

    S0

    S3

    S1

    S2

    00/000

    10/10101

    /011

    11/110

    00/000

    00/111

    00/10000/011

    S0

    Hence, for u = (11; 01; 10),v(0) = (1001)v(1) = (1001)v(2) = (0011)

    andv = (110; 000; 001; 111);

    agreeing with (11.16) in Example 11.2. The path through the trellis corresponding to this codeword isshown highlighted in the gure.

  • 312.2 Note that

    N1Xl=0

    c2 [log P (rljvl) + c1] =N1Xl=0

    [c2 log P (rljvl) + c2c1]

    = c2N1Xl=0

    log P (rljvl) + Nc2c1:

    Since

    maxv

    (c2

    N1Xl=0

    log P (rljvl) + Nc2c1)

    = c2 maxv

    (N1Xl=0

    log P (rljvl))

    + Nc2c1

    if C2 is positive, any path that maximizesPN1

    l=0 log P (rljvl) also maximizesPN1

    l=0 c2[log P (rljvl) +c1].

    12.3 The integer metric table becomes:

    01 02 12 110 6 5 3 01 0 3 5 6

    The received sequence is r = (111201; 111102; 111101; 111111; 011201; 120211; 120111). The decoded se-quence is shown in the gure below, and the nal survivor is

    v^ = (111; 010; 110; 011; 000; 000; 000);

    which yields a decoded information sequence of

    u^ = (11000):

    This result agrees with Example 12.1.

  • 40/000

    1/111

    0/000 0/000 0/000 0/000 0/000 0/000

    1/111

    1/111

    1/111

    1/111

    0/101

    1/010

    1/010

    1/010

    1/010

    0/101

    0/101

    0/101

    0/101

    1/001

    0/110

    1/001 1/001

    0/110

    0/110

    0/1101/100

    0/011

    1/100

    1/100

    0/011

    0/011

    0/011

    0/011

    S3

    S1

    S0S0 S0 S0 S0 S0 S0

    S1 S1 S1 S1

    S2 S2 S2

    S3

    S2

    S3 S3

    S2

    S0

    0 9 13 26 52 67 75 84

    11 24 32 46 57

    22 36 42 63

    20 40 48 53 73

  • 512.4 For the given channel transition probabilities, the resulting metric table is:

    01 02 03 04 14 13 12 110 0:363 0:706 0:777 0:955 1:237 1:638 2:097 2:6991 2:699 2:097 1:638 1:237 0:955 0:777 0:706 0:363

    To construct an integer metric table, choose c1 = 2:699 and c2 = 4:28. Then the integer metric tablebecomes:

    01 02 03 04 14 13 12 110 10 9 8 7 6 5 3 01 0 3 5 6 7 8 9 10

    12.5 (a) Referring to the state diagram of Figure 11.13(a), the trellis diagram for an information sequenceof length h = 4 is shown in the gure below.

    (b) After Viterbi decoding the nal survivor is

    v^ = (11; 10; 01; 00; 11; 00):

    This corresponds to the information sequence

    u^ = (1110):

  • 60/000

    0/00 0/00 0/00 0/00 0/00 0/00

    0/00

    0/00

    0/00

    1/10

    1/10

    1/10

    S1

    S0

    0/00

    0/01

    S0 S0 S0 S0 S0

    S4 S4 S4 S4

    S2 S2S2S2

    S6 S6 S6

    S5 S5

    S1 S1 S1

    0/01

    0/01

    0/01

    S3 S3 S3

    3

    19 12 21 42

    22

    38

    16

    1/00

    0/110/11

    0/110/11

    1/00

    1/01

    1/01

    0/10

    0/10

    0/10

    46 51S7 S7

    20 48

    1/10

    1/01

    0/01

    0/01

    0/10

    0/10

    40 61

    1/00

    1/11

    0/11

    0/00

    0/00

    0/00

    53 71 66

    20 45 79

    0/110/11

    0/1127 68 83 94

    34 49 80 98 115

    S0 S0

  • 712.6 Combining the soft decision outputs yields the following transition probabilities:

    0 10 0:909 0:0911 0:091 0:909

    For hard decision decoding, the metric is simply Hamming distance. For the received sequence

    r = (11; 10; 00; 01; 10; 01; 00);

    the decoding trellis is as shown in the gure below, and the nal survivor is

    v^ = (11; 10; 01; 01; 00; 11; 00);

    which corresponds to the information sequence

    u^ = (1110):

    This result matches the result obtained using soft decisions in Problem 12.5.

  • 80/000

    0/00 0/00 0/00 0/00 0/00 0/00

    0/00

    0/00

    0/00

    1/10

    1/10

    1/10

    S1

    S0

    0/00

    0/01

    S0 S0 S0 S0 S0

    S4 S4 S4 S4

    S2 S2S2S2

    S6 S6 S6

    S5 S5

    S1 S1 S1

    0/01

    0/01

    0/01

    S3 S3 S3

    2

    0 3 5 4

    2

    0

    3

    1/00

    0/110/11

    0/110/11

    1/00

    1/01

    1/01

    0/10

    0/10

    0/10

    1 3S7 S7

    4 2

    1/10

    1/01

    0/01

    0/01

    0/10

    0/10

    2 3

    1/00

    1/11

    0/11

    0/00

    0/00

    0/00

    1 1 2

    4 4 3

    0/110/11

    0/114 2 2 3

    3 4 3 3 3

    S0 S0

  • 912.9 Proof: For d even,

    Pd =12

    d

    d=2

    pd=2(1 p)d=2 +

    dXe=(d=2)+1

    de

    pe(1 p)de


Recommended