Sie sind auf Seite 1von 8

Advanced Topics in Communications Engineering TU Munich, MSCE

May 18, 2012 Handout#5

Exercise 3Solution Problem 1


Use the Berlekamp-Massey algorithm to determine the shortest feedback polynomial over GF(2) to synthesize the binary sequence 1 1 0 1 0 0 0 1 0 0 1 0 1 0 recursively from left to right.

Solution
S0 S1
0 = 1

S2

S3

S4

S5

S6

S7

S8

S9

S10

S11

S12

S13

1 = 0

2 = 1

3 = 0

4 = 1

(4) (z) (5) (z) B (5) (z)

5 = 0

6 = 1

7 = 0

8 = 1

9 = 0

10 = 0

11 = 0

12 = 0

13 = 0

Thus, the shortest feedback polynomial to synthesize the given binary sequence is (z) = 1 + z + z 3 + z 4 + z 5 .

Problem 2
Consider the Galois eld GF(24 ) generated by p(x) = 1 + x + x4 ; see course notes for a table of the GF(24 ) elements. The element 7 = is another primitive element of GF(24 ). Let g(x) be the lowest degree polynomial over GF(2) that has , 2 , 3 , 4 as roots. This polynomial also generates a double-error-correcting code of primitive length 15. (a) Determine g(x). (b) Find a parity-check matrix for this code.

Solution
(a) The lowest degree plynomial over GF(2) that has , 2 , 3 , 4 as roots is given by the least common multiple of the corresponding minimal polynomials. Since = 7 , we can use the minimal polynomials of GF(24 ) of the powers of as listed on slide 4-31 to nd the minimal polynomials of the powers of . We will use the property that for any polynomial c(x) over GF(2), we have [c(x)]2 = c(x2 ). In particular if (x) is the minimal polynomial of , then (x) is also the minimal polynomial of 2 for any integer 1. Furthermore, for n = 2m 1, we have n = 1 for any element GF(2m ). E.g., 15 = 1 for any element GF(24 ). We now get = 7 (x) = 7 (x) = 1 + x3 + x4 2 = (7 )2 2 (x) = 7 (x) = 1 + x3 + x4 3 = (7 )3 = 21 = 15 6 = 1 6 = (3 )2 3 (x) = 3 (x) = 1 + x + x2 + x3 + x4 4 = (7 )4 = [(7 )2 ]2 4 (x) = 7 (x) = 1 + x3 + x4 . As we can see, , 2 , 4 all have the same minimal polynomial. Thus, the least common multiple of the minimal polynomials of , 2 , 3 , 4 is given by LCM[ (x), 2 (x), 3 (x), 4 (x)] = (x) 3 (x). Alltogether, we get for the generating function g(x) = (x) 3 (x) = (1 + x3 + x4 )(1 + x + x2 + x3 + x4 ) = 1 + x + x2 + x3 + x4 + x3 + x4 + x5 + x6 + x7 + x4 + x5 + x6 + x7 + x8 = 1 + x + x2 + x4 + x8 . (b) To nd a parity check matrix, we rst calculate the check polynomial. Since 1 + x15 = g(x)h(x) we can nd h(x) by dividing 1 + x15 by g(x) via polynomial long

Table 1: Minimal polynomials in GF(2) generated by p(x) = 1 + x2 + x5 . 0 = 1: 1 + x 1 : 1 + x2 + x5 3 : 1 + x2 + x3 + x4 + x5 5: 2 + x4 + x5 7: 2 + x3 + x5 1+x+x 1+x+x 11 : 1 + x + x3 + x4 + x5 15 : 1 + x3 + x5 division. We nd 1 + x15 = (1 + x + x2 + x4 + x8 )(1 + x + x3 + x7 ).
=g(x) =h(x)

We can now use the formula on slide 3-7 to nd 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 . .. .. .. .. .. .. .. H = . . . . . . . . . 0 0 1 0 0 0 1 0 0 1 0 0 0

0 1 0 .. .. . . 0 1 1 0

.. . 1 1

0 0 . F815 . . 2 0 1

Problem 3
Consider BCH codes of primitive length 31. Use GF(25 ) generated by p(x) = 1+x2 +x5 . (a) List the parameters (n, k, d ) of all codes that can be constructed by the method min on slide 4-33. (b) List the parameters (n, k, d ) of all codes with even-weight codewords that can min be constructed by the method on slide 4-34. (c) Determine the generator polynomials of codes, which can correct 1, 2, and 3 errors. The minimal polynomials are listed in Table 1.

