Professional Documents
Culture Documents
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
1
Introducción
$ Sistema de Comunicaciones:
Canal
Introducción
$ La codificación de canal añade redundancia estructurada a la
secuencia transmitida
m Codificador x
De canal
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
...0...
Codificador
...000...
digital
C={000,111}
Î el decodificador elige la palabra más parecida a las palabras del código:
...101...
2 dígitos diferentes con ...000...
} ...111... palabra transmitida + probable ...1... dígito + probable
Introducción
3
Introducción
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
4
Introducción
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
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
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
Clases de Codificación
C = < S > = {0000, 0100, 0011, 1100, 0111, 1000, 1111, 1011}
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
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
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
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
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
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
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
10
Turbo Codificación
11
Turbo Códigos: Principio de
Funcionamiento
Channel
Systematic Output
Input Encoder
#1
MUX
Interleaver
Parity
Output
Encoder
#2
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)
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
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 )
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 )
Turbo Codificación
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
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))
$ P ( u k = i | y) = ∑λ
e:u ( e ) = i
k ( e)
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
18
Turbo Codificación
Implementación en UMTS
Turbo Codificación
19
Aplicaciones de los Turbo Códigos
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
21
Conclusiones
22