SlideShare una empresa de Scribd logo
1 de 82
Descargar para leer sin conexión
TELECOMUNICACIONES
Ref .Ing. Luis Degregori C.
Códigos de Errores
Richard Hamming
1
Ing. Víctor Córdova Bernuy
Códigos de Errores
Detección y Corrección de Errores
2
• Las redes deben garantizarnos que los
datos transmitidos lleguen con total
exactitud.
• En muchas aplicaciones es indispensable
que los datos recibidos sean
exactamente igual a los datos
transmitidos.
• Sin embargo los datos se pueden alterar
durante la transmisión.
Detección y Corrección de Errores
• En algunas aplicaciones se requiere
que todos los errores sean
detectados y corregidos.
• Existen otras aplicaciones que
pueden soportar un pequeño nivel
de errores, como en la Tx. de
productos de audio o video.
3
Tipos de Errores
4
• Cuando viaja una señal de un punto
a otro, se pueden producir diferentes
tipos de interferencias debidas a
fenómenos eléctricos externos,
magnetismo, calor, etc.
• Esta interferencia puede cambiar la
forma o el periodo de la señal.
Tipos de Errores
5
• Un error de bit cambiara el 0 por un 1 y
viceversa. (Ver figura 01)
• Cuando tenemos un error de ráfaga, se
cambian muchos bits.
• Por ejem en una ráfaga de 0.5 ms de
duración, en una Tx. con una velocidad de
600 Kbps, se podría cambiar hasta un
máximo de 300 bits.
ERROR DE BIT
0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
Enviado Recibido
0 cambia por 1
Fig. 01.- Muestra el error de un bit.
6
Tipos de Errores
7
• Es muy poco probable que tengamos un
error de bit, lo que tendremos son
errores de ráfaga.
• En este caso al menos 2 unidades de
bits habrán cambiado. (Ver figura 02)
• En un error de ráfaga no se producirán
necesariamente, errores de bits
consecutivos.
• La longitud de la ráfaga se mide desde el
primer hasta el ultimo bit correcto.
ERROR DE RAFAGA
1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 1
Enviado
Longitud del error
de ráfaga (8 bits)
1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1
Recibido
Bits dañados
8
Fig. 02.- Muestra el error de una ráfaga.
Métodos de Corrección.
• Como antecedentes tenemos desde
el Siglo IX la contribución de los
Matemáticos Árabes:
• Método de Expulsión de 9s (Nueves)”
• Por ejemplo: 270 + 538 = 808
• En la suma: 2+7+0 = 9, 5+3+8 = 16 = 1+6 = 7
• Luego 9+7 = 16 = 1+6 = 7
• El resultado: 8+0+8 = 8+8 = 1+6 = 7 OK 9
Redundancia
10
• Para la detección y corrección de errores
se aplica la Técnica de la Redundancia.
• Por eso se envían algunos bits
adicionales (redundantes)
conjuntamente con los bits de datos.
• Estos bits se añaden en la Transmisión
y se eliminan en la Recepción.
• Esto permite al receptor detectar y luego
corregir los bits con errores.
Detección frente a Corrección.
11
• En la detección de errores se determina
solo la existencia de algún error.
• La respuesta es un SI o un NO.
• En la detección, no se determina el
numero de errores.
• Mientras que en la corrección de
errores si requerimos saber cual es el
numero de bits dañados y además
determinar con certeza su posición
dentro de la trama.
Detección frente a Corrección.
12
• En la corrección de errores se necesita,
no solo el numero de bits dañados sino
además su posición exacta.
• También es importante el tamaño del
mensaje.
• Por ejemplo si tenemos que corregir 03
bits en una unidad de 8 bits de datos, se
tendrá que considerar 56 posibilidades.
Métodos de Corrección.
13
• Actualmente existen 02 métodos
conocidos que son:
• La Corrección de errores “Hacia
delante” en donde el receptor
mediante algoritmos deberá predecir
(adivinar) el mensaje con el uso de
los bits redundantes.
• Esto será posible cuando el numero
de errores es pequeño.
Métodos de Corrección.
14
• También tenemos la Corrección de
errores por “Retransmisión” en
donde el receptor detecta la
existencia de un error y de inmediato
solicita al transmisor que vuelva a
retransmitir el mensaje.
• La retransmisión se repite hasta que
se considere libre de errores.
Codificación de Bloques.
15
• En la codificación de bloques se divide el
mensaje en bloques de “k” bits de datos
(PALABRAS de DATOS).
• Se añaden “r” bits redundantes a cada bloque,
consiguiendo una longitud de n = k + r, estos
bloques de “n” bits se denominan PALABRAS
de CODIGO. (Ver Fig. 03)
• Entonces con “k” bits se pueden crear una
combinación de 2k
PALABRAS de DATOS.
• Con “n” bits se pueden crear una combinación
de 2n
PALABRAS de CODIGO.
Codificación de bloques.
16
• Obviamente como n > k el numero
de palabras CODIGO es mayor que
el numero de palabras de DATOS.
• Luego tenemos 2n
- 2k
palabras
CODIGO que no se utilizan.
• Estas palabras CODIGO son
denominadas inválidos o ilegales.
17
Palabras de datos y palabras código
en la codificación de bloques
k bits k bits k bits
2k palabras de datos, cada una de k bits
n bits n bits n bits
2n palabras código, cada una de n bits (solo 2k de ellas son validas)
Donde n > k
Fig. 03.- Palabras de datos y Palabras de código
Detección de errores.
• En la codificación de bloques se podrán
detectar los errores, si ocurren las (02)
siguientes condiciones:
1. El Receptor tiene una lista de palabras
código validas.
2. La palabra código original ha cambiado
a una invalida.
• Este proceso de detección de errores se
puede apreciar en la figura 04.
18
19
Proceso de detección de errores
en la codificación de bloques
Palabra de datos
Codificador
Emisor
k bits
Generador
Palabra código
n bits
Receptor
Decodificador
Palabra de datos
Palabra código
Transmisión
no fiable
Extraer
Generador Descartar
k bits
n bits
Fig. 04.- Proceso de detección de errores
Detección de errores.
20
•
•
•
•
•
•
El emisor a partir de las palabras de datos CREA las
palabras código.
Las palabras código transmitidas, serán evaluadas al
llegar al receptor.
Si la palabra código esta en la lista del receptor se
acepta, extrayendo la palabra de datos.
También es posible que se altere la palabra código
original por otra palabra código, que exista en la lista
del receptor.
De ocurrir lo anterior el receptor podría aceptar una
palabra de datos errada.
Se muestra un ejm en la figura 05, donde k=2 y n=3.
Detección de errores.
Palabras de datos Palabras de código
00 000
01 011
10 101
11 110
Fig. 05.- Un código para detección de errores
21
Detección de errores.
22
•
•
•
Por ejemplo si el emisor codifica la
palabra 01 y la envía al receptor como
011, se podrían tener los siguientes
casos:
El receptor recibe el 011. Como es un
código valido, el receptor lo acepta y
extrae el dato 01.
En el supuesto que el código se altera
en la transmisión y se recibe 111. El
código recibido no será valido y se
eliminara.
Detección de errores.
23
•
•
•
Si el código se daña durante la
transmisión y se recibe un 000 . El
código recibido a pesar de la alteración
es recibido (erróneamente) por el
receptor.
Luego el receptor extrae el dato 00.
Como es un código valido, el receptor
extrae el dato 00.
Debido a los errores (en 2 bits de la
derecha) el error no será detectado.
Corrección de errores.
24
•
•
•
Aquí el receptor deberá encontrar el
código originalmente enviado.
Por esta razón es necesario añadir mas
bits redundantes para realizar la
corrección respecto a los bits
requeridos en la detección.
El concepto es el mismo y se puede
apreciar un esquema en la fig. 06.
25
Estructura del codificador y decodificador
en la corrección de errores
Palabra de datos
Codificador
k bits
Generador
Palabra código
n bits
Emisor Receptor
Decodificador
Palabra de datos
Palabra código
Transmisión
no fiable
Corregir
Comprobador
k bits
n bits
Fig. 06.- Estructura de codificador / decodificador
Corrección de errores.
26
•
•
•
•
Podemos usar las mismas palabras de datos
del ejm 05, pero añadiendo mas bits
redundantes. (Ver fig. 07)
Se añaden 03 bits redundantes a la palabra de
datos de 02 bits, obteniendo códigos de 5
bits.
El código para transmitir el dato 01, es de
acuerdo a su tabla el 01011.
Pero si este se daña (el 2do bit de la derecha)
en la transmisión y se recepciona el 01001 el
receptor detectara que este código no esta en
la tabla. Luego SI existe un ERROR.
Corrección de errores.
27
•
•
•
El receptor asumirá que solo se ha
dañado 01 bit, entonces compara el
código recibido con el primer código de
la tabla.
Al comparar con el primer código se
determinara que este no es el enviado
por que tenemos 02 bits diferentes.
De igual manera se determino que no
fue enviado el tercer y el cuarto código
de la tabla.
Palabras de datos Palabras de código
00 00000
01 01011
10 10101
11 11110
28
Fig. 07.- Se muestra un código para corrección de errores.
Corrección de errores.
Código erróneo: 01001
Corrección de errores.
29
•
•
•
El código original entonces deberá ser el
segundo de la tabla, debido a que solo
difiere en un solo bit.
Luego el receptor reemplaza el código
(dañado) 01001por el código (correcto)
que es el 01011.
Finalmente consulta la tabla y
determina que el dato (correcto)
enviado es el 01.
Distancia Hamming.
30
•
•
•
La distancia Hamming entre 02 palabras
(del mismo tamaño) es el NUMERO DE
DIFERENCIAS entre los bits
CORRESPONDIENTES.
La distancia Hamming entre 02 palabras
x e y se simboliza como: d(x,y).
La distancia Hamming se calcula
aplicando la operación XOR sobre las 2
palabras y contando el numero de bits
resultantes. Será un valor mayor que 0.
Mínima distancia Hamming.
31
•
•
Para diseñar un código de errores, la
mínima distancia Hamming, es la
distancia mas pequeña entre todos los
pares posibles.
Por ejemplo si la palabra 1100 se daña,
siendo el código recibido el 1011, se
puede determinar que tenemos 03 bits
con errores, luego la distancia Hamming
será:
d(1100,1011) = 3.
32
Mínima distancia Hamming para la
Detección de errores.
•
•
•
Si queremos detectar “N” errores; la
distancia Hamming será “N”.
Si queremos detectar hasta un máximo
de “N” errores, la distancia mínima
entre los códigos validos deberá ser
“N+1”.
Así aseguramos que el código recibido
(erróneo) no sea confundido con otro
código valido.
d m
i
n = N+1.
33
Mínima distancia Hamming para la
Corrección de errores.
•
•
•
•
La función de corrección tiene una mayor
complejidad.
Cuando se detecta un código erróneo; en el
receptor, se deberá determinar que código se
transmitió realmente.
Esta decisión esta en función del territorio
requerido alrededor del código.
Se asume que cada código valido tiene un
territorio circular de radio “t” y el código valido
esta en el centro.(Ver figura 08).
34
Territorio de x Territorio de y
Radio t Radio t
x y
dmin >2t
Cualquier código valido Cualquier código dañado con 1 a “t” errores
Fig. 08.- Concepto geométrico para encontrar la dmin en la
corrección de errores muestra un código para
la corrección de errores.
Mínima distancia Hamming para la
Corrección de errores.
35
•
•
•
Como se aprecia en el grafico anterior,
se tiene la interpretación geométrica que
define cada territorio de un código
erróneo.
Del grafico podemos ver que:
d m
in > 2t.
Entonces podríamos afirmar que:
d m
in = 2t + 1.
Códigos de Bloques Lineales
36
•
•
Los algoritmos usados para estos
códigos usan conceptos de algebra
abstracta (Los campos de Galois).
Pero si podemos indicar que en el código
de bloques lineal:
“El OR exclusivo (XOR) de 02 códigos
validos creara otro código valido”.
Mínima distancia para Códigos de
Bloques Lineales
37
• La mínima distancia Hamming,
para un código de bloques Lineal
es el numero 1, en el código
valido distinto de cero, con el
numero mas pequeño de 1.
Códigos de Paridad
38
•
•
•
•
Es un código muy utilizado, una palabra de
datos de “k” bits se convierte en un código de
“n” bits, con “n = k + 1”.
El bit extra (BIT DE PARIDAD) se selecciona de
forma que la cantidad de “1”s en el código sea
PAR.
La mínima distancia Hamming, en esta categoría
es:
d m
i
n = 2
Esto significa que el código puede detectar
errores de 1 bit; no puede corregir cualquier
error.
39
Palabra de
datos
Palabra de
código
Palabra de
datos
Palabra de
código
0000 00000 1000 10001
0001 00011 1001 10010
0010 00101 1010 10100
0011 00110 1011 10111
0100 01001 1100 11000
0101 01010 1101 11011
0110 01100 1110 11101
0111 01111 1111 11110
Códigos de Paridad
En la figura 09, se muestra un ejemplo, de como se elaboran los códigos
de paridad en que k=5 y n=4 (Long. del dato y del código respectivo).
Fig. 09.- Se muestra un código de Paridad C(5,4).
40
Códigos de Paridad
•
•
•
En la sgte. Presentación (Fig. 10) muestra la
estructura de un posible codificador (en el
emisor) y un decodificador (en el receptor).
El codificador utiliza un generador que toma
los 4 bits de datos (a0, a1, a2, a3) y además
inserta un bit de paridad r0, creando un
código de 5 bits.
El bit de paridad que se añade permite que el
numero de UNOS en el código sea PAR.
41
Códigos de Paridad
Generador
Transmisión
no fiable
a3 a2 a1 a0
Palabras de datos
a3 a2 a1 a0 r0
Bit de paridad
Emisor Receptor
Codificador Decodificador
a3 a2 a1 a0
Palabras de datos
Comprobador
b3 2
b b1 b0 q0
Lógica de
decisión
s0
Aceptar
Síndrome
Descarta
r
Palabras código Palabras código
Fig. 10.- Codificador y decodificador para un código de Paridad
Códigos de Paridad
42
•
•
•
El comprobador verifica la cantidad de
“1”s, el resultado es enviado al
síndrome.
Si el síndrome, envía la información a la
Unid. LOGICA de DECISION, quien al
recibir un “0” detecta que el numero de
“1”s es PAR.
Si se recibe un “1” existe un error y el
CODIGO se descarta. Luego no se
creara la DATA.
CódigosdeParidaddedosdimensiones
43
•
•
•
Aquí las palabras de datos se organizan
en filas y columnas (tablas).
Por ejm en la Fig. 11, los datos a enviar
se colocan en filas diferentes.
Para cada fila y cada columna se calcula
un bit de paridad.
CódigosdeParidaddedosdimensiones
44
• Se puede apreciar que la paridad en 02
dimensiones, puede detectar hasta 03
errores que pueden ocurrir en cualquier
ubicación.
• Pero si tenemos errores que alteran 04
bits, estos no podrán ser detectados.
Fig. 11.- Códigodeparidadde
dos dimensiones
Diseño de paridades para filas y columnas
45
1 1 0 0 1 1 1 1
1 0 1 1 1 0 1 1
0 1 1 1 0 0 1 0
0 1 0 1 0 0 1 1
0 1 0 1 0 1 0 1
Paridades de las columnas
Paridades
de
las
filas
Fig. 11.- Códigodeparidadde
dos dimensiones
Un error afecta a dos paridades
1 1 0 0 1 1 1 1
1 0 1 1 1 0 1 1
0 1 1 1 0 0 1 0
0 1 0 1 0 0 1 1
0 1 0 1 0 1 0 1
Paridades
de
las
filas
Paridades de las columnas
46
Fig. 11.- Códigodeparidadde
dos dimensiones
Dos errores afectan a dos paridades
1 1 0 0 1 1 1 1
1 0 1 1 1 0 1 1
0 1 1 1 0 0 1 0
0 1 0 1 0 0 1 1
0 1 0 1 0 1 0 1
Paridades
de
las
filas
Paridades de las columnas
47
Fig. 11.- Códigodeparidadde
dos dimensiones
Tres errores afectan a cuatro paridades
1 1 0 0 1 1 1 1
1 0 1 1 1 0 1 1
0 1 1 1 0 0 1 0
0 1 0 1 0 0 1 1
0 1 0 1 0 1 0 1
Paridades
de
las
filas
Paridades de las columnas
48
Fig. 11.- Códigodeparidadde
dos dimensiones
Cuatro errores no pueden ser detectados
1 1 0 0 1 1 1 1
1 0 1 1 1 0 1 1
0 1 1 1 0 0 1 0
0 1 0 1 0 0 1 1
0 1 0 1 0 1 0 1
Paridades
de
las
filas
Paridades de las columnas
49
Código de Hamming
50
•
•
•
•
Se diseñaron con una distancia dm
in= 3
Luego detectan 1 ó 2 errores.
La fig. 12 muestra una estructura de un
codificador y decodificador en este tipo
de código.
En función de la palabra de datos de 4
bits se crean en el generador 03 bits de
paridad r0, r1 y r2.
Fig. 12.- Estructura del codificador y del
decodificador para un código Hamming
Generador
Transmisión
nofiable
a3 a2 a1 a0
Palabras de datos
r2 r1 r0
a3 a2 a1 a0
Palabras código
Emisor Receptor
Codificador Decodificador
a3 a2 a1 a0
Palabras de datos
Comprobador
b3 b2 b1 b0 q2 q1 q0
Lógica de
decisión
Palabras código
Síndrome
s2 s1 s0
51
Código de Hamming
52
•
•
Aquí el generador crea 03 bits de paridad a
partir de 3 de los 4 bits que componen la
palabra de datos.
Por ejemplo el generador plantea la ecuación
mostrada (ver fig. 13):
• r0=a2 + a1 + a0
.
• r1=a3 + a2 + a1
.
• r2=a3 + a1 + a0
.
• Además el numero de “unos” en cada
combinación de 4 bits debe ser PAR (03 bit de
Dx. + 01 bit Paridad)
53
Código de Hamming
Palabra de datos Palabra de código Palabra de datos Palabra de código
0000 0000000 1000 1000110
0001 0001101 1001 1001011
0010 0010111 1010 1010001
0011 0011010 1011 1011100
0100 0100011 1100 1100101
0101 0101110 1101 1101000
0110 0110100 1110 1110010
0111 0111001 1111 1111111
Fig. 13.- Generación de los Códigos de Hamming C (7,4)
Código de Hamming
54
•
•
•
Luego el comprobador en el decodificador crea un
SINDROME de 3 bits (s0, s1, s2).
Cada uno de estos bits es el de paridad de 4 de los 7
bits que se recibieron.
Por ejemplo el Comprobador plantea la ecuación
mostrada (ver fig. 14):
• s0=b2 + b1 + b0+ q0
.
• s1=b3 + b2 + b1+ q1
.
• s2=b3 + b1 + b0+ q2
.
• El comprobador utiliza ecuaciones similares a las del
generador, para los bits de paridad de la derecha.
Código de Hamming
55
•
•
Luego el SINDROME de 3 bits crea 8
patrones de bits diferentes (000 hasta
111).
Cada una de estas 8 combinaciones
podrán definir la ausencia o existencia
de un error, en los códigos de 7 bits que
se han recibido (Ver la figura 13).
Código de Hamming
56
000 001 010 011 100 101 110 111
no q0 q1 b2 q2 b0 b3 b1
Síndrome
Error
Fig. 14.- Decisión lógica hecha por la lógica de corrección
en el decodificador
Códigos Cíclicos
57
•
•
Son códigos de bloques lineales, pero en
este caso, si un código se desplaza
cíclicamente, el resultado es otra
palabra de código.
Se denominan CODIGOS DE
REDUNDANCIA CICLICA (CRC) se
emplea en la Tx. Dx. entre las Redes
LAN o WAN.(Ver un ejemplo en la figura 14).
58
Códigos Cíclicos
Palabra de datos Palabra de código Palabra de datos Palabra de código
0000 0000000 1000 1000101
0001 0001011 1001 1001110
0010 0010110 1010 1010011
0011 0011101 1011 1011000
0100 0100111 1100 1100001
0101 0101100 1101 1101001
0110 0110001 1110 1110100
0111 0111010 1111 1111111
Fig. 14.- Ejemplo de un código CRC con C (7,4)
59
Códigos Cíclicos
•
•
•
En la fig. 15 se muestra el diseño de
Codificador y decodificador CRC.
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 esto a estos códigos también se les
denomina “Códigos polinómicos”.
60
Códigos Cíclicos CRC
Codificador
Emisor
Transmisión
no fiable
a3 a2 a1 a0
Palabras de datos
a3 a2 a1 a0 r2 r1 r0
Palabras código
Receptor
Decodificador
a3 a2 a1 a0
Palabras de datos
Comprobador
3 2 2 1
b b b1 b0 q q q0
Lógica de
decisión
Palabras código
Síndrome
s2 s1 s0
Generador
Resto
0 0 0
d3d2d1d0
Divisor
Fig. 15.- Ejemplo de un diseño de Codificador y decodificador CRC
61
Códigos Cíclicos
•
•
Por ejemplo, la secuencia binaria
0110101001 se puede representar como
un polinomio, como se muestra a
continuación:
• 0*x9 + 1*x8 + 1*x7 + 0*x6 + 1*x5 + 0*x4 +
1*x3 + 0*x2 + 0*x1 + 1*x0
Luego la secuencia binaria corresponde
a
• x8 + x7 + x5 + x3 + 1
Codigos Convolucionales
62
• Un código convolucional es un tipo de c
ódigo de detección de errores donde:
1.Cada símbolo de m bits de información se
transforma, al ser codificado, en un
símbolo de n bits, donde m/n es la tasa
del código (n ≥ m)
2.La transformación es función de los k
símbolos anteriores, donde k es la
longitud del código.
FEC
63
• Es un código convolucional de importancia:
• Cuando se transmiten datos en tiempo real a
muchos usuarios, se emplea con mucha
frecuencia el Forward Error Correction que
permite optimizar el BW y mejorar la tasa de
error (BER).
• El FEC un tipo de código, que permite la
corrección en el receptor sin retransmisión de
la información original.
FEC
64
• El FEC es adecuado, para sistemas sin retorno
o sistemas en tiempo real donde no se puede
esperar a la retransmisión para mostrar los
datos.
• Las Normas de Transmisión de Televisión
Digital usan Forward Error Correction.
• En la actualidad se utiliza para decodificar este
tipo de códigos el Algoritmo de Viterbi, por su
gran eficiencia en el consumo de recursos.
Códigos de Error
Concatenados
65
• Forman una clase de códigos de error de
corrección que se derivan de la combinación
de un Inner Code y un Outer Code.
• Es un súper código que permite decrecer
exponencialmente en la probabilidad de
error, aun cuando se incremente la longitud
de un bloque
Códigos de Error
Concatenados
• Fueron concebidos en 1966 por DAVE
FORNEY
Codificador
externo
Codificador
interno
Decodificador
interno
Decodificado
r externo
Canal de
transmisión
Súper Codificador
66
Súper Decodificador
SUPER CANAL
Códigos Reed-Solomon
67
• Los códigos Reed-Solomon son
códigos correctores de error basados
en bloques con un amplio rango de
aplicaciones en comunicaciones
digitales y almacenamiento de datos.
Códigos Reed-Solomon
68
• Los códigos Reed-Solomon se utilizan para
corregir errores en varios sistemas incluyendo:
– Dispositivos de Almacenamiento (Cintas,
Discos Compactos, DVD, códigos de barras)
– Comunicaciones inalámbricas o móviles
(Telefonía celular, enlaces de microondas, etc.)
– Comunicaciones satelitales
– Televisión Digital/DVB
– Módem de alta velocidad como ADSL, xDSL,
etc.
Códigos Reed-Solomon
•
•
Los códigos Reed-Solomon se desarrollaron en 1960 en
los laboratorios de Texas Instrument, por el aporte de los
PhD en Matemáticas; Irving Reed y Gustavo Solomon
ambos también investigadores del MIT.
Las naves Voyager y Galileo usan en sus transmisiones
al código RS como detector de errores.
69
• Las naves Voyager y Galileo hasta hoy
usan en sus transmisiones al código RS
como detector de errores.
Códigos Reed-Solomon
La sonda espacial
robótica Voyager
1, fue lanzada el 5
de septiembre de
1977, desde Cabo
Cañaveral, Florida
Actualmente se
aleja del sistema
solar, ya paso la
orbita de Plutón. 70
Códigos Reed-Solomon
71
• Es un código de bloques, que separan el
flujo de datos en bloques de k-bits, y (n-k)
bits de chequeo son agregados en estos
bloques.
• Esto es referenciado como un bloque de
código (n,k). Por ejemplo un código
(15,11) tiene 15 palabras de código,
cuatro bits de paridad y el resto de bits de
datos.
Códigos Reed-Solomon
72
• El codificador R-S toma un bloque de
información digital y añade bits
redundantes.
• El decodificador procesa cada bloque e
intenta corregir los errores y recuperar la
información original.
• El número y tipo de errores que pueden
ser corregidos depende de las
características del código R-S.
Propiedades de los Códigos
Reed-Solomon
73
• Un código Reed-Solomon se especifica como
RS (n,k) con símbolos de “s” bits.
• Lo anterior significa que el codificador toma “k”
símbolos de “s” bit y añade símbolos de paridad
para hacer una palabra de código de “n”
símbolos.
• Existen (n-k) símbolos de paridad de “s” bits
cada uno. Un decodificador puede corregir
hasta “t” símbolos que contienen errores en una
palabra de código, donde 2t = (n – k).
Códigos Reed-Solomon
DATA PARIDAD
2t
K
74
n
Propiedades de los Códigos
Reed-Solomon
75
• Un código popular Reed-Solomon es
RS(255,223) con símbolos de 8 bits.
• Cada palabra de código contiene 255 bytes de palabra
de código, de los cuales 223 bytes son datos y 32 bytes
son paridad.
• Para este código se tiene:
• N = 255, k = 223, s = 8
• 2t = 32, t = 16
• El decodificador puede corregir cualquier error
de 16 símbolos en la palabra de código, es
decir, errores de hasta 16 bytes en cualquier
lugar de la palabra pueden ser automáticamente
corregidos.
INNER CODE
76
• Las normas DVB-S y DVB-T no consideran
suficiente el algoritmo RS, por consiguiente
ellos agregan (además de RS) otro sistema de
corrección, mucho más poderoso, llamado
"Inner Code”, en este caso el FEC.
• El “Inner Code" agrega datos de corrección
futura: por ejemplo agrega 1 bit de corrección
cada 7 bits (Code Rate 7/8), o 1 bit de
corrección cada 2 bits (Code Rate 2/3), y así
sucesivamente.
INNER CODE: FEC
77
• Code Rates altos (ej., 7/8) permite optimizar
el BW pero menor eficacia del FEC (la
posibilidad del receptor de corregir
pequeños errores en los datos).
• Mientras que Code Rates menores (ej., 1/2)
permite posibilidades mayores de eficacia
del FEC, pero mayor requerimiento de BW.
NUEVOS CODIGOS: BCH y LDPC
• Para las nuevas técnicas de
transmisión de TV Digital tipo DTH en
el estándar DVD-S2 se tienen nuevos
códigos de corrección como el BCH
que concatenados con el LDPC,
permiten mayor robustez al sistema,
inclusive con relaciones S/N mucho
mas baja.
78
• Código BCH: es novedoso y muy importante
dado que existe para un amplio rango de tasas,
logrando una ganancia de código significativa y
pudiendo ser implementado aún en altas
velocidades.
79
El nº de errores que puede corregir:
Se puede generalizar para crear clases de
códigos no-binarios, que usan m bits por
símbolo de código.
Código BCH (De bloque)
n2m1
;m3
2
m
t 
2 1
CODIGOS LDPC
(Low Density Parity Codes)
80
• Son un tipo de códigos de paridad.
• Tienen un matriz de paridad dispersa
(es decir con pocos “unos” respecto a
los “ceros”).
• Para un código (n,k), H es una matriz
de chequeo de n-k por n.
• Solo unos pocos bits (4 a 6) participan
en cada ecuac. del chequeo de paridad
CODIGO LDPC (n.k)
CODIGOS LDPC
(Low Density Parity Codes)
• Estos proveen una mejor eficiencia en la
corrección de errores, en standares
como el:
– DVB-S2 – Comunicaciones Satelitales
–IEEE 802.3an (10GBASE-T)
–IEEE 802.16e (WiMAX)
– IEEE 802.11n/ac (Wi-Fi)
–Comunicaciones Móviles UMTS y LTE.
82

