Вы находитесь на странице: 1из 52

Comunicacin de Datos

Correccin y Deteccin de Errores


Profesora Maria Elena Villapol
maria.villapol@ciens.ucv.ve
Comunicacin de Datos
Error en un Bit de una Trama
Comunicacin de Datos
Errores en Mltiples Bits de una Trama:
Errores en Rfagas (burst error)
Comunicacin de Datos
Tcnicas de
deteccin y
correcin de
errores
Deteccin
Cdigos de
bloques
Lineales
Cdigo de
Paridad
Cclicos
Chequeo Ciclico
Redundante
(CRC)
Correccin
Cdigos de
bloques
Lineales
Cclicos
Chequeo Ciclico
Redundante
(CRC)
Cdigo de
Hamming
Cdigo
Convolucionales
Comunicacin de Datos
Cada bloque de k bits es codificado con un bloque de n
bits denominado palabra cdigo (codeword).
La palabra cdigo es la que se transmite.
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.
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 que difiere de la original.
Codificacin por Bloques:
Cdigos para la deteccin de errores
Comunicacin de Datos
Deteccin/Correccin de Errores
Palabra cdigo
Comunicacin de Datos
Aritmtica Mdulo N, N=2
Comunicacin de Datos
Principios de la deteccin de errores
El algoritmo suma (n-r) bits al bloque de datos de k bits.
Los k bits en la seal original se transmiten en la palabra cdigo de
n bits.
La distancia de Hamming, d(v1,v2) se define como el nmero de
bits en los cuales v1 y v2 difieren.
La distancia mnima para una palabra cdigo que consiste de
w1,w2, ws donde s = 2
m
.
dmin = min
ij
[d(wi,wj)]
Por ejemplo, si v1 = 011011 y v2 = 110001 d(v1,v2) = 3
La funcin de la forma vc = f(vd) donde vd es un vector de data de k
bits y vc la palabra cdigo.
El radio de redundancia (ie redundancia) es (n-k)/k.
La tasa del cdigo es k/n y mide la cantidad adicional de ancho de
banda que se necesita.
Comunicacin de Datos
Las siguientes consideraciones se deben tener
en el diseo de un cdigo:
Dado k y (n-k), nos gustara el valor mas grande de
dmin.
El codificador debera ser sencillo requiriendo un
mnimo de memoria y tiempo de procesamiento.
Nos gustara un pequeo nmero de extra bits (n-k),
para reducir el ancho de banda.
Nos gustara una gran nmero de extra bits (n-k) para
reducir la tasa de error.
Note que los dos ltimos objetivos estn en
conflicto y deben negociarse.
Principios de la deteccin de errores
Comunicacin de Datos
Principios de la deteccin de errores
Para detectar d errores se requiere una
distancia de d+1. Por ejemplo, bit de
paridad.
Para corregir d errores, se requiere una
distancia de 2d+1.
Comunicacin de Datos
Ejemplo un Cdigo de Bloque
El esquema 4B/5B de codificacin
discutido anteriormente es un ejemplo
de codificacin por bloques. En este
esquema, k=4 y n = 5. Tenemos
entonces 2
k
= 16 y 2
n
= 32 palabras
cdigos. Tenemos 16 de las 32
palabras cdigos para la transferencia
de mensajes y el resto son usados para
otros procesos o no usados.
Comunicacin de Datos
Proceso de Codificacin y Descodificacin en
la Codificacin por Bloques
Comunicacin de Datos
Cdigos de Bloques Lineales
En un cdigo lineal por bloques el OR
exclusivo de cualquiera palabra cdigo
crea otra palabra cdigo vlida.
Comunicacin de Datos
Bit de Paridad
Es un cdigo de deteccin de errores
simples con n= k+1 y dmin = 2

Comunicacin de Datos
Bit de Paridad
Sumar un bit al final
de un bloque de data.
De forma tal que, el
carcter tiene:
Un nmero par de
unos (paridad par).
Un nmero impar de
unos (paridad impar).

