In literature, all I am seeing is Hamming code with minimum Hamming distance $3$. Theoretically a Hamming code with minimum distance d can detect $d-1$ errors and can correct $(d-1)/2$ error. So minimum distance of $3$ can detect $2$ errors and correct $1$ error.

So here is my question: Is it possible to generate a code with minimum Hamming distance of (let's say) $5$ which can correct $2$-bit errors in each block of coded bits?

If yes, could anyone please give me suggestion about that?

If not, then please give me an explanation.

  • 3
    $\begingroup$ A Hamming code is defined as a single-error-correcting code with minimum Hamming distance exactly $3$ and maximal block length for the chosen number $m$ of parity bits. Its parameters (if you have seen the notation before) are $$[n,k,d] =[2^m-1,2^m-1-m,3].$$. So you cannot find "a _Hamming_ code with minimum distance $5$" as you want but you can find a code with minimum Hamming distance $5$ (notice the change in the location of the word "Hamming"). An easily-understood example can be found in Chapter 1 of Berkekamp's Algebraic Coding Theory (McGrawHill 1968, Aegean Press 1984). $\endgroup$ Jun 11, 2018 at 13:48
  • $\begingroup$ -1 for the use of $n$ in the title of your question to denote the minimum distance of the code. If your book or whatever material you are reading (including class notes that you have faithfully transcribed from what your instructor wrote on the board) uses $n$ for minimum distance, throw it away and find some other source/instructor. The use of $n$ to denote block length is universal in coding theory. $\endgroup$ Jun 11, 2018 at 14:05
  • $\begingroup$ Sorry for the mistake. I have edited it. Could you please remove -1? $\endgroup$
    – Sourav Dev
    Jun 11, 2018 at 17:15
  • $\begingroup$ OK, removed the -1. Unfortunately, the answer by user36216 uses $n$ for the number ef parity bits (and is mostly wrong otherwise too). $\endgroup$ Jun 12, 2018 at 2:24

1 Answer 1


You cannot detect 2-bit errors (reliably) with a Hamming code distance of 3 if you are correcting 1-bit errors.

At any rate, you can design Hamming codes correcting two errors. Let's assume 32bit of data and n Hamming code bits. The states we then need to be able to encode is 0 bit error = 1 state 1 bit error = 32+n states 2 bit error = (32+n)(31+n)/2 states For n=10, this amounts to 1+32+10+21*41 = 904 states that can be encoded with 10 bits of redundancy. Depending on how complex you want your correction machinery to get, you might want to use more bits in order to make multiple error correction less complex.

  • $\begingroup$ Thanks for your answer. Could you please give me one or more sources which discuss your points in details? $\endgroup$
    – Sourav Dev
    Jun 11, 2018 at 10:08
  • $\begingroup$ This answer is mostly nonsensical. $\endgroup$ Jun 11, 2018 at 13:16

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.