You are on page 1of 17

Universidad Tecnolgica Nacional Facultad Regional Tucumn Ingeniera en Sistemas de Informacin Ctedra: Comunicaciones Temas: Control de errores.

Cifra de error. Mtodos de deteccin y correccin de errores. Ao de revisin: 2009 Control de errores Un sistema de comunicacin est expuesto a que ocurran errores durante la transmisin e interpretacin de los datos, en especial por problemas de ruido que afectan a las diversas partes del sistema, principalmente a los canales de transmisin. Es necesario entonces, desarrollar e implementar procedimientos para el control de estos errores. El control de errores consta de dos partes: la deteccin de errores y la correccin de errores. La forma de controlar los errores consiste en enviar datos adicionales al contenido del mensaje (redundancia). Aunque se logra una mayor proteccin de los datos del mensaje contra errores, mayor es la cantidad de bits adicionales que no llevan informacin y la eficiencia del proceso de transmisin disminuye. As por ejemplo, en la transmisin sincrnica debe existir un compromiso entre el tamao de los bloques de cada mensaje y la eficiencia de la transmisin. Cuando ms pequeos sean los bloques, menos probable ser la necesidad de retransmitirlos, pero la eficiencia de la transmisin disminuye apreciablemente. Por otra parte, cuando los bloques de mensajes son largos, con el objeto de aumentar la eficiencia, una mayor proporcin de estos bloques tendrn mayor probabilidad de errores y ser necesario retransmitirlos, lo que a largo plazo puede disminuir an ms su eficiencia. En las transmisiones por la red telefnica conmutada, la tasa de error vara segn la hora del da. Por ese motivo, cuando la tasa de error se eleva en exceso, lo ms razonable es disminuir la velocidad de modulacin. Tasa de errores: La tasa de errores sirve para medir la cifra de errores. Relaciona la cantidad de bits recibidos con error en el receptor con la cantidad total de bits transmitidos en un determinado tiempo o sesin. Se la denomina BER (Bit Error Rate) y su valor es tpico para cada medio de transmisin en particular.

BER =

Cantidad _ de _ bit _ errneos _ en _ Tiempo _ unitario Cantidad _ total _ de _ bit _ transmitidos _ en _ Tiempo _ unitario

Ejemplo: Un computador recibe desde una fuente remota un total de 2 Mb que corresponden a un archivo y a los datos de control para su transmisin. Si durante la transmisin se produjeron 20 bits errneos, determinar la tasa de errores de dicha transmisin.

BER =

20bits = 105 2.106 bits

En una red telefnica, este valor es la tasa tpica de la red y significa que se puede prever que se producir un error de un bit en 100000 bits trasmitidos. En la actualidad, las redes telefnicas han mejorado la calidad de sus medios de transmisin y tienen tasas tpicas de 10 6 BER . En las redes de rea local, donde las distancias son ms cortas y la construccin de las redes son ms exigentes y con pares trenzados de cobre, las tasas de errores son

mucho menores y del orden de 10 8 BER a 10 9 BER . Si se emplean fibras pticas, la tasa de error pude alcanzar hasta 10 11 BER . Tasa de error y velocidad de transmisin para diferentes tipos de canales Tipo de canal Lnea de grado voz Velocidad bps 2400 9600 14400 28800 Lnea digital tecnologa ATM 155 Mbps a 622 Mbps Lnea digital Frame Relay 2 Mbps Tasa de errores BER 1:50Kb 1:20Kb 1:10Kb 1:10Kb a 1:100Kb 1:100Mb a 1:1Gb 1:10Mb a 1:100Mb

Consideraciones generales El control de errores implica tcnicas de diseo, fabricacin de equipos y enlaces de transmisin de datos que reduzcan el porcentaje de errores. Adems incluye metodologas para detectarlos y corregirlos. Una metodologa posible es no tomarlos en cuenta. Esto parece algo trivial, pero no lo es tanto si se considera que en muchos casos, por el tipo de informacin a transmitir y el uso que la misma recibir, no es necesario que los errores sean tenidos en cuenta. Esta metodologa reduce los costos aumenta el procesamiento total. Otra metodologa empleada es la prueba de eco, que consiste en que cada vez que se recibe un carcter o una unidad menor de informacin, se retransmite de vuelta al transmisor de donde provino. En esta ltima estacin se compara la informacin enviada con la transmitida desde el receptor. Este mtodo desperdicia capacidad de transmisin pues, como mnimo, un mensaje se transmite dos veces, y en alguna oportunidad muchas veces ms. Adems, si el error se produce en el viaje de retorno, es una prdida innecesaria de tiempo. Se usa en lneas de baja velocidad y, si bien da cierto grado de proteccin, no tiene la eficiencia de otros mtodos ms refinados. Tipos de errores Segn su distribucin en el tiempo, los errores se pueden clasificar en los siguientes tipos: Errores simples o aislados: son aquellos que afectan a un solo bit cada vez y, adems son independientes entre s en cuanto al momento de ocurrencia. Errores en rfagas: son aquellos que afectan a varios bits consecutivos y ocurren en perodos indeterminados de tiempo. Errores agrupados: son aquellos que ocurren en tandas sucesivas de una cierta duracin y que no afectan necesariamente a varios bits seguidos. Mtodos de deteccin y correccin de errores Vertical (VRC) Longitudinal (LRC) Bidimensional o de doble paridad (LRC/VRC) Cclica o entrelazada Cdigo de redundancia cclica (CRC) Hamming Hagelbarger Bose Chaudhur Correccin de errores hacia delante (FEC)

Deteccin

Control de paridad Cdigos polinmicos Cdigos Auto correctores

Correccin Tcnicas

especiales de transmisin

Tcnicas especiales de repeticin automtica (ARQ)

El proceso de monitorear la informacin recibida y determinar cuando un error de transmisin ha ocurrido se denomina control del error. Las tcnicas usadas para la deteccin de errores no identifican cual bit es errneo, solamente se indica que un error ha ocurrido. El propsito de la deteccin de errores no es impedir que stos ocurran, pero previene que los errores detectados no ocurran. Las tcnicas de deteccin de errores ms comunes son: Redundancia. Involucra transmitir cada caracter dos veces. Si el mismo caracter no se recibe igual dos veces sucesivamente, ha ocurrido error en la transmisin. Codificacin de cuenta exacta. Con la codificacin de cuenta exacta, el nmero de unos en cada caracter, debe mantenerse constante. Paridad. Es el esquema de deteccin de error ms usado para los sistemas de comunicacin de datos y se usa con chequeo de redundancia vertical y horizontal. Con la paridad, un solo bit (bit de paridad) se agrega a cada caracter para forzar el total de nmeros unos en el caracter, incluyendo el bit de paridad, para que sea un nmero impar (paridad impar) o un nmero par (paridad par). Un ejemplo es la letra "C" del cdigo ASCII que es 43 hex o P1000011, donde P representa el bit de paridad. Hay 3 unos en el cdigo, no contando el bit de paridad. Si se utiliza paridad impar, el bit P se hace 0, as mantenemos el total de unos en tres, un nmero impar. Mientras que si usamos paridad par, el bit P se hace 1, siendo el nmero total de unos igual a cuatro que es un nmero par. Chequeo de redundancia vertical y horizontal (VRC y LRC): La paridad VRC es un esquema de deteccin de errores que usa para determinar si un error de transmisin ha ocurrido dentro de un caracter. Con el VRC, cada caracter tiene un bit de paridad agregado a l, antes de la transmisin. Puede usarse paridad par o impar. La paridad LRC denominada longitudinal u horizontal utiliza el mismo esquema anterior, con la diferencia que el control de la paridad se realiza en cada una de las posiciones correspondientes de los bits del grupo de caracteres de datos con lo que se forma un bloque de bits de paridad o carcter de paridad que se agregan como bits redundantes a la cadena de caracteres de datos para el control. Se puede utilizar tambin la paridad VRC y LRC combinada o matricial para determinar en qu posicin de la cadena de datos se encuentra el bit errneo. Cdigo de redundancia cclica (CRC): Es el esquema ms confiable para la deteccin de errores. Con este procedimiento, se detectan el 99.95 % de todos los errores de transmisin de una cadena de bits. Se usa con cdigos de 8 bits como EBCDIC o cdigos de 7 bits como el ASCII, cuando no se utiliza la paridad (8 bit). El procedimiento se basa en la inclusin de bits redundantes que se agregan a la cadena de bits de datos (trama genrica), obtenidos del resto de una divisin no convencional. Se divide el polinomio dividendo (trama genrica de bits) por un polinomio divisor normalizado de bits, se descarta el cociente y se toman los bits del resto de la divisin que se agregan a la trama genrica para su transmisin y control. Deteccin de errores mediante control de la paridad Se basa en aadir a la secuencia de bits de informacin transmitidos, otros bits de control adicionales. Estos bits de control no transportan informacin alguna, sino que solamente se utilizan para la verificacin de la paridad de secuencia de bits de datos. Para la verificacin de la paridad existen cuatro mtodos posibles:

Control de paridad vertical (VCR). Control de paridad longitudinal (LCR). Control de paridad bidimensional (LCR/VCR). Control de paridad entrelazada o ccilica. En cualquiera de estos mtodos la paridad puede ser par o impar. Control de la paridad vertical (VRC) Conocido como VRC (Vertical Redundancy Check), se aplica a cada carcter o byte, y su uso est relacionado fundamentalmente con el cdigo ASCII. Consiste bsicamente en aadir un bit adicional al conjunto de 7 bits que constituyen el carcter en el cdigo mencionado. El Cdigo ASCII se forma con 7 bits de datos desde 0000000 al 1111111 (del 0 al 7F en hexadecimal) ms el bit de paridad. En el transmisor, se efecta el clculo del bit de paridad correspondiente a cada carcter y se transmite carcter por carcter. Al recibirse en el receptor estos 8 bits, se recalcula nuevamente la paridad y se verifica con el criterio utilizado en el transmisor (paridad par o impar). Si son iguales los bits de paridad, se da por aceptado que el carcter lleg sin error, y si son diferentes, se notifica por algn mtodo al transmisor del error. El grave inconveniente de este mtodo es que no se puede detectar la doble inversin de bits, que se produce cuando hay un doble error en un byte que afecta simultneamente a dos unos, transformndolos en cero, o viceversa. Si esto ocurre, la paridad resultante del carcter ser correcta, pero evidentemente el dato transmitido es errneo. Ejemplo: Carcter transmitido con el bit de paridad par: 0 1101111 Carcter recibido con doble inversin, bit 1 y 3 (doble error) con el bit de paridad par calculado: 0 1101010 Control de paridad longitudinal (LRC) La paridad LRC (Longitudinal Redundancy Check) denominada longitudinal u horizontal utiliza el mismo esquema anterior, con la diferencia que el control de la paridad se realiza en cada una de las posiciones correspondientes de los bits del grupo de caracteres de datos con lo que se forma un bloque de bits de paridad o carcter de paridad que se agregan como bits redundantes a la cadena de caracteres de datos para el control. Al finalizar el bloque de N caracteres, se transmitir un carcter completo denominado Carcter de Control del Bloque, ms conocido por su expresin en ingls Block Check Carcter (BCC). El transmisor realiza el clculo de la paridad en cada carcter y luego para todo el bloque generando un BCC que se transmite en esta cadena de bytes. El receptor, cuando recibe esta cadena, recalcula la paridad de los bytes de datos y la BCC. Si los BCC son iguales, se da por aceptado el bloque de caracteres, caso contrario, se notifica por algn mtodo al transmisor del error ocurrido en la cadena. D1 1 1 1 0 0 1 0 0 D2 1 1 1 0 0 0 0 1 D3 0 0 0 0 0 1 1 0 D4 1 1 1 0 1 1 1 0 D5 0 1 0 1 0 1 0 1 BCC 1 0 1 1 1 0 0 0

