72
Ingeniería en Informática Ing. Omar M. Antonio Control de errores

Teoria-Control de Errores

Embed Size (px)

Citation preview

Page 1: Teoria-Control de Errores

Ingeniería en Informática

Ing. Omar M. Antonio

Control de errores

Page 2: Teoria-Control de Errores

Objetivos

Page 3: Teoria-Control de Errores

Contenido

Page 4: Teoria-Control de Errores

Detección de errores

Page 5: Teoria-Control de Errores

Funciones de la Capa de Enlace

• Control de Errores: Detección y corrección mediante alguna de las técnicas siguientes:▫ Control directo de errores (FEC)▫ Petición automática de retransmisión (ARQ)▫ Control de Eco, utilizado para transmisiones

asíncronas.• Control de Flujo: Regulación del ritmo de

envío de tramas del transmisor al receptor mediante alguna de las técnicas siguientes:▫ Parada y Espera.▫ Ventana Deslizante.

Page 6: Teoria-Control de Errores

Detección y Corrección de Errores

• Todo canal de transmisión de datos introduce errores en la información transmitida.▫ Tasa de errores (BER): Relación entre el número

de bits erróneos recibidos y el número de bits transmitidos.

▫ Redundancia: Información que se añade al mensaje transmitido para permitir la detección y corrección de errores.

Page 7: Teoria-Control de Errores

Detección y Corrección de Errores

• Tipos de Errores▫ Error de Bit.▫ Error de Ráfaga: Una cadena de bits

contiguos erróneos. A una mayor velocidad de transmisión, un mismo

error afecta a más bits. Un ruido de 1/100 segundos puede afectar: Si se transmite a 1 Kbps, a 10 bits. Si se transmite a 1 Mbps, a 10.000 bits.

Page 8: Teoria-Control de Errores

Tipos de errores – Error de Bit simple

Page 9: Teoria-Control de Errores

Error de Bits múltiples – Error de ráfagas

Page 10: Teoria-Control de Errores

Detección y Corrección de Errores

• Detección de Errores:▫ Para detectar errores es necesario añadir una redundancia que

permita determinar mediante algún algoritmo que la información recibida no es correcta

▫ Si se retransmite dos veces el mismo mensaje es muy improbable que los mismos bits fallen en las mismas posiciones.

▫ Se intenta repetir la mínima información posible.

• Métodos de Detección:▫ VRC y LRC▫ CRC▫ Suma de Comprobación

Page 11: Teoria-Control de Errores

Redundancia

Page 12: Teoria-Control de Errores

Paridad

• Puede ser par o impar• A cada carácter se le adiciona un bit, y este bit completaría un

número par de 1s o impar de 1s• Puede combinarse paridad vertical u horizontal

Page 13: Teoria-Control de Errores

Verificación de Redundancia Vertical (VRC)

• Se utiliza un bit de paridad por cada unidad de datos.

• Prestaciones:▫ Detecta todos los errores de bit.▫ Detecta errores de ráfaga siempre y cuando el

número total de bits cambiados sea impar.• Utiliza un solo bit redundante por unidad de

datos.

Page 14: Teoria-Control de Errores

VRC

Page 15: Teoria-Control de Errores

Verificación de Redundancia Longitudinal (LRC)

• Los bloques a transmitir se organizan en forma de tabla.

• Se añade un bit de paridad por cada columna.• Utiliza un solo bit redundante por unidad de datos.

Page 16: Teoria-Control de Errores

Verificación de Redundancia Longitudinal (LRC)

• Prestaciones:▫ Incrementa la probabilidad de detectar errores de

ráfaga.▫ LRC de n bits detecta todos los errores de ráfaga de

n bits.▫ Puede detectar errores de ráfaga de más de n bits.▫ No detecta errores en los que cambian dos bits de

una unidad de datos y dos bits de otra unidad de datos que están en la misma posición

Page 17: Teoria-Control de Errores

VRC y LRC

Page 18: Teoria-Control de Errores

VRC y LRC

Page 19: Teoria-Control de Errores

Verificación de Redundancia Cíclica (CRC)

• Más potente que los anteriores.• Está basado en la división binaria.• Consiste en añadir al final de la trama una

secuencia de bits redundantes, conocida como CRC o resto CRC, obtenidos de dividir los bits de la trama por un número binario (divisor) predeterminado. El resto de esta operación es el CRC.

