+ All Categories
Home > Documents > Comunicaciones Digitales Codificación de...

Comunicaciones Digitales Codificación de...

Date post: 30-Apr-2020
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
35
Turbo Códigos Comunicaciones Digitales Codificación de Canal Curso 2009/10 Codificación de Canal 2 Bibliografía Turbo códigos ! S. B. Wicker. Error Control Systems. Prentice Hall 1995 ! L. Hanzo, T.H. Liew y B.L. Yeap. Turbo Coding, Turbo Equalization and Space-Time Coding. Wiley 2002 ! C. Berrou y A. Glavieux. 'Near optimum error correcting coding and decoding: Turbo codes'. IEEE Transactions on Communications, vol. 44, pp. 1261-1271, 1996
Transcript

Turbo Códigos

Comunicaciones Digitales Codificación de Canal

Curso 2009/10 Codificación de Canal 2

Bibliografía Turbo códigos !! S. B. Wicker. Error Control Systems. Prentice Hall 1995 !! L. Hanzo, T.H. Liew y B.L. Yeap. Turbo Coding, Turbo

Equalization and Space-Time Coding. Wiley 2002 !! C. Berrou y A. Glavieux. 'Near optimum error correcting

coding and decoding: Turbo codes'. IEEE Transactions on Communications, vol. 44, pp. 1261-1271, 1996

Curso 2009/10 Codificación de Canal 3

Problema

!! Límite Shannon: k!!, n!! !! Códigos bloques: aumentar n y k (n/k fijo)

!! Aumenta la distancia !! Decodificadores no prácticos (2k palabras código)

!! Códigos convolucionales: aumentar memoria !!Mejora su distancia libre !! Decodificador óptimo no es práctico.

Curso 2009/10 Codificación de Canal 4

Problema

Codificador lineal n,k

Resolución Óptima: inabordable

Curso 2009/10 Codificación de Canal 5

Alternativa

Cod conv.

Entrelazador Cod conv.

Solución Óptima abordable

Curso 2009/10 Codificación de Canal 6

Turbo códigos

!! Descubiertos en 1993. !! Concatenación de dos códigos

convolucionales sistemáticamente recursivos.

!! Empleando un entrelazador (interleaver). !! Decodificación

!!Óptima pero muy costosa !! Subóptima, pero abordable (iterativa).

Curso 2009/10 Codificación de Canal 7

Turbo códigos paralelo

Entrelazador Código

Convolucional 2

Código Convolucional 2

k n1

n2

n1+n2

Curso 2009/10 Codificación de Canal 8

Turbo códigos Serie

Entrelazador Código

Convolucional 2

Código Convolucional 2

k n1

n2

n2

Curso 2009/10 Codificación de Canal 9

Idea de la codificación Turbo

!! Codificador complicado !! Concatenación de codificadores simples

!! Entrelazado: errores de un codificador en distintas palabras código del otro !! Codificador externo (n1,k1) !! Codificador interno (n2,k2) !! Entrelazador k2 x n1

Curso 2009/10 Codificación de Canal 10

Idea de la codificación Turbo

!! Códigos Bloque (para ejemplo) serie

Curso 2009/10 Codificación de Canal 11

!! Detección errores: iterar el proceso !! Problema: realimentación de errores !! Solución: decodificación blanda

Idea de la decodificación Turbo !!o : errores recibidos !!x : errores introducidos !! por decodificador interno !!+: errores introducidod !! por decodificador externo

Curso 2009/10 Codificación de Canal 12

Turbo códigos

!! Generalmente emplean codificadores convolucionales sistemáticos y recursivos

!! Entrelazador: básico en el diseño !! Determina la ganancia de codificación !! Entrelazadores seudoaleatorios

!! Decodificación: Soft-In, Soft-Out (SISO) !! Información intrínseca: datos recibidos !! Información extrínseca: entre decodificadores

Curso 2009/10 Codificación de Canal 13

Decodificación !! Decodificación blanda empleando el

algoritmo BCJR (tipo MAP) para el primer codificador.

!! Información se pasa por el interleaver. !! Decodificación blanda empleando el

algoritmo BCJR (tipo MAP) para el segundo codificador.

!! Vuelta al primer decodificador.

Curso 2009/10 Codificación de Canal 14

Algoritmo BCJR (MAP) !! Decodificadores

!! Aceptan entradas blandas !! Proporcionan salidas blandas

!! Entradas del decodificador !! Información intrínseca

!!Bits sistemáticos !!Bits redundancia (de cada decodificador)

!! Información extrínseca !!Cociente de verosimilitud (Likelihood ratio)

Curso 2009/10 Codificación de Canal 15

Algoritmo MAP: definiciones

!! Secuencia de información: M=2m símbolos !! Se transmiten N símbolos uk {0,1, M-1}

