0% found this document useful (0 votes)
72 views3 pages

MATH3067 (Coding Theory) 2012: R3 R3-R1 R3 R3-R2

This document provides the solutions to problems regarding coding theory and linear codes. It includes: 1) Finding generator and parity check matrices, parameters [n,k], and constructing a Slepian array and syndrome table for the linear code C spanned by 10110, 01101, 11011. 2) Determining the parameters [n,k,d] of a linear code C with a given parity check matrix. The code C is proven to be perfect. 3) Constructing a syndrome table for C and using it to decode the received word 1011100. A comparison is made between using a syndrome table versus a Slepian array, with the syndrome table preferred.

Uploaded by

Sara Omran
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
72 views3 pages

MATH3067 (Coding Theory) 2012: R3 R3-R1 R3 R3-R2

This document provides the solutions to problems regarding coding theory and linear codes. It includes: 1) Finding generator and parity check matrices, parameters [n,k], and constructing a Slepian array and syndrome table for the linear code C spanned by 10110, 01101, 11011. 2) Determining the parameters [n,k,d] of a linear code C with a given parity check matrix. The code C is proven to be perfect. 3) Constructing a syndrome table for C and using it to decode the received word 1011100. A comparison is made between using a syndrome table versus a Slepian array, with the syndrome table preferred.

Uploaded by

Sara Omran
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

MATH3067 (Coding Theory) 2012

Brendan Creutz

Tutorial 3:

3.1. Let C be the linear code spanned by 10110, 01101, 11011.


(1) Compute a generator matrix and a parity check matrix for C.
(2) Find the parameters [n, k] of C.
(3) Construct a Slepian array for C and a syndrome table for C.
(4) Using your syndrome table decode the received words 10011, 01100, 00111, and 01101.
(5) Verify this with your Slepian array.
(6) Determine the word error rate when C is used with nearest neighbour decoding on
a binary symmetric channel in which digit errors occur independently at the rate
p = 0.01.
(7) Determine the dual code of C and give its parameters [n, k].

Solution:
(1) We perform row operations on the matrix whose rows are the given vectors:
     
1 0 1 1 0 1 0 1 1 0 1 0 1 1 0
R3←R3-R1
A= 0 1 1 0 1  ≡  0 1 1 0 1  R3←R3-R2
≡  0 1 1 0 1 .
1 1 0 1 1 0 1 1 0 1 0 0 0 0 0

This means C is already spanned by the first two rows, so


 
1 0 1 1 0 
G= = I2 A
0 1 1 0 1

is a generator matrix. We can compute the parity check matrix using the rule H =
−AT In−k . This gives
 
1 1 1 0 0
H= 1 0 0 1 0 
0 1 0 0 1

(2) n = 5 and k = 2.
(3) Slepian Array:

00000 + C : 00000 10110 01101 11011


10000 + C : 10000 00110 11101 01011
01000 + C : 01000 11101 00101 10011
00100 + C : 00100 10010 01001 11111
00010 + C : 00010 10100 01111 11001
00001 + C : 00001 10111 01100 11010
11000 + C : 11000 01110 10101 00011
10001 + C : 10001 00111 11100 01010
Syndrome Table:
s u
000 00000
100 00100
010 00010
001 00001
110 10000
101 01000
011 11000
111 10001
(4) To decode we first compute syndromes, then subtract the u with the same syndrome,
then take the first two digits as the message:
H(10011)T = 101 ⇒ u = 01000 ⇒ c = 10011 − 01000 = 11011 ⇒ m = 11
H(01100)T = 001 ⇒ u = 00001 ⇒ c = 01100 − 00001 = 01101 ⇒ m = 01
H(00111)T = 111 ⇒ u = 10001 ⇒ c = 00111 − 10001 = 10110 ⇒ m = 10
H(01101)T = 000 ⇒ u = 00000 ⇒ c = 01101 − 00000 = 01101 ⇒ m = 01
(5) For example, 10011 is in the 3rd row and 4th column of the Slepian array, so it should
decode as c4 = 11011. This is the same as obtained via the syndrome table.
(6) Suppose c is sent and w = c + e is received. e will be corrected if and only if it is a coset
leader. Every vector of weight ≤ 1 is a coset leader, while only 2 out of 5choose2 = 10
vectors of weight 2 are coset leaders. This gives the probability that the error will be
corrected as:
2
X = P rob(0E) + P rob(1E) + P rob(2E)
10
= (0.99) + 5(0.01)(0.99) + 2(0.01)2 (0.99)4
5 4

(7) The dual code is C ⊥ = {(x1 , x2 , x3 )H | xi ∈ F2 } it is a [5, 3]-code.

3.2. Let C be the binary linear [n, k, d]-code with parity check matrix
 
1 1 1 1 0 0 0
H= 1 1 0 0 1 1 0 .
1 0 1 0 1 0 1

(1) Determine n, k and d.


(2) Prove that every vector of of weight ≤ 1 lies in a distinct coset of C.
(3) How many cosets of C are there, and how many vectors in each?
(4) Is C perfect?
(5) Construct a syndrome table for C and use it to decode 1011100.
(6) Compare the convenience of syndrome decoding with direct look-up from a Slepian
array for this code.
Solution:
(1) n = 7 = (number of columns in H). k = 4 = n - (number of rows in H). d = 3 since the
last 3 columns are linearly dependent, but any pair of columns is linearly independent.
(2) Since d = 3, t = 1 and by the Theorem proven in the lecture we have that every vector
of weight less or equal t is a coset leader. They must therefore be leaders of distinct
cosets.
(3) There are 24 = 16 vectors in C and 2n−k = 23 = 8 cosets.
(4) There are 8 cosets and 8 vectors of weight less or equal to 1. Then every coset leader
is a vector of weight less or equal to t = 1, so C is perfect. Alternatively M #B(0, 1) =
24 23 = 27 = 2n shows that the sphere packing inequality is sharp.
(5) Since C is perfect, we just have to compute the syndromes of vectors of weight less or
equal to 1. These are just the columns of H and 000, so it is quick to write down.
s u
000 0000000
111 1000000
110 0100000
101 0010000
100 0001000
011 0000100
010 0000010
001 0000001
To decode 1011100 we compute its syndrome H(1011100)T = 101, so we should correct
by subtracting e = 0010000. This gives c = 1001100.
(6) The syndrome table has 8 entries and was easy to write down, while a Slepian array
would have 27 = 128. I prefer using the Syndrome table.

You might also like