detección y corrección de errores mediante el codigo de hamming

28
Universidad Distrital, Maestría en Teleinformática, Bogotá D.C., Colombia. Mayo de 2012 Corrección de Errores Mediante el Codigo de Hamming

Upload: dunne

Post on 23-Feb-2016

140 views

Category:

Documents


2 download

DESCRIPTION

Detección y Corrección de Errores Mediante el Codigo de Hamming. Universidad Distrital, Maestría en Teleinformática, Bogotá D.C., Colombia. Mayo de 2012. INTEGRANTES. ALVARO HUMBERTO CISNEROS DANIEL SEPULVEDA NUÑEZ. CONTENIDO. HISTORIA TÉCNICAS DE DETECCIÓN DE ERRORES - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

Universidad Distrital, Maestría en Teleinformática,

Bogotá D.C., Colombia.Mayo de 2012

Detección y Corrección de Errores Mediante el Codigo

de Hamming

Page 2: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

ALVARO HUMBERTO CISNEROS

DANIEL SEPULVEDA NUÑEZ

INTEGRANTES

Page 3: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

HISTORIA TÉCNICAS DE DETECCIÓN DE ERRORES TÉCNICAS DE CORRECCIÓN DE ERRORES RICHARD WESLEY HAMMING CÓDIGO HAMING CORRECCIÓN DE ERRORES SÍNDROME Y CORRECCIÓN DE ERROR DETECCIÓN Y EFICIENCIA SOBRE CANAL HAMING EXTENDIDO CONCLUSIONES BIBLIOGRAFÍA

CONTENIDO

Page 4: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

Cuando se transmite información, se corre el riesgo de la

presencia de interferencia o ruido.

El origen de la teoría de códigos correctores de errores se encuentra en los trabajos de Golay, Hamming y Shannon.

Inicio enfoque probabilístico, pasa a un enfoque más algebraico [códigos de Golay y de Hamming, los códigos cíclicos y BCH, o los códigos de Reed-Solomon y de Reed-Muller].

HISTORIA

Page 5: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

En los 70 Goppa – Construye códigos lineales a partir de

curvas algebraicas lisas llamados códigos AG (álgebro-geométricos).

Los códigos AG apenas han sido implementados en la práctica debido a la profundidad matemática de las ideas subyacentes.

Los métodos de decodificación para códigos geométricos de Goppa son efectivos, su preprocesamiento es de una elevada dificultad e involucra complejos algoritmos basados en métodos de la geometría algebraica computacional.

HISTORIA

Page 6: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

Códigos VRC (Vertical Redundancy Check).

En esta técnica, un bit redundante, denominado bit de paridad, se añade al final de cada bloque de datos.

Código LRC (Longitudinal Redundancy Check).Esta técnica consiste en VRC de dos dimensiones, se agrupa un determinado número de unidades de datos en un bloque, cada uno con su bit VRC correspondiente. Se calcula el bit de paridad entre cada bit de todas y cada una de las unidades de datos (primeros bits, segundos, etc.). Se reúnen los bits de paridad de todas las posiciones en una nueva unidad de datos y se añade al final del bloque.

TÉCNICAS DE DETECCIÓN DE

ERRORES

Page 7: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

Comprobación de redundancia cíclica (CRC).

Dado un bloque o mensaje de k bits, el transmisor genera una secuencia de n bits, denominada secuencia de comprobación de trama (FCS Frame Check Sequence), la trama resultante, de n + k bits sea divisible por algún número predeterminado (patrón de bits). El receptor dividirá la trama recibida por el mismo patrón de bits y, si el resto en la división (resto 0), indica que la transmisión ha sido correcta, sin error.

TÉCNICAS DE DETECCIÓN DE

ERRORES

Page 8: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

Requerimiento automático de repetición (ARQ)

Pare y espere ( stop and wait ARQ ): Cuando el receptor recibe una trama procede a validarla, si no contiene errores envía una señal de confirmación hacia el emisor ACK (acknowledge). Si hay error envía una señal de recepción errónea llamada NAK (negative acknowledge).

Envío continuo ( Continuos ARQ ): Presenta el inconveniente de reducir el tiempo de utilización efectiva de los canales de comunicación dado que cada mensaje debe ser confirmado individualmente y todo se paraliza hasta que ello ocurre.

TÉCNICAS CORRECCIÓN DE ERRORES

Page 9: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

Corrección de errores hacia adelante (FEC)

Códigos de bloque: Un código de bloques convierte k bits de entrada en n bits de salida con n>k, este es un código sin memoria.

Códigos de árbol: Un código de árbol es producido por un codificador con memoria, a este grupo pertenecen los códigos convolucionales, los cuales tienen como característica que a cada bit de una secuencia se le aplica una operación binaria especifica.

TÉCNICAS CORRECCIÓN DE ERRORES

Page 10: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

Richard Wesley

Hamming Programó el computador que realizo los campos para la 1ra.

Bomba Atómica. 1950 Trabajando en los laboratorios Bell junto a Shannon,

desarrolló y público la teoría de codificación. Fue el Precursor de los lenguajes de programación de alto nivel. Su descubrimiento fue uno de los más importantes en la ciencia

de la informática. Su método permite identificar un bit erróneo en una palabra

codificada (en binario). Esto es, si un bit es incorrecto, por ejemplo: el cambio de un 1 por un 0 en una transmisión, podemos no solo detectar el bit erróneo, sino además corregirlo.

Page 11: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

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 12: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

CÓDIGO HAMING

Combinaciones posibles

Orden para asignar combinaciones

Combinación asignada a la situación en que no haya error en la transmisión.

Combinaciones asignadas a los bits de paridad generados en el transmisor. Combinaciones asignadas a los bits de datos del código original.

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

Page 13: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

CÓDIGO HAMING

Combinaciones posibles

Orden para asignar combinaciones

Combinación asignada a la situación en que no haya error en la transmisión.

Combinaciones asignadas a los bits de paridad generados en el transmisor. Combinaciones asignadas a los bits de datos del código original.

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

Page 14: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

CÓDIGO HAMING

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.

# b

Combinaciones

# DE "1"

2^3

2^2

2^1

2^0

CORRESPONDENCIA

b0 0 0000 0 0 0 0 0SITUACIÓN DE NO ERROR

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

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

b3 3 0011 2 0 0 1 1 DATO 1

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

b5 5 0101 2 0 1 0 1 DATO2b6 6 0110 2 0 1 1 0 DATO 3b7 7 0111 3 0 1 1 1 DATO 4

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

b9 9 1001 2 1 0 0 1 DATO 5b10 10 1010 2 1 0 1 0 DATO 6b11 11 1011 3 1 0 1 1

NO SE USA EN EL EJEMPLO

b12 12 1100 2 1 1 0 0 DATO 7b13 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

Page 15: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

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 16: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

CÓDIGO HAMING

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 b1b1 b1 0 0 0 1 0 b2 b2 0 0 1 0 0 b3 d1 0 0 1 1 1 1 1b4 b4 0 1 0 0 0 b5 d2 0 1 0 1 0 0 0b6 d3 0 1 1 0 0 0 0 b7 d4 0 1 1 1 1 1 1 1b8 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 01 0 0 0

Page 17: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

CORRECCIÓN DE

ERRORES DATOS TX DATOS RX

# b b8 b4 b2 b1 b8 b4 b2 b1b1 b1 0 b1 1 b2 b2 0 b2 1 b3 d1 1 1 1 d1 1 1 1b4 b4 0 b4 1 b5 d2 0 0 0 d2 0 0 0b6 d3 0 0 0 d3 0 0 0 b7 d4 1 1 1 1 d4 0 0 0 0b8 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 18: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

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.

SÍNDROME Y CORRECCIÓN DE ERROR

Page 19: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

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ó.

SÍNDROME Y CORRECCIÓN DE ERROR

Page 20: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

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

SÍNDROME Y 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

Page 21: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

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

DETECCIÓN Y EFICIENCIA SOBRE CANAL

Page 22: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

DETECCIÓN Y EFICIENCIA

SOBRE CANAL

Page 23: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

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.

HAMING EXTENDIDO

Page 24: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

CONCLUSIONES

La integración de código redundante permite realizar la corrección en cierta medida de los errores presentados en la transmisión; sin embargo hace menos eficiente el proceso de codificación, por lo cual se deberá lograr un equilibrio entre codificación redundante y eficiente dadas las características del canal.

Aunque los parámetros de los códigos AG son mejores que los clásicos para códigos de longitud arbitrariamente grande, las aplicaciones técnicas no se han visto aún en la necesidad práctica de sustituir los códigos que actualmente se utilizan por otros de mayor longitud sin que se dispare simultáneamente el coste y la tasa de error.

Page 25: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

CONCLUSIONES

El Código Hamming, es un sistema de detección y corrección automática de errores en información electrónica, el cual asocia una serie de bits de validación o paridad a los bits de datos, de tal forma que una alteración en cualquiera de esos bits de datos pueda ser detectada y corregida adecuadamente.

La distancia Hamming permite establecer el numero de bits erróneos que pueden ser corregidos ó detectados mediante las formulas:

Detección=(m-1)Corrección=(m-1)/2

Page 26: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

CONCLUSIONES

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.

Page 27: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

Comunicaciones y Redes de Procesamiento de Datos. Nestor Gonzáles

Sainz. Ed Mac Graw . 1987. Wikipedia.[online]. Algoritmos de Código de Redundancia Cíclica.

<http://es.wikipedia.org/wiki/Algoritmo_de_los_C%C3%B3digos_de_Redundancia_C%C3%ADclica>

Tio Petros. [online]. Aritmética Modular. <http://tiopetrus.blogia.com/2005/060401-aritmetica-modular-4-.php>

Códigos Detectores y Correctores de Errores. Códigos de Redundancia Cíclica. < http://www.argo.es/~jcea/pics/artic/ecc-crc.htm>

MODIANO, Eytan. [online]. La capa de enlace de Datos: Entramado y Detección de Errores< http://mit.ocw.universia.net>.

Demeter. Codificación de Señales. Ver. 1.1. 2 de Diciembre de 2003 [email protected]. Apuntes de IIC 3512 -- El nivel de enlace. Dic. 1996.

<http://www.cs.virginia.edu/~knabe/iic3512/apuntes_4.html> Códigos Lineales. http://jungla.dit.upm.es/~trdt/apuntes

BIBLIOGRAFÍA

Page 28: Detección y Corrección de Errores Mediante el  Codigo  de  Hamming

GRACIAS