You are on page 1of 2

Cdigo Hamming

El Cdigo Hamming es una categora de cdigos de bloque para correccin de errores. Los cdigos Hamming estn diseados para tener una dmn=3, lo que quiere decir que, con seguridad, pueden detectar errores de hasta dos bits y corregir errores de bit [1]. En este documento se discuten los pasos necesarios para calcular el cdigo Hamming en el extremo emisor y en el extremo receptor. Bits de Redundancia Antes de calcular el cdigo Hamming es necesario saber cuntos bits de redundancia sern necesarios para la palabra de datos a corregir. Para calcular el nmero de bits de redundancia (r) necesarios para corregir un nmero de bits de datos determinados (m), es necesario encontrar una relacin entre r y m. La longitud del cdigo resultante sera r + m. Si el nmero total de bits en una unidad transmisible es m + r, entonces r debe ser capaz de indicar al menos m + r + 1 estados distintos. De todos ellos, un estado significa que no hay error y m + r estados indican la existencia de un error en cualquiera de las m + r posiciones de la palabra codificada. Por tanto, r es necesario descubrir m + r + 1 estados con r bits; y r bits pueden indicar 2 estados distintos. Entonces, r 2 debe ser mayor o igual que m + r + 1: 2 m+r+1 El valor de r se puede determinar despejando el valor de m. Por ejemplo, si el valor de m es 7, el valor de r ms pequeo que satisface esta ecuacin es 4: 2 7+4+1 16 12 En la Tabla 1 se muestran algunos valores posibles de m y sus correspondientes valores de r: m 1 2 3 4 5 6 7 r 2 3 3 3 4 4 4 m+r 3 5 6 7 9 10 11
4 r

Tabla 1. Relacin entre los bits de datos y de redundancia

Cdigo Hamming Sabiendo el nmero de bits necesarios para cubrir todos los posibles estados de error de un bit de una transmisin, es necesario conocer cmo se manipulan estos bits para descubrir en que estado se ha producido el error. Una tcnica desarrollada po R. W. Hamming proporciona una solucin prctica [2]. Posicin de los bits de redundancia El Cdigo Hamming se puede aplicar a unidades de datos de cualquier longitud y usa la relacin de bits de datos y bits de redundancia mostrado anteriormente. Por ejemplo, un cdigo ASCII de 7 bits necesita 4 bits de redundancia que se pueden aadir al final de la unidad de datos o intercalar con los bits de datos originales. En la Figura 1 estos bits se colocan en las posiciones 1, 2, 4 y 8 (potencias de 2). Para mayor claridad, estas sern llamadas r1, r2, r4 y r8.

11 d

10 d

9 d

8 r

7 d

6 d

5 d

4 r

3 d

2 r

1 r

Figura 1. Posiciones de los bits de redundancia en el Cdigo Hamming

En el cdigo Hamming, cada bit r es el bit de paridad para una combinacin de bits de datos: r1 es el bit de paridad para una combinacin de bits de datos; r2 es el bit de paridad para otra combinacin de bits de datos, etc. Las combinaciones usadas para calcular cada uno de los cuatro valores de r para una secuencia de datos de siete bits son las siguientes: r1 : bits 1, 3, 5, 7, 9, 11 r2 : bits 2, 3, 6, 7, 10, 11 r4 : bits 4, 5, 6, 7 r8 : bits 8, 9, 10, 11 Cada bit de datos se puede incluir en ms de un clculo de paridad. Por ejemplo, en las secuencias de arriba, cada uno de los bits de datos originales se incluyen en, al menos, dos conjuntos, mientras que los bits r se incluyen solamente en uno. Para comprender el patrn subyacente detrs de esta estrategia, observe la representacin binaria de cada posicin de bit. El bit que calcula r1 se calcula usando todas las posiciones de bits cuya representacin binaria incluye un 1 ms a la derecha. El bit r2 se calcula usando todas las posiciones de bits con un 1 en la segunda posicin, etc. [2]. Clculo de los valores de r en el emisor Para este clculo, en el primer paso, se sita cada bit de la palabra de datos original en su posicin apropiada dentro de la unidad de 11 bits (en el ejemplo ver Figura 2). En los pasos siguientes, se calculan las paridades pares para las distintas combinaciones de bits. El valor de paridad de cada combinacin es el valor del bit r correspondiente. Por ejemplo, el valor de r1 se calcula para proporcionar paridad par para una combinacin de los bits 3, 5, 7, 9 y 11. La palabra codificada final de 11 bits se enva a travs de la lnea de transmisin. Deteccin y correccin de errores en el receptor Se tiene el siguiente ejemplo: 1 0 0 1 0 1 0 0 1 0 1 Recibido

Error!!! 1 0 0

Enviado

Figura 2. Correccin de errores con Cdigo Hamming

El receptor toma los datos y recalcula cuatro nuevos bits de paridad usando el mismo conjunto de bits usados por el emisor, ms el bit de paridad relevante (r) de cada conjunto. A continuacin reensamblan los nuevos valores de paridad en un nmero binario siguiendo el orden de la posicin de r (r8, r4, r2 y r1). En el ejemplo (Figura 2), este paso proporciona el nmero binario 0111 (7 en decimal), que es la posicin precisa del bit con error. Una vez que se ha identificado el bit, el receptor puede invertir su valor y corregir el error.

Referencias [1] Forouzan, B. Data Communications and Networking. Mc Graw Hill. 4thed. 2007. [2] Stallings, W. Comunicaciones y Redes de Computadores. Prentice Hall. 7 ed. 2004.