BP1 BP2 BP3 BP4 BP5 BP6 BP7 BPV

Control de paridad bidimensional (VRC/LRC) Se puede utilizar tambin el control de la paridad VRC y LRC en forma combinada o

matricial para determinar en qu posicin de la cadena de datos se encuentra el bit errneo. Ejemplo: Bytes transmitidos: D1 0 B1 1 B2 1 B3 0 B4 0 B5 0 B6 0 B7 VRC 0 D2 0 1 0 1 1 1 1 1 D3 0 1 0 0 0 1 1 1 D4 1 1 0 1 0 1 0 0 D5 0 0 0 0 0 0 0 0 D6 1 1 1 1 1 1 1 1 D7 0 1 0 1 0 1 0 1 D8 1 1 1 1 0 0 0 0 LRC 1 1 1 1 0 1 1 0

Bytes recibidos con un bit de error en la posicin de la fila 4, columna 6 de la tabla de bits: D1 0 B1 1 B2 1 B3 0 B4 0 B5 0 B6 0 B7 VRC 0 D2 0 1 0 1 1 1 1 1 D3 0 1 0 0 0 1 1 1 D4 1 1 0 1 0 1 0 0 D5 0 0 0 0 0 0 0 0 D6 1 1 1 0 1 1 1 0 D7 0 1 0 1 0 1 0 1 D8 1 1 1 1 0 0 0 0 LRC 1 1 1 0 0 1 1 0

Al efectuar el control de la paridad VRC y LRC en el receptor, se verifica un error VRC en el dato N 6 y un error LRC en la posicin del bit N 4 que sirve para determinar en forma matricial que hay un error en esa posicin de la cadena transmitida. Control de paridad entrelazada o cclica Es un procedimiento que proporciona un nivel de deteccin de los errores de mayor calidad que el mtodo VRC y menor que el LRC. Este mtodo requiere de dos bits adicionales para el control de la paridad. En la figura siguiente se puede observar una palabra de seis bits de informacin y un esquema que indica grficamente la forma en que trabaja este procedimiento. El primer bit de paridad proporciona la paridad de los bits primero, tercero y quinto, mientras que el segundo proporciona la paridad de los bits segundo, cuarto y sexto. Carcter transmitido: 010101 Generacin de la paridad cclica: X 0 1 X Bits X 0 1 X de datos X 0 1 X 0 BP1 1 BP2 Control de errores por el mtodo de redundancia cclica o polinomial (CRC) Conceptos generales del procedimiento Este mtodo, conocido tambin como polinomial, permite la verificacin de todos los bits del mensaje mediante la utilizacin de un algoritmo matemtico. Bsicamente,

consiste en dividir el mensaje de informacin que se quiere enviar, por un polinomio conocido, junto con el resto de la divisin en el transmisor y enviarlo al receptor. Cuando se recibe esta trama generadora, el receptor vuelve a efectuar la divisin por el polinomio conocido, y si el resto de la divisin es cero, se interpreta que el mensaje llego sin error, caso contrario, se notifica al transmisor del error mediante otro procedimiento. Como resultado de esta divisin, se obtendrn otros dos polinomios, denominados cociente y resto. Este ltimo se transmite con la secuencia de bits sobre la que se quiere efectuar el control de errores. En el receptor se reciben el mensaje a controlar junto con el polinomio del resto de la divisin. El mtodo se basa en la deteccin de errores por medio de operaciones aritmticas con polinomios que utilizan la tcnica conocida como de mdulo 2, en la que no hay trminos de acarreo para la suma, ni de prstamo para la resta. Estas operaciones son realizadas con circuitos digitales convencionales que ejecutan la funcin OR EXCLUSIVA. Para una mayor comprensin de lo expuesto, se muestra una operacin de suma y luego otra de resta. Ejemplo de suma: 11101001 + 10011100 01110101 Ejemplo de resta: 11010001 -10010110 01000111 Como ejemplo, el mensaje 11011011 puede ser expresado como un polinomio de grado n = 7 porque tiene 8 trminos desde el grado cero:

1x 7 + 1x 6 + 0 x 5 + 1x 4 + 1x 3 + 0 x 2 + 1x1 + 1x 0 = x 7 + x 6 + x 4 + x 3 + x1 + 1
Los trminos correspondientes a los bits de valor cero se anulan, y los bits de valor uno, toman la forma de X elevado a una potencia de la posicin del bit dentro de la secuencia a transmitir. Forma de ejecutar el procedimiento: 1. Definimos un polinomio M(x) de grado n con los bits del mensaje. 2. Definimos un polinomio G(x) de grado r (generador). 3. Definimos un polinomio auxiliar de valor X r de grado r ms alto que tenga G(x). 4. El grado n del polinomio M(x) debe ser: n>>r. 5. Se forma un polinomio que contenga (r+n) bits, de la forma M(x) X r (recordar que M(x) es de grado n). 6. Se divide el nuevo polinomio formado de la forma M(x) X r por el polinomio generador G(x). 7. De dicha divisin se obtendr un polinomio resto R(x) que siempre debe tener un nmero de bits igual o menor que r, grado del polinomio resto. 8. Finalmente, se procede a obtener un polinomio que denominaremos T(x), que es el polinomio a transmitir. ste resulta de restar, mediante el mtodo de mdulo 2, los bits correspondientes al polinomio M(x) X r y del polinomio resto R(x). Los pasos que se realizan son: 1. M(x) X r / G(x) = C(x) + R(x), donde C(x) es el cociente de la divisin y que no se utiliza o se descarta.

2. T(x) = M(x) X r + R(x) 3. Como se puede observar, el polinomio T(x) ser siempre divisible por el polinomio generador G(x). 4. Si se introducen errores en la transmisin se recibir: T(x) = T(x) + E(x), donde E(x) ser la componente de error y entonces el polinomio recibido deja de ser divisible por el polinomio generador, siempre que este ltimo sea bien escogido (por ello el uso de estos polinomios normalizados). En general, resulta muy poco probable que E(x) no sea detectable. Polinomios generadores En particular, tres polinomios se han convertido en normas usadas internacionalmente. En los tres polinomios, el trmino (x+1) est contenido como factor primo. Polinomio CRC-16: se usa para caracteres codificados con 8 bits y cuyo polinomio es el siguiente:

P( x) = x 16 + x 15 + x 2 + 1
Este polinomio generador es capaz de detectar entre otros: *Errores simples: 100% *Errores dobles: 100% *Errores impares: 100% *Errores en rfagas: 100% para rfagas menores a 17 bits. 99,997 % para rfagas de hasta 17 bits. 99,998 para rfagas mayores a 17 bits. Polinomio normalizado por la UIT-T: el CCITT, sobre la base de pruebas prcticas con diversas opciones, ha normalizado el siguiente polinomio generador:

P( x) = x 16 + x 12 + x 5 + 1
Su rendimiento es igual al anterior. Polinomio CRC-12: est indicado para caracteres codificados con 6 bits. Su forma es la siguiente:

P( x) = x 12 + x 11 + x 3 + x 2 + 1
Para finalizar con este mtodo, daremos un ejemplo de deteccin de errores por CRC. Sea un mensaje 1101011011 y un polinomio generador de la forma G ( x) = x 4 + x + 1 . Determinar: 1) El resto de la divisin R(x). 2) La trama de bits T(x) enviada por el transmisor. 3) La verificacin del error en el receptor. Resolucin: 1. Para determinar el resto de la divisin, primero debemos efectuar los siguientes pasos: 1.1 Definimos un polinomio M(x) de grado n con los bits del mensaje, es decir: M(x) = x9 + x8 + x6 + x4 + x3 + x +1 1.2 Definimos los bits del polinomio G ( x) = x 4 + x + 1 G(x) de grado r como: 10011 1.3 Definimos el polinomio auxiliar X r como: x4.

1.4 Definimos el polinomio M ( x) x r = ( x 9 + x 8 + x 6 + x 4 + x 3 + x + 1) x 4 .

M ( x) x r = x 13 + x 12 + x 10 + x 8 + x 7 + x 5 + x 4
1.5 Definimos los bits del polinomio M ( x) x r = x 13 + x 12 + x 10 + x 8 + x 7 + x 5 + x 4 como: 11010110110000 De esta manera, ya tenemos los bits del dividendo y del divisor para efectuar la divisin no convencional mediante una funcin or exclusivo de mdulo 2 para la resta en el dividendo hasta obtener el resto de la divisin: 11010110110000/10011 10011 1 1 0 0 0 0 1 0 1 0 _ no se tiene en cuenta 010011 10011 0000010110 10011 0010100 10011 0 0 1 1 1 0 _ resto o residuo El resto de la divisin se trunca en los ltimos 4 bits, es decir que vale: 1 1 1 0 2. La trama T(x) enviada por transmisor vale: 1 1 0 1 0 1 1 0 1 1 1 1 1 0, donde los cuatro ltimos ceros de la trama generadora son ocupados por el resto de la divisin. 3. El control del error en el receptor se realiza dividiendo T(x) / G(x), verificando el residuo de la divisin. 11010110111110/10011 10011 1100001010 010011 10011 0000010111 10011 0010011 10011 0 0 0 0 0 0 _ resto Como el resto de la divisin da cero para todos los bits del residuo, significa que el mensaje ha llegado sin error. Caso contrario, si se hubiera producido un error en cualquiera de los bits de la trama T(x), el resto sera diferente de cero. Correccin de errores Hasta aqu hemos considerado solamente la deteccin de los errores, sin embargo, a partir de la verificacin de la existencia de los mimos, se pueden adoptar dos posturas diferentes: corregirlos o no tomarlos en cuenta. Los mtodos ms comunes para la correccin de errores son: Sustitucin de smbolos. Se disea para usarse en un ambiente humano, es decir, en la terminal de recepcin. Se analizan los datos recibidos y se toman decisiones sobre su integridad, y todo esto es llevado a cabo por la persona que est a cargo del sistema. Si un caracter se recibe con error, en vez de revertirse a un nivel superior de correccin de errores o mostrar el caracter errneo, un caracter nico que es indefinido por el cdigo de caracteres, se sustituye por el caracter malo. Si por ejemplo, el mensaje "Comunicacin" se recibe con un error en el ltimo caracter, se mostrara como "Comunicaci". Un operador puede discernir el mensaje correcto por inspeccin, y no se necesita la retransmisin. Pero si el mensaje no se puede descifrar, es necesario la retransmisin.

