Decoding methods
Encyclopedia : D : DE : DEC : Decoding methods
This article discusses common methods in communication theory for decoding codewords sent over a noisy channel (such as a binary symmetric channel).
Notation
Henceforth [C \subset \mathbb_2^n] shall be a (not necessarily linear) code of length [n]; [x,y] shall be elements of [\mathbb_2^n]; and [d(x,y)] shall represent the Hamming distance between [x,y].Ideal observer decoding
Given a received codeword [x \in \mathbb_2^n], ideal observer decoding picks a codeword [y \in C] to maximise:
- [\mathbb(y \mbox \mid x \mbox)]
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.
Maximum likelihood decoding
Given a received codeword [x \in \mathbb_2^n] maximum likelihood decoding picks a codeword [y \in C] to maximise:
- [\mathbb(x \mbox \mid y \mbox)]
- [\begin\mathbb(x \mbox \mid y \mbox) & = & \frac(x \mbox , y \mbox) }(y \mbox )} \\&& \\& = & \frac(x \mbox , y \mbox) }(y \mbox)} \frac(y \mbox)}(x \mbox)} \\&& \\& = & \frac(x \mbox , y \mbox) }(y \mbox)} \\&& \\& = & \mathbb(y \mbox \mid x \mbox) \\\end]
- # Request that the codeword be resent;
- # Choose any one of the possible decodings at random.
Minimum distance decoding
Given a received codeword [x \in \mathbb_2^n], minimum distance decoding picks a codeword [y \in C] to minimise the Hamming distance :
- [d(x,y) = \# \]
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]
- [\begin\mathbb(y \mbox \mid x \mbox) & = & (1-p)^p^d \\&& \\& = & (1-p)^n \left( \frac\right)^d \\\end]
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.
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 [C\subset \mathbb_2^n] is a linear code of length [n] and minimum distance [d] with parity check matrix [H]. Then clearly [C] is capable of correcting upto
- [t=\lfloor\frac\rfloor]
Now suppose that a codeword [x \in \mathbb_2^n] is sent over the channel and the error pattern [e \in \mathbb_2^n] 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) [c \in C] with
- [d(c,z) \leq d(y,z)]
- [Hx = 0]
- [Hz = H(x+e) =Hx + He = 0 + He = He]
- [\begin\sum_^t \binom < |C| \\\end]
- [x = z - e ]
[Hx = Hy]
if and only if [x=y]. This is because the parity check matrix [H] is a generator matrix for the dual code [C^\perp] and hence is of full rank.
From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.
