2. INTEGRANTES
ALVARO HUMBERTO CISNEROS
DANIEL SEPULVEDA NUÑEZ
3. CONTENIDO
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
4. HISTORIA
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].
5. HISTORIA
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.
6. TÉCNICAS DE
DETECCIÓN DE ERRORES
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.
7. TÉCNICAS DE
DETECCIÓN DE ERRORES
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.
8. TÉCNICAS CORRECCIÓN
DE ERRORES
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.
9. TÉCNICAS CORRECCIÓN
DE ERRORES
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.
10. 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.
11. 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.
12. 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ón
h = número de bits de la cadena = 2c -1
La notación sería la siguiente (h,n)
13. 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ón
h = número de bits de la cadena = 2c -1
La notación sería la siguiente (h,n)
14. CÓDIGO HAMING
2
Combinacion # DE 2^ 2^ ^ CORRESPONDE
#b
b0
es
0 0000
"1"
0
3 2 1 2^0 NCIA
0 0 0
SITUACIÓN DE
0 NO ERROR
BIT DE PARIDAD
Diseño de tabla para codificar datos de una
fuente ASCII de 7 bits.
b1 1 0001 1 0 0 0 1 "1"
Para la asignación de los eventos se realiza lo
BIT DE PARIDAD siguiente:
b2 2 0010 1 0 0 1 0 "2"
b3 3 0011 2 0 0 1 1 DATO 1 Contar Número de unos en las combinaciones
BIT DE PARIDAD
b4 4 0100 1 0 1 0 0 "3"
Si el número de unos es cero es una situación de
b5 5 0101 2 0 1 0 1 DATO2 no error y no se utiliza para enviar dato
b6 6 0110 2 0 1 1 0 DATO 3
b7 7 0111 3 0 1 1 1 DATO 4 Si el número de unos es 1, debemos empezar a
BIT DE PARIDAD organizar los bits de paridad desde el primero
b8 8 1000 1 1 0 0 0 "4" hasta el último y darles su respectiva asignación.
b9 9 1001 2 1 0 0 1 DATO 5
b10 10 1010 2 1 0 1 0 DATO 6 Si el número de unos es 2 en estos deben
NO SE USA EN EL colocarse para los datos, si las combinaciones de
b11 11 1011 3 1 0 1 1 EJEMPLO
2 unos no son suficientes para los datos
debemos empezar con los de 3 y luego los de 4
b12 12 1100 2 1 1 0 0 DATO 7 así sucesivamente, se prefiere que se coloquen
NO SE USA EN EL los datos primero en los grupos de 2.
b13 13 1101 3 1 1 0 1 EJEMPLO
NO SE USA EN EL Si no se tienen más datos esas líneas no son
b14 14 1110 3 1 1 1 0 EJEMPLO válidas y se omiten en el sistema de verificación.
NO SE USA EN EL
b15 15 1111 3 1 1 1 1 EJEMPLO
15. 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
18. 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.
19. SÍNDROME Y
CORRECCIÓN DE ERROR
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ó.
20. SÍNDROME Y
CORRECCIÓN DE ERROR
1 1 1 1 bloque par recibido En el ejemplo es 0111 si
esto se pasa a decimal es
1 0 0 0 bloque par enviado 7 si vemos en la tabla del
ejemplo el dato que se
0 1 1 1 7 encuentra erróneo se
encuentra en la
2^3 2^2 2^1 2^0 #b dato dañado combinación 7 la cual es
la asignada al dato 4.
Por lo tanto se realiza el
cambio de signo de 0 a 1
21. 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
23. 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.
24. 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.
25. 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
26. 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.
27. BIBLIOGRAFÍA
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_Re
dundancia_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
knabe@ing.puc.cl. 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