Retransmisin (ARQ). Es volver a enviar un mensaje, cuando se recibe una seal de error. La terminal de recepcin automticamente pide la retransmisin de todo el mensaje mediante un aviso al transmisor. La retransmisin tambin se llama ARQ, que significa peticin automtica para retransmisin. Seguimiento de correccin del error hacia delante (FEC). Es el nico esquema de correccin del error que detecta y corrige los errores de transmisin, automticamente del lado receptor, sin pedir retransmisin. Con FEC, se agregan bits redundantes al mensaje y se lo codifica antes de la transmisin. El receptor realiza la decodificacin, control del error y correccin automtica del o los bits errneos. Uno de los tantos mtodos conocidos es a travs de la codificacin de Hamming, que se basa en la inclusin de bits redundantes colocados en determinadas posiciones de una cadena de bits de datos para formar un cdigo que permite el control para la deteccin y la correccin de un bit errneo en una cadena de bits transmitidos. Para la deteccin y correccin de errores de ms de un bit en una cadena de bits transmitidos, existen otros cdigos mas complejos. Tcnicas de correccin de errores Consideraciones generales: Existen dos estrategias fundamentales para la correccin de errores: _ Correccin hacia delante. _ Correccin hacia atrs. Si bien resulta casi imposible corregir la totalidad de los errores, la mayora de las tcnicas que normalmente se emplean, como se ha visto anteriormente, llegan a corregir el 99,99% de los mismos. En algunas aplicaciones, la no correccin de errores, puede producir problemas graves. Imaginemos, por ejemplo, una aplicacin bancaria y nos daremos cuenta de los daos que se podran producir si no se resuelve adecuadamente la correccin de los errores. De ah la importancia de este tema en el diseo de cualquier sistema. Correccin hacia atrs: Consiste en el uso de sistemas de deteccin de errores. Cuando se detecta un error en el equipo receptor, ste solicita al equipo transmisor la repeticin del bloque de datos transmitidos. De ah la llamada correccin hacia atrs. Este sistema implica la retransmisin de los datos tantas veces como sea necesario, hasta que sean recibidos libre de errores. De esto se desprende la importancia de una buena eleccin de la velocidad de modulacin en el caso de las transmisiones por canales analgicos mediante mdems de datos. Se puede apreciar claramente que cuando se eligen velocidades muy altas, respecto de las que el canal de comunicaciones realmente puede soportar, los errores provocan una prdida de tiempo mayor que la ganancia que presumiblemente se iba a obtener con una velocidad superior. Dicho en otras palabras, se produce la paradoja de que aumentando la velocidad de modulacin disminuye la velocidad real de transferencia de datos, que en ltima instancia, es la que ms interesa al administrador del sistema informtico. Correccin hacia delante: Este tcnica se denomina tambin FEC (Forward Error Correction), se basa en el uso de cdigos autocorrectores que se disean sobre la base de sistemas de codificacin redundante y corrigen los errores detectados en la misma estacin que recibe el bloque de datos. Aunque estos mtodos hacen jnnecesaria la retransmisin, no son neutros al usuario, pues para posibilitar la correccin en destino deben enviar un nmero de bits varias veces superior al que se necesita cuando se utilizan cdigos convencionales.

Sin embargo, en muchas aplicaciones es necesario el uso de este tipo de cdigo porque no resulta posible o conveniente pedir la retransmisin de los datos, ya sea por razones de seguridad o por necesidades de la misma operacin del sistema informtico asociado. Correccin de errores mediante el uso de Tcnicas Especiales de Transmisin Retransmisin de los datos errneos: Diversos dispositivos de las rede de transmisin de datos, poseen capacidad para detectar errores y cuando los detectan, piden su retransmisin inmediata. Este mtodo de deteccin del error y su retransmisin es la manera menos costosa y ms sencilla de reducir errores en la transmisin. La correccin por retransmisin requiere una tecnologa sencilla y poca capacidad de memoria. Una vez detectada la existencia de un error (por intermedio del o los bits de paridad o por cdigos de redundancia cclica), el mtodo consiste en pedir la retransmisin del carcter o grupos de caracteres hacia el receptor. Requerimiento automtico de repeticin: Tambin conocido como ARQ (Automatic Retransmissin Request), se utiliza solamente entre dos estaciones. Este sistema se suele denominar control por medio del eco o echo checking. El sistema consiste en la transmisin de pequeos bloques de datos, luego, la fuente espera que la estacin receptora le enve un nuevo requerimiento para la transmisin de un nuevo bloque de datos. Si el receptor hubiera detectado un error, requerir la retransmisin del bloque anterior. Cada bloque tiene 8 caracteres de 7 bits cada uno. En caso de detectarse un error, el proceso puede llegar a repetirse hasta un determinado nmero de veces, en general 32, pasando luego el equipo a la posicin de reencendido (restart). La mayor ventaja de este mtodo es que prcticamente garantiza una transmisin de datos, libre de errores, suponiendo que el enlace es posible. Las desventajas son: _ El enlace es factible solamente entre dos estaciones al mismo tiempo. _ El sistema ARQ es ms lento que el de Correccin de Errores hacia delante (FEC), an cuando no existan errores que corregir, y ser mucho ms lento a medida que se incremente el nmero de errores. _ La estacin receptora debe tener en operacin un equipo transmisor para acusar recibo y solicitar la retransmisin. Sin embargo, siempre que este mtodo pueda ser usado, resulta ser el ms efectivo y, por lo tanto, el ms usado. En particular, se emplean para la transmisin de bloques de ms de 512 bytes. La peticin automtica de retransmisin (ARQ) es una tcnica basada en comprobar si los datos recibidos contienen errores y solicitar de forma automtica una repeticin de la transmisin. Puede utilizarse un cdigo CRC para determinar si los datos del bloque contienen errores. Si el CRC calculado en el receptor detecta errores enva un smbolo de reconocimiento negativo (NAK) al transmisor. En caso de que la comprobacin sea satisfactoria enva un smbolo de reconocimiento positivo (ACK). El transmisor debe almacenar los bloques transmitidos en un buffer adecuado hasta que reciba confirmacin. Normalmente, el nmero de bloques de informacin o tramas que se pueden encontrar sin confirmacin en cualquier instante est limitado por un valor denominado en algunos protocolos ancho de la ventana de emisin. Cuando el nmero de bloques de informacin que no han recibido confirmacin supera el valor de la ventana de emisin, el emisor deja de enviar datos y queda a la espera de que el receptor confirme los datos pendientes, enviando en algunas ocasiones mensajes de interrogacin, pero sin enviar datos. Con esto se evita tener que disponer de un buffer de emisin demasiado grande y al mismo tiempo da la posibilidad al receptor de controlar parcialmente su mecanismo de recepcin y confirmacin.

10

Existen tres formas bsicas de ARQ: 1. Envo y espera: el sistema espera la confirmacin por parte del receptor de cada uno de los bloques. En caso de que se reciba un NAK, el bloque original se retransmite y en caso de que se reciba un ACK se contina con el siguiente bloque. La mayor desventaja de este mtodo son los largos perodos en los que el canal permanece inactivo pero tiene la ventaja de que el protocolo es sencillo. 2. Envo continuo no selectivo: se lo denomina tambin retroceda n necesitan emplear un canal full-dplex para enviar por un canal los bloques al receptor y por el otro de retorno, mandar simultneamente las seales ACK y NAK de los bloques que se estn recibiendo. El transmisor debe guardar previamente los N bloques en un buffer para poder retransmitirlos cuando sea necesario. En estos protocolos, por ejemplo, si se guardan 5 bloques, ante la recepcin de un NAK, el transmisor registra el suceso y busca en el buffer el nmero previo al suceso y retransmite el bloque errneo juntamente con los bloques restantes aunque no se registren errores hasta que se reciba un ACK de fin de bloque. El protocolo SDLC especifica que pueden emitirse hasta 7 bloques de informacin antes de que se reciba una seal de confirmacin, de modo que N puede valer como mximo, 7. 3. Envo continuo selectivo: permiten que el transmisor enve datos hasta que se recibe un NAK. Solamente el bloque errneo que se identifica al recibirse la seal NAK, es el que se retransmite. Las tcnicas ARQ no necesitan que se aada tanta redundancia de bits a los distintos bloques de datos como sucede con los cdigos auto correctores ya que permiten al emisor que controle la comunicacin, interrumpiendo su actividad en caso de no recibir respuesta. Si las tasas de error son elevadas, los sistemas ARQ pueden verse saturados por las peticiones reiteradas de retransmisin. La siguiente figura muestra los tres mtodos bsicos de ARQ. Ms informacin leer bibliografa recomendada.
Transmisor
1 2 3 3 4 4 5 6

ACK Receptor
1 2

ACK
3 Error

NAK
3

ACK
4 Error

NAK
4

ACK
5

ACK
6

ACK

ENVIO Y ESPERA

Transmisor

10

ACK

NAK

ACK

NAK

ACK

Receptor

3 Error

6 Error

10

ENVIO CONTINUO NO SELECTIVO

Transmisor

10

11

12

13

14

ACK

ACK

NAK

ACK

ACK

ACK

ACK

ACK

NAK

ACK

ACK

ACK

ACK

ACK

Receptor

3 Error

8 Error

10

11

12

13

14

ENVIO CONTINUO SELECTIVO

11

Correccin de errores hacia delante: Tambin conocido como FEC (Forward Error Correction), se emplea en los casos en que hay ms de una estacin receptora y no se necesitan rplicas por parte de estas ltimas. Funciona en el modo denominado diversidad de tiempo (Time Diversity), permitiendo que cada mensaje se enve dos veces, intercalando los caracteres en diferentes instantes. Consecuentemente, la estacin receptora tiene dos oportunidades de recibir correctamente cada carcter. Este procedimiento agrega suficiente redundancia para que el receptor pueda detectar la presencia de un error, y adems ubicar la posicin del bit en donde se ha producido dicho error. Para poder realizar esta ltima operacin, la cantidad de bits que es necesario aadir es mucho mayor que la que se necesitara para poder detectar la presencia de errores. Por ejemplo si se desean enviar caracteres del 1 al 9 como los indicados en la figura, el transmisor enviar el mensaje tal como se indica.
Mensaje Dx ================================================== * * 1 * 2 * 3 1 4 2 5 3 6 4 7 5 8 6 9 *

================================================ Mensaje Rx

Los asteriscos representan los caracteres anteriores a la serie transmitida en el ejemplo. La estacin receptora examinar primero la serie Dx y luego la serie Rx. Para un mismo carcter pueden suceder los casos indicados en esta otra figura:
Posibles operaciones del FEC Caracteres Serie Dx Serie Rx Sin error Sin error Se ordena imprimir el caracter Con error Sin error Se ordena imprimir el carcter Sin error Con error Se ordena imprimir el carcter Con error Con error Se ordena imprimir un carcter especial que indica error en la recepcin

Las ventajas del sistema FEC, con respecto al sistema ARQ, son los siguientes: Se pueden transmitir mensajes a varias estaciones receptoras. Este mtodo se conoce en telecomunicaciones como transmisin por difusin (Transmisin Broadcasting). No obstante, existe una variacin del sistema de Correccin hacia delante denominada SEL/FEC (Selective FEC), por medio de la cual la estacin transmisora emite un cdigo correspondiente slo a determinadas estaciones receptoras, las cuales, consecuentemente, sern las nicas habilitadas para recibir el mensaje. No requiere el empleo de transmisores en las estaciones receptoras. Menor tiempo de transmisin. Este mtodo se usa en ciertas aplicaciones especiales, como por ejemplo, en el caso de canales unidireccionales sin retorno o en enlaces satelitales en los que se procede a transmitir muchos mensajes en una sola direccin debido a que el tiempo de retardo de las seales es muy alto. Tambin es aplicable en los sistemas digitales que trabajan en tiempo real, por ejemplo, aquellos que actan sobre un proceso industrial a partir de los valores de ciertas variables del proceso.

12

