Está en la página 1de 21

CDIGO DE HAMMING PARA DETECCIN

Y CORRECCIN DE ERRORES

ALVARO HUMBERTO CISNEROS ROSERO


DANIEL SEPLVEDA NEZ

INFORMACIN Y CODIFICACIN

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS


FACULTAD DE INGENIERA
MAESTRA EN CIENCIAS DE LA INFORMACIN Y LAS COMUNICACIONES
BOGOT
2012
TABLA DE CONTENIDO

INTRODUCCIN 2

1. OBJETIVOS 3

1.1 GENERAL 3

1.2 ESPECFICOS 3

2. TCNICAS DE DETECCIN DE ERRORES 4

3. TCNICAS DE CORRECCIN DE ERRORES 5

4. RICHARD WESLEY HAMMING 6

5. CDIGO HAMMING 7

5.1. CONCEPTOS BSICOS 7

5.2. DISTANCIA DE HAMMING 7

5.3 VARIABLES PARA GENERACIN HAMMING 8

5.4. GENERACIN DEL CDIGO DE HAMMING 9

5.5. EL SNDROME Y DETECCIN SISTEMTICA DEL CDIGO DE 13


HAMMING.
5.6. DETECCIN Y EFICIENCIA SOBRE CANAL 15

6. EXTENSIN DEL CDIGO DE HAMMING. 17

7. TAREA 18

8. CONCLUSIONES 19

9. BIBLIOGRAFA 20
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, pero para entender de una forma ms concisa es necesario
conocer tcnicas de correccin y deteccin de errores que las veremos en los
captulos 2 y 3, veremos una breve historia sobre Richard Hamming que se
muestra en el captulo 4 y el captulo 5 se desarrolla el cdigo Hamming y 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.
1. OBJETIVOS

1.1 GENERAL

Estudiar y comprender los aspectos relacionados con el cdigo Hamming.

1.2 ESPECFICOS

Conocer las tcnicas fundamentales para la deteccin y la correccin de errores


relacionados con el cdigo Hamming.

Examinar y analizar el mtodo de Hamming para la correccin y su posterior


correccin de errores.

Determinar un sistema para el anlisis y comprensin del cdigo Hamming.

Indagar sobre sistemas de mayor complejidad como el mtodo de Hamming


Extendido.

Relacionar la eficiencia del cdigo Hamming frente al aprovechamiento del canal


de transmisin.
2. TCNICAS DE DETECCIN DE ERRORES

Cdigos VRC (Vertical Redundancy Check).

En esta tcnica, un bit redundante, denominado bit de paridad, se aade al final de


cada bloque de datos.

Cdigo LRC (Longitudinal Redundancy Check).

Esta tcnica consiste en VRC de dos dimensiones, se agrupa un determinado


nmero de unidades de datos en un bloque, cada uno con su bit VRC
correspondiente. Se calcula el bit de paridad entre cada bit de todas y cada una de
las unidades de datos (primeros bits, segundos, etc.). Se renen los bits de
paridad de todas las posiciones en una nueva unidad de datos y se aade al final
del bloque.

Comprobacin de redundancia cclica (CRC).

Dado un bloque o mensaje de k bits, el transmisor genera una secuencia de n bits,


denominada secuencia de comprobacin de trama (FCS Frame Check Sequence),
la trama resultante, de n + k bits sea divisible por algn nmero predeterminado
(patrn de bits). El receptor dividir la trama recibida por el mismo patrn de bits y,
si el resto en la divisin (resto 0), indica que la transmisin ha sido correcta, sin
error.
3. TCNICAS DE CORRECCIN DE ERRORES

Requerimiento automtico de repeticin (ARQ)

Pare y espere ( stop and wait ARQ ): Cuando el receptor recibe una trama procede
a validarla, si no contiene errores enva una seal de confirmacin hacia el emisor
ACK (acknowledge). Si hay error enva una seal de recepcin errnea llamada
NAK (negative acknowledge).

Envo continuo ( Continuos ARQ ): Presenta el inconveniente de reducir el tiempo


de utilizacin efectiva de los canales de comunicacin dado que cada mensaje
debe ser confirmado individualmente y todo se paraliza hasta que ello ocurre.

Correccin de errores hacia adelante (FEC)

Cdigos de bloque: Un cdigo de bloques convierte k bits de entrada en n bits de


salida con n>k, este es un cdigo sin memoria.

Cdigos de rbol: Un cdigo de rbol es producido por un codificador con


memoria, a este grupo pertenecen los cdigos convolucionales, los cuales tienen
como caracterstica que a cada bit de una secuencia se le aplica una operacin
binaria especifica.
4. RICHARD WESLEY HAMMING

