Homework #3 Due

advertisement
Cryptology and Coding Theory
Homework #3
Due Thursday 5 October 2006
Note: This is an important homework assignment because it brings together many ideas
and uses them to further your knowledge. It is also the last homework before your test on
the coding theory portion of the course. You can discuss the problems with your classmates,
but you must write up solutions on your own. Indicate any collaboration on your
homework.
In Group Homework #2, you showed that the extended code of a linear code is linear.
Problem 1 below continues along this theme.
1. Suppose that C is a binary code with parity check matrix H. Write down the parity
check matrix for the extended code of C. (Your new parity check matrix will
involve the matrix H.) Explain why your answer is correct.
Problem 2 below asks you to design a linear code for a special channel.
2. Suppose that a special binary channel accepts codewords of length 7 and that the
only errors ever observed are 0000000 (no error), 0000001, 0000011,
0000111, 0001111, 0011111, 0111111, 1111111. Your job is to design a
linear code of length 7 that will correct all such errors, and your code has to have
the largest rate possible. Begin by determining and explaining the maximum rate.
Then, find such a code with this maximum rate. Be sure to explain your reasoning!
Problems 3, 4, 5, and 6 below further your knowledge about the connections among
parity check matrices, syndromes, error-correction, and decoding.
You know that given a linear code C, you can find a parity check matrix H such that c is a
codeword in C if and only if cHT = 0. Problem 3 says that the opposite is also true: If you
start with a matrix A and find all vectors such that cAT = 0, then those vectors form a linear
code.
3. Let A be any r x n binary matrix. Consider the set D of all binary vectors c of
length n such that cAT = 0. Prove that D is a linear code.
Given a linear code C and its parity check matrix H, we know how to define the syndrome
of any received vector r: The syndrome of r is rHT. We know that if the syndrome of r is
equal to 0, then we assume no errors occurred. We also discussed that it would be nice if
nonzero syndromes could actually tell us which errors occur. The next problems will further
investigate this idea.
4. Prove that if two q-ary vectors u and v of length n lie within the same coset of a
q-ary linear code C of length n, then u and v have the same syndrome (using the
parity check matrix of C). For bonus points (not required), prove that the opposite
is also true: Prove that if two received vectors u and v have the same
syndrome, then they lie in the same coset of the linear code being used.
From Problem 4, we see that if we make a standard array by using cosets of C as the
rows in the standard array, all vectors within a row will have the same syndrome.
5. In class, we have been working with the example C = {00000, 10110, 01011,
11101}. You were given a generator matrix and parity check matrix for C.
Recall these or derive them using the method in Chapter 2. Write out the “top
part” of the standard array. To the right of each row, write down the syndrome
associated with the vectors in that given row. This forms a new column, we’ll call it
the syndrome column.
Problems 4 and 5 suggest a short-cut in decoding. We receive a vector r. Compute its
syndrome. If the syndrome is equal to 0, then we conclude no errors occurred. If the
syndrome does not equal 0, then find the syndrome in the syndrome column of the
standard array. Then, the received vector must be in the row corresponding to this
syndrome, so now we can determine which error occurred. At the very least, using the
syndrome column helps us find the received vector within the standard array. (We only
need to look through one column to find the correct row, rather than looking through the
entire table.) If you read more in Chapter 2, you will learn that the syndrome column can
be used to save even more time! (This is really cool, so you should read about it!)
We discussed in class that the syndrome of a received vector is equal to the syndrome of
the error that occurred. (Be sure that you can do this proof – it is an important one!) This
suggested that we should hope that the syndromes of different errors would be different.
In turn, this gave us some information about how we should construct parity check matrices
for binary linear codes. The next problem extends this idea to ternary linear codes.
6. Prove that any linear ternary code with a check matrix H can correct all single
errors if and only if no two columns of H are linearly dependent (in other words,
no two columns of H sum to 0 or subtract to 0).
7. ONE MORE PROBLEM MAY BE ADDED AFTER CLASS ON MONDAY OCT 2!
Download