¿Qué es un código de Hamming?
Un código de 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. Tal código es capaz de encontrar dos errores en cualquier secuencia de bits y reparar un bit que puede ser incorrecto. El código de Hamming al que se hace referencia más comúnmente 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 de 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 incluyendo 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, entonces, 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 de 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 usa para verificar algunas de las posiciones de bit 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 omite dos posiciones, verifica dos posiciones más, omite dos más, y así sucesivamente. Si hay un bit de paridad en la posición cuatro, actúa de manera similar en que verifica las posiciones cuatro a siete, luego omite cuatro posiciones, verifica cuatro más y más. Cada bit de paridad en la secuencia continúa de esta manera durante toda la secuencia.
El proceso por 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 salir 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. Como las comprobaciones de paridad se superponen, aparecerán dos de estos errores. Cuando se suman las posiciones de bit de dos paridades que no logran un total uniforme, revelará el bit que debe corregirse.
En el ejemplo del código de 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 aparecerá como un número impar, al igual que la suma de los bits en las posiciones cuatro a siete. Esto indica que las comprobaciones de paridad para los bits de comprobación en las posiciones uno y cuatro fallaron. 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.