Vous êtes sur la page 1sur 17

Cdigo Hamming

Deteccin y correccin de errores

Informacin

Publicado en 1950 por Richard Hamming. Se puede detectar error en un bit y corregirlo. Para errores en dos bits se utiliza Hamming extendido (pero no corrige). Se utiliza para reparar errores en la trasmisin de datos, donde puede haber perdidas.

Bits paridad/Bits datos

Agrega tres bits adicionales de comprobacin por cada cuatro bits de datos del mensaje. Bits de paridad: Bits cuya posicin es potencia de 2 (1,2,4,8,16,32,64,) Bits de datos: Bits del resto de posiciones (3,5,6,7,9,10,11,12,13,14,15,17)

Algoritmo

Cada bit de paridad se obtiene con la paridad de algunos de los bits de datos:

Posicin 1 : Salta 0, Comp 1, Salta 1, Comp 1 Posicin 2 : Salta 1, Comp 2, Salta 2, Comp 2 Posicin 4 : Salta 3, Comp 4, Salta 4, Comp 4 Posicin n : Salta n-1, Comp n, Salta n, Comp n..

Ejemplo: 0110101
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Palabra s/p
P1 P2 P3 p4 Palabra c/p

Ejemplo: 0110101
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Palabra s/p
P1 P2 P3 p4 Palabra c/p 1

0
0

1
1

0
0

1
1

1
1

Ejemplo: 0110101
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Palabra s/p
P1 P2 P3 p4 Palabra c/p 1 0

0
0 0

1
1

0
0

1
1

1
1

Ejemplo: 0110101
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Palabra s/p
P1 P2 P3 p4 Palabra c/p 1 0

0
0 0 0

1
1

0
0

1
1

1
1

1 1 1

0 0

Ejemplo: 0110101
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Palabra s/p
P1 P2 P3 P4 Palabra c/p 1 0

0
0 0 0

1
1

0
0

1
1

1
1

1 1 1

0 0 0 1

Ejemplo: 0110101
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Palabra s/p
P1 P2 P3 P4 Palabra c/p 1 0 0 0 1 1 0 1 0

0
0 0 0

1
1

0
0

1
1

1
1

1 1 1

0 0 0 0 1 1

0 0

1 1

Comprobando Error

Ahora supongamos que el 3 bit de derecha a izquierda cambia de 1 a 0, la nueva palabra seria:

10001100101 => 10001100001

Comprobando Error
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Bit paridad Palabra s/p P1 P2 P3 P4 Palabra c/p 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1

Comprobando Error
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Bit paridad Palabra s/p P1 P2 P3 P4 Palabra c/p 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1

Comprobando Error
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Bit paridad Palabra s/p P1 P2 P3 P4 Palabra c/p 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0

Comprobando Error
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Bit paridad Palabra s/p P1 P2 P3 P4 Palabra c/p 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0

Comprobando Error
p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Bit paridad Palabra s/p P1 P2 P3 P4 Palabra c/p 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1

Corrigiendo error

Los bits de paridad nos dicen que el error esta en la posicin:

1001 = 9

El error est en el 9 bit:

10001100001

El nmero original era: 10001100101 = 0110101

Vous aimerez peut-être aussi