You are on page 1of 27

TEMA 3

NIVEL ENLACE DE DATOS:


Deteccin y Correccin de
Errores

TELEMTICA
Ingeniera Tcnica de Telecomunicaciones
Escuela Politcnica Superior de Elche
Salvador Alcaraz Carrasco
rea de Ingeniera Telemtica
Departamento de Fsica y Arquitectura de Computadores
Universitas Miguel Hernandez

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

NIVEL ENLACE DE DATOS: DETECCIN Y CORRECCIN DE ERRORES .............................3


1.
2.

INTRODUCCIN ...............................................................................................................................3
DETECCIN DE ERRORES .................................................................................................................4
2.1. Cdigo VRC...............................................................................................................................6
2.2. Cdigo LRC...............................................................................................................................7
2.3. Comprobacin de Redundancia Cclica(CRC)..........................................................................9
2.3.1.
2.3.2.
2.3.3.

Aritmtica mdulo 2....................................................................................................................... 9


Cdigos Polinmicos.................................................................................................................... 15
Lgica Digital............................................................................................................................... 17

3.

CORRECCIN DE ERRORES ............................................................................................................20


3.1. Bits redundantes ......................................................................................................................20
3.2. Distancia Hamming.................................................................................................................22
3.3. Cdigo Hamming ....................................................................................................................24
4.
BIBLIOGRAFA ADICIONAL ............................................................................................................27

PGINA: 2
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

NIVEL ENLACE DE DATOS:


CORRECCIN DE ERRORES
1.

DETECCIN

Introduccin

Los errores de transmisin en las lneas se deben a muchos y diversos factores,


entre ellos podemos destacar como generales el ruido trmico, ruido impulsivo y
ruido de intermodulacin. Dependiendo del medio de transmisin y el tipo de
codificacin empleado, se pueden presentar otros tipos de anomalas tales como ruido
de redondeo y atenuacin, as como cruce de lneas y eco.

Figura 3-1. Tipos de errores

PGINA: 3
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

Como resultado de los procesos fsicos que ocasionan el ruido, los errores tienen
a presentarse como rfagas, ms que aisladamente. El hecho de que los errores se
presenten como rfagas tiene ciertas ventajas y desventajas con respecto a los errores
aislados de un solo bit. Supngase que el tamao del bloque es de 1000 bits, y que la
tasa de error es de 0.001 errores/bit. Si los errores fueran independientes, la mayora de
los bloques tendran un error. Sin embargo, si los errores vienen en rfagas de 100, slo
uno o dos bloques de cada cien son afectados. La desventaja de los errores en rfaga es
que son mucho ms difciles de detectar y corregir que los errores aislados, y tambin
son ms difciles de modelar analticamente.
Se han diseado dos estrategias diferentes para el tratamiento de los errores:
q

2.

Cdigos detectores de error: Consiste en incluir en los datos transmitidos, una


cantidad de bits redundantes de forma que permita al receptor detectar que se ha
producido un error, pero no qu tipo de error ni donde, de forma que tiene que
solicitar retransmisin.
Cdigos correctores de error: Consiste en la misma filosofa que el anterior,
incluir informacin redundante pero en este caso, la suficiente como para permitirle
al receptor deducir cual fue el carcter que se transmiti, por lo tanto, el receptor
tiene capacidad para corregir un n limitado de errores.

Deteccin de errores

Como su nombre indica este tipo de cdigos son capaces de detectar que ha
ocurrido un error durante la transmisin pero no qu error, por lo que no permiten su
correccin. En este caso, el receptor se ve obligado a solicitar al emisor la retransmisin
de la trama completa, pues no es capaz de averiguar dnde y qu error ocurri para
corregirlo. En definitiva, son cdigos que detectan pero no corrigen errores.

Figura 3-2. Redundancia


PGINA: 4
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

Todos ellos estn basados en el concepto de redundancia. Consiste en incluir


