Clase1

Enviado por Programa Chuletas y clasificado en Otras materias

Escrito el en español con un tamaño de 8,24 KB

 
4.1.- Técnicas de detección de errores Los métodos más utilizados son: Los basados en la pa ridad, tanto lineal como en bloque Los de redundancia cíclica. Métodos basados en la paridad. Un bit de paridad es un bit que se añade a un dato con el fin de protegerlo contra los errores. El tipo de paridad más sencillo es la paridad lineal o de carácter, y consiste en añadir un bit a la derecha de cada carácter a transmitir de modo que el número de bit a «uno» en el conjunto carácter + bit extra sea par o impar, lo cual se habrá establecido de antemano. Cuando el valor del bit de paridad se ajusta p ara que el número de bits con valor «uno» sea par, se tiene paridad par e impar en el otro caso. Este método es muy simple pero poco robusto. Debe notarse que es imposible detectar un número par de errores de los datos transmitidos. Además, trasmitiendo bloques mayores de cierta longitud deja de ser eficaz. En código ASCII la representación es muy sencilla: b1 b2 b3 b4 b5 b6 b7 b8 + P 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1


Para los caracteres del código ASCII, el uso del bit de paridad sólo disminuye en un 12% la capacidad del canal. Los métodos de paridad se pueden extender agrupando varios datos, por ejemplo, varios bytes en forma de matriz rectangular y calcular la paridad, tanto en vertical como en horizontal. Estos métodos se denominan método de cálculo de paridad por bloques. Evidentemente, proporcionan una mayor protección para los datos, aunque son algo más complejos y menos efi cientes. Cuando se trabaja en entornos síncronos no es rentable la utilización de métodos basados en paridad, debido a la deficiente utilización del ancho de banda del canal. Además, se precisa una protección más fuerte sin consumir demasiados recursos en el proceso de detección propiamente. Está cada vez más extendido el uso de métodos de redundancia cíclica como respuesta a estas necesidades.
Métodos basados en el uso de códigos de redundancia cíclica: El codificador es un dispositivo que asigna a cada bloque de K bits de la fuente, un bloque de longitud N. Es conveniente reducir la complejidad del codificador utilizando unas reglas de codificación sencillas, siempre que no se degraden las posibilidades del código resultante. Para ello se utilizan códigos con sencillez de codificación o códigos líneas. Se basan estos métodos en las propiedades de la aritmética modular. Los códigos polinomiales o de redundancia cíclica se construyen en base a polinomios de coeficientes binarios, esto es, en base 2 (0 ó 1). El proceso, muy simplificadamente, se basa en considerar la información binaria a transmitir como los coeficientes de un polinomio de orden n-1, siendo n el número de bits a transmitir. El cálculo de la redundancia se produce al añadir a los m bits del mensaje r bits de redundancia calculados mediante el polinomio generador G(x). Por ejemplo, si se envía la cadena 100111001, se considera que esto equivale al polinomio x8+ x5 + x4 + x3 + 1. El polinomio que se emplea como divisor es el otro elemento clave, de cuya elección depende la potencia del código. Este polinomio es el que se conoce como polinomio generador G(x). Interesa que los polinomios representativos de los errores más frecuentes no sean divisibles por G(x). El algoritmo para calcular la redundancia es el siguiente: 1. Sea r el grado de G(x). Agregar r bits a cero al extremo de orden inferior de la trama, de tal manera que ahora contenga m + r bits, y corresponda al polinomio x M(x). 2. Dividir la serie de bits correspondientes a x M(x) entr e la serie de bits correspondientes a G(x), empleando la división en módulo 3. Restar el resto (que siempre tiene r o menos bits) de la serie de bits correspondientes a x M(x), empleando la resta en módulo 2. El resultado es el mensaje listo para transmitir. Llámese T(x) a este polinomio que deberá ser divisible por G(x). ¿Qué tipo de errores se detectarán? Imagínese que ocurre un error en una transmisión, así que, en lugar de recibir el polinomio T(x), llega T(x) + E(x). Cada bit con valor de 1 en E(x) corresponde a un bit erróneo (invertido). Si hay K bits a 1 en E(x), habrán ocurrido K errores de un solo bit. Una sola ráfaga de errores se caracteriza por tener un 1 inicial, mezcla de 0 y 1, y un 1 final, con el resto de los bits teniendo un valor 0. Una vez que se recibe el mensaje con la redundancia, el receptor la divide entre G(x), si el resto es 0 aquellos errores que se produzcan pasarán inadvertidos; en caso contrario, todos los demás errores quedarán detectados. Estos códigos permiten detectar más del 99% de los errores (simples, dobles, impares y a ráfagas) que podrían llegar a producirse. En particular, el polinomio generador G(x) utilizado es el propuesto por el UIT, G(x) = x. La principal desventaja está relacionada con la limitación en la longitud del mensaje. Para el polinomio anterior, ésta es como máximo 65.535, pudiendo utilizarse otros polinomios (CRC-24) para mensajes mayores. 4.2.- Técnicas de corrección de errores Los sistemas de corrección de errores se basan en la idea de reconstruir la información original a partir de los datos recibidos, que están compuestos por los datos originales más la redundancia. Luego, la recuperación de la información tiene lugar en el equipo receptor.
El modelo más popular de sistemas de corrección es el basado en los códigos de Hamming. Los códigos de Hamming se basan en añadir a cada una de las palabras de información que se van a transmitir un conjunto de bits de redundancia; el conjunto de bits de información y bits de redundancia constituyen una palabra del código Hamming que se esté utilizando. La particularidad de los códigos de Hamming se encuentra en que a partir de los bits de redundancia se pueden detectar las posiciones de los bits erróneos y corregirlos; corregir un bit erróneo es inve rtirlo.
El número máximo de errores que se pueden corregir depende de la distancia de Hamming para ese código. El diseño del sistema es específico según el número de bits que se quieran corregir. En todos los casos ocurre, además, que un código de Hamming capaz de corregir los errores que aparezcan en n bits puede detectar n + 1 bits erróneos. Por ejemplo, los códigos Hamming que corrigen un bit erróneo también son capaces de detectar errores dobles.
Una desventaja de los códigos de Hamming es el número de bits adicionales que emplean, de modo que reducen notablemente la capacidad efectiva del canal. Por este motivo, a menudo se utilizan mecanismos de envío repetidos, como resultado de la detección de un error por alguno de los métodos descritos. Lógicamente, esto será tanto más rentable cuanto menor sea la frecuencia de error. En caso contrario, o cuando se exige gran fiabilidad, los códigos correctores son más adecuados.


Entradas relacionadas: