Profesora Maria Elena Villapol maria.villapol@ciens.ucv.ve Comunicacin de Datos Error en un Bit de una Trama Comunicacin de Datos Errores en Mltiples Bits de una Trama: Errores en Rfagas (burst error) Comunicacin de Datos Tcnicas de deteccin y correcin de errores Deteccin Cdigos de bloques Lineales Cdigo de Paridad Cclicos Chequeo Ciclico Redundante (CRC) Correccin Cdigos de bloques Lineales Cclicos Chequeo Ciclico Redundante (CRC) Cdigo de Hamming Cdigo Convolucionales Comunicacin de Datos Cada bloque de k bits es codificado con un bloque de n bits denominado palabra cdigo (codeword). La palabra cdigo es la que se transmite. En el receptor varias cosas pueden pasar: Si no hay errores, la salida de decodificador es igual al cdigo original. Para ciertos errores, el decodificador puede detectar y corregir los mismos. Para ciertos patrones de errores, el decodificador puede detectar el error pero no corregirlo. Para ciertos errores el decodificador no puede detectar el error y produce una seal de salida que difiere de la original. Codificacin por Bloques: Cdigos para la deteccin de errores Comunicacin de Datos Deteccin/Correccin de Errores Palabra cdigo Comunicacin de Datos Aritmtica Mdulo N, N=2 Comunicacin de Datos Principios de la deteccin de errores El algoritmo suma (n-r) bits al bloque de datos de k bits. Los k bits en la seal original se transmiten en la palabra cdigo de n bits. La distancia de Hamming, d(v1,v2) se define como el nmero de bits en los cuales v1 y v2 difieren. La distancia mnima para una palabra cdigo que consiste de w1,w2, ws donde s = 2 m . dmin = min ij [d(wi,wj)] Por ejemplo, si v1 = 011011 y v2 = 110001 d(v1,v2) = 3 La funcin de la forma vc = f(vd) donde vd es un vector de data de k bits y vc la palabra cdigo. El radio de redundancia (ie redundancia) es (n-k)/k. La tasa del cdigo es k/n y mide la cantidad adicional de ancho de banda que se necesita. Comunicacin de Datos Las siguientes consideraciones se deben tener en el diseo de un cdigo: Dado k y (n-k), nos gustara el valor mas grande de dmin. El codificador debera ser sencillo requiriendo un mnimo de memoria y tiempo de procesamiento. Nos gustara un pequeo nmero de extra bits (n-k), para reducir el ancho de banda. Nos gustara una gran nmero de extra bits (n-k) para reducir la tasa de error. Note que los dos ltimos objetivos estn en conflicto y deben negociarse. Principios de la deteccin de errores Comunicacin de Datos Principios de la deteccin de errores Para detectar d errores se requiere una distancia de d+1. Por ejemplo, bit de paridad. Para corregir d errores, se requiere una distancia de 2d+1. Comunicacin de Datos Ejemplo un Cdigo de Bloque El esquema 4B/5B de codificacin discutido anteriormente es un ejemplo de codificacin por bloques. En este esquema, k=4 y n = 5. Tenemos entonces 2 k = 16 y 2 n = 32 palabras cdigos. Tenemos 16 de las 32 palabras cdigos para la transferencia de mensajes y el resto son usados para otros procesos o no usados. Comunicacin de Datos Proceso de Codificacin y Descodificacin en la Codificacin por Bloques Comunicacin de Datos Cdigos de Bloques Lineales En un cdigo lineal por bloques el OR exclusivo de cualquiera palabra cdigo crea otra palabra cdigo vlida. Comunicacin de Datos Bit de Paridad Es un cdigo de deteccin de errores simples con n= k+1 y dmin = 2
Comunicacin de Datos Bit de Paridad Sumar un bit al final de un bloque de data. De forma tal que, el carcter tiene: Un nmero par de unos (paridad par). Un nmero impar de unos (paridad impar).
Ventajas: Simple Desventajas: Un nmero par de errores no se pueden detectar. Ejemplos (paridad par): Data = 1110011 Transmite (A)= 11100111 Llega = 11100101 Clculo en el receptor (B) = 11100100 |Distancia A-B| = 2
Comunicacin de Datos Cdigo de Paridad C(5,4) Comunicacin de Datos Bit de Paridad: Codificador/Decodificador Comunicacin de Datos Bit de Paridad r0 = a3 + a2 + a1 + a1 (mdulo-2) Sndrome (calculado por el receptor) s0 = b3 + b2 + b1 + b0 + q0 (mdulo-2) Comunicacin de Datos Cdigo de Hamming Diseado para corregir errores de bit simples. Familia de bloques de correccin de error (n,k) con los siguientes parmetros: Longitud del bloque: n = 2 m 1 Nmero de bits de dato: k = 2 m m 1 Nmero de bits de chequeo: n k = m Distancia mnima: d min = 3 En el receptor el resultado de la comparacin (XOR de la seal recibida y otra de la calculada) es realizada. El resultado se conoce como palabra sndrome.
Comunicacin de Datos Cdigo de Hamming La palabra sndrome tiene un rango de 2 (n-k) 1. 0 indica no error entonces no se cuenta. Como un error puede ocurrir en los k bits de data o (n-k) bits de chequeo: 2 (n-k) - 1 >= k+(n-k) = n Esto nos permite calcular el nmero de bits de chequeo. Comunicacin de Datos Cdigo de Hamming Codificacin: k bits de datos + (n -k) bits de chequeo. Decodificacin: compara los (n-k) bits recibido con los (n -k) bits calculados bits usando XOR. Los (n-k) bits resultantes se llaman palabra sndrome. El rango del sndrome esta entre 0 y 2 (n-k) -1. El sndrome indica: Si contiene solo 0s, no se han detectados errores. Si el sndrome contiene un solo bit en 1 entonces un error ha ocurrido en uno de los bits de chequeo. Por lo tanto, no se requiere correccin. Si el sndrome contiene ms de un bit en 1, entonces el valor numrico del sndrome indica la posicin de un bit de data en error. El bit en error es invertido para su correccin.
Comunicacin de Datos Cdigo de Hamming-Ejemplo Bloque de datos = 00111001 Comunicacin de Datos Cdigo de Hamming-Ejemplo Bit con error Comunicacin de Datos Chequeo Cclico Redundante (CRC) Para un bloque de k bits, el transmisor genera una secuencia de n-k = r bits. El transmisor transmite una secuencia de n bits, la cual es exactamente divisible por un nmero. La secuencia de n-k bits se llama secuencia de chequeo de trama (frame check sequence, FCS).
Lgica aritmtica T = trama de n bits. M= mensaje de k bits. F = secuencia FCS de n-k bits. P = divisor con un patrn predeterminado. Tiene (n-k)+1 bits.
Comunicacin de Datos El objetivo es que T/P no tenga resto. Es claro que: T = 2 r M + F 2 r M desplaza el mensaje a la izquierda y lo rellena con ceros (0). Dividir 2 r M entre P: 2 r M/P= Q + R/P Usemos R como el FCS T = 2 r M + R y T/P = 2 r M /P+ R/P = Q + (R/P + R/P) = Q As que no hay resto. Esto es por la suma modulo 2 basada en la operacin OR-exclusivo: 0 0 = 0 0 1 = 1 1 0 = 1 1 1 = 0. Entonces, dividir 2 r M entre P y usar el resto como el FCS. Chequeo Cclico Redundante (CRC) Comunicacin de Datos Representacin Polinomial Comunicacin de Datos CRC: Ejemplo M = 1001 (4 bits) <-> X 3 +1 P = 1011 (4 bits) <-> X 3 +X 1 +1 FCS = ? K = 4 n- k +1 = 4 n - k= r =3 Genere el mensaje a ser transmitido. Comunicacin de Datos CRC: Ejemplo - Transmisor Comunicacin de Datos CRC: Ejemplo - Receptor Caso 1 Caso 2 Comunicacin de Datos CRC usando Lgica Digital El circuito consiste de: Compuertas XOR Hasta n k compuertas XOR La presencia o ausencia de una compuerta se corresponde con la presencia de un trmino del divisor polinomial P(X). Un registro de desplazamiento Un serie de dispositivos de memoria de 1 bit. Los registros contienen n-k bits, igual a la longitud del FCS. Comunicacin de Datos Circuito del Ejemplo Comunicacin de Datos Otro Ejemplo: P(X) = X 5 +X 4 +X 2 +1 (generador predeterminado)
10.32 Comunicacin de Datos Chequeo Cclico Redundante (CRC) Se puede demostrar que los siguientes errores son detectables: Si el generador tiene mas de un trmino y el coeficiente x 0 es 1 todos los errores sencillos pueden ser detectados. Si el generador no puede dividir a x t + 1 (t entre 0 y n 1), todos los errores aislados de dos bits pueden ser detectados. Un generador que contiene un factor de x + 1 puede detectar nmeros impares de errores. Todos los errores en rfaga con L <= r sern detectados. Todos los errores en rfaga con L = r + 1 sern detectados con probabilidad 1 (1/2) r1 . Todos los errores en rfaga con L > r + 1 sern detectados con probabilidad1 (1/2) r .
Comunicacin de Datos CRC: Caractersticas Deseables Un buen generador polinomial necesita tener las siguientes caractersticas: Debera tener al menos dos trminos El coeficiente del termino x 0 debera ser 1. No debera ser divisible entre x t + 1, para t entre 2 y n 1. Debera tener el factor x + 1.
Comunicacin de Datos Generadores Polinomiales Estndares Comunicacin de Datos Correccin de Errores Las tcnicas de deteccin de errores combinadas con las tcnicas de ARQ (retransmisiones) son inadecuadas en ambientes inalmbricos porque: La tasa de error de bit es alta. En algunos casos como lo son los satlites el retardo de propagacin es largo comparado con el tiempo de transmisin de una trama. En estos casos se necesitan usar tcnicas capaces de corregir ciertos errores.
Comunicacin de Datos Proceso de Correccin de Errores hacia Adelante (Forward Error Correction, FEC) Comunicacin de Datos FEC Las siguientes condiciones se cumplen: d min >= 2t+1, el cdigo puede corregir hasta e incluyendo t bits. d min >= 2t puede corregir todos los errores <= t-1 bits y los errores de t bits pueden ser detectados. Otra forma de expresar esta relacin es: El mximo nmero de errores corregibles es: t=[(d min -1)/2] [x] el ms grande de los enteros que no excede x. El mximo nmero de errores que pueden ser detectados es: t=d min -1
Comunicacin de Datos FEC: Ejemplo k=2 y n=5 Suponga que se recibe 00100. El cual es un cdigo invlido. La distancia de Hamming a cada cdigo vlido es:
Bloque de datos Palabra Cdigo 00 00000 01 00111 10 11001 11 11110 Distancia mnima Comunicacin de Datos FEC: Ejemplo Observe que dmin entre cada cdigo vlido es 3 por lo tanto: Se pueden corregir errores de un bit. Se pueden detectar errores dobles.
Comunicacin de Datos FEC: Ejemplo Obsrvese que si ocurren dos errores no se pueden corregir. Comunicacin de Datos Checksum Usado en Internet por varios protocolos. No es usado en la capa de enlace. Comunicacin de Datos Checksum Supongamos que tenemos una lista de cinco nmeros de 4 bits que queremos enviar a un destino. Adems de enviar estos nmeros, le enviamos la suma de los mismos. Por ejemplo, si el conjunto de los nmeros es (7, 11, 12, 0, 6), enviamos (7, 11, 12, 0, 6, 36), donde 36 es la suma de los nmeros originales. El receptor aade los cinco nmeros y compara el resultado con la suma. Si los dos son lo mismo, el receptor asume ningn error, acepta los cinco nmeros, y descarta la suma. De lo contrario, hay un error en alguna parte y los datos no son aceptados. Comunicacin de Datos Checksum Podemos facilitarle el trabajo al receptor si enviamos el negativo (complemento) de la suma, llamada la suma de comprobacin (checksum). En este caso, enviamos (7, 11, 12, 0, 6, -36). El receptor puede sumar todas las cifras recibidas (incluyendo la suma de control). Si el resultado es 0, asume que no hubo error, de lo contrario, hay un error. Comunicacin de Datos Checksum Cmo podemos representar el nmero 21 en aritmtica de complemento a uno usando solamente cuatro bits? Solucin El nmero 21 en binario es 10101 (que necesita cinco bits). Podemos ajustar el bit ms a la izquierda y aadirlo a los cuatro bits ms a la derecha. Tenemos (0101 + 1) = 0110 o 6.
Comunicacin de Datos Checksum Cmo podemos representar el nmero -6 en complemento a uno usando solamente cuatro bits? Solucin En complemento a uno, la negativa o complemento de un nmero se encuentra invirtiendo todos los bits. Positivo 6 es 0110, 6 negativo es 1001. Si consideramos solamente los nmeros sin signo, esto es 9. En otras palabras, el complemento de 6 es 9. Otra forma de encontrar el complemento de un nmero en un complemento a la aritmtica es restar el nmero de 2 n - 1 (16 - 1 en este caso). Comunicacin de Datos Checksum Vamos a repetir el ejercicio anterior usando complemento a uno. El remitente inicializa el control a 0 y suma todos los elementos de datos y la suma de control, checksum (la suma de control es considerado como un elemento de datos y se muestra en color). El resultado es 36. Sin embargo, 36 no puede ser expresado en 4 bits. Los dos bits extras se envuelven y se aaden con la suma para crear el valor de la suma envuelta 6. La suma se complementa, en el valor de la suma de comprobacin 9 (15 - 6 = 9). El remitente enva ahora seis objetos de datos para el receptor incluyendo el 9 en el checksum. Comunicacin de Datos Checksum El receptor sigue el mismo procedimiento que el remitente. Suma todos los elementos de datos (incluyendo la suma de control), el resultado es 45. La suma se envuelve y se convierte en 15. El importe ajustado se complementa y se convierte en 0. Dado que el valor de la suma de comprobacin es 0, esto significa que los datos no estn daado. El receptor elimina el control y mantiene los elementos de datos. Si la suma de comprobacin, checksum, no es cero, se elimina el paquete. Comunicacin de Datos Checksum 1 1 1 0 Comunicacin de Datos Checksum Remitente: 1. El mensaje se divide en palabras de 16 bits. 2. El valor de la palabra control se establece en 0. 3. Todas las palabras, incluyendo la suma de control se suman utilizando complemento a uno. 4. La suma se complementa y se convierte en la suma de comprobacin, checksum. 5. La suma es enviado con los datos.
Comunicacin de Datos Checksum Receptor: 1. El mensaje (incluido el control) se divide en palabras de 16 bits. 2. Todas las palabras se suman utilizando el complemento a uno. 3. La suma se complementa y se convierte en el nuevo checksum. 4. Si el valor de suma de comprobacin es 0, el mensaje es aceptado, de lo contrario, se rechaza. Comunicacin de Datos Checksum F F F F F F