Sei sulla pagina 1di 6

CONSULTA TURBO CÓDIGOS

COMUNICACIÓN Y CODIFICACIÓN DIGITAL

INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


VII NIVEL

Bryan Allauca
LOS TURBO CÓDIGOS
Los Turbo Códigos son un método de corrección de errores basado en los códigos
convolucionales más intercalación y realimentación. Consiste en una estructura de codificación
concatenada más un algoritmo iterativo; estos fueron introducidos en 1993 por Berrou y Glavieux
en la conferencia internacional de la IEEE en Ginebra, Suiza. El esquema propuesto en dicho
trabajo alcanzaba un BER de 10-5 usando una tasa de codificación de 1/2 sobre un canal AWGN,
modulación BPSK con una relación Eb/No de 0.7 dB, lo cual está cercano al límite de Shannon
que es 0.1dB [6]. Las tres áreas clave en que los Turbo Códigos proveen un mejoramiento en el
desempeño son:

 Capacidad: los Turbo Códigos logran un desempeño cercano a los límites teóricos de la
capacidad);
 Eficiencia en el Costo del Sistema: un usuario es capaz de enviar la misma cantidad de
información empleando únicamente la mitad del ancho de banda y;
 Número de Usuarios: un proveedor de servicio satelital es capaz de duplicar el número
de usuarios sin incrementar la capacidad del satélite.

Arquitecturas del Codificador


La combinación de codificadores RSC se conoce como concatenación y para codificadores
convolucionales puede realizarse de las siguientes maneras:

 Concatenación Paralela de Códigos Convolucionales (PCCC): es la más usada por los


Turbo Códigos y recibe ese nombre debido a que la misma secuencia de información es
codificada dos (o más) veces, en paralelo, utilizando las secuencias normal y
permutada(s) de los bits de información.

Figura 1 Arquitectura PCCC Básica.

 Concatenación Serial de Códigos Convolucionales (SCCC): en la Figura 2 el codificador


1 se conoce como Codificador Externo y el codificador 2 como Codificador Interno. La
presencia del interleaver entre ambos codificadores convolucionales, provoca que este
dispositivo produzca efectos distintos en el desempeño de las arquitecturas PCCC y
SCCC. Una característica de los esquemas PCCC es que presentan un mejor desempeño
que las arquitecturas SCCC a bajas SNR´s; sin embargo, a SNR´s elevadas los esquemas
SCCC superan en desempeño a las arquitecturas PCCC. El tamaño y diseño del
interleaver definen el punto de la SNR en que el desempeño de una estructura PCCC deja
de ser mejor que el de una estructura SCCC.
Figura 2 Arquitectura SCCC, Tasa r = 1/3.

 Concatenación Híbrida de Códigos Convolucionales (HCCC): es una combinación de las


concatenaciones paralela y serial, como se muestra:

Figura 3 Arquitectura HCCC de tasa r = 1/2.

Esta arquitectura es un mejoramiento definitivo de la estructura SCCC.


Algoritmos de Decodificación SISO
Existen dos categorías importantes de algoritmos de decodificación SISO:

 Los algoritmos que minimizan la probabilidad de error de símbolo y;


 Los algoritmos de decodificación de máxima probabilidad, que minimizan la
probabilidad de error de palabra o secuencia.

A la primera categoría pertenece el algoritmo MAP (Maximum A Posteriori) y a la segunda el


algoritmo SOVA (Soft Output Viterbi Algorithm), ambos algoritmos muy utilizados en Turbo
Decodificación.
La complejidad del algoritmo MAP se debe a que debe efectuar una enorme cantidad de
multiplicaciones y adiciones por cada estimado que produce la probabilidad a-posteriori de cada
bit de información decodificado. Este problema se aminora si el algoritmo entero se lleva a cabo
en el dominio logarítmico, en vez de esperar hasta el último paso para tomar el logaritmo de la
LLR. El principal beneficio es que, en el dominio logarítmico la multiplicación se convierte en
suma. Esta es la idea principal de los algoritmos Max-Log-MAP y Log-MAP para reducir la
complejidad.
La diferencia entre los algoritmos Max-Log-MAP y Log-MAP radica en la forma en que efectúan
la operación de suma en el dominio logarítmico. En el dominio logarítmico, el algoritmo
Max-Log-MAP efectúa la operación de suma como ln(𝑒 𝑋 + 𝑒 𝑦 ) = 𝑚𝑎𝑥(𝑥, 𝑦), mientras que
el algoritmo Log-MAP efectúa dicha operación como ln(𝑒 𝑋 + 𝑒 𝑦 ) = 𝑚𝑎𝑥(𝑥, 𝑦) + 𝑓𝑐 (|𝑦 − 𝑥|)
Por esto, el desempeño del algoritmo Max-Log-MAP en comparación con el MAP es
sub-óptimo debido a que utiliza una aproximación para efectuar las operaciones de suma en
el dominio logarítmico. El algoritmo Log-MAP fue propuesto para corregir dicha
aproximación y su desempeño es similar al del algoritmo MAP.