!! Codificador uk ! xk !! Canal: AWGN

!! xk ! yk = xk + nk

!! Decodificador !! yk !

Curso 2009/10 Codificación de Canal 16

Algoritmo MAP: planteamiento

!! Evalúa las probabilidades a posteriori !! Ak,m=P(uk=m|y) !! Decisión: Símbolo con máximo Ak,m

!! Algoritmo MAP: calcula Ak,m

!! Bayes !! P(a,b)=P(a|b)P(b) !! P(a,b|c)=P(a|b,c)P(b|c)

Curso 2009/10 Codificación de Canal 17

Algoritmo MAP !! Diagrama de Trellis para símbolos

0

S-2

S-1

0

S-2

S-1

!!u1 !!x1 !!u1=0

!!u1=1 !!u1=M-1

0

S-2

S-1

0

S-2

S-1

!!uk !!xk !!uk=0

!!uk=1 !!uk=M-1

0

S-2

S-1

0

S-2

S-1

!!uN !!xN !!uN=0

!!uN=1 !!uN=M-1

!!yk !!y+ !!y- !!gk !!bk !!ak-1

Curso 2009/10 Codificación de Canal 18

Algoritmo MAP: Probabilidades

!! Probabilidades a posteriori

Curso 2009/10 Codificación de Canal 19

Algoritmo MAP

Curso 2009/10 Codificación de Canal 20

Algoritmo MAP !! Calcular g(z,s)=N(xk,!2)P(uk=m) !! Calcular ak-1(z) (estado inicial j)

!! Calcular bk(s)

!! Calcular

Curso 2009/10 Codificación de Canal 21

Log Likelihood Ratio (LLR) !! Logaritmo del cociente de verosimilitud

!! Signo: decisión !!Magnitud: probabilidad de acierto

Curso 2009/10 Codificación de Canal 22

Algoritmo BCJR !! Estima probabilidades condicionales

!! Decisión: máximo a posteriori (MAP)

!! Estados del codificador convolucional

Curso 2009/10 Codificación de Canal 23

Algoritmo BCJR

!! Términos de los sumatorios del cociente !! Expresiones MAP

Curso 2009/10 Codificación de Canal 24

Resumen BCJR !! Entradas al decodificador

!! Salidas del canal yk !! Información a priori L(uk)

!! Algoritmo !! Calcular gk(z,s) ! bk(s) y ak-1(z) !! Calcular L(uk)

Curso 2009/10 Codificación de Canal 25

Turbo Decodificador

DEC 1

interleaver DEC 2

Curso 2009/10 Codificación de Canal 26

Turbo Decodificador

DEC 1

interleaver DEC 2

Curso 2009/10 Codificación de Canal 27

Turbo Decodificador

DEC 1

interleaver DEC 2

MAP BCJR

Curso 2009/10 Codificación de Canal 28

Turbo Decodificador

DEC 1

interleaver DEC 2

MAP BCJR

Curso 2009/10 Codificación de Canal 29

Turbo Decodificador

MAP BCJR MAP BCJR

DEC 1

interleaver DEC 2

Curso 2009/10 Codificación de Canal 30

Turbo Decodificador

MAP BCJR MAP BCJR

DEC 1

interleaver DEC 2

Deinter- leaver

Curso 2009/10 Codificación de Canal 31

Turbo Decodificador

MAP BCJR MAP BCJR

DEC 1

interleaver DEC 2

Deinter- leaver

Curso 2009/10 Codificación de Canal 32

Turbo Decodificador

MAP BCJR MAP BCJR

DEC 1

interleaver DEC 2

Deinter- leaver

Deinter- leaver

Curso 2009/10 Codificación de Canal 33

Prestaciones

!! A 0.7 dB del límite de Shannon!!!

Curso 2009/10 Codificación de Canal 34

Prestaciones: comentarios

!! Entrelazador 64Kbit !! Voz: retardo de 8 segundos !! Voz: 40 ms ! Latencia 320 (2 dB)

!! Error floor

!! Decrece con longitud del entrelazado

Curso 2009/10 Codificación de Canal 35

Extensiones

!! Turbo product codes !! Concatenación serie de codificadores bloque

!! Turbo Trellis-Coded Modulation (TTCM) !! Aplicación del principio Turbo

!! Igualación !! Estimación de canal !! Detección multiusuario !! ...

Códigos LDPC (Low Density Parity Check Codes)

Comunicaciones Digitales Codificación de Canal

Curso 2009/10 Codificación de Canal 37

Bibliografía LDPC

!! R. Gallager. 'Low-Density Parity-Check Codes'. IRE Transactions on Information Theory, pp. 21-28, Enero 1962.

