Sei sulla pagina 1di 48

Tema 4: Deteccin y Correccin de Errores

Escuela Politcnica Superior Ingeniera Informtica Universidad Autnoma de Madrid

Deteccin y Correccin de Errores


O B J E T I V O S
Conocer cmo pueden detectarse y TEMA 4: DETECCIN Y prevenirse errores que puedan CORRECCIN DE aparecer en los distintos ERRORES intercambios de informacin que 4.1 Control de errores usando paridad realiza el ordenador. Aplicar distintos mtodos de deteccin y correccin de errores.
4.2 Cdigos de autochequeo y autocorrectores

Bibliografa Tema 4:

- Introduction to Computer Hardware and Data Communications.


P.-A. GOUPILLE. (Prentice Hall, 1993). Cap. 5.

Conceptos previos
Concepto de Cdigo:
- De un conjunto de palabras (por ejemplo: Posibles palabras binarias de una longitud determinada), cdigo es un subconjunto - Ejemplo:
Cdigo: Palabras de tres bits con slo un dgito a 1 En las palabras binarias de longitud 3: {000, 001, 010, 011, 100, 101, 110, 111}

Escuela Politcnica Superior

Necesidad del tratamiento de errores


Posibilidad de errores
- En informtica (entre varios ordenadores o en el interior de ellos) la informacin circula entre diferentes dispositivos y reposa en ciertos dispositivos - Posibles errores:
Ruidos en las comunicaciones Defectos en las superficies de los discos, etc.

- Los errores consisten en la modificacin de la informacin desde que se emite (o almacena) hasta que se recibe (o se recupera)
Cambio de valor de algunos bits (0 1)

Escuela Politcnica Superior

Necesidad del tratamiento de errores


Tipos de errores
- Aislados: Bit afectado rodeado de bits correctos
Simples: 1 bit afectado Mltiples: Ms de 1 bit afectado

- Rfagas de errores: Secuencia de bits contiguos con errores


Informacin de partida: Error aislado simple: Errores aislados triples: Rfaga de error:

1 1 1 1

0 0 0 0 0 1 0 0

0 0 0 1

1 0 1 0 1 0 0 1

1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0

1 1 0 1
5

1 0 1 0 1 0 1 0

Escuela Politcnica Superior

Tipos de cdigos de tratamientos de errores


En lugar de manipular la informacin, se definen cdigos en los que se incluye la informacin que permite detectar y/o corregir errores

Cdigos correctores de errores


- Uso:
Se recibe la informacin, si se detecta el error corrige se

- Situaciones:

Cuando no es conveniente retransmitir la informacin

Escuela Politcnica Superior

Tipos de cdigos de tratamientos de errores


Cdigos detectores de errores
- Uso:
Se recibe la informacin, si se detecta el error solicita la retransmisin se

- Situaciones:

Suele ser ms costoso corregir que detectar Cuando es posible la retransmisin, se solicita

Escuela Politcnica Superior

Conceptos asociados a errores


Distancia de Hamming entre dos palabras - N de bits que difieren dos palabras - Ejemplo: 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 Distancia Hamming = 4

Se necesitan 4 errores para transformar una palabra en la otra

Escuela Politcnica Superior

Conceptos asociados a errores


Distancia de Hamming de un cdigo - Distancia mnima entre las palabras que componen el cdigo - Ejemplo: {100, 111, 011} mn{d(100, 111), d(100, 011), d(111, 011)} = mn{2, 3, 1} = 1

Escuela Politcnica Superior

Propiedades para la deteccin de errores - Para detectar d errores de un bit entre dos

Conceptos asociados a errores

palabras, es necesario un cdigo con una distancia de Hamming de al menos d+1 - De otra forma: Con una distancia de Hamming de d se pueden detectar d-1 errores - Ejemplo: C = {001, 010, 100}, d. Hamming = 2 Un error aislado siempre se detecta Dos errores aislados no se detectan
- Dos errores en 001 111, 010, 100. Dos pertenecen a C
Escuela Politcnica Superior 10

- Un error en 001 101, 011, 000, C

Propiedades para la correccin de errores


- Para corregir d errores de un bit entre dos palabras es necesario un cdigo con una distancia de Hamming de al menos 2d+1 - De otra forma: Con una distancia de Hamming de d se pueden corregir (d-1)/2 errores - Ejemplo: C = {0000000000, 0000011111, 1111100000, 1111111111}, d. Hamming = 5
Se pueden detectar d-1 = 5-1 = 4 errores Se pueden corregir (d-1)/2 = 4/2 = 2 errores
Escuela Politcnica Superior 11