• El número de bits usados para CRC debe ser uno menos que el número de bits del divisor.

Page 20: Teoria-Control de Errores

Verificación de Redundancia Cíclica (CRC)

• Los pasos para calcularlo en el transmisor son:▫ Añadir n ceros a la trama (siendo n+1 el número

de bits del divisor).▫ La trama resultante se divide por el divisor

usando el proceso de la división binaria (división módulo 2). El resto es el CRC.

▫ Sustituir el CRC de n bits obtenido por los ceros añadidos.

Page 21: Teoria-Control de Errores

Verificación de Redundancia Cíclica (CRC)

• El Receptor recibirá la trama que contiene el CRC y la dividirá por el divisor. No se habrán producido errores si el resto es cero.

Page 22: Teoria-Control de Errores

Ejemplo:

Definimos:T : trama a transmitir (k+n) K>nM: mensaje de k bits (primeros bits de t)F : FCS-CRC de n bitsP : polinomio de n+1 bits (divisor predeterminado)

En el ejemplo:M = 100100; k=6P = 1101 ; (n+1)= 4 n=3F = 001T = 100100001En el receptor se divide T por P y si no hay error el residuo es cero

Page 23: Teoria-Control de Errores

Verificación de Redundancia Cíclica (CRC)

• Los divisores se representan como polinomio algebraico.▫ Por ej. El divisor 10100111 se representa como el

polinomio: x7+x5+x2+x+1

Page 24: Teoria-Control de Errores

Verificación de Redundancia Cíclica (CRC) Polinomios

Page 25: Teoria-Control de Errores

Verificación de Redundancia Cíclica (CRC) Polinomios

Page 26: Teoria-Control de Errores

Verificación de Redundancia Cíclica (CRC)

• Polinomios Estándares:▫ CRC-12: x12+x11+x3+x+1

▫ CRC-16: x16+x15+x2+x+1

▫ CRC-IUT-T: x16+x12+x5+1

▫ CRC-32:x32+x26+x23+x22+x16+x12+x11+x10+x8+x5+x4+x2+1

• Detecta errores de ráfagas que afectan a un número impar de bits y ráfagas de longitud menor o igual que el grado del polinomio.

Page 27: Teoria-Control de Errores

Verificación de Redundancia Cíclica (CRC)

Page 28: Teoria-Control de Errores

Suma de Comprobación Checksum

• Técnica general de detección de errores.

• Típica de niveles superiores.

• Se aplica cuando se reciben bloques de caracteres, en lugar de caracteres aislados.

Page 29: Teoria-Control de Errores

Suma de Comprobación Checksum

• En el transmisor se realizan los siguientes pasos:▫ Dividir la trama en k trozos de n bits.▫ Sumar todos los trozos con aritmética

complemento a uno.▫ Complementar resultado. Este sería el

checksum.

Page 30: Teoria-Control de Errores

Suma de Comprobación Checksum

• En el Receptor se realizan los siguientes pasos:▫ Dividir la trama (que incluye checksum) en k trozos

de n bits.▫ Sumar todos los trozos con aritmética complemento

a uno.▫ Complementar el resultado.▫ Si el resultado es cero No error

• Checksum detecta todos los errores que tienen que ver con un número de bits impares.

Page 31: Teoria-Control de Errores

Suma de Comprobación Checksum

Page 32: Teoria-Control de Errores

Suma de Comprobación Checksum

Page 33: Teoria-Control de Errores

Corrección de errores

Page 34: Teoria-Control de Errores

Corrección de Errores

• FEC (Forward Error Correction)▫ Significa corrección de errores a posteriori y se

utiliza en sistemas sin retorno o sistemas en tiempo real donde no se puede esperar a la retransmisión para mostrar los datos.

▫ Básicamente consiste en codificar en el transmisor cada bloque de k bits de la trama en palabras de n bits, siendo n>k. El receptor decodifica las palabras en los bloques originales aunque éstos tuviesen algún error.

Page 35: Teoria-Control de Errores

Corrección de Errores

• FEC.▫ Los bits añadidos, conocidos como de

redundancia, hacen posible detectar errores y deducir el dato que se transmitió.

Page 36: Teoria-Control de Errores

Aplicaciones Técnicas:

En estos últimos años, la codificación ha cobrado un carácter fundamental por la posibilidad de mejorar la calidad de las comunicaciones y asegurar la mejor transacción de información. Se aplican a un gran numero de sistemas:

Sistemas de comunicación: comunicación satelital, broadcasting, telecomunicaciones, etc.Sistemas informáticos: circuitos lógicos, memorias semiconductores, HD, CD-ROM, etc.Sistemas de audio y video: sonido digital (CD), video digital (DVD), etc.

Page 37: Teoria-Control de Errores

Clasificación de los códigos correctores

Cada tipo de error requiere un tipo de código específico para detectarlo y corregirlo. Se pueden clasificar en:

FEC a bloques. Algunos ejemplos

▫ Hamming▫ BCH.▫ RS (Reed Solomon).

FEC convolucional. Aplica el algoritmo Viterbi.

Turbo Códigos Funciona como una combinación de un código de

bloque y uno convolucional

Page 38: Teoria-Control de Errores

Corrección de Errores

• FEC a bloques.▫ Se denomina Distancia Hamming entre dos

códigos al número de símbolos en que se diferencian.

▫ Peso de una palabra: número de unos que tiene.

▫ Distancia de hamming: Número de bits en que difieren dos palabras.

Page 39: Teoria-Control de Errores

Corrección de Errores• FEC a bloques. Distancia Hamming.

10001110 1110010100111000 11110111

d=5 d=2

Peso de la suma de las 2 palabras.10001110 11100101

+00111000 +11110111=10110110 (peso 5) =00010010 (peso 2)

Page 40: Teoria-Control de Errores

Corrección de Errores

• FEC a bloque. Distancia Hamming.▫ Cuanto mayor sea la distancia de hamming entre

dos palabras, más difícil será que un error en la transmisión convierta una en la otra, ya que será necesario alterar d bits.

▫ Un código de distancia hamming d será capaz de detectar errores en d-1 bits.

▫ Un código de distancia hamming d será capaz de corregir errores en (d-1)/2 bits.

▫ Para corregir errores en d bits hará falta un código con distancia de hamming 2d+1.

Page 41: Teoria-Control de Errores

Corrección de Errores

• FEC a bloques. Distancia Hamming.▫ Códigos de control de paridad. Se añade un bit de paridad al final de la palabra de

forma que el número total de unos, incluído el bit de paridad sea par (paridad par) o impar (paridad impar). Paridad par: 1011000 1 Paridad impar: 1101011 0

Es un código detector, detectará los errores producidos en un número impar de bits

Page 42: Teoria-Control de Errores

Corrección de Errores

• FEC a bloques. Distancia Hamming.▫ Códigos de control de paridad.

Si la transmisión se realiza por bloques, se pueden añadir bits de paridad adicionales. Paridad vertical y horizontal

Este código puede detectar con el o los bits erróneos. Cuando ocurre una combinación cuadrangular de errores, esta pasa inadvertida

Page 43: Teoria-Control de Errores

Corrección de Errores

• FEC a bloques. Distancia Hamming.▫ Códigos de hamming.

Son un subconjunto de los códigos de control de paridad, en los cuales se disponen los bits de paridad de forma que permitan localizar la presencia de errores en el mensaje.

Su distancia de hamming mínima es 3. Para palabras de L bits, hace falta que R de esos bits sean de

paridad para poder corregir un error en un bit, donde:

L ≤ 2R - 1▫ R será el menor número entero que cumpla esta condición

Page 44: Teoria-Control de Errores

Corrección de Errores

• FEC a bloques. Distancia Hamming.▫ Códigos de hamming.

Cada bit de paridad debe controlar un conjunto distinto de bits de información.

Un error en un bits de información debe afectar a 2 o más bits de paridad.

Para el cálculo de los bits de paridad sólo se pueden utilizar bits de información no se pueden incluir los otros bits de paridad.

Ejemplo:

Page 45: Teoria-Control de Errores

Corrección de Errores

• FEC a bloques. Distancia Hamming.▫ Códigos de hamming. Código óptimo.

Se numeran los bits de la palabra código empezando por 1.Los bits potencia de 2 serán de redundancia y el resto de datos.

