You are on page 1of 4

DETECCIÓN Y CORRECCION DE ERRORES

En los procesos de almacenamiento, transmisión, escritura de datos se


pueden producir errores. Con la detección de errores aseguramos la integración
de la información; con la corrección hay una tolerancia al fallo.
Si los valores válidos difieren en un solo bit, no es posible la detección
del error.

Entonces definimos:

Distancia entre dos representaciones válidas: cantidad de bits para pasar de una
representación a otra.

Distancia mínima de un código: mínima cantidad de bits que se debe cambiar para
pasar de una representación válida a otra.

Sea
M: distancia mínima
D: capacidad de detección
C: capacidad de corrección

≥C
M-1 = D+C , D≥

Capacidad de detección (corrección) se define como uno menos de los que no


siempre puede ser detectado ó corregido. Podemos generar la siguiente tabla:

M D C
1 - -
2 1 -
3 2 -
1 1
4 3 -
2 1

PARIDAD

Se puede trabajar con PARIDAD PAR que es un dato compuesto por un número
par de 1’s o con PARIDAD IMPAR que es un dato compuesto por un número impar de
1’s.

Bit de paridad

DATO BP

El bit de paridad es aquel que hace que el dato tenga una paridad par ó
impar. Ya que la paridad se toma como:
Nro de 1’s del dato + Bit de paridad

1
Ejemplo:

Sea A = 10011001 (4 1’s)


B = 11010101 (5 1’s)

Con paridad par:

A= 100110010 (el BP=0 ya que ya tenía un nro par de 1’s)


B= 110101011 (el BP=1 ya que tenía un nro impar de 1’s)

Paridad(A) = 4 + BP = 4 + 0 = 4 = par
Paridad(B) = 5 + BP = 5 + 1 = 6 = par

Con paridad impar:

A= 100110011 (el BP=1 ya que ya tenía un nro par de 1’s)


B= 110101010 (el BP=0 ya que tenía un nro impar de 1’s)

Paridad(A) = 4 + BP = 4 + 1 = 5 = impar
Paridad(B) = 5 + BP = 5 + 0 = 5 = impar

CODIGO HAMMING (mínima distancia 3)

Sea
n: bits del dato
m: bits redundantes (código)

m ≥ log2(n)+1

Se un dato de n=8 bits, por lo tanto m=4. Los bits de código se colocan en
potencias de dos:

B=(b0 b1 b2 b3 b4 b5 b6 b7)

1 2 3 4 5 6 7 8 9 10 11 12
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 (pos.)
C0 C1 b0 C2 b1 b2 b3 C3 b4 b5 b6 b7

Cálculo de los Ci

Los Ci se calculan (si es paridad par) haciendo el XOR de los bits del dato en
cuya posición, el bit i de la misma coincida con el bit i de la posición del Ci.
En caso de ser paridad impar se calculan del mismo modo pero se nega el
resultado. (Es decir si con paridad par C1=1 entonces con paridad impar C1=0)

Los Ci vendrían a ser como el bit de paridad del grupo de bits de dato con el
cual se calcula.

3 210
Por ejemplo: la posición del Co es 0001 entonces el bit i=0 de la posición es 1;
las posiciones correspondiente a los bits del dato que cumplen con este
requisito son: 0011, 0101, 0111, 1001, 1011 entonces:

C0 = b0 ⊕ b 1 ⊕ b3 ⊕ b4 ⊕ b6 = b (b=1 ó 0) (Paridad Par)


C0 = b0 ⊕ b 1 ⊕ b3 ⊕ b4 ⊕ b6 = b (b=1 ó 0) (Paridad Impar)

2
Cuando se recupera el dato se recalcula los C’i del mismo modo que antes
indicado y se efectúa la siguiente operación

Ci ⊕ C’i = Pi (Pi es una componente del vector puntero al bit en error)

Entonces P=(Pm-1 Pm-2 ... P0) nos indica la posición del bit en error

OBS.

A B A ⊕ B
0 0 0
0 1 1
1 0 1
1 1 0

Ejemplo

B=10110110 ⇒ b0=1, b1=0, b2=1, b3=1, b4=0, b5=1, b6=1, b7=0

1 2 3 4 5 6 7 8 9 10 11 12
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 (pos.)
C0 C1 1 C2 0 1 1 C3 0 1 1 0

Paridad Par

C0 = b0 ⊕ b1 ⊕ b3 ⊕ b4 ⊕ b6 = 1
C1 = b0 ⊕ b2 ⊕ b3 ⊕ b5 ⊕ b6 = 1
C2 = b1 ⊕ b2 ⊕ b3 ⊕ b7 = 0
C3 = b4 ⊕ b5 ⊕ b6 ⊕ b7 = 0

Luego Hamming queda:

1 2 3 4 5 6 7 8 9 10 11 12
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 (pos.)
1 1 1 0 0 1 1 0 0 1 1 0

Ahora supongamos que se produjo un error y se cambia el bit de la posición 9


(1001)

1 2 3 4 5 6 7 8 9 10 11 12
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 (pos.)
1 1 1 0 0 1 1 0 1 1 0

Recalculamos los C’i, entonces:

C’0=0
C’1=1
C’2=0
C’3=1

Luego:
P0 = C0 ⊕ C’0 = 1 ⊕ 0 = 1
P1 = C1 ⊕ C’1 = 1 ⊕ 1 = 0
P2 = C2 ⊕ C’2 = 0 ⊕ 0 = 0
P3 = C3 ⊕ C’3 = 0 ⊕ 1 = 1

entonces P = (1001) esto indica la posición en que se produjo el error, y como


era de esperar esa posición corresponde al bit que supusimos que cambió.

3
CODIGO HAMMING EXTENDIDO (mínima distancia 4)

H A M M I N G P

P:paridad

Se pueden dar 3 posibilidades:

• No hay error ⇒ Hamming=0 – Paridad OK

• Un bit en error ⇒ Paridad FALLO Hamming=0 ⇒ P incorrecto, luego P= P


Hamming≠0 ⇒ corrijo según Hamming

• Dos bit en error ⇒ Paridad OK, Hamming≠0, por lo tanto informo, NO corrijo

Marcos Meli
MarcosMeli@gmx.net

You might also like