ES2301492T3 - Decodificacion turbo con decodificador viterbi de salida suave. - Google Patents

Decodificacion turbo con decodificador viterbi de salida suave. Download PDF

Info

Publication number
ES2301492T3
ES2301492T3 ES00966576T ES00966576T ES2301492T3 ES 2301492 T3 ES2301492 T3 ES 2301492T3 ES 00966576 T ES00966576 T ES 00966576T ES 00966576 T ES00966576 T ES 00966576T ES 2301492 T3 ES2301492 T3 ES 2301492T3
Authority
ES
Spain
Prior art keywords
path
llr
value
values
status
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
ES00966576T
Other languages
English (en)
Inventor
Min-Goo Kim
Beong-Jo Kim
Young-Hwan Lee
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Application granted granted Critical
Publication of ES2301492T3 publication Critical patent/ES2301492T3/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0054Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
    • 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/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • 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/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4138Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
    • H03M13/4146Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" 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/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4184Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using register-exchange
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Error Detection And Correction (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

Un codificador turbo que comprende: un circuito de cálculo de métrica de rama (101), en adelante denominado BMC, para calcular 2k métricas de rama, en adelante denominadas BMs, en respuesta a k valores de entrada cada vez, donde k es el mismo número que el de memoria de un codificador; un circuito de sumar-comparar-seleccionar (103), en adelante denominado ACS, para recibir las BMs y las métricas de trayecto previas, en adelante denominadas PMs, y generar 2k relaciones de probabilidad logarítmica, en adelante denominadas LLRs, cada LLR incluyendo un correspondiente bit de selección de trama y una información de fiabilidad; un buscador (107) de estado de máxima probabilidad, en adelante denominada ML, para recibir de forma secuencial series de bits selección de trayecto desde el ACS, buscar un valor de estado de ML según los bits de selección de trayecto, con valores iniciales predeterminados dentro de un período de reloj DS, y entregar uno de los valores iniciales predeterminados como el valor de estado de ML; un retardo (109) para recibir las LLRs desde el ACS en un período de reloj, y retardar las LLRs durante el período de reloj DS; un dispositivo de actualización de LLR (111) para recibir las LLRs retardadas desde el retardo (109), y actualizar las LLRs retardadas mediante utilizar los correspondientes bits de selección de trayecto y la información de fiabilidad comprendida en las LLRs retardadas dentro de un período de reloj DL; y un selector (113) para seleccionar uno de los valores de LLR actualizados de acuerdo con el valor de estado de ML.

Description

Decodificación turbo con decodificador Viterbi de salida suave.
La presente invención se refiere en general a un decodificador y a un método de decodificación en un sistema de comunicación móvil, y en concreto a un componente decodificador y un método de este, para descifrar datos modulados con un código turbo que utiliza códigos de convolución sistemáticos recursivos (RSCs).
Los códigos de canal son utilizados ampliamente para comunicaciones fiables de datos, en sistemas de comunicación móvil tales como sistemas por satélite, W-CDMA (Wideband-CDMA, CDMA de banda ancha), y CDMA 2000. Los códigos de canal incluyen códigos de convolución y códigos turbo. En general, una señal codificada en convolución se descodifica utilizando un algoritmo de Viterbi basado en decodificación de máxima probabilidad (ML). El algoritmo de Viterbi acepta un valor suave en su entrada, y produce un valor de decisión dura. Sin embargo, en muchos casos se necesita decodificadores de salida suave para mejorar el rendimiento a través de decodificación concatenada. En este contexto, se ha propuesto muchos escenarios para conseguir la salida suave, o la fiabilidad de los símbolos descodificados. Hay dos métodos bien conocidos de decodificación de entrada suave/salida suave (SISO, soft-input/soft-output), a saber el algoritmo de decodificación MAP (Maximum A-posteriori Probability, máxima probabilidad a posteriori), y el SOVA (Soft-Output Viterbi Algorithm, algoritmo de Viterbi de salida suave). El algoritmo MAP está considerado el mejor en términos de tasa de bits erróneos (BER, bit error rate), puesto que produce un valor de decisión dura junto con la probabilidad a posteriori, pero al precio de la complejidad en la implementación. J. Hagenauer sugirió en 1989 el esquema SOVA, para el que se generaliza el algoritmo de Viterbi. El SOVA entrega un valor de decisión dura, e información de fiabilidad que es una salida suave asociada con el valor de decisión dura. Sin embargo, Hagenauer no proporcionó la configuración ni el funcionamiento reales del esquema SOVA.
En comparación con los algoritmos de Viterbi convencionales, SOVA genera un valor de decisión dura e información de fiabilidad sobre la decisión dura. Es decir, la salida suave proporciona la fiabilidad de un símbolo descodificado, así como la polaridad del símbolo descodificado, -1 o +1, para la subsiguiente decodificación. Para conseguir tal información de fiabilidad, SOVA calcula métricas de trayecto (PMs) para un trayecto superviviente (SP) y un trayecto de competencia (CP), y produce el valor absoluto de la diferencia entre la PM del SP, y la PM del CP, como información de fiabilidad. La información de fiabilidad \delta, está dada por
1
Las PMs se calculan de la misma forma que en el algoritmo de Viterbi general.
Para describir SOVA en detalle, se asume una cuadrícula en la que hay S = 2^{k-1} (k es una longitud límite) estados, y entrar dos ramas en cada estado.
Dado un retardo suficiente W, en el algoritmo de Viterbi general todos los trayectos supervivientes se unen en un trayecto. W se utiliza además como el tamaño de una ventana de celda de estado. En otras palabras, una vez determinado que el tamaño W de la ventana de celda de estado es suficiente, todos los trayectos supervivientes confluyen en un trayecto. Este se denomina un trayecto de máxima probabilidad (ML, maximum likelihood). El algoritmo de Viterbi selecciona el mínimo de m PMs calculadas mediante la ecuación (2), para elegir un estado S_{k} sobre el trayecto, en un tiempo k dado.
2
donde x_{jn}^{(m)} es un n-ésimo bit de un símbolo de código de N bits, en una rama sobre un m-ésimo trayecto en el momento j, y_{jn}^{(m)} es un símbolo de código recibido en la posición del símbolo de código x_{jn}^{(m)}, y E_{s}/N_{0} es una relación de señal frente a ruido. La probabilidad de seleccionar el trayecto m-ésimo utilizando P_{m}, es decir la probabilidad de seleccionar el trayecto 1 o el trayecto 2 en la ecuación (2), está dada por
3
Si un trayecto con un PM menor es 1 en la ecuación (3), el algoritmo de Viterbi selecciona el trayecto 1. Aquí, la probabilidad de seleccionar un trayecto erróneo se calcula mediante
4
donde \Delta = P_{2} - P_{1} > 0. Sean respectivamente los bits de información sobre el trayecto 1 y el trayecto 2, en el momento j, U_{j}^{(1)} y U_{j}^{(2)}. Entonces el algoritmo de Viterbi genera h errores en todas las posiciones (e0, e1, e2, ..., 2n-1) con U_{j}^{(1)} \neq U_{j}^{(2)}. Si los dos trayectos se encuentran después de la longitud \delta_{m} (\delta_{m} \leq W_{m}), existen h bits de información diferentes y (\delta_{m} - h) bits de información idénticos para la longitud de \delta_{m}. En el caso de que haya memorizada una previa probabilidad de decisión errónea P_{j} relacionada con un trayecto 1, esta puede ser actualizada mediante
5
asumiendo que ha sido seleccionado tal trayecto 1.
En la ecuación (5), P_{j}(1 - P_{sk}) es la probabilidad de seleccionar un trayecto correcto, y (1 - P_{j})P_{sk} es la probabilidad de seleccionar un trayecto erróneo. La ecuación (5) representa la actualización de la probabilidad, mediante sumar la probabilidad de selección del trayecto correcto a la probabilidad de selección del trayecto erróneo.
Tal operación de actualización iterativa, se implementa con una relación de probabilidad logarítmica (LLR) expresada como
6
donde \Delta es P_{1} - P_{2}, y \alpha es una constante.
En conclusión, en caso de que los bits de información estimados sean diferentes sobre el trayecto superviviente (trayecto 1) y el trayecto de competencia (trayecto 2), es decir U_{j}^{(1)} \neq U_{j}^{(2)}, la operación de actualización SOVA aplica solo cuando la LLR en el momento j es menor que la LLR previa.
La figura 1 ilustra la actualización de la LLR de ejemplo, sobre una cuadrícula con 4 estados. De forma más específica, yendo desde el momento t1 al momento t2, los bits de información son idénticos sobre el trayecto superviviente (trayecto 1) y el trayecto de competencia (trayecto 2). La actualización en la LLR no aplica a esta transición de estado. Por otra parte, los bits de información para los dos trayectos son diferentes yendo desde t2 a t3, y desde t3 a t4, para los que la LLR es actualizada. Para t3 y t4, la LLR se compara con la LLR previa, y se actualiza si la LLR es menor que la LLR previa.
El esquema SOVA anterior puede implementarse mediante un SOVA de seguimiento hacia atrás, o de cadena inversa (en adelante aludido como TBSOVA). Un trayecto ML es trazado hacia atrás para el tamaño de ventana W, en cada decodificación de TBSOVA. El retardo de decodificación resultante provoca problemas de implementación en el caso de aplicaciones de alta velocidad, por ejemplo en un terminal móvil.
El documento "A 40 MB/S SOFT-OUTPUT VITERBI DECODER", de Joeressen O. J. et al., del IEEE JOURNAL OF SOLID-STATE CIRCUITS, IEEE INC., Nueva York, EE. UU., vol. 30, número 7, 1 de junio de 1995 (1995 - 07 - 01), páginas 812-818, ISSN: 0018-9200, se refiere a un decodificador de Viterbi de salida suave a 40 MB/s. Este describe una implementación VLSI de alta velocidad, de un algoritmo Viterbi de salida suave para un código de convolución de 16 estados. Además, muestra que los esquemas de transmisión que utilizan decodificación de salida suave, pueden considerarse prácticos incluso a un rendimiento global elevado. La información de fiabilidad correspondiente a diferencias de métrica de trayecto que son generadas por una unidad de sumar-comparar-seleccionar, es retardada con un retardo que es equivalente al retardo de una unidad de memoria de superviviente, que determina un estado de máxima probabilidad y la secuencia superviviente final. A partir de las relaciones de probabilidad logarítmica retardadas, un selector selecciona la relación de probabilidad logarítmica correspondiente al estado determinado de máxima probabilidad, que después es actualizado utilizando los bits relevantes generados por una unidad de comparación de trayecto. El documento revela además que el decodificador puede ser implementado siguiendo el enfoque de intercambio de registro.
El documento "A low complexity soft-output Viterbi decoder architecture", de Berrou C. et al, en PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC), Ginebra, Suiza, vol. 3, 23 de mayo de 1993 (1993-05-23), páginas 737-740, ISBN: 0-7803-0950-2, se refiere a medios para adaptar la arquitectura clásica de decodificador Viterbi, al objeto de hacer a este capaz de proporcionar decisión suave. Se describe una arquitectura que conduce a un circuito en tiempo real, cuyo tamaño es aproximadamente el doble del tamaño del decodificador Viterbi clásico. Adicionalmente se examina una aplicación sobre la decodificación del código de convolución concatenado, con el decodificador de salida suave propuesto como decodificador interno.
Por lo tanto, es un objetivo de la presente invención proporcionar un aparato y un método mejorados, para decodificar datos turbo codificados mediante de RESOVA (SOVA de intercambio de registro, Register Exchange SOVA), en un sistema de comunicación móvil.
Este objetivo se consigue mediante la materia objeto de la presente invención, y en concreto mediante la materia objeto de las reivindicaciones independientes.
Mediante la materia objeto de las reivindicaciones dependientes se define realizaciones preferidas.
Un aspecto de la presente invención, es proporcionar un aparato y un método de decodificación RESOVA para decodificar datos turbo codificados y datos codificados en convolución, en un sistema de comunicación móvil.
Es un objetivo más de la presente invención, proporcionar un aparato y un método de decodificación RESOVA, que reduzcan el retardo por decodificación y los requisitos de tamaño de memoria en un receptor, para recibir datos turbo codificados o codificados por convolución, en un sistema de comunicación móvil.
Es otro objetivo más de la presente invención, proporcionar un aparato y un método de decodificación RESOVA en un sistema de comunicación móvil, donde una ventana de búsqueda de estado de ML (ventana de celda de estado de ML) entregue un valor de estado de ML en el momento (k - Ds) respecto a cualquier momento arbitrario k, y la ventana actualización LLR actualice una LLR seleccionada en función del valor de estado de ML, aproximadamente en el momento (k - Ds - D_{L}), en un componente decodificador.
Otro objetivo más de la presente invención, es proporcionar un aparato y un método decodificador, en un sistema de comunicación móvil, en el que un componente decodificador que tenga una ventana de búsqueda de estado de ML y una ventana actualización de LLR, recibe un código virtual para incrementar la precisión de la búsqueda de estado de ML en el límite de una trama, y lleva a cabo además la búsqueda de estado de ML sobre el límite de la trama, mediante el tamaño de la ventana de búsqueda de estado de ML.
Los anteriores aspectos pueden ser conseguidos por medio de proporcionar un decodificador y un método de decodificación, para decodificar datos recibidos desde un transmisor. Los datos son codificados con un RSC en un sistema de comunicación móvil. En el decodificador, un circuito de cálculo de métrica de rama (BMC) calcula valores de métrica de rama (BMs) asociados con una pluralidad de símbolos de entrada. Un circuito de suma-comparación-selección (ACS) recibe las BMs y los valores de métrica de trayecto previos (PMs), y genera una pluralidad de bit de selección de trayecto y datos LLR, incluyendo la pluralidad de bits de selección de trayecto y la información de fiabilidad en el primer instante temporal. Un buscador de estado de máxima probabilidad (ML) tiene una pluralidad de celdas en una matriz con filas y columnas, conectadas entre sí de acuerdo con una cuadrícula del decodificador, teniendo las celdas en cada fila un tiempo de proceso Ds, para entregar el mismo valor de las celdas en la última columna, como un valor de estado de ML que representa un trayecto ML, en respuesta a los selectores de trayecto. Un retardo retarda los datos LLR recibidos desde el ACS, en el tiempo Ds. Un circuito de actualización LLR tiene una pluralidad de elementos de procesamiento (PEs), en una matriz con filas y columnas conectadas de acuerdo con la cuadrícula del codificador, los PEs en cada fila teniendo un tiempo de proceso D_{L}, para generar valores LLR actualizados a partir de los PEs en un instante (primer instante temporal - aproximadamente DS + D_{L}), en respuesta a los datos LLR retardados, que son recibidos desde el retardo. Un selector selecciona los valores LLR actualizados, en función del valor de estado de ML.
Los anteriores y otros objetivos, características y ventajas de la presente invención, se harán más evidentes a partir de la siguiente descripción detallada, cuando se considere junto con los dibujos anexos, en los cuales:
la figura 1 es un diagrama de cuadrícula, que será aludido para describir un método de actualización LLR que se aplica en la presente invención;
la figura 2 es un diagrama de bloques, de un decodificador RESOVA acorde con una realización de la presente invención;
la figura 3 ilustra un método de sincronización de una celda LLR, a una celda de estado en el decodificador RESOVA mostrado en la figura 2;
la figura 4 es un diagrama de cuadrícula, que ilustra un proceso de decodificación en una ventana de celda de estado y en una ventana de celda LLR, en el decodificador RESOVA mostrado en la figura 2;
la figura 5 es un diagrama de flujo, que ilustra el funcionamiento completo del decodificador RESOVA mostrado en la figura 2;
la figura 6 ilustra la estructura de un BMC mostrado en la figura 2;
la figura 7 es un diagrama de bloques de un ACS mostrado en la figura 2;
la figura 8 es un diagrama de bloques, de un componente ACS mostrado en la figura 7;
la figura 9 ilustra la estructura de una memoria PM (PMM) mostrada en la figura 2, en el caso en que hay ocho estados en la cuadrícula, de acuerdo con la presente invención;
la figura 10A ilustra la estructura de un buscador de estado de ML mostrado en la figura 2;
la figura 10B ilustra la estructura de una celda de memoria mostrada en la figura 10A;
la figura 11A ilustra un dispositivo de actualización LLR mostrado en la figura 2;
la figura 11B ilustra la estructura de un elemento de procesamiento (PE) mostrado en la figura 11A;
la figura 12A ilustra la estructura de un retardo mostrado en la figura 2;
la figura 12B ilustra la estructura de una celda de memoria mostrada en la figura 12A;
la figura 13 es un diagrama de cuadrícula que ilustra un proceso de decodificación en una ventana de búsqueda de estado de ML y en una ventana actualización LLR, en el caso en que se recibe símbolos virtuales en un decodificador RESOVA, de acuerdo con otra realización de la presente invención; y
la figura 14 es un diagrama de bloques del decodificador RESOVA, con una entrada de símbolos de código virtuales de acuerdo con la segunda realización de la presente invención.
En lo que sigue se describe realizaciones preferidas de la presente invención, con referencia a los dibujos anexos. En la siguiente descripción no se describe en detalle funciones o construcciones bien conocidas, puesto que se obscurecería la invención con detalles innecesarios.
Se proporcionará una descripción detallada de la configuración y el funcionamiento de un decodificador basado en RESOVA, que exhibe el mejor rendimiento entre los esquemas de decodificación propuestos hasta el momento.
La figura 2 es un diagrama de bloques de un decodificador RESOVA acorde con una realización de la presente invención. En referencia a la figura 2, un decodificador RESOVA 100 funciona bajo el control de un controlador 117, y es activado mediante una señal de reloj recibida mediante un generador de reloj 118. El generador de reloj 118 genera la señal de reloj bajo el control del controlador 117, y la proporciona al decodificador RESOVA 100 acorde con la presente invención. Debe entenderse que el decodificador RESOVA 100 no será descrito junto con la operación de control del controlador 117 y la señal de reloj generada desde el generador de reloj 118.
Asumimos un codificador turbo 1/3 que tiene 3 memorias (es decir, k = 4) en esta invención. Tras la recepción de los símbolos de código desmodulados r0(k), r1(k) y r2(k), un calculador de métrica de acción BMC 101 calcula métricas de rama (BMs) para todos los trayectos posibles, entre los estados en el instante de tiempo actual (k) y los estados en el instante de tiempo previo. En la implementación real, una vez que se conoce el estado actual se detecta fácilmente los estados previos, sobre una cuadrícula. En el caso de un código de convolución o de un turbo código, se produce dos BMs para cada estado al que han transitado los estados previos. Con ocho estados dados, en cualquier instante de tiempo entran dos ramas en cada estado y se calcula 16 BMs para todos los posibles trayectos. Las BMs son un conjunto de medidas de correlación, es decir las correlaciones de todas las posibles palabras de código c0, c1 y c2 memorizadas en el BMC, para los símbolos de código recibidos r0, r1 y r2. Las palabras de código que han sido ya almacenadas en el BMC, son todas las posibles palabras de código generadas a partir de un polinomio generador codificador g(x), sobre la cuadrícula. Por ejemplo, para la velocidad de código R = 1/3, una BM para cada estado puede expresarse como la ecuación (7) con respecto a ocho combinaciones de c0, c1, c2 \in {0, 1}. Si bien puede generarse dos BMs para cada estado, puede generarse ocho palabras de código mediante combinar c0, c1 y c2. Por consiguiente, de hecho se requiere ocho BMCs 101. Se proporciona ocho BMCs a un ACS 103, simultáneamente.
7
donde la línea superior representa el cálculo de la BM con el uso de los símbolos de código c0, c1 y c2 y los símbolos de código recibidos r0, r1 y r2, y la línea inferior representa una ecuación generalizada para la ecuación superior. Los signos de código c0, c1 y c2 son aquellos que el receptor recibió de un transmisor. Los signos de código recibidos (r0, r1, r2) tienen un valor suave. En el caso de un código turbo, r0 tiene ocho bits y cada uno de r1 y r2 tiene seis bits, de acuerdo con la presente invención. El r0 tiene 8 bits debido a que la información extrínseca generada durante la decodificación, se suma a un símbolo de código sistemático. En una decodificación inicial la información extrínseca es de 0 bits, y por lo tanto el código sistemático de 6 bits se recibe como r0. La figura 6 ilustra el BMC 101, que implementa la ecuación (7) para un estado. Los multiplicadores 121 multiplican los símbolos de código recibidos r0, r1 y r2, por los símbolos de código c0, c1 y c2 que almacena el enlace, y entrega M0, M1 y M2 a un sumador 123. Así, la salida del sumador 123 tiene también ocho bits, excepto por cuanto que r0 es de seis bits en una decodificación inicial.
Cuando la estructura del BMC 101 mostrado en la figura 6 se implementa realmente en equipamiento físico, se omite las multiplicaciones y se obtiene M0, M1 y M2 mediante invertir bits de símbolo de entrada, dependiendo de la palabra de código (c0, c1, c2). La lista 1 muestra un funcionamiento de BBC en un sistema binario de 6 bits. En referencia la tabla 1, si la palabra de código es 0, no hay cambio en los bits del símbolo de entrada durante la operación del BMC. Si la palabra de código es 1, cada bit de símbolo de entrada es invertido, y después se añade 000001.
TABLA 1
8
El ACS se describirá en detalle con referencia a las figuras 7 y 8.
La figura 7 es un diagrama de bloques del ACS 103, en el caso de una cuadrícula con 8 estados, de acuerdo con la realización de la presente invención. En la figura 7, el ACS 103 tiene ocho ACSs componentes 125. Esto implica que la suma, la comparación y la selección se producen simultáneamente para ocho estados. El ACS 103 recibe los ocho BMs (BM0 a BM7), teniendo cada BM b bits procedentes del BMC 101, y las métricas de trayecto (PMs) controladas por ACS previas PM0 a PM7, procedentes de una memoria de métrica de trayecto (PMM) 105. De acuerdo con la relación de estado sobre la cuadrícula, los componentes ACSs (#0 a #7) reciben dos de entre las BMs (BM0 a BM7), para cada estado respectivamente. La métrica para la rama superior que desciende al estado correspondiente se denomina BM_{U}, y la métrica para la rama inferior que desciende al estado correspondiente se denomina BM_{L}. Los componentes ACSs (#0 a #7) reciben también PM_{U} y PM_{L}, correspondientes a BM_{U} y BM_{L} de acuerdo con el estado de conexión de la cuadrícula, respectivamente. La conexión entre cada componente ACS 125 y BM_{U} y BM_{L}, PM_{U} y PM_{L}, se determina por la relación de estado sobre la cuadrícula, como se indica arriba.
Para calcular PMs para todos los posibles estados en el instante de tiempo presente, se selecciona una o dos hipótesis (trayecto superviviente y trayecto de competencia) para cada estado. Se calcula una métrica de trayecto siguiente (NPM) utilizando las BM_{U} y BM_{L} y PM_{U} y PM_{L} dadas, de los dos estados, en el instante temporal previo, que pueden transitar al estado específico, mediante
90
La figura 8 es un diagrama de bloques detallado, del componente ACS 125. En referencia la figura 8, el componente ACS 125 tiene dos sumadores 126 y 127, un comparador 129, un selector 121 y un calculador de información de viabilidad 122. El primer sumador 126 suma BM_{U} y PM_{U}, y el segundo sumador 127 suma BM_{L} y PM_{L}. El comparador 129 compara las salidas de los sumadores primero y segundo 126 y 127, y entrega 1 bit de selección de trayecto que indica el trayecto hacia arriba o hacia abajo, al calculador de información de fiabilidad 122 y al selector 121. El calculador de información de fiabilidad 122 calcula la información de fiabilidad \delta, a partir de las salidas de los sumadores primero y segundo 126 y 127. El calculador de información de fiabilidad 122 entrega una LLR, mediante sumar la información de fiabilidad \delta con el bit de selección de trayecto recibido a partir el comparador 129. La información de fiabilidad \delta está dada por
9
donde \alpha es una constante, 1/2. De acuerdo con la presente invención la información de fiabilidad \delta se calcula, no con el trayecto superviviente y el trayecto de competencia, sino con las PMs superior e inferior, PM_{U} y PM_{L}.
Como se ha descrito arriba, el calculador de información de fiabilidad 122 entrega datos de fiabilidad (LLR) que incluyen el bit de selección de trayecto, mas \delta. Los datos de fiabilidad (LLR) constan de 1 bit de selección de trayecto en el MSB (bit más significativo, Most Significant Bit) y (n-1) bits \delta comenzando a partir del LSB (bit menos significativo, Least Significant Bit). El bit de selección de trayecto que representa 1 bit de signo en el MSB de la LLR o un bit de información estimada, puede ser utilizado solo cuando un codificador utiliza el RSC. Esto es porque, en el caso de un código de convolución típico, la información de entrada sobre dos trayectos que alcanzan un estado, tiene el mismo valor. Por ejemplo, si la información de entrada sobre uno de los trayectos es 0 la información de entrada sobre el otro trayecto es también 0. Por contraste, en el caso del código de convolución iterativo recursivo, un bit de información 0 conduce a una transición de estado, a un estado específico mediante uno o dos trayectos que entran en el estado, y un bit de información 1 conduce a una transición de estado, a ese estado, mediante el otro trayecto. Aquí, debe definirse selección de trayecto ascendente/descendente (bajo). Por ejemplo, el bit de selección de trayecto 1 o 0 puede definirse como rama superior y rama inferior, o viceversa. El selector 121 recibe las PMs procedentes de los sumadores primero y segundo 126 y 127, y el bit de selección de trayecto procedente del comparador 129, y selecciona una de las PMs como un valor de estado. En conclusión, el ACS 103 entrega ocho LLRs y ocho valores de estado para el siguiente instante temporal.
La PMM 105 almacena los valores PM recibidos desde el ACS 103. La figura 9 ilustra la estructura de una PMM con ocho estados, cada estado expresado en 8 bits. La PMM 105 almacena valores PM de 8 bits asociados con los ocho estados, que se calculan en el instante de tiempo actual, y proporciona al ACS 103 los valores PM almacenados como valores PM previos, en el siguiente instante de tiempo. Más específicamente, cada una de las PMMs componentes, PMM0 a PMM7, es un registro de 8 bits. El componente PMM PM0, almacena los 8 bits para el valor PM, PM0, recibido desde el ACS 103. De este modo, las PMMs componentes PM1 a PM7 almacenan los valores PM de 8 bits, PM1 a PM7, recibidos respectivamente desde el ACS 103.
Un buscador de estado de ML 107 tiene valores de estado que etiquetan los estados dados, recibe series de bits de selección de trayecto en paralelo desde el ACS 103, y busca un valor de estado de ML entre los valores de estado, mediante un método de intercambio de registro.
La figura 10A es un diagrama de bloques del buscador de estado de ML 107 acorde con una realización de la presente invención. La configuración del funcionamiento del buscador de estado de ML, basada en el esquema de intercambio de registro, se revela en la Aplicación de Corea Número 1998 - 62 713, puede ser una referencia de esta invención. El buscador de estado de ML 107 incluye una pluralidad de celdas en una matriz de filas y columnas, y una pluralidad de líneas de selección de trayecto. Cada línea de selección está conectada con una correspondiente celda de fila para recibir el bit de selección de trayecto. La pluralidad de celdas en la matriz, están conectadas de forma que cada celda recibe los valores de estado procedentes de la celda previa, de acuerdo con la cuadrícula predeterminada por un polinomio de generación del codificador, excepto para la primera columna de celdas. Las celdas en la primera columna reciben dos valores de entrada, valor de entrada superior y valor de entrada inferior, como se muestra en la figura 10a. Una celda en cada columna almacena uno de los dos valores de estado de entrada, en base al correspondiente bit de selección de trayecto recibido, y suministra el valor de estado almacenado, a dos celdas en correspondientes filas en la siguiente columna, en el siguiente instante de tiempo de acuerdo con la relación de estado de la cuadrícula. Mediante llevar a cabo el procedimiento anterior secuencialmente, durante un tiempo predeterminado, los valores de estado en las celdas de una columna concreta, convergen el mismo valor en cierto punto temporal. El valor de convergencia es un valor de estado de ML. Al final, el buscador ML 107 entrega el valor de convergencia como estado de ML. El buscador ML 107 toma el tiempo de reloj Ds (por ejemplo 4 * k, donde k = número de memoria decodificador + 1), para buscar el estado de ML.
Por ejemplo con ocho estados, el buscador de estado de ML 107 recibe 0 y 1 en la celda de la primera fila y la primera columna, 2 y 3 en la celda de la segunda fila y la primera columna, 4 y 5 en la celda de la tercera fila y la primera columna, y 6 y 7 en la celda de la cuarta fila y la primera columna. Las entradas de las celdas de las filas quinta a octava y la primera columna, son las mismas que en las filas primera a cuarta de la primera columna. Cada celda en la primera columna selecciona uno de los valores de estado, en base a 1 bit de selección de trayecto recibido de acuerdo con una señal de reloj procedente de una correspondiente línea de selección, y suministra el valor de estado seleccionado a las celdas de la siguiente columna, de acuerdo con la relación de estado de la cuadrícula. Realizando de forma iterativa el procedimiento durante un tiempo predeterminado (Ds), los valores de estado las celdas de la última columna entregan el mismo valor de convergencia, uno de los valores de estado 0 a 7. Por ejemplo si un valor de convergencia es de 5, las celdas en la última columna tienen el mismo valor de estado 5. Aquí 5 se determina como un valor de estado de ML. El buscador de estado de ML 107 tiene un retardo temporal Ds para recibir valores de estado inicial en la primera columna, hace que converjan a un valor de estado, y entrega el valor de convergencia procedente de la columna situada más a la derecha.
La figura 10B ilustra la estructura de una celda en el buscador de estado de ML 107. La celda tiene un selector y una memoria de registro. El selector tiene dos puertos de entrada para recibir valores de estado desde celdas previas o entradas iniciales, y un puerto de selección para recibir 1 bit de selección de trayecto. Es decir, la celda selecciona uno de los dos valores de estado de entrada en base al bit de selección de trayecto, y almacena el valor de estado seleccionado en la memoria de registro. La memoria entrega el valor de estado mediante un reloj de entrada.
En referencia de nuevo a la figura 2, un retardo 109 recibe las LLRs de n bits, el bit de selección de trayecto de 1 bit y la información de fiabilidad \delta de n-1 bits para cada estado procedente del ACS 103, y retarda las entradas mediante el retardo asociado al buscador de estado de ML 107, Ds. La figura 12A ilustra la estructura del retardo 109, que tiene celdas de memoria que forman ocho filas y el mismo número de estados. El retardo 109 retarda la LLR recibida con el retardo temporal Ds, para entregar la LLR recibida. La figura 12B ilustra la estructura de una celda de memoria componente, actuando como tampón. Las celdas de memoria reciben la LLR y la almacenan durante un retardo de tiempo predeterminado, y entregan la LLR a la siguiente celda de memoria mediante una señal de reloj. Un actualizador de LLR 112 recibe LLRs retardadas en Ds procedentes del retardo 109, compara las LLRs con las LLRs previas, y actualiza las LLRs si son menores que las LLRs previas.
La figura 11A ilustra la estructura del dispositivo de actualización LLR 111, que tiene elementos de procesamiento (PEs) que forman columnas y filas predeterminadas que tienen el mismo número de estados, y tienen una pluralidad de valores de entrada iniciales, 0.d_max o 1.d_max. El d_max se determina mediante un nivel de cuantificación máximo (por ejemplo 127, 7 bits). Por lo tanto, los valores de entrada iniciales se expresan mediante 8 bits, en los que el MSB es 0 o 1, y los otros bits son todos 1. El dispositivo de actualización LLR 111 toma el periodo de reloj D_{L} (por ejemplo, 16 * k, donde k = número de memoria decodificador (3) + 1 = 4). En referencia a la figura 11A, el actualizador LLR 111, siendo una modificación de celdas RESOVA, tiene PEs en una matriz con filas y columnas y una pluralidad de líneas de selección. Las líneas de selección reciben bits de selección de trayecto y \delta, y están conectadas en paralelo a PEs en correspondientes filas. El actualizador LLR 111 actualiza, no un valor de decisión dura de 1 bit, sino un valor suave de (n)-bits. Aquí, n-1 bits representan \delta y el otro bit representa 1 bit de selección de trayecto. Además, cada PE incluye lógica para actualizar la LLR previa. El dispositivo de actualización de LLR 112 recibe valores LLR retardados Ds (o Ds - 1) mediante el reloj, procedentes del retardo 109, tras la generación de cada señal de reloj procedente del generador de reloj 118. Estas LLRs han sido ya calculadas a través de la operación del ACS para los ocho estados, antes de que hayan transcurrido los ciclos de reloj Ds o (Ds - 1). Cada PE tiene dos puertos de entrada excepto para la línea de selección. Cada PE en la primera columna recibe el bit información 0 a través del puerto de entrada superior (o inferior), y 1 bit de información 1 a través del otro puerto de entrada inferior (o superior), como se muestra en la figura 11a. Cada uno de los PEs en las otras columnas está conectado a dos PEs en la columna previa, de acuerdo con la estructura de la cuadrícula, para recibir los valores de los PEs previos.
La configuración y funcionamiento del PE serán descritos en detalle en referencia la figura 11B. Primero debe observarse que una LLR está definida como una \delta de n-1 bits y un selector de trayecto de 1 bit. En referencia la figura 11B, un PE recibe las LLRs de n-bits a través de un puerto de entrada superior y de un puerto de entrada inferior, desde los PEs previos. La excepción es que cada PE en la primera columna recibe (n) el valor de entrada inicial. Un primer multiplicador 141 recibe 2 bits de selección de trayecto (bits de selección primero y segundo, respectivamente) de las dos LLRs procedentes de los PEs, en la columna previa conectada al PE de acuerdo con la cuadrícula, y selecciona uno de los bits de selección de trayecto en base a 1 bit de selección de trayecto (aludido como tercer bit de selección de trayecto) recibido desde la correspondiente línea de selección. Un segundo multiplicador 143 recibe dos valores \delta de n-1 bits de los dos LLRs, a través de sus dos puertos de entrada, y selecciona uno de los valores \delta en base al tercer bit de selección de trayecto. Un comparador 147 compara los valores \delta de n-1 bits recibidos desde el segundo multiplicador 143, con un valor \delta de una LLR recibida simultáneamente a través de la correspondiente línea de selección. Sea "a" el valor \delta recibido desde el segundo multiplicador 143 y sea "b" el valor \delta recibido simultáneamente en el PE a través de la línea de selección. Si a es mayor que b, el comparador 147 entrega una señal alta 1 (o una señal baja) y si b es mayor que a, entrega una señal baja 0 (o una señal alta). Una puerta lógica XOR 145 lleva a cabo una operación de "o exclusiva" sobre los 2 bits de selección de trayecto recibidos desde las PEs previas. Las salidas del comparador 117 de la puerta XOR 145 son de 1 bit cada una. Una puerta AND 149 lleva a cabo la operación AND sobre las salidas del sumador 145 y el comparador 147. Un tercer multiplexor 141 recibe el valor \delta de n-1 bits desde el segundo multiplexor 143 y el valor \delta de n-1 bits desde la línea de selección, y selecciona uno de los valores \delta basándose en la salida de la puerta AND 149 como señal de selección. Las memorias 146 y 148 almacenan la salida del primer multiplicador 141 y el tercer multiplicador 151, respectivamente. La salida del bit de selección de trayecto procedente de la memoria 148 y la salida del valor \delta procedente de la memoria 146, forman una LLR de n-bits actualizada.
En referencia de nuevo a la figura 2, un selector LLR 113 recibe ocho LLRs actualizadas procedentes del actualizador 111 de LLR, y selecciona una de las LLRs en función del valor de estado de ML recibido desde el buscador de estado de ML 107. Por ejemplo, el selector de LLR 113 recibe el valor de convergencia 5 desde el buscador de estados 107, y entrega la quinta LLR actualizada. Una memoria tampón de salida 115 almacena secuencialmente en memoria intermedia, las LLRs seleccionadas por el selector 113. En la presente invención se utiliza dos ventanas de desplazamiento, para usar la memoria de forma eficiente y reducir el retardo del tiempo de decodificación. Una de estas es una ventana Ds de búsqueda de estado de ML, activada por el buscador de estado de ML 107 para buscar un valor de estado de ML, y la otra es una ventana D_{L} de actualización LLR, manejada por el dispositivo de actualización LLR 111 para entregar una LLR óptima. La ventana de búsqueda de estado de ML busca el valor de estado de ML después de un tiempo de retardo, aproximadamente Ds, y la ventana actualización de la LLR selecciona una LLR actualizada correspondiente al valor de estado de ML, entre una pluralidad de LLRs actualizadas, y entrega la LLR seleccionada después de un tiempo de retardo, aproximadamente DS + D_{L}.
La figura 3 ilustra la relación operativa entre la ventana de búsqueda de estado de ML y la ventana de actualización LLR, simultáneamente, y la figura 4 ilustra los momentos en los que se entrega un valor de estado de ML y un valor de LLR, en las operaciones de la ventana de búsqueda de estado de ML y de la ventana de actualización LLR. Digamos que la operación ACS se produce en el momento K. Entonces, el valor de estado de ML es entregado después de un retardo temporal (K - Ds + 1), como se muestra la figura 3. Se selecciona una LLR óptima en el momento en que el valor de estado de ML es entregado y actualizado, y entregado después de un retardo temporal de (D_{L} + 1) desde el momento (K - Ds + 1). Puesto que la LLR actualizada es entregada después de un retardo temporal (D_{L} + Ds - 2) desde el momento K, se entrega una LLR final después de un retardo temporal (K - D_{L} - Ds + 2) desde el momento K. La figura 5 es un diagrama de flujo que ilustra el funcionamiento del decodificador RESOVA acorde con la presente invención. En referencia a la figura 5, en ausencia de una señal de reloj procedente del sistema, el retardo 109, la PMM 105, el buscador de estado de ML 107 y el dispositivo de actualización de LLR 111 inicializan sus celdas o PEs mediante ponerlos a cero en la etapa 501. Tras la recepción de la señal de reloj, el BMC 101 recibe datos de entrada desde la memoria tampón de entrada (no mostrada) en la etapa 503. En la etapa 505, el BMC 101 calcula BMs para los trayectos entre los estados en el instante temporal previo, y los estados en el instante temporal actual, utilizando los datos de entrada y las palabras de código que el decodificador conoce, y suministra las BMs al ACS 103. El ACS obtiene los PMs ascendente (puerta de entrada superior) y descendente (puerta de entrada inferior) asociados con cada estado, a partir de las BMs, y calcula la información de fiabilidad mediante la ecuación (9) y las LLRs en la etapa 510.
Para describir la etapa 510 de forma más específica, el ACS 103 calcula LLRs y bits de selección de trayecto en la etapa 506, calcula PMs utilizando las BMs en la etapa 507, y normaliza las PMs en la etapa 508. La normalización PM es el proceso de restar un valor predeterminado respecto de una PM, si la PM es mayor que un valor predeterminado, para impedir el desbordamiento de los valores PM. Para detalles véase la Aplicación de Corea Número 1998 - 062 724. El ACS 103 suministra las LLRs al retardo 109 en la etapa 511, y los bits de selección de trayecto al buscador de estado de ML 107 en la etapa 513. Los bits de selección de trayecto son información estimada mediante decisión dura, para los respectivos estados. El retardo 109 retarda las LLRs en Ds (retardo para la búsqueda de estado de ML) y suministra las LLRs retardadas al dispositivo de actualización de la LLR 111, y el buscador de estado de ML 107 busca un valor de estado de ML en base a los bits de selección de trayecto. En la etapa 515, el dispositivo de actualización de la LLR 112 recibe las LLRs retardadas, y actualiza las LLRs mediante un método similar al mostrado en la cuadrícula de la figura 1. El selector de LLR 113 recibe las LLRs actualizadas, selecciona una de las LLRs en base al valor de estado de ML recibido desde el buscador de estado de ML 107, y en la etapa 517 almacena en memoria intermedia la LLR seleccionada, en la memoria tampón de salida 115.
El controlador 117 incrementa el número de CLK el 1 en la etapa 519, y determina si el CLK es mayor que la longitud de trama en la etapa 521. Si el CLK es mayor que la longitud de trama el controlador 117 finaliza la operación de decodificación, y si es menor que la longitud de trama el controlador 117 lleva a cabo de forma iterativa las etapas 513 hasta 519.
En la anterior realización de la presente invención, cuando la ventana de búsqueda de estado de ML alcanza un límite de trama, la operación basada en la trama finaliza mediante terminación por cero. En este caso, se entrega solo un estado de ML en el lado de salida de la ventana de búsqueda de estado de ML, y no los otros estados ML dentro de la ventana de búsqueda de estado de ML.
Por lo tanto, un decodificador RESOVA acorde con otra realización de la presente invención, está configurado de forma que puede entregarse todos los estados ML dentro de la ventana de búsqueda de estado de ML.
La figura 13 ilustra la decodificación en la ventana de búsqueda de estado de ML y la ventana de actualización de LLR, en el decodificador RESOVA con entradas de símbolo virtual, y la figura 14 es un diagrama de bloques del decodificador RESOVA para decodificación en el caso de entradas de código virtual, de acuerdo con la segunda realización de la presente invención.
En referencia la figura 13, cuando la ventana de búsqueda de estado de ML busca un límite de trama, se inserta símbolos cero virtuales durante el período de tiempo Ds que comienza en el instante de tiempo posterior al instante en que la ventana de búsqueda de estado de ML alcanza el límite de trama. Así, el lado de salida de la ventana de búsqueda de estado de ML y la ventana de actualización LLR, alcanzan el límite de trama.
El funcionamiento de la figura 13 se implementa en el decodificador RESOVA mostrado en la figura 14, y no se describirá los componentes iguales a los mostrados en la figura 2.
En la figura 14, el controlador 117 detecta un límite de trama y entrega una señal de límite de trama que indica si se ha alcanzado, o no, el límite de trama. Un selector 1401 recibe un símbolo de código de entrada y un símbolo de cero virtual, y selecciona uno de estos en función de la señal de límite de trama recibida desde el controlador 117. Específicamente, el selector 1401 selecciona el símbolo de código de entrada en una localización diferente respecto del límite de trama, y el símbolo de cero virtual en el límite de trama, para el momento de reloj Ds. Un demultiplexor (DEMUX) 403 demultiplexa una secuencia de símbolos recibidos desde el selector 1401, a r0, r1 y r2, y los suministra al BMC 100 para el límite de trama. Se proporciona símbolos de cero virtual al decodificador 100 durante el período de tiempo Ds, para hacer que el lado de salida de la ventana de búsqueda de estado de ML alcance el límite de trama, después del límite de trama.
Con el uso de la ventana de búsqueda de estado de ML y la ventana de actualización LLR basados en RESOVA, el decodificador RESOVA acorde con la presente invención reduce el retardo de decodificación mediante buscar un estado de ML sin retardo temporal en comparación con un TBSOVA, y disminuye el tamaño de memoria mediante evitar la necesidad de la memoria en la búsqueda de estado de ML. Además, una operación de búsqueda de estado de ML se lleva a cabo mediante el tamaño de la ventana de búsqueda de estado de ML en un límite de trama, sin terminación cero en el límite de trama. Por tanto puede conseguirse una decodificación más precisa.
\vskip1.000000\baselineskip
Referencias citadas en la descripción La lista de referencias citadas por el solicitante es solo para comodidad del lector. No forma parte del documento de Patente Europea. Incluso aunque se ha tomado especial cuidado en recopilar las referencias, no puede descartarse errores u omisiones y la EPO rechaza toda responsabilidad a este respecto. Documentos de patente citados en la descripción
\bullet KR 199862713 [0034]
\bullet KR 1998062724 [0042]
Bibliografía no de patentes, citada en la descripción
\bulletJOERESSEN O. J. et al., A 40 MB/S SOFT-OUTPUT VITERBI DECODERIEEE JOURNAL OF SOLID-STATE CIRCUITS, 1995, vol. 30, 70018-9200812-818 [0012]
\bulletBERROU C. et al., A low complexity soft-output Viterbi decoder architecture, PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC, 1993, vol. 3, 0-7803-0950-2737-740 [0013]

Claims (7)

1. Un codificador turbo que comprende:
un circuito de cálculo de métrica de rama (101), en adelante denominado BMC, para calcular 2^{k} métricas de rama, en adelante denominadas BMs, en respuesta a k valores de entrada cada vez, donde k es el mismo número que el de memoria de un codificador;
un circuito de sumar-comparar-seleccionar (103), en adelante denominado ACS, para recibir las BMs y las métricas de trayecto previas, en adelante denominadas PMs, y generar 2^{k} relaciones de probabilidad logarítmica, en adelante denominadas LLRs, cada LLR incluyendo un correspondiente bit de selección de trama y una información de fiabilidad;
un buscador (107) de estado de máxima probabilidad, en adelante denominada ML, para recibir de forma secuencial series de bits selección de trayecto desde el ACS, buscar un valor de estado de ML según los bits de selección de trayecto, con valores iniciales predeterminados dentro de un período de reloj D_{S}, y entregar uno de los valores iniciales predeterminados como el valor de estado de ML;
un retardo (109) para recibir las LLRs desde el ACS en un período de reloj, y retardar las LLRs durante el período de reloj D_{S};
un dispositivo de actualización de LLR (111) para recibir las LLRs retardadas desde el retardo (109), y actualizar las LLRs retardadas mediante utilizar los correspondientes bits de selección de trayecto y la información de fiabilidad comprendida en las LLRs retardadas dentro de un período de reloj D_{L}; y
un selector (113) para seleccionar uno de los valores de LLR actualizados de acuerdo con el valor de estado de ML.
2. El decodificador de la reivindicación 1, en el que se obtiene una métrica de trayecto actual mediante sumar la métrica de rama y la métrica de trayecto previo.
3. El decodificador de la reivindicación 1, en el que el ACS comprende:
un primer sumador (126) para recibir una primera BM y una primera PM de acuerdo con una cuadrícula, que se determina mediante un polinomio de generación del codificador, sumar las primeras BM y PM recibidas, y entregar un primer valor sumado;
un segundo sumador (127) para recibir una segunda BM y una segunda PM de acuerdo con la cuadrícula, sumar las segundas BM y PM recibidas, y entregar un segundo valor sumado;
un comparador (129) para recibir los valores sumados primero y segundo, comparar los valores recibidos, y generar el bit de selección de trayecto en base a la comparación,
un calculador de información de fiabilidad (122) para recibir los valores sumados primero y segundo y el bit de selección de trayecto, y calcular la información de fiabilidad; y
un selector (121) para recibir los valores sumados primero y segundo y el bit de selección de trayecto, y seleccionar uno de los valores sumados como una siguiente métrica de trayecto, en adelante denominada NPM.
4. El decodificador de la reivindicación 3, en el que la información de fiabilidad \delta es proporcional a una diferencia entre el primer valor sumado y el segundo valor sumado.
5. El decodificador de la reivindicación 3, en el que la información de fiabilidad \delta se calcula mediante
10
donde PM_{U} es el primer valor sumado, PM_{L} es el segundo valor sumado y \alpha > 0.
6. Un método de decodificación turbo, que comprende las etapas de:
calcular 2^{k} métricas de rama, en adelante denominadas BMs, en respuesta a k valores de entrada cada vez, donde k es el mismo número que el de memoria de un codificador;
\newpage
generar 2^{k} relaciones de probabilidad logarítmica, en adelante denominadas LLRs, cada LLR incluyendo un correspondiente bit de selección de trayecto e información de fiabilidad, mediante llevar a cabo una operación de sumar-comparar-seleccionar sobre las BMs y las métricas de trayecto previas, en adelante denominadas PMs;
buscar un valor de estado de máxima probabilidad, en adelante denominada ML, de acuerdo con los bits de selección de trayecto, con valores iniciales predeterminados dentro de un período de reloj D_{S}, y entregar uno de los valores iniciales predeterminados como el valor de estado de ML;
retardar las LLRs para el periodo de reloj D_{S};
actualizar las LLRs retardadas utilizando la correspondiente información de fiabilidad y los bits de selección de trayecto comprendidos en las LLRs retardadas dentro de un período de reloj D_{L}; y
seleccionar un valor LLR actualizado en base al valor de estado de ML, entre las LLRs actualizadas.
7. El método de decodificación de la reivindicación 6, en el que la etapa de generación comprende las etapas de:
calcular métricas de trayecto actuales, mediante sumar una métrica de trayecto previo y una BM calculada de acuerdo con una cuadrícula que se determina mediante un polinomio de generación del codificador;
generar el bit de selección de trayecto utilizando las métricas de trayecto actual;
calcular la información de fiabilidad utilizando las métricas de trayecto actual; y
generar los valores de LLR mediante incluir los correspondientes bits de selección de trayecto y la información de fiabilidad.
ES00966576T 1999-10-05 2000-10-05 Decodificacion turbo con decodificador viterbi de salida suave. Expired - Lifetime ES2301492T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR99-042924 1999-10-05
KR19990042924 1999-10-05
KR99-043118 1999-10-06
KR19990043118 1999-10-06

Publications (1)

Publication Number Publication Date
ES2301492T3 true ES2301492T3 (es) 2008-07-01

Family

ID=26636175

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00966576T Expired - Lifetime ES2301492T3 (es) 1999-10-05 2000-10-05 Decodificacion turbo con decodificador viterbi de salida suave.

Country Status (14)

Country Link
US (1) US6697443B1 (es)
EP (1) EP1135877B1 (es)
JP (1) JP3640924B2 (es)
KR (1) KR100350502B1 (es)
CN (1) CN1168237C (es)
AT (1) ATE385629T1 (es)
AU (1) AU762877B2 (es)
BR (1) BR0007197A (es)
CA (1) CA2352206C (es)
DE (1) DE60037963T2 (es)
DK (1) DK1135877T3 (es)
ES (1) ES2301492T3 (es)
IL (2) IL143337A0 (es)
WO (1) WO2001026257A1 (es)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020110206A1 (en) * 1998-11-12 2002-08-15 Neal Becker Combined interference cancellation with FEC decoding for high spectral efficiency satellite communications
US7127664B2 (en) * 2000-09-18 2006-10-24 Lucent Technologies Inc. Reconfigurable architecture for decoding telecommunications signals
US7020214B2 (en) * 2000-09-18 2006-03-28 Lucent Technologies Inc. Method and apparatus for path metric processing in telecommunications systems
US6865710B2 (en) 2000-09-18 2005-03-08 Lucent Technologies Inc. Butterfly processor for telecommunications
EP1220455A1 (en) * 2000-12-29 2002-07-03 Motorola, Inc. Viterbi decoder, method and unit therefor
US20030067998A1 (en) * 2001-07-19 2003-04-10 Matsushita Electric Industrial Co., Ltd. Method for evaluating the quality of read signal and apparatus for reading information
KR100487183B1 (ko) * 2002-07-19 2005-05-03 삼성전자주식회사 터보 부호의 복호 장치 및 방법
US7173985B1 (en) * 2002-08-05 2007-02-06 Altera Corporation Method and apparatus for implementing a Viterbi decoder
KR100515472B1 (ko) * 2002-10-15 2005-09-16 브이케이 주식회사 채널 부호화, 복호화 방법 및 이를 수행하는 다중 안테나무선통신 시스템
US7797618B2 (en) * 2004-12-30 2010-09-14 Freescale Semiconductor, Inc. Parallel decoder for ultrawide bandwidth receiver
JP4432781B2 (ja) * 2005-01-17 2010-03-17 株式会社日立製作所 誤り訂正復号器
US7571369B2 (en) * 2005-02-17 2009-08-04 Samsung Electronics Co., Ltd. Turbo decoder architecture for use in software-defined radio systems
US7603613B2 (en) * 2005-02-17 2009-10-13 Samsung Electronics Co., Ltd. Viterbi decoder architecture for use in software-defined radio systems
KR100800853B1 (ko) 2005-06-09 2008-02-04 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
US20070006058A1 (en) * 2005-06-30 2007-01-04 Seagate Technology Llc Path metric computation unit for use in a data detector
US7764741B2 (en) * 2005-07-28 2010-07-27 Broadcom Corporation Modulation-type discrimination in a wireless communication network
US7860194B2 (en) * 2005-11-11 2010-12-28 Samsung Electronics Co., Ltd. Method and apparatus for normalizing input metric to a channel decoder in a wireless communication system
US20070268988A1 (en) * 2006-05-19 2007-11-22 Navini Networks, Inc. Method and system for optimal receive diversity combining
US7925964B2 (en) * 2006-12-22 2011-04-12 Intel Corporation High-throughput memory-efficient BI-SOVA decoder architecture
US7716564B2 (en) * 2007-09-04 2010-05-11 Broadcom Corporation Register exchange network for radix-4 SOVA (Soft-Output Viterbi Algorithm)
US8238475B2 (en) 2007-10-30 2012-08-07 Qualcomm Incorporated Methods and systems for PDCCH blind decoding in mobile communications
US20090132894A1 (en) * 2007-11-19 2009-05-21 Seagate Technology Llc Soft Output Bit Threshold Error Correction
US8127216B2 (en) 2007-11-19 2012-02-28 Seagate Technology Llc Reduced state soft output processing
US8401115B2 (en) * 2008-03-11 2013-03-19 Xilinx, Inc. Detector using limited symbol candidate generation for MIMO communication systems
US8413031B2 (en) * 2008-12-16 2013-04-02 Lsi Corporation Methods, apparatus, and systems for updating loglikelihood ratio information in an nT implementation of a Viterbi decoder
EP2442451A1 (en) * 2009-08-18 2012-04-18 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Soft output Viterbi algorithm method and decoder
TWI394378B (zh) * 2010-05-17 2013-04-21 Novatek Microelectronics Corp 維特比解碼器及寫入與讀取方法
CN103701475B (zh) * 2013-12-24 2017-01-25 北京邮电大学 移动通信系统中8比特运算字长Turbo码的译码方法
TWI592937B (zh) * 2016-07-05 2017-07-21 大心電子(英屬維京群島)股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
CN108491346A (zh) * 2018-03-23 2018-09-04 江苏沁恒股份有限公司 一种bmc解码方法
KR20220051750A (ko) * 2020-10-19 2022-04-26 삼성전자주식회사 장치간 물리적 인터페이스의 트레이닝을 위한 장치 및 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4583078A (en) * 1984-11-13 1986-04-15 Communications Satellite Corporation Serial Viterbi decoder
DE3910739C3 (de) * 1989-04-03 1996-11-21 Deutsche Forsch Luft Raumfahrt Verfahren zum Verallgemeinern des Viterbi-Algorithmus und Einrichtungen zur Durchführung des Verfahrens
US5295142A (en) * 1989-07-18 1994-03-15 Sony Corporation Viterbi decoder
KR950005860B1 (ko) * 1990-12-22 1995-05-31 삼성전자주식회사 바이터비 복호방법
JPH05335972A (ja) * 1992-05-27 1993-12-17 Nec Corp ビタビ復号器
US5341387A (en) * 1992-08-27 1994-08-23 Quantum Corporation Viterbi detector having adjustable detection thresholds for PRML class IV sampling data detection
JPH08307283A (ja) * 1995-03-09 1996-11-22 Oki Electric Ind Co Ltd 最尤系列推定器及び最尤系列推定方法
JP2907090B2 (ja) 1996-01-12 1999-06-21 日本電気株式会社 信頼度生成装置およびその方法
US5995562A (en) * 1995-10-25 1999-11-30 Nec Corporation Maximum-likelihood decoding
GB2309867A (en) * 1996-01-30 1997-08-06 Sony Corp Reliability data in decoding apparatus
JPH09232973A (ja) 1996-02-28 1997-09-05 Sony Corp ビタビ復号器
JPH09232972A (ja) 1996-02-28 1997-09-05 Sony Corp ビタビ復号器
US6212664B1 (en) * 1998-04-15 2001-04-03 Texas Instruments Incorporated Method and system for estimating an input data sequence based on an output data sequence and hard disk drive incorporating same
JPH11355150A (ja) * 1998-06-09 1999-12-24 Sony Corp パンクチャドビタビ復号方法
US6236692B1 (en) * 1998-07-09 2001-05-22 Texas Instruments Incorporated Read channel for increasing density in removable disk storage devices
JP3196835B2 (ja) * 1998-07-17 2001-08-06 日本電気株式会社 ビタビ復号法及びビタビ復号器
US6405342B1 (en) * 1999-09-10 2002-06-11 Western Digital Technologies, Inc. Disk drive employing a multiple-input sequence detector responsive to reliability metrics to improve a retry operation

Also Published As

Publication number Publication date
AU7690900A (en) 2001-05-10
ATE385629T1 (de) 2008-02-15
EP1135877B1 (en) 2008-02-06
CN1327653A (zh) 2001-12-19
BR0007197A (pt) 2001-09-04
EP1135877A1 (en) 2001-09-26
DK1135877T3 (da) 2008-06-09
KR20010050871A (ko) 2001-06-25
IL143337A (en) 2008-08-07
CA2352206C (en) 2005-12-06
DE60037963D1 (de) 2008-03-20
CA2352206A1 (en) 2001-04-12
IL143337A0 (en) 2002-04-21
US6697443B1 (en) 2004-02-24
WO2001026257A1 (en) 2001-04-12
KR100350502B1 (ko) 2002-08-28
CN1168237C (zh) 2004-09-22
JP2003511895A (ja) 2003-03-25
JP3640924B2 (ja) 2005-04-20
EP1135877A4 (en) 2004-04-07
AU762877B2 (en) 2003-07-10
DE60037963T2 (de) 2009-01-29

Similar Documents

Publication Publication Date Title
ES2301492T3 (es) Decodificacion turbo con decodificador viterbi de salida suave.
JP3288683B2 (ja) 変形された逆追跡方式の2段軟出力ビタビアルゴリズム復号化器
US20050193308A1 (en) Turbo decoder and turbo interleaver
EP1130789A2 (en) Soft-decision decoding of convolutionally encoded codeword
US20050149838A1 (en) Unified viterbi/turbo decoder for mobile communication systems
US20050091566A1 (en) Method of blindly detecting a transport format of an incident convolutional encoded signal, and corresponding convolutional code decoder
JP2000341140A (ja) 復号方法及び復号装置
JP5116677B2 (ja) 軟出力復号器、反復復号装置、及び軟判定値算出方法
JP3259725B2 (ja) ビタビ復号装置
JP2003152556A (ja) 誤り訂正符号復号装置
RU2247471C2 (ru) Компонентный декодер и способ декодирования в системе мобильной связи
EP1542370A1 (en) Method and system for branch label calculation in a Viterbi decoder
Nanthini et al. An Efficient Low Power Convolutional Coding with Viterbi Decoding using FSM
JP2000252840A (ja) 誤り訂正復号器
Chatzigeorgiou et al. Performance analysis and design of punctured turbo codes
Ang et al. SOVA based LTE turbo decoders
Bourichi A low power parallel sequential decoder for convolutional codes
Boutillon et al. VLSI Architectures for the Forward-Backward algorithm
US20100185925A1 (en) Differential Locally Updating Viterbi Decoder
JP2003258650A (ja) 最尤復号器
JP4525658B2 (ja) 誤り訂正符号復号装置
JP2000341137A (ja) 復号装置
KR100612648B1 (ko) Ctc 복호화 장치 및 방법
Han et al. Power and area efficient turbo decoder implementation for mobile wireless systems
Haratsch et al. A radix-4 soft-output Viterbi architecture