Código Hamming

En la imagen vemos la distribución de un mensaje de 11 bits. Cada celda lleva el número de orden escrito en sistema binario con números pequeños.

Mensaje en celdas blancas "10001001111" :

Distribución del mensaje de 11 bits en Código Hamming

Hay 5 celdas verdes que indican paridad y las blancas indican los 11 bits del mensaje en orden.

Con esta disposición, si por ejemplo la matriz sufre un cambio en un bit se puede detectar la celda errónea

Solo hay que adivinar los cuatro dígitos que tiene en pequeño en su parte inferior la celda, y esto se sabe con cuatro preguntas de sí o no

¿La primera cifra es un uno. ---1? Si la paridad que se muestra en la casilla 0001 es incorrecta, la respuesta es que la celda que contiene el error es de este tipo, ---1

De este modo con las cuatro paridades parciales se sabe cuál es la celda errónea

La casilla 0000 de la paridad total del mensaje, da por ejemplo información sobre el número de errores en los bits mensaje, cuando hay un número impar de celdas mensaje incorrectas, esta paridad total no se corresponde con lo que vemos.

Ejemplo

Tabla con error

Vamos a detectar cuál es la celda errónea. El error es único.

Si sumamos las celdas blancas con este formato ---1 en su orden indicado en pequeño en su pie, vemos que da 3 es decir 1 mod 2, por tanto la cifra de la celda errónea no está ahí.

Si sumamos las celdas blancas de formato --1- da 1 mod 2 que no coincide con el resultado 0 de la celda que da la paridad de esta suma, la 0010. Por tanto, ahí hay un error.

La celda errónea tiene este formato --10. Si sumamos las celdas blancas de formato -1--- da 0 mod 2, como indica la celda 0100.

Finalmente, la suma de las celdas blancas de formato 1--- da 0 mod 2, como la celda 1000.

El error está en la celda 0010. En este caso, resultó errónea una celda de paridad.

Tabla corregida

Aquí se muestra la tabla corregida, con la celda 0010 destacada.

Ejemplo 2

¿Cuántos errores hay 0, 1, o 2?

Ejemplo de detección de errores Tabla con una celda errónea Mensaje con un único error

Navega en el siguiente frame para adivinar fallos en la matriz que se ve.