Conceptos asociados a errores

Cdigos para tratamiento de errores


Comprobacin de paridad Paridad vertical, longitudinal y cruzada Cdigo i en n Cdigos de redundancia cclica (CRC) (Cyclic Redundancy Codes)

Escuela Politcnica Superior

12

Comprobacin de paridad

Cdigos para tratamiento de errores

- VRC (Vertical Redundancy Checking) - La informacin se coloca en bloques de longitud fija - A los bloques se les aade un bit llamado de paridad y que, normalmente, precede a la informacin - Criterios para la paridad Bit de paridad par:
- N total de 1 par: Bit de paridad = 0 - N total de 1 impar: Bit de paridad = 1

Bit de paridad impar:


- N total de 1 par: Bit de paridad = 1
Escuela Politcnica Superior

- N total de 1 impar: Bit de paridad = 0


13

Comprobacin de paridad
- Ejemplo:

Cdigos para tratamiento de errores

Informacin
0 1 1 1 0 0 0 1 1 1 0 0

Criterio
1 Paridad par

Cdigo
0 0 1 1 1 0 0 1 1

1 Paridad impar 1 0 1 1 1 0 0

Escuela Politcnica Superior

14

Comprobacin de paridad

Cdigos para tratamiento de errores

- Ejercicio: Completar el bit de paridad con criterio impar (1) y par (2)

Informacin
1 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1
15

Escuela Politcnica Superior

Paridad vertical, longitudinal y cruzada


longitud fija (k) como matriz kxm o mxk 1 1 2 m 2 k

Cdigos para tratamiento de errores

- La informacin se coloca en grupos de (m) bloques de

Escuela Politcnica Superior

16

Paridad vertical, longitudinal y cruzada


- Cada bloque:
1 bit para VRC 1 bit para la paridad perpendicular o LRC (Longitudinal Redundancy Checking) 1 bit de paridad cruzada que comprueba paridades

Cdigos para tratamiento de errores

1 1 2 m

Bits de VRC

Bits de LRC
Escuela Politcnica Superior

Bit de paridad cruzada


17

Paridad vertical, longitudinal y cruzada

Cdigos para tratamiento de errores

- Ejemplo: Se quiere enviar la informacin PAG en ASCII (7 bits): 50 41 4716

(101 0000 100 0001 100 0111) (k = 7, m = 3, matriz 7x3) Se aade: - Bit para VRC criterio par (verde, primera fila) - Bit para LRC criterio par (azul, ltima columna) - Bit de paridad cruzada criterio par (rosa)
Escuela Politcnica Superior 18

Paridad vertical, longitudinal y cruzada


- Ejemplo 1: VRC 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 LRC
Escuela Politcnica Superior

Cdigos para tratamiento de errores


Paridad cruzada

En hexadecimal se enva (columnas): 50 41 47 5616

19

Paridad vertical, longitudinal y cruzada

Cdigos para tratamiento de errores

- Evaluacin del cdigo Distancia Hamming del cdigo: 4 - Las dos palabras del cdigo ms cercanas difieren en un bit de
datos - Un cambio en un bit de datos implica (para que la palabra sea correcta): Cambio en un bit de VRC Cambio en un bit de LRC Cambio en el bit de paridad cruzada - Un cambio mnimo implica 4 bits

Capacidad de deteccin y correccin:


Escuela Politcnica Superior

- Detecta todos los errores simples, dobles y triples - Corrige todos los errores simples
20

Cdigos para tratamiento de errores


Paridad vertical, longitudinal y cruzada
- Evaluacin del cdigo Uso: - Emisin:

Disposicin de datos como matrices Se aaden las paridades VRC, LRC y cruzada - Recepcin: Comprobacin de paridad cruzada (requisito) Comprobacin de VRC y LRC: Las posiciones de error en VRC y LRC marcan filas y columnas en cuyas intersecciones puede haber error. Dependiendo del tipo de errores se pueden o no detectar y corregir.

Escuela Politcnica Superior

21

Cdigos para tratamiento de errores


Paridad vertical, longitudinal y cruzada
- Ejemplo 2: Deteccin y no correccin de errores triples
Error triple en el caso anterior (rojo) (se supone que no afecta a las paridades)