Ventajas:
Simple
Desventajas:
Un nmero par de errores
no se pueden detectar.
Ejemplos (paridad par):
Data = 1110011
Transmite (A)= 11100111
Llega = 11100101
Clculo en el receptor (B) =
11100100
|Distancia A-B| = 2

Comunicacin de Datos
Cdigo de Paridad C(5,4)
Comunicacin de Datos
Bit de Paridad: Codificador/Decodificador
Comunicacin de Datos
Bit de Paridad
r0 = a3 + a2 + a1 + a1 (mdulo-2)
Sndrome (calculado por el receptor)
s0 = b3 + b2 + b1 + b0 + q0 (mdulo-2)
Comunicacin de Datos
Cdigo de Hamming
Diseado para corregir errores de bit simples.
Familia de bloques de correccin de error (n,k) con los siguientes
parmetros:
Longitud del bloque: n = 2
m
1
Nmero de bits de dato: k = 2
m
m 1
Nmero de bits de chequeo: n k = m
Distancia mnima: d
min
= 3
En el receptor el resultado de la comparacin (XOR de la seal
recibida y otra de la calculada) es realizada.
El resultado se conoce como palabra sndrome.

Comunicacin de Datos
Cdigo de Hamming
La palabra sndrome tiene un rango de 2
(n-k)
1.
0 indica no error entonces no se cuenta.
Como un error puede ocurrir en los k bits de
data o (n-k) bits de chequeo:
2
(n-k)
- 1 >= k+(n-k) = n
Esto nos permite calcular el nmero de bits de
chequeo.
Comunicacin de Datos
Cdigo de Hamming
Codificacin: k bits de datos + (n -k) bits de chequeo.
Decodificacin: compara los (n-k) bits recibido con los (n -k) bits
calculados bits usando XOR.
Los (n-k) bits resultantes se llaman palabra sndrome.
El rango del sndrome esta entre 0 y 2
(n-k)
-1.
El sndrome indica:
Si contiene solo 0s, no se han detectados errores.
Si el sndrome contiene un solo bit en 1 entonces un error ha
ocurrido en uno de los bits de chequeo. Por lo tanto, no se
requiere correccin.
Si el sndrome contiene ms de un bit en 1, entonces el valor
numrico del sndrome indica la posicin de un bit de data en
error. El bit en error es invertido para su correccin.

Comunicacin de Datos
Cdigo de Hamming-Ejemplo
Bloque de datos = 00111001
Comunicacin de Datos
Cdigo de Hamming-Ejemplo
Bit con error
Comunicacin de Datos
Chequeo Cclico Redundante (CRC)
Para un bloque de k bits, el
transmisor genera una
secuencia de n-k = r bits.
El transmisor transmite una
secuencia de n bits, la cual es
exactamente divisible por un
nmero.
La secuencia de n-k bits se
llama secuencia de chequeo
de trama (frame check
sequence, FCS).

Lgica aritmtica
T = trama de n bits.
M= mensaje de k bits.
F = secuencia FCS de n-k
bits.
P = divisor con un patrn
predeterminado. Tiene (n-k)+1
bits.

Comunicacin de Datos
El objetivo es que T/P no tenga resto.
Es claro que:
T = 2
r
M + F
2
r
M desplaza el mensaje a la izquierda y lo rellena con ceros (0).
Dividir 2
r
M entre P:
2
r
M/P= Q + R/P
Usemos R como el FCS
T = 2
r
M + R y T/P = 2
r
M /P+ R/P = Q + (R/P + R/P) = Q
As que no hay resto.
Esto es por la suma modulo 2 basada en la operacin OR-exclusivo:
0 0 = 0 0 1 = 1 1 0 = 1 1 1 = 0.
Entonces, dividir 2
r
M entre P y usar el resto como el FCS.
Chequeo Cclico Redundante (CRC)
Comunicacin de Datos
Representacin Polinomial
Comunicacin de Datos
CRC: Ejemplo
M = 1001 (4 bits) <-> X
3
+1
P = 1011 (4 bits) <-> X
3
+X
1
+1
FCS = ?
K = 4
n- k +1 = 4
n - k= r =3
Genere el mensaje a ser transmitido.
Comunicacin de Datos
CRC: Ejemplo - Transmisor
Comunicacin de Datos
CRC: Ejemplo - Receptor
Caso 1 Caso 2
Comunicacin de Datos
CRC usando Lgica Digital
El circuito consiste de:
Compuertas XOR
Hasta n k compuertas XOR
La presencia o ausencia de una compuerta se
corresponde con la presencia de un trmino del
divisor polinomial P(X).
Un registro de desplazamiento
Un serie de dispositivos de memoria de 1 bit.
Los registros contienen n-k bits, igual a la longitud
del FCS.
Comunicacin de Datos
Circuito del Ejemplo
Comunicacin de Datos
Otro Ejemplo: P(X) = X
5
+X
4
+X
2
+1
(generador predeterminado)

