Código de Hamming 2012

16
3. TÉCNICAS DE CORRECCIÓN DE ERRORES Requerimiento automático de repetición (ARQ) Pare y espere ( stop and wait ARQ ): Cuando el receptor recibe una trama procede a validarla, si no contiene errores envía una señal de confirmación hacia el emisor ACK (acknowledge). Si hay error envía una señal de recepción errónea llamada NAK (negative acknowledge). Envío continuo ( Continuos ARQ ): Presenta el inconveniente de reducir el tiempo de utilización efectiva de los canales de comunicación dado que cada mensaje debe ser confirmado individualmente y todo se paraliza hasta que ello ocurre. Corrección de errores hacia adelante (FEC) Códigos de bloque: Un código de bloques convierte k bits de entrada en n bits de salida con n>k, este es un código sin memoria. Códigos de árbol: Un código de árbol es producido por un codificador con memoria, a este grupo pertenecen los códigos convolucionales, los cuales tienen como característica que a cada bit de una secuencia se le aplica una operación binaria especifica.

description

l

Transcript of Código de Hamming 2012

  • 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

    # b Combinaciones

    # DE

    "1" 2^3 2^2 2^1 2^0 CORRESPONDENCIA

    b0 0 0000 0 0 0 0 0

    SITUACION DE NO

    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

    b11 11 1011 3 1 0 1 1

    NO SE USA EN EL

    EJEMPLO

    b12 12 1100 2 1 1 0 0 DATO 7

    b13 13 1101 3 1 1 0 1

    NO SE USA EN EL

    EJEMPLO

    b14 14 1110 3 1 1 1 0

    NO SE USA EN EL

    EJEMPLO

    b15 15 1111 3 1 1 1 1

    NO SE USA EN EL

    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:

    1 1 1 1

    bloque par

    recibido

    1 0 0 0

    bloque par

    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:

    1 1 1 1

    bloque par

    enviado

    Y el sndrome que se recibe en el receptor es:

    0 0 1 0

    bloque par

    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.

    Tio Petros. [online]. Aritmtica Modular.

    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

    [email protected]. Apuntes de IIC 3512 -- El nivel de enlace. Dic. 1996.

    Cdigos Lineales. http://jungla.dit.upm.es/~trdt/apuntes