¿Qué es un código Hamming?

Un código Hamming es un método para detectar y corregir errores en una transmisión binaria. Lo hace mediante la inclusión de dígitos binarios adicionales en la secuencia que se utilizan para la verificación, así como un algoritmo que proporciona la lógica de detección. Dicho código es capaz de encontrar dos errores en cualquier secuencia de bits y reparar un bit que puede ser incorrecto. El código Hamming al que se hace referencia con más frecuencia se conoce como Hamming (7,4), donde el cuatro indica el número original de bits iniciales y el siete representa el número total de bits en la secuencia después de que se hayan incluido los bits de verificación adicionales.

La técnica obtuvo su nombre de su creador, Richard Hamming, quien publicó el método en 1950. La forma en que funciona el código Hamming es tomando una cadena de bits e insertando bits de verificación adicionales, denominados bits de paridad, en la secuencia. Los bits de verificación siempre se inyectan en una posición que es una potencia de dos, por lo que se puede verificar cualquier número de bits al incluir bits de paridad adicionales. Esto puede continuar hasta que el último bit de paridad agregado a la secuencia esté en una posición que sea una potencia de dos que sea menor o igual que la posición final en la secuencia.

Con todos los bits de paridad en su lugar, las posiciones restantes son los bits de datos reales. Dado el ejemplo de cuatro bits, las posiciones de bit uno, dos y cuatro serían los bits de paridad, mientras que las posiciones tres, cinco, seis y siete son los datos. Una vez que se ha establecido esta secuencia, la lógica del código Hamming comienza a funcionar.

En un código de Hamming, cada uno de los bits de paridad que se han agregado a la secuencia se utilizan para verificar algunas de las posiciones de bits a las que están cerca, incluidos ellos mismos. El bit de paridad en la posición uno verifica cada posición de bit, que es esencialmente cada posición impar en la secuencia. El segundo bit de paridad, en la posición dos, verifica las posiciones dos y tres, luego salta dos posiciones, verifica dos posiciones más, salta dos más, y así sucesivamente. Si hay un bit de paridad en la posición cuatro, actúa de manera similar, ya que verifica las posiciones de la cuatro a la siete, luego salta cuatro posiciones, verifica cuatro más y en adelante. Cada bit de paridad en la secuencia continúa de esta manera a lo largo de toda la secuencia.

El proceso mediante el cual un código de Hamming detecta y corrige un error es sumando los bits en la secuencia de verificación para cada verificación de paridad, cada uno de los cuales debe ser un número par. Dado el ejemplo de siete bits, para la primera verificación de paridad, se suman los bits uno, tres, cinco y siete. Si el total es un número par, la paridad se verifica, pero si el total es impar, entonces hay un error. Dado que las comprobaciones de paridad se superponen, aparecerán dos de esos errores. Cuando se suman las posiciones de bit de dos paridades que no logran obtener totales pares, se revelará el bit que debe corregirse.

En el ejemplo del código Hamming de siete bits, considere que el bit en la posición número cinco es incorrecto. La suma de los bits en las posiciones uno, tres, cinco y siete saldrá como un número impar, al igual que la suma de los bits en las posiciones cuatro a siete. Esto indica que fallaron las comprobaciones de paridad de los bits de comprobación en las posiciones uno y cuatro. Cuando se suman uno y cuatro, el total es cinco, que es la posición del bit incorrecto en la transmisión que debe corregirse.