Matemtico estadounidense de gran importancia en el rea de la informtica y de


las telecomunicaciones, naci en Chicago, Illinois, el 11 de febrero de 1915.
Estudio su licenciatura en la Universidad de Chicago en 1937, en 1939 realiza un
master en la Universidad de Nebraska y se doctor en la Universidad Urbana-
Champaign de Illinois en 1942.

Mientras se desarrollaba la Segunda Guerra Mundial, fue profesor en la


Universidad de Louisville, trabajo que abandonara para integrarse en 1945 en el
proyecto Manhattan. All desarroll su trabajo programando una de las primeras
calculadoras numricas electrnicas, para determinar la solucin a algunas
ecuaciones proporcionadas por los fsicos del proyecto. El objetivo del programa
era descubrir si la detonacin de una bomba atmica podra incendiar la
atmsfera. Entre los aos 1946-1976, trabaj en los laboratorios Bell, en donde
colabor con Claude E. Shannon. El 23 de julio de 1976 se traslad a la Naval
Postgraduate School, en donde trabaj como profesor adjunto hasta 1997,
llegando a ser Professor Emeritus.

Fue fundador y presidente de la Association for Computing Machinery.


Muri en Monterey, California el 7 de enero de 1998.
5. CDIGO HAMMING

Es un cdigo que se utiliza en la deteccin y correccin de errores que se


producen en la transmisin de cdigos binarios, la palabra de cdigo se conforma
por los bits de comprobacin y los bits de informacin.

5.1. CONCEPTOS BSICOS:

Para poder continuar con el desarrollo del cdigo es necesario tener en cuenta
algunas generalidades y conceptos bsicos:

Cdigo binario: Es una representacin unvoca de las cantidades, de tal forma


que a cada una de stas se le asigna una combinacin de smbolos binarios.
Distancia entre dos combinaciones binarias: Viene dada por el nmero de bits
que hay que cambiar en una de ellas para obtener la otra.
Distancia mnima de un cdigo: Es la menor de las distancias entre dos
combinaciones binarias cualesquiera pertenecientes a dicho cdigo.

5.2. DISTANCIA DE HAMMING

El cdigo Hamming se genera a partir de una distancia mnima de 3, ya que una


distancia de 1 o 2 es inconveniente para poder generar un cdigo para detectar un
error.

La distancia mnima de Hamming est dada por la siguiente ecuacin:

Dm= 2X+1

Donde Dm es la distancia mnima de un cdigo para permitir la correccin de datos


y X es las lneas de datos.

Si se tuviese una distancia de 1 no tendramos valores para saber si hay o no un


error.
Si se tienen una distancia de 2 se podra lograr un sistema de correccin de error
con un bit de paridad pero el problema que esto lleva es que un sistema con
distancia 2 puede tener datos errneos que pueden pasar como datos correctos.
Con la distancia de 3 se tiene que los cdigos no van a tener datos o resultados
similares por ende se puede detectar el error y se puede desarrollar un sistema
para su correccin como el Hamming

5.3. VARIABLES PARA GENERACIN HAMMING

Para la generacin del cdigo Hamming se deben tener en cuenta tres variables
que mencionaremos a continuacin:

n: nmero de bits del cdigo original que se pretende transmitir.

p: nmero de bits de paridad par generados en el transmisor, o sea, nmero de


lneas que aadimos al cdigo inicial.

c: nmero de bits detectores de paridad par generados por el receptor.

El valor de p = c, ya que los bits de paridad generados tanto en el transmisor


como en el receptor debe ser la misma.

El nmero de combinaciones que se pueden formar con los c bits detectores de


paridad tiene que ser mayor o igual que el nmero de lneas del cdigo original (n)
ms el nmero de lneas de paridad aadidas (p) ms uno, este ltimo para
contemplar el caso de no error.

Esta ecuacin nos muestra que existen unas combinaciones, estas no pueden ser
asignadas de forma aleatoria a un evento, para asignar estas combinaciones a un
evento especfico este debe estar en uno de los tres grupos diferenciados.

1. Combinacin asignada a la situacin en que no haya error en la transmisin.


2. Combinaciones asignadas a los bits de paridad generados en el transmisor.
3. Combinaciones asignadas a los bits de datos del cdigo original.

Podemos tener un manejo de esta ecuacin para poder obtener la cantidad


mnima de bits de informacin que nosotros podemos enviar.
Si se despeja n

Teniendo en cuenta que p =c

Si contamos con los valores de bits de paridad podemos encontrar los bits de
informacin que se pueden manejar.

