You are on page 1of 22

Codificación de Canal.

Turbocodificación

Matilde Sánchez
Javier Ramos
Universidad Carlos III de Madrid

Índice
$ Introducción
 Objetivo de la codificación de canal
$ Clases de Codificadores
$ Capacidad del Canal
$ Turbo codificación
 Codificación
 Decodificación
 Análisis de prestaciones
 Aplicaciones

Universidad Carlos III de Madrid


2

1
Introducción

$ Sistema de Comunicaciones:

Fuente Codificador Codificador


de Modulador
de fuente de canal
información

Canal

Destino Decodificador Decodificador


Demodulador
de fuente de canal

Universidad Carlos III de Madrid


3

Introducción
$ La codificación de canal añade redundancia estructurada a la
secuencia transmitida

m Codificador x
De canal

 El mensaje de entrada, m, está compuesto de k símbolos


 La palabra codificada a la salida, x, está compuesta de n símbolos
 Siendo n > k la salida del codificador incluye redundancia
 La tasa de codificación es r = k/n
$ La codificación puede usarse para
 Detectar errores: ARQ
 Corregir errores: FEC

Universidad Carlos III de Madrid


4

2
Introducción
$ Con el fin de aliviar interferencias y ruido
 introducir de forma controlada alguna redundancia en la secuencia binaria
proporcionada por la fuente
 El codificador envía solamente palabras que pertenecen a su código
Î Ej1.: un codificador que repite 3 veces el bit que tiene a su entrada

...1... ...111... Canal ...101...


Codificador

...0...
Codificador
...000...
digital

Canal ...001... } ¡¡errores!!!


digital

C={000,111}
Î el decodificador elige la palabra más parecida a las palabras del código:

1 dígito diferente con ...111...

...101...
2 dígitos diferentes con ...000...
} ...111... palabra transmitida + probable ...1... dígito + probable

Universidad Carlos III de Madrid


5

Introducción

$ Ej2: El codificador toma los bits de 2 en 2 y añade un bit


