Curso Telecom III - 2014 Codigos de Errores

82
1 Curso: Telecomunicaciones III Código: IT – 515 –M Ing. Luis Degregori C. Códigos de Errores

description

sddf

Transcript of Curso Telecom III - 2014 Codigos de Errores

1

Curso: Telecomunicaciones III

Código: IT – 515 –M

Ing. Luis Degregori C.Códigos de Errores

2

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.

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.

4

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.

5

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.

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.

7

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.

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

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

10

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.

11

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.

12

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.

13

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

• 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

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.

19

Proceso de detección de errores en la codificación de bloques

Palabra de datos

Codificador

Emisor

k bits

Generador

Palabra códigon bits

Receptor

Decodificador

Palabra de datos

Generador

Palabra códigoTransmisión

no fiable

Descartar

Extraer

k bits

n bits

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

20

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.

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

22

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.

23

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.

24

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.

25

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

Palabra de datos

Codificador

Emisor

k bits

Generador

Palabra códigon bits

Receptor

Decodificador

Palabra de datos

Comprobador

Palabra códigoTransmisión

no fiable

Corregir

k bits

n bits

Fig. 06.- Estructura de codificador / decodificador

26

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.

27

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.

28

Corrección de errores.

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.

Código erróneo: 01001

29

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.

30

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.

31

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.

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 min = 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.

35

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.

36

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

37

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.

38

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.

39

Códigos de Paridad

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

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

Codificador

Emisor

Generador

Transmisiónno fiable

a3 a2 a1 a0

Palabras de datos

a3 a2 a1 a0 r0

Palabras código

Bit de paridad

Receptor

Decodificador

a3 a2 a1 a0

Palabras de datos

Comprobador

b3 b2 b1 b0 q0

Lógica de decisión

s0

Aceptar

Palabras código

Síndrome

De

sc

arta

r

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

42

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.

43

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.

44

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.

45

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

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

Pa

rid

ad

es

de

las

fila

s

46

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

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

Pa

rid

ad

es

de

las

fila

s

47

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

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

Pa

rid

ad

es

de

las

fila

s

48

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

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

Pa

rid

ad

es

de

las

fila

s

49

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

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

Pa

rid

ad

es

de

las

fila

s

50

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.

51

Fig. 12.- Estructura del codificador y del decodificador para un código Hamming

Codificador

Emisor

Generador

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

b3 b2 b1 b0 q2 q1 q0

Lógica de decisión

Palabras código

Síndrome

s2 s1 s0

52

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)

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

• 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

• 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

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

• 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íclicosPalabra 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 polinomicos”.

60

Códigos Cíclicos CRC

Codificador

Emisor

Generador

Transmisiónno 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

b3 b2 b1 b0 q2 q1 q0

Lógica de decisión

Palabras código

Síndrome

s2 s1 s0

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

62

Códigos 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.

63

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.

64

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.

65

Codigos 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

66

Codigos de Error Concatenados

• Fueron concebidos en 1966 por DAVE FORNEY

67

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.

68

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.

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.

• Las naves Voyager y Galileo hasta hoy usan en sus transmisiones al código RS como detector de errores.

70

Códigos Reed-Solomon

La sonda espacial robótica Voyager 1, fue lanzada el 5 de septiembre de 1977, desde Cabo Cañaveral, FloridaActualmente se aleja del sistema solar, ya paso la orbita de Plutón.

71

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.

72

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.

73

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

74

Códigos Reed-Solomon

DATADATA PARIDADPARIDAD

2t2tKK

nn

75

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.

76

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.

77

INNER CODE

• Code Rates bajas (ej., 7/8) permite posibilidades más bajas de FEC (la posibilidad del receptor de corregir errores eventuales en los datos).

• Mientras que Code Rates mayores (ej., 1/2) permite posibilidades mayores de FEC.

78

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

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.

El nº de errores que puede corregir:

Se puede generalizar para crear clases de códigos no-binarioscódigos no-binarios, que usan m bits por símbolo de código.

Código BCH (De bloque)

3;2 1 mn m

2

12

m

t

80

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

n-k nodos - chequeo de paridad

n variables nodos (iguales)

+ + + + + + + + +

= = = = = = = = = = = =

Probabilidades por Canal

CODIGO LDPC (n.k)CODIGO LDPC (n.k)

82

CODIGOS LDPCCODIGOS LDPC(Low Density Parity Codes)

• Estos proveen una mejor eficiencia en la correccion de errores, en standares como el:– DVB-S2 – Comunicaciones Satelitales

– IEEE 802.3an (10GBASE-T)

– IEEE 802.16e (WiMAX)

– IEEE 802.11n (Wi-Fi)