Detección de Errores y Códigos de Corrección D A

9
DETECCIÓN DE ERRORES Y CÓDIGOS DE CORRECCIÓN Julio David Escorza Paredes e-mail: [email protected] Juan Andrés Garcés Albán e-mail: [email protected] Mecatrónica, Sexto, Universidad de las Fueras Armadas ESPE-Extensión Latacunga, Márquez de Maenza S/N Latacunga, Ecuador. Fecha de presentación: 6 de noviembre de 2014. 1

description

programacion

Transcript of Detección de Errores y Códigos de Corrección D A

Preparacin de Informes en formato IEE

DETECCIN DE ERRORES Y CDIGOS DE CORRECCINJulio David Escorza Paredes

e-mail: [email protected] Andrs Garcs Albne-mail: [email protected], Sexto, Universidad de las Fueras Armadas ESPE-Extensin Latacunga, Mrquez de Maenza S/N Latacunga, Ecuador.

Fecha de presentacin: 6 de noviembre de 2014.

RESUMEN: El presente documento tiene como finalidad definir los cdigos de deteccin y correccin de errores de transmisin, en este caso el cdigo CRC y el cdigo Hamming, mediante la recopilacin de informacin especializada en el tema tomada de diferentes fuentes de informacin. Despus del anlisis y la sntesis de la informacin, se lleg a determinar que el cdigo CRC, siglas de cdigo de Comprobacin de Redundancia Cclica, es un cdigo de deteccin de errores el cual consiste en una serie de operaciones que tanto el emisor como el receptor deben llevar a cabo para comprobar que la transmisin del mensaje haya sido correcta. Mientras que el cdigo Hamming es un cdigo de correccin de errores, el cual consiste en usar una comparacin de paridad para determinar la posicin del error en el mensaje y bajo los mismos principios de paridad se procede a solucionar el error cambiando el dgito errneo.PALABRAS CLAVE: cdigo, deteccin, correccin, error, bit.1 INTRODUCCIN

Cuando se quiere conectar dos o ms computadoras entre s para transmitirse cierta informacin, es necesario conectarlas mediante un soporte fsico de transmisin. Esta conexin puede ser local, urbana, interurbana o internacional, y est constituida en base a un cable de hilo, coaxial, enlace de radio, satlite, etc. Esta variedad de medios aporta toda una diversidad de fenmenos que dificultan la adecuada transmisin y por ende surge el llamado error, el mismo que puede ser definido como una alteracin que provoca que el mensaje recibido no sea una copia fiel del mensaje transmitido. Debido a los numerosos problemas a la hora de realizar la transmisin, es necesario utilizar tcnicas que permitan detectar y corregir dichos errores. Estas tcnicas se basan siempre en la idea de aadir cierta informacin redundante a la informacin que se desea enviar. A partir de ella el receptor puede determinar, de forma bastante fiable, si los bits recibidos corresponden realmente a los enviados. 2 DESARROLLO2.1 TIPOS DE ERRORES

Las redes deben ser capaces de transmitir datos de un dispositivo a otro con total exactitud, si los datos recibidos no son idnticos a los emitidos, el sistema de comunicacin es intil. Sin embargo, siempre que se transmiten datos de un origen a un destino, se pueden corromper por el camino debido a numerosas interferencias: calor, magnetismo, etc. [1]2.1.1 ERROR DE BITnicamente un bit de una unidad de datos determinada cambia de 1 a 0 o viceversa alterando el significado del dato. [1]

Figura 1: Ilustracin del error de bit. Tomado de [2]2.1.2 ERROR DE RAFAGAEl error de rfaga significa que dos o ms bits de la unidad de datos han cambiado. Los errores de rfaga no significan necesariamente que los errores se produzcan en bits consecutivos. [1]

Figura 2: Ilustracin del error de rfaga. Tomado de [2]2.2 CDIGOS DE DETECCIN DE ERRORES

2.2.1 CDIGO CRCEl CRC o llamado Comprobacin de Redundancia Cclica, es un cdigo usado en la prctica para la deteccin de errores en largas secuencias de datos. [3]La cadena de datos a ser transmitida se la representa como un polinomio, en donde los coeficientes del polinomio corresponden a la secuencia binaria.

El cdigo CRC Brinda ms fiabilidad y es ms fcil de implementar, bsicamente en sus operaciones aritmticas.

Se basa en operaciones matemticas realizadas por el emisor antes de enviar los datos para que luego el receptor realice una divisin entre un polinomio generador que tanto el emisor como el receptor deben conocer, si el resto es cero, la transmisin es correcta caso contrario significar que se ha producido un error, durante la transmisin y se puede solicitar nuevamente la retransmisin al emisor. [4]2.2.2 ALGORITMO PARA CALCULAR EL CDIGO CRC. Conociendo el cdigo de CRC y su longitud r y siendo de conocimiento que el generador tiene (r+1) bits de longitud, aadimos estos r bits 0al mensaje de envi.

