Está en la página 1de 82

TELECOMUNICACIONES

Richard Hamming

Ing. Luis Degregori C.


Códigos de Errores

1
Detección y Corrección de Errores
• 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.
2
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
• 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.

4
Tipos de Errores
• 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.
5
ERROR DE BIT

0 cambia por 1

0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0

Enviado Recibido

Fig. 01.- Muestra el error de un bit.

6
Tipos de Errores
• 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.
7
ERROR DE RAFAGA

Longitud del error


de ráfaga (8 bits)

Enviado

1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 1
Bits dañados

1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1
Recibido
Fig. 02.- Muestra el error de una ráfaga.
8
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
• 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.
10
Detección frente a Corrección.
• 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.
11
Detección frente a Corrección.
• 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.

12
Métodos de Corrección.
• 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.
13
Métodos de Corrección.
• 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.
14
Codificación de Bloques.
• 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.
15
Codificación de bloques.
• 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.

16
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 Donde n > k

n bits n bits n bits

2n palabras código, cada una de n bits (solo 2k de ellas son validas)

Fig. 03.- Palabras de datos y Palabras de código 17


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
Proceso de detección de errores
en la codificación de bloques
Emisor Receptor

Codificador Decodificador

k bits Palabra de datos Palabra de datos k bits

Extraer

Generador Generador
Descartar

n bits Palabra código Palabra código n bits


Transmisión
no fiable

Fig. 04.- Proceso de detección de errores 19


Detección de errores.
• 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.

20
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.
• 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.
22
Detección de errores.
• 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.
23
Corrección de errores.
• 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.

24
Estructura del codificador y decodificador
en la corrección de errores
Emisor Receptor

Codificador Decodificador

k bits Palabra de datos Palabra de datos k bits

Corregir

Generador Comprobador

n bits Palabra código Palabra código n bits


Transmisión
no fiable

Fig. 06.- Estructura de codificador / decodificador 25


Corrección de errores.
• 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.
26
Corrección de errores.
• 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.
27
Corrección de errores.
Código erróneo: 01001

Palabras de datos Palabras de código

00 00000
01 01011
10 10101
11 11110

Fig. 07.- Se muestra un código para corrección de errores.


28
Corrección de errores.
• 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.
29
Distancia Hamming.
• 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.
30
Mínima distancia Hamming.
• 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.
31
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 min = N+1. 32
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).
33
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.

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


34
Mínima distancia Hamming para la
Corrección de errores.
• 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 min > 2t.
• Entonces podríamos afirmar que:
d min = 2t + 1.
35
Códigos de Bloques Lineales

• 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”.

36
Mínima distancia para Códigos de
Bloques Lineales

• 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.

37
Códigos de Paridad
• 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 min = 2
• Esto significa que el código puede detectar
errores de 1 bit; no puede corregir cualquier
error.
38
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).

Palabra de Palabra de Palabra de Palabra de


datos código datos 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

Fig. 09.- Se muestra un código de Paridad C(5,4). 39


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.
40
Códigos de Paridad
Emisor Receptor

Codificador Decodificador
Palabras de datos Palabras de datos
a3 a2 a1 a0 a3 a2 a1 a0

Aceptar

Descartar
Lógica de
Síndrome
decisión
s0

Generador
Comprobador

Bit de paridad

Transmisión
a3 a2 a1 a0 r0 b3 b2 b1 b0 q0
no fiable

Palabras código Palabras código

41
Fig. 10.- Codificador y decodificador para un código de Paridad
Códigos de Paridad

• 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. 42
Códigos de Paridad de dos dimensiones

• 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.

43
Códigos de Paridad de dos dimensiones

• 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.

44
Fig. 11.- Código de paridad de dos
dimensiones
Diseño de paridades para filas y columnas

1 1 0 0 1 1 1 1

1 0 1 1 1 0 1 1

Paridades de las filas


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