Solution
(a) The construction of a BCH code works according to slide 4-33 as follows. Choose n = 2m 1. Choose tg . The generator polynomial is given by g(x) = LCM[ (x), 2 (x), . . . , 2tg (x)]. Since deg g(x) = n k, we get k = n deg g(x). The degree of g(x) is given by the number of roots of g(x).

The designed minimum distance is d = 2tg + 1. min Alltogether, the parameters are (n, k, d ) = (2m 1, n deg g(x), 2tg + 1). min As we can see, the codes are parameterized by tg . We x n = 25 1 = 31 and construct the codes for tg = 1, 2, 3, . . . . For notational convenience, we will write i (x) for i (x). tg = 1 g(x) = LCM[1 (x), 2 (x)] = 1 (x)

The roots of g(x) are the roots of 1 (x). These are given by the conjugacy class B(1 ), see slide 4-31. This class is given by B() = {, 2 , 4 , 8 , 16 }. Note that 32 = 31 = . We thus have deg g(x) = |B()| = 5 (n, k, d ) = (31, 26, 3) min |B()| means the number of elements in the set B(). tg = 2 g(x) = LCM[1 (x), 2 (x), 3 (x), 4 (x)] = 1 (x)3 (x) B(3 ) = {3 , 6 , 12 , 24 , 48 = 17 } deg g(x) = |B()| + |B(3 )| = 5 + 5 = 10 (n, k, d ) = (31, 21, 5) min Note that 96 = (31 )3 3 = 3 . tg = 3 g(x) = LCM[1 (x), . . . , 6 (x)] = 1 (x)3 (x)5 (x) B(5 ) = {5 , 10 , 20 , 9 , 18 } deg g(x) = |B()| + |B(3 )| + |B(5 )| = 5 + 5 + 5 = 15 (n, k, d ) = (31, 16, 7) min Note that (5 )2 = (5 )2
5 5 1

5 = 5 .

tg = 4 g(x) = LCM[1 (x), . . . , 8 (x)] = 1 (x)3 (x)5 (x)7 (x) B(7 ) = {7 , 14 , 28 , 25 , 19 } deg g(x) = |B()| + |B(3 )| + |B(5 )| + |B(7 )| = 5 + 5 + 5 + 5 = 20 (n, k, d ) = (31, 11, 9) min tg = 5 g(x) = LCM[1 (x), . . . , 10 (x)] = 1 (x)3 (x)5 (x)7 (x) deg g(x) = 20 (n, k, d ) = (31, 11, 11) min Note that because of 9 = 31 9 = 40 = {[(5 )2 ]2 }2 , 9 (x) = 5 (x). Note further that this code has the same rate k/n = 11/31 as the code we constructed for tg = 4, but a larger designed minimum distance 11 > 9. The (31, 11, 11) code is thus preferable over the (31, 11, 9) code. tg = 6 g(x) = LCM[1 (x), . . . , 12 (x)] = 1 (x)3 (x)5 (x)7 (x)11 (x) B(11 ) = {11 , 22 , 13 , 26 , 21 } deg g(x) = |B()| + |B(3 )| + |B(5 )| + |B(7 )| + |B(11 )| = 5 + 5 + 5 + 5 + 5 = 25 (n, k, d ) = (31, 6, 13) min tg = 7 g(x) = LCM[1 (x), . . . , 14 (x)] = 1 (x)3 (x)5 (x)7 (x)11 (x) deg g(x) = 25 (n, k, d ) = (31, 6, 15) min Note that because of 13 = 31 13 = 44 = [(11 )2 ]2 , 13 = 11 . Note further that this code has the same rate k/n = 6/31 as the code we constructed for tg = 6, but a larger designed minimum distance 15 > 11. The (31, 6, 15) code is thus preferable over the (31, 6, 11) code.

