Sei sulla pagina 1di 6

.

ESCUELA POLITCNICA DEL EJRCITO


CDIGOS DE DETECCIN Y CORRECCIN DE ERRORES.
Alexis Andrs Santamara Castillo
a.andres.m.santamaria@hotmail.com

Ingeniera Mecatrnica, Sexto A, Escuela Politcnica del Ejrcito Extensin Latacunga,


Mrquez de Maenza S/N Latacunga, Ecuador.
Fecha de presentacin: 2 de septiembre del 2013

Consiste en la proteccin de los datos en bloques,


denominados tramas. A cada trama se le asigna un
segmento de datos denominado cdigo de control.

RESUMEN: La codificacin binaria es de gran


utilidad prctica en dispositivos electrnicos como
ordenadores, donde la informacin se puede codificar
basndose en la presencia o no de una seal elctrica.
Sin embargo, esta seal elctrica puede sufrir
alteraciones (como distorsiones o ruidos), especialmente
cuando se transportan datos a grandes distancias. Por
este motivo, hay que ser capaz de verificar la
autenticidad de estos datos siendo de mucha
importancia dependiendo del sistema o datos que se
requiere transferir.

El cdigo CRC contiene datos redundantes con la


trama, de manera que los errores no slo se pueden
detectar sino que adems se pueden solucionar.
El concepto de CRC consiste en tratar a las
secuencias binarias como polinomios binarios,
denotando
polinomios
cuyos
coeficientes
se
correspondan con la secuencia binaria. Por ejemplo, la
secuencia binaria 0110101001 se puede representar
como un polinomio, como se muestra a continuacin:

Por este motivo existen algunos mecanismos que


garantizan un nivel de integridad de los datos conocidos
como
mecanismos
lgicos
para
detectar y corregir errores.

0*X1 + 1*X0

PALABRAS CLAVE:

0*X + 1*X + 1*X + 0*X + 1*X + 0*X + 1*X + 0*X +

De tal manera que quedara expresado de la


siguiente forma,
8
7
5
3
X +X +X +X +1

C.R.C verificacin de redundancia cclica


Half Adder sumas y restas sin
implementar acarreo.
Cdigo Hamming es un cdigo de bloque
capaz de identifica y corregir cualquier
error de bit simple que ocurra dentro del
mismo.

Tambin conocido como polinomio de mensaje

En este trabajo se explica el funcionamiento de


cada uno de los cdigos sea este de deteccin o
correccin de errores de intercambio de datos entre
receptor y emisor, y como funcionan mediante ejemplos.

En este proceso de deteccin de errores, un