cierta informacin adicional al bloque de datos que queremos transmitir. La Figura 3-2
muestra el concepto del uso de la redundancia para chequear la transmisin de un
bloque de datos.
Una vez que la cadena de datos ha sido generada, se pasa a travs de un
dispositivo o funcin que la analiza y genera su cdigo de chequeo de redundancia, el
cual se aade al bloque de datos original a transmitir. El bloque de datos para transmitir
(datos originales + redundancia) viaja a travs de la lnea de transmisin hasta el
receptor. El receptor analiza toda la cadena recibida con una funcin o dispositivo de
chequeo. Si la cadena recibida pasa el test de chequeo, lo que indica que no se han
detectado errores, se acepta la porcin de bits de datos y los bits redundantes son
eliminados. Si, por el contrario, no pasa la funcin de chequeo, se entiende que se han
producido errores y, por lo tanto, la cadena es eliminada.
Vamos a estudiar 3 tipos de chequeo de redundancia ms utilizados en
comunicaciones:
q
q
q

Chequeo de redundancia vertical (VRC),


Chequeo de redundancia longitudinal (LRC),
Chequeo de redundancia cclica (CRC): patrn de bits, polinomios y
registro de desplazamiento

PGINA: 5
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

2.1. Cdigo VRC


Es el mtodo ms utilizado, sencillo y barato utilizado para la deteccin de
errores es el cdigo VRC ("Vertical Redundancy Check"), tambin se denomina Bit de
paridad.
En esta tcnica, un bit redundante, denominado Bit de paridad, se aade al final
de cada bloque de datos, de forma que:
Paridad Par: Si el total de '1' de la cadena es par (incluido el de paridad)
Paridad Par: Si el total de '1' de la cadena es impar (incluido el de paridad).
Tanto emisor como receptor deben establecer su comunicacin utilizando el
mismo tipo de paridad (par/impar), de forma que, si se transmite un bloque de datos con
paridad par y en el receptor se recibe con paridad impar (o viceversa), el receptor sabe
que se ha producido un error, la rechaza y solicita retransmisin del bloque errneo.
Normalmente, se utiliza paridad par para transmisin sncrona, y paridad
impar, para transmisin asncrona.
La Figura 3-3 muestra un ejemplo de transmisin utilizando Paridad Par.

Ejemplo.
TransmisinASCII,
que se aade un bit de paridad
para cada carcter de 7 bits, de
forma que el carcter, por
ejemplo, G = 111001, se le aade
un bit de paridad impar, por lo
que se transmitir la cadena de
bits 11100011.

Figura 3-3. VRC Paridad Par.

El cdigo VRC permite la deteccin de errores simples (1 bit) o errores


mltiples, siempre que se produzca error en un n de bits impar (1,3,5,... bits).

PGINA: 6
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

2.2. Cdigo LRC


La tcnica LRC ("Longitudinal Redundancy Check") consiste en VRC en dos
dimensiones, por lo que se denomina tambin Paridad Bidimensional. Para
incrementar la garanta de xito en la deteccin de mltiples bits de error, es necesario
incrementar la complejidad de los mtodos de deteccin.
El mtodo LRC consiste en agrupar un determinado n 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.), con
lo que cada posicin tiene su propio bit de paridad. Los bits de paridad de todas las
posiciones se renen en una nueva unidad de datos y se aade al final del bloque, como
muestra la Figura 3-4.

Figura 3-4. LRC

En el receptor, todo el bloque da datos pasa a travs del chequeo LRC. Al


examinar la paridad, debe coincidir tanto la paridad VRC tanto como la LRC con la
paridad esperada (par o impar, dependiendo del convenio utilizado). En el receptor se
eliminan los bits LRC
y VRC y acepta los
datos si no hay error de
transmisin; si alguno
de los valores es
errneo, el receptor
conoce en qu unidad
de datos est el error y
lo rechaza.

Figura 3-5. VRC y LRC

PGINA: 7
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

La Figura 3-5 muestra el proceso completo de construccin de redundancia para


deteccin de errores VRC y LRC.
Los cdigos LRC incrementan enormemente la probabilidad de deteccin de
mltiples bits y errores en rfaga. Solamente en el caso de que se produzcan 2 bits
errneos en una unidad de datos, y otros dos bits exactamente en la misma posicin en
otra unidad de datos, LRC no detectar el error.
La Figura 3-5 muestra el origen de los trminos 'vertical' y 'horizontal'. Cuando
estos mtodos fueros desarrollados, las instrucciones y datos de los computadores se
introducan en tarjetas perforadas, en las cuales se impriman verticalmente, uno a
continuacin del otro.

