Você está na página 1de 5

DETECCION DE ERRORES Y CODIGOS DE DETECCION- METODO DE

HAMMING Y METODO DE CHEQUEO CICLICO REDUNDANTE (CRC)


Diego Gabriel Chano Tomarima
diegoga_1001@hotmail.com.

Cristian David Chimbo Tamami


santogrefil_92n@hotmail.es

Ingeniera Mecatrnica. 6 nivel, Universidad de las Fuerzas Armadas ESPE-Extensin


Latacunga, Mrquez de Maenza S/N Latacunga. Ecuador
Mircoles, 05 de noviembre de 2014
RESUMEN: En el siguiente escrito se presenta
dos mtodos para detectar y corregir los bits
errneos que aparecen al momento que se enva un
bloque de bits uno de ellos es utilizando el cdigo de
Hamming cuya caracterstica principal es identificar la
posicin que ocupa un determinado bit errneo y
posteriormente poder corregirlo, el otro utilizando el
cdigo por chequeo cclico redundante (CRC), el cual
posee la caracterstica de poder identificar errores
ms de un error puesto que en un mensaje puede
tener varios bits de error, adems se presenta
ejemplos de cada uno de los mtodos que
comprueban la teora y las discrepancias entre estos
dos mtodos.
PALABRAS CLAVE:
Cclico: Que se repite regularmente cada cierto
tiempo
Transmisin: En nuestro caso se refiere a la
accin de enviar y recibir bloques de bits.
Algoritmo: Conjunto ordenado de operaciones
sistemticas que permite hacer un clculo y
hallar la solucin de un tipo de problemas.

1. INTRODUCCION
Un sistema de transmisin y almacenamiento
de informacin debe tener como caractersticas
alta confiabilidad y eficiencia (Medina Alicia,
1991), por lo que en su diseo se debe
preocupar de controlar los errores que pueden
aparecer al momento de la transmisin de
datos, este control permitir detectar si existe un
error en los datos recibidos para posteriormente
poder corregirlo.
Existen cdigos que permiten detectar estos
errores, los ms conocidos son: el cdigo de
Hamming para deteccin y correccin de
errores, el otro es el cdigo por chequeo
redundante cclico (CRC).
La finalidad de estos dos cdigos es detectar si
un mensaje recibido es en realidad lo que el
emisor ha enviado, pues durante la transmisin
puede que el mensaje se haya alterado por
razones desconocidas o no llegue completo la

informacin, posteriormente poder corregir estos


errores.

2. CODIGOS PARA DTECCION Y


CORRECCION DE ERRORES
Como ya se mencion anteriormente cada vez
que determinado nmero de bloques de bits de
informacin es transferida existe la posibilidad
de que aquel enviado no coincida con el
recibido.
La causa u origen de estos errores suele
depender del medio de transmisin utilizado:
Ruido de interferencia.
Atenuacin de la seal.
Problemas de sincronizacin.
Multicamino.
En el receptor varias cosas pueden pasar:
Si no hay errores, la salida de
decodificador es igual al cdigo original.
Para ciertos errores, el decodificador
puede detectar y corregir los mismos.
(Villapol, 2006)
Para ciertos patrones de errores, el
decodificador puede detectar el error
pero no corregirlo.
Para ciertos errores el decodificador no
puede detectar el error y produce una
seal de salida. (Villapol, 2006)
Para ello empezamos tratando el mtodo de
Hamming y posteriormente el mtodo de
Chequeo cclico redundante (CRC)

3. MTODO DE HAMMING
Antes de poder corregir un bit errneo se
necesita conocer primero la posicin en la cual
est el bit, es decir en un cdigo de mensaje de
8 bits pueden existir 8 combinaciones de
errores.

El cdigo Hamming proporciona un mtodo de


correccin de un nico bit errneo, cuyo
principio es localizar la posicin del bit errneo y
permitir corregirlo.

La ecuacin que relaciona el nmero de bits de


datos y el nmero de bits de paridad es la
siguiente:

2 d + p+1

(1)

Se utiliza la siguiente notacin:


d: Numero de bits de datos
p: Numero de bits de Paridad
Un ejemplo de esto, si tenemos 5 bits,
necesitamos sacar el nmero de bits de paridad
por el mtodo de prueba:
Asumo un valor de
p

p=3

P 1 , P2 , D 1 , P 3 , D 2 , D 3 , D 4 . P 4 , D 5

3.3 ASIGNACIN DE LOS VALORES DE


LOS BITS DE PARIDAD.
Ya definido las posiciones procedemos a
asignar los valores de 0 o 1 a cada bit de
paridad, ya que estos son los que realizan la
comprobacin del bit total.
Se puede ayudar de un cuadro en donde se
designa el bit, la posicin en decimal y en
binario adems debe constar los espacios para
los bits de datos y paridad, esto se lo puede
visualizar en la Tabla 1.

2 =2 =8

Tabla 1. Tabla de Posiciones de bits para un cdigo


de correccin de 7 bits (Floyd, 2006)

d + p+1=5+3+1=9

Designacin
del Bit
Posicin del
Bit
Numeracin
de posicin
en binario
Bits de Datos
(Dn)
Bits
de
Paridad (Pn)

Debido a que

2 p=8

debe ser mayor o igual

d + p+1=9 , la relacin no se satisface

por lo que se necesita un numero de paridad


mayor.
Asumo un valor de
p

p=4

2 =2 =16
Y

(20 ,21 , 22 , , , 2n) , es decir por ejemplo: 4 bits


de paridad deben introducirse en las posiciones
(1, 2, 4 y 8) del cdigo p+d del siguiente modo:

3.1 NUMERO DE BITS DE PARIDAD

Los bits de paridad se introducen en las


posiciones dependiendo
de
los
pesos

d + p+1=5+ 4+1=10

Ahora la relacin se satisface, entonces por lo


que se necesita 4 bits de paridad para poder
corregir un nico error en 5 bits de datos.

3.2. COLOCACION DE LOS BITS DE


PARIDAD EN EL CDIGO.
Una vez identificado el cdigo de paridad se
debe introducir correctamente dentro del cdigo,
este nuevo cdigo est formado por los bits de
paridad ms los bits de datos

( p+d ) ,

respetando el orden de la siguiente manera:


bit1, bit2, bit3, bit4, bit5,,bit(p+d).

P1

P2

D1

P3

D2

D3

D4

001

010

011

100

10
1

110

111

Cuadro tomado del libro Fundamentos de


sistemas digitales Floyd- 9na Edicin Tabla 2.11
La posicin en binario es esencial pues
comprueba las posiciones de todos los bits
incluyndose as mismo, por ejemplo el binario
de P1 tiene un nico 1 en el ltimo digito a la
derecha por lo cual, este bit comprueba las
posiciones de los binarios que que posean el
digito 1 en la misma posicin que tiene P1, es
decir el bit de paridad P1, va a comprobar las
posiciones 1,3, 5 y 7.
As sucesivamente:
P2, va a comprobar las posiciones 2, 3, 6 y 7.
P3, va a comprobar las posiciones 4, 5, 6 y 7.
En las comprobaciones se debe tomar en
cuenta en que paridad se est trabajando par o
impar para lo cual se le agrega el valor correcto
del bit 0 o 1 y el cdigo total ha transmitir son
todos los bit a esto se le conoce como cdigo
Hamming.

Ejemplo: Determinar el cdigo Hamming para


el nmero BCD 11000 usando paridad impar.
Asumo un valor de
p

p=4

Ejemplo:
Se transmite el siguiente cdigo 101010010
pero se recibe 100010010, determinar la
posicin del bit errneo, paridad impar.

2 =2 =16
Y

d + p+1=5+ 4+1=10

Satisface entonces el nuevo cdigo va tener


(d+p=5+4=9) bits.
Representamos nuevamente en la tabla.
Tabla 2 Tabla de Posiciones de bits para un
cdigo de correccin de 9 bits
Designaci
n del Bit
Posicin
del Bit
Numeraci
n
de
posicin
en binario

Bits de
Datos
(Dn)
Bits de
Paridad
(Pn)

paridad indica la posicin del bit de


cdigo errneo. (Floyd, 2006)

P1

P2

D1

P3

D2

D3

D4

P4

D5

000
1

001
0

001
1

010
0

010
1

011
0

011
1

100
0

100
1

Tabla 3 Tabla de comparaciones del cdigo recibido.


Designacin del Bit
Posicin del Bit
Numeracin
de
posicin en binario
Cdigo recibido

1
1

1
0

0
1

P1, Compara posiciones: 1, 3, 5,7 y 9 e igual a 1


P2, Compara posiciones: 2, 3, 6 y 7 e igual a 0
P3, Compara posiciones: 4, 5, 6, y 7 e igual a 0
P4, Compara posiciones: 8 y 9 e igual a 1
Por lo tanto el Cdigo Hamming es 101010010 y
es el que se transmite para la comprobacin.

3.4 DETECTAR Y CORREGIR EL ERROR


Ahora que ya conocemos el cdigo hamming
transmitido se realiza la comprobacin de cada
uno de los bit de paridad junto con los bit de
datos, el nmero de comprobaciones es en
base a cuantos bits de paridad tengamos; si
tenemos 3 se realizan 3 comprobaciones, si
tenemos 4 se realizan 4 etc.
Para lo cual hay que seguir los siguientes
Pasos:
1. Se comienza con el grupo comprobado
por P1.
2. Compruebe si el grupo tiene la paridad
correcta. Un 0 representa que la
comprobacin de paridad es correcta y
un 1 que es incorrecta. (Floyd, 2006)
3. Se repite el paso 2 para cada grupo de
paridad.
4. El nmero formado por los resultados
de todas las comprobaciones de

P1

P2

D1

P3

D2

D3

0001

0010

0011

0100

0101

0110

Primera comprobacin.
P1, comprueba posiciones 1, 3, 5, 7 y 9
y hay dos 1
Paridad incorrecta 1
Segunda comprobacin.
P2, comprueba posiciones 2, 3, 6 y 7 y
no hay 1s
Paridad incorrecta 1
tercera comprobacin.
P3, comprueba posiciones 4, 5, 6 y 7 y
hay un 1
Paridad correcta 0
Cuarta comprobacin.
P4, comprueba posiciones 8 y 9 y hay
un 1
Paridad correcta 0