Errores

0 1 0 0 0 0 0 0

0 1 1 0 0 0 0 0

0 1 0 0 0 1 1 1

0 1 0 1 0 1 1 0
22

Escuela Politcnica Superior

Cdigos para tratamiento de errores


Paridad vertical, longitudinal y cruzada
- Ejemplo 2: Deteccin y no correccin de errores triples Deteccin mediante errores en bits de paridad VRC errnea 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 Cruzada correcta LRC errnea

Escuela Politcnica Superior

23

Cdigos para tratamiento de errores


Paridad vertical, longitudinal y cruzada
- Ejemplo 2: Deteccin y no correccin de errores triples Imposibilidad de correccin: Error en las posiciones sospechosas Bits sospechosos 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0
24

Escuela Politcnica Superior

Cdigos para tratamiento de errores


Paridad vertical, longitudinal y cruzada
- Ejemplo 3: Deteccin y no correccin de errores dobles
Error doble en el caso anterior (rojo) (se supone que no afecta a las paridades)

Errores

0 1 0 1

1
0 0 0
Escuela Politcnica Superior

0 0 0 0 0 0 0 1

0 1 0 0 0 1 1 1

0 1 0 1 0 1 1 0
25

Cdigos para tratamiento de errores


Paridad vertical, longitudinal y cruzada
Deteccin mediante errores en bits de paridad

- Ejemplo 3: Deteccin y no correccin de errores dobles

VRC errnea

0 1 0 1

1
0 0 0
Escuela Politcnica Superior

0 0 0 0 0 0 0 1

0 1 0 0 0 1 1 1

0 1 0 1 0 1 1 0

Cruzada correcta LRC errnea

26

Cdigos para tratamiento de errores


Paridad vertical, longitudinal y cruzada
- Ejemplo 3: Deteccin y no correccin de errores dobles
Imposibilidad de correccin: No todas las posiciones sospechosas son errneas

Bits sospechosos

0 1 0 1 1 0 0 0

0 0 0 0 0 0 0 1

0 1 0 0 0 1 1 1

0 1 0 1 0 1 1 0
27

Escuela Politcnica Superior

Cdigos para tratamiento de errores


Paridad vertical, longitudinal y cruzada
- Ejemplo 4: Deteccin y correccin de error simple
Error simple en el caso anterior (rojo) (se supone que no afecta a las paridades)

Error

0 1 0 1 1 0 0 0

0 1 0 0 0 0 0 1

0 1 0 0 0 1 1 1

0 1 0 1 0 1 1 0
28

Escuela Politcnica Superior

Cdigos para tratamiento de errores


Paridad vertical, longitudinal y cruzada
Deteccin mediante errores en bits de paridad

- Ejemplo 4: Deteccin y correccin de error simple

VRC errnea

0 1 0 1

1
0 0 0
Escuela Politcnica Superior

0 1 0 0 0 0 0 1

0 1 0 0 0 1 1 1

0 1 0 1 0 1 1 0

Cruzada correcta LRC errnea

29

Cdigos para tratamiento de errores


Paridad vertical, longitudinal y cruzada
- Ejemplo 4: Deteccin y correccin de error simple
La identificacin inequvoca del bit errneo permite su correccin

Bit sospechoso y errneo

0 1 0 1 1 0 0 0

0 1 0 0 0 0 0 1

0 1 0 0 0 1 1 1

0 1 0 1 0 1 1 0
30

Escuela Politcnica Superior

Cdigos i en n

Cdigos para tratamiento de errores

- O cdigos de verificacin de cuenta fija - El cdigo i en n est formado por las palabras binarias de n bits que tienen i bits igual a 1 - Observaciones:
Nmero de palabras posibles de n bits: Variaciones con repeticin de 2 elementos tomados de n en n: 2n Nmero de palabras del cdigo: Permutaciones de n elementos. 1 se repite i veces y 0 n-i veces

n! i! (n - i)!
Escuela Politcnica Superior 31

Cdigos i en n

Cdigos para tratamiento de errores


4 en 8 est formado por palabras binarias de 8 bits con 4 bits igual a 1

- Ejemplo: Cdigo 4 en 8

0 0 0

0 0 0

0 0 0

0 1 1

1 0 1

1 1 1 1 0 1

1 1 1

0 0 0 0 0 1 0 1

0 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0
32

Escuela Politcnica Superior