Ejemplo
Dadas las cadenas de datos transmitidas originales: 11110000 y 11000011. En el
receptor se recibe: 01110001 y 01000010. Comprobar que LRC no detectar error.
Solucin :

PGINA: 8
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

2.3. Comprobacin de Redundancia Cclica(CRC)


Uno de los cdigos para la deteccin de errores ms comn y potente es la
Comprobacin de Redundancia Cclica (CRC, Cyclic Redundancy Check). La idea
de CRC consiste bsicamente en:
Dado un bloque o mensaje de k bits, el transmisor genera una secuencia n-bits,
denominada Secuencia de comprobacin de trama (FCS, "Frame check sequence"), de
tal manera que la trama resultante, con n+k bits sea divisible por algn nmero
predeterminado (patrn de bits). El receptor dividir la trama recibida por el mismo
patrn de bits y, si no hay resto en la divisin (resto 0), indica que la transmisin ha
sido correcta, sin error. Si por el contrario, el resto de la divisin ha sido distinto de
cero, indica la existencia de error en la transmisin, y por tanto, debe ser rechazada.
Para aclarar el procedimiento CRC se presenta de tres formas: Aritmtica
mdulo 2, Polinomios y lgica digital.

2.3.1.

Aritmtica mdulo 2

La aritmtica mdulo 2 hace uso de sumas binarias sin carreo, como si se tratara
de la operacin lgica "or-exclusiva". Por ejemplo:
111011001001
101010101010
+
010001100011
Algunas definiciones necesarias son:
T = Trama de (k+n) bits a transmitir, siendo n<k
M = Mensaje de k bits, los primeros k bits de T
F = n bits del FCS, los ltimos bits de T
P = Patrn de n+1 bits; este es el divisor elegido (patrn generador)
El objetivo es que la divisin T/P no d resto alguno. Es evidente que
T = 2n M + F
Ya que multiplicar M por 2n, en realidad tiene el efecto de desplazar hacia la izquierda n
bits, aadiendo ceros al resultado. Por otro lado, sumar F significa concatenar M y F, y
esto no es sino T. El objetivo es hacer T divisible por P.

PGINA: 9
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

Supongamos que se divide 2nM por P:


R
2n M
=Q+
P
P

(1)

Habr un cociente y un resto. Ya que la divisin es binaria, el resto tendr siempre al


menos un bit menos que el divisor. El resto ser, precisamente, la FCS.
Entonces
T = 2n M + R
Ahora la pregunta es: Satisface R la condicin buscada de que la divisin T/P tenga
resto cero?. Para comprobarlo consideramos que:
T 2n M + R
=
P
P
Sustituyendo en la ecuacin (1), tenemos que:
T
R R
=Q+ +
P
P P
No obstante, cualquier nmero binaria sumado mdulo 2 consigo mismo da cero. Por
tanto:
T
R+R
=Q+
=Q
P
P
No hay resto, y por tanto T es divisible por P. As pues, la FCS se genera fcilmente:
simplemente se divide 2nM por P y se usa el resto como FCS. En el receptor, se divide T
por P, y no se obtendr resto alguno si no ha habido errores.

PGINA: 10
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

Ejemplo
Calcular la trama total para que el mensaje M = 100100 pueda ser transmitido al
receptor con capacidad de deteccin de errores, mediante tcnica CRC y patrn
generador P = 1101 . Probar el algoritmo, induciendo un error.
Solucin
1. Dado
el mensaje M = 100100 (6 bits)
el patrn P = 1101 (4 bits)
la FCS R = de 3 bits
2. El mensaje R se multiplica por 23, resultando 100100000
3. El resultado anterior se divide por P:
4. El resto (R = 001) se suma a 2nM para dar T = 100100001, que es lo que se transmite.

PGINA: 11
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

5. Si no hay errores, el receptor recibe T intacto. La trama recibida se divide por P:

Ya que no hay resto, se supone que no habr habido errores.


5. Comprobar que el receptor detectar error si recibe la trama 100110001

PGINA: 12
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

En el diseo del CRC, hay que tener en cuenta varias cosas:


q
q

El patrn P se elige con una longitud de un bit ms que el FCS deseado, y el patrn
elegido en particular depende del tipo de errores que se esperan padecer.
Como mnimo, los bits ms significativos y menos significativos han de ser '1'.