En este ltimo caso tambin se usa un mtodo combinado ARQ/FEC, a fin de recibir una confirmacin de lo transmitido en sentido inverso al cabo de un cierto nmero de mensajes. Correccin de errores mediante cdigos auto correctores Introduccin: Los mtodos de correccin de errores mediante el empleo de cdigos auto correctores se basan en cdigos que tienen la suficiente redundancia para que, una vez detectados, se puedan corregir los errores sin necesidad de proceder a la correspondiente retransmisin. La redundancia se extiende desde unos pocos bits hasta llegar, en algunos casos, al doble que represente un carcter o an a una cantidad mucho mayor que los necesarios para transmitir un carcter. Estos mtodos no son sencillos, y los hay de distintos tipos: los ms conocidos son los cdigos Hamming, Hagelbarger y Bose-Chaudhur, entre otros. Para interpretar el funcionamiento de estos cdigos, tambin llamados cdigos de accin progresiva, debemos analizar previamente el concepto denominado Distancia de Hamming. Distancia de Hamming: Es el nmero de bits en que difieren dos secuencias binarias, S1 y S2, de la misma longitud. Sea por ejemplo, la secuencia S1, que corresponde a la letra B en el Alfabeto Internacional N 5 de la UIT-T, y sean tambin las secuencias S2, S3, S4 y S5 correspondientes a otras letras del mismo alfabeto. Si comparamos bit a bit de igual peso, la primera de las secuencias con las restantes, la Distancia de Hamming estar dada por la cantidad de bits en que difieren uno a uno, los respectivos conjuntos. Los resultados de este ejemplo se muestran en la siguiente tabla:
Conjunto S1 S2 S3 S4 S5 Distancias de Hamming Representa Secuencia binaria B 0100001 C 1100001 D 0010001 E 1010001 U 1010101 Distancia -1 2 3 4

A efectos de la comparacin y del clculo de la Distancia de Hamming, se ha tomado como referencia la secuencia S1. Como se puede observar en este ejemplo, la distancia de Hamming vara de 1 a 4. La distancia de Hamming est relacionada con la probabilidad de error. En efecto, cuanto mayor sea la distancia mnima entre los bits de los smbolos de un cdigo dado, menor ser la probabilidad de cometer errores. Sin embargo, aumentar las distancias de Hamming mnima entre smbolos codificados significa codificar menos smbolos con igual nmero de bits. En otras palabras, aumentando la redundancia de bits se logra disminuir la probabilidad de ocurrencia de datos errneos pero aumenta la cantidad de bits utilizados para la codificacin de un smbolo. Para demostrar este concepto, recomendamos leer la bibliografa recomendada al final de este artculo. Para H=1, como valor mnimo de la distancia de Hamming para construir un cdigo dado no es posible detectar ni corregir ningn error, pues la alteracin de un bit de datos dar por resultado una nueva combinacin que tiene asignado otro smbolo como vlido. Para H=2, con esta distancia mnima para construir un cdigo dado, es posible detectar la presencia de un bit errneo, pero no corregirlo. En efecto, la alteracin de un solo bit da una combinacin que no tiene asignado un smbolo vlido, por lo que se puede deducir que se trata de un error. Esta situacin es la que se produce cuando se usa un bit de paridad, que permite detectar un error pero no corregirlo.

13

Para H=3, con esta distancia mnima para construir un cdigo dado es posible detectar bytes con 1 o 2 bits errneos. En efecto, la alteracin de 1 o 2 bits dar lugar a combinaciones que no representan ningn otro smbolo vlido. Adems, tambin es posible corregir los bytes que tengan un solo bit errneo, ya que si se sabe que ha habido un solo error, es posible detectar el byte con error y luego efectuar la correspondiente correccin. Este ejemplo nos permite inferir que la capacidad de deteccin y correccin de errores es funcin del valor de H, valor que hemos denominado Distancia de Hamming. En la siguiente tabla se indica la relacin entre el valor de H y la capacidad de deteccin y correccin de errores.
Deteccin correccin de errores en funcin de H Distancia de Hamming Control de errores Deteccin Correccin 1 No No 2 Uno No 3 Dos Uno 4 Tres Uno

Cdigo de Hamming Este cdigo auto corrector permite detectar y corregir errores mediante el empleo de bits de paridad con determinadas combinaciones nicas de bits de informacin.

TRANSMISOR

RECEPTOR

Algoritmo

Algoritmo

Fuente

Datos

Datos Codificados

Procesador Deteccin y auto correccin de errores

Datos decodificados

Destino

Bits de Paridad

De la tabla anterior vimos que un cdigo de distancia mnima de Hamming igual a tres permite detectar errores de dos bits y corregir errores de un bit. En general, la distancia mnima de un cdigo para que permita corregir errores de n bits debe ser: dm = 2n + 1. Los cdigos de Hamming estn basados en la adicin de p bits a un cdigo de distancia unidad de n bits, obtenindose un nuevo cdigo de n + p bits. En este nuevo cdigo se realizan p detecciones de paridad en bits seleccionados de la cadena, obtenindose un bit de paridad uno o cero segn el nmero de bits sea par o impar. El conjunto de los p bits de paridad forma un nmero en el sistema binario natural, cuyo equivalente decimal nos indica la posicin del bit errneo. En caso de que no exista error, dicho nmero debe ser cero. El nmero p de bits aadidos debe ser suficiente para permitir la deteccin y la ausencia de error en las n + p posiciones. Dado que con p bits se obtienen 2n combinaciones, se debe cumplir la relacin: 2n p + n + 1 .

14

Como ejemplo de aplicacin del cdigo de Hamming, vamos a utilizar un cdigo decimal codificado en binario natural. Si este cdigo BCD adoptado es de n = 4 bits, el nmero de bits que se deben aadir es 3, dado que 23 = 4 + 3 + 1. Para detectar los 7 posibles errores de un bit en cada una de las posiciones y la ausencia del error, son necesarias 8 combinaciones binarias que denominaremos correctoras de error. Dichas combinaciones se obtienen mediante 3 bits que denominaremos C1, C2 y C3, juntamente con el nmero decimal equivalente al binario formado por ellos que ha de indicar la posicin errnea. En la siguiente tabla se presentan todas las combinaciones de los bits C1, C2 y C3.
N decimal equivalente

