Solutions to Problem Set #7 in ECE 456 at University of Illinois, Fall 2002, Assignments of Electrical and Electronics Engineering

Solutions to problem set #7 in the electrical and computer engineering (ece) 456 course at the university of illinois, fall 2002. The solutions cover topics such as error-correcting codes, cyclic codes, and primitive elements in finite fields. Students can use this document to check their understanding of these concepts and to prepare for exams.

Typology: Assignments

Pre 2010

Uploaded on 02/24/2010

koofers-user-j3c
koofers-user-j3c 🇺🇸

9 documents

1 / 1

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
University Problem Set #7: Solutions ECE 456
of Illinois Page 1 of 1 Fall 2002
1. Let E(x) = xn–1 = f(x)g(x) + S(x) where S(x) is the syndrome polynomial of degree less than n–k. In fact,
the degree of S(x) must be exactly n–k–1 as we shall see below. Now, let us compare coefficients of the
powers of x on both sides of our equation xn–1 = f(x)g(x) + S(x). We note that deg f(x) = k–1 exactly.
Furthermore, the polynomial product f(x)g(x) is necessarily of the form xn–1 – S(x) with the coefficients of
xn–2, xn–3, … , xn–k all being 0. Since xn–1 – S(x) is a codeword, so is its cyclic shift -x•S(x) + 1 of
degree 1+deg(S(x)) n–k So, -x•S(x) + 1 is a codeword of degree at most n–k, and thus must be exactly
g(x) in the binary case (or a scalar multiple of g(x) in the nonbinary but unasked case). The result follows.
2. Suppose that [1,1,1,…1] is a codeword in the code. Then, C(x) = 1 + x + x2 + … + xn–1 = f(x)•g(x).
But, C(1) = 1 + 1 + … + 1 0 since n is not a multiple of the characteristic of the field by assumption.
Hence, g(1) 0 either, and g(x) is therefore not divisible by (x–1). Conversely, if g(x) is not divisible by
(x–1), then h(x) has (x–1) as a factor, and from the identity g(x)h(x) = xn – 1 = (x–1)C(x) we get that g(x)
must be a divisor of C(x), that is, 1 + x + x2 + … + xn–1 is a codeword in the code.
3. Elements of order 127 are primitive elements of GF(27), and hence have minimal polynomials of degree 7.
Since 127 is a prime, ord(αk) = 127/gcd(127, k) = 127 and thus all elements of GF(27) – GF(2) are
primitive elements. Thus, x127 – 1 = (x–1)•(18 primitive polynomials of degree 7). Choosing 3 of these
18 for h(x) gives a (127, 21) code, and there are ( )
18
3 different codes that we can thus construct. Binary
polynomial that divide x127 – 1 must have degrees of the form 7i or 7i+1, and thus no binary polynomial
of degree 111 can be a divisor of x127 – 1.
4. The generator polynomial (x+1)g(x) of Cexp has 1 as a root, and hence so does every codeword in Cexp, i.e.
Ci = 0, or all the codewords in Cexp have even weight. Of course, these even weight codewords are also
codewords in C since the codeword polynomials are divisible by g(x) . The degree of the generator is n–k+1
and hence Cexp has dimension k–1. Note that from Problem 3(b) of Problem Set #2, it follows that the set
of all codewords of even weight in C is a linear code of dimension k–1. Thus, Cexp is exactly all the even
weight codewords in C. Finally, ( )
1
2[A(z) + A(–z)] = ( )
1
2
i=0
nAizi + Ai(–z)i =
i=0
n/2A2iz2i gives us the
weight enumerator of Cexp.
5. The expurgated Hamming code can be thought of as having the parity-check matrix
H = [ ]
1
1 1
α
1
α
2
1
α
n–1
where n = 2m–1. Remember that each αi is actually a m-bit column vector in the above. Thus, single
error patterns xi have syndromes sT = HRT where s = [1, αi] while double-adjacent-error patterns have
syndromes s = [0,αi+αi+1] = [0,αj] where αj = αi+αi+1 = αi(1+α) = αiβ . Since different syndromes
correspond to different cosets, each of the n single error patterns belongs to a different coset and each of the
n double-adjacent-error patterns (including the wrap-around pattern) also belongs to a different coset. Also,
the two kinds of cosets are distinct from one another. Hence this code can correct all single errors and all
double-adjacent errors. Note that the only nontrivial coset not accounted for is the one with syndrome [1,0]
where we know that an odd number of errors have occurred. This gives a small error detection capability.
Note that double adjacent errors are common in certain kinds of communication systems, e.g. differential
phase-shift-keying where noise in one bit affects two successive differences, thus causing bit errors to tend
to occur in pairs.