Más contenido relacionado

Similar a EE530_tele 1.pdf

Introducción a los microprocesadores ii
Introducción a los microprocesadores iiIntroducción a los microprocesadores ii
Introducción a los microprocesadores iiayreonmx
 
Deteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclica
Deteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclicaDeteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclica
Deteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclicaSabino Chalen Balon
 
sistemas de numeración
sistemas de numeración sistemas de numeración
sistemas de numeración Alba Losa Lucio
 
285655310 2-3-metodos-para-la-deteccion-y-correccion-de-errores
285655310 2-3-metodos-para-la-deteccion-y-correccion-de-errores285655310 2-3-metodos-para-la-deteccion-y-correccion-de-errores
285655310 2-3-metodos-para-la-deteccion-y-correccion-de-erroresCirino Del Ángel Del Ángel
 
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo CódigoCodificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo CódigoOscar Javier Jimenez Revelo
 
Cap 3 capa_enlace
Cap 3 capa_enlaceCap 3 capa_enlace
Cap 3 capa_enlaceBruja Loca
 
Corrección De Errores - Uniandes
Corrección De Errores  - UniandesCorrección De Errores  - Uniandes
Corrección De Errores - UniandesAlexis Díaz
 
Capa de Enlace De Datos
Capa de Enlace De DatosCapa de Enlace De Datos
Capa de Enlace De DatosComdat4
 
