Anda di halaman 1dari 6

DETECCIN DE ERRORES Y CDIGOS DE CORRECCIN

Julio David Escorza Paredes


e-mail: David_p.o.d15@hotmail.com

Juan Andrs Garcs Albn


e-mail: Juanandrew64@hotmail.com
Mecatrnica, Sexto, Universidad de las Fueras Armadas ESPE-Extensin Latacunga, Mrquez de
Maenza S/N Latacunga, Ecuador.
Fecha de presentacin: 6 de noviembre de 2014.

2 DESARROLLO

RESUMEN: El presente documento tiene como


finalidad definir los cdigos de deteccin y correccin de
errores de transmisin, en este caso el cdigo CRC y el
cdigo Hamming, mediante la recopilacin de
informacin especializada en el tema tomada de
diferentes fuentes de informacin. Despus del anlisis
y la sntesis de la informacin, se lleg a determinar que
el cdigo CRC, siglas de cdigo de Comprobacin de
Redundancia Cclica, es un cdigo de deteccin de
errores el cual consiste en una serie de operaciones que
tanto el emisor como el receptor deben llevar a cabo
para comprobar que la transmisin del mensaje haya
sido correcta. Mientras que el cdigo Hamming es un
cdigo de correccin de errores, el cual consiste en usar
una comparacin de paridad para determinar la posicin
del error en el mensaje y bajo los mismos principios de
paridad se procede a solucionar el error cambiando el
dgito errneo.

2.1 TIPOS DE ERRORES


Las redes deben ser capaces de transmitir datos
de un dispositivo a otro con total exactitud, si los datos
recibidos no son idnticos a los emitidos, el sistema de
comunicacin es intil. Sin embargo, siempre que se
transmiten datos de un origen a un destino, se pueden
corromper por el camino debido a numerosas
interferencias: calor, magnetismo, etc. [1]

2.1.1 ERROR DE BIT


nicamente un bit de una unidad de datos
determinada cambia de 1 a 0 o viceversa alterando el
significado del dato. [1]

PALABRAS CLAVE: cdigo, deteccin, correccin,


error, bit.

1 INTRODUCCIN

Figura 1: Ilustracin del error de bit. Tomado de [2]

Cuando se quiere conectar dos o ms computadoras


entre s para transmitirse cierta informacin, es
necesario conectarlas mediante un soporte fsico de
transmisin. Esta conexin puede ser local, urbana,
interurbana o internacional, y est constituida en base a
un cable de hilo, coaxial, enlace de radio, satlite, etc.
Esta variedad de medios aporta toda una diversidad de
fenmenos que dificultan la adecuada transmisin y por
ende surge el llamado error, el mismo que puede ser
definido como una alteracin que provoca que el
mensaje recibido no sea una copia fiel del mensaje
transmitido. Debido a los numerosos problemas a la
hora de realizar la transmisin, es necesario utilizar
tcnicas que permitan detectar y corregir dichos errores.
Estas tcnicas se basan siempre en la idea de aadir
cierta informacin redundante a la informacin que se
desea enviar. A partir de ella el receptor puede
determinar, de forma bastante fiable, si los bits recibidos
corresponden realmente a los enviados.

2.1.2 ERROR DE RAFAGA


El error de rfaga significa que dos o ms bits de la
unidad de datos han cambiado. Los errores de rfaga no
significan necesariamente que los errores se produzcan
en bits consecutivos. [1]

Figura 2: Ilustracin del error de rfaga. Tomado de


[2]

2.2 CDIGOS
ERRORES

DE

DETECCIN

DE

1 + 1 = 0 (sin acarreo)
11=0
Considerando que un polinomio original M(x) tiene
m bits, tanto emisor como receptor deben conocer el
polinomio generador G(x) de grado r, mediante el cual se
deber realizar el siguiente procedimiento:

2.2.1 CDIGO CRC


