Decoding methods
From Wikipedia, the free encyclopedia
| This article may require cleanup to meet Wikipedia's quality standards. Please improve this article if you can. (November 2007) |
In communication theory and coding theory, decoding is the process of translating received messages into codewords of a given code. This article discusses common methods of mapping messages to codewords. These methods are often used to recover messages sent over a noisy channel, such as a binary symmetric channel.
Contents |
[edit] Notation
Henceforth
shall be a code of length n; x,y shall be elements of
; and d(x,y) shall represent the Hamming distance between x,y. Note that C is not necessarily linear.
[edit] Ideal observer decoding
Given a received message
, ideal observer decoding picks a codeword
to maximise:
i.e. choose the codeword y that is most likely to be received as the message x after transmission.
[edit] Decoding conventions
Note that the probability for each codeword may not be unique: there may be more than one codeword with an equal likelihood of mutating into the received message. In such a case, the sender and receiver(s) must agree on a decoding convention. Popular conventions include:
-
- Request that the codeword be resent
- Choose any random codeword from the set of most likely codewords
[edit] Maximum likelihood decoding
Given a received codeword
maximum likelihood decoding picks a codeword
to maximise:
i.e. choose the codeword y 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 with ideal observer decoding, a convention must be agreed to for non-unique decoding.
[edit] Minimum distance decoding
Given a received codeword
, minimum distance decoding picks a codeword
to minimise the Hamming distance :
i.e. choose the codeword y that is as close as possible to x.
Note 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 likelihood decoding, since if
then:
which (since p is less than one half) is maximised by minimising d.
Minimum distance decoding is also known as nearest neighbour decoding. It can be assisted or automated by using a standard array. Minimum distance decoding is a reasonable decoding method when the following conditions are met:
-
- The probability p that an error occurs is independent of the position of the symbol
- Errors are independent events - an error at one position in the message does not affect other positions
These assumptions may be reasonable for transmissions over a binary symmetric channel. They may be unreasonable for other media, such as a DVD, where a single scratch on the disk can cause an error in many neighbouring symbols or codewords.
As with other decoding methods, a convention must be agreed to for non-unique decoding.
[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 up to
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.
[edit] See also
[edit] References
- Hill, Raymond. (1988). A First Course In Coding Theory, New York: Oxford University Press.










