What order the rows are in a Hamming generator matrix are irrelevant for the Hamming coding to work, given the check matrix is built accoridngly.

In order to limit cognitive overload, it could have been decided that the "official" way of doing it should be either all data rows first then all parity rows after, all in ascending order, or just all rows in ascending order. In that case, in the description of a communications protocol it would be enough to specify the number of bits without providing the generator matrix, and everyone would know how to implement it. Very simple software libraries could be written which implement it.

However, after looking at some implementations, this is not the case. People seem to use arbitrary matrices, such as

$$\begin{pmatrix} 1 & 1 & 0 & 1 \\ 1 & 0 & 1 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 1 & 1 & 1 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}$$

Is there a reason why one such ordering would be superior to other orderings?


1 Answer 1


If a single-bit error correction is attempted, the ordering presented in the example guarantees that the syndrome vector (the result of the multiplication of the checking matrix and the received data), if interpreted as an integer, will indicate the position of the error. Otherwise, a lookup table would have to be used.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.