You are on page 1of 9

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO

FACULTAD DE INFORMTICA Y ELECTRNICA


ESCUELA DE INGENIERA ELECTRNICA TELECOMUNICACIONES
Y REDES

REDES DE COMPUTADORES

CDIGO HAMMING

SEXTO A

CARLA RAZA

485

JOS RECALDE

340

FECHA DE ENTREGA: 26-01-2014

SEPTIEMBRE 2 014 FEBRERO 2 015

Objetivo General
Conocer lo referente al cdigo Hammig, su clasificacin, caractersticas y ejemplos.
Objetivos Especficos:
Aprender algunos de los beneficios que nos brindan los Satlites de comunicacin
en nuestro entorno.
Examinar y analizar el mtodo de Hamming para la correccin y su posterior
correccin de errores.
Compartir nuestros conocimientos adquiridos con el resto de nuestros compaeros
a travs de varios ejemplos referente a la codificacin.

Introduccin
Desde que Claude Shanon desarrollo su teora de la informacin, la transmisin de la
informacin digital presenta un reto constante para los ingenieros de comunicaciones,
puesto que los medios de transmisin pueden corromper y daar los datos, por ende es
necesario crear un mtodos que permitan detectar errores y mejor an corregirlos, uno de
estos mtodos es el mtodo de Hamming, desarrollado por Richard Wesley Hamming ,
este mtodo ser el pilar desarrollado en este trabajo, un mtodo para lograr una mejor
comprensin.
El cdigo Hamming permite deteccin y correccin de los datos enviados por un canal
susceptible a ruido, est mtodo se utiliza en canales donde la retransmisin de un mensaje
puede congestionar el canal, este mtodo se utiliza comnmente en redes de Wi Fi para
la transmisin de mensajes, su estudio nos mostrar como detecta y corrige errores de un
bit y como puede ser escalado para que detecte ms errores mejorando la eficiencia en el
canal.

Marco Terico

Definicin
El cdigo de Hamming es un cdigo detector y corrector de errores que lleva el nombre
de su inventor, Richard Hamming. En los datos codificados en Hamming se pueden
detectar errores en un bit y corregirlos, sin embargo no se distingue entre errores de dos
bits y de un bit (para lo que se usa Hamming extendido). Esto representa una mejora
respecto a los cdigos con bit de paridad, que pueden detectar errores en slo un bit, pero
no pueden corregirlo.

Cdigos pre-Hamming
Antes de los cdigos Hamming se utilizaron ciertos cdigos detectores de error, como lo
fueron el cdigo linteing, pero ninguno lleg a ser tan eficaz como los de Hamming. A
continuacin se describen algunos de estos cdigos:

Paridad
La paridad consiste en aadir un bit, denominado bit de paridad, que indique si el nmero
de los bits de valor 1 en los datos precedentes es par o impar. Si un solo bit cambiara por
error en la transmisin, el mensaje cambiar de paridad y el error se puede detectar (ntese
que el bit donde se produzca el error puede ser el mismo bit de paridad). La convencin
ms comn es que un valor de paridad 1 indica que hay un nmero impar de unos en los
datos, y un valor de paridad de 0 indica que hay un nmero par de unos en los datos.
Por otro lado, la paridad, aunque puede detectar que hay error, no indica en qu bit se
cometi. Los datos se deben desechar por entero y volverse a transmitir. En un medio
ruidoso, una transmisin correcta podra tardar mucho tiempo o incluso, en el peor de los
casos, no darse nunca. El chequeo de paridad, aunque no es muy bueno, usa un nico bit,
por lo que produce muy poca sobrecarga, y adems permite la correccin de ese bit si es
conocida su posicin.

Dos entre cinco


En los aos 40, Bell utiliz un cdigo algo ms sofisticado conocido como dos-entre-cinco.
Este cdigo se basa en que cada bloque de cinco bits (conocido como penta-bit) tuviera
exactamente dos unos, asegurando as que tenga una Distancia de Hamming igual a dos.
De este modo, la computadora podra detectar posibles errores cuando en su entrada no
haba exactamente dos unos en cada penta-bit.
Este cdigo segua nicamente detectando errores por cambio en un solo bit; si en un
mismo penta-bit un 0 cambiaba a 1 y un 1 cambiaba a 0, la regla de dos-entre-cinco se
segua cumpliendo y el error quedaba sin descubrir.

