Sie sind auf Seite 1von 7

Deteccin y correccin de errores

Deteccin y correccin de errores


En matemticas, computacin y teora de la informacin, la deteccin y correccin de errores es una importante prctica para el mantenimiento e integridad de los datos a travs de diferentes procedimientos y dispositivos como medios de almacenamiento confiables. [1]Se considera como precursor de este tipo de tecnologas el Acme Comodity and Phrase Code usado en los telegramas

Introduccin
La comunicacin entre varias computadoras produce continuamente un movimiento de datos, generalmente por canales no diseados para este propsito (lnea telefnica), y que introducen un ruido externo que produce errores en la transmisin. Por lo tanto, debemos asegurarnos que si dicho movimiento causa errores, stos puedan ser detectados. El mtodo para detectar y corregir errores es incluir en los bloques de datos transmitidos bits adicionales denominados redundancia. Se han desarrollado dos estrategias bsicas para manejar los errores: Incluir suficiente informacin redundante en cada bloque de datos para que se puedan detectar y corregir los bits errneos. Se utilizan cdigos de correccin de errores. Incluir slo la informacin redundante necesaria en cada bloque de datos para detectar los errores. En este caso el nmero de bits de redundancia es menor. Se utilizan cdigos de deteccin de errores. Si consideramos un bloque de datos formado por m bits de datos y r de redundancia, la longitud final del bloque ser n, donde n = m + r.

Tipo de cdigos detectores


Paridad simple (paridad horizontal)
Consiste en aadir un bit de ms a la cadena que queremos enviar, y que nos indicar si el nmero de unos (bits puestos a 1) es par o es impar. Si es par incluiremos este bit con el valor = 0, y si no es as, lo incluiremos con valor = 1. Ejemplo de generacin de un bit de paridad simple: Queremos enviar la cadena 1110100: 1 Contamos la cantidad de unos que hay: 4 unos 2 El nmero de unos es par por tanto aadimos un bit con valor = 0 3 La cadena enviada es 11101000 El receptor ahora, repite la operacin de contar la cantidad de unos que hay (menos el ltimo bit) y si coincide, es que no ha habido error. Problemas de este mtodo: Hay una alta probabilidad de que se cuelen casos en los que ha habido error, y que el error no sea detectado, como ocurre si se cambian dos nmeros en la transmisin en vez de uno.

Deteccin y correccin de errores

Paridad cruzada (paridad horizontal-vertical)


Para mejorar un poco el mtodo anterior, se realiza una paridad que afecte tanto a los bits de cada cadena o palabra como a un conjunto de todos ellos. Siempre se utilizan cadenas relativamente cortas para evitar que se cuelen muchos errores. Para ver ms claro este mtodo, se suelen agrupar los bits en una matriz de N filas por K columnas, luego se realizan todas las paridades horizontales por el mtodo anterior, y por ltimo, se hace las misma operacin de calcular el nmero de unos, pero ahora de cada columna. La probabilidad de encontrar un solo error es la misma, pero en cambio, la probabilidad de encontrar un nmero par errores ya no es cero, como en el caso anterior. Aun as, existen todava una gran cantidad de errores no detectables
Un ejemplo de paridad cruzada (o de cdigo geomtrico) 1 Tenemos este cdigo para transmitir: 1100101111010110010111010110 2 Agrupamos el cdigo en cada una de las palabras, formando una matriz de N x K: 1100101 1110101 1001011 1010110 3 Aadimos los bits de paridad horizontal: 1100101 0 1110101 1 1001011 0 1010110 0 4 Aadimos los bits de paridad vertical: 1100101 0 1110101 1 1001011 0 1010110 0 0001101 1

Una vez creada la matriz, podemos enviar sta por filas, o por columnas. Enviando las palabras por columnas aumentamos la posibilidad de corregir una palabra que haya sufrido un error de rfaga (errores que afectan a varios bits consecutivos, debidos a causas generalmente electrnicas, como chispazos, y que haran que se perdiera toda una palabra completa).

Deteccin y correccin de errores

Cdigos de redundancia cclica tambin llamados CRC


Intentando mejorar los cdigos que slo controlan la paridad de bit, aparecen los cdigos cclicos. Estos cdigos utilizan la aritmtica modular para detectar una mayor cantidad de errores, se usan operaciones en mdulo 2 y las sumas y restas se realizan sin acarreo (convirtindose en operaciones de tipo Or-Exclusivo o XOR). Adems, para facilitar los clculos se trabaja, aunque slo tericamente, con polinomios. La finalidad de este mtodo es crear una parte de redundancia la cual se aade al final del cdigo a transmitir (como en los mtodos de paridad) que siendo la ms pequea posible, detecte el mayor nmero de errores que sea posible. Pero adems de esto, debe ser un mtodo sistemtico, es decir, que con un mismo cdigo a transmitir (y un mismo polinomio generador) se genere siempre el mismo cdigo final. El polinomio generador: es un polinomio elegido previamente y que tiene como propiedad minimizar la redundancia. Suele tener una longitud de 16 bits, para mensajes de 128 bytes, lo que indica que la eficiencia es buena. Ya que slo incrementa la longitud en un aproximado 1,6%:

Un ejemplo de polinomio generador usado normalmente en las redes WAN es: Los clculos que realiza el equipo transmisor para calcular su CRC son: 1. 2. 3. 4. Aade tantos ceros por la derecha al mensaje original como el grado del polinomio generador Divide el mensaje con los ceros incluidos entre el polinomio generador El resto que se obtiene de la divisin se suma al mensaje con los ceros incluidos Se enva el resultado obtenido

