Decoding methods: Difference between revisions

Content deleted Content added
adding list decoding, an important class of decoding algorithms, though my formatting is probably bad.
Syndrome decoding: removed unnecessary and replicated explanation.
Line 118:
\end{matrix}
</math>
 
(for a binary code). The table is against pre-computed values of <math>He</math> for all possible error patterns <math>e \in \mathbb{F}_2^n</math>.
 
Knowing what <math>e</math> is, it is then trivial to decode <math>x</math> as:
 
:<math>x = z - e </math>
 
For '''binary''' codes, if both <math>k</math> and <math>n-k</math> are not too big, and assuming the code generating matrix is in standard form, syndrome decoding can be computed using 2 precomputed lookup tables and 2 XORs only.<ref name="Wolf_2008"/>
 
Let <math>z</math> be the received noisy codeword, i.e. <math>z=x\oplus e</math>. Using the encoding lookup table of size <math>2^k</math>, the codeword <math>z'</math> that corresponds to the first <math>k</math> bits of <math>z</math> is found.
 
The syndrome is then computed as the last <math>n-k</math> bits of <math>s=z\oplus z'</math> (the first <math>k</math> bits of the XOR are zero [since the generating matrix is in standard form] and discarded). Using the syndrome, the error <math>e</math> is computed using the syndrome lookup table of size <math>2^{n-k}</math>, and the decoding is then computed via <math>x = z \oplus e</math> (for the codeword, or the first <math>k</math> bits of <math>x</math> for the original word).
 
The number of entries in the two lookup tables is <math>2^k+2^{n-k}</math>, which is significantly smaller than <math>2^n</math> required for [[standard array|standard array decoding]] that requires only <math>1</math> lookup. Additionally, the precomputed encoding lookup table can be used for the encoding, and is thus often useful to have.
 
== List decoding ==