Sei sulla pagina 1di 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 1. OBJETIVOS 1.1 GENERAL 1.2 ESPECFICOS 2. TCNICAS DE DETECCIN DE ERRORES 3. TCNICAS DE CORRECCIN DE ERRORES 4. RICHARD WESLEY HAMMING 5. CDIGO HAMMING 5.1. CONCEPTOS BSICOS 5.2. DISTANCIA DE HAMMING 5.3 VARIABLES PARA GENERACIN HAMMING 5.4. GENERACIN DEL CDIGO DE HAMMING 5.5. EL SNDROME Y DETECCIN SISTEMTICA DEL CDIGO DE HAMMING. 5.6. DETECCIN Y EFICIENCIA SOBRE CANAL 6. EXTENSIN DEL CDIGO DE HAMMING. 7. TAREA 8. CONCLUSIONES 9. BIBLIOGRAFA INTRODUCCIN

2 3 3 3 4 5 6 7 7 7 8 9 13 15 17 18 19 20

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 UrbanaChampaign 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

#b b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15

Combinaciones 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

# DE "1" 2^3 2^2 2^1 2^0 CORRESPONDENCIA SITUACION DE NO 0 0 0 0 0 ERROR 1 0 0 0 1 BIT DE PARIDAD "1" 1 0 0 1 0 BIT DE PARIDAD "2" 2 0 0 1 1 DATO 1 1 0 1 0 0 BIT DE PARIDAD "3" 2 0 1 0 1 DATO2 2 0 1 1 0 DATO 3 3 0 1 1 1 DATO 4 1 1 0 0 0 BIT DE PARIDAD "4" 2 1 0 0 1 DATO 5 2 1 0 1 0 DATO 6 NO SE USA EN EL 3 1 0 1 1 EJEMPLO 2 1 1 0 0 DATO 7 NO SE USA EN EL 3 1 1 0 1 EJEMPLO NO SE USA EN EL 3 1 1 1 0 EJEMPLO NO SE USA EN EL 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 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15

b1 b2 d1 b4 d2 d3 d4 b8 d5 d6 d7

2^3 2^2 2^1 2^0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1

b8 b4 b2 b1 0 0 1 0 0 0 1 1 0 0 1

1 0 0 1 0 0 0 1 0 0 0 1

1 0

0 1

1 0

0 0 1 0 0 0 0

0 0

0 0 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 #b b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b8 b4 b2 b1 b1 b2 d1 b4 d2 d3 d4 b8 d5 d6 0 0 1 0 0 0 1 1 0 0 b1 b2 d1 b4 d2 d3 d4 b8 d5 d6 1 1 1 1 0 0 0 1 0 0 DATOS RX b8 b4 b2 b1

1 0 0 1 0 0 0 1 0 0 0 1

1 0

1 0 0 0 0 0 0 1 0 0 0 1

1 0

0 1

1 0

0 0

0 0

0 0 1 0 0 0 0

0 d7 1 0

0 0 1 0 0 0 1

0 0

d7 1

0 0 0

0 0

0 0 1

0 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 1 recibido bloque 0 enviado

par

par

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 1 enviado par

Y el sndrome que se recibe en el receptor es:

bloque 0 recibido

par

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

Potrebbero piacerti anche