Investigación Técnicas de detección de errores de transmisión
Investigación Técnicas de detección de errores de transmisiónInvestigación Técnicas de detección de errores de transmisión
Investigación Técnicas de detección de errores de transmisiónJosé Alexis Cruz Solar
 
Codigo binario
Codigo binarioCodigo binario
Codigo binarioMerce Cruz
 

Similar a EE530_tele 1.pdf (20)

Introducción a los microprocesadores ii
Introducción a los microprocesadores iiIntroducción a los microprocesadores ii
Introducción a los microprocesadores ii
 
Deteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclica
Deteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclicaDeteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclica
Deteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclica
 
sistemas de numeración
sistemas de numeración sistemas de numeración
sistemas de numeración
 
285655310 2-3-metodos-para-la-deteccion-y-correccion-de-errores
285655310 2-3-metodos-para-la-deteccion-y-correccion-de-errores285655310 2-3-metodos-para-la-deteccion-y-correccion-de-errores
285655310 2-3-metodos-para-la-deteccion-y-correccion-de-errores
 
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo CódigoCodificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
 
codificación de canal
codificación de canalcodificación de canal
codificación de canal
 
CodificacióN De Canal
CodificacióN De CanalCodificacióN De Canal
CodificacióN De Canal
 
Circuitos digitales
Circuitos digitalesCircuitos digitales
Circuitos digitales
 