!! D. J. C. MacKay. Information theory, inference and learning algorithms. Cambrigde. 2003

Curso 2009/10 Codificación de Canal 38

Historia de los códigos LDPC

!! Inventados en 1962 (Gallager) !! Ignorados durante largo tiempo

!! Requerimientos computacionales !! Introducción de los códigos Reed-Solomon

!! Redescubiertos en 1995 (MacKay) !! Principio Turbo (1993)

Curso 2009/10 Codificación de Canal 39

Fundamentos de los códigos bloque lineales

!! Estructura del código !! Matriz generadora G !! Matriz de chequeo de paridad H

!! Capacidad de corrección ! dmin

!! dmin: menor peso en las filas de G !! dmin: mínimo número de columnas de H que sumen 0

!! Ejemplo: Código Hamming (7,4)

Curso 2009/10 Codificación de Canal 40

Códigos LDPC

!! Matriz de paridad H dispersa (pocos 1's) !! Distancia mínima alta

!! Aproximan la capacidad de Shannon !! No sufren el 'error floor'

!! dmin proporcional a la longitud del código

!! Complejidad lineal de la decodificación !! Implementación paralelo sencilla

Curso 2009/10 Codificación de Canal 41

Tipos de códigos LDPC

!! Códigos LDPC Regulares !! H (rxn) tiene if 1's por fila y ic 1's por columna !! r if = n ic con ic << r (if << n) !! ic " 3 es necesario para códigos 'buenos'

!! Códigos LDPC irregulares !! Número de 1's por fila o columna no constante

Curso 2009/10 Codificación de Canal 42

Generación códigos. !! Matriz de chequeo de paridad se

construye asegurando que hay ic (>2) unos en cada columna.

!! Se verifica que el número de unos por fila también sea lo más uniforme posible.

!! Mayor ic más capacidad de corrección y más complejidad en decodificación.

Curso 2009/10 Codificación de Canal 43

Ejemplo de código LDPC

!! ic=3 !! Dos columnas se solapan como

mucho en un 1 !! Dispersión de 1's

!! dmin grande

Curso 2009/10 Codificación de Canal 44

Matriz de Chequeo Paridad

6 7 6 5 5 5 5

Curso 2009/10 Codificación de Canal 45

Matriz generadora del código. !! Mediante eliminación de Gauss:

H ! [Ir P] !! Se puede construir la matriz generadora

del código como: G=[PT Ik].

!! Si hace falta permutar columnas también habrá que hacerlo en la matriz H original.

Curso 2009/10 Codificación de Canal 46

Transformaciones !! Permutar filas 1ª y 5ª. !! Restar a las filas 6ª y 7ª la primera. !! Permutar filas 2ª y 3ª. !! Restar a las filas 4ª y 7ª la segunda. !! Permutar filas 3ª y 5ª. !! Restar a las filas 1ª y 6ª la tercera. !! Restar a todas las filas la cuarta. !! Permutar filas 5ª y 6ª. !! Restar a las filas 3ª y 7ª la quinta. !! Restar a las filas 3ª y 7ª la sexta. !! Restar a las filas 2ª y 4ª la séptima.

Curso 2009/10 Codificación de Canal 47

Matriz generadora

Curso 2009/10 Codificación de Canal 48

Codificación de códigos LDPC

!! Generalmente, G es muy grande !! G no es en general dispersa !! Ejemplo: LDPC(10000,5000)

!! P es 5000x5000 !! Densidad de 1's=1/2 ! 12.5 x 106 1's

!! Códigos estructurados !! Codificación con registros de desplazamiento

Curso 2009/10 Codificación de Canal 49

Decodificación iterativa de LDPC's

!! Decodificación general de códigos bloque !! cHT=0 !! s=rHT ! e

!! Algoritmos basados en grafos

!!MAP (BCJR) para códigos basados en Trellis !! Suma-Producto (Paso de mensajes) para

códigos basados en grafos bipartidos

Curso 2009/10 Codificación de Canal 50

Grafo de Tanner

!! Grafo bipartido !! Nodos separados en dos clases !! Conexiones entre nodos de distinta clase

!!C0 !!C1 !!C2 !!C3 !!C4 !!C5 !!C6 !!C7

!!Nodos !!de bit

!!Nodos de !!chequeo

!!f0 !!f1 !!f2 !!f3

Curso 2009/10 Codificación de Canal 51

Decodificación: definiciones !! N(i) conjunto de las entradas no nulas de la

fila i de H, p.e: !! N(3)={2,4,8,9,10,12}

!! M(j) conjunto de las entradas no nulas de la columna j de H, p.e: !!M(10)={2,3,6}

!! N(i)\j’ : es N(i) sin la columna j’. Idem para M(j)/i’.

Curso 2009/10 Codificación de Canal 52

Matriz de Chequeo Paridad

6 7 6 5 5 5 5

Curso 2009/10 Codificación de Canal 53

Decodificación: definiciones II !! Se transmiten 1's y 0's (niveles ±1) con

una varianza de ruido "2 y se recibe y. !! Para el bit n, la probabilidad que sea 1:

!! y que sea cero:

Curso 2009/10 Codificación de Canal 54

Decodificación: definiciones III

!! : mensajes de nodo Ci a nodo fj !! prob. bit j sea x con los chequeos (sin i)

!! : mensajes nodo fi a nodo Cj !! prob. bit de chequeo i correcto fijado bit j =x !! resto de bits: probabilidades de

!! Similar a la información extrínseca intercambiada en los Turbo-Códigos

Curso 2009/10 Codificación de Canal 55

Algoritmo decodificación !! Inicialización

!! Solo se definen para los valores a 1 en H.

!! Paso 1 (horizontal): Para todo i=1,...,r y j=1,...n:

Se obtiene:

Curso 2009/10 Codificación de Canal 56

Algoritmo decodificación II !! Paso 2 (vertical): Para todo i=1,...,r y j=1,...n:

!! Se normalizan y para que sumen 1.

Curso 2009/10 Codificación de Canal 57

Algoritmo decodificación III

!! Decisión blanda (probabilidades a posteriori)

!! Decisión dura

!! Criterio de parada

Curso 2009/10 Codificación de Canal 58

Ejemplo !! Palabra transmitida c=[0 ... 0] !! Palabra recibida r=[-1.43 -2.67 -0.87 -0.71 -2.15

0.19 0.19 -1.04 -0.67 -0.83 -1.19 -0.2742 -1.59]. !! Decisión dura d=[0 0 0 0 0 1 1 0 0 0 0 0 0]. !! Probabilidades:

p0=[0.946 0.995 0.852 0.806 0.987 0.406 0.407 0.889 0.793 0.839 0.915 0.634 0.960]

Curso 2009/10 Codificación de Canal 59

Inicializar #q

!! p0-p1=[0.89 0.99 0.70 0.61 0.97 -0.19 - 0.19 0.78 0.59 0.68 0.83 0.27 0.92]

Curso 2009/10 Codificación de Canal 60

Cálculo #r

!! #r13=0.0193 $

Curso 2009/10 Codificación de Canal 61

Cálculo #r

!! #r14=0.0222 $

Curso 2009/10 Codificación de Canal 62

Cálculo #r

!! Cálculo de !! Cálculo de probabilidades a posteriori

Curso 2009/10 Codificación de Canal 63

Calculo qij

$ !! =0.2843

Curso 2009/10 Codificación de Canal 64

Calculo qj

$ !! =0.1449

Curso 2009/10 Codificación de Canal 65

Cálculo q0 y q1 !! q0=[0.17 0.17 0.14 0.11 0.13 0.06 0.05 0.11

0.15 0.14 0.13 0.12 0.17] !! q1=[0.00 0.00 0.01 0.02 0.00 0.05 0.07 0.01

0.01 0.01 0.01 0.02 0.00] !! Normalizar para que q0+q1=1. q0=[0.978 0.998 0.933 0.841 0.989 0.533

0.432 0.895 0.930 0.902 0.933 0.853 0.982] !! Recordamos que: p0=[0.946 0.995 0.852 0.806 0.987 0.406

0.407 0.889 0.793 0.839 0.915 0.634 0.960]

Curso 2009/10 Codificación de Canal 66

decisión dura

!! Primera decisión dura !! ce=sign(p1-p0)=[0000011000000]. !! Hce%0. !! Segunda decisión dura !! ce=sign(q1-q0)=[0000001000000]. !! Hce%0.

Curso 2009/10 Codificación de Canal 67

Segunda Iteración

!! q0=[0.971 0.998 0.904 0.882 0.985 0.802 0.739 0.897 0.926 0.933 0.920 0.879 0.979]

!! ce=sign(q1-q0)=[0000000000000]. !! Hce=0 (palabra correcta).

Curso 2009/10 Codificación de Canal 68

Diseño de códigos LDPC

!! Objetivo: maximizar dmin

!! Evitar ciclos cortos en el grafo de Tanner !! Problema combinatorio !!Método de búsqueda !!Métodos basados en geometría

!! Limitan el orden de los ciclos

Curso 2009/10 Codificación de Canal 69

Problemas abiertos

!! LDPC con rendimiento cercano a la capacidad !! Longitudes de código largas, muchas iteraciones,

relaciones S/N bajas

!! LDPC de palabras código relativamente cortas !! Alta tasa de codificación R#1 !! Codificación simple

!! Combinación con otras tecnologías !!OFDM, MIMO, ...


Recommended