Cada bits de datos contribuye a varios bits de redundancia, que se determinan descomponiendo la posición del bit en suma de potencias de 2. Ejemplo: 11 = 1 + 2 + 8

Si se produce un error, el bit erróneo será el situado en la posición que se obtenga sumando las posiciones de los bits de redundancia incorrectos.

Page 46: Teoria-Control de Errores

Código Hamming (7:4)

Page 47: Teoria-Control de Errores

Determinación de bits de redundancia

Page 48: Teoria-Control de Errores

Determinación de bits de redundancia

Page 49: Teoria-Control de Errores

Determinación de bits de redundancia

Page 50: Teoria-Control de Errores

Detección y Corrección de errores. Error simple

Page 51: Teoria-Control de Errores

Detección y Corrección de errores.

Page 52: Teoria-Control de Errores

Corrección de Errores

• FEC a bloques. Código Hamming H.▫ Usado en algunos radioenlaces digitales en la

década de los ‘80. En particular la versión H(555,544).

▫ Permite corregir 2 errores en la secuencia de 544 bits de información.

Page 53: Teoria-Control de Errores

Corrección de Errores

• FEC a bloques. Código BCH. Bose-Chaudhuri-Hocquenghen.

▫ Es el código más conveniente para errores independientes. Los parámetros definidos son: Longitud del bloque: N=2M-1 M>=3 Bits de información: I=N-M.t Distancia mínima: d=2.t+1

Page 54: Teoria-Control de Errores

Corrección de Errores

• FEC a bloques. Código BCH.▫ Es usado para corregir errores aleatorios múltiples.▫ Es usado por ejemplo en telefonía celular analógica

AMPS en el canal de control bajo la versión BCH(48,36) y BCH(40,28).

▫ En codificadores digitales de TV a 34Mb/s se utiliza el codec BCH(511,493) para corregir 2 errores por bloque.

▫ Estos códigos están entre los que mejor funcionan

Page 55: Teoria-Control de Errores

Corrección de Errores

• FEC a bloques. Código RS. Reed-Solomon.

▫ Es una variante del BCH y la más apropiada para ráfagas de errores. Los parámetros definidos: Bits por símbolo: m Longitud del bloque: N=m.2m-1 Bits de información: (N-I)=m.2t

Distancia mínima: d=m.(2.t+1)

Page 56: Teoria-Control de Errores

Corrección de Errores

• FEC a bloques. Código RS.▫ En general el número de errores corregidos son t

ráfagas de m bits en una palabra de código.Por ejemplo: En RS(60,40) se corrigen 2 ráfagas de 4 bits

errados.▫ Una aplicación, entre otras, es en radioenlaces

digitales de 140Mb/s en la versión RS(65/62) para corregir 4 errores en 4 bloques.

▫ Un RS conocido es RS(255,223) con símbolos de 8bits.

Page 57: Teoria-Control de Errores

Corrección de Errores

• FEC convolucional.▫ Se presenta como el método más interesante,

teniendo en cuanta la modulación TCM (Trellis Code Modulation).

▫ Algoritmo de Viterbi. Método denominado decodificación de máxima

probabilidad, consiste en computar a cada camino un peso consistente en el número de diferencias acumuladas.

Page 58: Teoria-Control de Errores

Corrección de Errores

• FEC convolucional. Algoritmo de Viterbi.▫ Cuando se recibe un error (01 en lugar de 11), se

encuentra que dicha secuencia es imposible; sólo 2 errores consecutivos pueden simular un camino correcto. Detectado el error es necesario saber cual es; es decir, si se transmitió 00 o 11. Ambos caminos comienzan con un peso 1 (número de errores acumulados).

Page 59: Teoria-Control de Errores

Corrección de Errores

• FEC convolucional. Algoritmo de Viterbi.▫ Al paso siguiente las distintas posibilidades

incrementan el valor del peso con excepción de un camino (el de máxima probabilidad) que mantiene el peso en (1). Al cabo de una determinada longitud de análisis se decide el camino de máxima probabilidad (mínimo de errores) y se determina el bit con error, corrigiéndolo. Si existen muchos errores puede ser que varios caminos tengan igual peso; en tal caso se selecciona uno en forma aleatoria.

Page 60: Teoria-Control de Errores

Corrección de Errores

• FEC convolucional. Representación.

Page 61: Teoria-Control de Errores

Corrección de Errores

