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.there are several methods in 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.
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 ahead of time on a decoding convention. Popular conventions include:
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.
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. 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:
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.
The simplest kind of syndrome decoding is Hamming code.
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 - i.e. 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.
Partial response maximum likelihood (PRML) is a method for converting the weak analog signal from the head of a magnetic disk or tape drive into a digital signal.
A viterbi decoder uses the viterbi algorithm for decoding a bitstream that has been encoded using forward error correction based on a convolutional code. The Hamming distance is used as a metric for hard decision viterbi decoders. The squared Euclidean distance is used as a metric for soft decision decoders.