Cómo calcular el código Hamming (En 5 Pasos)

Por jonathan ryan
Cómo calcular el código Hamming (En 5 Pasos)
ram 3 image by PeteG from Fotolia.com

Los códigos Hamming se utilizan para insertar información de corrección de errores en los flujos de datos. Los códigos están diseñados de manera que un error no sólo se pueda detectar, sino que sea corregido. La suma de información de corrección de errores incrementa la cantidad de datos, sin embargo, aumenta la fiabilidad de las comunicaciones en medios con altas tasas de error.

La codificación Hamming puede ser difícil de implementar, sin embargo, puede ser muy rápida utilizando trucos aritméticos a nivel de bits. Esto hace que sea un sistema de corrección de errores útil para aplicaciones embebidas y de alta velocidad.

Paso 1

Crea la palabra de datos. Cualquier bit con una posición que es una potencia de dos (primero, segundo, cuarto, etc) debe ser reservado para la información de paridad. Usa el largo de una palabra que necesites adaptar a la fuente de datos y bits de paridad.

Por ejemplo:

1 1 0 1 0 0 1 0 se convierte en _ _ 1 _ 1 0 1 _ 0 0 1 0

Los bits permanecen en el mismo orden pero se han extendido para adaptarse a los bits de paridad.

Paso 2

Calcula el bit de paridad en primer lugar. Comenzando con el primer bit, lee un bit, luego salta un bit y repite la operación, mientras cuentas el número de unos encontrados. Los bits de paridad cuentan como ceros.

Si el número de unos es par, pon el primer bit como cero. De lo contrario, ponlo como uno.

Por ejemplo:

Los bits 1, 3, 5, 7, 9 y 11, de __ 1 _ 1 0 1 _ 0 0 1 0, _11101, contienen cuatro unos. Esto es par, por lo que el primer bit se pone como cero: 0 _ 1 _ 1 0 1 _ 0 0 1 0.

Paso 3

Calcula los bits de paridad restantes. El bit dos lee dos bits a partir del bit dos, luego salta dos y repite. El bit cuatro lee cuatro bits, luego salta cuatro y empieza con el bit cuatro. Continúa con este patrón hasta que no haya bits de paridad a la izquierda para calcular.

Por ejemplo:

Bit 2: 0 _ 1 _ 1 0 1 _ 0 0 1 0 revisa _1, 01, 01, que contiene 3 unos, así que el bit 2 se pone como 1. Bit 4: 0 1 1 _ 1 0 1 _ 0 0 1 0 revisa _101, 0, que contiene 2 unos, así que el bit 4 se pone como 0. Bit 8: 0 1 1 0 1 0 1 _ 0 0 1 0 revisa _0010, con sólo un uno, pone el bit 8 como 1.

La palabra codificada es por lo tanto 011010110010.

Paso 4

Confirma la palabra. Si una palabra está corrupta, los bits de paridad no coincidirán con lo que se espera. Para confirmar que una palabra no esté corrupta, sólo tienes que calcular los bits de paridad con los pasos dos y tres. Si alguno de los bits no coinciden, registra sus posiciones.

Paso 5

Corrige el bit malo. Si encuentras bits de paridad incorrectas, simplemente suma las posiciones de los bits. La suma es la posición del bit incorrecto. Mueve el valor del bit en esa posición.

Por ejemplo, si los bits de paridad uno y cuatro son incorrectos, voltea el valor del quinto quinto bit para corregir el error.