Decoding methods
From Wikipedia, the free encyclopedia
This article discusses common methods in communication theory for decoding codewords sent over a noisy channel (such as a binary symmetric channel).
Contents |
[edit] Notation
Henceforth shall be a (not necessarily linear) code of length n; x,y shall be elements of ; and d(x,y) shall represent the Hamming distance between x,y.
[edit] Ideal observer decoding
Given a received codeword , ideal observer decoding picks a codeword to maximise:
-the codeword (or a codeword) that is most likely to be received as x.
Where this decoding result is non-unique a convention must be agreed. Popular such conventions are:
-
- Request that the codeword be resent;
- Choose any one of the possible decodings at random.
[edit] Maximum likelihood decoding
Given a received codeword maximum likelihood decoding picks a codeword to maximise:
-the codeword that was most likely to have been sent given that x was received. Note that if all codewords are equally likely to be sent during ordinary use, then this scheme is equivalent to ideal observer decoding:
As for ideal observer decoding, a convention must be agreed for non-unique decoding. Again, popular such conventions are:
-
- Request that the codeword be resent;
- Choose any one of the possible decodings at random.
[edit] Minimum distance decoding
Given a received codeword , minimum distance decoding picks a codeword to minimise the Hamming distance :
-the codeword (or a codeword) that is as close as possible to .
Notice that if the probability of error on a discrete memoryless channel p is strictly less than one half, then minimum distance decoding is equivalent to maximum likelhood decoding since if
- d(x,y) = d
then:
which (since p is less than one half) is maximised by minimising d.
As for other decoding methods, a convention is agreed for non-unique decoding. Popular such conventions are:
-
- Request that the codeword be resent;
- Choose any one of the possible decodings at random.
[edit] Syndrome decoding
Syndrome decoding is a highly efficient method of decoding a linear code over a noisy channel - ie one on which errors are made. In essence, syndrome decoding is minimum distance decoding using a reduced lookup table. It is the linearity of the code which allows for the lookup table to be reduced in size.
Suppose that is a linear code of length n and minimum distance d with parity check matrix H. Then clearly C is capable of correcting upto
errors made by the channel (since if no more than t errors are made then minimum distance decoding will still correctly decode the incorrectly transmitted codeword).
Now suppose that a codeword is sent over the channel and the error pattern occurs. Then z = x + e is received. Ordinary minimum distance decoding would lookup the vector z in a table of size | C | for the nearest match - ie an element (not necessarily unique) with
for all . Syndrome decoding takes advantage of the property of the parity matrix that:
- Hx = 0
for all . The syndrome of the received z = x + e is defined to be:
- Hz = H(x + e) = Hx + He = 0 + He = He
Under the assumption that no more than t errors were made during transmission the receiver looks up the value He in a table of size
(for a binary code) against pre-computed values of He for all possible error patterns . Knowing what e is, it is then trivial to decode x as:
- x = z − e
Notice that this will always give a unique (but not necessarily accurate) decoding result since
Hx = Hy
if and only if x = y. This is because the parity check matrix H is a generator matrix for the dual code and hence is of full rank.