Decoding methods

This is an old revision of this page, as edited by Culix (talk | contribs) at 03:35, 25 February 2008 (Add See also: section). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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.

Notation

Henceforth   shall be a code of length  ;   shall be elements of  ; and   shall represent the Hamming distance between  . Note that   is not necessarily linear.

Ideal observer decoding

Given a received message  , ideal observer decoding picks a codeword   to maximise:

 

i.e. choose the codeword   that is most likely to be received as the message   after transmission.

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:

  1. Request that the codeword be resent
  2. Choose any random codeword from the set of most likely codewords

Maximum likelihood decoding

Given a received codeword   maximum likelihood decoding picks a codeword   to maximise:

 

i.e. choose the codeword   that was most likely to have been sent given that   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.

Minimum distance decoding

Given a received codeword  , minimum distance decoding picks a codeword   to minimise the Hamming distance :

 

i.e. choose the codeword   that is as close as possible to  .

Note that if the probability of error on a discrete memoryless channel   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. Decoding can be assisted or automated by using a standard array.

As with other decoding methods, a convention must be agreed to for non-unique decoding.

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   and minimum distance   with parity-check matrix  . Then clearly   is capable of correcting up to

 

errors made by the channel (since if no more than   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   is received. Ordinary minimum distance decoding would lookup the vector   in a table of size   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:

 

for all  . The syndrome of the received   is defined to be:

 

Under the assumption that no more than   errors were made during transmission the receiver looks up the value   in a table of size

 

(for a binary code) against pre-computed values of   for all possible error patterns  . Knowing what   is, it is then trivial to decode   as:

 

Notice that this will always give a unique (but not necessarily accurate) decoding result since

 

if and only if  . This is because the parity check matrix   is a generator matrix for the dual code   and hence is of full rank.

See also

References

  • Hill, Raymond. (1988). A First Course In Coding Theory, New York: Oxford University Press.