Computer Science

Hamming Sphere-Packing Bound

Pack Hamming balls to see which error-correcting code sizes are impossible.

By Riano · Published · Updated · Report a correction

Hamming Sphere-Packing Bound

The Hamming Sphere-Packing Bound provides a fundamental limitation on the parameters of an error-correcting code. It states that the total volume of non-overlapping Hamming spheres around each codeword must not exceed the total volume of the ambient space.

Worked Example

Consider a binary code with length n = 7 correcting up to t = 1 errors, such as the Hamming(7,4) code.

  1. The volume of one Hamming sphere of radius 1 is V = 1 + 7 = 8.
  2. For M = 16 codewords, the used sphere budget is 16 × 8 = 128.
  3. The binary space size is 27 = 128.
  4. The budget slack is 128 - 128 = 0, meaning it perfectly packs the space. The code is "Not ruled out".

Experiment

In the Hamming Sphere-Packing Bound module, you can adjust the parameters:

  1. Select Bits n to change the space dimensionality.
  2. Select Errors t to change the radius of the Hamming balls.
  3. Select Codewords M to see if that many non-overlapping spheres can fit in the space.

Observe the "Verdict" output. When the "Used sphere budget" exceeds the "Binary space size", the slack becomes negative, and such a code is "Ruled out".

Limitations

Passing the Hamming bound is a necessary condition, but not sufficient. A result of "Not ruled out" does not prove that a code with those parameters actually exists. Additionally, the bound assumes all spheres are completely disjoint, which is required for guaranteed error correction, but not for probabilistic decoding.

References

Tonchev, V. D. "Coding Theory". https://pages.mtu.edu/~tonchev/Coding-Theory-Tohoku-June-09.pdf.

Experience it interactively

Adjust parameters, observe in real time, and build deep intuition with Riano’s interactive Hamming Sphere-Packing Bound module.

Try Hamming Sphere-Packing Bound on Riano →

More in Computer Science