0

A e-error-correcting-code, with size of message k bits to encode for each block. How many check bits should I append so that it satisfies hamming bound?

Given this definition, $ \frac{k}{n} \leq 1- \frac {\log_{q}Vol_q}{n}$

where

$Vol_q (e, n) = 1 + \binom{n}{1}{(q-1)}^{2} + ... + \binom{n}{e}{(q-1)}^{e}$

$ k = message bit $

$ e = error $

$ n = codeword bits$

waffle
  • 3
  • You talk about bits implying $q=2$. I cannot fathom why you still keep $q$ as a parameter? There are other weaknesses as explained in Kodlu's answer. – Jyrki Lahtonen Oct 25 '22 at 05:30

1 Answers1

1

Edit:

If $k=64,$ then $n=k+r,$ with $r$ the number of redundant or check bits. So fix your last equation where you use $k$ instead of another symbol to add to 64.

The inequality to be checked is [no need for logs] $$ V(n,e)\times \mathrm{number~ of~ codewords} =V(64+r,2)\times 2^{64} \leq 2^{64+r} $$ which is equivalently $$ V(64+r,2)\leq 2^r \Leftrightarrow1+(64+r)+\frac{(64+r)(63+r)}{2}\leq 2^r $$ where we increase $r$ until the inequality is satisfied.

It turns out $r=12$ is the smallest $r$ which yields the inequality so you need $n=64+12=76$ bit length codewords.

Original answer:

The statement of the question is strange; is this the original statement?

The Hamming bound is always satisfied [it's an upper bound on the number of codewords]. It is only achieved if the code is perfect.

I interpret the question as

What is the minimum number of check bits, hence the minimum codelength $n,$ that is needed for a code with $k,e$ as given to possibly exist, based on the Hamming bound? In this case, your approach is correct.

Just note that such a code may not exist, perfect codes are rare. In fact the only binary linear perfect codes (this has been proved, not a conjecture) are the repetition codes, the Hamming codes, and the (23,12) Golay code.

kodlu
  • 9,338