Estas operaciones generalmente son incorporadas en el hardware para que pueda ser calculado con mayor rapidez, pero en la teora se utilizan los polinomios para facilitar los clculos. Ejemplo de obtencin del CRC: Datos: Mensaje codificado en binario: 1101001 Polinomio generador: Operaciones: 1 Obtener el polinomio equivalente al mensaje: 2 Multiplicar el mensaje por (aadir 4 ceros por la derecha):

3 Dividir en binario el mensaje por el polinomio generador y sacar el resto: 4 Concatenar el mensaje con el resto (en mdulo 2 tambin): 5 Transmitir el mensaje El equipo receptor debe comprobar el cdigo CRC para detectar si se han producido o no errores. Ejemplo de los clculos del receptor: 1 Mediante el protocolo correspondiente acuerdan el polinomio generador 2 Divide el cdigo recibido entre el polinomio generador

Deteccin y correccin de errores 3 Comprueba el resto de dicha operacin 3.1 Si el resto es cero, no se han producido errores 3.2 Procesar el mensaje 3.1 Si el resto es distinto de cero, significa que se han producido errores 3.2 Reenviar el mensaje 3.2 Intentar corregir los errores mediante los cdigos correctores En resumen, este mtodo requiere de un polinomio generador que, elegido correctamente, puede llegar a detectar gran cantidad de errores: Errores simples: todos Errores dobles: todos Errores en las posiciones impares de los bits: todos Errores en rfagas con una longitud menor que el grado del polinomio generador: todos Otras rfagas: un porcentaje elevado y cercano al 100%

Suma de comprobacin
Es un mtodo sencillo pero eficiente slo con cadenas de palabras de una longitud pequea, es por esto que se suele utilizar en cabeceras de tramas importantes u otras cadenas importantes y en combinacin con otros mtodos. Funcionalidad: consiste en agrupar el mensaje a transmitir en cadenas de una longitud determinada L no muy grande, de por ejemplo 16 bits. Considerando a cada cadena como un nmero entero numerado segn el sistema de numeracin . A continuacin se suma el valor de todas las palabras en las que se divide el mensaje, y se aade el resultado al mensaje a transmitir, pero cambiado de signo. Con esto, el receptor lo nico que tiene que hacer es sumar todas las cadenas, y si el resultado es 0 no hay errores. Ejemplo: Mensaje 101001110101 1 Acordar la longitud de cada cadena: 3 2 Acordar el sistema de numeracin: 3 Dividir el mensaje: 101 001 110 101 4 Asociar cada cadena con un entero: 5 1 6 5 5 Sumar todos los valores y aadir el nmero cambiado de signo: -17 6 Enviar 5 1 6 5 -17 codificado en binario
El receptor:

1 Suma todos los valores; si la suma es 0, procesa el mensaje; si no, se ha producido un error.

Deteccin y correccin de errores Este mtodo al ser ms sencillo es ptimo para ser implementado en software ya que se puede alcanzar velocidades de clculo similares a la implementacin en hardware

Distancia de Hamming basada en comprobacin


Si queremos detectar d bit errneos en una palabra de n bits, podemos aadir a cada palabra de n bits d+1 bits predeterminados al final, de forma que quede una palabra de n+d+1 bits con una distancia mnima de Hamming de d+1. De esta manera, si uno recibe una palabra de n+d+1 bits que no encaja con ninguna palabra del cdigo (con una distancia de Hamming x <= d+1 la palabra no pertenece al cdigo) detecta correctamente si es una palabra errnea. An ms, d o menos errores nunca se Hipercubo binario de dimensin cuatro. convertirn en una palabra vlida debido a que la distancia de Hamming entre cada palabra vlida es de al menos d+1, y tales errores conducen solamente a las palabras invlidas que se detectan correctamente. Dado un conjunto de m*n bits, podemos detectar x <= d bits errores correctamente usando el mismo mtodo en todas las palabras de n bits. De hecho, podemos detectar un mximo de m*d errores si todas las palabras de n bits son transmitidas con un mximo de d errores. Ejemplo Palabras a enviar: 1. 000001 2. 000001 3. 000010 Codificadas con distancia mnima de Hamming = 2 000001 0000 000001 0011 000010 1100 Si las palabras recibidas tienen una distancia de Hamming < 2, son palabras incorrectas.

Lista de los mtodos de correccin y deteccin de errores


Dgito verificador FEC (Forward Error Correction) Cdigo Binario de Golay Cdigo Hamming Bit de paridad Reed-Solomon

Deteccin y correccin de errores

Referencias
[1] G. J. Simmons, "A survey of Information Authentication". Contemporary Cryptology, The science of information integrity, ed. GJ Simmons, IEEE Press, New York, (1992)

Enlaces externos
Otros cdigos utilizados (http://web.usc.es/~elusive/simula3.html)

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Deteccin y correccin de errores Fuente: http://es.wikipedia.org/w/index.php?oldid=57894861 Contribuyentes: 4lex, Acratta, Aliuk, Amadeupons, Angel GN, AquiLesBailoYo, Arieligena, Ascnder, Cronos x, DanFar, Edgar, Farisori, Fercufer, Fernando ule, Humberto, Jredmond, Lobillo, Mansoncc, Manuelt15, Mcapdevila, Moriel, Sauron, UA31, conversion script, 36 ediciones annimas

Fuentes de imagen, Licencias y contribuyentes


Archivo:Hamming distance 4 bit binary example.svg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Hamming_distance_4_bit_binary_example.svg Licencia: Creative Commons Attribution-ShareAlike 3.0 Unported Contribuyentes: en:User:Cburnett

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

Das könnte Ihnen auch gefallen