fbpx
Wikipedia

Turbo código

Los turbo códigos son una nueva clase de códigos de corrección de errores (FEC), que se introdujeron, junto con un algoritmo de decodificación. La importancia de los turbo códigos es que permiten una comunicación fiable y su eficiencia energética está muy cerca del límite teórico predicho por Shannon. Desde su introducción, los turbo códigos se han utilizado en aplicaciones de baja potencia, como las comunicaciones por satélite, así como para aplicaciones de interferencia limitada, como los servicios de tercera generación (3G) de comunicaciones móviles.

Historia

En 1993, un grupo de investigadores de Francia presentó una nueva clase de códigos de corrección de errores y una técnica de decodificación iterativa asociada a estos códigos. Estos códigos se llamaron turbo códigos . Esto produjo un gran avance en la teoría de la codificación. Los resultados iniciales mostraron que los turbo códigos podían conseguir una eficiencia energética muy cercana al límite predicho por Shannon (a 0.5 dB del límite). Esto constituye un aumento significativo en la eficiencia energética sobre otras técnicas de codificación conocidas en el momento.

Este fue un resultado extraordinario que en un principio fue recibido con escepticismo. Pero, más tarde, otros investigadores comenzaron a validar los resultados de forma independiente, y se comenzó una investigación masiva con el objetivo de explicar y mejorar notablemente los turbo códigos . Gran parte de esta investigación se centró en la mejora de la viabilidad de los turbo códigos .

A finales de la década de 1990, las virtudes de los turbo códigos eran bien conocidas, y se empezaron a adaptarse en los diferentes sistemas. Actualmente se incorporan en los estándares utilizados por las comunicaciones de la NASA en el espacio (CCSD), las comunicaciones por satélite, la radiodifusión de vídeo digital (DVB-T), y en los dos estándares de comunicación móvil de tercera generación (UMTS y CDMA2000).

Características

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 : 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.

 
Diagrama de un Sistema de Transmisión

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.

El Codificador

 
Diagrama de un Turbo 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), solo 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 solo 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.

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.

 
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  , 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:


  (1)

  (2)


Donde   son los bits sistemáticos,   son los bits de paridad observados por el codificador 1 y   son los bits de paridad observados por el codificador 2. El acento sobre una variables 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:


  (3)

  (4)


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:


  (5)


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 solo 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.

Rendimiento

Hay muchos factores que afectan el rendimiento de los turbo códigos. El parámetro que más influye es el tamaño del dispersor. Cuando el tamaño del dispersor es grande, el rendimiento mejora. Esto implicaría que se debería escoger el tamaño más grande posible. Sin embargo, a medida que aumenta el tamaño del dispersor también aumenta la latencia del descodificador, ya que se ha de recibir todo el código para poder decodificarlo completamente. Por lo tanto los turbo códigos posee un equilibrio inherente entre el rendimiento y la latencia.

Otro parámetro que afecta el rendimiento es la tasa general del código. Al igual que para otros códigos, el rendimiento mejora a medida que la tasa de código es inferior. Cuando las tasas de código que se utilizan son superiores a 1/3, el patrón que se utiliza afecta al rendimiento. Al igual que en los códigos convolucionales, la restricción de la longitud del código también influye en el rendimiento. Sin embargo, el impacto que tiene la restricción de la longitud en el rendimiento es débil, y por lo tanto solo se consideran las restricciones de longitud cortas de K = 3, 4, o 5 para el diseño de los turbo códigos. El diseño del dispersor juega un papel importante en el diseño de un turbo código, para obtener una relación de señal a ruido SNR buena. En general, un diseño del dispersor al azar dará un buen rendimiento, mientras que hay que evitar dispersores altamente estructuradas, como el "dispersor de bloque". La elección del algoritmo de decodificación y el número de iteraciones de decodificación también influyen en el rendimiento. Se puede ver que el rendimiento mejora a medida que aumenta el número de iteraciones. Esta mejora sigue una ley de rendimientos decrecientes. Además, el número de iteraciones necesarias está en función del tamaño del dispersor cuanto mayor es el dispersor se requieren más iteraciones.

Aunque los códigos de turbo ofrecen un rendimiento extraordinario para tasas de error de bit alrededor de   BER, el rendimiento para tasas de bit de error muy pequeñas no es muy impresionante. Para relaciones señal-ruido altas, puede ser mejor utilizar un código convolucional. Este fenómeno puede ser explicado en términos de la distancia del espectro de Hamming de los turbo códigos.

Aplicaciones donde se usan los turbo códigos

Los turbocó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

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ó, José A. Morán i Rosa María Alsina

Véase también

Enlaces externos

  • Turbo Codes, Matthew C. Valenti
  • Fundamentals of Turbo Codes
  •   Datos: Q2164281

turbo, código, turbo, códigos, nueva, clase, códigos, corrección, errores, introdujeron, junto, algoritmo, decodificación, importancia, turbo, códigos, permiten, comunicación, fiable, eficiencia, energética, está, cerca, límite, teórico, predicho, shannon, des. Los turbo codigos son una nueva clase de codigos de correccion de errores FEC que se introdujeron junto con un algoritmo de decodificacion La importancia de los turbo codigos es que permiten una comunicacion fiable y su eficiencia energetica esta muy cerca del limite teorico predicho por Shannon Desde su introduccion los turbo codigos se han utilizado en aplicaciones de baja potencia como las comunicaciones por satelite asi como para aplicaciones de interferencia limitada como los servicios de tercera generacion 3G de comunicaciones moviles Indice 1 Historia 2 Caracteristicas 3 Turbo codigos funcionamiento 3 1 El Codificador 3 2 El Decodificador 4 Rendimiento 5 Aplicaciones donde se usan los turbo codigos 6 Referencias 7 Vease tambien 8 Enlaces externosHistoria EditarEn 1993 un grupo de investigadores de Francia presento una nueva clase de codigos de correccion de errores y una tecnica de decodificacion iterativa asociada a estos codigos Estos codigos se llamaron turbo codigos Esto produjo un gran avance en la teoria de la codificacion Los resultados iniciales mostraron que los turbo codigos podian conseguir una eficiencia energetica muy cercana al limite predicho por Shannon a 0 5 dB del limite Esto constituye un aumento significativo en la eficiencia energetica sobre otras tecnicas de codificacion conocidas en el momento Este fue un resultado extraordinario que en un principio fue recibido con escepticismo Pero mas tarde otros investigadores comenzaron a validar los resultados de forma independiente y se comenzo una investigacion masiva con el objetivo de explicar y mejorar notablemente los turbo codigos Gran parte de esta investigacion se centro en la mejora de la viabilidad de los turbo codigos A finales de la decada de 1990 las virtudes de los turbo codigos eran bien conocidas y se empezaron a adaptarse en los diferentes sistemas Actualmente se incorporan en los estandares utilizados por las comunicaciones de la NASA en el espacio CCSD las comunicaciones por satelite la radiodifusion de video digital DVB T y en los dos estandares de comunicacion movil de tercera generacion UMTS y CDMA2000 Caracteristicas EditarLa Turbo codificacion 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 decodificacion crece exponencialmente Los turbo codigos son esquemas de codificacion que aumentan la memoria de codificacion de forma artificial Se basa en concatenar esquemas de codificacion relativamente simples con el fin de obtener un codigo equivalente a uno de prestaciones mas complejas Las caracteristicas Fundamentales de los turbo codigos son Uso de codificacion paralela concatenada Uso de codificadores Convolucionales Recursivos Uso de un dispersor pseudo aleatorio Uso de decodificacion iterativaTurbo codigos funcionamiento EditarLos Turbo codigos se basan en la concatenacion de dos codificadores relativamente sencillos separados por un Dispersor El conjunto es equivalente a un unico codificador convolucional de memoria tan grande como la profundidad del dispersor pero con un proceso de decodificacion simplificado que en ningun caso alcanza la complejidad del convolucional equivalente Diagrama de un Sistema de Transmision Un unico codigo de proteccion de errores no siempre proporciona la proteccion necesaria con una complejidad aceptable La solucion es concatenar dos o mas codigos esto crea un codigo mucho mas potente que los tradicionales La propuesta original de los turbo codigos consistia en la concatenacion de dos codificadores convolucionales sistematicos RSC con un dispersor La forma de trabajar de estos codigos 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 codigo inicial en un proceso iterativo similar al que gobierna el principio de los motores turbo Cuantas mas iteraciones se aplican a este proceso mas refinada y fiable es la decision hard definitiva y se reduce en cada iteracion la probabilidad de error El Codificador Editar Diagrama de un Turbo Codificador Un turbo codigo es la concatenacion en paralelo de dos codigos 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 informacion despues de dispersarse por una funcion de permutacion a El dispersor a es en general un dispersor pseudo aleatorio que mueve los bits de la posicion i a la posicion a i de acuerdo con una prescripcion regla que se generada aleatoriamente El dispersor opera en bloques intercalado grupos de bits a la vez y por tanto los turbo codigos son en realidad bloques de codigos Dado que ambos codificadores son sistematicos y reciben el mismo conjunto de datos aunque con un orden permutado solo 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 codigo formado por la concatenacion en paralelo de dos tasas de 1 2 de un codificador sistematico es r 1 3 La tasa tipica de un turbo codigo incrementa a r 1 2 para transmitir solo los indices impares de los bits de paridad del codificador superior y para transmitir los indices pares de los bits de paridad del codificador inferior El Decodificador Editar Un turbo codigo como ya hemos dicho anteriormente se basa en la utilizacion de dos o mas codigos constituyentes la decodificacion 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 filosofia turbo se basa en aprovechar la informacion extrinseca proporcionada por el codigo y convertirla en informacion a priori para una etapa posterior de decodificacion esta parte se toma como 0 en la primera etapa En un esquema con dos codigos este bucle de realimentacion debe tener en cuenta los dos decodificadores y tambien la etapa de dispersion Diagrama de un Turbo Decodificador Al igual que con los codigos convolucionales se puede obtener una solucion ML utilizando la ecuacion m a r g m a x m P m y displaystyle quad tilde m arg left max m P m y right 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 codigos es O 2 L displaystyle O 2 L donde L es el tamano del frame de datos Esto hace que para descodificar los turbo codigos se tenga que buscar una solucion de menor complejidad aunque sea una solucion suboptima En particular se puede encontrar una buena estimacion de los datos solucionando el siguiente sistema de ecuaciones A i 1 l o g P m i 1 y 0 y 1 z 2 P m i 0 y 0 y 1 z 2 displaystyle quad A i 1 log frac P m i 1 y 0 y 1 z 2 P m i 0 y 0 y 1 z 2 1 A i 2 l o g P m i 1 y 0 y 2 z 1 P m i 0 y 0 y 2 z 1 displaystyle quad tilde A i 2 log frac P tilde m i 1 tilde y 0 y 2 tilde z 1 P tilde m i 0 tilde y 0 y 2 tilde z 1 2 Donde y 0 displaystyle y 0 son los bits sistematicos y 1 displaystyle y 1 son los bits de paridad observados por el codificador 1 y y 2 displaystyle y 2 son los bits de paridad observados por el codificador 2 El acento sobre una variables representa su valor dispersado es decir y displaystyle tilde y es la version dispersada de y A es log likelihood ratio LLR o la medida logaritmica de similitud LLR y z es la informacion extrinseca que se relaciona con LLR a traves de z i 1 A i 1 y i 0 z i 2 displaystyle quad z i 1 A i 1 y i 0 z i 2 3 z i 2 A i 2 y i 0 z i 1 displaystyle quad tilde z i 2 tilde A i 2 tilde y i 0 tilde z i 1 4 El sistema de ecuaciones se puede resolver iterativamente mediante la estructura que se muestra en la figura EL decodificador 1 determina la solucion de eq 1 y el decodificador 2 determina la solucion de eq 2 Cada decodificador pasa la informacion al otro decodificador que a su vez mejora la estimacion de probabilidades a posteriori utilizando la informacion obtenida por el otro decodificador La estimacion final de los datos se obtiene limitando la salida de uno de los descodificadores por convencion la salida del segundo decodificador mediante f n 1 i f A i 2 gt 0 0 i f A i 2 lt 1 displaystyle f n begin matrix 1 amp ifA i 2 gt 0 0 amp ifA i 2 lt 1 end matrix 5 Los turbo codigos deben su nombre a la estructura de retroalimentacion de la figura y es una analogia de un motor turbo De hecho no hay nada turbo sobre los turbo codigos mas bien solo existe el efecto turbo procedente de la implementacion del decodificador La solucion a posteriori LLR s de 1 y 2 se calculan utilizando una derivacion simbolo a simbolo 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 precision numerica y no se usa Estos problemas se ven atenuados realizando la operacion en el dominio logaritmico aritmetico 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 realizacion de una recursion hacia delante y la otra la realizacion de una recursion hacia atras Por lo tanto la complejidad del algoritmo LogMAP es el doble de la del algoritmo de Viterbi Rendimiento EditarHay muchos factores que afectan el rendimiento de los turbo codigos El parametro que mas influye es el tamano del dispersor Cuando el tamano del dispersor es grande el rendimiento mejora Esto implicaria que se deberia escoger el tamano mas grande posible Sin embargo a medida que aumenta el tamano del dispersor tambien aumenta la latencia del descodificador ya que se ha de recibir todo el codigo para poder decodificarlo completamente Por lo tanto los turbo codigos posee un equilibrio inherente entre el rendimiento y la latencia Otro parametro que afecta el rendimiento es la tasa general del codigo Al igual que para otros codigos el rendimiento mejora a medida que la tasa de codigo es inferior Cuando las tasas de codigo que se utilizan son superiores a 1 3 el patron que se utiliza afecta al rendimiento Al igual que en los codigos convolucionales la restriccion de la longitud del codigo tambien influye en el rendimiento Sin embargo el impacto que tiene la restriccion de la longitud en el rendimiento es debil y por lo tanto solo se consideran las restricciones de longitud cortas de K 3 4 o 5 para el diseno de los turbo codigos El diseno del dispersor juega un papel importante en el diseno de un turbo codigo para obtener una relacion de senal a ruido SNR buena En general un diseno del dispersor al azar dara un buen rendimiento mientras que hay que evitar dispersores altamente estructuradas como el dispersor de bloque La eleccion del algoritmo de decodificacion y el numero de iteraciones de decodificacion tambien influyen en el rendimiento Se puede ver que el rendimiento mejora a medida que aumenta el numero de iteraciones Esta mejora sigue una ley de rendimientos decrecientes Ademas el numero de iteraciones necesarias esta en funcion del tamano del dispersor cuanto mayor es el dispersor se requieren mas iteraciones Aunque los codigos de turbo ofrecen un rendimiento extraordinario para tasas de error de bit alrededor de 10 5 displaystyle 10 5 BER el rendimiento para tasas de bit de error muy pequenas no es muy impresionante Para relaciones senal ruido altas puede ser mejor utilizar un codigo convolucional Este fenomeno puede ser explicado en terminos de la distancia del espectro de Hamming de los turbo codigos Aplicaciones donde se usan los turbo codigos EditarLos turbocodigos se usan en los sistemas de telecomunicaciones algunos ejemplos son En Comunicaciones satelite y espaciales En la television Digital por ejemplo en DVB RCS DVB SH DVB S2 En las Comunicaciones de fibra optica En Comunicaciones inalambricas wireless En Sistemas de grabacion opticos En los modems ADSL En TelemetriaReferencias Editar1 Turbo codes desirable and designable Alexandre Giulietti Bruno Bougard Liesbet van der Perre2 Turbo code applications a journey from a paper to realization Keattisak Sripimanwat3 Turbo Codes and Iterative Processing Matthew C Valenti4 Codificacion de Canal Turbocodificacion Matilde Sanchez y Javier Ramos5 Sistemes de Transmissio Joan Claudi Socoro Jose A Moran i Rosa Maria AlsinaVease tambien EditarDispersor Codigo convolucional Codigo de Hamming Codigos detectores y correctores de error Teoria de la informacionEnlaces externos EditarTurbo Codes Matthew C Valenti Fundamentals of Turbo Codes Turbo Codes Datos Q2164281Obtenido de https es wikipedia org w index php title Turbo codigo amp oldid 122341190, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos