ES2347309T3 - Arquitectura de memoria para decodificador de probabilidad maxima a posteriori. - Google Patents
Arquitectura de memoria para decodificador de probabilidad maxima a posteriori. Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3972—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6566—Implementations 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)
- Memory System Of A Hierarchy Structure (AREA)
- Navigation (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.
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
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.
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.
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.
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.
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.
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.
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.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US283013 | 1994-07-29 | ||
US9648998P | 1998-08-14 | 1998-08-14 | |
US96489P | 1998-08-14 | ||
US259665 | 1999-02-26 | ||
US09/259,665 US6381728B1 (en) | 1998-08-14 | 1999-02-26 | Partitioned interleaver memory for map decoder |
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)
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 |
KR20040069344A (ko) * | 2001-12-28 | 2004-08-05 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 데이터 디코딩 방법, 수신기 및 컴퓨터 프로그램 제품 |
AU2003259479A1 (en) * | 2002-09-18 | 2004-04-08 | Koninklijke Philips Electronics N.V. | Method for decoding data using windows of data |
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)
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 |
-
1999
- 1999-08-13 CN CNB998121525A patent/CN1211931C/zh not_active Expired - Lifetime
- 1999-08-13 ES ES99942209T patent/ES2347309T3/es not_active Expired - Lifetime
- 1999-08-13 WO PCT/US1999/018550 patent/WO2000010254A1/en active IP Right Grant
- 1999-08-13 BR BRPI9912990-6A patent/BR9912990B1/pt not_active IP Right Cessation
- 1999-08-13 JP JP2000565607A patent/JP4405676B2/ja not_active Expired - Lifetime
- 1999-08-13 DE DE69942634T patent/DE69942634D1/de not_active Expired - Lifetime
- 1999-08-13 CA CA002340366A patent/CA2340366C/en not_active Expired - Lifetime
- 1999-08-13 AT AT99942209T patent/ATE476016T1/de not_active IP Right Cessation
- 1999-08-13 EP EP99942209A patent/EP1118158B1/en not_active Expired - Lifetime
- 1999-08-13 AU AU55638/99A patent/AU766116B2/en not_active Ceased
- 1999-08-13 ID IDW20010597A patent/ID28538A/id unknown
-
2002
- 2002-03-22 HK HK02102210.8A patent/HK1040842B/zh not_active IP Right Cessation
-
2009
- 2009-09-10 JP JP2009209398A patent/JP5129216B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
BR9912990A (pt) | 2001-12-11 |
HK1040842B (zh) | 2005-12-30 |
JP2002523914A (ja) | 2002-07-30 |
JP4405676B2 (ja) | 2010-01-27 |
CA2340366C (en) | 2008-08-05 |
CN1323462A (zh) | 2001-11-21 |
AU5563899A (en) | 2000-03-06 |
BR9912990B1 (pt) | 2012-10-02 |
EP1118158A1 (en) | 2001-07-25 |
EP1118158B1 (en) | 2010-07-28 |
ATE476016T1 (de) | 2010-08-15 |
HK1040842A1 (en) | 2002-06-21 |
JP5129216B2 (ja) | 2013-01-30 |
ID28538A (id) | 2001-05-31 |
DE69942634D1 (de) | 2010-09-09 |
AU766116B2 (en) | 2003-10-09 |
CA2340366A1 (en) | 2000-02-24 |
WO2000010254A1 (en) | 2000-02-24 |
CN1211931C (zh) | 2005-07-20 |
JP2010016861A (ja) | 2010-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4955150B2 (ja) | 高並列map復号器 | |
US6381728B1 (en) | Partitioned interleaver memory for map decoder | |
US6434203B1 (en) | Memory architecture for map decoder | |
US6799295B2 (en) | High speed turbo codes decoder for 3G using pipelined SISO log-map decoders architecture | |
JP5129216B2 (ja) | マップ・デコーダのためのメモリ・アーキテクチャ | |
US6859906B2 (en) | System and method employing a modular decoder for decoding turbo and turbo-like codes in a communications network | |
JP2003518866A (ja) | 連結チャネル符号化法および装置 | |
US7020827B2 (en) | Cascade map decoder and method | |
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 |