Section 8.4 Efficient Decoding
We are now at the stage where we are able to generate linear codes that detect and correct errors fairly easily, but it is still a time-consuming process to decode a received -tuple and determine which is the closest codeword, because the received -tuple must be compared to each possible codeword to determine the proper decoding. This can be a serious impediment if the code is very large.
If is an matrix and then we say that the syndrome of is The following proposition allows the quick detection and correction of errors.
Proposition 8.36.
Let the binary matrix determine a linear code and let be the received -tuple. Write as where is the transmitted codeword and is the transmission error. Then the syndrome of the received codeword is also the syndrome of the error
Proof.
The proof follows from the fact that
This proposition tells us that the syndrome of a received word depends solely on the error and not on the transmitted codeword. The proof of the following theorem follows immediately from Proposition 8.36 and from the fact that is the th column of the matrix
Theorem 8.37.
Let and suppose that the linear code corresponding to is single error-correcting. Let be a received -tuple that was transmitted with at most one error. If the syndrome of is then no error has occurred; otherwise, if the syndrome of is equal to some column of say the th column, then the error has occurred in the th bit.
Example 8.38.
Consider the matrix
Hence, has an error in the third bit and has an error in the fourth bit. The transmitted codewords for and must have been and respectively. The syndrome of does not occur in any of the columns of the matrix so multiple errors must have occurred to produce
Subsection Coset Decoding
We can use group theory to obtain another way of decoding messages. A linear code is a subgroup of Coset or standard decoding uses the cosets of in to implement maximum-likelihood decoding. Suppose that is an -linear code. A coset of in is written in the form where By Lagrange’s Theorem (Theorem 6.10), there are distinct cosets of in
Example 8.39.
The code consists of the codewords
Our task is to find out how knowing the cosets might help us to decode a message. Suppose that was the original codeword sent and that is the -tuple received. If is the transmission error, then or, equivalently, However, this is exactly the statement that is an element in the coset In maximum-likelihood decoding we expect the error to be as small as possible; that is, will have the least weight. An -tuple of least weight in a coset is called a coset leader. Once we have determined a coset leader for each coset, the decoding process becomes a task of calculating to obtain
Example 8.41.
In Table 8.40, notice that we have chosen a representative of the least possible weight for each coset. These representatives are coset leaders. Now suppose that is the received word. To decode we find that it is in the coset hence, the originally transmitted codeword must have been
A potential problem with this method of decoding is that we might have to examine every coset for the received codeword. The following proposition gives a method of implementing coset decoding. It states that we can associate a syndrome with each coset; hence, we can make a table that designates a coset leader corresponding to each syndrome. Such a list is called a decoding table.
Proposition 8.43.
Let be an -linear code given by the matrix and suppose that and are in Then and are in the same coset of if and only if That is, two -tuples are in the same coset if and only if their syndromes are the same.
Proof.
Two -tuples and are in the same coset of exactly when however, this is equivalent to or
Example 8.44.
Table 8.42 is a decoding table for the code given in Example 8.39. If is received, then its syndrome can be computed to be
Examining the decoding table, we determine that the coset leader is It is now easy to decode the received codeword.
Given an -block code, the question arises of whether or not coset decoding is a manageable scheme. A decoding table requires a list of cosets and syndromes, one for each of the cosets of Suppose that we have a -block code. We have a huge number of codewords, yet there are only cosets.