polinomio
predeterminado
(denominado polinomio
generador G(X) es conocido tanto por el remitente como
por el destinatario. El remitente, para comenzar el
mecanismo de deteccin de errores, ejecuta un
algoritmo en los bits de la trama, de forma que se genere
un CRC, y luego transmite estos dos elementos al
destinatario. El destinatario realiza el mismo clculo a fin
de verificar la validez del CRC.

2 CDIGOS DE DETECCIN DE ERROR

En el Ej.[1] para la obtencin del cdigo CRC, los


clculos que realiza el equipo transmisor son:

1 INTRODUCCIN

Ejemplo [1] Obtencin del CRC

2.1 Verificacin de redundancia cclica


(C.R.C.)

Datos:

Mensaje codificado en binario: M=10011011

La verificacin
de
redundancia
cclica
(abreviado, CRC ) es un mtodo de control de integridad
de datos de fcil implementacin. Es el principal mtodo
de
deteccin
de
errores
utilizado
en
las
telecomunicaciones.

Operaciones:

Polinomio generador: G(X)= X + 1= 1001 (1)

.
1.

Identificar el exponente de mayor grado Ec[1]


del cdigo generador (n):
n

n-1

n-2

G(x)= X + X + X
n=3
2.

+ 1

2.2 Verificacin de paridad (V.R.C.)

Aada n bits en la parte derecha de la trama


del mensaje (M).

La
verificacin
de
paridad
(a
veces
denominada VRC o verificacin de redundancia vertical)
es uno de los mecanismos de verificacin ms simples.

Mn= 10011011000
3.

Procesar el mensaje, caso contrario reenva el


mensaje para intentar corregir los errores.

Dividir el mensaje (Mn) para el polinomio


generador Ec[1] en binario.

Consiste en agregar un bit adicional (denominado bit


de paridad) a un cierto nmero de bits de datos
denominado palabra cdigo (generalmente 7 bits, de
manera que se forme un byte cuando se combina con el
bit de paridad) cuyo valor (0 o 1). Para ser ms
claro, 1 si el nmero de bits en la palabra cdigo es
impar, 0 en caso contrario.
Tomemos el siguiente ejemplo [2], donde se puede
observar en la figura 2 la ubicacin del bit de paridad:

Figura 1. Divisin Mensaje modificado y polinomio


generador.

En este ejemplo, el nmero de bits de datos 1 es


par, por lo tanto, el bit de paridad se determina en 0.

Nota: Al realizar la divisin solo se admitir el


resultado entero sin los binarios que se encuentren
despus de la coma, asi como vale recalcar que las
sumas y restas son sin acarreo(Half Adder).
4.

Ej.[2]

Sume el mensaje (Mn) y el residuo de la


divisin anterior, de tal manera que quede de
esta manera.
Figura 2. Bit de paridad par.

Mn + Residuo = MTrasmitir (2)


10011011000 + 010= 10011011010

5.

Por el contrario, en el ejemplo [2] que sigue, los bits


de datos son impares, por lo que el bit de paridad se
convierte en 1:

Transmitir el mensaje (MTrasmitir)

El equipo receptor debe comprobar el cdigo CRC


para detectar si se han producido o no errores
1.

Mediante
el
protocolo
correspondiente
acuerdan el polinomio generador Ec.[1]
3

G(X)= X + 1
2.

Figura 3. Bit de paridad impar.

Divide el cdigo recibido Ec.[2] entre el


polinomio generador Ec.[1]

Supongamos que despus de haber realizado la


transmisin, el bit con menos peso del byte anterior
(aquel que se encuentra ms a la derecha) ha sido
vctima de una interferencia observe la figura[4]:

Nota: Al realizar la divisin solo se admitir el


resultado entero sin los binarios que se encuentren
despus de la coma, asi como vale recalcar que las
sumas y restas son sin acarreo(Half Adder).
3.

Comprueba el residuo de dicha operacin

Si el resto es cero, no se han producido


errores

Figura 4. Bit de paridad impar con error.


2

El bit de paridad, en este caso, ya no corresponde al


byte de paridad: se ha detectado un error.

2.4 Suma de comprobacin.

Sin embargo, si dos bits (o un nmero par de bits)


cambian simultneamente mientras se est enviando la
seal, no se habra detectado ningn error como en la
figura (5).

Es un mtodo sencillo pero eficiente slo con


cadenas de palabras de una longitud pequea, es por
esto que se suele utilizar en cabeceras de tramas
importantes u otras cadenas importantes y en
combinacin con otros mtodos.
Este mtodo consiste en agrupar el mensaje a
transmitir en cadenas de una longitud determinada L no
muy grande, se recomienda mximo de hasta 16 bits.
Considerando a cada cadena como un nmero entero
acordando el digito mximo a expresar segn la Ec.[3].

Figura 5. Bit de paridad impar.

2 1 (3)
A continuacin se suma el valor de todas las
palabras en las que se divide el mensaje, y se aade el
resultado al mensaje a transmitir, pero cambiado de
signo.

Ya que el sistema de control de paridad puede


detectar un nmero impar de errores, puede detectar
solamente el 50% de todos los errores. Este mecanismo
de deteccin de errores tambin tiene la gran desventaja
de ser incapaz de corregir los errores que encuentra (la
nica forma de arreglarlo es solicitar que el byte errneo
sea retransmitido).

Con esto, el receptor lo nico que tiene que hacer


es sumar todas las cadenas, y si el resultado es 0 no
hay errores.
A continuacin se presenta un Ej[3] de la Suma de
comprobacin.

2.3 Verificacin de redundancia


longitudinal (L.R.C.)

Ejemplo [3]
Mensaje 101001110101

La verificacin de la redundancia longitudinal (LRC,


tambin denominada verificacin de redundancia
horizontal) no consiste en verificar la integridad de los
datos mediante la representacin de un carcter
individual, sino en verificar la integridad del bit de
paridad de un grupo de caracteres.

1.

Acordar la longitud de cada cadena:


La cadena se acorta en grupos de L=3

2.

Digamos que "HELLO" es el mensaje que


transmitiremos utilizando el estndar ASCII. Estos son
los datos tal como se transmitirn con los cdigos de
verificacin de redundancia longitudinal obsrvese la
tabla[1]

Acordar el sistema de numeracin segn la


Ec[3]:
3

2 1=7
3.

Dividir el mensaje en grupos de L:


101 001 110 101

Tabla 1. Datos del mensaje y cdigo de verificacin de


redundancia longitudinal.
Letra

ASCII
(7 bits)

4.

Bit de paridad
(LRC)

1001000

1000101

1001100

1001100

1001111

Asociar cada cadena con un entero:


5165

5.

Sumar todos los valores y aadir el nmero


cambiado de signo:
5+1+6+5=17
-17 Valor cambiado de signo

6.

Enviar 5, 1, 6, 5 y -17 codificado en binario al


receptor segn la tabla[2]:

.
Tabla 2. Valores decimales en binario.
Digito
5
1
6
5
-17

7.

Kc: nmero de bits de paridad par generados en el


transmisor, o sea, nmero de lneas que aadimos al
cdigo inicial.

Binario
101
001
110
101
-10001

Kc1: nmero de bits detectores de paridad par


generados por el receptor.
El valor de Kc = Kc1, ya que los bits de paridad
generados tanto en el transmisor como en el receptor
debe ser la misma.

Suma todos los valores; si la suma es 0,


procesa el mensaje; si no, se ha producido un
error.

El nmero de combinaciones que se pueden formar


con los 2Kc1 bits detectores de paridad tiene que ser
mayor o igual que el nmero de lneas del cdigo original
(K) ms el nmero de lneas de paridad aadidas (Kc)
ms uno, este ltimo para contemplar el caso de no
error.

Tabla 3. Suma de verificacin de error en el receptor.

Digito
5
1
5+1
6
(5+1)+6
5
(5+1+6)+5
(5+1+6+5)+(-17)

Binario
101
001
110
110
1100
101
10001
00000

Kc1 + K + 1 (4)

En el siguiente Ej [4]. Se especifica los pasos para


realizar el cdigo Hamming
Ejemplo [4] Codicar la secuencia {Xk} = 10010110. K=8
1.

Se busca el valor Kc que se ajuste al criterio de


Hamming
Kc = 3 remplazo Kc en Ec.[4]
3
2 = 8 Kc1 + K + 1
8 3+8+1 no cumple el criterio

Este mtodo al ser ms sencillo es ptimo para ser


implementado en software ya que se puede alcanzar
velocidades de clculo similares a la implementacin en
hardware

3 CDIGOS
DE
DETECCIN
CORRECCIN DE ERROR

Kc1

Kc = 4 remplazo Kc en Ec.[4]
4
2 = 16 Kc1 + K + 1
16 4+8+1 cumple el criterio

Y
2.

3.1 Cdigo Hamming

Se distribuye arbitrariamente las posiciones de


los bits de vericacin (X) como se muestra en
la tabla [4].

Tabla 4. Distribucin y posicin de bits de verificacin


incluido el cdigo o mensaje

Un cdigo Hamming es un cdigo de bloque capaz


de identifica y corregir cualquier error de bit simple que
ocurra dentro del mismo.
Los cdigos Hamming tienen la misma dicultad
que los cdigos de bloque, pues slo ofrecen proteccin
contra errores de bit simple, y ofrecen una pequea
proteccin contra errores dispersos.

Nmero de bits totales: L = K + Kc = 12.


Es evidente que durante el proceso de
decodicacin ser indistinto el grado de error de la
seal recibida, producindose una perdida irreversible
de informacin.

3.

Para la generacin del cdigo Hamming se deben


tener en cuenta tres variables que mencionaremos a
continuacin:
K: nmero de bits del cdigo original que se
pretende transmitir.

Se suma el valor en binario de la posicin


donde existe uno de la trama de la tabla [4], las
sumas se las realiza sin acareo Half Adder,
analice la tabla [5]:

.
Tabla 5. Suma de posiciones con respecto a la tabla [4].

En caso de que exista un bit errneo (e) en la


secuencia, como en la siguiente tabla [8]
Tabla 8. Trama con un bit de error.

En el receptor se tiene:

4.

Tabla 9. Suma de decodificacin del decodificador con


error.

Se toma entonces 0010 como la secuencia de


velicacin y se inserta a la secuencia como se
observa en la tabla [6].

Tabla 6. Insercin del cdigo de verificacin a la trama.

En la recepcin se toma el valor dado por la


secuencia de vericacin (Hamming) y las posiciones de
datos de valor {1}, exceptuando los de vericacin, se
convierten a Kc = 4 bits y se suman nuevamente sin
acarear. El receptor debe conocer las posiciones en las
cuales se insert el cdigo redundante.
Lo cual indica un error en la posicin 1000 = 8, el
cual puede ser corregido directamente.

En caso de llegar la secuencia sin errores, el


decodicador realiza la siguiente operacin mostrada en
la tabla [7]:

Ntese que en este caso, slo se puede realizar la


deteccin de un bit errneo. En caso de haber bits
errneos en el cdigo de velicacin, existir la deteccin
de un error, pero la posicin del error no se podr
determinar.

Tabla 7. Suma de decodificacin del decodificador.

Nota: Al realizar la suma para elaborar la


tabla[1], tabla[4] y tabla[6] se realiza una suma sin
acareo (Half Adder).

4 REFERENCIAS
[1]TOCCI
Ronald,
Sistemas
Digitales
Principios
y
Aplicaciones, sexta edicin, Prentice Hall, 2001, pp13-22.
[2]Turrar (2013 , Agosto 29) [En Linea] Disponible en
http://www.el.uma.es/marin/Tema7_practica4.pdf
[3] G. Arent. (2013, Agosto 29) Quegrande [En linea] Disponible
en:http://quegrande.org/apuntes/grado/1/FCG/teoria/1011/te
ma_2__sistemas_combinacionales.pdf
[4] FCEIA. (2013, Agosto 29) fceia [En linea] Disponible en:
http://www.fceia.unr.edu.ar/enica3/da-ad.pdf
[5] Weel J. (2013, Agosto 30) Wikipedia [En linea] Disponible

Resultando es 0000, lo cual signica que la


secuencia se recibi sin errores

en: http://es.wikipedia.org/wiki/Red_R-2R

5 Conclusiones

Existen cdigos especializados en la deteccin


de error pero con una gran dificultad para
corregirlos.

Al implementar algn tipo de cdigo se debe


tomar en cuenta el tipo de dato a enviar ya que
este puede no ser de gran importancia y el
proceso de hacerlo ms seguro resulte ms
dificultoso y caro.

Los cdigos de rectificacin como de


verificacin suele ser un conjunto de cdigos, o
sea una variedad de procesos que entre ms
seguridad, y precisin se requiera para mejorar
la integridad de la trama de datos, demandara
mayor ser el requerimiento de software y
hardware entre receptor y emisor.

Potrebbero piacerti anche