Para obtener el nmero de bits total de la cadena del mensaje (s) se debe
realizar la siguiente operacin:

Ejercicio 1:

Si deseo enviar un nibble cuantos bits de paridad necesito para enviar el mensaje
y poderlo corregir si existe un error.

Nibble = 4 bits

Si c = 3 entonces

n=4

Con 3 bits de paridad podramos manejar y codificar un nibble de informacin.

5.4. GENERACIN DEL CDIGO DE HAMMING

El cdigo Hamming plantea la generacin de una tabla para poder asignar los
valores de las posibles combinaciones que generen los bits de paridad.

A continuacin manejaremos un cdigo ASCII de 7 bits


Si se tienen 7 bits de informacin se necesitan entonces que c = 4, esto nos
conlleva a que se generan 2c combinaciones y es igual a 24 = 16 combinaciones a
continuacin se establece una tabla de 16 combinaciones con un rango de 0 a 15

# DE
#b Combinaciones "1" 2^3 2^2 2^1 2^0 CORRESPONDENCIA
SITUACION DE NO
b0 0 0000 0 0 0 0 0 ERROR
b1 1 0001 1 0 0 0 1 BIT DE PARIDAD "1"
b2 2 0010 1 0 0 1 0 BIT DE PARIDAD "2"
b3 3 0011 2 0 0 1 1 DATO 1
b4 4 0100 1 0 1 0 0 BIT DE PARIDAD "3"
b5 5 0101 2 0 1 0 1 DATO2
b6 6 0110 2 0 1 1 0 DATO 3
b7 7 0111 3 0 1 1 1 DATO 4
b8 8 1000 1 1 0 0 0 BIT DE PARIDAD "4"
b9 9 1001 2 1 0 0 1 DATO 5
b10 10 1010 2 1 0 1 0 DATO 6
NO SE USA EN EL
b11 11 1011 3 1 0 1 1 EJEMPLO
b12 12 1100 2 1 1 0 0 DATO 7
NO SE USA EN EL
b13 13 1101 3 1 1 0 1 EJEMPLO
NO SE USA EN EL
b14 14 1110 3 1 1 1 0 EJEMPLO
NO SE USA EN EL
b15 15 1111 3 1 1 1 1 EJEMPLO
TABLA 1. Generacin cdigo Hamming.

Para la asignacin de los eventos se realiza lo siguiente:

1. Contar Nmero de unos en las combinaciones


2. Si el nmero de unos es cero es una situacin de no error y no se utiliza para
enviar dato.
3. Si el nmero de unos es 1, debemos empezar a organizar los bits de paridad
desde el primero hasta el ltimo y darles su respectiva asignacin.
4. Si el nmero de unos es 2 en estos deben colocarse para los datos, si las
combinaciones de 2 unos no son suficientes para los datos debemos empezar
con los de 3 y luego los de 4 as sucesivamente, se prefiere que se coloquen
los datos primero en los grupos de 2.
5. Si no se tienen ms datos esas lneas no son vlidas y se omiten en el sistema
de verificacin.

Los bits de paridad b1, b2, b4, b8, no tienen un valor fijo este valor se encuentra
por las siguientes relaciones:

b1 = b3 b5 b7 b9 b11 b13 b15;

b2 = b3 b6 b7 b10 b11 b14 b15;

b4 = b5 b6 b7 b12 b13 b14 b15;

b8 = b9 b10 b11 b12 b13 b14 b15;

Esto se debe a que los bits de paridad se conforman de las combinaciones en


donde el bit de paridad es uno, por ejemplo el bit1 es el bit de paridad para las
combinaciones impares, se conforman de las combinaciones impares b3, b5, b7,
b9, b11, b13, b15.

A continuacin se muestra una tabla para ver cmo se realiza la operacin de


EXOR
En la tabla se organizan y se suma para obtener los valores de b1, b2, b4, b8.

#b 2^3 2^2 2^1 2^0 b8 b4 b2 b1


b1 b1 0 0 0 1 0
b2 b2 0 0 1 0 0
b3 d1 0 0 1 1 1 1 1
b4 b4 0 1 0 0 0
b5 d2 0 1 0 1 0 0 0
b6 d3 0 1 1 0 0 0 0
b7 d4 0 1 1 1 1 1 1 1
b8 b8 1 0 0 0 1
b9 d5 1 0 0 1 0 0 0
b10 d6 1 0 1 0 0 0 0
b11 1 0 1 1 0 0 0
b12 d7 1 1 0 0 1 1 1
b13 1 1 0 1 0 0 0
b14 1 1 1 0 0 0 0
b15 1 1 1 1 0 0 0 0
1 0 0 0