La Figura 3-6 muestra los pasos a seguir para construir un cdigo CRC, tanto en
el emisor como en el receptor:

Figura 3-6. Cdigo CRC: Emisor y receptor

La aparicin de un error se puede expresar fcilmente. Un 3error dar lugar a


que un bit se invierta. Esto es equivalente a calcular la funcin "or-exclusiva" del bit y 1
(es decir, sumar mdulo 2 un 1 a dicho bit): 0+1 = 1; 1+1 = 0. Por tanto los errores en
una trama de (n+k) bits se pueden representar mediante una palabra de (n+k) bits,
teniendo un 1 en aquellas posiciones que coincidan con un error. La trama Tr resultante
se puede expresar como:
Tr = T + E
Donde:
T = es la trama transmitida
E = es el patrn de errores con un 1 en las posiciones donde haya un error
Tr = es la trama recibida
El receptor fallar en la deteccin de un error si, y solamente si, Tr, es divisible por P, lo
que es equivalente a que E sea divisible por P. Intuitivamente, esto parece que es un
suceso poco probable.

PGINA: 13
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

Ejemplo
Dado el siguiente mensaje M = 1010001101 (10 bits). Comprobar el mtodo CRC
utilizando un divisor P = 110101 (5 bits). Calcular CRC, el mensaje completo de
transmisin. En recepcin, inducir un error y comprobar el funcionamiento de CRC
en el receptor.
Solucin

PGINA: 14
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

2.3.2.

Cdigos Polinmicos

Habitualmente, el cdigo CRC se


representa no por una cadena binaria de '0' y
'1', sino como una representacin
algebraica polinmica, como muestra la
Figura 3-7.

Figura 3-7. Representacin polinomial

La representacin polinmica es
utilizada por varias razones:
q
q

Sencillez
Aplicacin directa
matemticas

de

los

conceptos

La forma de aproximacin del proceso


CRC polinmico consiste en expresar todos los
valores como polinomios de una variable X, con
coeficientes binarias. Los coeficientes son,
precisamente, los bits del nmero en binario (Ver
Figura 3-8)

Figura 3-8. Un polinomio divisor

De nuevo las operaciones matemticas son en mdulo 2. El procedimiento CRC


se puede describir de la siguiente manera:
X nM (X )
R( X )
= Q( X ) +
P( X )
P( X )
T ( X ) = X N M ( X ) + R( X )

PGINA: 15
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

Un error E(X) no se detectar si es divisible por P(X). Se puede demostrar que los
siguientes errores no son divisible mediante la eleccin del polinomio P(X) adecuado, y
por tanto se podrn detectar:
q
q
q
q
q

Todos los errores de un nico bit


Todos los errores dobles, si P(X) tiene al menos tres 1.
Cualquier nmero impar de errores, siempre que P(X) contenga el factor (X+1)
Cualquier error a rfagas en el que la longitud de la rfaga sea menor que la longitud
del p9linomio divisor; es decir, menor o igual que la longitud de la FCS.
La mayora de las rfagas de mayor longitud.

La Figura 3-10 muestra diferentes polinomios estndar utilizados por diversos


protocolos para generacin de cdigo CRC.

Figura 3-9. Polinomios estandard

Ejemplo
Representar en formato CRC polinmico, un mensaje M = 1010001101 y divisor P =
110101.
Solucin

PGINA: 16
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

2.3.3.

Lgica Digital

El procedimiento CRC se puede representar, y de hecho implementar, con un


circuito divisor formado por puertas or-exclusiva y un registro de desplazamiento. El
registro de desplazamiento es una cadena de elementos de memoria de 1 bit. Cada
elemento tiene una lnea de salida, que indica el valor almacenado actualmente, as
como una lnea de entrada. A instantes discretos de tiempo, establecidos por una seal
de reloj, el valor almacenado en el elemento de memoria se reemplaza por el valor que
se encuentre en la lnea de entrada. Todo el registro utiliza una seal de reloj comn,
haciendo sta que se produzca un desplazamiento de un bit a lo largo de todo el registro.
El circuito del registro de desplazamiento se construye segn las siguientes
condiciones:
q
q
q

El registro contendr n bits, igual a la longitud del CRC