El CRC o llamado Comprobacin de Redundancia
Cclica, es un cdigo usado en la prctica para la
deteccin de errores en largas secuencias de datos. [3]
La cadena de datos a ser transmitida se la
representa como un polinomio, en donde los coeficientes
del polinomio corresponden a la secuencia binaria.
El cdigo CRC Brinda ms fiabilidad y es ms fcil
de implementar, bsicamente en sus operaciones
aritmticas.
Se basa en operaciones matemticas realizadas
por el emisor antes de enviar los datos para que luego el
receptor realice una divisin entre un polinomio
generador que tanto el emisor como el receptor deben
conocer, si el resto es cero, la transmisin es correcta
caso contrario significar que se ha producido un error,
durante la transmisin y se puede solicitar nuevamente
la retransmisin al emisor. [4]

2.2.2 ALGORITMO
CDIGO CRC.

PARA

CALCULAR

Al polinomio original se le deber agregar


ceros a su derecha en cantidad igual a r, es
decir al grado del polinomio generador,
formando un polinomio M(x) de m+r bits.

Realizamos una divisin de mdulo 2 entre el


polinomio M(x) y el polinomio generador G(x).

El residuo de la operacin anterior se lo


sustrae del polinomio M(x), mediante una
resta de mdulo 2, obteniendo el polinomio a
transmitirse T(x).

Despus que T(x) se ha transmitido el emisor


deber realizar la divisin de mdulo 2 entre el
polinomio recibido T(x) y el polinomio
generador G(x).

Si el residuo es cero, la transmisin ha sido


correcta. Caso contrario el receptor solicitar
una retransmisin.

EL

Los polinomios generadores ms comunes son:

Conociendo el cdigo de CRC y su longitud r y


siendo de conocimiento que el generador tiene
(r+1) bits de longitud, aadimos estos r bits
0al mensaje de envi.

Dividimos la serie de bits del mensaje para el


polinomio generador establecido.

El residuo final que se obtiene de la divisin


son los bits de valor de verificacin que irn
adjuntos al mensaje de envi.

Finalmente en el destino de la transmisin se


vuelve a dividir el mensaje para el polinomio
generador y si el resultado es cero el mensaje
no ha sufrido dao alguno [5].
Ejemplo: La secuencia binaria 1010110001 se
puede representar como un polinomio, como se muestra
a continuacin.

Las operaciones de mdulo 2 se presentan a


continuacin:
0 1 = 1 (sin carreo)

1+0=1

10=1

CRC-16: X16 + X15 + X2 + 1

CRC CCITT V41: X16 + X12 + X5 + 1


(este
cdigo
se
utiliza
en
el
procedimiento HDLC)
CRC-32 (Ethernet): = X32 + X26 + X23 + X22 +
X16 + X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2 +
X+1
CRC ARPA: X24 + X23+ X17 + X16 + X15 + X13 +
X11 + X10 + X9 + X8 + X5 + X3 + 1 [6]

CRC-12: Usado para transmitir flujos de 6 bits,


junto a otros 12 de redundancia.
CRC-16: Para flujos de 8 bits, con 16 de
redundancia. Usado en USA, principalmente.
CRC-CCITT: Para flujos de 8 bits, con 16 de
redundancia. Usado en Europa, principalmente.
CRC-32: Da una proteccin extra sobre la que dan
los CRC de 16 bits, que suelen dar la suficiente. Se
emplea por el comit de estndares de redes locales
(IEEE-802) y en algunas aplicaciones del Departamento
de Defensa de USA.

X9 + X 7 + X 5 + X 4 + 1

0+1=1

0*X1 + 1*X0

00=0

CRC-12: X12 + X11 + X3 + X2 + X + 1

1*X9 + 0*X8 + 1*X7 + 0*X6 + 1*X5 + 1*X4 + 0*X3 + 0*X2 +

0+0=0

Por ejemplo:
Se requiere transmitir el mensaje 110101. Siendo el
polinomio generador G(x) = x3 + 1.

cuales expresan el nmero total de bits y el nmero de


bits de informacin.

Mensaje: 110101
Polinomio generador: G(x) = 1001 (r=3)
Se aaden 3 bits 0 al final del mensaje:
M(x) =110101000

(Nmero de bits totales, nmero de bits de


informacin). Por ejemplo:
(8,7) = 8 bits en total de los que 7 llevan
informacin.
Realizando la resta de estos nmeros se pueden
obtener el nmero de paridad. En este ejemplo el
nmero de paridad es 1.

