You are on page 1of 3

Hamming (7,4)

Hoy, el cdigo de Hamming se refiere al (7.4) que Hamming introdujo en 1950. El c digo de Hamming agrega tres !its adicionales de com"ro!aci n "or cada cuatro !its de datos del mensaje. El algoritmo de Hamming (7.4) "uede corregir cualquier error de un solo !it, "ero cuando #ay errores en m$s de un !it, la "ala!ra transmitida se confunde con otra con error en un s lo !it, siendo corregida, "ero de forma incorrecta, es decir que la "ala!ra que se corrige es otra distinta a la original, y el mensaje final ser$ incorrecto sin sa!erlo. %ara "oder detectar (aunque sin corregirlos) errores de dos !its, se de!e a&adir un !it m$s, y el c digo se llama Hamming extendido. El "rocedimiento "ara esto se e'"lica al final. El algoritmo es el siguiente( 1. )odos los !its cuya "osici n es "otencia de dos se utili*an como !its de "aridad ("osiciones 1, +, 4, ,, 1-, .+, -4, etc.). +. /os !its del resto de "osiciones son utili*ados como !its de datos ("osiciones ., 5, -, 7, 9, 10, 11, 1+, 1., 14, 15, 17, etc.). .. 0ada !it de "aridad se o!tiene calculando la "aridad de alguno de los !its de datos. /a "osici n del !it de "aridad determina la secuencia de los !its que alternati1amente com"rue!a y salta, a "artir de 2ste, tal y como se e'"lica a continuaci n. %osici n 1( salta 0, com"rue!a 1, salta 1, com"rue!a 1, etc. %osici n +( salta 1, com"rue!a +, salta +, com"rue!a +, etc. %osici n 4( salta ., com"rue!a 4, salta 4, com"rue!a 4, etc. %osici n ,( salta 7, com"rue!a ,, salta ,, com"rue!a ,, etc. %osici n 1-( salta 15, com"rue!a 1-, salta 1-, com"rue!a 1-, etc. 3egla general "ara la "osici n n es( salta n-1 bits, comprueba n bits, salta n bits, comprueba n bits... 4 as5 sucesi1amente. En otras palabras, el bit de paridad de la posicin 2k comprueba los bits en las posiciones que tengan al bit k en su representacin binaria 6ic#o a la in1ersa, el !it 1., "or ejem"lo, es c#equeado "or los !its ,, 4 y 1, al ser estos los de su re"resentaci n !inaria( 1.71101(+)8 ,71000(+)8 470100(+)8 170001(+). 9s5, "or ejem"lo, "ara los "rimeros t2rminos se tiene( En la %osici En la %osici En la %osici En la %osici n 1 (+:0 7 1), com"ro!ar5amos los !its( ., 5, 7, 9, 11, 1.... n + (+:1 7 +), los !its( ., -, 7, 10, 11, 14, 15... n 4 (+:+ 7 4), los !its( 5, -, 7, 1+, 1., 14, 15, +0, +1, ++, +.... n , (+:. 7 ,) tendr5amos( 9, 10, 11, 1+, 1., 14, 15, +4;.1...

<iguiendo el algoritmo #asta com"letar la nue1a cadena.

E!emplo"
0onsideremos la "ala!ra de datos de 7 !its =0110101=. %ara 1er c mo se generan y utili*an los c digos Hamming "ara detectar un error, o!ser1e las ta!las siguientes. <e utili*a la d "ara indicar los !its de datos y la p "ara los de "aridad. En "rimer lugar los !its de datos se insertan en las "osiciones a"ro"iadas y los !its de "aridad calculados en cada caso usando la paridad #osicin" 1 2 $ 4 % & 7 ' ( 1) 11

p1 p2 d1 p$ d2 d$ d4 p4 d% d& d7 #alabra de datos (sin ) 1 paridad)" p1 1 0 1 p2 ) 0 p$ ) 1 p4 #alabra de datos 1 ) 0 ) 1 (con paridad)" #1 #2 #$ #4 7 7 7 7 61 e'or 61 e'or 6+ e'or 65 e'or 1 ) 0 1 0 1 0 1 ) 1 1

1 0 1

) 1 0 1 1 0 ) 1 0 1

6+ e'or 64 e'or 65 e'or 67 6. e'or 64 e'or 6- e'or 67 6. e'or 64 6- e'or 67

0$lculo de los !its de "aridad en el c digo Hamming /a nue1a "ala!ra de datos (con los !its de "aridad) es a#ora =10001100101=. 0onsideremos a#ora que el !it de la derec#a, "or error, cam!ia de 1 a 0. /a nue1a "ala!ra de datos ser$ a#ora =10001100100=. *in errores" #osicin" 1 2 $ 4 % & 7 ' ( 1) 11 #rueba de paridad 1 ,orrecto ,orrecto 0orrecto ,orrecto ) ) 0 ) +it de paridad

p1 p2 d1 p$ d2 d$ d4 p4 d% d& d7 #alabra de datos 1 ) ) ) 1 1 ) ) 1 ) 1 recibida" p1 1 0 1 0 1 1 p2 ) 0 1 0 0 1 p$ ) 1 1 0 p4 ) 1 0 1

0om"ro!aci n de los !its de "aridad (con "rimer !it de la derec#a cam!iado) ,on errores" #osicin" 1 2 $ 4 % & 7 ' ( 1) 11 #rueba de paridad ) Error Error ,orrecto Error 1 1 ) 1 +it de paridad

p1 p2 d1 p$ d2 d$ d4 p4 d% d& d7 #alabra de datos 1 ) ) ) 1 1 ) ) 1 ) ) recibida" p1 1 ) 1 ) 1 ) p2 ) ) 1 ) ) ) p$ ) 1 1 ) p4 ) 1 ) )

0om"ro!aci n de los !its de "aridad (con "rimer !it de la derec#a cam!iado) <i se anali*a en la ta!la anterior la "aridad que se de!e o!tener a la derec#a tras la llegada del mensaje sin errores de!e ser siem"re 0 ("or cada fila), "ero en el momento en que ocurre un error esta "aridad cam!ia a 1, de all5 el nom!re de la columna ="rue!a de "aridad 1=. <e o!ser1a que en la fila en que el cam!io no afect la "aridad es cero y llega sin errores. El "aso final es e1aluar los !its de "aridad (recuerde que el fallo se encuentra en d7). El 1alor entero que re"resentan los !its de "aridad es 11 (si no #u!ieran ocurrido errores este 1alor seria 0), lo que significa que el !it d2cimo "rimero de la "ala!ra de datos (!its de "aridad incluidos) es el err neo y necesita ser cam!iado. p4 p$ p2 p1 1 ) 1 1 ' 2 1

- . 11

0am!iando el !it d2cimo "rimero 1000110010) se o!tiene de nue1o 10001100101. Eliminando los !its de "atr n de la "aridad no se tienen en cuenta los !its de "aridad. <i el error se "rodujera en uno de ellos, en la com"ro!aci n s lo se detectar5a un error, justo el corres"ondiente al !it de "aridad causante del mismo.

You might also like