Hay n puertas or-exclusiva.
La presencia o ausencia de puerta corresponder con la presencia o ausencia del
trmino correspondiente en el polinomio divisor.

La arquitectura de este circuito se explica mejor considerando un caso particular,


como el ejemplo que se muestra en la Figura 3-10. En este ejemplo se utiliza:
Mensaje M = 1010001101
Divisor P = 110101

M(X) = X9 + X7 + X3 + X2 + 1
P(X) = X5 + X4 + X2 + 1

En la parte (a) de la figura se muestra la realizacin del registro de


desplazamiento. El proceso comienza con la puesta a cero de todo el registro. A
continuacin el mensaje o dividendo se introduce, bit a bit, comenzando con el ms
significativo. La parte (b) de la figura es una tabla donde se muestra el funcionamiento
paso a paso por cada bit de entrada. Cada fila de la tabla muestra los valores
almacenados en los cinco elementos de memoria del registro de desplazamiento. Es
ms, las filas muestran los valores que aparecern en las salidas de los tres circuitos orexclusiva. Finalmente, en cada columna se muestra el valor del siguiente bit de
entrada, que estar disponible para el siguiente paso.
Debido a que no hay realimentacin hasta que un '1' del dividendo aparezca en el
extremo ms significativo del registro, las primeras cinco operaciones son simplemente
desplazamientos. Siempre que un 1 llegue al extremo izquierdo del registro (c4), se
resta 1 (or-exclusivo) del segundo (c3), cuarto (c1) y sexto (entrada) bit del siguiente
desplazamiento. Esto es idntico al procedimiento de la divisin binaria mencionado
anteriormente. El procedimiento continua para todos los bits del mensaje ms cinco bits
finales igual a cero. Estos ltimos son para desplazar M cinco posiciones a la izquierda

PGINA: 17
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

para as dar cabida al FCS. Tras procesar el ltimo bit, el registro de desplazamiento
contendr el resto (FCS).

Figura 3-10. Registro de desplazamiento CRC

Por lo tanto, el mensaje M' que se transmitir al medio de transmisin, y que


llegar al receptor, caso de que no se produzca error ser:
M' = 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0
En el receptor, se utiliza la misma lgica. Cada bit de la trama M' se introducir
en el registro de desplazamiento. Si no ha habido errores, el registro de desplazamiento
debera contener el patrn de bits R al final de M'. Los bits transmitidos R empiezan a
llegar, y el efecto consistir en que cuando concluya la recepcin, el registro debe
contener todas las posiciones igual a cero.

PGINA: 18
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

La Figura 3-12 indica la arquitectura general de la realizacin de un CRC


mediante un registro de desplazamiento para el polinomio
n

P( X ) = ai X i
i=0

donde a0=an=1, y el resto de ai son igual a 0 1.

Figura 5-12.
3-11.Arquitectura
Arquitectura de
de un
un CRC
CRC genrico
genrico para
para implementar
implementar lala divisin
Figura
divisin por
por
n-1
22
n-1
n
1+a
X+a
X
+...+a
X
+X
.
1+a
X+a
X
+...+a
X
1
2
n-1
1
2
n-1

PGINA: 19
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

3.

Correccin de errores

Hasta el momento, los mecanismos que hemos estudiado se encuadran dentro de


los mtodos de deteccin de errores, con capacidad de deteccin pero no de correccin.
A continuacin vamos a desarrollar los mtodos de correccin de errores.
La correccin de errores se puede tratar de 2 formas:
q
q

Cuando se detecta un error en un determinado fragmento de datos, el receptor


solicitar al emisor la retransmisin de dicho fragmento de datos.
El receptor detecta un error, y si estn utilizando informacin redundante suficiente
para aplicar un mtodo corrector, automticamente aplica los mecanismos
necesarios para corregir dicho error.

3.1. Bits redundantes