2.3.1 FORMA MECNICA DE REALIZAR EL


ALGORITMO DE HAMMING

Por lo tanto el polinomio trasmitido es:


T(x)= 110101011

Se realiza mediante una tabla en la cual por


comodidad se las posiciones y los datos en binario. El
nmero final de bits est indicado por el cdigo de
Hamming concreto.

Comprobacin de Transmisin
Si al realizar la divisin de mdulo 2 entre el
polinomio recibido T(x) y el polinomio generador G(x) se
obtiene un residuo equivalente a cero, entonces la
transmisin ha sido correcta. Caso contrario el receptor
solicitar una retransmisin as:

El nmero de bits de datos se designa por d,


entonces el nmero de bits de paridad se designa por p,
y se determina mediante la siguiente relacin:
2dd+p+1

(1)

Es decir las posiciones potencia de 2 son bits de


paridad (20 = 1, 2, 4, 8,16), y el resto son datos.
Una vez obtenido el nmero de bits de paridad se
procede a ubicarlos junto con los bits de datos de
izquierda a derecha. Los bits de paridad se los ubica en
las posiciones correspondientes a las potencias de 2 y
los bits de datos se ubican en las posiciones restantes.

2.3 CDIGOS
DE
CORRECCIN
ERRORES CODIGO DE HAMMING

Despus se procede a asignar el valor de 0 o 1 a


cada bit de paridad, para lo cual expresamos en binario
el nmero correspondiente a la posicin del bit. Por
ejemplo, para un mensaje de 7 bits se tiene 7 posiciones
representadas de forma ordenada en binario: 001, 010,
011, 100, 101, 110, y 111. Vase la Tabla 1.

DE

Tabla 2. Tabla de bits de paridad y datos.


Es un mtodo general propuesto por R. W
Hamming que proporciona un mtodo de correccin de
un nico bit errneo. El mtodo emplea los bits de
paridad para detectar la posicin del bit errneo. [1]
Permite corregir un error en una palabra y detectar
si se han producido dos errores. En el rea prctica se
implementa mediante matrices. La idea general del
cdigo de Hamming es introducir unos bits de
redundancia y distribuirlos de cierta manera a los largo
de la palabra de forma que si se producen errores se
puedan corregirlos.
Tomado de [9]

La nomenclatura general que se emplea es


expresar el tipo de cdigo de Hamming que se va a
utilizar mediante dos nmeros entre parntesis, los

Luego se procede a rellenar la palabra original de


datos (palabra a proteger frente a cualquier error) en los
bits de datos de izquierda a derecha.
Los bits de paridad se los obtiene de manera
ordenada mediante la siguiente manera:

Los valores de la palabra original (palabra


sin paridad) a proteger ubicadas en los bits de
datos ocuparan la primera posicin
de
paridad p1 si el bit menos significativo (LSB)
del nmero binario que representa la posicin
del bit de dato es 1. Luego se verifica la
paridad completando con ceros o unos la
paridad (p1-p1)
Los valores de la palabra original a proteger
ubicadas en los bits de datos ocuparan la
segunda posicin
de paridad p2 si el
segundo bit del nmero que representa la
posicin del bit de dato es 1. Luego se
verifica la paridad completando con ceros o
unos la paridad (p2-p2)

Los valores de la palabra original a proteger


ubicadas en los bits de datos ocuparan la
segunda posicin de paridad p3 si el tercer
bit del nmero que representa la posicin del
bit de dato es 1. Luego se verifica la paridad
completando con ceros o unos la paridad (p3p3)

Los valores de la palabra original a proteger


ubicadas en los bits de datos ocuparan la
segunda posicin de paridad p4 si el tercer
bit del nmero que representa la posicin del
bit de dato es 1. Luego se verifica la paridad
completando con ceros o unos la paridad (p4p4). [7]

Comience con el grupo comprobado por P1.

Compruebe si el grupo tiene la paridad


correcta. Un 0 representa que la comprobacin
de paridad es correcta y un 1 que es
incorrecta. Esto paso se repite para cada
grupo de polaridad.

El nmero binario formado por los resultados