Cdigos i en n

Cdigos para tratamiento de errores


Sobre un total de 28 = 256, slo permite 70: 8! 4! 4! 70

- Ejemplo: Cdigo 4 en 8
=

- Evaluacin del cdigo


Su distancia de Hamming es 2: Un cambio mnimo de 1 bit (0 1) obliga a cambiar otro para ajustar el nmero de bits igual a 1 Slo detecta errores simples que no es capaz de corregir

Escuela Politcnica Superior

33

Cdigos polinmicos o de redundancia cclica


- Conceptos previos
Es natural contar de forma cclica

Cdigos para tratamiento de errores

- LOS GRADOS: Supongamos que contamos un nmero de grados entero. El orden es: 0, 1, 2, ..., 45, ..., 180, ..., 357, 358, 359, 360=0, 1, etc.

90 180 270
Escuela Politcnica Superior 34

0=360

Cdigos para tratamiento de errores


Cdigos polinmicos o de redundancia cclica
- Conceptos previos
- LOS GRADOS: Es fcil operar El siguiente a 359 es 0 El anterior a 0 es 359 Tres ms que 358 es 1 Cinco menos que 2 es 357

Escuela Politcnica Superior

35

Cdigos para tratamiento de errores


Cdigos polinmicos o de redundancia cclica
- Conceptos previos
El orden es 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, ... - LAS HORAS DEL DA

6h

12h
Y operar es como antes
Escuela Politcnica Superior

0h=24h 18h
36

Cdigos para tratamiento de errores


Cdigos polinmicos o de redundancia cclica
- Conceptos previos El conjunto de los enteros mdulo 2
- {0, 1} - Su orden cclico

- Las operaciones pueden representarse con tablas 1+1=0 0-1=1

+ 0 0 0 1 1

1 1 0

0 1

0 0 1

1 1 0

* 0 1

0 0 0

1 0 1
37

Escuela Politcnica Superior

Cdigos para tratamiento de errores


Cdigos polinmicos o de redundancia cclica
- Conceptos previos Observaciones sobre los polinomios Q[x] - Divisin de polinomios con coeficientes racionales (Q)
Ejemplo: D = 6x4 + 9x3 + 5x + 2 y d = 2x2 - 1 +2 2x2 +0x -1 3x2 +(9/2)x +(3/2) +9x3 +0x2 +5x +0x3 -3x2 +9x3 +3x2 0x3 +3x2 +3x2 +5x +(19/2)x +2 +0x -(3/2) +(19/2)x +(7/2)

6x4 6x4 0x4

+9x3 +0x2 -(9/2)x

0x2

Se obtiene: q = 3x2 + (9/2)x + (3/2) y r = (19/2)x + (7/2)


Escuela Politcnica Superior 38

Cdigos para tratamiento de errores


Cdigos polinmicos o de redundancia cclica
- Conceptos previos Observaciones sobre los polinomios Q[x]
9 0 9 9 0 0 -3 +3 0 3 3 5 -(9/2) +(19/2) 0 (19/2) 2 -(3/2) +(7/2) 5 2 2 3 0 9/2 Ejemplo: Se puede representar abreviadamente: -1 3/2

6 6 0

Escuela Politcnica Superior

39

Cdigos polinmicos o de redundancia cclica


- Conceptos previos
Polinomios con coeficientes enteros mdulo 2

Cdigos para tratamiento de errores

- Se puede demostrar (no objeto de este curso) que esta divisin tambin es posible cuando los coeficientes son enteros mdulo 2 siempre que las operaciones (resta, productos, etc.) sean definidas en ese conjunto - Ejemplo: D = x13 + x12 + x10 + x8 + x7 + x5 + x4 y d = x4 + x + 1 10011 1 1 0 1 0 1101 1 0 000
1 00 1 1 01 0 0 1 1 1 00 1 1 000 001 0 1 1 00 0 01 1 0 1100001010

1 0 0 1 0 0
1 1 00 1 1 0 1 1 10

Resultado: q = x9 + x8 + x3 + x y r = x3 + x2 + x
Escuela Politcnica Superior 40

Cdigos para tratamiento de errores


