You are on page 1of 30

Códigos IRA

Máster en Multimedia y
Comunicaciones
Comunicaciones Digitales
Luca Martino

Codificación de Canal

Supongamos tener un canal binario discreto, simétrico sin
memoria:

X

Y

Cb  1  H b ( p)

Objetivo: encontrar una “manera” de enviar bits, para tener
una probabilidad de error en recepción menor que p.

Códigos de Repetición

La idea más sencilla: “Repetir” y elegir por mayoria.
1

111
“010”

0

canal

000

Para enviar un bit de información utilizo 3 veces el canal:
transmisión más lenta (o ancho de banda mayor…).
1

0

0

1

1

2T

T
Más lento

1 1 1
3T

0

T 2T T
3 3
Más ancho de banda

Trade off • El ejemplo anterior nos muestra que hay que encontrar un compromiso entre baja probabilidad de error y velocidad de transmisión: Fiabilidad Velocidad .

Codificador de Canal • En general. . la tarea de un codificador consiste en elegir 2k secuencias de n bits.

Códigos Aleatorios • Si la relación biunívoca está elegida aleatoriamente. • Complejidad creciente en decodifica: no útil. . para decodificar necesitaríamos la comparación con todas las posibles k palabras códigos (hay que almacenar 2k palabras código).

a lo mejor. 3. . Maximizar la distancia (diferencia en bits) entre dos palabras códigos. Ser fácil en generarse (baja complejidad en codifica).Redundancia: propiedades • Para disminuir la complejidad del decodificador. hay que añadir bits (redundancia) a los mensajes en modo “inteligente”. permita individuar donde se han producido los errores. 2. Permitir la decodifica sin comparar con todas las posibles palabras códigos (baja complejidad en decodifica). Los bits de redundancia tienen que tener estas propiedades: 1. 4. Tener una cierta “estructura” que.

. 4. complejidad lineal en decodifica. n probabilidad de error que Ptiende e  0 a cero por .Código ideal • 1. 3. Una tasa R más alta posible (más cerca posible del máximo Cb). k n Tasa deRun  código: 0101010 n 010 k Bits redundancia complejidad lineal en codifica. 2.

• En general. . por un canal genérico. para lograr una comunicación fiable.Teorema de Codificación de Canal • Si R≤Cb (capacidad) es posible disminuir la Pe aumentando n. con tasa R constante. este teorema proporciona un limite máximo C para la velocidad de transmisión.

hay 2 grupos principales que interpretan dos filosofías distintas: 1.Códigos Lineales • Dentro de los lineales. . 2. Códigos Bloque (la decodifica de un bloque de bits se hace de modo independiente de las otras secuencias enviadas). Códigos Convolucionales (sistema con memoria).

Código Bloque Lineales  Cada palabra código se puede expresar como una combinación lineal con coeficientes 0 y 1 de unas palabras de base:       c  a1  c1  a 2  c 2  a3  c3  a3  c3  ..  a k  c k   c  a G  para la decodifica se utiliza la matriz H:  T  cH  0 GHT  0 ..

. z3.Gráfico de Tanner • H 34 A cada matriz de paridad H está asociado un gráfico compuesto por 2 conjuntos de nodos:  1 1 0 1   0 1 1 1  1 0 1 0  c1  c 2  c 4  0   c 2 c 3 c 4  0  c c  0  1 3 • se ve que c1 interviene en el nodo z1 .

• Sistema con memoria: convoluciona la secuencia en entrada con un filtro FIR binario.Códigos Convolucionales • Siguen siendo lineales (es decir una combinación de dos palabras código cualquiera es también una palabra código). • Decodifica con Algoritmo de Viterbi (max verosimilitud). .

. Código RA código Turbo Se acercan a la capacidad. aunque no lo utilicen una decodifica óptima (pero carga computacional lineal).Altas prestaciones • código bloque códigos LDPC Tratando de juntar las 2 “filosofias” • código convolucionales No eligen la palabra código con mínima distancia de Hamming.

Distancia Mínima en códigos bloque • La distancia mínima (mínima diferencia en bits) entre 2 palabras código es igual al: 1. • El cualquier caso con “pocos” 1 se puede lograr dmin grandes. Número mínimo de columnas de H que sumadas dan más que el vector nulo. Número mínimo de 1 entre todas las combinaciones lineales de las filas de G (todas las palabras código). 2. .

• Código bloque lineal. .LDPC • Fueron propuesto la primera vez por Gallager en los años 60. H tiene que ser muy grande. así que G=[PT Ir]. • Para hallar G se utiliza el método de eliminación de Gauss partiendo de H hasta llegar a la forma H=[Ik P]. para lograr altas prestaciones (d min elevada). • No fueron utilizados al principio: demasiada carga computacional y de almacenamiento de datos. caracterizados por matriz de chequeo H dispersa (pocos unos en comparación con los ceros).