Partial preview of the text

Download Solutions to Problem Set #7 in ECE 456 at University of Illinois, Fall 2002 and more Assignments Electrical and Electronics Engineering in PDF only on Docsity!

University Problem Set #7: Solutions ECE 456

of Illinois Page 1 of 1 Fall 2002

1. Let E(x) = xn–1^ = f(x)g(x) + S(x) where S(x) is the syndrome polynomial of degree less than n–k. In fact, the degree of S(x) must be exactly n–k–1 as we shall see below. Now, let us compare coefficients of the powers of x on both sides of our equation xn–1^ = f(x)g(x) + S(x). We note that deg f(x) = k–1 exactly. Furthermore, the polynomial product f(x)g(x) is necessarily of the form xn–1^ – S(x) with the coefficients of xn–2, xn–3, … , xn–k^ all being 0. Since xn–1^ – S(x) is a codeword, so is its cyclic shift -x•S(x) + 1 of degree 1+deg(S(x)) ≤ n–k So, -x•S(x) + 1 is a codeword of degree at most n–k, and thus must be exactly g(x) in the binary case (or a scalar multiple of g(x) in the nonbinary but unasked case). The result follows.

2. Suppose that [1,1,1,…1] is a codeword in the code. Then, C(x) = 1 + x + x^2 + … + xn–1^ = f(x)•g(x). But, C(1) = 1 + 1 + … + 1 ≠ 0 since n is not a multiple of the characteristic of the field by assumption. Hence, g(1) ≠ 0 either, and g(x) is therefore not divisible by (x–1). Conversely, if g(x) is not divisible by (x–1), then h(x) has (x–1) as a factor, and from the identity g(x)h(x) = xn^ – 1 = (x–1)C(x) we get that g(x) must be a divisor of C(x), that is, 1 + x + x^2 + … + xn–1^ is a codeword in the code.

3. Elements of order 127 are primitive elements of GF(2^7 ), and hence have minimal polynomials of degree 7. Since 127 is a prime, ord(αk) = 127/gcd(127, k) = 127 and thus all elements of GF(2^7 ) – GF(2) are primitive elements. Thus, x^127 – 1 = (x–1)•(18 primitive polynomials of degree 7). Choosing 3 of these

18 for h(x) gives a (127, 21) code, and there are ( )

3 different codes that we can thus construct. Binary polynomial that divide x^127 – 1 must have degrees of the form 7i or 7i+1, and thus no binary polynomial of degree 111 can be a divisor of x^127 – 1.

4. The generator polynomial (x+1)g(x) of Cexp has 1 as a root, and hence so does every codeword in Cexp, i.e.

∑Ci = 0, or all the codewords in Cexp have even weight. Of course, these even weight codewords are also codewords in C since the codeword polynomials are divisible by g(x). The degree of the generator is n–k+ and hence Cexp has dimension k–1. Note that from Problem 3(b) of Problem Set #2, it follows that the set of all codewords of even weight in C is a linear code of dimension k–1. Thus, Cexp is exactly all the even

weight codewords in C. Finally, ( )

1

2 [A(z) + A(–z)] =^ ( )

1

i=

n

Aizi^ + A i(–z)i^ = ∑

i=

n/ A2i z2i^ gives us the

weight enumerator of Cexp.

5. The expurgated Hamming code can be thought of as having the parity-check matrix

H = [ ]

α

α^2

αn– where n = 2m–1. Remember that each αi^ is actually a m-bit column vector in the above. Thus, single error patterns xi^ have syndromes s T^ = HR T^ where s = [1, αi] while double-adjacent-error patterns have syndromes s = [0,αi+αi+1^ ] = [0,αj] where αj^ = αi+αi+1^ = αi( 1 +α) = αiβ. Since different syndromes correspond to different cosets, each of the n single error patterns belongs to a different coset and each of the n double-adjacent-error patterns (including the wrap-around pattern) also belongs to a different coset. Also, the two kinds of cosets are distinct from one another. Hence this code can correct all single errors and all double-adjacent errors. Note that the only nontrivial coset not accounted for is the one with syndrome [1, 0 ] where we know that an odd number of errors have occurred. This gives a small error detection capability.

Note that double adjacent errors are common in certain kinds of communication systems, e.g. differential phase-shift-keying where noise in one bit affects two successive differences, thus causing bit errors to tend to occur in pairs.