Cdigos polinmicos o de redundancia cclica
- Presentacin de la tcnica
Se interpretan las cadenas de 1s y 0s como coeficientes enteros mdulo 2 de polinomios Los k bits de cada mensaje se tratan como si fueran los coeficientes de un polinomio M(x), de orden k-1, en el que las operaciones se hacen en mdulo 2 Si el mensaje fuese: 10010110 el polinomio considerado sera: M(x) = 1 x7 + 0 x6 + 0 x5 + 1 x4 + 0 x3 + 1 x2 + 1 x1 + 0 x0 = = x7 + x4 + x2 + x Se utiliza un polinomio generador G(x) de grado r. Este polinomio est predeterminado, y es el mismo en el emisor y el receptor
Escuela Politcnica Superior

41

Cdigos para tratamiento de errores


Cdigos polinmicos o de redundancia cclica
- Presentacin de la tcnica
Operaciones en mdulo 2: 0+ 0+ 1+ 1+ 0 0 1 1 0= 1= 0= 1= 0= 1= 0= 1= 0 1 1 0 (sin acarreo) 0 1 (sin acarreo) 1 0

Escuela Politcnica Superior

42

Cdigos para tratamiento de errores


Cdigos polinmicos o de redundancia cclica
- Presentacin de la tcnica
Objetivo del procedimiento: Aadir r bits al mensaje de k bits, de forma tal que el polinomio resultante, T(x), correspondiente a los k+r bits, sea divisible por G(x) El receptor verifica si T(x) es divisible por G(x), y si no lo es hay un error en la transmisin

Escuela Politcnica Superior

43

Cdigos polinmicos o de redundancia cclica


- Uso de la tcnica
Emisor (algoritmo a seguir):

Cdigos para tratamiento de errores

- Aadir r bits 0 al extremo de menor orden del mensaje. El polinomio correspondiente ser xr M(x) - Dividir (mdulo 2) xr M(x) entre G(x): xr M(x) = C(x) + R(x) G(x) G(x) C(x) es el cociente y R(x) el resto - Restar a xr M(x) el valor del resto R(x) (esto es equivalente a aadir al mensaje original M(x) el resto R(x)) T(x) = xr M(x) - R(x) - Se obtiene as T(x), cuyos coeficientes (unos o ceros) sustituyen el mensaje a transmitir. T(x) es siempre divisible por G(x)
Escuela Politcnica Superior 44

Cdigos para tratamiento de errores


Cdigos polinmicos o de redundancia cclica
- Uso de la tcnica
Receptor: - Recibe el mensaje T(x) del emisor - Divide T(x) entre G(x) - Si el resto es cero, el mensaje ha llegado correctamente (T(x) = T(x)) - Si el resto no es cero, el mensaje ha llegado con error y hay que pedir una retransmisin (T(x) T(x))

Escuela Politcnica Superior

45

Cdigos para tratamiento de errores


Cdigos polinmicos o de redundancia cclica
Mensaje: 10011011 Polinomio generador: 1001 (r=3) Se aaden 3 bits 0 al final del mensaje: 10011011000 Se divide x3 M(x) entre G(x):
1 0 0 1 10 1 1000
1 00 1 0 0001 0 1 1 1 00 1 001 0 0 0 1 00 1 0 00 1 0 1001 10001010

- Ejemplo: Se requiere transmitir 10011011. Polinomio generador G(x) = x3 + 1

Se transmite 10011011010 (4DA16)


Escuela Politcnica Superior 46

Cdigos polinmicos o de redundancia cclica


- El polinomio generador

Cdigos para tratamiento de errores

La seleccin del polinomio generador es esencial si queremos detectar la mayora de los errores que ocurran Se puede demostrar (no objeto de este curso) que los polinomios generadores son ms potentes con el primer y ltimo bits a 1 Ejemplos de polinomios generadores (estndares internacionales): - CRC-12: x12 + x11 + x3 + x2 + x + 1 - CRC-16: x16 + x15 + x2 + 1 - CRC-CCITT: x16 + x12 + x5 + 1 100% errores simples 100% errores dobles 100% errores en un nmero impar de bits 100% errores en rfagas de igual a o menos de 16 bits 99.997% errores de rfagas de 17 bits 99.998% de errores en rfagas de 18 o ms bits
47

Escuela Politcnica Superior

Cdigos para tratamiento de errores


Cdigos polinmicos o de redundancia cclica
- Ejercicio: Utilizando el polinomio generador G = x3 + 1, determinar los valores hexadecimales que se transmitirn para mandar el mensaje binario 10110110

(Solucin: 5B216)

Escuela Politcnica Superior

48

Potrebbero piacerti anche