10.32
Comunicacin de Datos
Chequeo Cclico Redundante (CRC)
Se puede demostrar que los siguientes errores son detectables:
Si el generador tiene mas de un trmino y el coeficiente x
0
es 1
todos los errores sencillos pueden ser detectados.
Si el generador no puede dividir a x
t
+ 1
(t entre 0 y n 1), todos los errores aislados de dos bits pueden
ser detectados.
Un generador que contiene un factor de
x + 1 puede detectar nmeros impares de errores.
Todos los errores en rfaga con L <= r sern detectados.
Todos los errores en rfaga con L = r + 1 sern detectados con
probabilidad 1 (1/2)
r1
.
Todos los errores en rfaga con L > r + 1 sern detectados con
probabilidad1 (1/2)
r
.

Comunicacin de Datos
CRC: Caractersticas Deseables
Un buen generador polinomial necesita tener las siguientes
caractersticas:
Debera tener al menos dos trminos
El coeficiente del termino x
0
debera ser 1.
No debera ser divisible entre x
t
+ 1, para t
entre 2 y n 1.
Debera tener el factor x + 1.

Comunicacin de Datos
Generadores Polinomiales Estndares
Comunicacin de Datos
Correccin de Errores
Las tcnicas de deteccin de errores
combinadas con las tcnicas de ARQ
(retransmisiones) son inadecuadas en
ambientes inalmbricos porque:
La tasa de error de bit es alta.
En algunos casos como lo son los satlites el
retardo de propagacin es largo comparado
con el tiempo de transmisin de una trama.
En estos casos se necesitan usar tcnicas
capaces de corregir ciertos errores.

Comunicacin de Datos
Proceso de Correccin de Errores hacia
Adelante (Forward Error Correction, FEC)
Comunicacin de Datos
FEC
Las siguientes condiciones se cumplen:
d
min
>= 2t+1, el cdigo puede corregir hasta e incluyendo t bits.
d
min
>= 2t puede corregir todos los errores <= t-1 bits y los
errores de t bits pueden ser detectados.
Otra forma de expresar esta relacin es:
El mximo nmero de errores corregibles es:
t=[(d
min
-1)/2]
[x] el ms grande de los enteros que no excede x.
El mximo nmero de errores que pueden ser detectados es:
t=d
min
-1

Comunicacin de Datos
FEC: Ejemplo
k=2 y n=5
Suponga que se
recibe 00100.
El cual es un cdigo
invlido.
La distancia de
Hamming a cada
cdigo vlido es:

Bloque de
datos
Palabra Cdigo
00 00000
01 00111
10 11001
11 11110
Distancia mnima
Comunicacin de Datos
FEC: Ejemplo
Observe que dmin entre cada cdigo
vlido es 3 por lo tanto:
Se pueden corregir errores de un bit.
Se pueden detectar errores dobles.

