ES2301492T3 - Decodificacion turbo con decodificador viterbi de salida suave. - Google Patents
Decodificacion turbo con decodificador viterbi de salida suave. Download PDFInfo
- 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
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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0054—Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
-
- 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/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4107—Sequence 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
-
- 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/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4138—Sequence 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/4146—Sequence 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
-
- 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/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4161—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
- H03M13/4184—Sequence 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
-
- 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/6577—Representation or format of variables, register sizes or word-lengths and quantization
- H03M13/6583—Normalization other than scaling, e.g. by subtraction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
-
- 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
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
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.
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
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
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
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
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.
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.
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
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
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
\bullet KR 199862713 [0034]
\bullet KR 1998062724 [0042]
\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
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.
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)
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)
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 |
-
2000
- 2000-10-05 AU AU76909/00A patent/AU762877B2/en not_active Ceased
- 2000-10-05 IL IL14333700A patent/IL143337A0/xx active IP Right Grant
- 2000-10-05 JP JP2001529104A patent/JP3640924B2/ja not_active Expired - Fee Related
- 2000-10-05 EP EP00966576A patent/EP1135877B1/en not_active Expired - Lifetime
- 2000-10-05 CA CA002352206A patent/CA2352206C/en not_active Expired - Fee Related
- 2000-10-05 DE DE60037963T patent/DE60037963T2/de not_active Expired - Lifetime
- 2000-10-05 BR BR0007197-8A patent/BR0007197A/pt not_active IP Right Cessation
- 2000-10-05 AT AT00966576T patent/ATE385629T1/de not_active IP Right Cessation
- 2000-10-05 CN CNB008021856A patent/CN1168237C/zh not_active Expired - Fee Related
- 2000-10-05 US US09/679,925 patent/US6697443B1/en not_active Expired - Lifetime
- 2000-10-05 ES ES00966576T patent/ES2301492T3/es not_active Expired - Lifetime
- 2000-10-05 WO PCT/KR2000/001109 patent/WO2001026257A1/en active IP Right Grant
- 2000-10-05 DK DK00966576T patent/DK1135877T3/da active
- 2000-10-05 KR KR1020000058527A patent/KR100350502B1/ko not_active IP Right Cessation
-
2001
- 2001-05-23 IL IL143337A patent/IL143337A/en not_active IP Right Cessation
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 |