Tabla 2. Coeficientes de paridad.

Terminada la tabla se procede a enviar el dato o la trama de datos

La cual sera

00100011000100

Los datos que no se utilizan por lo general se envan en cero.

Para saber si existe un error en la transmisin o si el mensaje de transmiti


correctamente se deber realizar una comprobacin del sistema para esto se
realiza con una codificacin de los componentes c1, c2, c3, c4 de la siguiente
manera:

c1 = b1 b3 b5 b7 b9 b11 b13 b15;


c2 = b2 b3 b6 b7 b10 b11 b14 b15;
c3 = b4 b5 b6 b7 b12 b13 b14 b15;
c4 = b8 b9 b10 b11 b12 b13 b14 b15;

Los resultados que vemos aqu son calculados con los datos que llegan al
receptor, si los datos de c1, c2, c3, c4 nos dan cero en todos el mensaje se
transmiti sin error pero si uno o varios de estos elementos se convierten en 1
quiere decir que hay un error, por ejemplo si el resultado de los indicadores ci son:
c1 = 0, c2=1, c3=1, c4=0, esto quiere decir que hay un error en la combinacin b6
por ende si hay un uno en esta posicin quiere decir que el verdadero valor es
cero, entonces podemos cambiar el valor de este y corregir de esta manera el
error presentado.

5.5. EL SNDROME Y DETECCIN SISTEMTICA DEL CDIGO DE HAMMING.

Para el ejemplo anterior del cdigo ASCII se tienen 7 bits de informacin para
transmitir, se observa el mismo dato que se enva en la tabla a en la tabla b se
encuentra el dato recibido con un error

DATOS TX DATOS RX

#b b8 b4 b2 b1 b8 b4 b2 b1
b1 b1 0 b1 1
b2 b2 0 b2 1
b3 d1 1 1 1 d1 1 1 1
b4 b4 0 b4 1
b5 d2 0 0 0 d2 0 0 0
b6 d3 0 0 0 d3 0 0 0
b7 d4 1 1 1 1 d4 0 0 0 0
b8 b8 1 b8 1
b9 d5 0 0 0 d5 0 0 0
b10 d6 0 0 0 d6 0 0 0
b11 0 0 0 0 0 0
b12 d7 1 1 1 d7 1 1 1
b13 0 0 0 0 0 0
b14 0 0 0 0 0 0
b15 0 0 0 0 0 0 0 0
1 0 0 0 1 1 1 1

Tabla 3. Ejemplo trama de datos enviados y se recibe una trama con el dato 4
errneo o bit 7.
Como se observa en la recepcin hay un valor diferente de los datos transmitidos,
si se realizan los valores de b1, b2, b4, b8, son distintos en ambos lados, ahora si
se comparan con los valores de c1 c2, c3, c4 se obtiene que:

bloque par
1 1 1 1 recibido

bloque par
1 0 0 0 enviado

0 1 1 1 7
2^3 2^2 2^1 2^0 #b dato daado

Tabla 4. Deteccin del nmero del bit daado.

En la figura se suman los valores de bits de paridad encontrados en el receptor


con los valores de paridad envidados, se debe realizar una operacin EXOR uno a
uno y el resultado que se obtiene son los valores de c1, c2, c3, c4, como vemos el
resultado es 0111 si esto se pasa a decimal es 7 si vemos en la tabla del ejemplo
el dato que se encuentra errneo se encuentra en la combinacin 7 la cual es la
asignada al dato 4.

El sndrome

Al clculo que se realiz anteriormente de sumar cada bit de paridad en el


receptor se le denomina Sndrome, el sndrome se desarrolla bit a bit y se suma
con una funcin EXOR en mdulo 2.
5.6. DETECCIN Y EFICIENCIA SOBRE CANAL

Si m es igual a la distancia mnima de un cdigo Haming podemos determinar que


el factor de deteccin y correccin de un cdigo depende de:

Adems si
n = nmero de bits de la cadena de salida
k = nmero de bits de informacin
La eficiencia sobre el canal de transmisin ser la siguiente:

n/k

Con estos datos se puede obtener la siguiente tabla

Tabla 5. Tabla de eficiencia, tomada del trabajo de Hamming desarrollado por:


Luis Gabriel Clavijo Castro, Vivian Andrea Garcia Balaguera
Como vemos si la distancia de Hamming aumenta la longitud de la informacin
aumenta pero los bits de informacin de correccin sern menores que los de
deteccin , pero si vemos bien la tabla con una distancia de Hamming 3 la
longitud total del paquete son 7 y se transportan 4 bits de informacin, los otros
son de correccin, ahora si vemos el 10 la longitud total seran 1023 se
transportan 1013 bits de informacin y el restante que son solo 10 bits se utilizan
para la deteccin y la correccin como vemos este es un proceso mucho ms
eficiente ya que podemos transportar 1013 bits de informacin procesando solo 10
bits de deteccin y correccin, esto permite que los procesos de transporte de
datos se optimicen logrando tasas porcentuales realmente altas.
6. EXTENSIN DEL CDIGO DE HAMMING.