de todas las comprobaciones de paridad indica
la posicin del bit del cdigo que es errneo.
Es el cdigo de posicin de error. La primera
comprobacin de paridad genera el bit menos
significativo
(LSB).
Si
todas
las
comprobaciones son correctas, no habr error.
[8]

2.3.3 EJEMPLOS DEL CODIGO


CORRECIN DE ERRORES HAMMING.

DE

2.3.3.1 Primer Ejemplo.


Consideremos como ejemplo la palabra de datos
de 7 bits "0110101". El cmo se generan y se utilizan los
cdigos Hamming para detectar un error, se puede
entender de mejor manera en la tabla 2 y tabla 3
respectivamente. Se utiliza la d para indicar los bits de
datos y la p para los de paridad.
En primer lugar los bits de datos se insertan en las
posiciones apropiadas y los bits de paridad calculados
en cada caso usando la paridad par.
Tabla 2. Posiciones de bits de paridad y datos.

De esta manera se procede dependiendo


del cdigo de Hamming a proteger.

En La palabra cdigo se forma bajando los bits de


datos y paridad que se obtuvieron de la ltima paridad
obtenida

2.3.2
CODIFICACIN
DE
(LOCALIZACION DEL ERROR)

HAMMING
Tomado de [9]

De acuerdo a las especificaciones de paridad


establecidas se realizan n comprobaciones igual al
nmero de bits de paridad. Por ejemplo, si tenemos 3
bits de paridad se harn 3 comprobaciones.

La nueva palabra de datos (con los bits de paridad)


es ahora "10001100101". Vase la Tabla 3.

Cada bit de paridad se deber comprobar junto con


su respectivo grupo. Cada comprobacin de paridad
dar un resultado bueno o malo. El resultado total de
todas las comprobaciones de paridad indica el bit, si
existe, en el que se encuentra el error de la siguiente
manera:

Tabla 3. Comprobacin de los bits de paridad (valor


correcto)

2.3.3.2 Segundo Ejemplo.


Nmero de Hamming (11,7), 11 bits de los cuales 7
llevan informacin
Datos= 0101001, paridad =4

Tomado de [9]
Tomando en cuenta un error en el bit de la
derecha, es decir cambiando de 1 a 0. La nueva palabra
de datos ser ahora "10001100100".
Si se analiza en la tabla anterior la paridad que se
debe obtener a la derecha tras la llegada del mensaje
sin errores debe ser siempre 0 (por cada fila), pero en el
momento en que ocurre un error esta paridad cambia a
1, de all el nombre de la columna "prueba de paridad 1".
Se observa que en la fila en que el cambio no afect la
paridad es cero y llega sin errores. Vase la tabla 4.

Tabla 6. Bits de paridad y bits de datos.

Tabla 4. Comprobacin de los bits de paridad (valor


errneo)

Tomado de [7]
De igual manera que el ejemplo anterior se procede se
procede a obtener los bits de paridad y bits de datos de
cada una de las posiciones de paridad (p1-p1, p2-p2,),
hasta obtener la palabra que se transmitir (palabra ms
paridad). En este caso la palabra almacenada o con
paridad es: 10001011001. Vase la Tabla 6.

Tomado de [9]
El paso final es evaluar los bits de paridad
(recuerde que el fallo se encuentra en d7). El valor
entero que representan los bits de paridad es 11 (si no
hubieran ocurrido errores este valor seria 0), lo que
significa que el bit dcimo primero de la palabra de datos
(bits de paridad incluidos) es el errneo y necesita ser
cambiado. Vase la Tabla 5.

Ahora introducimos un error deliberadamente en la cifra


menos significativa (LSB) y procedemos a obtener de
igual manera la palabra almacenada (palabra ms
paridad). Ubicamos la paridad errnea en la seccin de
calidad de paridad, y la paridad almacenada en su
respectiva ubicacin. Luego se las compara y si son
diferentes producen un error. SI existe un error se lo
marca como 1, si es correcto se marca como un 0.

Tabla 5. Evaluacin de los bits de paridad

Binario
Decimal

1
8

1
2

1
1

11

