COMUNICACIÓN Y CODIFICACIÓN DIGITAL
Tema: Códigos Turbo
Tutor: Ing. Bernal Oñate Carlos Paul
Integrante: Mediavilla López Luis Javier
NRC: 3560
Fecha: 22/06/2018
CÓDIGOS TURBO
Las prestaciones de un codificador convolucional aumentan, al aumentar su tamaño de memoria.
No se puede aumentar la memoria indiscriminadamente ya que la complejidad en el proceso de
decodificación crece exponencialmente.
Dado el problema del sub- aprovechamiento de la memoria, sobre los 60s Forney introdujo el
concepto de concatenación, según el cual es posible unir 2 codificadores en un solo bloque.
En 1993, los turbo-códigos fueron presentados formalmente por 1era vez en un paper publicado por
Berrou, Glavieux y Thitimajshima de Telecom-Bretagne, Francia. La novedad real de esta publicación era
la posibilidad de utilizar la concatenación de bloques en forma paralela.
Definición:
Un turbo-código es una refinación de la estructura de codificación concatenada, ya que se hace
utilizando concatenación en paralelo, más un algoritmo iterativo de decodificación.
Ventajas:
1. Con Turbo-códigos se consigue un aprovechamiento casi total de la capacidad del
canal, a diferencia de otros esquemas de concatenación propuestos anteriormente.
2. Adicionalmente, se incrementa la tasa de código en comparación con la concatenación serial.
Capacidad del Canal (Shannon)
La capacidad del canal está dada por:
𝑆
𝐶 = 𝐵𝑙𝑜𝑔2 (1 + )
𝑁
En donde:
C: Capacidad del canal
B: es el ancho de banda del canal dado en Hertz
S: es la potencia de la portadora del canal dado watts
N: es la potencia del ruido y las interferencias del canal dado en watts
S/N: Radio de señal a ruido dado en dB
Al utilizar turbo-códigos se puede obtener una diferencia entre la capacidad y la utilización del
canal de aproximadamente 0.7dB; en comparación con otros métodos, el turbo-código es el que
más se acerca a la capacidad del canal.
Tasa de Código:
Para codificadores concatenados en serie:
𝑅𝑠 = 𝑅1 𝑅2
Para codificadores concatenados en paralelo:
𝑅1 𝑅2
𝑅𝑝 =
1 − (1 − 𝑅1 )(1 − 𝑅2 )
Utilizando los mismos valores R1 y R2 para bloques individuales, se encontrará que siempre
Rp>Rs lo cual sugiere que hay una mejor tasa de código global cuando se concatenan bloques en
Paralelo.
Codificador:
La idea es que los datos sean codificados en su orden natural y en un orden intercalado (entrelazado)
por 2 codificadores RSC (Recursive Systematic Convolucional) que crean los bits de paridad Y1 y Y2.
El intercalado debe ser diseñado muy cuidadosamente porque tendrá un fuerte impacto en la eficiencia
total del codificador.
Decodificador:
El decodificador se construye de manera un poco diferente al codificador; consiste en 2 decodificadores
elementales (DEC 1 y DEC 2) concatenados en serie, no en paralelo.
DEC1 opera para el codificador C1 y DEC2 para C2 respectivamente.
DEC1 toma una decisión suave (soft decisión) lo cual causa un retardo L1. DEC2 por otro lado tomara
una decisión dura (hard decisión)
Soft Decisión (Decisión Suave)
Cuando se toma una soft-decision no se decide si el valor recibido es 0 o 1; en lugar de ello
produce para cada bit, un entero en el intervalo [-127,127] el cual dara una “idea” de lo que
podria ser el valor del bit asi:
-127 significa “seguro es 0”
-100 significa “posiblemente es 0”
0 significa “podria ser 0 o 1”
100 significa “posiblemente es 1”
127 significa “seguro es 1”
Soft-decision introduce un aspecto probabilistico a la cadena de bits pero transmite mayor
informacion sobre un bit que simplemente 1 o 0. Por otro lado un decodificador hard-decision
(decision dura) necesariamente cada vez que reciba un dato tiene que decidir si es 1 o 0 para la
salida.
Para que la estructura representada sea optima se requiere que DEC1 utilice no solo una fracción de la
redundancia disponible en la información. Por ello se propone un lazo de realimentación entre la salida
de DEC2 hacia DEC1, para que DEC1 pueda evaluar los datos una y otra vez.
Decodificación:
Si consideramos un canal con ruido blanco gaussiano y asumiendo la iteracion k-esima, el decodificador
recibe un par de variables aleatorias:
𝑥𝑘 = (2𝑑𝑘 − 1) + 𝑎𝑘
𝑦𝑘 = 2(𝑦𝑘 − 1) + 𝑏𝑘
Donde 𝑎𝑘 𝑦 𝑏𝑘 son la covarianza.
La información redundante es des-multiplexada y enviada a DEC1 (cuando yk=y1k) o DEC2
(cuando yk=y2k). DEC1 toma una decisión suave:
𝑝(𝑑𝑘 = 1)
⋀(𝑑𝑘 ) = log
𝑝(𝑑𝑘 = 0)
⋀(𝑑𝑘 ) se denomina logaritmo del radio de posibilidad (LLR: Logarithm of the Likelihood
ratio).
(𝑑𝑘 = 𝑖), 𝑖 ∈ {0,1}: es la probabilidad a posteriori
(APP) del bit dk el cual muestra la probabilidad de interpretar un bit recibido como 0 o 1. Al
recibir el LLR, DEC2 toma una decisión dura, es decir, un bit decodificado.
Bibliografía:
[1] Barraza Nestor. Universidad de Buenos Aires. (2012). Códigos para Control de Errores. Recuperado
de: [Link]
[2] Jiménez Oscar. (2013). Codificación Convolucional, Decodificador de Viterbi y Turbo Código.
Recuperado de: [Link]
viterbi-y-turbo-cdigo.