User:NotFromFrance/sandbox

Product codes are a class of error correction code that were introduced by Peter Elias in 1954. They are long, powerful codes that are constructed from short component codes. Besides their continued use in channel coding applications (citation needed), they are also notable, when paired with Elias's proposed decoding algorithm, for being the first channel coding technique to achieve an arbitrarily small error probability with non-vanishing code rate (citation needed).



Construction
In 2 dimensions, product codes are constructed by arranging the input symbols in an array. Each row (or column) of the array is extended by encoding it with a systematic code. Then each column (or row) is extended by encoding it with another systematic code, possibly distinct from the first one.

This procedure generalises to higher dimensions. In $$d$$ dimensions, the input symbols are structured as a $$d$$-dimensional hyperrectangle of shape $$k_1 \times k_2 \times ... \times k_d$$. The hyperrectangle is extended along each axis using $$d$$ component codes to produce an $$n_1 \times n_2 \times ... \times n_d$$ hyperrectangle.

Properties

 * All rows and all columns are codewords.
 * Total length, total number of information symbols, rate, hamming distance.

Decoding
Todo