45
Fig. 11.- Código de paridad de dos
dimensiones
Un error afecta a dos paridades

1 1 0 0 1 1 1 1

1 0 1 1 1 0 1 1

Paridades de las filas


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


46
Fig. 11.- Código de paridad de dos
dimensiones
Dos errores afectan a dos paridades

1 1 0 0 1 1 1 1

1 0 1 1 1 0 1 1

Paridades de las filas


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


47
Fig. 11.- Código de paridad de dos
dimensiones
Tres errores afectan a cuatro paridades

1 1 0 0 1 1 1 1

1 0 1 1 1 0 1 1

Paridades de las filas


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


48
Fig. 11.- Código de paridad de dos
dimensiones
Cuatro errores no pueden ser detectados

1 1 0 0 1 1 1 1

1 0 1 1 1 0 1 1

Paridades de las filas


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


49
Código de Hamming

• Se diseñaron con una distancia dmin= 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.
50
Fig. 12.- Estructura del codificador y del
decodificador para un código Hamming
Emisor Receptor

Codificador Decodificador
Palabras de datos Palabras de datos

a3 a2 a1 a0 a3 a2 a1 a0

Síndrome Lógica de
decisión
s2 s1 s0

Generador
Comprobador

Transmisión
a3 a2 a1 a0 r2 r1 r0 no fiable
b3 b2 b1 b0 q2 q1 q0

Palabras código Palabras código


51
Código de Hamming
• 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)
52
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
53
Fig. 13.- Generación de los Códigos de Hamming C (7,4)
Código de Hamming
• 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.
54
Código de Hamming

• 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).

55
Código de Hamming

Síndrome 000 001 010 011 100 101 110 111

Error no q0 q1 b2 q2 b0 b3 b1

Fig. 14.- Decisión lógica hecha por la lógica de corrección


en el decodificador

56
Códigos Cíclicos

• 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).
57
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) 58
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”.
59
Códigos Cíclicos CRC
Emisor Receptor

Codificador Decodificador
Palabras de datos Palabras de datos
a3 a2 a1 a0 a3 a2 a1 a0

0 0 0
Lógica de
Síndrome
decisión
Divisor
s2 s1 s0

Generador d3d2d1d0 Comprobador

Resto

Transmisión
a3 a2 a1 a0 r2 r1 r0 no fiable b3 b2 b1 b0 q2 q1 q0

Palabras código Palabras código


60
Fig. 15.- Ejemplo de un diseño de Codificador y decodificador CRC
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 + x 7 + x 5 + x 3 + 1 61
Codigos Convolucionales
• 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.
62
FEC
• 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.

63
FEC
• 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.

64
Códigos de Error
Concatenados
• 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

65
Códigos de Error
Concatenados
• Fueron concebidos en 1966 por DAVE
FORNEY

Súper Codificador Súper Decodificador

Codificador Codificador Canal de Decodificador Decodificado


externo interno transmisión interno r externo

SUPER CANAL

66
Códigos Reed-Solomon

• 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.

67
Códigos Reed-Solomon
• 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.
68
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
Códigos Reed-Solomon
• Las naves Voyager y Galileo hasta hoy
usan en sus transmisiones al código RS
como detector de errores.

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
• 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.

71
Códigos Reed-Solomon
• 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.
72
Propiedades de los Códigos
Reed-Solomon
• 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).
73
Códigos Reed-Solomon

n
K 2t

DATA PARIDAD

74
Propiedades de los Códigos
Reed-Solomon
• 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.
75
INNER CODE
• 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.
76
INNER CODE: FEC
• 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.

77
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 (De bloque)
• 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. m− 1
n = 2 ;m ≥ 3
2m −1
El nº de errores que puede corregir: t<
2
Se puede generalizar para crear clases de
códigos no-binarios,
no-binarios que usan m bits por
símbolo de código.
79
CODIGOS LDPC
(Low Density Parity Codes)
• 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
80
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

También podría gustarte