Dividimos la serie de bits del mensaje para el polinomio generador establecido.

El residuo final que se obtiene de la divisin son los bits de valor de verificacin que irn adjuntos al mensaje de envi.

Finalmente en el destino de la transmisin se vuelve a dividir el mensaje para el polinomio generador y si el resultado es cero el mensaje no ha sufrido dao alguno [5].Ejemplo: La secuencia binaria1010110001se puede representar como un polinomio, como se muestra a continuacin.

1*X9 + 0*X8 + 1*X7 + 0*X6 + 1*X5 + 1*X4 + 0*X3 + 0*X2 + 0*X1 + 1*X0X9 + X7 + X5 + X4 + 1 Las operaciones de mdulo 2 se presentan a continuacin:

0 + 0 = 0

0 0 = 0

0 + 1 = 1

0 1 = 1 (sin carreo)

1 + 0 = 1

1 0 = 1

1 + 1 = 0 (sin acarreo) 1 1 = 0Considerando que un polinomio original M(x) tiene m bits, tanto emisor como receptor deben conocer el polinomio generador G(x) de grado r, mediante el cual se deber realizar el siguiente procedimiento:

Al polinomio original se le deber agregar ceros a su derecha en cantidad igual a r, es decir al grado del polinomio generador, formando un polinomio M(x) de m+r bits.

Realizamos una divisin de mdulo 2 entre el polinomio M(x) y el polinomio generador G(x).

El residuo de la operacin anterior se lo sustrae del polinomio M(x), mediante una resta de mdulo 2, obteniendo el polinomio a transmitirse T(x).

Despus que T(x) se ha transmitido el emisor deber realizar la divisin de mdulo 2 entre el polinomio recibido T(x) y el polinomio generador G(x).

Si el residuo es cero, la transmisin ha sido correcta. Caso contrario el receptor solicitar una retransmisin.

Los polinomios generadores ms comunes son:

CRC-12: X12+ X11+ X3+ X2+ X + 1 CRC-16: X16+ X15+ X2+ 1 CRC CCITT V41: X16+ X12+ X5+ 1(este cdigo se utiliza en el procedimientoHDLC)

CRC-32(Ethernet): = X32+ X26+ X23+ X22+ X16+ X12+ X11+ X10+ X8+ X7+ X5+ X4+ X2+ X + 1 CRC ARPA: X24+ X23+ X17+ X16+ X15+ X13+ X11+ X10+ X9+ X8+ X5+ X3+ 1 [6]CRC-12: Usado para transmitir flujos de 6 bits, junto a otros 12 de redundancia.

CRC-16: Para flujos de 8 bits, con 16 de redundancia. Usado en USA, principalmente.

CRC-CCITT: Para flujos de 8 bits, con 16 de redundancia. Usado en Europa, principalmente.

CRC-32: Da una proteccin extra sobre la que dan los CRC de 16 bits, que suelen dar la suficiente. Se emplea por el comit de estndares de redes locales (IEEE-802) y en algunas aplicaciones del Departamento de Defensa de USA.

Por ejemplo:

Se requiere transmitir el mensaje 110101. Siendo el polinomio generador G(x) = x3 + 1.

Mensaje: 110101 Polinomio generador: G(x) = 1001 (r=3)

Se aaden 3 bits 0 al final del mensaje:

M(x) =110101000

Por lo tanto el polinomio trasmitido es:

T(x)= 110101011Comprobacin de TransmisinSi al realizar la divisin de mdulo 2 entre el polinomio recibido T(x) y el polinomio generador G(x) se obtiene un residuo equivalente a cero, entonces la transmisin ha sido correcta. Caso contrario el receptor solicitar una retransmisin as:

2.3 CDIGOS DE CORRECCIN DE ERRORES CODIGO DE HAMMING

Es un mtodo general propuesto por R. W Hamming que proporciona un mtodo de correccin de un nico bit errneo. El mtodo emplea los bits de paridad para detectar la posicin del bit errneo. [1]Permite corregir un error en una palabra y detectar si se han producido dos errores. En el rea prctica se implementa mediante matrices. La idea general del cdigo de Hamming es introducir unos bits de redundancia y distribuirlos de cierta manera a los largo de la palabra de forma que si se producen errores se puedan corregirlos.

La nomenclatura general que se emplea es expresar el tipo de cdigo de Hamming que se va a utilizar mediante dos nmeros entre parntesis, los cuales expresan el nmero total de bits y el nmero de bits de informacin.

(Nmero de bits totales, nmero de bits de informacin). Por ejemplo:

(8,7) = 8 bits en total de los que 7 llevan informacin.

Realizando la resta de estos nmeros se pueden obtener el nmero de paridad. En este ejemplo el nmero de paridad es 1.

2.3.1 FORMA MECNICA DE REALIZAR EL ALGORITMO DE HAMMING

Se realiza mediante una tabla en la cual por comodidad se las posiciones y los datos en binario. El nmero final de bits est indicado por el cdigo de Hamming concreto.

El nmero de bits de datos se designa por d, entonces el nmero de bits de paridad se designa por p, y se determina mediante la siguiente relacin:

2dd+p+1 (1)Es decir las posiciones potencia de 2 son bits de paridad (20 = 1, 2, 4, 8,16), y el resto son datos.Una vez obtenido el nmero de bits de paridad se procede a ubicarlos junto con los bits de datos de izquierda a derecha. Los bits de paridad se los ubica en las posiciones correspondientes a las potencias de 2 y los bits de datos se ubican en las posiciones restantes.

Despus se procede a asignar el valor de 0 o 1 a cada bit de paridad, para lo cual expresamos en binario el nmero correspondiente a la posicin del bit. Por ejemplo, para un mensaje de 7 bits se tiene 7 posiciones representadas de forma ordenada en binario: 001, 010, 011, 100, 101, 110, y 111. Vase la Tabla 1.Tabla 1. Tabla de bits de paridad y datos.

Tomado de [9]Luego se procede a rellenar la palabra original de datos (palabra a proteger frente a cualquier error) en los bits de datos de izquierda a derecha.

Los bits de paridad se los obtiene de manera ordenada mediante la siguiente manera:

Los valores de la palabra original (palabra sin paridad) a proteger ubicadas en los bits de datos ocuparan la primera posicin de paridad p1 si el bit menos significativo (LSB) del nmero binario que representa la posicin del bit de dato es 1. Luego se verifica la paridad completando con ceros o unos la paridad (p1-p1)

Los valores de la palabra original a proteger ubicadas en los bits de datos ocuparan la segunda posicin de paridad p2 si el segundo bit del nmero que representa la posicin del bit de dato es 1. Luego se verifica la paridad completando con ceros o unos la paridad (p2-p2)

Los valores de la palabra original a proteger ubicadas en los bits de datos ocuparan la segunda posicin de paridad p3 si el tercer bit del nmero que representa la posicin del bit de dato es 1. Luego se verifica la paridad completando con ceros o unos la paridad (p3-p3)

Los valores de la palabra original a proteger ubicadas en los bits de datos ocuparan la segunda posicin de paridad p4 si el tercer bit del nmero que representa la posicin del bit de dato es 1. Luego se verifica la paridad completando con ceros o unos la paridad (p4-p4). [7] De esta manera se procede dependiendo del cdigo de Hamming a proteger.

En La palabra cdigo se forma bajando los bits de datos y paridad que se obtuvieron de la ltima paridad obtenida2.3.2 CODIFICACIN DE HAMMING (LOCALIZACION DEL ERROR)De acuerdo a las especificaciones de paridad establecidas se realizan n comprobaciones igual al nmero de bits de paridad. Por ejemplo, si tenemos 3 bits de paridad se harn 3 comprobaciones.

Cada bit de paridad se deber comprobar junto con su respectivo grupo. Cada comprobacin de paridad dar un resultado bueno o malo. El resultado total de todas las comprobaciones de paridad indica el bit, si existe, en el que se encuentra el error de la siguiente manera: Comience con el grupo comprobado por P1. Compruebe si el grupo tiene la paridad correcta. Un 0 representa que la comprobacin de paridad es correcta y un 1 que es incorrecta. Esto paso se repite para cada grupo de polaridad. El nmero binario formado por los resultados de todas las comprobaciones de paridad indica la posicin del bit del cdigo que es errneo. Es el cdigo de posicin de error. La primera comprobacin de paridad genera el bit menos significativo (LSB). Si todas las comprobaciones son correctas, no habr error. [8]2.3.3 EJEMPLOS DEL CODIGO DE CORRECIN DE ERRORES HAMMING.2.3.3.1 Primer Ejemplo.

Consideremos como ejemplo la palabra de datos de 7 bits "0110101". El cmo se generan y se utilizan los cdigos Hamming para detectar un error, se puede entender de mejor manera en la tabla 2 y tabla 3 respectivamente. 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.

Tabla 2. Posiciones de bits de paridad y datos.

Tomado de [9]La nueva palabra de datos (con los bits de paridad) es ahora "10001100101". Vase la Tabla 3.

Tabla 3. Comprobacin de los bits de paridad (valor correcto)

Tomado de [9]Tomando en cuenta un error en el bit de la derecha, es decir cambiando de 1 a 0. La nueva palabra de datos ser ahora "10001100100". 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. Vase la tabla 4.