tg = 8 g(x) = LCM[1 (x), . . . , 16 (x)] = 1 (x)3 (x)5 (x)7 (x)11 15 (x) B( ) = {15 , 30 , 29 , 27 , 23 } deg g(x) = |B()| + |B(3 )| + |B(5 )| + |B(7 )| + |B(11 )| + |B(15 )| = 5 + 5 + 5 + 5 + 5 + 5 = 30 (n, k, d ) = (31, 1, 17) min Since k = 1 for this code, we can do better by using a repetition code, which has the parameters (31, 1, 31), i.e., the same rate k/n but a larger designed minimum distance 31 > 17. We can stop our search for BCH codes here, since we cannot expect to nd any additional useful code. (b) Slide 4-34 provides an alternative construction of BCH codes. It works as follows. Choose n = 2m 1. Choose tg . The generator polynomial is given by g(x) = LCM[0 (x), 1 (x), 2 (x), . . . , 2tg (x)]. Since deg g(x) = n k, we get k = n deg g(x). The designed minimum distance is d = 2tg + 2. min Alltogether, the parameters are (n, k, d ) = (2m 1, n deg g(x), 2tg + 2). min Since 0 (x) = 1 + x, compared to the construction used in (a), the degree of g(x) is increased by 1. Thus, we get the parameters of the codes from the codes constructed in (a) by decreasing k by 1 and increasing d by 1. Note that according to Exercise 2, min Problem 3(a), all codewords have even weight since 0 (x) = (1 + x) is a factor of g(x). The list of codes is then tg = 1 :(31, 25, 4) tg = 2 :(31, 20, 6) tg = 3 :(31, 15, 8) tg = 4 :(31, 10, 10) use (31, 10, 12) code instead! tg = 5 :(31, 10, 12) tg = 6 :(31, 5, 14) use (31, 5, 16) code instead! tg = 7 :(31, 5, 16) (c) For a minimum distance of dmin , a linear block code can correct dmin 1 errors. 2 Therefore, to guarantee the correction of i errors, we choose the designed minimum distance as d = 2i + 1. For the code parameter we thus have tg = i. We use the min results from (a) together with the minimal polynomials as given in Table 1.
15

tg = 1 g(x) = 1 (x) = 1 + x2 + x5 tg = 2 g(x) = 1 (x)3 (x) = (1 + x2 + x5 )(1 + x2 + x3 + x4 + x5 ) = 1 + x2 + x3 + x4 + x5 + x2 + x4 + x5 + x6 + x7 + x5 + x7 + x8 + x9 + x10

= 1 + x3 + x5 + x6 + x8 + x9 + x10 . tg = 3 g(x) = 1 (x)3 (x)5 (x) = (1 + x3 + x5 + x6 + x8 + x9 + x10 )5 (x) = (1 + x3 + x5 + x6 + x8 + x9 + x10 )(1 + x + x2 + x4 + x5 ) = 1 +x +x2 +x4 +x3 +x4 +x5 +x6 +x8 +x9 +x6 +x7 +x9 5 7 +x8 +x +x +x7 +x9 5 8 +x +x +x10 +x10 +x11 +x10 +x11 +x12 +x10 +x12 +x13 +x14 10 +x11 +x +x13 +x14 +x15

= 1 + x + x2 + x3 + x5 + x7 + x8 + x9 + x10 + x11 + x15 . We used the result for tg = 2 in the rst line.

Problem 4
Consider a t-error correcting binary BCH code of primitive length n = 2m 1. If 2tg + 1 is a factor of n, prove that the minimum distance of the code is exactly 2tg + 1. Hint: Let n = (2tg + 1). Show that 1 + x + x2 + + x2tg is a code polynomial.

Solution
By slide 4-33, we know that the minimum distance is at least 2tg +1. Thus, the minimum distance is exactly equal to 2tg + 1 if there is at least one code polynomial of weight 2tg + 1. By assumption, 2tg + 1 is a factor of n, i.e., there exists a positive integer such that n = (2tg + 1). A candidate for a weight 2tg + 1 code polynomial is v(x) = 1 + x + x2 + + x2tg . v(x) is a code polynomial if and only if it is a multiple of g(x). Since g(x) is by construction the least common multiple of the minimal polynomials of , 2 , 3 , . . . , 2tg for

some primitive element , the polynomial v(x) is a multiple of g(x) if and only if it has , 2 , 3 , . . . , 2tg as roots. To show that this is indeed true, we use the following trick. We have (1 + x )v(x) = 1 + x + x2 + + x2tg + x + x2 + + x2tg + x2tg = 1 + xn . Since n = 2m 1 is the order of the multiplicative group of GF(2m ), for any nonzero element GF(2m ), we have n = 1. As a consequence, for any integer i, 1 + (i )n = 1 + 1 = 0, and we conclude that i is a root of 1 + xn for any integer i and in particular for i = 1, 2, . . . , 2tg . Since (1 + x )v(x) = 1 + xn , the i are also roots of (1 + x )v(x). But since is a primitive element and since 2tg < n, (i ) = 1 for i = 1, 2, . . . , 2tg and the i cannot be roots of 1 + x for 1 i 2tg . Therefore, they must be roots of v(x). This concludes the proof.
+

Das könnte Ihnen auch gefallen