El resultado es 0011 que es la posicin 3, el bit


errneo es 0 por que se debe cambiar a 1

4.
CDIGO
POR
CHEQUEO
REDUNDANTE CCLICO (CRC)
Es otro de los mtodos para detectar y corregir
errores que se dan al transmitir datos, consiste
en aadir al mensaje dos bytes de redundancia.
Los cdigos por chequeo cclico son un sistema
de chequeos de paridad utilizando un cdigo
cclico, la ventaja de este mtodo es que
permite detectar no solo un error si no errores
del tipo rfaga.

4.1. CDIGO CRC.


Cuando tenemos un bloque de k bits, el emisor
genera una secuencia de n bits. El emisor
transmite una secuencia de k+n bits, el cual es
exactamente divisible por un nmero. La
secuencia de n bits se llama secuencia de
chequeo de trama (FCS). (Villapol, 2006)

Sea T la trama de (n+k) bits, pero n <k, M el


mensaje de k bits, F la secuencia FCS de n bits
y P el divisor con un patrn predeterminado,
cuya longitud es n+1 bits. (Villapol, 2006)
Para obtener la FCS se debe multiplicar
por M (es decir

2n

2 M ) y dividirlo (divisin

mdulo 2) por P(polinomio generador). Lo que


sobra es decir el resto de dicha divisin se
adjunta en la trama como el FCS. En el receptor
debe realizar la misma operacin, sobre M, la
cual es la trama recibida. (Villapol, 2006)
T, M y P puede ser representado mediante
polinomios, usando una variable X, con los
coeficientes binarios.

Ejemplo: El siguiente ejemplo muestra cmo


funciona CRC.
Datos:
M (mensaje)=1010001101 (10 bits)

M (x)=x 9 + x 7 +x 5+ x2 +1
P (generador polinomial)=110101

P( x)=x5 + x 4 + x 2 +1
K=10 y n=5

n+k =15

25=101000110100000

Y se lo divide para

P(x).

4.2 POLINOMIO GENERADOR.


Este polinomio generador debe ser elegido con
sumo cuidado, debido a que la capacidad de
deteccin de errores depende de las
caractersticas del mismo.
Existen varios Polinomios en uso actualmente:

CRC-4-ITU:

CRC-16-IBM:

CRC-CCITT:

CRC-32:

x 4 + x+ 1
16

15

x + x + x +1
x 16 + x 12 + x5 +1

x 32 + x 26+ x23 + x 22 + x 16 + x 12+ x 11 + x 10+ x8 + x 7 + x 5 + x 4 + x 2+ x +1


4.3 ALGORITMO CRC.
Los pasos para calcular los bits que deben ser
agregados a un cierto mensaje M:
1. Se aade un numero de bits de 0 a la
derecha de M(x), tantos ceros como
grado tenga el polinomio generador:

2n M ( x )
2. Se divide en mdulo 2(sin acarreo) el
polinomio obtenido por el polinomio
generador.

2n M (x )
P(x)
3. Finalmente:
n

T ( x )=2 M ( x ) + R(x)

Figure 1. Resolucin de Divisin por mdulo


de 2 (Villapol, 2006)

La trama T es el cdigo final que se enva al


receptor, si no hay errores al momento que T
sea dividida nuevamente entre P, el resto debe
ser 0 caso contrario tendr errores.
Mediante este procedimiento es fcil detectar si
existen errores rfaga, o varios bits errneos
pero la desventaja es que no se la puede
corregir, para lo cual se debe aplicar otro
mtodo de correccin de bits errneos.

5. CONCLUSIONES
(2)

Los mtodos estudiados permiten


detectar si existe un error en un bloque
de bits recibidos y poder corregirlo
antes de tiempo.
El mtodo de correccin utilizando el
cdigo de Hamming nicamente permite
detectar un solo bit de error por lo cual
este mtodo es obsoleto cuando
aparecen varios errores como por
ejemplo los errores rfaga.
El cdigo CRC no depende de la
paridad de bits incorporada entre medio
de los mensajes.
Los errores que aparecen en forma de
rfaga pueden ser detectados utilizando
el cdigo por chequeo redundante, pero
nicamente los detecta mas no
corregirlo.

6. RECOMENDACIONES
Como parte fundamental para el
entendimiento de los temas se
recomienda realizar una investigacin a
fondo exhaustiva.

Se
recomienda
reforzar
los
conocimientos realizando ejercicios
referentes al tema con la intencin de
ganar agilidad al momento de realizar
las operaciones binarias.
Realizar comparaciones entre los temas
que se trata con el fin de poder
identificar cules son las discrepancias
entre los mismos.

7. REFERENCIAS
Floyd, T. L. (2006). Correccion de
Errores. Madrid: Impreso en
Espaa.
Medina Alicia, M. L. (1991). Codigo de
Deteccion de Errores. 1.
Villapol, M. E. (11 de 2006). Tecnicas
de Correccion y Deteccion.
Venezuela.

Você também pode gostar