Comunicacin de Datos
FEC: Ejemplo
Obsrvese que si ocurren dos errores no se pueden corregir.
Comunicacin de Datos
Checksum
Usado en Internet por varios protocolos.
No es usado en la capa de enlace.
Comunicacin de Datos
Checksum
Supongamos que tenemos una lista de cinco nmeros
de 4 bits que queremos enviar a un destino. Adems de
enviar estos nmeros, le enviamos la suma de los
mismos. Por ejemplo, si el conjunto de los nmeros es
(7, 11, 12, 0, 6), enviamos (7, 11, 12, 0, 6, 36), donde 36
es la suma de los nmeros originales. El receptor aade
los cinco nmeros y compara el resultado con la suma.
Si los dos son lo mismo, el receptor asume ningn error,
acepta los cinco nmeros, y descarta la suma. De lo
contrario, hay un error en alguna parte y los datos no
son aceptados.
Comunicacin de Datos
Checksum
Podemos facilitarle el trabajo al receptor si
enviamos el negativo (complemento) de la
suma, llamada la suma de comprobacin
(checksum). En este caso, enviamos (7,
11, 12, 0, 6, -36). El receptor puede sumar
todas las cifras recibidas (incluyendo la
suma de control). Si el resultado es 0,
asume que no hubo error, de lo contrario,
hay un error.
Comunicacin de Datos
Checksum
Cmo podemos representar el nmero 21 en
aritmtica de complemento a uno usando
solamente cuatro bits?
Solucin
El nmero 21 en binario es 10101 (que necesita
cinco bits). Podemos ajustar el bit ms a la
izquierda y aadirlo a los cuatro bits ms a la
derecha.
Tenemos (0101 + 1) = 0110 o 6.

Comunicacin de Datos
Checksum
Cmo podemos representar el nmero -6 en
complemento a uno usando solamente cuatro bits?
Solucin
En complemento a uno, la negativa o complemento de
un nmero se encuentra invirtiendo todos los bits.
Positivo 6 es 0110, 6 negativo es 1001. Si consideramos
solamente los nmeros sin signo, esto es 9. En otras
palabras, el complemento de 6 es 9. Otra forma de
encontrar el complemento de un nmero en un
complemento a la aritmtica es restar el nmero de 2
n
-
1 (16 - 1 en este caso).
Comunicacin de Datos
Checksum
Vamos a repetir el ejercicio anterior usando
complemento a uno.
El remitente inicializa el control a 0 y suma todos los
elementos de datos y la suma de control, checksum (la
suma de control es considerado como un elemento de
datos y se muestra en color).
El resultado es 36.
Sin embargo, 36 no puede ser expresado en 4 bits. Los
dos bits extras se envuelven y se aaden con la suma
para crear el valor de la suma envuelta 6.
La suma se complementa, en el valor de la suma de
comprobacin 9 (15 - 6 = 9).
El remitente enva ahora seis objetos de datos para el
receptor incluyendo el 9 en el checksum.
Comunicacin de Datos
Checksum
El receptor sigue el mismo procedimiento que el
remitente.
Suma todos los elementos de datos (incluyendo la suma
de control), el resultado es 45.
La suma se envuelve y se convierte en 15. El importe
ajustado se complementa y se convierte en 0.
Dado que el valor de la suma de comprobacin es 0,
esto significa que los datos no estn daado.
El receptor elimina el control y mantiene los elementos
de datos.
Si la suma de comprobacin, checksum, no es cero, se
elimina el paquete.
Comunicacin de Datos
Checksum
1
1 1
0
Comunicacin de Datos
Checksum
Remitente:
1. El mensaje se divide en palabras de 16 bits.
2. El valor de la palabra control se establece en
0.
3. Todas las palabras, incluyendo la suma de
control se suman utilizando complemento a
uno.
4. La suma se complementa y se convierte en
la suma de comprobacin, checksum.
5. La suma es enviado con los datos.

Comunicacin de Datos
Checksum
Receptor:
1. El mensaje (incluido el control) se divide
en palabras de 16 bits.
2. Todas las palabras se suman utilizando
el complemento a uno.
3. La suma se complementa y se
convierte en el nuevo checksum.
4. Si el valor de suma de comprobacin es
0, el mensaje es aceptado, de lo contrario,
se rechaza.
Comunicacin de Datos
Checksum
F
F F F F
F