C3 C2 C1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1

0 1 2 3 4 5 6 7

El bit C1, toma el valor 1 si se producen errores en los bits de posicin b1, b3, b5 y b7 de las combinaciones del cdigo. Si el nmero de unos existentes en esas cuatro posiciones es siempre par, un error en cualquiera de esos cuatro bits lo convierte en impar. Por lo tanto, C1 debe valer 1 si el nmero de unos en la posiciones b1, b3, b5 y b7 es impar, y cero en caso contrario. La funcin lgica que cumple las condiciones especificadas es la funcin lgica OR EXCLUSIVA. Es decir:

C1 = b1 b3 b5 b7 C2 = b2 b3 b6 b7 C3 = b4 b5 b6 b7
Para lo cual ha de cumplirse la condicin de que el nmero de unos debe ser par en las combinaciones b2, b3, b6, b7 y b4, b5, b6,b7. Para lograr estas condiciones se deben generar adecuadamente los tres bits de paridad que se aaden a los cuatro bits de datos de la combinacin de datos BCD. Dado que b1, b2 y b4 solo aparecen una vez en cada una de las expresiones anteriores, los elegiremos como bits aadidos a la combinacin BCD de datos formada por b3, b5, b6 y b7 de la cadena. El bit b1 debe valer 1 si el nmero de unos de b3,b5 y b7 es impar, y cero en caso contrario, por lo tanto:

b1 = b3 b5 b7 b2 = b3 b6 b7 b3 = b5 b6 b7
En consecuencia, se puede formar una tabla para el cdigo de Hamming que represente los 4 bits de datos y los 3 bits de paridad, en sus respectivas posiciones y con los bits de menor a mayor peso de derecha a izquierda:

15

N decimal equivalente

0 1 2 3 4 5 6 7 8 9

I7 I6 I5 p 4 I3 p 2 p 1 b7b6b5b4b3b2b1 0000000 0000111 0011001 0011110 0101010 0101101 0110011 0110100 1001011 1001100

En la tabla, se observa que para 4 bits de datos, se necesitan 3 bits adicionales de paridad. La posicin de estos bits de paridad en la cadena de 7 bits, estn en relacin al valor 20, 21,22, y as sucesivamente, que corresponden a la posicin 1 para p1, 2 para p2 y 4 para la p3. El bit b1 que corresponde a p1 controla las posiciones b3, b5 y b7 de los datos de informacin. El bit b2 que corresponde a p2 controla las posiciones b3, b6 y b7 de los datos de informacin; y el bit b4 que corresponde a p3 controla las posiciones b5, b6 y b7 de los bits de datos de informacin. A partir de esta tabla, el transmisor genera estos siete smbolos codificados. Cuando llegan al receptor, se hace la verificacin del error a travs de los cdigos correctores C1, C2 y C3. Si las tres comprobaciones dan cero, no hay error. Caso contrario, el nmero binario formado por C3, C2 y C1 indica el nmero decimal equivalente del lugar de la cadena donde se ha producido el error. Ejemplo: Dada la cadena de bits 0110100 que corresponde al nmero decimal 7, generada por el transmisor, comprobar el error si en el receptor se ha recibido la cadena 0100100. Para detectarlo, comprobaremos el valor lgico de C1, C2 y C3 en la cadena 0 1 0 0 1 0 0.

C1 = b1 b3 b5 b7 = 0 1 0 0 = 1 C2 = b2 b3 b6 b7 = 0 1 1 0 = 0 C3 = b4 b5 b6 b7 = 0 0 1 0 = 1
La combinacin de C3, C2 y C1 es 101, equivalente al nmero decimal 5 que es la posicin desde derecha a izquierda del bit errneo donde el receptor procede a invertir el bit. El error puede producirse en cualquier lugar de la cadena ya sea en la posicin de los datos o de los bits de paridad y la comprobacin es siempre vlida. Recordemos que para detectar y corregir un bit errneo en una cadena de un cdigo de 4 bits de datos hemos necesitado 3 bits adicionales como mnimo para detectar y corregir un error de un bit de una cadena de 7 bits de un cdigo auto corrector de Hamming. La tasa de error en el diseo de sistemas de transmisin de datos. La presencia de errores en el diseo de los sistemas de transmisin de datos no puede ser omitida nunca. Por este motivo, cuando se disea o se implanta un determinado sistema con su correspondiente tecnologa asociada, deben tenerse presente los siguientes aspectos:

16

La tasa de error, tanto para las comunicaciones locales como para las remotas. En el caso de las comunicaciones locales, la tasa de error es normalmente menor que en las comunicaciones remotas. Los medios para recuperar la informacin afectada por errores. La cantidad de informacin a transmitir por unidad de tiempo: que se corresponda con el concepto definido como velocidad real de transferencia de datos. La velocidad de transmisin que es necesaria para satisfacer los requerimientos del sistema. Basndose en los aspectos anteriores, se deber determinar: El ancho de banda del canal que ser necesario usar. El tipo de control de errores que se requiere. Los medios de comunicaciones y elementos tcnicos que podrn cumplir con dichos requerimientos. Bibliografa recomendada: Comunicaciones y Redes de Computadores- William Stalling. Edit. Prentice Hall Teleinformtica- Antonio R. Castro Lechtaler y Rubn J. Fusario. Edit. Revert Redes de Computadoras Andrews S. Tanenbaum Edit. Prentice Hall Tcnicas Digitales Enrique Mandado Edit. Marcombo

17

You might also like