miércoles, 10 de octubre de 2012

Deteccion de errores

Deteccion de errores.
Debido a los numerosos problemas a la hora de realizar la transmisión, es necesario utilizar técnicas que permitan detectar y corregir los errores que se hayan producido. Estas técnicas se basan siempre en la idea de añadir cierta información redundante a la información que desee enviarse. A partir de ella el receptor puede determinar, de forma bastante fiable, si los bits recibidos corresponden realmente a los enviado. Algunos métodos son:

Paridad
Uno de los métodos más comúnmente empleados para detectar errores, cuando el número de bits de información a transmitir es pequeño y la probabilidad de que ocurra un error es baja, es el uso de un bit adicional de paridad por elemento transmitido. Puede conseguirse una importante mejora añadiendo un segundo grupo de bits de paridad, como puede verse en la siguiente tabla. Para ello deben agruparse los datos en bloques y aplicar el control de paridad a dos dimensiones (filas y columnas). Para cada carácter se añade un bit de paridad, como en el caso anterior. Además, se genera un bit de paridad para cada posición de bit a través de todos los caracteres. Es decir, se genera un carácter adicional en que el i-ésimo bit del carácter es un bit de paridad para el i-ésimo bit de todos los caracteres en el bloque.

Códigos de redundancia cíclica
Los códigos de redundancia cíclica, también conocidos como códigos polinomiales constituyen el método de detección de errores más empleado en comunicaciones. Se utiliza con esquemas de transmisión orientados a tramas (o bloques). Permiten sustanciales mejoras en fiabilidad respecto a los métodos anteriores, siendo a la vez una técnica de fácil implementación. Imponiendo condiciones bastante simples sobre los polinomios divisores es posible detectar un gran número de errores. Existen tres polinomios G(x) que se han convertido en estándares internacionales.

CRC-12 X12 + x11 + x3 + x2 + x +1
CRC-16 X16 + x15 + x2 + 1
CRC-CCITT X16 + x12 + x5 + 1
Con secuencias de control de 16 bits, utilizando los polinomios CRC-16 y CRC-CCITT es posible detectar todos los errores simples y los dobles, todos los que afectan a un número impar de bits, todos los errores tipo ráfaga de 16 bits o menores, el 99,997% de errores ráfaga de 17 bits y el 99.998% de los de 18 bits y mayores.

Para poder recuperar los datos perdidos es necesario emplear códigos altamente redundantes, de esta forma, la utilización efectiva del canal de transmisión se reduce considerablemente. Es necesario pues, que el receptor disponga de los mecanismos necesarios (Hardware) para recuperar la información a través de los datos corruptos que le llegan.

Codigos de control 2 en 3.
Este tipo de códigos se caracteriza por repetir la información 3 veces. Si una información cualquiera está codificada en n bits, se forma un nuevo código 3*n bits, en donde A está repetido 3 veces. Al analizar la información transferida se decide si es correcta según el número de veces que coincida las 3 secuencias.

Codigos de Hamming.
Con este nombre se conoce a un conjunto de códigos correctores de error en k dígitos binarios; donde k es un número natural arbitrario. En estas líneas trataremos solo el caso de k=1, es decir, códigos de Hamming de orden uno.
Este código se construye a partir de uno de n dígitos binarios de distancia mínima uno. Estos n dígitos formarán dentro del código de Hamming los dígitos binarios de datos. A continuación añadiremos p dígitos binarios llamados dígitos de control. Por lo tanto el código formado (código de Hamming) tendrá una longitud de l=n+p dígitos. La numeración de los dígitos se realiza de la forma habitual pero comenzando por uno, es decir: bn+p bn+p-1... b2 b1.

Los dígitos de control ocuparán las posiciones iguales a las potencias exactas de dos, es decir bj con j=20, 21,...,2p-1. De aquí deducimos que el número p debe ser el natural más pequeño que satisfaga la siguiente desigualdad:

2p>=n+p+1

El valor que alcanzan estos códigos binarios , surge de establecer p controles de paridad sobre determinadas subcombinaciones del código. Para ello se siguen sistemáticamente estos pasos:
Se renombran eventualmente los dígitos binarios de control como: cp cp-1 ... c2 c1. Donde cj = b2j-1 (j=1,2,....p).
Se halla la codificación en binario natural de cada una de las posiciones dentro del código a través de los dígitos binarios: cp cp-1...c2 c1.

No hay comentarios:

Publicar un comentario