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)
n2m1
;m3
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