más para que el número total de ‘1`s’ en la palabra
codificada sea par.
codificador canal decodificador
00 000 001 00
codificador canal decodificador
01 011 011 01
codificador canal decodificador
10 101 111 10 ó 11
codificador canal decodificador
11 110 011 01

Universidad Carlos III de Madrid


6

3
Introducción

$ El principal problema de la codificación es determinar el


código óptimo que para un canal dado aproxime la tasa
binaria efectiva transmitida al límite de la capacidad de
Shannon
$ Esta búsqueda va a estar condicionada por lo siguiente:
 Características del canal
 Recursos disponibles: límites en la velocidad de transmisión
$ Los principales parámetros a determinar son
 k: longitud de los mensajes de entrada al codificador
 n: longitud de las palabras de salida del codificador
Kk Kn
n
CC ⊆
⊆KKn
Universidad Carlos III de Madrid
7

Introducción
$ Tasa de codificación R: mide la proporción de cada palabra
codificada que ‘transporta’ información. R = k/n
ÎEj1: por cada bit de información el codificador genera palabras de 3
bits
R=1/3
ÎEj2: por cada 2 bits de información el codificador genera palabras de
3 bits
R=2/3
$ Peso de una palabra: número de veces que el dígito 1 aparece en la
palabra
wt(0111010) = 4
$ Distancia entre dos palabras: número de dígitos en los que las dos
palabras no coinciden
d(0111010,0101011) = wt(0111010+ 0101011) = 2

Universidad Carlos III de Madrid


8

4
Introducción

$ Un canal perfecto y sin ruido no produce errores en los


dígitos: la secuencia transmitida es exactamente igual a la
recibida

NO NECESITAMOS CODIFICACIÓN
p
$ Canal binario y simétrico: 0 1-p
0

1-p
1 p 1
Universidad Carlos III de Madrid
9

Introducción

$ El decodificador recibe palabras (w) que pertenecen a Kn,


pero que no tiene necesariamente que pertenecer a C.
$ Calculamos la distancia entre todas las palabras que
pertenecen a C y la palabra recibida w.

d(v,w)
d(v,w)para todavv∈∈CC
paratoda
$ Elegimos como palabra decodificada (v) la que tenga la
mínima distancia con la palabra recibida

d(v,w)
d(v,w)<<d(v
d(v11,w)
,w)para todavv11∈∈C,
paratoda C,vv11≠≠vv

Universidad Carlos III de Madrid


10

5
Clases de Codificación
$ La mayoría de los códigos con los que se trabajan van a ser
lineales porque nos va a permitir resolver el problema de la
codificación de una manera muy sencilla
$ Decimos que un código C es lineal siempre que si v y w
pertenecen a C, entonces w + v tambíen es una palabra que
pertenece al mismo código C
CC1 =={000,111}
{000,111}
1
000 + 000 = 000
000 + 000 = 000 111
111++000
000==111
111
000
000++111
111==111
111 111
111++111
111==000
000

CC2 =={000,001,101}
2 {000,001,101}
001
001++101 100∉∉CC22
101==100

Universidad Carlos III de Madrid


11

Clases de Codificación

$ Cualquier Código Lineal deberá contener la palabra


‘cero’ (todos sus dígitos son cero), ya que cualquier
símbolo del código sumado consigo mismo es precisamente
la palabra cero.
$ ¿Cómo podemos generar un código lineal ?
 Elegimos un conjunto de palabras S y el código es toda las posible
combinaciones lineales de estas
S = {0100, 0011, 1100}

C = < S > = {0000, 0100, 0011, 1100, 0111, 1000, 1111, 1011}

Universidad Carlos III de Madrid


12

6
Clases de Codificación

$ Codificación Bloque:
 el codificador transforma los mensajes de k bits en mensajes de
longitud n. La transformación depende exclusivamente del valor
de los k bits
 la codificación en bloque se caracteriza por la matriz generadora
del código
$ Codificación convolucional:
 es una codificación con memoria, la transformación no sólo
depende de los k bits que se quieren codificar si no también del
conjunto de m bits anteriores
 la codificación convolucional se caracteriza por los polinomios
generadores del código

Universidad Carlos III de Madrid


13

Clases de Codificación
$ Ejemplos de códigos de bloque:
 Codificación de Hamming: son códigos de longitud n = 2r-1 y k = 2r-r-1

1000111
0100110
G= 
 0010101
 
 0001011
 Códigos lineales cíclicos: cualquier palabra desplazada es una palabra del
código. 110 → 011 → 101

C= {000, 110, 011, 101}


Universidad Carlos III de Madrid
14

7
Clases de Codificación

$ Codificación convolucional:
 emplean registros de desplazamiento para codificar
 los parámetros que caracterizan a estos códigos son (k, n, m)
donde m es la memoria.

x1k

código convolucional
(2,1,4)
uk
Z-1 Z-1 Z-1 Z-1

x2 k

Universidad Carlos III de Madrid


15

Codificación Convolucional
$ La codificación convolucional está justificada en los casos en los que la
calidad de servicio requerida no sea muy crítica y en el caso de tasas
de transmisión relativamente bajas (hasta 30 ksps)
$ Se proponen dos esquemas de codificación convolucional:
 tasa 1/2 con polinomios generadores (561,753)8 y memoria 8 bits
 tasa 1/3 con polinomios generadores (557,663,711)8 y memoria 8 bits
$ El proceso de decodificación asociado a los códigos convolucionales
implica un procesado por bloques:
 conocimiento del estado inicial y final del decodificador
 el estado inicial del decodificador, está especificado que para cada bloque
de transporte sea cero, es decir, todos los registros están especificados a
cero
 se procesa cada bloque de transporte separadamente, se le añaden una
serie de bits de cola con el fin de que el estado final del codificador sea
conocido

Universidad Carlos III de Madrid


16

8
Codificación convolucional
$ decodificación
00
0000 a
a a a a a a
11 11
0001 b b b b b b b
00
10
0010 c c c c c 01 c c
01
0011 d d d d d d d
10 01
10
0100 e e e e e e e
01
0101 f f f f f 10 f f
00
0110 g g g g g g g
11

0111 h h 10 h h h 10 h h

1000 i i 01 i i i i i

1001 j j j j j 01 j j
00

1010 k k k k 11 k k k
00
00 11
1011 l l l l l l l
10
11
1100 m m m m m m m

11 00
1101 n n n n n n n
10
1110 o o o o o 00 o o
01
01
1111 p p p p p p p
10
Universidad Carlos III de Madrid
17

Codificación convolucional
Decodificación
$ Viterbi: Estimación de máxima verosimilitud (ML) de la
secuencia transmitida
{
cˆ = max P(y | c)
∀c
}
$ Si la longitud del bloque que se codifica es excesivamente
grande, el proceso de decodificación se complica bastante
$ Se puede hacer una decodificación alternativa basada en
ventanas, si la longitud de la ventana es del orden de 5 veces
la memoria del decodificador

Universidad Carlos III de Madrid


18

9
Clases de Codificación

$ Turbo codificación:
 las prestaciones de un codificador convolucional mejoran al
aumentar la memoria
 no se puede aumentar la memoria indiscriminadamente ya que la
complejidad en el proceso de decodificación crece
exponencialmente
 los turbo códigos son esquemas de codificación que aumentan la
memoria de codificación de forma artificial
 se basan en concatenar esquemas de codificación relativamente
simples con el fin de obtener un código equivalente en prestaciones
a uno más complejo

Universidad Carlos III de Madrid


19

Turbo Codificación
Referencia histórica
$ En 1993 en la conferencia ICC Berrou y Glavieux propusieron unos
novedosos esquemas de codificación que se denominan turbo códigos
que proporcionan comunicaciones fiables muy cerca del límite de
Shannonn (a 0.5 dB del límite)
$ Los Turbo códigos se basan en la concatenación de dos codificadores
relativamente sencillos separados por un entrelazado
$ La conjunto es equivalente a un único codificador convolucional de
memoria tan grande como la profundidad de entrelazado pero con un
proceso de decodificación que en ningún caso alcanzaría la
complejidad del convolucional equivalente

Universidad Carlos III de Madrid


20

10
Turbo Codificación

$ Las características fundamentales de los turbo códigos son


 Codificación paralela concatenada
 Codificadores Convolucionales Recursivos
 Entrelazada Pseudo-Random
 Decodificación iterativa

Universidad Carlos III de Madrid


21

Motivación: Las Prestaciones de los


Turbo Códigos
Límite Teórico!
$ Comparación
 Códigos con tasa 1/2
 K=5 turbo código
 K=14 cod. convolucional
Î L. Perez, “Turbo Codes”,
chapter 8 of Trellis Coding by C.
Schlegel. IEEE Press, 1997.

Ganancia de casi 2 dB!

Universidad Carlos III de Madrid


22

11
Turbo Códigos: Principio de
Funcionamiento

$ Un único código de protección de errores no siempre


proporciona la protección necesaria con una
complejidad aceptable
$ Solución: Concatenar dos (o más) códigos
 Esto crea un código mucho más potente que los tradicionales

Outer Block Inner


Encoder Interleaver Encoder

Channel

Outer De- Inner


Decoder interleaver Decoder

Universidad Carlos III de Madrid


23

Turbo Códigos: Principio de


Funcionamiento
$ En vez de la concatenación en serie vista en la transparencia anterior,
la concatenación puede realizarse en paralelo
$ La propuesta original de turbo códigos consistía en la concatenación
de dos codificadores convolucionales sistemáticos (RSC) con un
entrelazado
 sistemático: parte de los bits de salida coinciden con los de entrada

Systematic Output
Input Encoder
#1
MUX
Interleaver

Parity
Output
Encoder
#2

Universidad Carlos III de Madrid


24

12
Turbo Códigos: Principio de
Funcionamiento

x i( 0 ) $ Qué es un RSC?
 Un codificador RSC puede
mi xi construirse a partir de un
D D codificador convolucional
donde una salida se
x i(1 )
realimenta a la entrada
 La respuesta impulsiva de
Constraint Length K= 3 un RSC es infinita
mi x i( 0 )  Una entrada arbitraria
ocasionará con alta
probabilidad una salida
xi
buena (con alto peso de
hamming)
ri
D D  Algunas entradas ocasionan
x i( 1 ) salidas malas (bajo peso)

Turbo Códigos: Principio de


Funcionamiento
$ Por qué el entrelazado
 El dilema de codificación
Î Shannon demostró que los códigos aleatorios por bloques de grandes
dimensiones son los que mejor capacidad consiguen
Î Sin embargo el tener códigos con una estructura permite la decodificación
sencilla
Î Los códigos con estructura tienen peores prestaciones que los aleatorios
ΓAlmost all codes are good, except those that we can think of.”
 Solución
ÎHacer que el código parezca aleatorio al mismo tiempo que mantiene una
cierta estructura
ÎEste es el objetivo de incluir el entrelazado pseudo-aleatorio
ÎLos turbo códigos tienen prestaciones similares a los códigos aleatorios
ÎSin embargo, como el esquema de entrelazado es conocido, la decodifiación
con baja complejidad es posible

Universidad Carlos III de Madrid


26

13
Turbo Códigos: Principio de
Funcionamiento
$ Por qué Entrelazado y Codificación Recursiva
 En un sistema de codificación
ÎLas prestaciones están limitadas por las palabras de peso pequeño
 Un código bueno
ÎGenera las palabras de poco peso con probabilidad muy baja
 Los códigos RSC
ÎGeneran palabras de bajo peso con una probabilidad bastante baja
ÎEn cualquier caso, algunas secuencias de entrada causan salidas con peso
pequeño
 Gracias al entrelazado
ÎLa probabilidad de que ambos codificadores generen una palabra de peso
pequeño es muy baja
ÎPor lo tanto, la concatenación en paralelo de los dos codificadores proporciona
un código bastante bueno

Universidad Carlos III de Madrid


27

Turbo Códigos: Principio de


Funcionamiento
$ Notación x1sk
uk Codificador 1
x1r k
entrelazado

x s2 k
Codificador 2
x r2 k
 (u , x r )   (ys , y r ) 
uk c k =  sk 1rk  y =  s1k 1rk 
k
( x 2 k , x 2 k ) ( y 2 k , y 2 k )

fuente codificador canal

Universidad Carlos III de Madrid


28

14
Turbo Códigos: Principio de
Funcionamiento
 (u , x r )   (ys , y r ) 
uk c k =  sk 1rk  y =  s1k 1rk 
k
( x 2 k , x 2 k ) ( y 2 k , y 2 k )

fuente codificador canal

$ Viterbi: Estimación de máxima verosimilitud (ML) de la


secuencia transmitida
{
cˆ = max P(y | c)
∀c
}
$ MAP: Estimación de la probabilidad máxima a posteriori
APP (A Posteriori Probability) de cada símbolo
û k = max{P(u k = i | y)}
∀i
Universidad Carlos III de Madrid
29

Turbo Codificación

• Diseño de Turbo Códigos

• La aplicación del algoritmo MAP implica el cálculo de las


probabilidades a posteriori (APPs)
• El algoritmo BCJR permite evaluar las APPs con una complejidad que
crece linealmente con el número de estados del Trellis y con la
longitud de la secuencia codificada.
• Considerar el Turbo código como un único código llevaría a una
estructura de Trellis difícil de derivar y dependiente de la profundidad
de entrelazado
• Aplicar MAP o ML sólo sería posible para entrelazados de bloque con
muy poco profundidad.

Universidad Carlos III de Madrid


30

15
Turbo Codificación

~ ~
L1 L2 − L2
deentrelazado
~ ~
L1 − L1 L2
λs DEC 1 entrelazado DEC 2
λ1k =  r1k
λ1k λs
λ 2 k =  r2 k deentrelazado

λ 2 k

~
P(u k = 1 | ( y11 , y12 ,..., y1N ), ~
u 1k ) u
$ L1 (u k ) = log
P(u = 0 | ( y , y ,..., y ), ~
k 11
u )
12 1N 1k

~ P(u k = 1 | ~
u1k )
1 ( u k ) = log
$ L
~
P(u k = 0 | u1k )
Universidad Carlos III de Madrid
31

Turbo Codificación
Deinterleaver
APP
APP
Interleaver
systematic Decoder Decoder
data #1 #2 hard bit
parity decisions
data DeMUX

Interleaver

$ Decodificación iterativa
 Se dispone un decodificador por cada codificador componente
 Cada decodificador estima la probabilidad a posteriori (APP) de
cada bit
 La información de APP de un decodificador es utilizada por el
otro decodificador
 La codificación se hace mediante un número de iteraciones
Universidad Carlos III de Madrid
32

16
Turbo Codificación

$ La Turbo Codificación toma su nombre de la


realimentación que utiliza, como los motores turbo

Universidad Carlos III de Madrid


33

Turbo Codificación
Prestaciones en función del número de iteraciones

0
10 $ K=5
-1
10 $ r=1/2
1 iteration
-2
10
$ L=65,536
-3
2 iterations
10
BER

-4
10 6 iterations 3 iterations

-5
10 10 iterations

-6
10 18 iterations

-7
10
0.5 1 1.5 2
E b/No in dB

17
Turbo Codificación
$ Algoritmo MAP: BCJR modificado
Ss (e1 ) Se (e N −1 )
S1 e1 S1 S1 S1
eN-1
S2 Ss (e 2 ) Se (e1 ) S2 S2
s
( u1 (e), x1r (e))
S (e N −1 )
e2 Se ( e N − 2 )
s
S (e N − 2 ) ( u N −1 (e), x rN −1 (e))

SL-1 SL-1 Ss ( e 3 )Se ( e 2 )


SL SL SL
k=1 k=2 k=3 k=N-2 k=N-1 k=N
$ λ k ( e) = P ( u k = u ( e ) | y )

$ P ( u k = i | y) = ∑λ
e:u ( e ) = i
k ( e)

Universidad Carlos III de Madrid


35

Turbo Codificación
El algoritmo log
- MAP
1/10 α ( si ) γ ( si → si +1 ) β ( si +1 )
S3
0/0
1
1
0/0

S2 0
1/1
0/0
0
1/ 1

S1
1

11
1/

S0 0/00
i=0 i=1 i=2 i=3 i=4 i=5 i=6

El algoritmo log-MAP:
Trabaja con aritmética en el dominio logarítmico
Los productos se transforman en sumas
Las sumas se pueden calcular mediante el Logaritmo Jacobiano

ln(e x + e y ) = max( x, y ) + ln(1 + e −| y − x| )


Universidad Carlos III de Madrid
36

18
Turbo Codificación
Implementación en UMTS

Universidad Carlos III de Madrid


37

Turbo Codificación

$ Factores que inciden en las prestaciones


 Complejidad vs. Prestaciones
ÎAlgoritmo de decodificación
ÎNúmero de iteraciones
ÎProfundidad de codificador
 Latencia vs. Prestaciones
ÎTamaño del entrelazado
 Eficiencia espectral vs. Prestaciones
ÎTasa de codificación
 Otros factores
ÎDiseño del entrelazado
ÎPuncturing
ÎTerminación del trellis

Universidad Carlos III de Madrid


38

19
Aplicaciones de los Turbo Códigos

$ Los sistemas multimedia requieren varias QoS


 Latencia
ÎBaja latencia para voz y teleconferencia
 Bit/frame error rate (BER, FER)
ÎBaja BER para transmisión de datos
$ Las reglas de diseño de los Turbo Códigos se ajustan a los
requerimientos multimedia
 Datos: uso de entrelazados largos
ÎBaja BER, Alta Latencia
 Voz: uso de entrelazados cortos
ÎBaja Latencia, Alta BER

Universidad Carlos III de Madrid


39

Influencia de la Longitud del


Entrelazado
$ Profundidad
codificadores 5
-1
10
L= 1,024
-2
L= 4,096 $ Tasa r = 1/2
10 L= 16,384
L= 65,536 $ Algoritmo Log-
-3
Voice MAP
10
$ 18 iteraciones
-4 Video
$ Canal AWGN
BER

10
Conferencing
-5
10 Replayed
Video
-6
10
Data
-7
10
0.5 1 1.5 2 2.5
Eb/No in dB

20
Otras aplicaciones del concepto de
Turbo Codificación
$ El principio de Turbo-procesado es más general que su aplicación a la
codificación de canal
$ El principio de Turbo-procesado puede describirse como
 “Never discard information prematurely that may be useful in making a
decision until all decisions related to that information have been
completed.”
» -Andrew Viterbi
 “It is a capital mistake to theorize before you have all the evidence. It
biases the judgement.”
» -Sir Arthur Conan Doyle
$ El Turbo-procesado puede aplicarse a los algoritmos que se basan en
un diagrama de trellis

Universidad Carlos III de Madrid


41

Otras aplicaciones del concepto de


Turbo Codificación
$ Turbo Detección multiusuario
$ Turbo Ecualización
$ Procesado de Diversidad

Universidad Carlos III de Madrid


42

21
Conclusiones

$ Las ventajas de los Turbo Códigos


 Una gran eficiencia en potencia en presencia de AWGN y fading plano a
relativamente bajas BER
 Capacidad de diseño con distintos parámetros que lo ajustan a distintos
servicios multimedia
$ Las desventajas de los Turbo Códigos
 Gran Latencia (retardo)
 Pobres prestaciones a BER muy bajas
 Justo porque los Turbo Códigos están pensados para trabajar en entornos
de SNR muy baja, la estiamción del canal y su seguimiento es un tema
crítico todavía bajo estudio
$ El principio de procesado iterativo con realimentacion de APP puede
utilizarse en otros problemas
 Por ejemplo, Turbo-Detección-Multiusuario

Universidad Carlos III de Madrid


43

22

You might also like