Sei sulla pagina 1di 8

DEPARTAMENTO DE ELECTRICA - ELECTRONICA

COMUNICACIÓN Y CODIFICACION DIGITAL

NOMBRE: Diana Camacho

FECHA: 03-01-2018

NRC: 2253

TEMA: Consulta sobre Códigos turbo y algoritmo de Viterbi

Códigos turbo

Problema:

Codificador
lineal (n,k)

Resolución optima inabordable.

Solución:

Cod. Codificador Cod.


Conv. lineal (n,k) Conv.

Solución óptima abordable.

Características

 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).
 La Turbo codificación:
 Las prestaciones de un codificador convolucional mejoran al aumentar la
memoria, pero 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 basa en concatenar esquemas de codificación relativamente simples con el fin
de obtener un código equivalente a uno de prestaciones más complejas.
 Las características Fundamentales de los turbo códigos son:
 Uso de codificación paralela concatenada
 Uso de codificadores Convolucionales Recursivos
 Uso de un dispersor pseudo-aleatorio
 Uso de decodificación iterativa

Turbo códigos paralelo

Figura 1. Turbo Código en paralelo.

Figura 2. Turbo código en serie.


Turbo códigos: funcionamiento
Los Turbo códigos se basan en la concatenación de dos codificadores relativamente
sencillos separados por un Dispersor.
El conjunto es equivalente a un único codificador convolucional de memoria tan grande
como la profundidad del dispersor pero con un proceso de decodificación simplificado
que en ningún caso alcanza la complejidad del convolucional equivalente.
Un único código de protección de errores no siempre proporciona la protección
necesaria con una complejidad aceptable. La solución es concatenar dos (o más)
códigos, esto crea un código mucho más potente que los tradicionales.
La propuesta original de los turbo códigos consistía en la concatenación de dos
codificadores convolucionales sistemáticos (RSC) con un dispersor.
La forma de trabajar de estos códigos se basa en permitir que el codificador final
entregue unas decisiones leves o soft en lugar de graves o hard, con el objetivo de poder
realimentar estas decisiones, de nuevo, hacia el código inicial en un proceso iterativo
similar al que gobierna el principio de los motores turbo. Cuantas más iteraciones se
aplican a este proceso más refinada y fiable es la decisión hard definitiva, y se reduce en
cada iteración la probabilidad de error.

Figura 3. Diagrama de un Sistema de Transmisión

El Codificador
Un turbo código es la concatenación en paralelo de dos códigos RSC separados por un
dispersor.
En el codificador del esquema los dos codificadores tienen la misma tasa ½ del
codificador RSC. El codificador de la rama de arriba recibe los datos directamente,
mientras que el codificador de la rama inferior recibe la información después de
dispersarse por una función de permutación α.
El dispersor α es en general un dispersor pseudo-aleatorio, que mueve los bits de la
posición i a la posición α (i) de acuerdo con una prescripción (regla), que se generada
aleatoriamente. El dispersor opera en bloques, intercalado grupos de bits a la vez, y por
tanto los turbo códigos son en realidad bloques de códigos. Dado que ambos
codificadores son sistemáticos y reciben el mismo conjunto de datos (aunque con un
orden permutado), sólo hay que enviar la salida de una de las ramas. Por convenio, se
transmite la salida de la rama superior y la salida del codificador inferior no se
transmite. Sin embargo, las salidas de paridad de los dos codificadores se transmiten. La
tasa general de un turbo código formado por la concatenación en paralelo de dos tasas
de 1 / 2 de un codificador sistemático es r = 1 / 3. La tasa típica de un turbo código
incrementa a r = 1 / 2 para transmitir sólo los índices impares de los bits de paridad del
codificador superior y para transmitir los índices pares de los bits de paridad del
codificador inferior.
Figura 4. Diagrama de un turbo codificador.
El Decodificador
Un turbo código, como ya hemos dicho anteriormente, se basa en la utilización de dos o
más códigos constituyentes, la decodificación se basa en aplicar el criterio MAP para
poder tener tanto entradas como salidas soft (decodificador soft in - soft out). Como se
puede ver, la filosofía turbo se basa en aprovechar la información extrínseca
proporcionada por el código y convertirla en información a priori para una etapa
posterior de decodificación (esta parte se toma como 0 en la primera etapa). En un
esquema con dos códigos este bucle de realimentación debe tener en cuenta los dos
decodificadores y también la etapa de dispersión.

Figura 5 Diagrama de un Turbo Decodificador

Al igual que con los códigos convolucionales, se puede obtener una solución ML

utilizando la ecuación: y el algoritmo de Viterbi. Sin


embargo, debido a la presencia del dispersor, la complejidad del algoritmo Viterbi,
cuando se utiliza para descodificar los turbo códigos es 𝑂(2𝐿 ), donde L es el tamaño del
frame de datos. Esto hace que para descodificar los turbo códigos, se tenga que buscar
una solución de menor complejidad, aunque sea una solución subóptima. En particular,
se puede encontrar una buena estimación de los datos solucionando el siguiente sistema
de ecuaciones:

Donde 𝑦 0 , son los bits sistemáticos, 𝑦1 son los bits de paridad observados por el
codificador 1 y 𝑦 2 son los bits de paridad observados por el codificador 2. El acento
sobre una variable representa su valor dispersado, es decir, 𝑦 −− es la versión dispersada
de y. "A" es log-likelihood ratio (LLR) o la medida logarítmica de similitud (LLR), y z
es la información extrínseca que se relaciona con LLR a través de:

El sistema de ecuaciones se puede resolver iterativamente mediante la estructura que se


muestra en la figura. EL decodificador 1 determina la solución de eq (1) y el
decodificador 2 determina la solución de eq (2). Cada decodificador pasa la información
al otro decodificador, que a su vez mejora la estimación de probabilidades a posteriori
utilizando la información obtenida por el otro decodificador. La estimación final de los
datos se obtiene limitando la salida de uno de los descodificadores (por convención, la
salida del segundo decodificador) mediante:

Los turbo códigos deben su nombre a la estructura de retroalimentación de la figura y es


una analogía de un motor turbo. De hecho, no hay nada "turbo", sobre los turbo códigos,
más bien sólo existe el efecto turbo procedente de la implementación del decodificador.
La solución a posteriori LLR's de (1) y (2) se calculan utilizando una derivación
símbolo a símbolo del algoritmo MAP [3]. Aunque el algoritmo de [3] se puede utilizar
directamente para calcular los LLR's, el algoritmo es computacionalmente complejo y
sensible a las precisión numérica y no se usa. Estos problemas se ven atenuados
realizando la operación en el dominio logarítmico-aritmético, tal como se presenta en
[4] y [5]. El algoritmo resultante se denomina Log-MAP. El algoritmo se compone de
dos instancias del algoritmo de Viterbi - una realización de una recursión hacia delante
y la otra la realización de una recursión hacia atrás. Por lo tanto la complejidad del
algoritmo LogMAP es el doble de la del algoritmo de Viterbi. [7]
Aplicaciones donde se usan los turbo códigos
Los turbo códigos se usan en los sistemas de telecomunicaciones, algunos ejemplos son:

 En Comunicaciones satélite y espaciales


 En la televisión Digital, por ejemplo en: DVB-RCS , DVB-SH , DVB-S2
 En las Comunicaciones de fibra óptica
 En Comunicaciones inalámbricas (wireless)
 En Sistemas de grabación ópticos
 En los módems ADSL
 En Telemetría

Algoritmo de Viterbi

Las ideas fundamentales del algoritmo de Viterbi son:

 A cada rama de la rejilla se le asocia una etiqueta con la distancia entre los bits
recibidos por el canal y los de salida del codificador correspondientes a esa rama.
 Para calcular la métrica de una secuencia (camino) solo hay que sumar las
etiquetas rama a rama.

Funcionamiento:

 El algoritmo es secuencial, recorre el diagrama de izquierda a derecha.


 Para cada estado se calculan las distancias acumuladas por todos los caminos
posibles.
 Se selecciona la rama correspondiente al camino de mínima distancia (se ‘poda’
el diagrama). Si dos ramas entrantes al estado poseen la misma distancia
acumulada se elige uno de los caminos al azar.
 El algoritmo almacena el camino de mínima distancia que llega a cada estado de
tal forma que toma la decisión al final de la secuencia.[6]

Diagrama de rejilla:
REFERENCIAS

1. Turbo codes: desirable and designable, Alexandre Giulietti,Bruno Bougard,Liesbet


van der Perre
2. Turbo code applications: a journey from a paper to realization, Keattisak Sripimanwat
3. Turbo Codes and Iterative Processing, Matthew C. Valenti
4. Codificación de Canal. Turbocodificación, Matilde Sánchez y Javier Ramos
5. Sistemes de Transmissió Joan Claudi Socoró, Jose A. Morán i Rosa Maria Alsina
6. https://riunet.upv.es/handle/10251/1501
7. http://www.tsc.uc3m.es/~mlazaro/Docencia/MMC-CD/MMC-CD-T5-05-Turbo-
LDPC-2p.pdf

Potrebbero piacerti anche