hamming 2012

14
HAMING ALVARO CISNEROS DANIEL SEPULVEDA

Upload: alvaro-humberto-cisneros

Post on 04-Jul-2015

341 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Hamming 2012

HAMING

ALVARO CISNEROS

DANIEL SEPULVEDA

Page 2: Hamming 2012

CÓDIGO HAMING

• Es un código que se utiliza en la detección y corrección de errores que se producen en la transmisión de códigos binarios, la palabra de código se conforma por los bits de comprobación y los bits de información.

• Las distancia mínima de Haming está dada por la siguiente ecuación:Dm= 2X+1

• Donde Dm es la distancia mínima de un código para permitir la corrección de datos y X es las líneas de datos.

• n: número de bits del código original que se pretende transmitir. • p: número de bits de paridad par generados en el transmisor, o sea,

número de líneas que añadimos al código inicial. • c: número de bits detectores de paridad par generados por el receptor.

Page 3: Hamming 2012

CÓDIGO HAMING

• Combinaciones posibles

• Orden para asignar combinaciones

• 1. Combinación asignada a la situación en que no haya error en la transmisión. • 2. Combinaciones asignadas a los bits de paridad generados en el transmisor. • 3. Combinaciones asignadas a los bits de datos del código original.

• Notación (k,n) • n = número de bits de información• h = número de bits de la cadena = 2c -1• La notación sería la siguiente (h,n)

Page 4: Hamming 2012

CÓDIGO HAMING

# b Combinaciones

# DE

"1"

2^

3

2^

2

2^

1

2^

0 CORRESPONDENCIA

b0 0 0000 0 0 0 0 0

SITUACIÓN DE NO

ERROR

b1 1 0001 1 0 0 0 1 BIT DE PARIDAD "1"

b2 2 0010 1 0 0 1 0 BIT DE PARIDAD "2"

b3 3 0011 2 0 0 1 1 DATO 1

b4 4 0100 1 0 1 0 0 BIT DE PARIDAD "3"

b5 5 0101 2 0 1 0 1 DATO2

b6 6 0110 2 0 1 1 0 DATO 3

b7 7 0111 3 0 1 1 1 DATO 4

b8 8 1000 1 1 0 0 0 BIT DE PARIDAD "4"

b9 9 1001 2 1 0 0 1 DATO 5

b10 10 1010 2 1 0 1 0 DATO 6

b11 11 1011 3 1 0 1 1

NO SE USA EN EL

EJEMPLO

b12 12 1100 2 1 1 0 0 DATO 7

b13 13 1101 3 1 1 0 1

NO SE USA EN EL

EJEMPLO

b14 14 1110 3 1 1 1 0

NO SE USA EN EL

EJEMPLO

b15 15 1111 3 1 1 1 1

NO SE USA EN EL

EJEMPLO

• Diseño de tabla para codificar datos de una fuente ASCII de 7 bits.

• Para la asignación de los eventos se realiza lo siguiente:

• Contar Número de unos en las combinaciones

• Si el número de unos es cero es una situación de no error y no se utiliza para enviar dato

• Si el número de unos es 1, debemos empezar a organizar los bits de paridad desde el primero hasta el último y darles su respectiva asignación.

• Si el número de unos es 2 en estos deben colocarse para los datos, si las combinaciones de 2 unos no son suficientes para los datos debemos empezar con los de 3 y luego los de 4 así sucesivamente, se prefiere que se coloquen los datos primero en los grupos de 2.

• Si no se tienen más datos esas líneas no son válidas y se omiten en el sistema de verificación.

Page 5: Hamming 2012

CÓDIGO HAMING

• Los bits de paridad b1, b2, b4, b8, no tienen un valor fijo este valor se encuentra por las siguientes relaciones:

• b1 = b3 ⊕ b5 ⊕ b7 ⊕ b9 ⊕ b11 ⊕ b13 ⊕ b15

• b2 = b3 ⊕ b6 ⊕ b7 ⊕ b10 ⊕ b11 ⊕ b14 ⊕ b15

• b4 = b5 ⊕ b6 ⊕ b7 ⊕ b12 ⊕ b13 ⊕ b14 ⊕ b15• b8 = b9 ⊕ b10 ⊕ b11 ⊕ b12 ⊕ b13 ⊕ b14 ⊕ b15

Page 6: Hamming 2012

• Se obtienen los coeficientes b1 , b2, b3, b4 de las relaciones anteriormente descritas

# b 2^3 2^2 2^1 2^0 b8 b4 b2 b1

b1 b1 0 0 0 1 0

b2 b2 0 0 1 0 0

b3 d1 0 0 1 1 1 1 1

b4 b4 0 1 0 0 0

b5 d2 0 1 0 1 0 0 0

b6 d3 0 1 1 0 0 0 0

b7 d4 0 1 1 1 1 1 1 1

b8 b8 1 0 0 0 1

b9 d5 1 0 0 1 0 0 0

b10 d6 1 0 1 0 0 0 0

b11 1 0 1 1 0 0 0

b12 d7 1 1 0 0 1 1 1

b13 1 1 0 1 0 0 0

b14 1 1 1 0 0 0 0

b15 1 1 1 1 0 0 0 0

1 0 0 0

Page 7: Hamming 2012

CORRECCIÓN DE ERRORESDATOS TX DATOS RX

# b b8 b4 b2 b1 b8 b4 b2 b1

b1 b1 0 b1 1

b2 b2 0 b2 1

b3 d1 1 1 1 d1 1 1 1

b4 b4 0 b4 1

b5 d2 0 0 0 d2 0 0 0

b6 d3 0 0 0 d3 0 0 0

b7 d4 1 1 1 1 d4 0 0 0 0

b8 b8 1 b8 1

b9 d5 0 0 0 d5 0 0 0

b10 d6 0 0 0 d6 0 0 0

b11 0 0 0 0 0 0

b12 d7 1 1 1 d7 1 1 1

b13 0 0 0 0 0 0

b14 0 0 0 0 0 0

b15 0 0 0 0 0 0 0 0

1 0 0 0 1 1 1 1

Page 8: Hamming 2012

SÍNDROME Y CORRECCIÓN DE ERROR

• Como se observa en la recepción hay un valor diferente de los datos transmitidos, si se realizan los valores de b1, b2, b4, b8, son distintos en ambos lados.

• Ahora debemos compararlo

Page 9: Hamming 2012

SÍNDROME

• Es un proceso donde se suman los valores de bits de paridad encontrados en el receptor con los valores de paridad envidados, se debe realizar una operación EXOR uno a uno y el resultado que se obtiene es la ubicación donde se encuentra el error.

• Su formula es:

• Donde C son los bits de paridad de transmisión y envió.

Page 10: Hamming 2012

CORRECCIÓN DE ERROR

1 1 1 1 bloque par recibido

1 0 0 0 bloque par enviado

0 1 1 1 7

2^3 2^2 2^1 2^0 #b dato dañado

• En el ejemplo es 0111 si esto se pasa a decimal es 7 si vemos en la tabla del ejemplo el dato que se encuentra erróneo se encuentra en la combinación 7 la cual es la asignada al dato 4.

• Por lo tanto se realiza el cambio de signo de 0 a 1

Page 11: Hamming 2012

DETECCIÓN Y EFICIENCIA SOBRE CANAL

• Si m es igual a la distancia mínima de un código Haming podemos determinar que el factor de detección y corrección de un código depende de:

• Además si n = numero de bits de la cadena de salida• k = numero de bits de información• La eficiencia sobre el canal de transmisión será la siguiente: • n/k • Con estos datos se puede obtener la siguiente tabla

Page 12: Hamming 2012

DETECCIÓN Y EFICIENCIA SOBRE CANAL

Page 13: Hamming 2012

HAMING EXTENDIDO

• El Código Haming extendido se logra con dos métodos:

• 1 - Añadiendo un bit de paridad a cada palabra de código

• 2- Añadir una ecuación general de paridad

• Para ambos casos la distancia de Haming debe ser mayor o igual a 4

• Se puede corregir errores simples y errores dobles.

Page 14: Hamming 2012

CONCLUSIONES

• El código Haming fue uno de los códigos más importantes para el desarrollo de corrección de errores, aún si un medio presenta una distorsión muy alta en la cual se pierdan varios bits se puede aumentar la distancia de Haming para corregir y verificar que los datos lleguen correctamente a su destino.

• El síndrome es una operación que relaciona los bits de paridad por medio de una función EXOR bit a bit, si este resultado es 0 en cada bit de paridad no indica que el paquete de datos llego sin errores pero si nos indica un error o un 1 nos debe indicar el lugar donde se presenta dicho problema.

• Para entender de una manera más sencilla la elaboración del código se utilizaron tablas pero por lo general se utilizan matrices y relaciones entre ellas para poder lograr relaciones cruzadas y obtener los valores de bits de paridad.

• El sistema de códigos Haming es muy utilizado en elementos como memorias y en comunicaciones en las tramas de Wifi.