Cap 3 capa_enlace
Cap 3 capa_enlaceCap 3 capa_enlace
Cap 3 capa_enlace
 
Codificacion
CodificacionCodificacion
Codificacion
 
Control de Enlace de Datos.
Control de Enlace de Datos.Control de Enlace de Datos.
Control de Enlace de Datos.
 
Control de Enlace de Datos.
Control de Enlace de Datos. Control de Enlace de Datos.
Control de Enlace de Datos.
 
Corrección De Errores - Uniandes
Corrección De Errores  - UniandesCorrección De Errores  - Uniandes
Corrección De Errores - Uniandes
 
Codigos digitales
Codigos digitalesCodigos digitales
Codigos digitales
 
Parte 3
Parte 3Parte 3
Parte 3
 
Codigos..
Codigos..Codigos..
Codigos..
 
Comunicacion digital
Comunicacion digitalComunicacion digital
Comunicacion digital
 
Capa de Enlace De Datos
Capa de Enlace De DatosCapa de Enlace De Datos
Capa de Enlace De Datos
 
Investigación Técnicas de detección de errores de transmisión
Investigación Técnicas de detección de errores de transmisiónInvestigación Técnicas de detección de errores de transmisión
Investigación Técnicas de detección de errores de transmisión
 
Codigo binario
Codigo binarioCodigo binario
Codigo binario
 

