MATERIAL PARA DOCENCIA,  Creado por In, Carlos Alberto Amaya T.
UNAD Ing, Carlos Alberto Amaya Tarazona
INTRODUCCION  OBJETIVOS FUNDAMENTACION HAMMING CRC Agenda
Como garantizar que los datos lleguen bien a su destino? Si fallan, Como se pueden restaurar? Qué métodos existen para detectar y corregir errores? INTRODUCCION
Estudiar las técnicas de detección y corrección de errores de Hamming y CRC. OBJETIVOS Identificar los fundamentos teóricos para la detección y control de errores en una transmisión Analizar el método de Hamming  para la detección y corrección de errores Establecer el algoritmo para el desarrollo del método de Hamming Analizar el método de control de redundancia cíclica (CRC)  para la detección de errores. Establecer el algoritmo para el desarrollo del método CRC. Realizar una guía que permita mecanizar el método de Hamming y CRC.
FUNDAMENTACION ERROR de Transmisión Transmisor Receptor CANAL Ruido Térmico Ruido Impulsivo Intermodulación Se debe a Ruido de redondeo Atenuación  Cruce de líneas Eco Medio de transmisión codificación códigos detección corrección Interferencia, ruido Sistema de comunicaciones
Sistema de comunicación Flujo de información Transmisor Codificador Decodificador receptor CANAL Perturbaciones: distorsión Ruido Transforma el mensaje a formato original D y C  EL MODELO OSI FUNDAMENTACION detecta Parte el flujo en tramas y corrige los errores. Normalmente calcula un bit de chequeo para cada trama, si difiere con el de la trama, hubo error. Aplicación Parte el flujo en tramas y corrige los errores. Normalmente calcula un bit de chequeo para cada trama, si difiere con el de la trama hubo error . Presentación Sesión Transporte Red Enlace Física
Técnicas de Detección y corrección de error Transmisor Receptor CANAL Incluir bits redundantes Detecta error Solicita retransmisión Código VRC ( Vertical Redundancy Check )   Código CRC ( Cyclic Redundancy Check )  Código LRC ( Longitudinal Redundancy Check )  FUNDAMENTACION Tipos de chequeo
Técnicas de Detección y corrección de error Código VRC ( Vertical Redundancy Check )  1  2  3  4  5  6  7  8  9  10  … P1 P2 P4 P8 Transmisor Receptor CANAL Flujo de información Par Par Impar Impar sincrona Asincrona Bit de paridad FUNDAMENTACION El BIT de paridad se añade al final de cada bloque
Técnicas de Detección y corrección de error Código LRC ( Longitudinal Redundancy Check )  Transmisor Receptor CANAL paridad bidimensional  Datos se agrupan en bloque 1  2  3  4  5  6  7  8  9  10  … P1 P2 P4 P8 1  2  3  4  5  6  7  8  9  10  … P1 P2 P4 P8 1  2  3  4  5  6  7  8  9  10  … P1 P2 P4 P8 P1 P4 P2 Bloque al final FUNDAMENTACION P8
Técnicas de Detección y corrección de error Código CRC ( Cyclic Redundancy Check )  Transmisor Receptor CANAL Secuencia de comprobación de trama Trama resultante R Resto = 0 => OK 1…retransmitir  n + k bits  patrón de bits  FUNDAMENTACION Recibe mensaje Comprobaciones de redundancia: Aritmética de modulo 2 Polinomios Lógica digital
Técnicas de corrección de error Recuperar datos perdidos Incluye información redundante  (bits de paridad) Transmisor Receptor CANAL Deduce que carácter se envió Corrige (# limitado) errores   ARQ (requerimiento automático  de repetición) Hacia atrás FEC (corrección de errores hacia adelante) Pare y espere Envió continuo ACK acknowledge NAK Error Negative acknowledge señal Paraliza todo hasta confirmar Código Bloque Código árbol Con memoria Sin  Memoria FUNDAMENTACION estrategias formas
Códigos de bloque FUNDAMENTACION 1  2  3  4  5  6  7  8  9  10  … P1 P2 P4 P8 1  2  3  4  5  6  7  8  9  10  … Lineales (matrices)  No lineales (Cíclicos)
DETECCION Y CORRECCION DE ERRORES
HAMMING DETECCION Y CORRECCION DE ERRORES
1. Adicionar ciertos bits de control (llamados bits de paridad) al mensaje original. Los bits de paridad corresponden a los bits que son potencias de 2: 1,2,4,8,16, etc, según el tamaño del mensaje.   HAMMING Mecanismo 1  2  3  4  5  6  7  8  9  10  … P1 P2 P4 P8
2. El mensaje se ubica en los bits restantes   HAMMING 1  2  3  4  5  6  7  8  9  10  …
Los bits de control o paridad se calculan basados en unos criterios. Estos criterios se calculan dependiendo del tamaño del mensaje. Para una mensaje de longitud 4… HAMMING El bit de paridad 1 (P1) se calcula con la  paridad  de los bits de datos 3,5,7 El bit de paridad 2 (P2) se calcula con la  paridad  de los bits de datos 3,6,7 El bit de paridad 4 (P4) se calcula con la  paridad  de los bits de datos 5,6,7 Para otras longitudes, hay otras reglas.
4. Se envía el mensaje. El receptor  recalcula  los bits de paridad. Si no coinciden, el mensaje es errado. HAMMING 1  2  3  4  5  6  7  8  9  10  …
Enviar el siguiente mensaje:  1101 HAMMING Ejercicio 1
El mensaje se ubica en los bits correspondientes ( ya se ha dicho que las potencias de 2 son reservadas ) HAMMING 1  2  3  4  5  6  7 1 1 0 1
Los bits de control o paridad se calculan y se ubican: HAMMING (P1) -> paridad de 3,5,7:  1,1,1 = 1 1  2  3  4  5  6  7 1 1 0 1 (P4) -> paridad de 5,6,7:  1,0,1 = 0 (P2) -> paridad de 3,6,7:  1,0,1 = 0 1 0 0
Se envía el mensaje… Ocurre un error en la transmision, y el bit 5 falla HAMMING 1  2  3  4  5  6  7 1 0 0 1 1 0 0 Pero el receptor no sabe que en lugar de un 0 se envió un 1…
El receptor recalcula los bits de paridad … HAMMING 1  2  3  4  5  6  7 1 0 0 1 0 0 1 (P1) -> paridad de 3,5,7:  1,0,1 = 0 (P4) -> paridad de 5,6,7:  0,0,1 = 1 (P2) -> paridad de 3,6,7:  1,0,1 = 0
Y detecta que los bits de paridad que se recibieron son diferentes a los que se recalcularon … HAMMING 1  2  3  4  5  6  7 1 0 0 1 1 0 0 1  2  3  4  5  6  7 1 0 0 1 0 0 1 Recibidos: Recalculados: Se afectó el bit 1 y el 4.
Qué bits de datos son controlados por el bit de paridad 1 (P1) y el 4 (P4) , pero que no son controlados por P2 ? HAMMING El bit 5 (P1) -> paridad de 3,5,7 (P4) -> paridad de 5,6,7 (P2) -> paridad de 3,6,7 Porque:
Como sabe que el bit 5 estaba errado, arma de nuevo la cadena original: HAMMING 1 1 0 1 1 0 0
Ejercicios HAMMING
CRC DETECCION Y CORRECCION DE ERRORES
CRC DETECCION Y CORRECCION DE ERRORES Notación Polinomial El código cíclico es aquel en el que cualquier rotación cíclica (lo que sale por un lado, entra por el otro) de una palabra código produce otra palabra código válida. Los códigos cíclicos son una familia de códigos bloques lineales.  Para representar los códigos cíclicos se presenta cualquier número binario de n posiciones como un polinomio de grado  (n-1) , que contienen la variable ficticia  x . Los exponentes de  x  corresponden a los números de las posiciones de la notación binaria comenzando desde el bit de mas a la derecha .
Polinomio Generador Ideal DETECCION Y CORRECCION DE ERRORES La aritmética con estos polinomios es módulo 2 sin llevar. Es decir la adición y la sustracción son equivalentes a XOR La división usa XOR en lugar de sustracción y A se divide entre B si el número de bits es mayor de o igual a el número en A Todos los polinomios correspondientes a las palabras del código cíclico, deben dividirse entre g(x) sin residuo. g(x) debe ser un divisor de x – 1 El bit mayor y el menor del generador deben ser 1.
EJEMPLO DETECCION Y CORRECCION DE ERRORES Escribir en forma polinomial la palabra de código binario: 10101 En este caso obtenemos el polinomio, digamos g(x), así: g(x)= 1.x  + 0.x + 1.x + 0.x + 1.x   Entonces: g(x)= x  + x + 1   4 4 2 3 2 1 0
EJEMPLO DETECCION Y CORRECCION DE ERRORES 0001101 x + x + 1   3 2 Suma en modulo 2 x + x + x   4 3 Se multiplica 0011010 x 0010111 x + x + x + 1   2 4
PROCEDIMIENTOS DE DETECCION DE REDUNDANCIA CICLICA DETECCION Y CORRECCION DE ERRORES Sumas binarias sin acarreos  1. ARITMETICA MODULO 2 Operación lógica XOR = Operación lógica XOR = Restas binarias sin acarreos  Trama de  (k + n)  bits a transmitir, con  n<k T = n = Bits de comprobación M = Mensaje de  k  bits, los primeros k bits de  T Patrón de   n + 1   bits ,  este es el divisor elegido. Como mínimo el bit más significatico y el menos significativo debe ser   1. P =
DETECCION Y CORRECCION DE ERRORES 1. ARITMETICA MODULO 2 EJEMPLO = n = M = Dado: P T = 2 M / P n El Mensaje: 1010001101  (10 bits) 110101  (6 bits)  (no olvidar que es  n + 1 ) (5 bits) 2  = 10000 5 10000 1010001101 101000110100000 M T 2 n
DETECCION Y CORRECCION DE ERRORES 1. ARITMETICA MODULO 2 T = 2  M / P n El Mensaje: 1  1  0  1 0  1 1  0  1  0  0  0  1  1  0  1  0  0  0  0  0 T (n =5  bits de  comprobación ) P =  Patron 1  1  0  1  0  1 1 0 1 1 1 0 X 1 1 1  1  0  1  0  1   1  1  0  1  0  1   0 1 1  1  0  1  0  1   1  1  0  1  0  1   1 0 1 1 1 1 1 0 X 0 0 0 0 0 0 0 1 1 0 X 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1  1  0  1  0  1   0 0 0  1  1  1  0   Nuevos 5 bits comprobación 0
DETECCION Y CORRECCION DE ERRORES 1. ARITMETICA MODULO 2 T = 2  M / P n FINALMENTE EL MENSAJE A TRANSMITIR ES: El Residuo  R  se suma a  2  M  para dar  T n 1010001101 01110 101000110101110  Mensaje Final a transmitir T = La recepción del mensaje será evaluada así (nuevamente hacemos aritmética modulo 2) 1010001101  01110 110101 El mismo Patrón Mensaje Nuevos 5 bits  de comprobación
DETECCION Y CORRECCION DE ERRORES 1. ARITMETICA MODULO 2 T = 2  M / P n 1  0  1  0  0  0  1  1  0  1 0  1  1  1  0 1 1 0 1 0 1 El mismo Patrón Mensaje Nuevos 5 bits  de comprobación 1 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 No hay errores en el receptor, el residuo  es  0 1  1  0  1  0  1 1  1  0  1  0  1 1  1  0  1  0  1 1  1  0  1  0  1 1  1  0  1  0  1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1  1  0  1  0  1
EJERCICIO EJERCICIO Dado: El Mensaje a enviar es  1  0  1  1  0  1  1  1 Es un polinomio que agrega  5  bits de protección a un mensaje de  8  bits , para dar un total de  13  bits P 5 C R C (13,8)  = X + X + X + X 4 1 0 M n = ? T  , Suponga que el receptor recibió : 1  0  1  1  1   1  1  1 Demuestre mediante la aritmética modo 2 que hubo error

Hamming y CRC

  • 1.
    MATERIAL PARA DOCENCIA, Creado por In, Carlos Alberto Amaya T.
  • 2.
    UNAD Ing, CarlosAlberto Amaya Tarazona
  • 3.
    INTRODUCCION OBJETIVOSFUNDAMENTACION HAMMING CRC Agenda
  • 4.
    Como garantizar quelos datos lleguen bien a su destino? Si fallan, Como se pueden restaurar? Qué métodos existen para detectar y corregir errores? INTRODUCCION
  • 5.
    Estudiar las técnicasde detección y corrección de errores de Hamming y CRC. OBJETIVOS Identificar los fundamentos teóricos para la detección y control de errores en una transmisión Analizar el método de Hamming para la detección y corrección de errores Establecer el algoritmo para el desarrollo del método de Hamming Analizar el método de control de redundancia cíclica (CRC) para la detección de errores. Establecer el algoritmo para el desarrollo del método CRC. Realizar una guía que permita mecanizar el método de Hamming y CRC.
  • 6.
    FUNDAMENTACION ERROR deTransmisión Transmisor Receptor CANAL Ruido Térmico Ruido Impulsivo Intermodulación Se debe a Ruido de redondeo Atenuación Cruce de líneas Eco Medio de transmisión codificación códigos detección corrección Interferencia, ruido Sistema de comunicaciones
  • 7.
    Sistema de comunicaciónFlujo de información Transmisor Codificador Decodificador receptor CANAL Perturbaciones: distorsión Ruido Transforma el mensaje a formato original D y C EL MODELO OSI FUNDAMENTACION detecta Parte el flujo en tramas y corrige los errores. Normalmente calcula un bit de chequeo para cada trama, si difiere con el de la trama, hubo error. Aplicación Parte el flujo en tramas y corrige los errores. Normalmente calcula un bit de chequeo para cada trama, si difiere con el de la trama hubo error . Presentación Sesión Transporte Red Enlace Física
  • 8.
    Técnicas de Deteccióny corrección de error Transmisor Receptor CANAL Incluir bits redundantes Detecta error Solicita retransmisión Código VRC ( Vertical Redundancy Check ) Código CRC ( Cyclic Redundancy Check ) Código LRC ( Longitudinal Redundancy Check ) FUNDAMENTACION Tipos de chequeo
  • 9.
    Técnicas de Deteccióny corrección de error Código VRC ( Vertical Redundancy Check ) 1 2 3 4 5 6 7 8 9 10 … P1 P2 P4 P8 Transmisor Receptor CANAL Flujo de información Par Par Impar Impar sincrona Asincrona Bit de paridad FUNDAMENTACION El BIT de paridad se añade al final de cada bloque
  • 10.
    Técnicas de Deteccióny corrección de error Código LRC ( Longitudinal Redundancy Check ) Transmisor Receptor CANAL paridad bidimensional Datos se agrupan en bloque 1 2 3 4 5 6 7 8 9 10 … P1 P2 P4 P8 1 2 3 4 5 6 7 8 9 10 … P1 P2 P4 P8 1 2 3 4 5 6 7 8 9 10 … P1 P2 P4 P8 P1 P4 P2 Bloque al final FUNDAMENTACION P8
  • 11.
    Técnicas de Deteccióny corrección de error Código CRC ( Cyclic Redundancy Check ) Transmisor Receptor CANAL Secuencia de comprobación de trama Trama resultante R Resto = 0 => OK 1…retransmitir n + k bits patrón de bits FUNDAMENTACION Recibe mensaje Comprobaciones de redundancia: Aritmética de modulo 2 Polinomios Lógica digital
  • 12.
    Técnicas de correcciónde error Recuperar datos perdidos Incluye información redundante (bits de paridad) Transmisor Receptor CANAL Deduce que carácter se envió Corrige (# limitado) errores ARQ (requerimiento automático de repetición) Hacia atrás FEC (corrección de errores hacia adelante) Pare y espere Envió continuo ACK acknowledge NAK Error Negative acknowledge señal Paraliza todo hasta confirmar Código Bloque Código árbol Con memoria Sin Memoria FUNDAMENTACION estrategias formas
  • 13.
    Códigos de bloqueFUNDAMENTACION 1 2 3 4 5 6 7 8 9 10 … P1 P2 P4 P8 1 2 3 4 5 6 7 8 9 10 … Lineales (matrices) No lineales (Cíclicos)
  • 14.
  • 15.
    HAMMING DETECCION YCORRECCION DE ERRORES
  • 16.
    1. Adicionar ciertosbits de control (llamados bits de paridad) al mensaje original. Los bits de paridad corresponden a los bits que son potencias de 2: 1,2,4,8,16, etc, según el tamaño del mensaje. HAMMING Mecanismo 1 2 3 4 5 6 7 8 9 10 … P1 P2 P4 P8
  • 17.
    2. El mensajese ubica en los bits restantes HAMMING 1 2 3 4 5 6 7 8 9 10 …
  • 18.
    Los bits decontrol o paridad se calculan basados en unos criterios. Estos criterios se calculan dependiendo del tamaño del mensaje. Para una mensaje de longitud 4… HAMMING El bit de paridad 1 (P1) se calcula con la paridad de los bits de datos 3,5,7 El bit de paridad 2 (P2) se calcula con la paridad de los bits de datos 3,6,7 El bit de paridad 4 (P4) se calcula con la paridad de los bits de datos 5,6,7 Para otras longitudes, hay otras reglas.
  • 19.
    4. Se envíael mensaje. El receptor recalcula los bits de paridad. Si no coinciden, el mensaje es errado. HAMMING 1 2 3 4 5 6 7 8 9 10 …
  • 20.
    Enviar el siguientemensaje: 1101 HAMMING Ejercicio 1
  • 21.
    El mensaje seubica en los bits correspondientes ( ya se ha dicho que las potencias de 2 son reservadas ) HAMMING 1 2 3 4 5 6 7 1 1 0 1
  • 22.
    Los bits decontrol o paridad se calculan y se ubican: HAMMING (P1) -> paridad de 3,5,7: 1,1,1 = 1 1 2 3 4 5 6 7 1 1 0 1 (P4) -> paridad de 5,6,7: 1,0,1 = 0 (P2) -> paridad de 3,6,7: 1,0,1 = 0 1 0 0
  • 23.
    Se envía elmensaje… Ocurre un error en la transmision, y el bit 5 falla HAMMING 1 2 3 4 5 6 7 1 0 0 1 1 0 0 Pero el receptor no sabe que en lugar de un 0 se envió un 1…
  • 24.
    El receptor recalculalos bits de paridad … HAMMING 1 2 3 4 5 6 7 1 0 0 1 0 0 1 (P1) -> paridad de 3,5,7: 1,0,1 = 0 (P4) -> paridad de 5,6,7: 0,0,1 = 1 (P2) -> paridad de 3,6,7: 1,0,1 = 0
  • 25.
    Y detecta quelos bits de paridad que se recibieron son diferentes a los que se recalcularon … HAMMING 1 2 3 4 5 6 7 1 0 0 1 1 0 0 1 2 3 4 5 6 7 1 0 0 1 0 0 1 Recibidos: Recalculados: Se afectó el bit 1 y el 4.
  • 26.
    Qué bits dedatos son controlados por el bit de paridad 1 (P1) y el 4 (P4) , pero que no son controlados por P2 ? HAMMING El bit 5 (P1) -> paridad de 3,5,7 (P4) -> paridad de 5,6,7 (P2) -> paridad de 3,6,7 Porque:
  • 27.
    Como sabe queel bit 5 estaba errado, arma de nuevo la cadena original: HAMMING 1 1 0 1 1 0 0
  • 28.
  • 29.
    CRC DETECCION YCORRECCION DE ERRORES
  • 30.
    CRC DETECCION YCORRECCION DE ERRORES Notación Polinomial El código cíclico es aquel en el que cualquier rotación cíclica (lo que sale por un lado, entra por el otro) de una palabra código produce otra palabra código válida. Los códigos cíclicos son una familia de códigos bloques lineales. Para representar los códigos cíclicos se presenta cualquier número binario de n posiciones como un polinomio de grado (n-1) , que contienen la variable ficticia x . Los exponentes de x corresponden a los números de las posiciones de la notación binaria comenzando desde el bit de mas a la derecha .
  • 31.
    Polinomio Generador IdealDETECCION Y CORRECCION DE ERRORES La aritmética con estos polinomios es módulo 2 sin llevar. Es decir la adición y la sustracción son equivalentes a XOR La división usa XOR en lugar de sustracción y A se divide entre B si el número de bits es mayor de o igual a el número en A Todos los polinomios correspondientes a las palabras del código cíclico, deben dividirse entre g(x) sin residuo. g(x) debe ser un divisor de x – 1 El bit mayor y el menor del generador deben ser 1.
  • 32.
    EJEMPLO DETECCION YCORRECCION DE ERRORES Escribir en forma polinomial la palabra de código binario: 10101 En este caso obtenemos el polinomio, digamos g(x), así: g(x)= 1.x + 0.x + 1.x + 0.x + 1.x Entonces: g(x)= x + x + 1 4 4 2 3 2 1 0
  • 33.
    EJEMPLO DETECCION YCORRECCION DE ERRORES 0001101 x + x + 1 3 2 Suma en modulo 2 x + x + x 4 3 Se multiplica 0011010 x 0010111 x + x + x + 1 2 4
  • 34.
    PROCEDIMIENTOS DE DETECCIONDE REDUNDANCIA CICLICA DETECCION Y CORRECCION DE ERRORES Sumas binarias sin acarreos 1. ARITMETICA MODULO 2 Operación lógica XOR = Operación lógica XOR = Restas binarias sin acarreos Trama de (k + n) bits a transmitir, con n<k T = n = Bits de comprobación M = Mensaje de k bits, los primeros k bits de T Patrón de n + 1 bits , este es el divisor elegido. Como mínimo el bit más significatico y el menos significativo debe ser 1. P =
  • 35.
    DETECCION Y CORRECCIONDE ERRORES 1. ARITMETICA MODULO 2 EJEMPLO = n = M = Dado: P T = 2 M / P n El Mensaje: 1010001101 (10 bits) 110101 (6 bits) (no olvidar que es n + 1 ) (5 bits) 2 = 10000 5 10000 1010001101 101000110100000 M T 2 n
  • 36.
    DETECCION Y CORRECCIONDE ERRORES 1. ARITMETICA MODULO 2 T = 2 M / P n El Mensaje: 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 T (n =5 bits de comprobación ) P = Patron 1 1 0 1 0 1 1 0 1 1 1 0 X 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 X 0 0 0 0 0 0 0 1 1 0 X 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 Nuevos 5 bits comprobación 0
  • 37.
    DETECCION Y CORRECCIONDE ERRORES 1. ARITMETICA MODULO 2 T = 2 M / P n FINALMENTE EL MENSAJE A TRANSMITIR ES: El Residuo R se suma a 2 M para dar T n 1010001101 01110 101000110101110 Mensaje Final a transmitir T = La recepción del mensaje será evaluada así (nuevamente hacemos aritmética modulo 2) 1010001101 01110 110101 El mismo Patrón Mensaje Nuevos 5 bits de comprobación
  • 38.
    DETECCION Y CORRECCIONDE ERRORES 1. ARITMETICA MODULO 2 T = 2 M / P n 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 El mismo Patrón Mensaje Nuevos 5 bits de comprobación 1 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 No hay errores en el receptor, el residuo es 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1
  • 39.
    EJERCICIO EJERCICIO Dado:El Mensaje a enviar es 1 0 1 1 0 1 1 1 Es un polinomio que agrega 5 bits de protección a un mensaje de 8 bits , para dar un total de 13 bits P 5 C R C (13,8) = X + X + X + X 4 1 0 M n = ? T , Suponga que el receptor recibió : 1 0 1 1 1 1 1 1 Demuestre mediante la aritmética modo 2 que hubo error