. Tanner). y Message passing algorithms para grafos bipartidos (por ejemplo. que proporciona las probabilidades a posteriori (en vez que las verosimilitudes).Decodifica LDPC • Con síndrome (realmente imposibles por H grandes):  T  cH  0 • Algoritmo basados en grafos: BCJR con grafo Trellis. • Dentro de los Message passing algorithms está el Belief Propagation que puede verse como una extensión del algoritmo de Viterbi.

.Tipos de LDPC • Regular: numero constante de 1 en la columnas de H. • Irregular: numero de 1 variable en las columnas de H (suelen tener mejores prestaciones de los regulares).

Código Conv. • Permutaciones Código Conv. Decodificación subóptima (con infinita iteraciones llagaría a la solución MAP).Códigos Turbo • Concatenación de 2 códigos convolucionales sistemáticamente recursivos. .

.Códigos RA • “Repeated Accumulate”: Código de Repetición • Permutación П Código de Convolucional “Acumulador” Parece tener un cierto parecido con los códigos Turbo….

c7  p5 . .3. c3  p1 .. p3  m3  p 2 .2. m2 . m2 .5) : m1 . p1  m2  p1 . m2 . m1 ..... m2 • Permutamos según  (1.. m1 . sería: c1  m1 .6.. • La codifica. m1 . m2 . c8  p 6 . c1  m2 . en modo sistemático. m2 • Y la redundancia (o la salida final) se logra acumulando: p1  m1 .4.3): m1 . y utilizamos un código de repetición (1. c3  p1 . c5  p3 .c6  p 4 .Ejemplo: RA • Tenemos 2 palabras mensajes m1. m2.. c 4  p 2 . m1 .

.Representación con Tanner • Lo que es muy interesante es que los Códigos RA pueden representar con gráfico de Tanner (se pueden utilizar ciertos algoritmos de decodificación): • Gráfico del ejemplo.

.Representación con Tanner (II) • Hemos divido en bits de paridad (arriba) y de mensaje (abajo).. • con está representación recuerdan más los LDPC… . • Se pueden ver como cada bits de mensaje tiene exactamente 3 conexiones cada uno.. por claridad: (operaciones binarias) z1 : p1  m1  0 z 2 : p1  p 2  m1  0 z 3 : p 2  p3  m1  0 .

• En ejemplo anterior de código RA. ambos de igual manera. dividiendo en q grupos los k bits de información (mensaje) y repitiendo los bits en cada bloque un número de veces distintos. los k=2 bits de mensaje estaban repetidos.Irregular RA • Podemos generalizar la estructura anterior. 3 veces. Tienen El mismo número de conexiones con los nodos de chequeo zj. .

. se elegirán q-fracciones fi (una por cada grupo de bits de mensaje): q f i 1 • i 1 De manera. los f2k bits del primer grupo se repetirán 3 veces hasta los fqk bits del primer grupo se repetirán q+1 veces. que los f1k bits del primer grupo se repetirán 2 veces.Irregular RA: fracciones • En concreto.

• (Hemos añadido un bloque de permutación porque nos referimos a un caso .Irregular RA: gráfico de Tanner • Otra propiedad: cada nodo de chequeo estará conectado a un número constante (b) de bits de información.

bits de mensaje k  bits de mensaje • Número nodo de chequeo y de los bits de paridad será: k q r    (i  1)  f i b i 1 q • r   (i  1)  ( f i k ) Es más fácil para entender el caso b=1: i 1 .Parámetros y propiedades • Parámetros: q  grupos b  conexiones nodo chequeo .

Caso particular: RA • Para un RA tendríamos: 1. Cada nodo chequeo conectado solo a un nodo de mensaje: b 1 2. Habrá k bloque solo de 1 bits de mensaje: qk 3. Las fracciones serán todas nula menos una: f i 1   i  n Es decir todos los bits de mensaje están repetidos n veces. Substituyendo en caso en figura: q k 2 r    (i  1)  f i   (2  1)  f 2  2  3  6 b i 1 1 .

. p1 . p 2 . podemos tener una versión sistemática: {m1 . m2 .. p r } R •k Con tasak R será entonces: b kr • R  k q k   (i  1) f i b i 1  q b   (i  1) f i i 1 En modo no sistemático: { p1 .mk ..Tasa • El número el nodo de chequeo es igual al numero de nodo de paridad.... p r } k k   r k q (i  1) f i  b i 1 b q  (i  1) f i 1 i ... p 2 ....

tienen una complejidad menor a paridad de prestaciones.Observaciones • Los IRA suelen tener mejor prestaciones de los RA. • Aunque son un caso particular de los LDPC ( y de los Turbo). • Los códigos RA-IRA tienen complejidad lineal en codifica y en decodifica. RA DC P L Turbo .