Último

desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolicalf1231
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
Condensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismoCondensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismosaultorressep
 
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILClase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILProblemSolved
 
Clase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptxClase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptxChristopherOlave2
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 

Último (20)

desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
Condensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismoCondensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismo
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILClase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
 
Clase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptxClase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptx
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 

EE530_tele 1.pdf

  • 1. TELECOMUNICACIONES Ref .Ing. Luis Degregori C. Códigos de Errores Richard Hamming 1 Ing. Víctor Córdova Bernuy Códigos de Errores
  • 2. Detección y Corrección de Errores 2 • Las redes deben garantizarnos que los datos transmitidos lleguen con total exactitud. • En muchas aplicaciones es indispensable que los datos recibidos sean exactamente igual a los datos transmitidos. • Sin embargo los datos se pueden alterar durante la transmisión.
  • 3. Detección y Corrección de Errores • En algunas aplicaciones se requiere que todos los errores sean detectados y corregidos. • Existen otras aplicaciones que pueden soportar un pequeño nivel de errores, como en la Tx. de productos de audio o video. 3
  • 4. Tipos de Errores 4 • Cuando viaja una señal de un punto a otro, se pueden producir diferentes tipos de interferencias debidas a fenómenos eléctricos externos, magnetismo, calor, etc. • Esta interferencia puede cambiar la forma o el periodo de la señal.
  • 5. Tipos de Errores 5 • Un error de bit cambiara el 0 por un 1 y viceversa. (Ver figura 01) • Cuando tenemos un error de ráfaga, se cambian muchos bits. • Por ejem en una ráfaga de 0.5 ms de duración, en una Tx. con una velocidad de 600 Kbps, se podría cambiar hasta un máximo de 300 bits.
  • 6. ERROR DE BIT 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 Enviado Recibido 0 cambia por 1 Fig. 01.- Muestra el error de un bit. 6
  • 7. Tipos de Errores 7 • Es muy poco probable que tengamos un error de bit, lo que tendremos son errores de ráfaga. • En este caso al menos 2 unidades de bits habrán cambiado. (Ver figura 02) • En un error de ráfaga no se producirán necesariamente, errores de bits consecutivos. • La longitud de la ráfaga se mide desde el primer hasta el ultimo bit correcto.
  • 8. ERROR DE RAFAGA 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 1 Enviado Longitud del error de ráfaga (8 bits) 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 Recibido Bits dañados 8 Fig. 02.- Muestra el error de una ráfaga.
  • 9. Métodos de Corrección. • Como antecedentes tenemos desde el Siglo IX la contribución de los Matemáticos Árabes: • Método de Expulsión de 9s (Nueves)” • Por ejemplo: 270 + 538 = 808 • En la suma: 2+7+0 = 9, 5+3+8 = 16 = 1+6 = 7 • Luego 9+7 = 16 = 1+6 = 7 • El resultado: 8+0+8 = 8+8 = 1+6 = 7 OK 9
  • 10. Redundancia 10 • Para la detección y corrección de errores se aplica la Técnica de la Redundancia. • Por eso se envían algunos bits adicionales (redundantes) conjuntamente con los bits de datos. • Estos bits se añaden en la Transmisión y se eliminan en la Recepción. • Esto permite al receptor detectar y luego corregir los bits con errores.
  • 11. Detección frente a Corrección. 11 • En la detección de errores se determina solo la existencia de algún error. • La respuesta es un SI o un NO. • En la detección, no se determina el numero de errores. • Mientras que en la corrección de errores si requerimos saber cual es el numero de bits dañados y además determinar con certeza su posición dentro de la trama.
  • 12. Detección frente a Corrección. 12 • En la corrección de errores se necesita, no solo el numero de bits dañados sino además su posición exacta. • También es importante el tamaño del mensaje. • Por ejemplo si tenemos que corregir 03 bits en una unidad de 8 bits de datos, se tendrá que considerar 56 posibilidades.
  • 13. Métodos de Corrección. 13 • Actualmente existen 02 métodos conocidos que son: • La Corrección de errores “Hacia delante” en donde el receptor mediante algoritmos deberá predecir (adivinar) el mensaje con el uso de los bits redundantes. • Esto será posible cuando el numero de errores es pequeño.
  • 14. Métodos de Corrección. 14 • También tenemos la Corrección de errores por “Retransmisión” en donde el receptor detecta la existencia de un error y de inmediato solicita al transmisor que vuelva a retransmitir el mensaje. • La retransmisión se repite hasta que se considere libre de errores.
  • 15. Codificación de Bloques. 15 • En la codificación de bloques se divide el mensaje en bloques de “k” bits de datos (PALABRAS de DATOS). • Se añaden “r” bits redundantes a cada bloque, consiguiendo una longitud de n = k + r, estos bloques de “n” bits se denominan PALABRAS de CODIGO. (Ver Fig. 03) • Entonces con “k” bits se pueden crear una combinación de 2k PALABRAS de DATOS. • Con “n” bits se pueden crear una combinación de 2n PALABRAS de CODIGO.
  • 16. Codificación de bloques. 16 • Obviamente como n > k el numero de palabras CODIGO es mayor que el numero de palabras de DATOS. • Luego tenemos 2n - 2k palabras CODIGO que no se utilizan. • Estas palabras CODIGO son denominadas inválidos o ilegales.
  • 17. 17 Palabras de datos y palabras código en la codificación de bloques k bits k bits k bits 2k palabras de datos, cada una de k bits n bits n bits n bits 2n palabras código, cada una de n bits (solo 2k de ellas son validas) Donde n > k Fig. 03.- Palabras de datos y Palabras de código
  • 18. Detección de errores. • En la codificación de bloques se podrán detectar los errores, si ocurren las (02) siguientes condiciones: 1. El Receptor tiene una lista de palabras código validas. 2. La palabra código original ha cambiado a una invalida. • Este proceso de detección de errores se puede apreciar en la figura 04. 18
  • 19. 19 Proceso de detección de errores en la codificación de bloques Palabra de datos Codificador Emisor k bits Generador Palabra código n bits Receptor Decodificador Palabra de datos Palabra código Transmisión no fiable Extraer Generador Descartar k bits n bits Fig. 04.- Proceso de detección de errores
  • 20. Detección de errores. 20 • • • • • • El emisor a partir de las palabras de datos CREA las palabras código. Las palabras código transmitidas, serán evaluadas al llegar al receptor. Si la palabra código esta en la lista del receptor se acepta, extrayendo la palabra de datos. También es posible que se altere la palabra código original por otra palabra código, que exista en la lista del receptor. De ocurrir lo anterior el receptor podría aceptar una palabra de datos errada. Se muestra un ejm en la figura 05, donde k=2 y n=3.
  • 21. Detección de errores. Palabras de datos Palabras de código 00 000 01 011 10 101 11 110 Fig. 05.- Un código para detección de errores 21
  • 22. Detección de errores. 22 • • • Por ejemplo si el emisor codifica la palabra 01 y la envía al receptor como 011, se podrían tener los siguientes casos: El receptor recibe el 011. Como es un código valido, el receptor lo acepta y extrae el dato 01. En el supuesto que el código se altera en la transmisión y se recibe 111. El código recibido no será valido y se eliminara.
  • 23. Detección de errores. 23 • • • Si el código se daña durante la transmisión y se recibe un 000 . El código recibido a pesar de la alteración es recibido (erróneamente) por el receptor. Luego el receptor extrae el dato 00. Como es un código valido, el receptor extrae el dato 00. Debido a los errores (en 2 bits de la derecha) el error no será detectado.
  • 24. Corrección de errores. 24 • • • Aquí el receptor deberá encontrar el código originalmente enviado. Por esta razón es necesario añadir mas bits redundantes para realizar la corrección respecto a los bits requeridos en la detección. El concepto es el mismo y se puede apreciar un esquema en la fig. 06.
  • 25. 25 Estructura del codificador y decodificador en la corrección de errores Palabra de datos Codificador k bits Generador Palabra código n bits Emisor Receptor Decodificador Palabra de datos Palabra código Transmisión no fiable Corregir Comprobador k bits n bits Fig. 06.- Estructura de codificador / decodificador
  • 26. Corrección de errores. 26 • • • • Podemos usar las mismas palabras de datos del ejm 05, pero añadiendo mas bits redundantes. (Ver fig. 07) Se añaden 03 bits redundantes a la palabra de datos de 02 bits, obteniendo códigos de 5 bits. El código para transmitir el dato 01, es de acuerdo a su tabla el 01011. Pero si este se daña (el 2do bit de la derecha) en la transmisión y se recepciona el 01001 el receptor detectara que este código no esta en la tabla. Luego SI existe un ERROR.
  • 27. Corrección de errores. 27 • • • El receptor asumirá que solo se ha dañado 01 bit, entonces compara el código recibido con el primer código de la tabla. Al comparar con el primer código se determinara que este no es el enviado por que tenemos 02 bits diferentes. De igual manera se determino que no fue enviado el tercer y el cuarto código de la tabla.
  • 28. Palabras de datos Palabras de código 00 00000 01 01011 10 10101 11 11110 28 Fig. 07.- Se muestra un código para corrección de errores. Corrección de errores. Código erróneo: 01001
  • 29. Corrección de errores. 29 • • • El código original entonces deberá ser el segundo de la tabla, debido a que solo difiere en un solo bit. Luego el receptor reemplaza el código (dañado) 01001por el código (correcto) que es el 01011. Finalmente consulta la tabla y determina que el dato (correcto) enviado es el 01.
  • 30. Distancia Hamming. 30 • • • La distancia Hamming entre 02 palabras (del mismo tamaño) es el NUMERO DE DIFERENCIAS entre los bits CORRESPONDIENTES. La distancia Hamming entre 02 palabras x e y se simboliza como: d(x,y). La distancia Hamming se calcula aplicando la operación XOR sobre las 2 palabras y contando el numero de bits resultantes. Será un valor mayor que 0.
  • 31. Mínima distancia Hamming. 31 • • Para diseñar un código de errores, la mínima distancia Hamming, es la distancia mas pequeña entre todos los pares posibles. Por ejemplo si la palabra 1100 se daña, siendo el código recibido el 1011, se puede determinar que tenemos 03 bits con errores, luego la distancia Hamming será: d(1100,1011) = 3.
  • 32. 32 Mínima distancia Hamming para la Detección de errores. • • • Si queremos detectar “N” errores; la distancia Hamming será “N”. Si queremos detectar hasta un máximo de “N” errores, la distancia mínima entre los códigos validos deberá ser “N+1”. Así aseguramos que el código recibido (erróneo) no sea confundido con otro código valido. d m i n = N+1.
  • 33. 33 Mínima distancia Hamming para la Corrección de errores. • • • • La función de corrección tiene una mayor complejidad. Cuando se detecta un código erróneo; en el receptor, se deberá determinar que código se transmitió realmente. Esta decisión esta en función del territorio requerido alrededor del código. Se asume que cada código valido tiene un territorio circular de radio “t” y el código valido esta en el centro.(Ver figura 08).
  • 34. 34 Territorio de x Territorio de y Radio t Radio t x y dmin >2t Cualquier código valido Cualquier código dañado con 1 a “t” errores Fig. 08.- Concepto geométrico para encontrar la dmin en la corrección de errores muestra un código para la corrección de errores.
  • 35. Mínima distancia Hamming para la Corrección de errores. 35 • • • Como se aprecia en el grafico anterior, se tiene la interpretación geométrica que define cada territorio de un código erróneo. Del grafico podemos ver que: d m in > 2t. Entonces podríamos afirmar que: d m in = 2t + 1.
  • 36. Códigos de Bloques Lineales 36 • • Los algoritmos usados para estos códigos usan conceptos de algebra abstracta (Los campos de Galois). Pero si podemos indicar que en el código de bloques lineal: “El OR exclusivo (XOR) de 02 códigos validos creara otro código valido”.
  • 37. Mínima distancia para Códigos de Bloques Lineales 37 • La mínima distancia Hamming, para un código de bloques Lineal es el numero 1, en el código valido distinto de cero, con el numero mas pequeño de 1.
  • 38. Códigos de Paridad 38 • • • • Es un código muy utilizado, una palabra de datos de “k” bits se convierte en un código de “n” bits, con “n = k + 1”. El bit extra (BIT DE PARIDAD) se selecciona de forma que la cantidad de “1”s en el código sea PAR. La mínima distancia Hamming, en esta categoría es: d m i n = 2 Esto significa que el código puede detectar errores de 1 bit; no puede corregir cualquier error.
  • 39. 39 Palabra de datos Palabra de código Palabra de datos Palabra de código 0000 00000 1000 10001 0001 00011 1001 10010 0010 00101 1010 10100 0011 00110 1011 10111 0100 01001 1100 11000 0101 01010 1101 11011 0110 01100 1110 11101 0111 01111 1111 11110 Códigos de Paridad En la figura 09, se muestra un ejemplo, de como se elaboran los códigos de paridad en que k=5 y n=4 (Long. del dato y del código respectivo). Fig. 09.- Se muestra un código de Paridad C(5,4).
  • 40. 40 Códigos de Paridad • • • En la sgte. Presentación (Fig. 10) muestra la estructura de un posible codificador (en el emisor) y un decodificador (en el receptor). El codificador utiliza un generador que toma los 4 bits de datos (a0, a1, a2, a3) y además inserta un bit de paridad r0, creando un código de 5 bits. El bit de paridad que se añade permite que el numero de UNOS en el código sea PAR.
  • 41. 41 Códigos de Paridad Generador Transmisión no fiable a3 a2 a1 a0 Palabras de datos a3 a2 a1 a0 r0 Bit de paridad Emisor Receptor Codificador Decodificador a3 a2 a1 a0 Palabras de datos Comprobador b3 2 b b1 b0 q0 Lógica de decisión s0 Aceptar Síndrome Descarta r Palabras código Palabras código Fig. 10.- Codificador y decodificador para un código de Paridad
  • 42. Códigos de Paridad 42 • • • El comprobador verifica la cantidad de “1”s, el resultado es enviado al síndrome. Si el síndrome, envía la información a la Unid. LOGICA de DECISION, quien al recibir un “0” detecta que el numero de “1”s es PAR. Si se recibe un “1” existe un error y el CODIGO se descarta. Luego no se creara la DATA.
  • 43. CódigosdeParidaddedosdimensiones 43 • • • Aquí las palabras de datos se organizan en filas y columnas (tablas). Por ejm en la Fig. 11, los datos a enviar se colocan en filas diferentes. Para cada fila y cada columna se calcula un bit de paridad.
  • 44. CódigosdeParidaddedosdimensiones 44 • Se puede apreciar que la paridad en 02 dimensiones, puede detectar hasta 03 errores que pueden ocurrir en cualquier ubicación. • Pero si tenemos errores que alteran 04 bits, estos no podrán ser detectados.
  • 45. Fig. 11.- Códigodeparidadde dos dimensiones Diseño de paridades para filas y columnas 45 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 Paridades de las columnas Paridades de las filas
  • 46. Fig. 11.- Códigodeparidadde dos dimensiones Un error afecta a dos paridades 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 Paridades de las filas Paridades de las columnas 46
  • 47. Fig. 11.- Códigodeparidadde dos dimensiones Dos errores afectan a dos paridades 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 Paridades de las filas Paridades de las columnas 47
  • 48. Fig. 11.- Códigodeparidadde dos dimensiones Tres errores afectan a cuatro paridades 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 Paridades de las filas Paridades de las columnas 48
  • 49. Fig. 11.- Códigodeparidadde dos dimensiones Cuatro errores no pueden ser detectados 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 Paridades de las filas Paridades de las columnas 49
  • 50. Código de Hamming 50 • • • • Se diseñaron con una distancia dm in= 3 Luego detectan 1 ó 2 errores. La fig. 12 muestra una estructura de un codificador y decodificador en este tipo de código. En función de la palabra de datos de 4 bits se crean en el generador 03 bits de paridad r0, r1 y r2.
  • 51. Fig. 12.- Estructura del codificador y del decodificador para un código Hamming Generador Transmisión nofiable a3 a2 a1 a0 Palabras de datos r2 r1 r0 a3 a2 a1 a0 Palabras código Emisor Receptor Codificador Decodificador a3 a2 a1 a0 Palabras de datos Comprobador b3 b2 b1 b0 q2 q1 q0 Lógica de decisión Palabras código Síndrome s2 s1 s0 51
  • 52. Código de Hamming 52 • • Aquí el generador crea 03 bits de paridad a partir de 3 de los 4 bits que componen la palabra de datos. Por ejemplo el generador plantea la ecuación mostrada (ver fig. 13): • r0=a2 + a1 + a0 . • r1=a3 + a2 + a1 . • r2=a3 + a1 + a0 . • Además el numero de “unos” en cada combinación de 4 bits debe ser PAR (03 bit de Dx. + 01 bit Paridad)
  • 53. 53 Código de Hamming Palabra de datos Palabra de código Palabra de datos Palabra de código 0000 0000000 1000 1000110 0001 0001101 1001 1001011 0010 0010111 1010 1010001 0011 0011010 1011 1011100 0100 0100011 1100 1100101 0101 0101110 1101 1101000 0110 0110100 1110 1110010 0111 0111001 1111 1111111 Fig. 13.- Generación de los Códigos de Hamming C (7,4)
  • 54. Código de Hamming 54 • • • Luego el comprobador en el decodificador crea un SINDROME de 3 bits (s0, s1, s2). Cada uno de estos bits es el de paridad de 4 de los 7 bits que se recibieron. Por ejemplo el Comprobador plantea la ecuación mostrada (ver fig. 14): • s0=b2 + b1 + b0+ q0 . • s1=b3 + b2 + b1+ q1 . • s2=b3 + b1 + b0+ q2 . • El comprobador utiliza ecuaciones similares a las del generador, para los bits de paridad de la derecha.
  • 55. Código de Hamming 55 • • Luego el SINDROME de 3 bits crea 8 patrones de bits diferentes (000 hasta 111). Cada una de estas 8 combinaciones podrán definir la ausencia o existencia de un error, en los códigos de 7 bits que se han recibido (Ver la figura 13).
  • 56. Código de Hamming 56 000 001 010 011 100 101 110 111 no q0 q1 b2 q2 b0 b3 b1 Síndrome Error Fig. 14.- Decisión lógica hecha por la lógica de corrección en el decodificador
  • 57. Códigos Cíclicos 57 • • Son códigos de bloques lineales, pero en este caso, si un código se desplaza cíclicamente, el resultado es otra palabra de código. Se denominan CODIGOS DE REDUNDANCIA CICLICA (CRC) se emplea en la Tx. Dx. entre las Redes LAN o WAN.(Ver un ejemplo en la figura 14).
  • 58. 58 Códigos Cíclicos Palabra de datos Palabra de código Palabra de datos Palabra de código 0000 0000000 1000 1000101 0001 0001011 1001 1001110 0010 0010110 1010 1010011 0011 0011101 1011 1011000 0100 0100111 1100 1100001 0101 0101100 1101 1101001 0110 0110001 1110 1110100 0111 0111010 1111 1111111 Fig. 14.- Ejemplo de un código CRC con C (7,4)
  • 59. 59 Códigos Cíclicos • • • En la fig. 15 se muestra el diseño de Codificador y decodificador CRC. 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 esto a estos códigos también se les denomina “Códigos polinómicos”.
  • 60. 60 Códigos Cíclicos CRC Codificador Emisor Transmisión no fiable a3 a2 a1 a0 Palabras de datos a3 a2 a1 a0 r2 r1 r0 Palabras código Receptor Decodificador a3 a2 a1 a0 Palabras de datos Comprobador 3 2 2 1 b b b1 b0 q q q0 Lógica de decisión Palabras código Síndrome s2 s1 s0 Generador Resto 0 0 0 d3d2d1d0 Divisor Fig. 15.- Ejemplo de un diseño de Codificador y decodificador CRC
  • 61. 61 Códigos Cíclicos • • Por ejemplo, la secuencia binaria 0110101001 se puede representar como un polinomio, como se muestra a continuación: • 0*x9 + 1*x8 + 1*x7 + 0*x6 + 1*x5 + 0*x4 + 1*x3 + 0*x2 + 0*x1 + 1*x0 Luego la secuencia binaria corresponde a • x8 + x7 + x5 + x3 + 1
  • 62. Codigos Convolucionales 62 • Un código convolucional es un tipo de c ódigo de detección de errores donde: 1.Cada símbolo de m bits de información se transforma, al ser codificado, en un símbolo de n bits, donde m/n es la tasa del código (n ≥ m) 2.La transformación es función de los k símbolos anteriores, donde k es la longitud del código.
  • 63. FEC 63 • Es un código convolucional de importancia: • Cuando se transmiten datos en tiempo real a muchos usuarios, se emplea con mucha frecuencia el Forward Error Correction que permite optimizar el BW y mejorar la tasa de error (BER). • El FEC un tipo de código, que permite la corrección en el receptor sin retransmisión de la información original.
  • 64. FEC 64 • El FEC es adecuado, para sistemas sin retorno o sistemas en tiempo real donde no se puede esperar a la retransmisión para mostrar los datos. • Las Normas de Transmisión de Televisión Digital usan Forward Error Correction. • En la actualidad se utiliza para decodificar este tipo de códigos el Algoritmo de Viterbi, por su gran eficiencia en el consumo de recursos.
  • 65. Códigos de Error Concatenados 65 • Forman una clase de códigos de error de corrección que se derivan de la combinación de un Inner Code y un Outer Code. • Es un súper código que permite decrecer exponencialmente en la probabilidad de error, aun cuando se incremente la longitud de un bloque
  • 66. Códigos de Error Concatenados • Fueron concebidos en 1966 por DAVE FORNEY Codificador externo Codificador interno Decodificador interno Decodificado r externo Canal de transmisión Súper Codificador 66 Súper Decodificador SUPER CANAL
  • 67. Códigos Reed-Solomon 67 • Los códigos Reed-Solomon son códigos correctores de error basados en bloques con un amplio rango de aplicaciones en comunicaciones digitales y almacenamiento de datos.
  • 68. Códigos Reed-Solomon 68 • Los códigos Reed-Solomon se utilizan para corregir errores en varios sistemas incluyendo: – Dispositivos de Almacenamiento (Cintas, Discos Compactos, DVD, códigos de barras) – Comunicaciones inalámbricas o móviles (Telefonía celular, enlaces de microondas, etc.) – Comunicaciones satelitales – Televisión Digital/DVB – Módem de alta velocidad como ADSL, xDSL, etc.
  • 69. Códigos Reed-Solomon • • Los códigos Reed-Solomon se desarrollaron en 1960 en los laboratorios de Texas Instrument, por el aporte de los PhD en Matemáticas; Irving Reed y Gustavo Solomon ambos también investigadores del MIT. Las naves Voyager y Galileo usan en sus transmisiones al código RS como detector de errores. 69
  • 70. • Las naves Voyager y Galileo hasta hoy usan en sus transmisiones al código RS como detector de errores. Códigos Reed-Solomon La sonda espacial robótica Voyager 1, fue lanzada el 5 de septiembre de 1977, desde Cabo Cañaveral, Florida Actualmente se aleja del sistema solar, ya paso la orbita de Plutón. 70
  • 71. Códigos Reed-Solomon 71 • Es un código de bloques, que separan el flujo de datos en bloques de k-bits, y (n-k) bits de chequeo son agregados en estos bloques. • Esto es referenciado como un bloque de código (n,k). Por ejemplo un código (15,11) tiene 15 palabras de código, cuatro bits de paridad y el resto de bits de datos.
  • 72. Códigos Reed-Solomon 72 • El codificador R-S toma un bloque de información digital y añade bits redundantes. • El decodificador procesa cada bloque e intenta corregir los errores y recuperar la información original. • El número y tipo de errores que pueden ser corregidos depende de las características del código R-S.
  • 73. Propiedades de los Códigos Reed-Solomon 73 • Un código Reed-Solomon se especifica como RS (n,k) con símbolos de “s” bits. • Lo anterior significa que el codificador toma “k” símbolos de “s” bit y añade símbolos de paridad para hacer una palabra de código de “n” símbolos. • Existen (n-k) símbolos de paridad de “s” bits cada uno. Un decodificador puede corregir hasta “t” símbolos que contienen errores en una palabra de código, donde 2t = (n – k).
  • 75. Propiedades de los Códigos Reed-Solomon 75 • Un código popular Reed-Solomon es RS(255,223) con símbolos de 8 bits. • Cada palabra de código contiene 255 bytes de palabra de código, de los cuales 223 bytes son datos y 32 bytes son paridad. • Para este código se tiene: • N = 255, k = 223, s = 8 • 2t = 32, t = 16 • El decodificador puede corregir cualquier error de 16 símbolos en la palabra de código, es decir, errores de hasta 16 bytes en cualquier lugar de la palabra pueden ser automáticamente corregidos.
  • 76. INNER CODE 76 • Las normas DVB-S y DVB-T no consideran suficiente el algoritmo RS, por consiguiente ellos agregan (además de RS) otro sistema de corrección, mucho más poderoso, llamado "Inner Code”, en este caso el FEC. • El “Inner Code" agrega datos de corrección futura: por ejemplo agrega 1 bit de corrección cada 7 bits (Code Rate 7/8), o 1 bit de corrección cada 2 bits (Code Rate 2/3), y así sucesivamente.
  • 77. INNER CODE: FEC 77 • Code Rates altos (ej., 7/8) permite optimizar el BW pero menor eficacia del FEC (la posibilidad del receptor de corregir pequeños errores en los datos). • Mientras que Code Rates menores (ej., 1/2) permite posibilidades mayores de eficacia del FEC, pero mayor requerimiento de BW.
  • 78. NUEVOS CODIGOS: BCH y LDPC • Para las nuevas técnicas de transmisión de TV Digital tipo DTH en el estándar DVD-S2 se tienen nuevos códigos de corrección como el BCH que concatenados con el LDPC, permiten mayor robustez al sistema, inclusive con relaciones S/N mucho mas baja. 78
  • 79. • Código BCH: es novedoso y muy importante dado que existe para un amplio rango de tasas, logrando una ganancia de código significativa y pudiendo ser implementado aún en altas velocidades. 79 El nº de errores que puede corregir: Se puede generalizar para crear clases de códigos no-binarios, que usan m bits por símbolo de código. Código BCH (De bloque) n2m1 ;m3 2 m t  2 1
  • 80. CODIGOS LDPC (Low Density Parity Codes) 80 • Son un tipo de códigos de paridad. • Tienen un matriz de paridad dispersa (es decir con pocos “unos” respecto a los “ceros”). • Para un código (n,k), H es una matriz de chequeo de n-k por n. • Solo unos pocos bits (4 a 6) participan en cada ecuac. del chequeo de paridad
  • 82. CODIGOS LDPC (Low Density Parity Codes) • Estos proveen una mejor eficiencia en la corrección de errores, en standares como el: – DVB-S2 – Comunicaciones Satelitales –IEEE 802.3an (10GBASE-T) –IEEE 802.16e (WiMAX) – IEEE 802.11n/ac (Wi-Fi) –Comunicaciones Móviles UMTS y LTE. 82