Tomado de [9]
Cambiando el bit dcimo primero 10001100100 se
obtiene de nuevo 10001100101. Eliminando los bits de
patrn de la paridad no se tienen en cuenta los bits de
paridad. Si el error se produjera en uno de ellos, en la
comprobacin slo se detectara un error, justo el
correspondiente al bit de paridad causante del mismo.

Tabla 7. Comparacin

Tomado de [7]
Para obtener la posicin donde se produjo el error, al
nmero producido mediante la comparacin se lo toma
como nmero binario y se lo pasa a decimal para
obtener la posicin del error contando desde la derecha
de la palabra introducida mediante el error. Vase la
Tabla 7.
Finalmente para solucionar el problema se cambia 0 por
1 o 1 por 0 dependiendo el resultado. En este se
soluciona cambiando el 0 por 1.

El cdigo CRC que se genera se basa en la


operacin XOR y el mismo siempre debe ir
adjunto al mensaje a transmitir para su
posterior verificacin.

Cada comprobacin de paridad en el cdigo


Hamming nos proporciona un dgito, el dgito 0
representa una paridad correcta, mientras que
el dgito 1 representa una paridad incorrecta.
Los dgitos conforman el cdigo de posicin del
error, con la condicin de que la primera
comprobacin nos otorga el bit menos
significativo.

[3] UTT. Cdigo de Redundancia Cclica (crc). (2013).


Disponible
en
http://fernando526.tripod.com/mediosdetransmisionguiado
s/id4.html
[4]

Gey.com. Cdigos de Redundancia Cclica (CRC).


(2014).
Disponible
en
http://xn--gey-hoa.com/wpcontent/uploads/propios/2013/S/CRC.pdf

[5] Slideshare.net. Deteccin y correccin de Errores. (2013).


Disponible
en
http://www.slideshare.net/carlosamayat/hamming-y-crc
[6] Kioskea.net. Verificacin de Errores. (2013). Disponible en
http://es.kioskea.net/contents/59-verificacion-de-errores
[7] Borja Vidal. Universidad Politcnica de Valencia Cdigos
de
Hamming.
(2011).
Disponible
en
https://www.youtube.com/watch?v=gQK9nROFX20

Para la comprobacin de la transmisin


mediante el cdigo CRC es indispensable que
el emisor y el receptor deban conocer
exactamente cul es el polinomio generador.

El cdigo Hamming emplea los bits de paridad


para realizar las comprobaciones. El nmero de
bits de paridad indica el nmero de
comprobaciones que se debern efectuar.

[2] Sistemas de Multiplexado. Deteccin y correccin de


errores.
(2013)
Disponible
en
https://sites.google.com/site/sistemasdemultiplexado/arquite
cturas-de-las-redes-de--comunicacin-caractersticas/8-deteccin-y-correccin-de-errores

El cdigo CRC slo nos muestra la existencia


de un error en la transmisin, ms no su
ubicacin, por lo que solicita una retrasmisin
de la informacin al emisor hasta que no exista
error alguno.

Para el cdigo CRC las operaciones a


efectuarse, tanto para su generacin como para
su comprobacin, deben ser operaciones de
mdulo 2, es decir, no existe acarreo de cifras.

[1] Slideshare.net. Mtodos para la deteccin y correccin de


errores.
(2013).
Disponible
en
http://www.slideshare.net/dhuertacruz/mtodos-para-ladeteccin-y-correccin-de-errores

El cdigo CRC es un cdigo que protege la


integridad del dato o el mensaje, ms no
asegura que el mensaje recibido sea el que
contenga la informacin requerida ya que este
pudo haberse originado de una seal abierta.

El cdigo Hamming nos muestra la existencia


de un error en la transmisin de datos, adems
nos brinda la ubicacin del error y la manera de
solucionarlo.

4 REFERENCIAS

3 CONCLUSIONES

[8] Thomas L. Floyd, Fundamentos de Sistemas Digitales,


9na. ed, Pearson, Cap 2, pp. 109, Madrid 2006.
[9] Francis. B. A. and W. M. Wonham, The internal model
principle of control theory, Automatica. Vol. 12. pp. 457465. 1976.

Anda mungkin juga menyukai