• ARQ.▫ La corrección de los posibles errores en la

transmisión se consigue retransmitiendo de nuevo la trama problemática.

▫ Se basa en: Confirmaciones positivas (ACK, ACKnowledgement,

Reconocimiento). Retransmisión tras expiración de un temporizador

(time_out). El origen retransmite las tramas sin ACK después de un período de tiempo.

Confirmación negativa (NACK, NoACKnowledgement, No Reconocimiento) y retransmisión. El destino detecta un error en la trama y envía un ACK negativo.

Page 62: Teoria-Control de Errores

Corrección de Errores

• ARQ.▫ Las variantes de ARQ son:

ARQ con parada y espera. ARQ con vuelta atrás N (GoBackN).

Repetición no selectiva ARQ con rechazo selectivo.

Page 63: Teoria-Control de Errores

Corrección de Errores

• ARQ. ARQ con parada y espera▫ Basado en el control de flujo

parada y espera.▫ El transmisor envía una única

trama y espera la llegada del ACK.

▫ No se puede enviar otra trama hasta haber recibido el ACK.

▫ Sencillo e ineficiente.

Page 64: Teoria-Control de Errores

Corrección de Errores

• ARQ. ARQ con parada y espera▫ Si se recibe una trama dañada el

receptor la descarta. El transmisor asocia un timeout a

cada trama enviada. Si no recibe el ACK antes de que expire, la retransmite.

▫ Si se pierde o daña el ACK, el transmisor retransmitirá la trama. El receptor debe descartar la

trama duplicada que reciba.

Page 65: Teoria-Control de Errores

Corrección de Errores

• ARQ. ARQ con vuelta atrás N.▫ Basado en ventana deslizante.▫ El transmisor puede enviar una ventana de

tramas.▫ El receptor confirma las tramas recibidas

correctamente (ACK).▫ Si el receptor detecta un error, envía un ACK

negativo (N-ACK). Descarta esa trama y las futuras tramas recibidas

hasta recibir la trama errónea.

Page 66: Teoria-Control de Errores

Corrección de Errores

• ARQ. ARQ con vuelta atrás N.▫ El transmisor si recibe un N-ACK debe

retransmitir la trama errónea y todas las posteriores.

▫ Es bastante utilizado (aunque con variantes)

Page 67: Teoria-Control de Errores

Corrección de Errores

• ARQ. ARQ con vuelta atrás N.▫ Si el receptor recibe la trama X

errónea, la descarta y: Si el origen envía la trama X+1, el

receptor envía N-ACK X, el transmisor retransmite la trama X.

Si el origen no envía más tramas, el receptor no contesta. El origen enviará un ACK con un bit P=1 El receptor al recibir el ACK con P=1,

contesta con un ACK X. El transmisor retransmitirá la trama X.

Page 68: Teoria-Control de Errores

Corrección de Errores

• ARQ. ARQ con vuelta atrás N.▫ Si se pierde el ACK de la trama X

(ACK X+1): Si el transmisor recibe algún ACK

posterior (ACK X+2,...) antes de que expire el timeout, la trama X está confirmada.

Si el timeout expira, se envía un ACK con P=1, y se inicia otro temporizador. Si el receptor no responde antes del

temporizador, el transmisor repite el ACK con P=1.

Se reintenta varias veces.

Page 69: Teoria-Control de Errores

Corrección de Errores

• ARQ. ARQ con rechazo selectivo.▫ Sólo se retransmiten las tramas con ACK

negativo (SN-ACK) o cuando expira el timeout.▫ Se minimiza el número de retransmisiones.▫ El receptor necesita un buffer suficientemente

grande para almacenar las tramas que va recibiendo después de un SN-ACK.

Page 70: Teoria-Control de Errores

Corrección de Errores

• ARQ. ARQ con rechazo selectivo.▫ También necesita una lógica especial para

insertar la trama retransmitida en su posición correcta.

▫ El transmisor también tiene una lógica más compleja para enviar tramas fuera de orden.

▫ Se utiliza bastante menos que el ARQ con vuelta atrás N.

Page 71: Teoria-Control de Errores

Corrección de Errores

• ARQ. ARQ con rechazo selectivo.

Page 72: Teoria-Control de Errores

FIN

PREGUNTAS???

Ing. Omar M. Antonio