Tabla 4. Comprobacin de los bits de paridad (valor errneo)

Tomado de [9]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. Vase la Tabla 5.Tabla 5. Evaluacin de los bits de paridad

Binario1011

Decimal82111

Tomado de [9]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.2.3.3.2 Segundo Ejemplo.

Nmero de Hamming (11,7), 11 bits de los cuales 7 llevan informacin

Datos= 0101001, paridad =4

Tabla 6. Bits de paridad y bits de datos.

Tomado de [7]De igual manera que el ejemplo anterior se procede se procede a obtener los bits de paridad y bits de datos de cada una de las posiciones de paridad (p1-p1, p2-p2,), hasta obtener la palabra que se transmitir (palabra ms paridad). En este caso la palabra almacenada o con paridad es: 10001011001. Vase la Tabla 6.Ahora introducimos un error deliberadamente en la cifra menos significativa (LSB) y procedemos a obtener de igual manera la palabra almacenada (palabra ms paridad). Ubicamos la paridad errnea en la seccin de calidad de paridad, y la paridad almacenada en su respectiva ubicacin. Luego se las compara y si son diferentes producen un error. SI existe un error se lo marca como 1, si es correcto se marca como un 0.Tabla 7. Comparacin

Tomado de [7] Para obtener la posicin donde se produjo el error, al nmero producido mediante la comparacin se lo toma como nmero binario y se lo pasa a decimal para obtener la posicin del error contando desde la derecha de la palabra introducida mediante el error. Vase la Tabla 7.Finalmente para solucionar el problema se cambia 0 por 1 o 1 por 0 dependiendo el resultado. En este se soluciona cambiando el 0 por 1.

3 CONCLUSIONES

El cdigo CRC es un cdigo que protege la integridad del dato o el mensaje, ms no asegura que el mensaje recibido sea el que contenga la informacin requerida ya que este pudo haberse originado de una seal abierta. El cdigo CRC slo nos muestra la existencia de un error en la transmisin, ms no su ubicacin, por lo que solicita una retrasmisin de la informacin al emisor hasta que no exista error alguno. Para la comprobacin de la transmisin mediante el cdigo CRC es indispensable que el emisor y el receptor deban conocer exactamente cul es el polinomio generador.

Para el cdigo CRC las operaciones a efectuarse, tanto para su generacin como para su comprobacin, deben ser operaciones de mdulo 2, es decir, no existe acarreo de cifras.

El cdigo CRC que se genera se basa en la operacin XOR y el mismo siempre debe ir adjunto al mensaje a transmitir para su posterior verificacin. El cdigo Hamming nos muestra la existencia de un error en la transmisin de datos, adems nos brinda la ubicacin del error y la manera de solucionarlo.

El cdigo Hamming emplea los bits de paridad para realizar las comprobaciones. El nmero de bits de paridad indica el nmero de comprobaciones que se debern efectuar. Cada comprobacin de paridad en el cdigo Hamming nos proporciona un dgito, el dgito 0 representa una paridad correcta, mientras que el dgito 1 representa una paridad incorrecta. Los dgitos conforman el cdigo de posicin del error, con la condicin de que la primera comprobacin nos otorga el bit menos significativo.4 REFERENCIAS

[1] Slideshare.net. Mtodos para la deteccin y correccin de errores. (2013). Disponible en http://www.slideshare.net/dhuertacruz/mtodos-para-la-deteccin-y-correccin-de-errores[2]Sistemas de Multiplexado. Deteccin y correccin de errores. (2013) Disponible en https://sites.google.com/site/sistemasdemultiplexado/arquitecturas-de-las-redes-de--comunicacin-caractersticas/8--deteccin-y-correccin-de-errores[3] UTT. Cdigo de Redundancia Cclica (crc). (2013). Disponible en http://fernando526.tripod.com/mediosdetransmisionguiados/id4.html[4] Gey.com. Cdigos de Redundancia Cclica (CRC). (2014). Disponible en http://xn--gey-hoa.com/wp-content/uploads/propios/2013/S/CRC.pdf[5] Slideshare.net. Deteccin y correccin de Errores. (2013). Disponible en http://www.slideshare.net/carlosamayat/hamming-y-crc[6] Kioskea.net. Verificacin de Errores. (2013). Disponible en http://es.kioskea.net/contents/59-verificacion-de-errores[7] Borja Vidal. Universidad Politcnica de Valencia Cdigos de Hamming. (2011). Disponible en https://www.youtube.com/watch?v=gQK9nROFX20[8] Thomas L. Floyd, Fundamentos de Sistemas Digitales, 9na. ed, Pearson, Cap 2, pp. 109, Madrid 2006.

[9] Francis. B. A. and W. M. Wonham, The internal model principle of control theory, Automatica. Vol. 12. pp. 457-465. 1976.

6