La extensin del cdigo Hamming plantea ingresar a la tabla un nmero adicional


con el propsito de encontrar ms de un bit daado, esto lo logra mediante el
desarrollo de matrices estas matrices se computan para poder detectar y corregir
un bit daado e informar cuando hay dos o ms bit daados en el proceso. El
proceso matricial es como lo desarrollara realmente un sistema de cmputo.

Como se mencion el cdigo Hamming extendido aade un smbolo adicional que


computa todos los anteriores smbolos de la palabra de cdigo, este tiene una
distancia de Hamming de 4, con esto se logra detectar todos los errores dobles y
al mismo tiempo se corrigen todos los errores individuales. La decodificacin se
realiza as:

Si el ltimo dgito del sndrome es 2, entonces el nmero de errores debe ser


impar. La correccin se realizara de la manera habitual.

Si el ltimo dgito del sndrome es 0, pero el sndrome no es todo ceros, no hay


correccin posible, porque se ha producido ms de un error, pero los errores
dobles son detectados.
7. TAREA

Encontrar los valores de los bits de paridad para los siguientes datos:
Dato a transmitir: 1100110011

Dato a transmitir: 1001110110

Dato a transmitir: 1010100011

Si el sndrome que se obtuvo en el dato de transmisin es:

bloque par
1 1 1 1 enviado

Y el sndrome que se recibe en el receptor es:

bloque par
0 0 1 0 recibido

En que bit se present el dao de la informacin


8. CONCLUSIONES

La integracin de cdigo redundante permite realizar la correccin en cierta


medida de los errores presentados en la transmisin; sin embargo hace menos
eficiente el proceso de codificacin, por lo cual se deber lograr un equilibrio
entre codificacin redundante y eficiente dadas las caractersticas del canal.

Aunque los parmetros de los cdigos AG son mejores que los clsicos para
cdigos de longitud arbitrariamente grande, las aplicaciones tcnicas no se han
visto an en la necesidad prctica de sustituir los cdigos que actualmente se
utilizan por otros de mayor longitud sin que se dispare simultneamente el
coste y la tasa de error.

El Cdigo Hamming, es un sistema de deteccin y correccin automtica de


errores en informacin electrnica, el cual asocia una serie de bits de
validacin o paridad a los bits de datos, de tal forma que una alteracin en
cualquiera de esos bits de datos pueda ser detectada y corregida
adecuadamente.

La distancia Hamming permite establecer el nmero de bits errneos que


pueden ser corregidos detectados mediante las formulas:

Deteccin= (m-1)
Correccin= (m-1)/2

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.

Para entender de una manera ms sencilla la elaboracin del cdigo se


utilizaron tablas pero por lo general se utilizan matrices y relaciones entre ellas
para poder lograr relaciones cruzadas y obtener los valores de bits de paridad.

El sistema de cdigos Haming es muy utilizado en elementos como memorias


y en comunicaciones en las tramas de Wifi.
9. BIBLIOGRAFA

Comunicaciones y Redes de Procesamiento de Datos. Nestor Gonzles Sainz.


Ed Mac Graw . 1987.
Wikipedia.[online]. Algoritmos de Cdigo de Redundancia Cclica.
<http://es.wikipedia.org/wiki/Algoritmo_de_los_C%C3%B3digos_de_Redundan
cia_C%C3%ADclica>
Tio Petros. [online]. Aritmtica Modular.
<http://tiopetrus.blogia.com/2005/060401-aritmetica-modular-4-.php>
Cdigos Detectores y Correctores de Errores. Cdigos de Redundancia
Cclica. < http://www.argo.es/~jcea/pics/artic/ecc-crc.htm>
MODIANO, Eytan. [online]. La capa de enlace de Datos: Entramado y
Deteccin de Errores< http://mit.ocw.universia.net>.
Demeter. Codificacin de Seales. Ver. 1.1. 2 de Diciembre de 2003
knabe@ing.puc.cl. Apuntes de IIC 3512 -- El nivel de enlace. Dic. 1996.
<http://www.cs.virginia.edu/~knabe/iic3512/apuntes_4.html>
Cdigos Lineales. http://jungla.dit.upm.es/~trdt/apuntes

También podría gustarte