En 1989 Hagenauer y Hoeher propusieron una modificación al algoritmo de Viterbi que produce
las probabilidades a-posteriori de las transiciones de estado, o equivalentemente la confiabilidad
de los estimados de bit. Este algoritmo se conoce como SOVA (Soft Output Viterbi Algorithm)
y tiene dos modificaciones con respecto al algoritmo de Viterbi clásico que lo hacen adecuado
para ser utilizado en Turbo Decodificación: la primera consiste en que las métricas de trayectoria
usadas son modificadas para tomar en cuenta información a- priori cuando se selecciona la
trayectoria de máxima probabilidad a través del trellis, y la segunda radica en que el algoritmo
provee una salida suave en forma del LLR a-posteriori 𝐿(𝑢𝑘│𝑦) para cada bit decodificado.

Figura 4 Rendimiento de los algoritmos MAP, Log-MAP, Max-Log-MAP

EL CODIFICADOR
El codificador Turbo consiste en la concatenación de dos códigos continuos recursivos y
sistemáticos, denominados codificadores constituyentes, que operan uno sobre la información a
codificar (la parte sistemática) y el otro sobre una versión permutada (entrelazada) de la misma,
tal y como muestra la Figura 5.

Figura 5 Diagrama de bloques del codificador

Codiflcadores Constituyentes
A los codificadores continuos que se concatenan en paralelo se les denomina constituyentes,
caracterizados por dos polinomios: uno defeedback ( 𝑔1 (𝐷)) y otro de feedforward ( 𝑔2 (𝐷)).
𝑔2 (𝐷)
Estos codificadores son recursivos y sistemáticos, siendo su matriz generadora 𝐺𝑅𝑆 = [1 𝑔1 (𝐷)
],
de la cual se extrae únicamente la rama de paridad. Su implementación con registros de
desplazamiento se muestra en la Figura 6.
Figura 6 Estructura de un codificador continuo, recursivo y

Cualquier diseño de un codificador de canal intenta maximizar la distancia mínima entre dos
palabras código. Para un código lineal, esta distancia se corresponde con el peso mínimo de entre
todas las palabras código distintas de la todo ceros. Como todos los bloques que conforman el
codificador Turbo son lineales, este en su conjunto también lo es. Por lo tanto, para maximizar su
distancia interesa que las paridades sean de mucho peso. Es por ello que los constituyentes se
implementan recursivamente ya que únicamente aquellas secuencias de entrada múltiples de
𝑔1 (𝐷) darán una paridad finita (poco peso). En caso contrario, el enrejado nunca converge al
estado de reposo y al truncar la paridad a un número de bits igual al tamaño de bloque de la
entrada (𝑁) es de esperar que hayan tantos unos como ceros en media (mucho peso). Interesa que
haya pocas secuencias divisibles entre y por ello este polinomiJ se escoge primitivo. La notación
usada en la literatura para describir estos códigos consiste en la representación octal de los dos
polinomios. En la figura 7 se adjunta un ejemplo.

Figura 7 Ejemplo de notación de un código constituyente

Entrelazador (Interleaver)
Un entrelazador π es una bloque lineal que mapea una secuencia de N bits de entrada 𝑢 =
(𝑢1 , 𝑢2 , . . , 𝑢𝑁 ) en otra secuencia de salida que corresponde a una permutación de la entrada, de
manera que para describir el entrelazador empleamos un vector conteniendo las transposiciones

denotadas por 𝜋 = (𝜋1 , 𝜋2 , . . , 𝜋𝑁 ) de manera que la salida 𝜋(𝑢) se obtiene como 𝑢𝜋(𝑖) =
𝑢𝑖 𝑝𝑎𝑟𝑎 𝑖 = 1, … 𝑁. La función del entrelazador es desordenar suficientemente la secuencia de
bits de entrada para que si ésta era divisible por 𝑔1 (𝐷) a la entrada del primer constituyente, no
lo sea a la entrada del segundo. Así reduciremos la probabilidad de que ambas ramas de paridad
tengan un peso pequeño, aumentando la distancia mínima del código y mejorando con ello sus
prestaciones. Los más utilizados son los llamados Srandom, aunque debido al excesivo tiempo de
cálculo que se requiere para encontrarlos cuando el tamaño de bloque es grande también se usan
los entrelazadores rectangulares (block interleavers). Estos últimos se implementan escribiendo
fila a fila los bits en una matriz y leyéndolos columna a columna.
Puncturing
La tasa que ofrece un código turbo sin puncturing es 𝑟 = 1𝐼3 (por cada N bits de infdrmación
obtenemos 3N bits de palabra código a la salida). Este overhead, aunque necesario en algunas
aplicaciones que exijan mu~ha robustez, puede ser excesivo en escenarios con restricciones de
retardo donde es más apropiada una tasa mayor. Es por ello que puede incluirse un bloque de
puncturing que elimine ciertos bits de redundancia. Esta eliminación aunque puede hacerse, por
ejemplo, quedándose con los bits pares del primer constituyente y los impares del segundo existen
otros métodos más sofisticados para eliminar periódicamente ciertos bits.
DECODIFICACIÓN
La decodificación de los códigos turbo puede que se trate en profundidad en próximos trabajos
así que en el 'presente sólo se pretenden introducir aquellos aspectos más básicos. Se considerará
que se usa una modulación BPSK sobre canal AWGN. Todo algoritmo de decodificación turbo
consiste en obtener iterativamente la siguiente métrica para cada bit de información:
𝑃(𝑏𝑘 = 1) 𝑃(𝑏𝑘 = 1/𝑦)
𝐿𝐿𝑅(𝑏𝑘 ) = log ( ) = log ( )
𝑃(𝑏𝑘 = 0) 𝑃(𝑏𝑘 = 0/𝑦)

Esta métrica se denomina Log-Likelihood Ratio y es novedosa en el sentido que no está basada
en el criterio ML ('Maximum Likelihood') como el algoritmo de Viterbi, que es el que
tradicionalmente se ha usado para la decodificación de los códigos continuos. Este cambio fue
necesario debido a la complejidad de la aplicación de este criterio a los códigos Turbo (se
describirían con un enrejado de tamaño prohibitivo), que emplean el algoritmo BCJR y sus
modificaciones de menor complejidad, Log-MAP y max-Log-MAP, para aplicar el MAP
('MaximumA Posteriori').
La decisión a partir del LLR se basa en su signo. Cuando es positivo se decide 1 y O en caso
contrario. Este modo de proceder constituye lo que se denomina una decodificación softporque el
valor absoluto del LLR es una medida de la confianza en la decisión. Además, cuantas más
iteraciones realicemos para calcular esta métrica con más precisión obtendremos su valor real.
REFERENCIAS

 FRANCOS, Alfonso; Estudio Teórico de la Arquitectura de Turbo-Códigos para


Aplicaciones de Telefonía Celular de 3G. Universidad de las Américas; Puebla - México.
Septiembre 17, 2007.
 HANZO, L.; LIEW, T.; YEAP, B.; Turbo Coding, Turbo Equalization and Space-Time
Coding for Transmission over Wireless Channels. Electronic Book, Department of
Electronics and Computer Science, Ltd. United Kingdom. 2002.
 M. Breiling, S. Peeter , and 1. Huber, «The Class of Oouble Terrninating Turbo Code
Interleavers», lEE Eleetronie Letters, no.5, 99. 389-391.
 1.P. Woodard and L. Hanzo, «Comparati ve Study of Turbo Oecoding Technique : An
Overview», IEEE Transaetions on Vehieular Teehnology, vol. 49, no. 6, oV.2000.

Potrebbero piacerti anche