Decoding methods
In coding theory, decoding is the process of translating received messages into codewords of a given code. There have been many common methods of mapping messages to codewords. These are often used to recover messages sent over a noisy channel, such as a binary symmetric channel.
Notation
[math]\displaystyle{ C \subset \mathbb{F}_2^n }[/math] is considered a binary code with the length [math]\displaystyle{ n }[/math]; [math]\displaystyle{ x,y }[/math] shall be elements of [math]\displaystyle{ \mathbb{F}_2^n }[/math]; and [math]\displaystyle{ d(x,y) }[/math] is the distance between those elements.
Ideal observer decoding
One may be given the message [math]\displaystyle{ x \in \mathbb{F}_2^n }[/math], then ideal observer decoding generates the codeword [math]\displaystyle{ y \in C }[/math]. The process results in this solution:
- [math]\displaystyle{ \mathbb{P}(y \mbox{ sent} \mid x \mbox{ received}) }[/math]
For example, a person can choose the codeword [math]\displaystyle{ y }[/math] that is most likely to be received as the message [math]\displaystyle{ x }[/math] after transmission.
Decoding conventions
Each codeword does not have an expected possibility: 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:
- Request that the codeword be resent – automatic repeat-request.
- Choose any random codeword from the set of most likely codewords which is nearer to that.
- If another code follows, mark the ambiguous bits of the codeword as erasures and hope that the outer code disambiguates them
- Report a decoding failure to the system
Maximum likelihood decoding
Given a received vector [math]\displaystyle{ x \in \mathbb{F}_2^n }[/math] maximum likelihood decoding picks a codeword [math]\displaystyle{ y \in C }[/math] that maximizes
- [math]\displaystyle{ \mathbb{P}(x \mbox{ received} \mid y \mbox{ sent}) }[/math],
that is, the codeword [math]\displaystyle{ y }[/math] that maximizes the probability that [math]\displaystyle{ x }[/math] was received, given that [math]\displaystyle{ y }[/math] was sent. If all codewords are equally likely to be sent then this scheme is equivalent to ideal observer decoding. In fact, by Bayes Theorem,
- [math]\displaystyle{ \begin{align} \mathbb{P}(x \mbox{ received} \mid y \mbox{ sent}) & {} = \frac{ \mathbb{P}(x \mbox{ received} , y \mbox{ sent}) }{\mathbb{P}(y \mbox{ sent} )} \\ & {} = \mathbb{P}(y \mbox{ sent} \mid x \mbox{ received}) \cdot \frac{\mathbb{P}(x \mbox{ received})}{\mathbb{P}(y \mbox{ sent})}. \end{align} }[/math]
Upon fixing [math]\displaystyle{ \mathbb{P}(x \mbox{ received}) }[/math], [math]\displaystyle{ x }[/math] is restructured and [math]\displaystyle{ \mathbb{P}(y \mbox{ sent}) }[/math] is constant as all codewords are equally likely to be sent. Therefore, [math]\displaystyle{ \mathbb{P}(x \mbox{ received} \mid y \mbox{ sent}) }[/math] is maximised as a function of the variable [math]\displaystyle{ y }[/math] precisely when [math]\displaystyle{ \mathbb{P}(y \mbox{ sent}\mid x \mbox{ received} ) }[/math] is maximised, and the claim follows.
As with ideal observer decoding, a convention must be agreed to for non-unique decoding.
The maximum likelihood decoding problem can also be modeled as an integer programming problem.[1]
The maximum likelihood decoding algorithm is an instance of the "marginalize a product function" problem which is solved by applying the generalized distributive law.[2]
Minimum distance decoding
Given a received codeword [math]\displaystyle{ x \in \mathbb{F}_2^n }[/math], minimum distance decoding picks a codeword [math]\displaystyle{ y \in C }[/math] to minimise the Hamming distance:
- [math]\displaystyle{ d(x,y) = \# \{i : x_i \not = y_i \} }[/math]
i.e. choose the codeword [math]\displaystyle{ y }[/math] that is as close as possible to [math]\displaystyle{ x }[/math].
Note that if the probability of error on a discrete memoryless channel [math]\displaystyle{ p }[/math] is strictly less than one half, then minimum distance decoding is equivalent to maximum likelihood decoding, since if
- [math]\displaystyle{ d(x,y) = d,\, }[/math]
then:
- [math]\displaystyle{ \begin{align} \mathbb{P}(y \mbox{ received} \mid x \mbox{ sent}) & {} = (1-p)^{n-d} \cdot p^d \\ & {} = (1-p)^n \cdot \left( \frac{p}{1-p}\right)^d \\ \end{align} }[/math]
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 [math]\displaystyle{ p }[/math] 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.
Syndrome decoding
Syndrome decoding is a highly efficient method of decoding a linear code over a noisy channel, i.e. one on which errors are made. In essence, syndrome decoding is minimum distance decoding using a reduced lookup table. This is allowed by the linearity of the code.[3]
Suppose that [math]\displaystyle{ C\subset \mathbb{F}_2^n }[/math] is a linear code of length [math]\displaystyle{ n }[/math] and minimum distance [math]\displaystyle{ d }[/math] with parity-check matrix [math]\displaystyle{ H }[/math]. Then clearly [math]\displaystyle{ C }[/math] is capable of correcting up to
- [math]\displaystyle{ t = \left\lfloor\frac{d-1}{2}\right\rfloor }[/math]
errors made by the channel (since if no more than [math]\displaystyle{ t }[/math] errors are made then minimum distance decoding will still correctly decode the incorrectly transmitted codeword).
Now suppose that a codeword [math]\displaystyle{ x \in \mathbb{F}_2^n }[/math] is sent over the channel and the error pattern [math]\displaystyle{ e \in \mathbb{F}_2^n }[/math] occurs. Then [math]\displaystyle{ z=x+e }[/math] is received. Ordinary minimum distance decoding would lookup the vector [math]\displaystyle{ z }[/math] in a table of size [math]\displaystyle{ |C| }[/math] for the nearest match - i.e. an element (not necessarily unique) [math]\displaystyle{ c \in C }[/math] with
- [math]\displaystyle{ d(c,z) \leq d(y,z) }[/math]
for all [math]\displaystyle{ y \in C }[/math]. Syndrome decoding takes advantage of the property of the parity matrix that:
- [math]\displaystyle{ Hx = 0 }[/math]
for all [math]\displaystyle{ x \in C }[/math]. The syndrome of the received [math]\displaystyle{ z=x+e }[/math] is defined to be:
- [math]\displaystyle{ Hz = H(x+e) =Hx + He = 0 + He = He }[/math]
To perform ML decoding in a binary symmetric channel, one has to look-up a precomputed table of size [math]\displaystyle{ 2^{n-k} }[/math], mapping [math]\displaystyle{ He }[/math] to [math]\displaystyle{ e }[/math].
Note that this is already of significantly less complexity than that of a standard array decoding.
However, under the assumption that no more than [math]\displaystyle{ t }[/math] errors were made during transmission, the receiver can look up the value [math]\displaystyle{ He }[/math] in a further reduced table of size
- [math]\displaystyle{ \begin{matrix} \sum_{i=0}^t \binom{n}{i}\\ \end{matrix} }[/math]
List decoding
Information set decoding
This is a family of Las Vegas-probabilistic methods all based on the observation that it is easier to guess enough error-free positions, than it is to guess all the error-positions.
The simplest form is due to Prange: Let [math]\displaystyle{ G }[/math] be the [math]\displaystyle{ k \times n }[/math] generator matrix of [math]\displaystyle{ C }[/math] used for encoding. Select [math]\displaystyle{ k }[/math] columns of [math]\displaystyle{ G }[/math] at random, and denote by [math]\displaystyle{ G' }[/math] the corresponding submatrix of [math]\displaystyle{ G }[/math]. With reasonable probability [math]\displaystyle{ G' }[/math] will have full rank, which means that if we let [math]\displaystyle{ c' }[/math] be the sub-vector for the corresponding positions of any codeword [math]\displaystyle{ c = mG }[/math] of [math]\displaystyle{ C }[/math] for a message [math]\displaystyle{ m }[/math], we can recover [math]\displaystyle{ m }[/math] as [math]\displaystyle{ m = c' G'^{-1} }[/math]. Hence, if we were lucky that these [math]\displaystyle{ k }[/math] positions of the received word [math]\displaystyle{ y }[/math] contained no errors, and hence equalled the positions of the sent codeword, then we may decode.
If [math]\displaystyle{ t }[/math] errors occurred, the probability of such a fortunate selection of columns is given by [math]\displaystyle{ \textstyle\binom{n-t}{k}/\binom{n}{k} }[/math].
This method has been improved in various ways, e.g. by Stern[4] and Canteaut and Sendrier.[5]
Partial response maximum likelihood
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.
Viterbi decoder
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.
Optimal decision decoding algorithm (ODDA)
Optimal decision decoding algorithm (ODDA) for an asymmetric TWRC system.[clarification needed][6]
See also
- Don't care alarm
- Error detection and correction
- Forbidden input
References
- ↑ Feldman, Jon; Wainwright, Martin J.; Karger, David R. (March 2005). "Using Linear Programming to Decode Binary Linear Codes". IEEE Transactions on Information Theory 51 (3): 954–972. doi:10.1109/TIT.2004.842696.
- ↑ Aji, Srinivas M.; McEliece, Robert J. (March 2000). "The Generalized Distributive Law". IEEE Transactions on Information Theory 46 (2): 325–343. doi:10.1109/18.825794. https://authors.library.caltech.edu/1541/1/AJIieeetit00.pdf.
- ↑ Projective Geometry. Cambridge University Press. 1998. p. 190. ISBN 0-521-48277-1.
- ↑ "A method for finding codewords of small weight". Coding Theory and Applications. Lecture Notes in Computer Science. 388. Springer-Verlag. 1989. pp. 106–113. doi:10.1007/BFb0019850. ISBN 978-3-540-51643-9.
- ↑ Advances in Cryptology — ASIACRYPT'98. Lecture Notes in Computer Science. 1514. 1998. pp. 187–199. doi:10.1007/3-540-49649-1. ISBN 978-3-540-65109-3.
- ↑ Siamack Ghadimi (2020), Optimal decision decoding algorithm (ODDA) for an asymmetric TWRC system;, Universal Journal of Electrical and Electronic Engineering
Further reading
- A first course in coding theory. Oxford Applied Mathematics and Computing Science Series. Oxford University Press. 1986. ISBN 978-0-19-853803-5. https://archive.org/details/firstcourseincod0000hill.
- Introduction to the theory of error-correcting codes. Wiley-Interscience Series in Discrete Mathematics. John Wiley & Sons. 1982. ISBN 978-0-471-08684-0.
- Introduction to Coding Theory. Graduate Texts in Mathematics (GTM). 86 (2 ed.). Springer-Verlag. 1992. ISBN 978-3-540-54894-2. https://archive.org/details/introductiontoco0000lint.
Original source: https://en.wikipedia.org/wiki/Decoding methods.
Read more |