Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Detección y Corrección de Errores
O
B Conocer cómo pueden detectarse y
prevenirse errores que puedan TEMA 4: DETECCIÓN Y
J CORRECCIÓN DE
E aparecer en los distintos ERRORES
T intercambios de información que 4.1 Control de errores
I realiza el ordenador. usando paridad
4.2 Códigos de autochequeo
V Aplicar distintos métodos de y autocorrectores
O detección y corrección de errores.
S
Bibliografía Tema 4:
- Introduction to Computer Hardware and Data Communications.
P.-A. GOUPILLE. (Prentice Hall, 1993). Cap. 5.
2
Conceptos previos
• Concepto de Código:
Información de partida: 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0
Error aislado simple: 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0
Errores aislados triples: 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0
Ráfaga de error: 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 0
Escuela Politécnica Superior 5
Tipos de códigos
de tratamientos de errores
• En lugar de manipular la información, se definen
códigos en los que se incluye la información que
permite detectar y/o corregir errores
- Situaciones:
• Cuando no es conveniente retransmitir la información
- Situaciones:
• Suele ser más costoso corregir que detectar
• Cuando es posible la retransmisión, se solicita
0 1 0 1 0 1 0 1
Distancia Hamming = 4
0 0 0 0 1 1 1 1
0 1 1 1 0 0 1 Paridad impar 1 0 1 1 1 0 0 1
1 2 Información
1 0 0 0 0 0 1
0 1 0 1 1 1 1
1 1 0 1 0 0 0
1 1 1 0 1 1 1
1 0 1 0 0 0 1
0 1 1 1 1 1 1
0 1 1 1 0 0 1
0 0 0 1 1 0 1
Bits de Bit de
LRC paridad
cruzada
Escuela Politécnica Superior 17
Códigos para tratamiento de errores
• Paridad vertical, longitudinal y cruzada
- Ejemplo: Se quiere enviar la información “PAG” en
ASCII (7 bits):
50 41 4716
• Se añade:
- Bit para VRC criterio par (verde, primera fila)
- Bit para LRC criterio par (azul, última columna)
- Bit de paridad cruzada criterio par (rosa)
Escuela Politécnica Superior 18
Códigos para tratamiento de errores
• Paridad vertical, longitudinal y cruzada
- Ejemplo 1:
VRC 0 0 0 0 Paridad
1 1 1 1 cruzada
0 0 0 0
1 0 0 1
En hexadecimal se 0 0 0 0
envía (columnas):
0 0 1 1
50 41 47 5616 0 0 1 1
0 1 1 0
LRC
0 0 0 0
1 1 1 1
Errores 0 1 0 0
0 0 0 1
0 0 0 0
0 0 1 1
0 0 1 1
0 0 1 0
Escuela Politécnica Superior 22
Códigos para tratamiento de errores
• Paridad vertical, longitudinal y cruzada
- Ejemplo 2: Detección y no corrección de errores triples
• Detección mediante errores en bits de paridad
0 0 0 0
Cruzada
VRC 1 1 1 1 correcta
errónea
0 1 0 0
0 0 0 1
LRC
0 0 0 0 errónea
0 0 1 1
0 0 1 1
0 0 1 0
Escuela Politécnica Superior 23
Códigos para tratamiento de errores
• Paridad vertical, longitudinal y cruzada
- Ejemplo 2: Detección y no corrección de errores triples
• Imposibilidad de corrección: Error en las posiciones sospechosas
Bits
sospechosos 0 0 0 0
1 1 1 1
0 1 0 0
0 0 0 1
0 0 0 0
0 0 1 1
0 0 1 1
0 0 1 0
Escuela Politécnica Superior 24
Códigos para tratamiento de errores
• Paridad vertical, longitudinal y cruzada
- Ejemplo 3: Detección y no corrección de errores dobles
• Error doble en el caso anterior (rojo) (se supone que no afecta a
las paridades)
0 0 0 0
1 0 1 1
Errores 0 0 0 0
1 0 0 1
1 0 0 0
0 0 1 1
0 0 1 1
0 1 1 0
Escuela Politécnica Superior 25
Códigos para tratamiento de errores
• Paridad vertical, longitudinal y cruzada
- Ejemplo 3: Detección y no corrección de errores dobles
• Detección mediante errores en bits de paridad
0 0 0 0 Cruzada
1 0 1 1 correcta
VRC 0 0 0 0
errónea
1 0 0 1 LRC
1 0 0 0 errónea
0 0 1 1
0 0 1 1
0 1 1 0
Escuela Politécnica Superior 26
Códigos para tratamiento de errores
• Paridad vertical, longitudinal y cruzada
- Ejemplo 3: Detección y no corrección de errores dobles
• Imposibilidad de corrección: No todas las posiciones
sospechosas son erróneas
Bits
sospechosos 0 0 0 0
1 0 1 1
0 0 0 0
1 0 0 1
1 0 0 0
0 0 1 1
0 0 1 1
0 1 1 0
Escuela Politécnica Superior 27
Códigos para tratamiento de errores
• Paridad vertical, longitudinal y cruzada
- Ejemplo 4: Detección y corrección de error simple
• Error simple en el caso anterior (rojo) (se supone que no
afecta a las paridades)
0 0 0 0
1 1 1 1
0 0 0 0
1 0 0 1
Error 1 0 0 0
0 0 1 1
0 0 1 1
0 1 1 0
Escuela Politécnica Superior 28
Códigos para tratamiento de errores
• Paridad vertical, longitudinal y cruzada
- Ejemplo 4: Detección y corrección de error simple
• Detección mediante errores en bits de paridad
VRC
0 0 0 0 Cruzada
errónea 1 1 1 1 correcta
0 0 0 0
1 0 0 1 LRC
1 0 0 0 errónea
0 0 1 1
0 0 1 1
0 1 1 0
Escuela Politécnica Superior 29
Códigos para tratamiento de errores
• Paridad vertical, longitudinal y cruzada
- Ejemplo 4: Detección y corrección de error simple
• La identificación inequívoca del bit erróneo permite su corrección
Bit
sospechoso 0 0 0 0
y erróneo 1 1 1 1
0 0 0 0
1 0 0 1
1 0 0 0
0 0 1 1
0 0 1 1
0 1 1 0
Escuela Politécnica Superior 30
Códigos para tratamiento de errores
• Códigos i en n
- O códigos de verificación de cuenta fija
- El código i en n está formado por las palabras
binarias de n bits que tienen i bits igual a 1
- Observaciones:
• Número de palabras posibles de n bits: Variaciones con
repetición de 2 elementos tomados de n en n: 2n
• Número de palabras del código: Permutaciones de n
elementos. 1 se repite i veces y 0 n-i veces
n!
i! (n - i)!
4! 4!
180º 0º=360º
270º
Escuela Politécnica Superior 34
Códigos para tratamiento de errores
» El siguiente a 359 es 0
» El anterior a 0 es 359
» Tres más que 358 es 1
» Cinco menos que 2 es 357
12h 0h=24h
+ 0 1 - 0 1 * 0 1
1+1=0
0-1=1 0 0 1 0 0 1 0 0 0
1 1 0 1 1 0 1 0 1
Escuela Politécnica Superior 37
Códigos para tratamiento de errores
• Códigos polinómicos o de redundancia cíclica
- Conceptos previos
• Observaciones sobre los polinomios Q[x]
- División de polinomios con coeficientes racionales (Q)
Ejemplo: D = 6x4 + 9x3 + 5x + 2 y d = 2x2 - 1
6x4 +9x3 +0x2 +5x +2 2x2 +0x -1
6x4 +0x3 -3x2 3x2 +(9/2)x +(3/2)
0x4 +9x3 +3x2 +5x
+9x3 +0x2 -(9/2)x
0x3 +3x2 +(19/2)x +2
+3x2 +0x -(3/2)
0x2 +(19/2)x +(7/2)
0+ 0= 0
0+ 1= 1
1+ 0= 1
1+ 1= 0 (sin acarreo)
0– 0= 0
0– 1= 1 (sin acarreo)
1– 0= 1
1– 1= 0
1 0 0 1 10 1 1000 1001
1 00 1 10001010
0 0001 0 1 1
1 00 1
001 0 0 0
1 00 1
0 00 1 0
• Se transmite 10011011010 (4DA16)
Escuela Politécnica Superior 46
Códigos para tratamiento de errores
• Códigos polinómicos o de redundancia cíclica
- El polinomio generador
• La selección del polinomio generador es esencial si queremos
detectar la mayoría de los errores que ocurran
• Se puede demostrar (no objeto de este curso) que los polinomios
generadores son más potentes con el primer y último bits a 1
• Ejemplos de polinomios generadores (estándares
internacionales):
(Solución: 5B216)