Tericamente es posible corregir cualquier fragmento de cdigo binario
automticamente. Para ello, en puesto de los cdigos detectores de errores se utilizan los
cdigos correctores de errores, de mayor complejidad matemtica y mayor nmero de
bits redundantes necesarios. La necesidad de mayor nmero de bits redundantes hace, a
veces, que la correccin de mltiples bits sea inviable e ineficiente por el elevado
nmero de bits necesarios. Por ello, normalmente los cdigos correctores de error se
reducen a la correccin de 1, 2 3 bits.
En los puntos siguientes nos referiremos a cdigos correctores de errores, con
capacidad de correccin de 1 bit. Los cdigos correctores de mltiples bits son
esquemas mucho mas complejos, que salen fuera del alcance de esta asignatura.
Como hemos visto anteriormente, los cdigos VRC son capaces de detectar
errores simplemente aadiendo un bit de paridad al mensaje, pero no son capaces de
determinar cual ha sido el bit errneo. Por lo tanto, la tarea ms significativa de los
cdigos correctores de errores es localizar la posicin del bit o de los bits errneos.
Por ejemplo, para detectar y corregir un error simple en un carcter codificado
en ASCII, el cdigo corrector debe determinar cual de los 7 bits ha cambiado, por tanto,
debemos distinguir 8 posibles estados: no error, error en posicin 1, error en posicin 2,
sucesivamente hasta, error en posicin 7. Por lo tanto, necesitamos aadir tantos bits
redundantes sean necesarios para mostrar los ocho posibles estados.

PGINA: 20
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