Repeticin
Otro cdigo utilizado, consista en repetir cada bit de datos varias veces para asegurarse de
que la transmisin era correcta. Por ejemplo, si el bit de datos que se enva fuera un 1, un
cdigo de repeticin con n=3, enviara "111". Si los tres bits recibidos no eran idnticos,
haba un error. En un ambiente sin demasiado ruido, la mayora de las veces solamente
cambiara un bit en cada paquete de tres bits. Por lo tanto, datos del tipo 001, 010, y 100
se corresponden al bit 0, mientras que 110, 101, y 011 se corresponden con el bit 1. Es
como si el bit original se obtuviera por mayora en una "votacin". Un cdigo con esta
capacidad de reconstruir el mensaje original en la presencia de errores se conoce como
cdigo corrector de errores.
Hay que tener en cuenta que el cdigo de la repeticin es extremadamente ineficaz, pues
reduce la velocidad de transmisin por tres en nuestro ejemplo original y su eficacia cae
drsticamente al aumentar el nmero de veces que cada bit se repite para detectar y corregir
ms errores. El uso del cdigo de bloques no lineales para deteccin de errores no es muy
implementado por lo tanto emplearemos el cdigo de errores lineales para la correccin
de errores.

Cdigos Hamming
Si se aaden junto al mensaje ms bits detectores-correctores de error y si esos bits se
pueden ordenar de modo que diferentes bits de error producen diferentes resultados,
entonces los bits errneos podran ser identificados. En un conjunto de siete bits, hay slo
siete posibles errores de bit, por lo que con tres bits de control de error se podra
especificar, adems de que ocurri un error, en qu bit fue.
Hamming estudi los esquemas de codificacin existentes, incluido el de dos entre cinco,
y generaliz sus conclusiones. Para empezar, desarroll una nomenclatura para describir
el sistema, incluyendo el nmero de los bits de datos y el de los bits detectores-correctores
de error en un bloque. Por ejemplo, la paridad incluye un solo bit para cualquier palabra
de datos, as que las palabras del Cdigo ASCII que son de siete bits, Hamming las
describa como un cdigo (8.7), esto es, un total de 8 bits de los cuales 7 son datos. Con
base a la anterior repeticin, sera un cdigo (3.1), siguiendo la misma lgica. La relacin
de la informacin es el segundo nmero dividido por el primero, por nuestro ejemplo de
la repeticin, 1/3.
Hamming estaba interesado en solucionar simultneamente dos problemas: aumentar la
distancia tanto como sea posible, a la vez que se aumentan al mximo los bits de
informacin. Durante los aos 40 desarroll varios esquemas de codificacin que
mejoraban notablemente los cdigos existentes. La clave de todos sus sistemas era
intercalar entre los bits de datos los de paridad.
Hamming (7,4) Hoy, el cdigo de Hamming se refiere al (7.4) que Hamming introdujo en
1950. El cdigo de Hamming agrega tres bits adicionales de comprobacin por cada cuatro
bits de datos del mensaje. El algoritmo de Hamming (7.4) puede corregir cualquier error
de un solo bit, pero cuando hay errores en ms de un bit, la palabra transmitida se confunde
con otra con error en un slo bit, siendo corregida, pero de forma incorrecta, es decir que

la palabra que se corrige es otra distinta a la original, y el mensaje final ser incorrecto sin
saberlo. Para poder detectar (aunque sin corregirlos) errores de dos bits, se debe aadir un
bit ms. El algoritmo es el siguiente:
1. Todos los bits cuya posicin es potencia de dos se utilizan como bits de paridad
(posiciones 1, 2, 4, 8, 16, 32, 64, etc.).
2. Los bits del resto de posiciones son utilizados como bits de datos (posiciones 3, 5, 6,
7, 9, 10, 11, 12, 13, 14, 15, 17, etc.).
3. Cada bit de paridad se obtiene calculando la paridad de alguno de los bits de datos. La
posicin del bit de paridad determina la secuencia de los bits que alternativamente
comprueba y salta, a partir de ste, tal y como se explica a continuacin. Posicin 1:
salta 0, comprueba 1, salta 1, comprueba 1, etc. Posicin 2: salta 1, comprueba 2, salta
2, comprueba 2, etc. Posicin 4: salta 3, comprueba 4, salta 4, comprueba 4, etc.
Posicin 8: salta 7, comprueba 8, salta 8, comprueba 8, etc. Posicin 16: salta 15,
comprueba 16, salta 16, comprueba 16, etc. Regla general para la posicin n es: salta
n-1 bits, comprueba n bits, salta n bits, comprueba n bits... Y as sucesivamente. En
otras palabras, el bit de paridad de la posicin comprueba los bits en las posiciones que
tengan al bit k en su representacin binaria. Dicho a la inversa, el bit 4, chequea los bits
4, 5, 6, 7, al ser estos los de su representacin binaria: 4=100(2), 5=101(2), 6=110(2) y
7=111(2). Por el contrario, el mismo bit de paridad no comprueba el bit 8, debido a
que en su representacin binaria el bit nmero 3 (=4) es igual a 0 (8=1000B). As, por
ejemplo, para los primeros trminos se tiene: En la Posicin 1 (2^0 = 1),
comprobaramos los bits: 1, 3, 5, 7, 9, 11, 13... En la Posicin 2 (2^1 = 2), los bits: 2, 3,
6, 7, 10, 11, 14, 15... En la Posicin 4 (2^2 = 4), los bits: 4, 5, 6, 7, 12, 13, 14, 15, 20,
21, 22, 23... En la Posicin 8 (2^3 = 8) tendramos: 8, 9, 10, 11, 12, 13, 14, 15, 24-31...
Siguiendo el algoritmo hasta completar la nueva cadena.

Ejemplos
a) Consideremos la palabra de datos de 7 bits "0110101". Para ver cmo se generan y
utilizan los cdigos Hamming para detectar un error, observe las tablas siguientes. Se
utiliza la d para indicar los bits de datos y la p para los de paridad.
En primer lugar los bits de datos se insertan en las posiciones apropiadas y los bits de
paridad calculados en cada caso usando la paridad par.
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7
Palabra de datos (sin paridad):
p1
p2
p3
p4

1 1 0

1 0 1

0 0

0
1 0

1
0 1

0 1 1 0
0 1 0 1

Palabra de datos (con paridad): 1 0 0 0 1 1 0 0 1 0 1

Clculo de los bits de paridad en el cdigo Hamming

P1 = D1 exor D2 exor D4 exor D5 exor D7


P2 = D1 exor D3 exor D4 exor D6 exor D7
P3 = D2 exor D3 exor D4
P4 = D5 exor D6 exor D7
La nueva palabra de datos (con los bits de paridad) es ahora "10001100101".
Consideremos ahora que el bit de la derecha, por error, cambia de 1 a 0. La nueva palabra
de datos ser ahora "10001100100".
Sin errores

Palabra de datos
recibida:
p1

p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7

Prueba de
paridad

1 0 0 0 1 1 0 0 1 0 1

p2

1 Correcto

1 0

0 1 Correcto

0 1 1 0

Correcto

0 1 0 1 Correcto

0 0

p3

p4

Bit de
comprobacin

Comprobacin de los bits de paridad (con primer bit de la derecha sin cambiar)

Con errores

Palabra de datos
recibida:
p1
p2
p3
p4

p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7

Prueba de
paridad

1 0 0 0 1 1 0 0 1 0 0

0
1 0

0
1 0

0 1 1 0

Bit de
comprobacin

0 Error

0 0 Error

Correcto
1 1 0 0 Error

0
1

Comprobacin de los bits de paridad (con primer bit de la derecha cambiado)

Si se analiza en la tabla anterior la paridad que se debe obtener a la derecha tras la llegada
del mensaje sin errores debe ser siempre 0 (por cada fila), pero en el momento en que

ocurre un error esta paridad cambia a 1, de all el nombre de la columna "prueba de


paridad 1". Se observa que en la fila en que el cambio no afect la paridad es cero y llega
sin errores.
El paso final es evaluar los bits de paridad (recuerde que el fallo se encuentra en d7). El
valor entero que representan los bits de paridad es 11 (si no hubieran ocurrido errores este
valor seria 0), lo que significa que el bit dcimo primero de la palabra de datos (bits de
paridad incluidos) es el errneo y necesita ser cambiado.

p4 p3 p2 p1
Binario 1 0 1 1
Decimal 8

2 1 = 11

Cambiando el bit dcimo primero 10001100100 se obtiene de nuevo 10001100101.


Eliminando los bits de patrn de la paridad no se tienen en cuenta los bits de paridad. Si
el error se produjera en uno de ellos, en la comprobacin slo se detectara un error, justo
el correspondiente al bit de paridad causante del mismo.

b) Consideremos la palabra de datos de 8 bits "00111001". Verificar si la palabra recibida


no tiene errores.
Disposicin de bits de datos y bits de comprobacin

Disposicin de bits de datos y bits de comprobacin

Conclusiones:
El cdigo Hamming es muy til para deteccin de errores, pero no para su
correccin, ya solo puede corregir si hay un bit errneo.
El sndrome es una operacin que relaciona los bits de paridad por medio de una
funcin EXOR bit a bit, si este resultado es 0 en cada bit de paridad no indica que
el paquete de datos llego sin errores pero si nos indica un error o un 1 nos debe
indicar el lugar donde se presenta dicho problema.
El sistema de cdigos Haming es muy utilizado en elementos como memorias y en
comunicaciones en las tramas de Wifi.

Recomendaciones:

No utilizar este cdigo si se desea corregir un dato con ms de un bit de error.


Se debe tener en cuenta cuales son los bits de paridad, porque de ello depende si
realiza correctamente la codificacin Hamming.

Bibliografa

http://es.wikipedia.org/wiki/C%C3%B3digo_Hamming
http://codigohammingud.wikispaces.com/file/view/C%C3%93DIGO+DE+HAM
MING+2012.pdf
http://huitoto.udea.edu.co/SistemasDiscretos/contenido/cod_hamming.html
http://www.ciens.ucv.ve/comdatos/Documentos/DeteccionyCorrecciondeErrores.
pdf
Redes de computadoras Colaborador Robledo Sosa, Cornelio Editorial Instituto
Politcnico Nacional Fecha de publicacin 2002

You might also like