ES2347309T3 - Arquitectura de memoria para decodificador de probabilidad maxima a posteriori. - Google Patents

Arquitectura de memoria para decodificador de probabilidad maxima a posteriori. Download PDF

Info

Publication number
ES2347309T3
ES2347309T3 ES99942209T ES99942209T ES2347309T3 ES 2347309 T3 ES2347309 T3 ES 2347309T3 ES 99942209 T ES99942209 T ES 99942209T ES 99942209 T ES99942209 T ES 99942209T ES 2347309 T3 ES2347309 T3 ES 2347309T3
Authority
ES
Spain
Prior art keywords
ram
estimates
window
decoding
channel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES99942209T
Other languages
English (en)
Inventor
Steven J. Halter
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/259,665 external-priority patent/US6381728B1/en
Priority claimed from US09/283,013 external-priority patent/US6434203B1/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2347309T3 publication Critical patent/ES2347309T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Dram (AREA)
  • Static Random-Access Memory (AREA)
  • Navigation (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Un sistema para llevar a cabo una decodificación de la probabilidad máxima a posteriori en ventana desplazable, en lo sucesivo denominada MAP, comprendiendo la decodificación: a) una RAM (160) de desentrelazado de canal para almacenar un bloque de estimaciones de símbolos; b) un total de S calculadores (272, 274) de métricas de estado, siendo cada calculador de métricas de estado para generar un conjunto de cálculos métricos de estado, en el que dichos calculadores (272, 274) de métricas de estado procesan datos en ventanas iguales o menores que el tamaño de una RAM de ventana; c) un conjunto de S+1 RAM (230A-D) de ventana, en el que S de dichas S+1 RAM de ventana proporcionan estimaciones de símbolos a dichos S calculadores de métricas de estado, y una RAM restante de ventana recibe estimaciones de símbolos desde dicha RAM (160) de desentrelazado de canal.

Description

Arquitectura de memoria para decodificador de probabilidad máxima a posteriori.
I. Campo de la invención
La presente invención versa acerca de la codificación. Más en particular, la presente invención versa acerca de una técnica novedosa y mejorada para llevar a cabo una decodificación de la probabilidad máxima a posteriori (MAP) en ventana desplazable.
\vskip1.000000\baselineskip
II. Descripción de la técnica relacionada
La "turbocodificación" representa un importante avance en el área de la corrección anticipada de errores (FEC). Hay muchas variantes de la turbocodificación, pero la mayoría utiliza múltiples etapas de codificación separadas por etapas de entrelazado combinadas con decodificación iterativa. Esta combinación proporciona un rendimiento no disponible previamente con respecto a la tolerancia al ruido en un sistema de comunicaciones. Es decir, la turbocodificación permite comunicaciones con niveles de E_{b}/N_{0} que eran previamente inaceptables usando las técnicas existentes de corrección anticipada de errores.
Hay muchos sistemas que usan técnicas de corrección anticipada de errores, y, por lo tanto, se beneficiarían del uso de la turbocodificación. Por ejemplo, los turbocódigos podrían mejorar el rendimiento de los enlaces inalámbricos por satélite, en los que la limitada potencia de transmisión del enlace descendente del satélite necesita sistemas receptores que puedan operar a bajos niveles de E_{b}/N_{0}. El uso de turbocódigos en un enlace inalámbrico por satélite podría reducir el tamaño de la antena parabólica para un sistema de transmisión digital de vídeo (DVB) o, alternativamente, permitir que se transmitieran más datos dentro de un ancho de banda dado de frecuencias.
Los sistemas de telecomunicaciones inalámbricas digitales, como los sistemas telefónicos móvil digital y PCS, también usan la corrección anticipada de errores. Por ejemplo, el estándar de interfaz aérea IS-95 y sus derivados, como el IS-95B, definen un sistema de comunicaciones inalámbricas digitales que usa una codificación convencional para proporcionar una ganancia de codificación para aumentar la capacidad del sistema. En la patente estadounidense nº 5.103.459, titulada "System and Method for Generating Signal Waveforms in a CDMA Cellular Telephone System", transferida al cesionario de la presente invención (patente 5.103.459), se describe un sistema y un procedimiento para el procesamiento de señales de RF sustancialmente según el uso del estándar IS-95.
Dado que los sistemas de comunicaciones inalámbricas digitales como el IS-95 son fundamentalmente para comunicaciones móviles, es importante contar con dispositivos que minimicen el uso de energía y que sean pequeños y ligeros. Típicamente, esto requiere el desarrollo de un circuito integrado semiconductor ("chip") para llevar a cabo la mayor parte o la totalidad del procesamiento necesario. Aunque la codificación convolucional es relativamente compleja, los circuitos necesarios para llevar a cabo la codificación y la decodificación convolucionales pueden formarse en un único chip junto con cualquier otra circuitería necesaria.
La turbocodificación (en particular la operación de decodificación) es significativamente más compleja que la codificación (y la decodificación) convolucional. No obstante, sería sumamente deseable incluir la turbocodificación en los sistemas de telecomunicaciones inalámbricas digitales, incluyendo los sistemas de comunicaciones digitales móviles y el sistema de comunicaciones por satélite. Así, la presente invención se dirige al aumento de la velocidad con la que pueden llevarse a cabo ciertas operaciones para facilitar el uso de la turbocodificación en una variedad de sistemas.
Se llama, además, la atención al documento titulado "An intuitive justification and a simplified implementation of the MAP decoder for convolutional codes", de Viterbi A J, IEEE Journal on selected areas in communications, US, IEEE INC Nueva York, vol. 16, nº 2, páginas 260-264, XP000741780. El documento expone el uso de decodificadores MAP para códigos convolucionales y también aplica técnicas de gestión de la memoria similares a las usadas para los códigos convolucionales ordinarios.
También se llama la atención al documento de G. Fettweiss y H. Meyr titulado "Feedforward Architectures for Parallel Viterbi Decoding", Journal on VLSI signal processing, vol. 3, nº 2, junio de 1991, páginas 105-119, XP000228897. El documento expone, en el contexto de la decodificación de Viterbi, que dejando de procesar recursivamente una realimentación ACS pueden diseñarse arquitecturas puramente de alimentación directa para la decodificación De Viterbi.
Por último, se llama la atención a la publicación de DAWID H; MEYR H.: "Real-Time Algorithms and VLSI Architectures for Soft Output MAP Convolutional Decoding" PROC. OF PERSONAL, INDOOR AND MOBILE RADIO CONFERENCE (PIMRC) 1995 vol. 1, 27 de septiembre de 1995, ONTARIO, CANADÁ, páginas 193 - 197, XP002176458.
Resumen de la invención
En el contexto de la presente invención, se proporcionan un sistema y un procedimiento para llevar a cabo una decodificación de la probabilidad máxima a posteriori en ventana desplazable según se expone en las reivindicaciones 1 y 9. Las realizaciones de la presente invención se describen en las reivindicaciones dependientes.
La presente invención es una técnica novedosa y mejorada para la técnica de la decodificación con aplicación particular a las técnicas de turbocodificación o de codificación iterativa. Según una realización de la invención, un sistema de decodificación incluye una RAM de desentrelazado de canal para almacenar un bloque de estimaciones de símbolos, un conjunto de S calculadores de métricas de estado. Cada calculador de métricas de estado es para generar un conjunto de cálculos de métricas de estado y un conjunto de S+1 RAM de ventana, en el que S de dichas S+1 RAM de ventana proporcionan estimaciones de símbolos a dichos S calculadores de métricas de estado. Una RAM restante de ventana recibe estimaciones de símbolos desde dicha RAM de desentrelazado de canal.
Breve descripción de los dibujos
Las características, los objetos y las ventajas de la presente invención se harán más evidentes a partir de la descripción detallada expuesta más abajo cuando se la toma en conjunto con los dibujos, en los que los caracteres de referencia similares identifican partes correspondientes en el conjunto y en los que:
las Figuras 1A y 1B son diagramas de bloques de sistemas de comunicaciones inalámbricas;
la Fig. 2 es un diagrama de bloques de un sistema de transmisión;
las Figuras 3A y 3B son diagramas de turbocodificadores;
la Fig. 4 es un diagrama de bloques de un sistema de procesamiento de recepción;
la Fig. 5 es un diagrama de bloques de un decodificador y una porción de un desentrelazador de canal;
la Fig. 6 es un diagrama de flujo que ilustra un conjunto ejemplar de etapas de decodificación.
Descripción detallada de las realizaciones preferidas
La presente invención es una técnica novedosa y mejorada para llevar a cabo una turbocodificación. La realización ejemplar se describe en el contexto del sistema de telefonía móvil digital. Aunque el uso dentro de este contexto es ventajoso, pueden incorporarse diferentes realizaciones de la invención en diferentes entornos, configuraciones o sistemas digitales de transmisión de datos, incluyendo sistemas de comunicaciones por satélite y sistemas de comunicaciones mediante cable físico, como los sistemas de cable digital y de telefonía.
En general, los diversos sistemas descritos en el presente documento pueden formarse usando procesadores controlados por software, circuitos integrados o lógica discreta; sin embargo, se prefiere la implementación en un circuito integrado. Los datos, las instrucciones, las órdenes, la información, las señales, los símbolos y los chips a los que se puede hacer referencia en la solicitud son representados con ventaja por tensiones, corrientes, ondas electromagnéticas, campos o partículas magnéticos, campos o partículas ópticos, o una combinación de los mismos. Además, los bloques mostrados en cada diagrama de bloques pueden representar o bien hardware o bien etapas del procedimiento.
La Fig. 1A es un diagrama muy simplificado de un sistema telefónico móvil configurado según una realización de la invención. Para realizar llamadas telefónicas u otras comunicaciones, las unidades (10) de abonado se interconectan con estaciones base (12) por medio de señales de RF. Las estaciones base 12 se interconectan con la red telefónica conmutada pública por medio del controlador (14) de estación base (BSC).
La Fig. 1B es un diagrama muy simplificado de un sistema de comunicaciones por satélite configurado según otra realización de la invención. La estación (40) de enlace ascendente transmite señales de RF que contienen información como programación de vídeo al satélite (42). El satélite (42) retransmite las señales de RF de nuevo a la tierra, en la que el receptor (44) convierte las señales de RF recibidas en datos digitales.
La Fig. 2 es un diagrama de bloques de un sistema ejemplar de transmisión configurado según el uso de una realización de la presente invención. El sistema de transmisión puede ser usado dentro de una unidad (10) de abonado, de una estación base (12) o de una estación (40) de enlace ascendente, así como cualquier otro sistema que genere señales digitales para su transmisión. El procedimiento de transmisión mostrado representa únicamente una realización posible de la invención, ya que numerosos modelos de procedimiento de transmisión adicionales pueden incorporar el uso de diversas realizaciones de la invención y beneficiarse del mismo.
Se suministran datos (70) al generador (72) de CRC, que genera datos de suma CRC de control para cada cantidad predeterminada dada de datos recibidos. Los bloques resultantes de datos se suministran al turbocodificador (76), que genera símbolos de código que se suministran al entrelazador (78) de canal. Los símbolos de código incluyen típicamente una retransmisión de los datos originales (el símbolo sistemático) y uno o más símbolos de paridad.
El número de símbolos de paridad transmitidos para cada símbolo sistemático depende de la tasa de codificación. Para una tasa de codificación de _, se transmite un símbolo de paridad por cada símbolo sistemático, con un total de dos símbolos generados para cada bit de datos recibido (incluyendo el CRC). Para un turbocodificador con una tasa de 1/3, se generan dos símbolos de paridad por cada símbolo sistémico, con un total de tres símbolos generados por cada bit de datos recibido.
Los símbolos de código procedentes del turbocodificador (76) son suministrados al entrelazador (78) de canal. El entrelazador (78) de canal lleva a cabo el entrelazado de los símbolos en los bloques a medida que se reciben, dando salida los símbolos que se reciben mediante el trazador (80) de mapas. Típicamente, el entrelazador (78) de canal lleva a cabo el entrelazado con inversión de bloques o de bits. Casi todos los demás tipos de intercalador pueden usarse como intercalador de canal.
El trazador (80) de mapas toma los símbolos entrelazados de código y genera palabras de símbolos con cierta anchura de bits en base a un esquema predeterminado de direccionamiento. Acto seguido, las palabras de símbolos son aplicadas al modulador (82), que genera una forma de onda modulada en base a la palabra de símbolo recibida. Las técnicas típicas de modulación incluyen QPSK, 8-PSK y 16 QAM, aunque pueden utilizarse diversos esquemas de modulación adicionales. A continuación, la forma de onda modulada es escalada para su transmisión a una frecuencia de RF.
La Fig. 3A es un diagrama de bloques de un turbocodificador configurado según una primera realización de la invención. En esta primera realización de la invención, el turbocodificador está configurado como un turbocodificador concatenado en paralelo. Dentro de la versión del turbocodificador (76), el codificador constituyente (90) y el entrelazador (92) de código reciben los datos del generador (72) de CRC, que, tal como se ha descrito en lo que antecede, da salida a los datos introducidos y a los bits de la suma CRC de control. El codificador constituyente (90) también genera bits de cola para proporcionar un estado conocido al final de cada trama.
Como es bien sabido, el entrelazador (92) de código debería ser un entrelazador muy aleatorizado para el mejor rendimiento. En la solicitud de patente estadounidense con nº de serie 09/158.459, en tramitación como la presente, presentada el 22 de septiembre de 1998 y titulada "Coding System Having State Machine Based Interleaver", en la solicitud de continuación en parte con nº de serie 09/172. 069, en tramitación como la presente, presentada el 13 de octubre de 1998 y titulada "Coding System Having State Machine Based Interleaver", y en la solicitud de patente estadounidense con nº de serie 09/09/205511, presentada el 4 de diciembre de 1998, titulada "Turbo Code Interleaver Using Linear Cogruential Sequence", transferidas todas al cesionario de la presente solicitud, se describe un entrelazador que proporciona un rendimiento excelente con mínima complejidad como entrelazador de código. El codificador constituyente (90) da salida a símbolos sistemáticos (94) (típicamente una copia de los bits de entrada originales) y a símbolos (96) de paridad. El codificador constituyente (98) recibe la salida entrelazada del entrelazador (92) de código y da salida, además, a símbolos (99) de paridad. El codificador constituyente (90) puede también añadir bits de cola para proporcionar un estado conocido al final de cada trama.
Las salidas del codificador constituyente (90) y del codificador constituyente (98) se multiplexan en el chorro de datos de salida para una tasa R de codificación total de 1/3. Pueden añadirse códigos constituyentes adicionales y pares del entrelazador de código para reducir la tasa de codificación para la corrección anticipada de errores incrementada. De forma alternativa, algunos de los símbolos (96 y 99) de paridad pueden cribarse (no transmitirse) para aumentar la tasa de codificación. Por ejemplo, la tasa de codificación podría incrementarse hasta _ cribando cada dos símbolos (96 y 99) de paridad, o no transmitir en absoluto el símbolo (96) de paridad.
Los decodificadores constituyentes (90 y 98) pueden ser de diversos tipos de codificadores, incluyendo los codificadores de bloques o codificadores convolucionales. Típicamente, como codificadores convolucionales, los decodificadores constituyentes (90 y 98) tienen una longitud de limitación pequeña, como 4 (cuatro), para reducir la complejidad, y son codificadores convolucionales sistemáticos recursivos (RSC). La menor longitud de limitación reduce la complejidad del decodificador correspondiente en el sistema receptor.
Típicamente, los dos codificadores dan salida a un símbolo sistemático y a un símbolo de paridad por cada bit recibido para una tasa de codificación constituyente R = _. Sin embargo, la tasa total de codificación para el turbocodificador de la Fig. 3A es de R = 1/3, porque no se usa el bit sistemático del codificador constituyente (98). Tal como se ha hecho notar más arriba, pueden añadirse también, en paralelo, pares adicionales de entrelazadores y codificadores para reducir la tasa de codificación, y, por lo tanto, para proporcionar una mayor corrección de errores, o puede llevarse a cabo una criba para aumentar la tasa de codificación.
La Fig. 3B representa al turbocodificador (76) como un turbocodificador concatenado en serie según una realización alternativa de la invención. Dentro del turbocodificador de la Fig. 3B, los datos provenientes del generador (72) de CRC son recibidos por el codificador constituyente (110) y los símbolos de código resultantes se aplican al entrelazador (112) de código. Los símbolos resultantes de paridad entrelazados son suministrados al codificador constituyente (114), que lleva a cabo una codificación adicional para generar los símbolos (115) de paridad. Típicamente, el codificador constituyente (110) (el codificador exterior) puede ser de diversos tipos de codificadores que incluyen los codificadores de bloques o codificadores convolucionales, pero, preferentemente, el codificador constituyente (114) (el codificador interior) es un codificador recursivo y es, típicamente, un codificador sistemático recursivo.
Como codificadores convolucionales sistemáticos recursivos (RSC), los codificadores constituyentes (110 y 114) generan símbolos a una tasa de codificación R < 1. Es decir, para un número dado de bits de entrada N, se generan M símbolos de salida, siendo M > N. La tasa total de codificación para el turbocodificador concatenado en serie de la Fig. 3B es la tasa de codificación del codificador constituyente (110) multiplicada por la tasa de codificación del codificador constituyente (114). También pueden añadirse en serie pares adicionales de entrelazadores y codificadores para reducir la tasa de codificación, y, por lo tanto, para proporcionar una protección adicional contra errores.
La Fig. 4 es un diagrama de bloques de un sistema de recepción configurado según una realización de la invención. La antena (150) proporciona las señales de RF recibidas a una unidad (152) de RF. La unidad de RF lleva a cabo la conversión descendente, el filtrado y la digitalización de las señales de RF. El trazador (140) de mapas recibe los datos digitalizados y proporciona datos preliminares para la toma de decisiones al desentrelazador (156) de canal. El turbodecodificador (158) decodifica los datos preliminares para la toma de decisiones procedentes del desentrelazador (156) de canal y suministra los datos elaborados resultantes para la toma de decisiones al procesador o a la unidad de control en el sistema de recepción, que puede comprobar la precisión de los datos usando los datos de la suma CRC de control.
La Fig. 5 es un diagrama de bloques del turbodecodificador (158) y de una porción del desentrelazador de canal cuando están configurados según una realización de la invención. Tal como se muestra, el turbodecodificador (158) está configurado para decodificar los datos procedentes del turbocodificador mostrado en la Fig. 3A.
En la realización descrita, se proporcionan dos bancos de memoria de entrelazado de canal -las RAM (160a y 160b) de desentrelazado de canal- siendo capaz cada banco de almacenar un bloque de entrelazado de canal. La entrada de direcciones de los dos bancos de memoria de entrelazado de canal es controlada por el generador (204) de direcciones de canales y el contador (206), que se aplican a las entradas de direcciones por medio de los multiplexores (208 y 210). Los multiplexores (208 y 210) están controlados por las señales I y II (la inversa lógica de I), y, por lo tanto, cuando una RAM de desentrelazado de canal es controlada por el generador (204) de direcciones del desentrelazador de canal, la otra es controlada por el contador (206). En general, cualquier funcionalidad de control puede ser proporcionada por un microprocesador que ejecute software almacenado en la memoria, y por circuitos de lógica discreta, aunque el uso de diversos tipos adicionales de sistemas de control es coherente con el uso de la invención.
Los puertos de E/S de los bancos de memoria de entrelazado de canal están acoplados a multiplexores (212 y 214). El multiplexor (212) recibe los datos preliminares para la toma de decisiones del trazador (140) de mapas a uno de los dos bancos de memoria del desentrelazador de canal. El multiplexor (214) da salida a los datos preliminares para la toma de decisiones almacenados en uno de los dos bancos de memoria del desentrelazador de canal a la suma parcial (218). Los multiplexores (212 y 214) están controlados por las señales B y IB, respectivamente, y, por lo tanto, cuando una RAM de desentrelazado de canal está recibiendo muestras del trazador (140) de mapas, la otra está dando salida a muestras a la suma parcial (218).
Durante su funcionamiento, se aplica el generador (204) de direcciones del desentrelazador de canal al banco de memoria del desentrelazador de canal que recibe una muestra procedente del trazador (140) de mapas. El generador de direcciones del desentrelazador de canal genera direcciones en orden inverso con respecto al entrelazado llevado a cabo por el entrelazador 78 de canal de la Fig. 3. Así, las muestras se leen de entrada en el banco (160) de memoria del desentrelazador de canal en orden no entrelazado (no entrelazado con respecto al entrelazador de canal).
El contador (206) se aplica al banco de memoria del desentrelazador de canal, leyendo de salida los datos preliminares para la toma de decisiones a la suma parcial (218). Dado que los datos preliminares para la toma de decisiones se leyeron en orden inverso, los datos preliminares para la toma de decisiones pueden leerse de salida en orden desentrelazado simplemente usando el contador (206). También pueden usarse diversos procedimientos adicionales de almacenamiento en memoria intermedia los datos preliminares para la toma de decisiones, incluyendo el uso de memoria de puerta dual. Además, pueden usarse otros procedimientos de generación de las direcciones del desentrelazador, incluyendo el intercambio de contador (206) y del generador (204) de direcciones del desentrelazador de canal.
Dentro del turbocodificador (158), la suma parcial (218) recibe las estimaciones de recepción (datos preliminares para la toma de decisiones) del desentrelazador de canal, al igual que datos de una probabilidad a priori (APP) procedentes de la memoria APP (170). Como es bien conocido, los valores de la APP son estimaciones de los datos transmitidos en base a la iteración de decodificación anterior. Durante la primera iteración, los valores de la APP se fijan en un estado de igual probabilidad.
Las estimaciones procedentes de la memoria del desentrelazador de canal incluyen estimaciones del símbolo sistemático, así como estimaciones de dos símbolos de paridad para cada bit de datos asociado con el bloque de entrelazado de canal. La suma parcial (218) añade el valor de la APP al símbolo sistemático para crear una "estimación sistemática corregida". La estimación sistemática corregida y las estimaciones de dos símbolos de paridad se leen de entrada en el fichero RAM (224).
Dentro del fichero RAM (224), los valores de estimación se escriben de entrada en las RAM (230a - d) de ventana (etiquetadas RAM 0 - RAM 3). En una realización de la invención, las estimaciones se escriben de entrada en orden secuencial en el espacio de direccionamiento de las RAM 0 - 3. El procedimiento comienza con la RAM 0, y prosigue hasta la RAM 3. En cualquier momento dado, solo se escribe en una RAM de ventana. Las tres RAM de ventana restantes (aquellas en las que no se escribe) se aplican a (ser leídas por) un procesador MAP (270) por medio de los multiplexores (260), según se describe con mayor detalle en lo que sigue.
En una realización de la invención, se emplea una arquitectura de ventana desplazable para llevar a cabo la decodificación MAP. En la solicitud de patente estadounidense con nº de serie 08/743.688, en tramitación como la presente, titulada "Soft Decision Output Decoder for Decoding Convolutionally Encoded Codewords", transferida al cesionario de la presente invención, se describen un sistema y un procedimiento para llevar a cabo esta decodificación en ventana desplazable.
En esa solicitud, la decodificación MAP se lleva a cabo en "ventanas" de datos. En la realización descrita de la invención, los bancos (230) de ventanas de RAM tienen un tamaño de L \times q, en el que L es el número de bits de datos transmitidos en la ventana y q es el número de bits de memoria necesarios para almacenar las estimaciones del símbolo sistemático corregido y de los dos símbolos de paridad generados por cada bit de datos. En una realización de la invención, se usan seis (6) bits para las dos estimaciones de símbolos de paridad y se usan siete (7) bits para las estimaciones del símbolo sistemático corregido (que, como se ha descrito en lo que antecede, es la suma de la estimación del símbolo sistemático de recepción y el valor de la APP) para una q de dieciocho (18) bits.
Tal como se ha hecho notar en lo que antecede, las estimaciones, incluyendo la estimación del símbolo sistemático corregido y las estimaciones del símbolo de paridad, se escriben de entrada en las RAM (230a - d) de ventana en orden secuencial. Típicamente, solo se escribe en una RAM (230) de ventana, y las tres RAM (230) de ventana restantes son leídas por el procesador MAP (270).
En un procedimiento ejemplar, en primer lugar se escriben de entrada los datos procedentes de un nuevo bloque de canales en la RAM (230a) de ventana, y después en la RAM (230b) de ventana. Así, la RAM (230a) de ventana contiene el primer conjunto L (1L) de estimaciones (en la que un conjunto comprende la estimación sistemática corregida y las dos estimaciones de paridad), y la RAM (230b) de ventana contiene el segundo conjunto L (2L) de estimaciones. Tras almacenar los primeros dos conjuntos de L estimaciones dentro de la RAM (230) de ventana, los multiplexores (260) comienzan a aplicar los datos almacenados en la RAM (230) de ventana en los calculadores de métricas de estado (SMC) dentro de un decodificador (270) de la probabilidad máxima a priori (MAP). En una realización de la invención, los tres SMC comprenden un SMC directo (FSMC) (272) y dos SMC inversos (RSMC) (274a y 274b).
A medida que siguen escribiéndose datos de entrada en el fichero RAM (224), los multiplexores (260) aplican las estimaciones almacenadas en las tres de las cuatro RAM de ventana a los tres calculadores de métricas de estado dentro del decodificador MAP (270) según la Tabla I.
TABLA I
1
Junto con la RAM concreta de ventana aplicada a la métrica de estado concreta, la Tabla I también enumera el conjunto de estimaciones contenidas en esa RAM de ventana en el momento, y, por lo tanto, las estimaciones procesadas por el correspondiente SMC.
Una ventana se procesa una vez en la dirección directa y una vez en la dirección inversa según el procesamiento MAP. Además, la mayoría de las ventanas se procesa una vez adicional en la dirección inversa para generar un estado de inicialización para el otro procesamiento de métricas de estado. En la Tabla I, las pasadas de inicialización se denotan por el texto en cursiva. En la realización descrita, cada conjunto de estimaciones es procesado tres veces, y, por lo tanto, también se accede tres veces a la RAM de ventana en la cual se almacenan. El uso de 3 RAM de ventana evita los conflictos de RAM.
Como también se muestra en la Tabla I, en cualquier momento particular al menos una RAM de ventana no está acoplada a ningún SMC y, por lo tanto, está disponible para que se escriban de entrada en ella nuevos datos. Al tener más de tres ventanas de RAM dentro del fichero RAM (224), pueden suministrarse datos continua y reiteradamente al procesador MAP en la secuencia debida, y al correcto de los tres SMC, mientras se reciben simultáneamente desde la memoria (160) de entrelazado de canal por medio de la suma parcial (218).
También debería observarse que la Tabla I ilustra el acoplamiento llevado a cabo para seis (6) ventanas de datos. Así, el tamaño del bloque ejemplar de entrelazado de canal es de 6L, y la memoria del desentrelazador de canal de
6L \times q. El tamaño del bloque de canales es 6L únicamente como ejemplo, y el tamaño del bloque de canales típico será mayor que 6L.
Con referencia aún a la Fig. 5, el decodificador MAP (270), FSMC (272) recibe las estimaciones procedentes del fichero RAM (224), tal como se describe en lo que antecede y calcula valores de métricas directas de estado en una ventana L. Los valores de métricas directas de estado se almacenan en la memoria intermedia (276) de métricas. Además, según la Tabla I, un RSMC (274) calcula los valores de métricas inversas de estado en otra ventana L. En una realización de la invención, cada calculador de métricas de estado contiene su propio calculador de métricas ramificadas. En otras realizaciones de la invención, puede usarse un calculador de métricas ramificadas compartidas una sola vez en el conjunto de métricas de estado, preferentemente en combinación con una memoria intermedia de métricas ramificadas.
En una realización de la invención, el decodificador MAP usado es un decodificador MAP-log, que opera con el logaritmo de las estimaciones para reducir la complejidad del hardware. S.S. Pietrobon, "Implementation and Performance of a Turbo/MAP Decoder", presentado en el International Journal of Satellite Communications de febrero de 1997, describe una implementación de un decodificador MAP-log que incluye calculadores de métricas y de métricas ramificadas de estado. El decodificador MAP-log de Pietrobon no usa la arquitectura de ventana desplazable descrita en la solicitud de patente "Soft Decision Output Decoder for Decoding Convolutionally Encoded Codewords", a la que se ha aludo en lo que antecede.
El último valor calculado por el primer RSMC (274) se usa para inicializar el otro RSMC (274), que lleva a cabo un cálculo de las métricas inversas de estado en la ventana L para la que ya se han calculado las métricas directas de estado y se han almacenado en la memoria intermedia (276) de métricas. A medida que se calculas las métricas inversas de estado, se envían, por medio del multiplexor (278), al calculador (280) de la relación logarítmica de la probabilidad (LLR). El calculador LLR (280) lleva a cabo un cálculo logarítmico de la probabilidad de las métricas inversas de estado recibidas del multiplexor (278) y de las métricas directas de estado almacenadas en la memoria intermedia (276) de métricas. Las estimaciones resultantes de datos procedentes del LLR (280) se pasan a la memoria APP (170).
Usando un procedimiento de cálculo de métricas desplazables, se reduce la cantidad de memoria usada para llevar a cabo el procesamiento necesario. Por ejemplo, solo se precisa que el conjunto de RAM (230) de ventana sea igual de grande que la ventana L, en vez del tamaño de todo el bloque del entrelazador. De modo similar, en cualquier momento dado solo se precisa almacenar una ventana L de métricas directas de estado dentro de la memoria intermedia (276) de métricas. Esto reduce significativamente el tamaño del circuito.
Además, el uso de tres calculadores de métricas aumenta significativamente la tasa a la que puede llevarse a cabo la decodificación. La tasa aumenta porque las funciones de inicialización y de decodificación pueden llevarse a cabo en paralelo. La inicialización aumenta la precisión del decodificador.
En realizaciones alternativas de la invención, pueden usarse dos calculadores de métricas directas de estado junto con un calculador de métricas inversas de estado. Además, pueden usarse menos calculadores de métricas de estado si están temporizados con una tasa suficientemente elevada como para llevar a cabo el doble de operaciones. Sin embargo, aumentar la velocidad del reloj aumenta el consumo de energía, lo que es poco deseable en muchos casos, incluyendo en los sistemas de comunicaciones móviles o alimentados por batería.
Además, aunque el uso del fichero RAM (224) reduce el área del circuito y los conflictos de RAM dentro del decodificador, otras realizaciones de la invención pueden optar por arquitecturas alternativas de memoria.
Tal como se ha descrito más arriba con referencia a la realización ejemplar, la decodificación se hace llevando a cabo una primera decodificación en una primera ventana en una primera dirección y, simultáneamente, llevando a cabo una segunda decodificación en una segunda ventana en una segunda dirección. Preferentemente, la segunda dirección es opuesta a la primera dirección.
Los resultados de la primera decodificación se almacenan. Los resultados de la segunda decodificación se usan para inicializar una tercera decodificación llevada a cabo en la primera ventana en la segunda dirección. Durante la tercera decodificación, los valores LLR se calculan usando los valores calculados durante la tercera decodificación y los valores almacenados.
Simultáneamente con la tercera decodificación, se lleva a cabo una cuarta decodificación de otra ventana en la primera dirección, así como una quinta decodificación en la segunda dirección en otra ventana adicional. Los resultados de la cuarta decodificación se almacenan, y la quinta decodificación se usa para generar un valor de inicialización. Estas etapas se repiten hasta que se decodifica todo el bloque de entrelazado de canal.
Diversas realizaciones alternativas de la invención pueden omitir algunas de las etapas usadas en la realización descrita. Sin embargo, el uso del conjunto de etapas descrito proporciona una decodificación rápida y precisa con un mínimo de memoria y de circuitería adicional y, por lo tanto, proporciona beneficios de rendimiento signi-
ficativos.
En una realización de la invención, la memoria APP (170) comprende dos bancos (284) de memoria APP. Los multiplexores (286) conmutan cada banco (284) de memoria entre que sea leído por la suma parcial (218) y que sea objeto de escritura por parte del LLR (280) para proporcionar una operación con doble almacenamiento intermedio. Los multiplexores (288) aplican ya sea un contador (290) o el generador (292) de direcciones del desentrelazador de código para llevar a cabo un desentrelazado y un desentrelazado inverso del turbocódigo para cada iteración de la decodificación.
Además, los bancos (284) de memoria APP pueden ser lo bastante grandes como para contener todas las estimaciones de datos para un bloque de entrelazado de canal, en el que las estimaciones son de los datos transmitidos y no de los símbolos de paridad. Pueden usarse estimaciones con una resolución de seis bits.
Todo el procedimiento de decodificación sigue adelante leyendo de salida reiteradamente las estimaciones de recepción procedentes de una memoria intermedia (160) del desentrelazador y procesando con los valores APP procedentes del banco (170) de memoria APP. Después de una serie de iteraciones, las estimaciones deberían converger en un conjunto de valores que se usan, acto seguido, para generar decisiones elaboradas. Los resultados de la decodificación se comprueban entonces usando los valores de CRC. De forma simultánea a la decodificación, la otra memoria intermedia del desentrelazador de canal recibe el siguiente bloque de estimaciones de recepción.
La Fig. 6 es un diagrama de flujo que ilustra las etapas llevadas a cabo durante la decodificación de MAP-log de un bloque de entrelazado de canal según una realización de la invención. Las etapas se exponen con referencia a los elementos mostrados en la Fig. 5.
La decodificación comienza en la etapa (300), y en la etapa (302) el índice N de ventana se pone a 0. En la etapa (304), la ventana[N] y la ventana[N+1] de las estimaciones almacenadas en la RAM de desentrelazado de canal se escriben de entrada en la RAM[N mod 3] de ventana y en la RAM[(N+1) mod 3] de ventana, respectivamente. Como se ha hecho notar más arriba, una ventana de estimaciones corresponde a los símbolos generados con respecto a una ventana L de bits de datos que se transmiten.
En la etapa (308), el FSMC procesa las estimaciones en la RAM[N mod 3] (que, en este caso, es la RAM 0), y el RSMC 0 procesa las estimaciones en la RAM[(N+1) mod 3] (que es la RAM 1). Además, la ventana[N+2] de estimaciones procedente de la RAM de desentrelazado de canal se escribe de entrada en la RAM[(N+2) mod 3] de ventana (que es la RAM 2).
En la etapa (310), se incrementa el índice N de ventana y X se pone a N mod 2, e Y se pone a (N+1) mod 2. En la etapa 312, se determina si N+1 corresponde a la última ventana de estimaciones que ha de procesarse. Si no, se lleva a cabo la etapa (314).
En la etapa (314), el FSMC procesa las estimaciones almacenadas en la RAM[N mod 3] de ventana, el RSMC X (X=0 en la primera pasada) procesa las estimaciones almacenadas en la RAM[(N+1) mod 3] de ventana, y el RSMC Y (Y = 1 en la primera pasada) procesa las estimaciones almacenadas en la RAM[(N-1) mod 3] de ventana. Además, la ventana[N+2] de estimaciones procedentes de la RAM de desentrelazado de canal se escribe de entrada en la RAM[(N+2) mod 3] de ventana.
No se muestra que un conjunto de valores APP correspondientes a la ventana[N-1] de datos se genera en la etapa (314) durante el procesamiento llevado a cabo por el RSMC 1. Al llevar a cabo la decodificación en ventanas, el tamaño de la memoria intermedia de métricas se mantiene a una longitud de L veces el número de métricas generadas para cada etapa de decodificación. Dado que se almacenan numerosas métricas para cada etapa de decodificación, la reducción en la memoria de métricas es significativa en comparación con el almacenamiento de métricas de estado para todo el bloque del desentrelazador de canal.
Además, el uso del segundo calculador de métricas inversas de estado aumenta la velocidad y la precisión. Por ejemplo, el segundo RSMC puede calcular un valor inicial para la siguiente ventana de decodificación mientras se está procesando la ventana de decodificación previa. Calcular este nuevo valor inicial elimina la necesidad de llevar a cabo nuevos cálculos de RSMC para cada etapa de decodificación, dado que el nuevo valor puede usarse para decodificar toda la ventana previa.
La etapa (314) proporciona una ilustración excelente de las eficiencias ganadas procesando las estimaciones como se ejemplifica con el fichero RAM (224). En particular, la etapa (314) ilustra la capacidad de llevar a cabo simultáneamente cuatro etapas del procesamiento de decodificación. Esto aumenta la velocidad a la que puede llevarse a cabo la codificación para una velocidad dada de reloj. En la realización descrita, las etapas incluyen el procesamiento del cálculo de métricas de estado y la escritura de entrada de muestras adicionales en el fichero RAM (224). Además, los valores APP se calculan durante la etapa (314).
Una vez que se contempla la etapa (314), el índice N de ventana se incrementa en la etapa (310). Si el valor N+1 es igual a la última ventana, entonces se interrumpe el procesamiento en cadena, y las restantes estimaciones dentro del fichero RAM (224) se procesan en las etapas (316) a (322).
En particular, en la etapa (316), el FSMC procesa la RAM[N mod 3] de ventana, el RSMC X procesa la RAM[(N+1) mod 3] de ventana, y el RSMC Y procesa la RAM[(N\pm1) mod3] de ventana. En la etapa (318), se incrementa el índice N de ventana, X se pone a N mod 2, e Y se pone a (N+1) mod 2. En la etapa (320), el FSMC procesa la RAM[N mod 3] y el RSMC Y procesa la RAM[(N-1) mod 3]. En la etapa (322), el RSMC 1 procesa la RAM[N mod 3]. En la etapa (324), se ha completado el bloque del desentrelazador de canal y termina el procedimiento.
Así, se ha descrito una técnica novedosa y mejorada para llevar a cabo una turbocodificación.

Claims (9)

1. Un sistema para llevar a cabo una decodificación de la probabilidad máxima a posteriori en ventana desplazable, en lo sucesivo denominada MAP, comprendiendo la decodificación:
a)
una RAM (160) de desentrelazado de canal para almacenar un bloque de estimaciones de símbolos;
b)
un total de S calculadores (272, 274) de métricas de estado, siendo cada calculador de métricas de estado para generar un conjunto de cálculos métricos de estado, en el que dichos calculadores (272, 274) de métricas de estado procesan datos en ventanas iguales o menores que el tamaño de una RAM de ventana;
c)
un conjunto de S+1 RAM (230A-D) de ventana, en el que S de dichas S+1 RAM de ventana proporcionan estimaciones de símbolos a dichos S calculadores de métricas de estado, y una RAM restante de ventana recibe estimaciones de símbolos desde dicha RAM (160) de desentrelazado de canal.
2. El sistema según la reivindicación 1 en el que S es igual a 3.
3. El sistema según la reivindicación 1 en el que dichas RAM (230A-D) de ventana son menores que dicha RAM (160) de desentrelazado de canal.
4. El sistema según la reivindicación 1 que comprende un decodificador, comprendiendo dicho decodificador:
una memoria de entrelazado de canal para almacenar un bloque de entrelazado de canal de estimaciones de recepción, comprendiendo dicha memoria dicha RAM (160) de desentrelazado de canal;
un procesador (270) de decodificación para decodificar las estimaciones de recepción, comprendiendo dicho procesador (270) de decodificación los S calculadores (272, 274) de métricas de estado;
una memoria intermedia de decodificación que comprende dicho conjunto de S+1 RAM (230A-D) de ventana, siendo dicha memoria intermedia de decodificación para leer de salida, simultáneamente, un primer conjunto de estimaciones de recepción y un segundo conjunto de estimaciones de recepción a dicho procesador (270) de decodificación y escribir de entrada un tercer conjunto de estimaciones de recepción procedentes de dicha memoria de entrelazado de canal.
5. El sistema según la reivindicación 4 en el que dicha memoria intermedia de decodificación es, además, para leer de salida un cuarto conjunto de estimaciones de recepción.
6. El sistema según la reivindicación 4 en el que dicho procesador (270) de decodificación es un procesador de decodificación MAP.
7. El sistema según la reivindicación 4 en el que dicho procesador (270) de decodificación comprende:
un calculador de métricas directas de estado para generar métricas de estado directas en respuesta a dicho primer conjunto de estimaciones de recepción;
un calculador de métricas inversas de estado para generar métricas de estado inversas en respuesta a dicho segundo conjunto de estimaciones de recepción.
8. El sistema según la reivindicación 5 en el que dicho procesador (270) de decodificación comprende:
un calculador de métricas directas de estado para generar métricas de estado directas en respuesta a dicho primer conjunto de estimaciones de recepción;
un primer calculador de métricas inversas de estado para generar métricas de estado inversas en respuesta a dicho segundo conjunto de estimaciones de recepción; y
un segundo calculador de métricas inversas de estado para generar métricas de estado inversas en respuesta a dicho cuarto conjunto de estimaciones de recepción.
9. Un procedimiento para llevar a cabo una decodificación de la probabilidad máxima a posteriori en ventana desplazable, en lo sucesivo denominada MAP, comprendiendo el procedimiento:
a)
almacenar un bloque de estimaciones de símbolos en una RAM (160) de desentrelazado de canal;
b)
generar un conjunto de cálculos métricos de estado en un total de S calculadores (272, 274) de métricas de estado, en el que dichos calculadores (272, 274) de métricas de estado procesan datos en ventanas iguales o menores que el tamaño de una RAM de ventana;
c)
proporcionar estimaciones de símbolos a dichos S calculadores de métricas de estado desde S de un conjunto de S+1 RAM (230A-D) de ventana, y recibir estimaciones de símbolos en una RAM restante de ventana desde dicha RAM (160) de desentrelazado de canal.
ES99942209T 1998-08-14 1999-08-13 Arquitectura de memoria para decodificador de probabilidad maxima a posteriori. Expired - Lifetime ES2347309T3 (es)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US9648998P 1998-08-14 1998-08-14
US96489P 1998-08-14
US09/259,665 US6381728B1 (en) 1998-08-14 1999-02-26 Partitioned interleaver memory for map decoder
US259665 1999-02-26
US283013 1999-03-31
US09/283,013 US6434203B1 (en) 1999-02-26 1999-03-31 Memory architecture for map decoder

Publications (1)

Publication Number Publication Date
ES2347309T3 true ES2347309T3 (es) 2010-10-27

Family

ID=27378195

Family Applications (1)

Application Number Title Priority Date Filing Date
ES99942209T Expired - Lifetime ES2347309T3 (es) 1998-08-14 1999-08-13 Arquitectura de memoria para decodificador de probabilidad maxima a posteriori.

Country Status (12)

Country Link
EP (1) EP1118158B1 (es)
JP (2) JP4405676B2 (es)
CN (1) CN1211931C (es)
AT (1) ATE476016T1 (es)
AU (1) AU766116B2 (es)
BR (1) BR9912990B1 (es)
CA (1) CA2340366C (es)
DE (1) DE69942634D1 (es)
ES (1) ES2347309T3 (es)
HK (1) HK1040842B (es)
ID (1) ID28538A (es)
WO (1) WO2000010254A1 (es)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3450788B2 (ja) * 2000-03-06 2003-09-29 松下電器産業株式会社 復号化装置および復号化処理方法
DE10012873A1 (de) 2000-03-16 2001-09-27 Infineon Technologies Ag Optimierter Turbo-Decodierer
FI109162B (fi) * 2000-06-30 2002-05-31 Nokia Corp Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi
US6662331B1 (en) * 2000-10-27 2003-12-09 Qualcomm Inc. Space-efficient turbo decoder
EP1461869A1 (en) 2001-12-28 2004-09-29 Koninklijke Philips Electronics N.V. Method for decoding data using windows of data
CN1682449A (zh) * 2002-09-18 2005-10-12 皇家飞利浦电子股份有限公司 使用数据窗口来解码数据的方法
US7702968B2 (en) * 2004-02-27 2010-04-20 Qualcomm Incorporated Efficient multi-symbol deinterleaver
CN102571107B (zh) * 2010-12-15 2014-09-17 展讯通信(上海)有限公司 LTE系统中高速并行Turbo码的解码系统及方法
US9128888B2 (en) * 2012-08-30 2015-09-08 Intel Deutschland Gmbh Method and apparatus for turbo decoder memory collision resolution
US10014026B1 (en) * 2017-06-20 2018-07-03 Seagate Technology Llc Head delay calibration and tracking in MSMR systems

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862190A (en) * 1995-12-29 1999-01-19 Motorola, Inc. Method and apparatus for decoding an encoded signal

Also Published As

Publication number Publication date
DE69942634D1 (de) 2010-09-09
ATE476016T1 (de) 2010-08-15
CN1323462A (zh) 2001-11-21
WO2000010254A1 (en) 2000-02-24
BR9912990B1 (pt) 2012-10-02
JP2002523914A (ja) 2002-07-30
EP1118158B1 (en) 2010-07-28
JP2010016861A (ja) 2010-01-21
AU766116B2 (en) 2003-10-09
HK1040842B (zh) 2005-12-30
ID28538A (id) 2001-05-31
EP1118158A1 (en) 2001-07-25
AU5563899A (en) 2000-03-06
HK1040842A1 (en) 2002-06-21
CA2340366A1 (en) 2000-02-24
JP5129216B2 (ja) 2013-01-30
CN1211931C (zh) 2005-07-20
CA2340366C (en) 2008-08-05
BR9912990A (pt) 2001-12-11
JP4405676B2 (ja) 2010-01-27

Similar Documents

Publication Publication Date Title
JP4955150B2 (ja) 高並列map復号器
US6381728B1 (en) Partitioned interleaver memory for map decoder
US6434203B1 (en) Memory architecture for map decoder
JP5129216B2 (ja) マップ・デコーダのためのメモリ・アーキテクチャ
US6859906B2 (en) System and method employing a modular decoder for decoding turbo and turbo-like codes in a communications network
US6799295B2 (en) High speed turbo codes decoder for 3G using pipelined SISO log-map decoders architecture
JP2003518866A (ja) 連結チャネル符号化法および装置
US7020827B2 (en) Cascade map decoder and method
JP2004080508A (ja) 誤り訂正符号の復号方法、そのプログラム及びその装置
US20090094505A1 (en) High speed turbo codes decoder for 3g using pipelined siso log-map decoders architecture
KR100731238B1 (ko) 연결 채널 코딩용 방법 및 장치
MXPA01001657A (es) Arquitectura de memoria para un descodificador de probabilidad maxima a posteriori
RU2236085C2 (ru) Архитектура памяти для декодера максимальной апостериорной вероятности
MXPA01001656A (es) Memoria de intercalador dividido para descodificador de probabilidad maxima a posteriori