A simple vista, parece claro que con tres bits redundantes podramos representar
los ocho posibles estados (23=8), pero qu sucede si, precisamente, el error se produce
en alguno de estos tres bits redundantes?.
Por lo tanto, tenemos que, para calcular el n de bits redundantes (Figura 3-12):
Sea m, el n de bits de mensajes que queremos controlar
Sea r, el n de bits redundantes
Por tanto, el total de bits transmitidos es m+r, de forma que r debe ser capaz de indicar
m+r+1 estados posibles (no error, error bit posicin 1, error bit posicin 2, error bit
posicin m+r-1, error bit posicin m+r.
Esto nos lleva a la conclusin que tiene que cumplirse la siguiente expresin:

2r m + r + 1

Figura 3-12. Bits de datos y redundantes

PGINA: 21
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

3.2. Distancia Hamming


La Distancia Hamming H entre dos secuencias binarias S1 y S2 de la misma
longitud, viene definida por el nmero de bits en que difieren.
Por ejemplo, sean:
S1 = 101111
S2 = 111100
Secuencias binarias
y sea H(S1,S2) la Distancia Hamming entre S1 y S2. Entonces, se tiene que:
H(S1,S2) = 3
La Distancia Hamming est relacionada con la probabilidad de error. En efecto,
cuanto mayor sea la distancia mnima entre dos smbolos de un cdigo dado, menor ser
la probabilidad de cometer errores. Sin embargo, aumentar la Distancia Hamming
mnima entre smbolos significa codificar menos smbolos con igual nmero de bits. En
otras palabras, aumentando la redundancia se lograr disminuir la probabilidad de
cometer errores.
Para demostrar este concepto, usaremos el denominado Modelo Geomtrico del
Cubo (Figura 3-13). Supongamos que tenemos un cdigo de 3 bits por byte (carcter)
con el cual podemos formar un total de 8 combinaciones diferentes (8 caracteres
diferentes). Tal como se muestra en la Figura 3-13, cada una de estas combinaciones
puede representarse en uno de los 8 vrtices de un cubo. Supongamos tambin que con
este cdigo queremos representar smbolos numricos, que en este caso sern como
mximo 8, es decir, las cifras de 0 a 7.

PGINA: 22
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

Figura 3-13. Modelo geomtrico del cubo

En la Figura 3-13 (a) a cada byte disponible se le ha asignado un smbolo (cifras


de 0 a 7). Como se puede observar, en este caso la distancia de Hamming mnima es
H=1, que se da entre los bytes situados en vrtices adyacentes. Con este valor mnimo
de Distancia Hamming no es posible detectar ni corregir ningn error, pues la alteracin
de un bit dar por resultado una nueva combinacin que tiene asignado otro smbolo.
En la Figura 3-13 (b) se han asignado smbolos (cifras de 0 a 3) a solamente 4
bytes de los 8 disponibles. Como se puede observar, en este caso la Distancia Hamming
mnima es H = 2. Para que esto sea posible, los bytes vlidos se han situado en vrtices
opuestos por las caras, mientras que a los vrtices adyacentes a ellos no se les ha
asignado ningn smbolo. Con esta Distancia de Hamming mnima es posible detectar la
presencia de un bit errneo, pero no corregirlo. En efecto, la alteracin de un solo bit
resultar en una combinacin que no tiene asignado ningn smbolo, por lo que se
puede deducir que se trata de un error.
En la Figura 3-13 (c), solamente se les ha asignado un carcter a 2 de los 8 bytes
disponibles (cifras 0 y 1). En este caso, la distancia de Hamming mnima entre bytes
vlidos es H = 3. Para que esto sea posible, los bytes vlidos se han situado tal y como
indica la Figura 3-13 (c). Con esta Distancia de Hamming mnima es posibles detectar
bytes con 1 2 bits errneos, en efecto, la alteracin de 1 2 bits resultar en una
combinacin que no tiene asignado ningn carcter. Adems permite corregir bytes que
tengan un solo bit errneo.

PGINA: 23
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

3.3. Cdigo Hamming


Cdigo corrector de
errores, desarrollado por R.W.
Hamming en 1950, y se basa
en los conceptos de bits
redundantes
y
Distancia
Hamming, vistos en el punto
anterior, pero ampliado con
una localizacin especfica de
dichos bits redundantes.

Figura 3-14. Posicin de bits redundantes en un Cdigo


Hamming

Un Cdigo Hamming puede utilizarse en mensajes de caracteres de cualquier


longitud, aunque ilustraremos su utilizacin con caracteres ASCII de 7 bits y paridad
par. Necesitamos 4 bits ( 24 7 + 4 +1 ), que se situarn en las posiciones 1, 2, 4 y 8
(posiciones potencia de 2). Nos
referiremos a los bits redundantes
como r1, r2, r4 y r8.
De forma que cada bit
redundante es el bit VRC de una
combinacin de bits, as, la
secuencia de los r bits para una
secuencia de 7 bits es la siguiente:
r1 = bits 1, 3, 5, 7, 9, 11
r2 = bits 2, 3, 6, 7, 10, 11
r4 = bits 4, 5, 6, 7
r8 = bits 8, 9, 10,11

Figura 3-15. Clculo de bits redundantes


PGINA: 24
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

En general, el bit n es comprobado por los bits b1, b2, ..., bi, de forma que 1 + 2 + ...
+ i = n. Por ejemplo:
q
q

bit 5 es comprobado por los bits 1 y 4.


bit 6 es comprobado por los bits 2 y 4.
En la Figura 3-15 muestra la estrategia seguida:
q
q

El bit r1 se calcula utilizando todas las posiciones de bits cuyas representaciones


de bits incluyen un 1 en la primera posicin.
El bit r2 se calcula utilizando todas las posiciones de bits que incluyan un 1 en
la segunda posicin, y as sucesivamente.

Ejemplo
La Figura 3-16 muestra el cdigo Hamming para un carcter ASCII. Una vez
codificado el carcter, se transmite un cdigo de 11 bits a travs de la lnea de
transmisin.
Solucin:

PGINA: 25

Figura 3-16. Ejemplo de clculo de bits redundantes.


Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

Una vez realizada la transmisin, la cadena de bits ha sufrido una alteracin el bit n 7,
tal y como se indica en la figura :

El receptor toma la cadena recibida y recalcula nuevamente los cuatro bits del
cdigo Hamming, utilizando el mismo protocolo que el emisor (bits utilizados y
paridad). Ver Figura 3-18.
Con los nuevos bits de paridad recalculados, los ensambla en un numero binario
segn la posicin de r, a saber, (r8, r4, r2, r1), lo que produce el numero binario 0111 (7
en decimal), que es, precisamente, la posicin del bit errneo.
Una
vez
identificado la posicin
del bit, el receptor puede
invertir el valor del bit y,
por lo tanto, corregir el
error.

Figura 3-18. Deteccin de error con Cdigo Hamming


PGINA: 26
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

Dpto. Fsica y Arquitectura de Computadores


Area de Ingeniera Telemtica

4.
q
q

Bibliografa Adicional
Dimitri Bertsekas, Robert Gallager, "Data Networks", 2 ed.. Prentice Hall. ISBN:
0-13-200916-1
Norman Abramson, "Teora de la informacin y codificacin", 6 ed. Paraninfo.
ISBN: 84-283-0232-4

PGINA: 27
Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE