[go: up one dir, main page]

ES2561913B2 - Systems and methods for turbo iterative decoding of low error rate and low complexity - Google Patents

Systems and methods for turbo iterative decoding of low error rate and low complexity Download PDF

Info

Publication number
ES2561913B2
ES2561913B2 ES201400891A ES201400891A ES2561913B2 ES 2561913 B2 ES2561913 B2 ES 2561913B2 ES 201400891 A ES201400891 A ES 201400891A ES 201400891 A ES201400891 A ES 201400891A ES 2561913 B2 ES2561913 B2 ES 2561913B2
Authority
ES
Spain
Prior art keywords
parallel
extrinsic
metrics
decoders
iterations
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.)
Active
Application number
ES201400891A
Other languages
Spanish (es)
Other versions
ES2561913A1 (en
Inventor
Francisco Javier MARTÍN VEGA
Francisco BLÁNQUEZ CASADO
Francisco Javier LÓPEZ MARTÍNEZ
Gerardo GÓMEZ PAREDES
José Tomás ENTRAMBASAGUAS MUÑOZ
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.)
Universidad de Malaga
Original Assignee
Universidad de Malaga
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 Universidad de Malaga filed Critical Universidad de Malaga
Priority to ES201400891A priority Critical patent/ES2561913B2/en
Priority to PCT/ES2015/000161 priority patent/WO2016071546A1/en
Publication of ES2561913A1 publication Critical patent/ES2561913A1/en
Application granted granted Critical
Publication of ES2561913B2 publication Critical patent/ES2561913B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

Sistemas y métodos para turbo decodificación iterativa de baja tasa de error y baja complejidad. La invención se refiere a un método de turbo decodificación iterativa de baja tasa de error y baja complejidad caracterizado porque comprende (a) el almacenamiento de las métricas LLR en un banco de memoria de entrada que posteriormente entrega, bien el bloque correspondiente a un decodificador no paralelo que trabaja hacia delante (fw) y hacia atrás (bw), bien los sub-bloques correspondientes a dos o más decodificadores paralelos fw/bw; (b) el cálculo de métricas a-posteriori por el o los decodificadores; (c) el cálculo por una o más unidades de cálculo extrínsecas de la información extrínseca; y (d) la comparación de las medidas LLR a-posteriori fw y bw a lo largo de distintas iteraciones. La invención refiere diferentes implementaciones del método así como sistemas que implementan dicho método y sus variantes.Systems and methods for turbo iterative decoding of low error rate and low complexity. The invention relates to a method of turbo iterative decoding of low error rate and low complexity characterized in that it comprises (a) the storage of LLR metrics in an input memory bank that subsequently delivers, either the block corresponding to a non-decoder parallel that works forward (fw) and backward (bw), either the sub-blocks corresponding to two or more parallel decoders fw / bw; (b) the calculation of a-posteriori metrics by the decoder (s); (c) the calculation by one or more extrinsic calculation units of the extrinsic information; and (d) the comparison of the LLR a-posteriori fw and bw measurements over different iterations. The invention relates to different implementations of the method as well as systems that implement said method and its variants.

Description

ES 2 561913 Al ES 2 561913 Al

Sistemas y Métodos Dara turbo decodificación iterativa de baja tasa de error y baja Systems and Methods Dara turbo iterative decoding of low error rate and low

complejidad complexity

SECTOR TÉCNICO TECHNICAL SECTOR

La invención se refiere a comunicaciones digitales, en particular a sistemas y métodos asociados The invention relates to digital communications, in particular associated systems and methods.

S S
a la decodificación iterativa basada en el algoritmo SOYA (Sofl Oulput Viterbi Algorithm) que to iterative decoding based on the SOYA (Sofl Oulput Viterbi Algorithm) algorithm that

pueden ser aplicados a estándares de comunicaciones móviles como 3GPP (3rd Genera/ion can be applied to mobile communications standards such as 3GPP (3rd Generate / ion

Partneship Projecl), LTE (Long Term Evolution) y UMTS (Universal Mobile Partneship Projecl), LTE (Long Term Evolution) and UMTS (Universal Mobile

Te/ecommunications System). Más particulannente, la invención se refiere a sistemas y métodos Te / ecommunications System). More particularly, the invention relates to systems and methods

para turbo decodificación iterativa paralela para los que no se requiere el solapamiento entre for turbo parallel iterative decoding for which overlap is not required between

10 10
sub-bloques adyacentes, reduciendo así la latencia de decodificación de foona drástica. Adjacent sub-blocks, thereby reducing the latency of drastic foon decoding.

ESTADO DE LA TÉCNICA STATE OF THE TECHNIQUE

Los turbo códigos han sido ampliamente usados en estándares de comunicaciones móviles The turbo codes have been widely used in mobile communications standards

modernos debido a su enorme capacidad correctiva que permite transmisiones de datos fiables modern due to its enormous corrective capacity that allows reliable data transmissions

cercanas a la capacidad ergódica del sistema. El turbo codificador consiste en la concatenación close to the ergodic capacity of the system. The turbo encoder consists of concatenation

15 fifteen
en paralelo de dos codificadores RSC (Recursive Systematic Convolutional) separados por un in parallel of two RSC (Recursive Systematic Convolutional) encoders separated by a

entrelazador que aporta aleatoriedad al código. La decodificación consiste en un proceso interleaver that brings randomness to the code. Decoding consists of a process

iterativo en el que se genera (en cada iteración) la información extrínseca, que es usada como iterative in which the extrinsic information is generated (in each iteration), which is used as

información a-priori en la siguiente iteración. Esto permite usar un criterio MAP (Maximum Aa-priori information in the next iteration. This allows to use a MAP criterion (Maximum A

Posteriori) que minimiza la tasa de error o BER (Bit Error Rate). El turbo decodificador clásico Subsequent) that minimizes the error rate or BER (Bit Error Rate). The classic decoder turbo

20 twenty
usa un decodificador SISO (Soft In Soft Out) que genera infonnación extrínseca en la forma de It uses a SISO (Soft In Soft Out) decoder that generates extrinsic information in the form of

valores LLR (Log Likelihood Ratio), y dos entrelazadores, uno para los datos recibidos del LLR values (Log Likelihood Ratio), and two interleavers, one for the data received from the

canal y otro para la información extrínseca. La Fig. 1 ilustra el diagrama funcional de un turbo channel and another for extrinsic information. Fig. 1 illustrates the functional diagram of a turbo

decodificador clásico. En dicha figura, el elemento SISO I decodifica el mensaje mientras que classic decoder In said figure, the SISO I element decodes the message while

el elemento SISO 2 decodifica el mensaje entrelazado. Se dice que iteraciones completas the SISO 2 element decodes the interlaced message. It is said that full iterations

25 25
decodifican el mensaje mientras que las semi-iteraciones decodifican el mensaje entrelazado. El decode the message while semi-iterations decode the interlaced message. He

diagrama funcional de la Fig. I puede ser implementado de diferentes formas que se identifican Functional diagram of Fig. I can be implemented in different ways that are identified

en este documento como: (1) turbo decodificación en serie, (2) turbo decodificación concurrente in this document as: (1) turbo serial decoding, (2) turbo concurrent decoding

y (3) turbo decodificación barajada. and (3) turbo shuffled decoding.

En la Fig. 2 se muestra un diagrama funcional de turbo decodificación en serie, donde la !fnea A functional diagram of turbo serial decoding is shown in Fig. 2, where the line

30 30
horizontal representa el tiempo. Nótese que, debído al hecho de que el decodificador SISO 2 Horizontal represents time. Note that, due to the fact that the SISO 2 decoder

tiene que esperar hasta que SISO I haya decodificado el bloque completo, esta arquitectura se you have to wait until SISO I has decoded the entire block, this architecture is

puede implementar usando só lo un decodificador SISO. La Fig. 3 es un esquema funcional de la You can implement using only a SISO decoder. Fig. 3 is a functional scheme of the

turbo decodificación concurrente. Nótese que en la literatura el ténnino turbo decodificación turbo concurrent decoding. Note that in the literature the tennino turbo decoding

paralela es comimmente usado para referirse al método que hemos denominado aquf turbo parallel is commonly used to refer to the method we have called here turbo

35 35
decodificación concurrente; sin embargo en este documento hemos preferido reservar el ténnino concurrent decoding; however in this document we have preferred to reserve the ténnino

turbo decodificación paralela para otro tipo de arquitectura que va a ser explicada turbo parallel decoding for another type of architecture that will be explained

posteriormente. En la turbo decodificación concurrente las iteraciones completas y semilater. In the turbo concurrent decoding the complete and semi iterations

iteraciones se realizan al mismo tiempo por un decodificador SISO distinto: uno decodifica el iterations are performed at the same time by a different SISO decoder: one decodes the

mensaje y el otro el mensaje entrelazado. Por tanto se incrementa la velocidad de convergencia message and the other the interlaced message. Therefore the convergence speed is increased

40 40
de la decodificación. El intercambio de infonnación extrínseca está representado con líneas of decoding. The extrinsic infonation exchange is represented with lines

negras en dicha figura. En la Fig. 4 se representa otra arquitectura conocida como turbo black in that figure. Another architecture known as turbo is shown in Fig. 4

decodificación barajada. Esta arquitectura requiere dos decodificadores SISO como en la shuffled decoding. This architecture requires two SISO decoders as in the

arquitectura concurrente. Sin embargo en este caso se permite que la infonnación a-priori sea concurrent architecture However, in this case the a-priori information is allowed to be

intercambiada entre ambos decodificadores en la misma iteración siempre que dicha exchanged between both decoders in the same iteration provided that

45 Four. Five
información esté disponible. Dicha arquitectura acelera la velocidad de convergencia aún más Information is available. Such architecture accelerates the speed of convergence even more

que la turbo decodificación concurrente, sin embargo requiere un mecanismo de acceso a that the turbo concurrent decoding, however requires an access mechanism to

memoria bastante complejo. En Juntan Zhang y otros "Shuftled iterative decoding" trabajo quite complex memory. In Juntan Zhang and others "Shuftled iterative decoding" work

publicado en la revista IEEE Transactionson Communications, vol. 53, 2005 Y en las referencias published in the journal IEEE Transactionson Communications, vol. 53, 2005 And in the references

presentes en dicho trabajo se puede obtener más información acerca de esta arquitectura para la present in this work you can get more information about this architecture for the

S S
decodificación COn turbo códigos. Debido al hecho de que la turbo decodificación en serie es la Decoding with turbo codes. Due to the fact that the turbo serial decoding is the

más extendida normalmente nos referiremos a esta arquitectura en el presente documento. More commonly we will refer to this architecture in this document.

Existen esencialmente dos familias de algoritmo SISO para la turbo decodificación: MAP y There are essentially two families of SISO algorithm for turbo decoding: MAP and

SOY A (Soft Output Viterbi AIgorithm). Una descripción detallada de estos algoritmos se puede I AM A (Soft Output Viterbi AIgorithm). A detailed description of these algorithms can be

enCOntrar en "Comparative study of turbo decoding techniques: an overview", publicada en la Find in "Comparative study of turbo decoding techniques: an overview", published in the

10 10
revista IEEE Transactionon Vehicular Technology, vol. 49, 2000 por Woodard y otros. El IEEE Transactionon Vehicular Technology magazine, vol. 49, 2000 by Woodard and others. He

algoritmo MAP ofrece una ganancia de decodificación de aproximadamente 0.6 dB sobre el MAP algorithm offers a decoding gain of approximately 0.6 dB over the

SOY A a expensas de tener mayor latencia y mayor co~umo de área del chip incluso en sus I AM at the expense of having more latency and greater chip area even in their

versiones simplificadas Max-Log-MAP y Log-MAP. Se han realizado algunas propuestas con el Simplified versions Max-Log-MAP and Log-MAP. Some proposals have been made with the

fin de reducir esta diferencia en ganancia de decodificación debido a las atractivas in order to reduce this difference in decoding gain due to the attractive

15 fifteen
características del algoritmo SOYA para implementación eficiente en el chip. En concreto, SOYA algorithm features for efficient chip implementation. Specific,

Fossorier y otros presentaron en el artículo titulado "On the equivalence between SOY A and Fossorier and others presented in the article entitled "On the equivalence between SOY A and

max-Iog-MAP decodings", publicado en la revista IEEE Communication Letters, vol. 2, 1998 max-Iog-MAP decodings ", published in IEEE Communication Letters, vol. 2, 1998

una modificación del algoritmo SOYA que lo hace equivalente al algoritmo Max-Log-MAP. a modification of the SOYA algorithm that makes it equivalent to the Max-Log-MAP algorithm.

Desafortunadamente el algoritmo propuesto es significativamente más complejo que el Unfortunately the proposed algorithm is significantly more complex than the

20 twenty
algoritmo SOYA original. En el artículo "Adaptive SOYA for 3GPP-LTE Receivers" de original SOYA algorithm. In the article "Adaptive SOYA for 3GPP-LTE Receivers" by

Blanquez-Casado y otros, publicado en la revista IEEE Communications Lettcrs, vol.18, junio Blanquez-Casado and others, published in IEEE Communications Lettcrs, vol. 18, June

2014 se presenta una modificación del algoritmo SOYA que mejora significativamente la 2014 presents a modification of the SOYA algorithm that significantly improves the

capacidad correctiva., especialmente cuando se emplean altas tasas de modulación y corrective capacity., especially when high modulation rates are used and

codificación. Sin embargo el algoritmo propuesto requiere emplear una ventana de actualización coding. However, the proposed algorithm requires the use of an update window.

25 25
de pesos de tamaño variable que hace dificil su implementación en un chip. of weights of variable size that makes its implementation on a chip difficult.

Una alternativa la constituye el algoritmo conocido como BISOV A (Bi-directional SOY A) en el An alternative is the algorithm known as BISOV A (Bi-directional I AM) in the

que dos decodificadores SOYA decodifican la secuencia recibida en cada iteración haciendo that two SOYA decoders decode the sequence received in each iteration by doing

que la capacidad correctiva sea similar a la del algoritmo MAP; no obstante la complejidad se that the corrective capacity is similar to that of the MAP algorithm; however complexity is

duplica también. Esta propuesta fue presentada por primera vez por Chen y otros con el artículo double too. This proposal was first presented by Chen and others with the article

30 30
titulado "Bi-directional SOYA decoding for turbo-codes" publicado en la revista IEEE titled "Bi-directional SOYA decoding for turbo-codes" published in IEEE magazine

Communication Letters, vol. 4, 2000. Una arquitectura para implementar dicho algoritmo que es Communication Letters, vol. 4, 2000. An architecture to implement said algorithm that is

eficiente desde el punto de vista del uso de la memoria fue presentada por Efimov y otros en la efficient from the point of view of memory use was presented by Efimov and others in the

patente titulada "HIGH-THROUGHPUT MEMORY -EFFICIENT BI-SOY A DECODER patent titled "HIGH-THROUGHPUT MEMORY -EFFICIENT BI-SOY A DECODER

ARCHITECTURE", US 2008/0152045 A l. No obstante esta arquitectura al estar basada en el ARCHITECTURE ", US 2008/0152045 A. Notwithstanding this architecture as it is based on the

35 35
algoritmo BISOV A sigue presentando mayor complejidad que las basadas en el algoritmo BISOV A algorithm continues to present greater complexity than those based on the algorithm

SOYA. SOY.

BISOVA requiere dos decodificadores SOVA~ o dos bancos de decodificadores SOYA en el BISOVA requires two SOVA ~ decoders or two banks of SOYA decoders in the

caso paralelo trabajando a la vez en cada iteración. La idea clave detrás del algoritmo BISOVA parallel case working at the same time in each iteration. The key idea behind the BISOVA algorithm

es que realizar el algoritmo SOYA en diferentes direcciones pennite obtener una información is to perform the SOYA algorithm in different pennite directions to obtain information

40 40
distinta que ayuda a mejorar la turbo decodificación. En el algoritmo SOYA existe un proceso distinct that helps improve turbo decoding. In the SOYA algorithm there is a process

de actualización que persigue mejorar la calidad de los pesos, o medidas de fiabilidad, asociadas of update that seeks to improve the quality of the weights, or measures of reliability, associated

a cada bit decodificado para la etapa k Can el fin de obtener las medidas a-posteriori LLR at each decoded bit for stage k Can in order to obtain the a-posteriori LLR measurements

finales. Este proceso de actualización compara fiabilidades o pesos asociadas al camino ML late. This update process compares reliability or weights associated with the ML path

(Maximum Likelihood) en la etapa k con las fiabilidades de los caminos competidores al (Maximum Likelihood) in stage k with the reliability of the competing roads to

45 Four. Five
camino ML que se unen a él y son descartados en etapas posteriores a k. Sin embargo, hay ML path that bind to it and are discarded in later stages than k. However, there are

caminos que no se tienen en cuenta en el proceso de actualización porque son descartados antes paths that are not taken into account in the update process because they are discarded before

S S
de mezclarse con el camino ML. Este hecho da lugar a una sobrestimación de las medidas 3posteriori en SOYA que reduce su capacidad correctora. No obstante, algunos caminos que son descartados antes de unirse al camino ML en una dirección pueden no ser descartados antes de unirse a dicho camino ML en la otra dirección. Por tanto, realizar el algoritmo SOYA en ambas direcciones puede mejorar la turbo decodificación. En el algoritmo BISOV A. en la iteración ¡, uno de los decodificadores calcula las medidas LLR a-posteriori hacia adelante, identificadas con el símbolo Ui\(Uk), mientras que el otro las calcula hacia atrás, identificadas con el símbolo L(i)b(Uk)' Entonces, las medidas a-posteriori finales en BISOVA pueden ser calculadas como of mixing with the ML path. This fact leads to an overestimation of the 3posteriori measures in SOYA that reduces its corrective capacity. However, some roads that are discarded before joining the ML path in one direction may not be ruled out before joining that ML path in the other direction. Therefore, performing the SOYA algorithm in both directions can improve turbo decoding. In the BISOV algorithm A. in the iteration ¡, one of the decoders calculates the LLR a-posteriori measurements forward, identified with the symbol Ui \ (Uk), while the other calculates them backwards, identified with the symbol L ( i) b (Uk) 'Then, the final a-posteriori measurements in BISOVA can be calculated as

(1) (one)

10 10
Esto mejora notablemente la capacidad correctora a costa de doblar el consumo de área del chip. This greatly improves the corrective capacity at the cost of doubling the chip area consumption.

15 20 25 15 20 25
La naturaleza iterativa de la turbo decodificación tiene asociada una latencia considerable que hace dificil cumplir los requisitos de régimen binario asociados con estándares modemos como LTE (Long Tenn Evolution). Debido a esto la decodificación paralela se hace imprescindible. En la decodificación paralela cada bloque a decodificar es dividido en varios sub-bloques que son decodificados al mismo tiempo por un decodificador SISO diferente. A pesar de que esta estrategia pennite reducir la latencia eficientemente, la paralelización tiene dos grandes inconvenientes: (1) el consumo de área del chip es mayor y (2) hay una pérdida no despreciable en capacidad correctiva debido a la incertidumbre que existe en los bordes entre sub-bloques. Con el propósito de mitigar el segundo problema se suele usar solape entre sub-bloques para disminuir la incertidumbre entre sub-bloques a costa de aumentar la latencia de la decodificación. Como el decodificador SOY A es menOS complejo que el MAP, sus implementaciones consumen menos área del chip y por tanto el primero está especialmente indicado para turbo decodificadores paralelos donde el consumo de área es un tema primordial. Sin embargo el algoritmo MAP ha sido preferido tradicionalmente debido a su mayor capacidad correctora. Estos hechos justifican la necesidad de idear modificaciones del algoritmo SOYA que permitan obtener capacidades correctoras cercanas al algoritmo MA P manteniendo la baja complejidad del algoritmo SOYA. The iterative nature of turbo decoding is associated with considerable latency that makes it difficult to meet the binary regime requirements associated with modem standards such as LTE (Long Tenn Evolution). Because of this, parallel decoding becomes essential. In parallel decoding each block to be decoded is divided into several sub-blocks that are decoded at the same time by a different SISO decoder. Although this pennite strategy reduces latency efficiently, the parallelization has two major drawbacks: (1) the consumption of chip area is greater and (2) there is a non-negligible loss in corrective capacity due to the uncertainty that exists in the borders between sub-blocks. With the purpose of mitigating the second problem, overlap between sub-blocks is usually used to reduce the uncertainty between sub-blocks at the cost of increasing the decoding latency. As the AMY A decoder is less complex than MAP, its implementations consume less chip area and therefore the first one is especially suitable for turbo parallel decoders where area consumption is a primary issue. However, the MAP algorithm has been traditionally preferred due to its greater corrective capacity. These facts justify the need to devise modifications of the SOYA algorithm that allow to obtain corrective capabilities close to the MA P algorithm while maintaining the low complexity of the SOYA algorithm.

DESCRIPCIÓN DE LA INVENCIÓN DESCRIPTION OF THE INVENTION

30 35 30 35
La invención se refiere a una modificación del algoritmo SOY A que, a diferencia de las propuestas mencionadas anteriormente, mejora su capacidad correctora cuando se aplica a la turbo decodificación sin ningún incremento en el consumo de área ni de latencia. Esta modificación denominada ALSOYA (ALtemated direction SOY A) mejora la capacidad correctiva del algoritmo SOYA sin ningún incremento en área ni latencia. ALSOYA mejora la capacidad correctiva del algoritmo SOYA cuando éste se aplica a la decodificación iterativa sin ningún incremento en consumo de área del chip ni de latencia. Por tanto este método puede aplicarse a la turbo decodificación siguiendo diferentes arquitecturas como la arquitectura en serie, la concurrente y la barajada usando realizaciones paralelas y no paralelas del banco de decodificadores SOYA. El algoritmo ALSOV A también puede aplicarse a la ecualización iterativa, de la misma fonna que los algoritmos MAP y SOYA son usados en este campo. The invention relates to a modification of the SOY A algorithm which, unlike the proposals mentioned above, improves its corrective capacity when applied to turbo decoding without any increase in area or latency consumption. This modification called ALSOYA (ALtemated direction SOY A) improves the corrective capacity of the SOYA algorithm without any increase in area or latency. ALSOYA improves the corrective capacity of the SOYA algorithm when it is applied to iterative decoding without any increase in chip area consumption or latency. Therefore this method can be applied to turbo decoding following different architectures such as serial, concurrent and shuffle architecture using parallel and non-parallel embodiments of the SOYA decoder bank. The ALSOV A algorithm can also be applied to iterative equalization, in the same way that the MAP and SOYA algorithms are used in this field.

40 40
El algoritmo ALSOYA se basa en el mismo principio que el algoritmo BISOVA, esto es, lleva a cabo el proceso de actualización en diferentes direcciones de fonna que se reduce la sobrestimación de las medidas a-posteriori al tener en cuenta más caminos. Sin embargo, al contrario que el algoritmo BISOYA, el algoritmo ALSOYA no realiza la decodificación en The ALSOYA algorithm is based on the same principle as the BISOVA algorithm, that is, it carries out the process of updating in different directions of fonna that reduces the overestimation of the a-posteriori measures by taking into account more paths. However, unlike the BISOYA algorithm, the ALSOYA algorithm does not perform decoding in

S S
ambas direcciones durante la misma iteración. En cambio, el algoritmo ALSOV A compara las medidas LLR a-posteriori calculadas hacia delante y hacia atrás a lo largo de distintas iteraciones mediante el intercambio de la información extrínseca entre iteraciones. Esto pennite utilizar un único decodificador SOYA en lugar de dos. El decodificador SOyA tiene que ser capaz de realizar la decodificación tanto hacia adelante como hacia atrás; sin embargo, esta cuestión tiene un impacto mínimo en el consumo de área ya que la mayoría de las unidades que forman el decodificador no resultan afectadas. Por tanto, la invención propone calcular las medidas LLR hacia adelante en las iteraciones pares, y las medidas LLR hacia atrás en las iteraciones impares como se indica a continuación: both directions during the same iteration. In contrast, the ALSOV A algorithm compares the a-posterior LLR measurements calculated forward and backward through different iterations by exchanging extrinsic information between iterations. This pennite use a single SOYA decoder instead of two. The SOyA decoder must be able to perform decoding both forward and backward; However, this issue has a minimal impact on the area consumption since most of the units that make up the decoder are not affected. Therefore, the invention proposes to calculate the LLR measurements forward in the even iterations, and the LLR measures backward in the odd iterations as follows:

10 10
. L"'(u.) {Lj)(U.) ifmod(lij,2)~~l . L~)(u.) ifmod(liJ,2)~ (2) . L "'(u.) {Lj) (U.) Ifmod (lij, 2) ~~ l. L ~) (u.) Ifmod (liJ, 2) ~ (2)

Siendo liJ la función suelo. En la expresión previa se considera que en una iteración completa el mensaje es decodificado, mientras que en cada semi-iteración el mensaje entrelazado es decodificado. Las iteraciones comienzan en i=l , mientras que las semi-iteraciones comienzan en i ~L5. The ground function being liJ. In the previous expression it is considered that in a complete iteration the message is decoded, while in each semi-iteration the interlaced message is decoded. The iterations begin at i = l, while the semi-iterations begin at i ~ L5.

15 fifteen
La sobrestimación de bits erróneamente decodificados tiene un considerable efecto en la turbo The overestimation of erroneously decoded bits has a considerable effect on the turbo

20 twenty
decodificación porque puede propagar errores a lo largo de iteraciones. Nuestro enfoque propone realizar la decodificación hacia adelante y hacia atrás en ejecuciones pares e impares del decodificador, respectivamente. Por tanto, si en la etapa k un bit decodificado erróneamente tiene una LLR sobrestimada, esta sobrestimación puede propagarse hasta la siguiente semiiteración. Sin embargo, debido a que la otra iteración va en la dirección contraria, otros caminos pueden ser considerados, mitigando la sobrestimación y ev itando la propagación del error. decoding because it can propagate errors throughout iterations. Our approach proposes to decode forward and backward in odd and even executions of the decoder, respectively. Therefore, if in stage k an erroneously decoded bit has an overestimated LLR, this overestimation can be propagated until the next semi-iteration. However, because the other iteration is going in the opposite direction, other paths can be considered, mitigating overestimation and preventing the spread of error.

25 25
El algoritmo ALSOVA propuesto puede implementarse en turbo decodificación en serie, paralela o barajada usando tanto una implementación no paralela de cada decodificador SISO constituyente como una realización paralela de cada decodificador SISO constituyente. En el último caso tenemos de hecho un banco de decodificadores SISO. El algoritmo ALSOV A puede usarse también en turbo ecualización: el algoritmo ALSOV A requiere la implementación de un decodificador SOYA hacia adelante/atrás, o fwlbw del inglés forwardlbackward, el cual pueda realizar la decodificación en ambas direcciones en diferentes iteraciones. En este documento se The proposed ALSOVA algorithm can be implemented in turbo serial, parallel or shuffled decoding using both a non-parallel implementation of each constituent SISO decoder and a parallel embodiment of each constituent SISO decoder. In the latter case we have in fact a bank of SISO decoders. The ALSOV A algorithm can also be used in turbo equalization: the ALSOV A algorithm requires the implementation of a forward / backward SOYA decoder, or fwlbw of forwardlbackward English, which can perform decoding in both directions in different iterations. In this document you

30 30
proporciona una realización de dicho decodificador. Además se proporciona una posible realización de un turbo decodificador usando el algoritmo ALSOV A para las arquitecturas en serie paralela y concurrente paralela. provides an embodiment of said decoder. In addition, a possible embodiment of a turbo decoder is provided using the ALSOV A algorithm for parallel and concurrent parallel series architectures.

PMSBx PMSBx

35 35
Adicionalmente, la invención se refiere también a una nueva arquitectura para la turbo decodificación en paralelo, identificada con el acrónimo PMSBx qut: viene del inglés PathMetric/StateBorder Exchange. Dicha arquitectura mitiga la degradación de prestaciones en términos de BER (Bit Error Rate) o tasa de error de bit asociada a la decodificación en paralelo. PMSBx emplea el hecho de que las métricas de camino son fiables en el borde derecho de los sub-bloques y por tanto pueden ser usadas como métricas de inicialización para el siguiente subbloque de la siguiente iteración. Additionally, the invention also relates to a new architecture for turbo decoding in parallel, identified with the acronym PMSBx qut: it comes from the English PathMetric / StateBorder Exchange. This architecture mitigates performance degradation in terms of BER (Bit Error Rate) or bit error rate associated with parallel decoding. PMSBx uses the fact that road metrics are reliable on the right edge of the sub-blocks and therefore can be used as initialization metrics for the next subblock of the next iteration.

PMSBx consigue mejores prestaciones que los métodos clásicos basados en solapamiento de sub-bloques. Al contrario que otros enfoques, PMSBx no requiere solapamiento entre subbloques, por tanto reduce la latencia de la decodificación. El solapamiento tiene la desventaja de que incrementa la latencia de la decodificación, reduciendo la tasa binaria alcanzable. Por otra parte, la BER de la turbo decodificación en paralelo sin solapamiento sufre una degradación significativa debido a la incertidumbre en los bordes de los sub-bloques. PMSBx achieves better performance than classical methods based on sub-block overlap. Unlike other approaches, PMSBx does not require overlap between subblocks, therefore it reduces the latency of decoding. The overlap has the disadvantage that it increases the decoding latency, reducing the attainable bit rate. On the other hand, the BER of the turbo decoding in parallel without overlapping undergoes significant degradation due to uncertainty at the edges of the sub-blocks.

PMSBx aprovecha la diferente fiabilidad de las PMs y los estados del camino ML para mejorar las prestaciones de la decodificación y se basa principalmente en dos premisas: PMSBx takes advantage of the different reliability of the PMs and the states of the ML path to improve the performance of the decoding and is based mainly on two premises:

Convergencia de las métricas de camino: debido a que el borde izquierdo de un subbloque se corresponde con el borde derecho del sub-bloque previo, las PMs del borde derecho de un sub-bloque pueden ser usadas como PMs iniciales para los siguientes sub-bloques en la siguiente iteración. Esto aprovecha el hecho de que dichas PMs son fiables. Esta idea fue explotada por Yoon, "A parallel MAP algorithm for low latency turbo decoding", IEEE Communications l.etters, 2002, donde se presenta un método para el algoritmo MAP paralelo que consigue alcanzar la misma capacidad correctiva que en el caso no paralelo pero sin ningún incremento en latencia. Este método es identificado en este documento como SBL En el caso del algoritmo SOY A, las PMs son fiables en el borde derecho de un sulrbloque. Por tanto, éstas métricas pueden ser usadas como métricas de inicialización para el siguiente sub-bloque en la siguiente iteración para el caso del algoritmo SOY A. Convergence of road metrics: Because the left edge of a sub-block corresponds to the right edge of the previous sub-block, the PMs of the right edge of a sub-block can be used as initial PMs for the following sub-blocks In the next iteration. This takes advantage of the fact that these PMs are reliable. This idea was exploited by Yoon, "A parallel MAP algorithm for low latency turbo decoding", IEEE Communications L. ethers, 2002, which presents a method for the parallel MAP algorithm that achieves the same corrective capacity as in the non-parallel case but without any increase in latency. This method is identified in this document as SBL In the case of the SOY A algorithm, PMs are reliable on the right edge of a sulrblock. Therefore, these metrics can be used as initialization metrics for the next sub-block in the next iteration in the case of the SOY A algorithm.

Convergencia de los estados para el camino ML: Haciendo la inicialización con valores de métrica fiables, los estados del camino ML serán fiables en el borde izquierdo de los sub-bloques. Estos estados producidos por un decodificador SOY A pueden ser usados para hacer el último recorrido hacia atrás o TB desde un estado fiable del decodificador SOYA previo, reduciendo considerablemente la sobrestimación de los valores LLR aposteriori, la cual degrada las prestaciones en términos de BER. Debido a que los estados en el sub-borde izquierdo están disponibles antes de que se lleve a cabo el TB en el borde izquierdo, estos estados se pueden intercambiar en la misma iteración. Hay que tener en cuenta que esto no es aplicable para las métricas de camino ya que éstas son intercambiadas entre iteraciones completas. Convergence of the states for the ML path: By initializing with reliable metric values, the states of the ML path will be reliable on the left edge of the sub-blocks. These states produced by an SOY A decoder can be used to make the last backward travel or TB from a reliable state of the previous SOYA decoder, considerably reducing the overestimation of the LLR aposteriori values, which degrades the performance in terms of BER. Because the states on the left sub-border are available before TB is performed on the left edge, these states can be exchanged in the same iteration. Keep in mind that this is not applicable for road metrics since these are exchanged between full iterations.

La invención también se refiere a (i) programas de ordenador adaptados para, o que comprenden código software adaptado para, llevar a cabo los métodos de la invención; (ii) medios de almacenamiento legibles en computador que comprenden dichos programas informáticos o que comprenden instrucciones para hacer que un aparato de procesamiento de datos lleve a cabo los métodos de la invención; (iii) medios portadores de grabación con dichos programas informáticos grabados en ellos; (iv) ondas portadoras de señal portando sei'iales que incorporan dichos programas informáticos. The invention also relates to (i) computer programs adapted to, or comprising software code adapted to, carry out the methods of the invention; (ii) computer readable storage media comprising said computer programs or comprising instructions for making a data processing apparatus carry out the methods of the invention; (iii) recording carrier media with said computer programs recorded in them; (iv) signal carrying waves carrying signals incorporating said computer programs.

BREVE EXPLICACIÓN DE LAS FIGURAS La Fig. I ilustra el diagrama funcional de la turbo decodificación. La Fig. 2 muestra un diagrama de tiempos de la turbo decodificación en serie. La Fig. 3 muestra un diagrama de tiempos de la turbo decodificación concurrente. La Fig. 4 muestra un diagrama de tiempos de la turbo decodificación barajada. BRIEF EXPLANATION OF THE FIGURES Fig. I illustrates the functional diagram of the turbo decoding. Fig. 2 shows a timing diagram of the turbo serial decoding. Fig. 3 shows a timing diagram of the turbo concurrent decoding. Fig. 4 shows a timing diagram of the turbo decoding shuffled.

La Fig. 5 ilustra un diagrama funcional de decodificación paralela usando solape entre sub bloques. La Fig. 6 muestra un diagrama de tiempos de la arquitectura propuesta de turbo decodificador en serie usando ALSQV A. La Fig. 7 ilustra la estructura de una posible realización de la invención usando la arquitectura en serie paralela. Fig. 5 illustrates a functional diagram of parallel decoding using overlap between sub blocks Fig. 6 shows a timing diagram of the proposed turbo decoder architecture in series using ALSQV A. Fig. 7 illustrates the structure of a possible embodiment of the invention using the architecture in parallel series.

La Fig. 8 ilustra una posible realización de los decodificadores SOYA fwlbw. Fig. 8 illustrates a possible embodiment of the SOYA fwlbw decoders.

La Fig. 9 ilustra una posible realización de la Unidad de Recursión fw/bw del decodificador SOYA fwlbw. Fig. 9 illustrates a possible embodiment of the Recursion Unit fw / bw of the SOYA fwlbw decoder.

La Fig. 10 proporciona un diagrama temporal asociado a la arquitectura concurrente usando el Fig. 10 provides a time diagram associated with the concurrent architecture using the

algoritmo propuesto ALSQVA. La Fig. 11 ilustra una estructura de una posible realización de la invención usando la arquitectura concurrente paralela. ALSQVA proposed algorithm. Fig. 11 illustrates a structure of a possible embodiment of the invention using the concurrent parallel architecture.

La Fig. 12 ilustra la estructura de la invención PMSBx que se puede aplicar a los algoritmos SOYA, ALSOVAy BISOVA. Fig. 12 illustrates the structure of the PMSBx invention that can be applied to algorithms SOYA, ALSOVA and BISOVA.

MODOS DE REALIZACIÓN DE LA INVENCIÓN En esta solicitud se referencian varias publicaciones. Los contenidos y revelaciones incluidas en éstas, así como en la totalidad de las referencias citadas por dichas publicaciones. se incorporan en la presente solicitud con el fin de describir de una manera completa y detallada el estado del arte al que pertenece esta invención. la tenninologla que se emplea en adelante es empleada con el propósito de describir de manera precisa detenninados conceptos, y no debe considerarse como Iimitante. EMBODIMENTS OF THE INVENTION Several publications are referenced in this application. The contents and disclosures included in these, as well as in all the references cited by said publications. are incorporated in the present application in order to describe in a complete and detailed way the state of the art to which this invention belongs. the tenninologla that is used from now on is used for the purpose of accurately describing determined concepts, and should not be considered as imimitant.

La invención mejora la capacidad correctora de errores de un turbo decodificador basado en el algoritmo SOYA clásico sin ningún incremento en la complejidad. Esta invención puede usarse con turbo decodificación paralela y no paralela, En la Fig, 5 se ilustra una descripción funcional de la decodificación paralela usando solape entre sub-bloques. Se asumen códigos con tenninación trellis como es el caso del código de L TE, es decir, el estado inicial y final es The invention improves the error correction capacity of a turbo decoder based on the SOYA classic algorithm without any increase in complexity. This invention can be used. with turbo parallel and non-parallel decoding, a functional description is illustrated in Fig. 5 of parallel decoding using overlap between sub-blocks. Codes are assumed with trellis tennination as is the case with the L TE code, that is, the initial and final state is

conocido, siendo comúnmente el estado cero. La longitud del bloque a decodificar es K+T donde K es la longitud del mensaje y T el número de etapas requeridas para volver al estado cero. En el caso de tener P decodificadores SISO trabajando en paralelo cada sub-bloque tiene una longitud de M+L etapas excepto el último sub-bloque que tiene una longitud de M+U2+T etapas y el primer sub-bloque de M+U2, siendo M=K1P y L el número de etapas de solape. La secuencia decodificada por cada decodificador tiene una longitud de M bits. known, the zero state being commonly. The length of the block to be decoded is K + T where K is the length of the message and T the number of stages required to return to the state zero. In the case of having P SISO decoders working in parallel each sub-block has a length of M + L stages except the last sub-block that has a length of M + U2 + T stages and the first sub-block of M + U2, with M = K1P and L being the number of overlap stages. The sequence decoded by each decoder has a length of M bits.

ALSOVA para turbo decodificación en serie paralela ALSOVA for turbo parallel series decoding

En la Fig. 6 se muestra un diagrama de tiempos del método ALSOV A propuesto, para decodificación seric de turbo códigos. En concreto se muestran dos iteraciones completas del algoritmo, aunque el proceso de decodificación puede extenderse a cualquier número de iteraciones según el criterio de parada detenninado. A timing diagram of the proposed ALSOV A method is shown in Fig. 6, for seric decoding of turbo codes. Specifically, two complete iterations of the algorithm are shown, although the decoding process can be extended to any number of iterations according to the stopping criteria.

En la Fig. 7 se presenta una posible realización de la invención siguiendo la arquitectura de un turbo decodificador en serie paralelo. El diagrama de bloques de dicha figura muestra las medidas LLR del canal asociadas con un turbo código de tasa 1/3 con un bit sistemático y dos bits de paridad como eS el caso del empleado en la tecnología L TE. Estas métricas LLR se representan en la figura como Ls, Lp 1 Y Lp2 respectivamente. Las métricas Ls y Lp I están relacionadas con el mensaje, mientras que la métrica Ls2 está relacionada con el mensaje entrelazado. Estas métricas se almacenan en el Banco de Memoria de Entrada 701. Dicha unidad es capaz de entregar a cada decodificador paralelo dentro del banco de decodificadores paralelos el su~bloque correspondiente. Además, el Banco de Memoria de Entrada 701 entrelaza las métricas Ls cuando lleva a cabo una semi-iteración, pudiendo así entregar dichas métricas al Banco de Decodificadores SOYA fw(hacia delante) y bw (hacia atrás) 704. In Fig. 7 a possible embodiment of the invention is presented following the architecture of a turbo decoder in parallel series. The block diagram of said figure shows the LLR measurements of the channel associated with a turbo code rate 1/3 with a systematic bit and two parity bits as is the case of the one used in L TE technology. These LLR metrics are represented in the figure as Ls, Lp 1 and Lp2 respectively. The metrics Ls and Lp I are related to the message, while the metric Ls2 is related to the interlaced message. These metrics are stored in the Input Memory Bank 701. Said unit is able to deliver to each parallel decoder within the parallel decoder bank the corresponding block. In addition, the Input Memory Bank 701 intertwines the Ls metrics when carrying out a semi-iteration, thus being able to deliver said metrics to the SOYA Decoder Bank fw (forward) and bw (backward) 704.

El Banco de Decodificadores SOY A fwlbw 704 calcula métricas a-posteriori en la dirección hacia delante (iteraciones impares) y hacia atrás (iteraciones pares), respectivamente. De este modo, tanto el Banco de Memoria de Entrada 701 como el Banco de Memoria Extrínseca 70S pueden entregar datos al Banco de Decodificadores SOYA fiN/bw 704 en ambas direcciones. La Unidad de Control 702 detennina el comportamiento de las diferentes unidades dependiendo de la iteración o semi-iteración que se lleve a cabo en cada momento. La Unidad de Cálculo Extrínseca 706 calcula la infonnación extrínseca utilizando las métricas LLR del canal y las métricas a-posteriori. Esta unidad lleva a cabo una resta. aunque también puede llevar a cabo una mukiplicación por cierto factor de escala, y/o una compresión o cuantificación de las métricas. En la figura, los buses que entregan P métricas LLR por ciclo se identifican con la letra P. The SOY A fwlbw 704 Decoder Bank calculates a-posteriori metrics in the forward direction (odd iterations) and backward (even iterations), respectively. In this way, both the Input Memory Bank 701 and the Extrinsic Memory Bank 70S can deliver data to the SOYA fiN / bw 704 Decoder Bank in both directions. The Control Unit 702 determines the behavior of the different units depending on the iteration or semi-iteration that is carried out at each moment. The Extrinsic Calculation Unit 706 calculates extrinsic information using the LLR metrics of the channel and the a-posteriori metrics. This unit performs a subtraction. although it can also carry out a multiplying by a certain scale factor, and / or a compression or quantification of the metrics. In the figure, buses that deliver P metric LLR per cycle are identified with the letter P.

Nótese que a partir de la arquitectura representada en la Fig. 7 se puede obtener fácilmente la de un turbo decodificador en serie no paralelo: En tal caso (decodificador en serie no paralelo) P sería igual al, Y por tanto el elemento 704 contendría tan sólo un decodificador SOYA fw"lbw 703; además los elementos 701 y 70S tendrían que entregar infonnación relativa a un solo bloque, en lugar de entregar infonnación simultánea de varios sub-bloques, es decir, lo buses que aparecen en la figura conectando a los elementos 701 y 70S con 704 sólo entregarían una métrica por bus (P=I); por último, como en la decodificación no paralela se tiene un bloque a decodificar cuyos estados de inicio y fin son conocidos, no hay que aplicar ningún tipo de solape lo cual simplifica el comportamiento de los elementos 701 y 70S. Note that from the architecture shown in Fig. 7, a non-parallel serial decoder turbo can easily be obtained: In this case (non-parallel serial decoder) P would be equal to, and therefore element 704 would contain so only a SOYA fw "lbw 703 decoder; in addition elements 701 and 70S would have to deliver information relative to a single block, instead of delivering simultaneous information of several sub-blocks, that is, the buses that appear in the figure connecting the Elements 701 and 70S with 704 would only deliver one metric per bus (P = I); finally, as in non-parallel decoding there is a block to be decoded whose start and end states are known, there is no need to apply any type of overlap which simplifies the behavior of elements 701 and 70S.

Cada uno de los decodificadores paralelo soyA fiN/bw 703 tiene la estructura que se muestra en la Fig. 8. La Unidad Recursiva fw/bw801 lleva a cabo las siguientes funciones: (i) calcular la métrica de camino o PM para cada uno de los N estados; (ii) seleccionar el camino superviviente y (jii) obtener el peso de esta decisión como la diferencia de las PMs entre los caminos supervivientes. La decisión relativa a los caminos supervivientes y los pesos correspondientes para cada estado se usa para construir los vectores Y y W, de longitud N, como se muestra en la Fig. 8. Esta unidad se encarga de realizar las funciones mencionadas anterionnente, tanto en la dirección hacia delante como en la dirección hacia atrás. Each of the soyA fiN / bw 703 parallel decoders has the structure shown in Fig. 8. Recursive Unit fw / bw801 performs the following functions: (i) calculate the path metric or PM for each of the N states; (ii) select the surviving path and (jii) obtain the weight of this decision as the difference of the MPs between the surviving paths. The decision regarding the surviving roads and the corresponding weights for each state is used to construct the vectors Y and W, of length N, as shown in Fig. 8. This unit is responsible for performing the functions mentioned above, both in the forward direction as in the backward direction.

La Unidad de Control 804 implementa una máquina de estados finitos que activa las señales de control apropiadas para el resto de unidades presentadas en la Fig, 7, permitiendo a dichas unidades el realizar su función en la dirección hacia delante o hacia atrás, dependiendo de la iteración en la que se encuentre. Las decisiones se entregan a la Unidad de Memoria de Supervivientes fwlbw 803. Esta unidad realiza el recorrido hacia atrás o TB para encontrar el camino ML. Como esta unidad debe llevar a cabo el cálculo del recorrido hacia atrás, la lógica combinacional que calcula el estado previo para un estado detenninado debe ser diferente dependiendo de la dirección. Una considera la máquina de estados hacia adelante y la otra la máquina de estados hacia atrás. Los estados de este camino se introducen a la Unidad de Proceso de Actualización fw/bw 80S. Como el elemento 803 requiere cierto número de ciclos de reloj para obtener Jos estados de dicho camino, el elemento retardador 802 aplica a los pesos W (diferencias entre las PMs) el mismo retardo en ciclos de reloj. Dicha unidad se encarga de la actualización de los pesos calculados por la Unidad Recursiva twlbw 801. Para llevar a cabo este proceso de actualización, hay que realizar un doble recorrido hacia atrás o TB: un TB obtiene el camino ML, mientras que el otro obtiene el camino competidor. En cada etapa en la que el bit decidido para ambos caminos difiere, se lleva a cabo una actualización. Dicha actualización consiste en la selección del peso mínimo entre el camino competidor y los caminos ML. Esta unidad también debe trabajar tanto en la dirección hacia delante como hacia atrás al llevar a cabo el TB. Finalmente, tras el proceso de actualización, se obtienen las métricas LLR a-posteriori en las direcciones hacia delante o hacia atrás dependiendo de la iteración actual. The Control Unit 804 implements a finite state machine that activates the appropriate control signals for the rest of the units presented in Fig. 7, allowing said units to perform their function in the forward or backward direction, depending on the iteration in which you are. The decisions are delivered to the fwlbw 803 Survivors Memory Unit. This unit travels backwards or TB to find the ML path. Since this unit must carry out the calculation of the backward travel, the combinational logic that calculates the previous state for a detained state must be different depending on the direction. One considers the state machine forward and the other the state machine backward. The states of this path are introduced to the Update Process Unit fw / bw 80S. Since element 803 requires a certain number of clock cycles to obtain states of said path, retarder element 802 applies the same delay in clock cycles to weights W (differences between PMs). This unit is responsible for updating the weights calculated by the Twlbw 801 Recursive Unit. To carry out this update process, a double backward travel or TB must be carried out: one TB obtains the ML path, while the other obtains The competing path. In each stage in which the bit decided for both paths differs, an update is carried out. This update consists in the selection of the minimum weight between the competing road and the ML roads. This unit must also work both in the forward and backward direction when carrying out the TB. Finally, after the update process, the LLR a-posterior metrics are obtained in the forward or backward directions depending on the current iteration.

En la Fig. 9 se ilustra la estructura de la Unidad Recursiva fw/bw 801. Esta unidad se compone de N Elementos de Recursión 902, que calculan la PM y llevan a cabo las tareas (i)-(iii) para cada estado. Para ello, cada Elemento de Recursión 902 necesita conocer las medidas Ls, Lp y La. En el caso de una iteración completa, Lp es Lpl. En el caso de una semi-iteración, Lp es Lp2 Y Ls ha sido entrelazado por el Banco de Memoria de Entrada 701. Por otro lado, La es la información a priori, o de manera equivalente las métricas extrinsecas de la semi-iteración previa. The structure of the Recursive Unit fw / bw 801. is illustrated in Fig. 9. This unit is made up of N Recursion Elements 902, which calculate the PM and carry out the tasks (i) - (iii) for each state. For this, each Element of Recursion 902 needs to know the measures Ls, Lp and La. In the case of a full iteration, Lp is Lpl. In the case of a semi-iteration, Lp is Lp2 and Ls has been interlaced by the Input Memory Bank 701. On the other hand, La is the a priori information, or equivalently the extrinsic metrics of the previous semi-iteration. .

Para calcular las PMs para cada estado Si en la etapa k, se necesitan las PM de los caminos que confluyen en Si en la etapa previa k-1. Uno de dichos caminos, el asociado con uk""l , se identifica como PM.(Si), mientras que el otro, asociado con Uk=O, se identifica como PMo(Si). Como los caminos que confluyen en cada estado son diferentes en las direcciones hacia delante y hacia atrás, se requiere una red de interconexión. Esta tarea es realizada por la Unidad de Conexión fw/bw 901. Dicha unidad entrega el PM adecuado de la etapa previa a cada Elemento de Recursión 902, dependiendo de la dirección (hacia delante o hacia atrás). Una posible manera de implementar este elemento es mediante un banco de multiplexores y registros para almacenar la PM previa. To calculate the PMs for each state If in stage k, the PM of the roads that converge to Si in the previous stage k-1 are needed. One of these paths, the one associated with uk "" l, is identified as PM. (Si), while the other, associated with Uk = O, is identified as PMo (Si). As the roads that converge in each state are different in the forward and backward directions, an interconnection network is required. This task is performed by the Connection Unit fw / bw 901. This unit delivers the appropriate PM from the previous stage to each Recurrence Element 902, depending on the direction (forward or backward). One possible way to implement this element is through a bank of multiplexers and registers to store the previous PM.

ALSOVA para la turbo decodificación concurrente paralela ALSOVA for turbo parallel concurrent decoding

La Fig. 10 muestra un diagrama de tiempos del método ALSOV A propuesto, para decodificación concurrente paralela, mientras que la Fig. 11 muestra una posible implementación de la misma En esta implementación, el Banco de Memoria de Entrada 1101 debe alimentar simultáneamente dos Bancos de decodificadores SOYA fw/bw. De esta forma, éste debe proporcionar la métrica Ls tanto de forma entrelazada como no entrelazada Existen dos bancos de información extrínseca. Por un lado, el Banco de Información Extrínseca 1 1103 siempre desentrelaza las medidas extrínsecas. Sin embargo, en las iteraciones impares se lee y escribe hacia adelante mientras que en las iteraciones pares se lee y escribe hacia atrás. Por otro lado, el Banco de Información Extrínseca 2 1104 siempre entrelaza las medidas extrínsecas. Este banco trabaja hacia adelante en iteraciones impares y hacia atrás en las pares. Las Unidades de Cálculo Extrínseco 706 y el Banco de decodificadores SOYA fw/bw son equivalentes al caso mostrado en la sección anterior. Fig. 10 shows a time diagram of the proposed ALSOV A method, for parallel concurrent decoding, while Fig. 11 shows a possible implementation of it. In this implementation, the Input Memory Bank 1101 must simultaneously feed two Banks of SOYA fw / bw decoders. In this way, it must provide the metric Ls both interlaced and non-interlaced There are two banks of extrinsic information. On the one hand, the Extrinsic Information Bank 1 1103 always deinterlaces extrinsic measures. However, in odd iterations you read and write forward while in even iterations you read and write backwards. On the other hand, the Extrinsic Information Bank 2 1104 always intertwines extrinsic measures. This bank works forward on odd iterations and backward on even ones. The Extrinsic Calculation Units 706 and the SOYA fw / bw decoder Bank are equivalent to the case shown in the previous section.

ALSOVA-PMSBxpara la turbo decodificación en serie paralela ALSOVA-PMSBx for turbo parallel serial decoding

La técnica PMSBx puede combinarse con Jos algorihnOs SOYA, ALSOVA y BISOVA. En los casos de BISOVA-PMSBx y ALSQVA-PMSBx existen dos tipos diferentes de métricas de camino o PMs y T8s, una en la dirección hacia adelante y la otra en la dirección hacia atrás. Para el caso BISOV A, este hecho no supone ninguna modificación con respecto a SOYAPMSBx puesto que la inicialización se realiza dentro de dos bancos independientes de decodificadores SOYA. Sin embargo, en el caso de ALSOV A-PMSBx, se tienen que intercambiar las PMs entre dos iteraciones dado que las PMs de la iteración anterior han sido calculadas en una dirección diferente. Formalmente, la inicialización de las PMs puede ser descrita con la siguiente ecuación. The PMSBx technique can be combined with the SOYA, ALSOVA and BISOVA algorithms. In the cases of BISOVA-PMSBx and ALSQVA-PMSBx there are two different types of road metrics or PMs and T8s, one in the forward direction and the other in the backward direction. In the case of BISOV A, this fact does not imply any modification with respect to SOYAPMSBx since the initialization is carried out within two independent banks of SOYA decoders. However, in the case of ALSOV A-PMSBx, the PMs have to be exchanged between two iterations since the PMs of the previous iteration have been calculated in a different direction. Formally, the initialization of the PMs can be described with the following equation.

PM(;~O ,~I)( k) 1 PMu.lI ) ( k ):c: ' s, /,11 ' PM (; ~ O, ~ I) (k) 1 PMu.lI) (k): c: 's, /, 11'

n "11n "11

s, /11 (3) s, / 11 (3)

. {log(ó(s)), n~l . {log (or (s)), n ~ l

donde el símbolo O representa el retardo en iteraciones que se aplica a las PMs que se intercambian entre decodificadores paralelos. Para el caso de SOYA y BISOYA 0=1 mientras que para ALSOV A 0 =2. La etapa en la que se realiza la inicialización para el suh-bloque n es kl,l=O para n=1 y k1,n=(n-l)M para n> 1. where the symbol O represents the delay in iterations that is applied to the PMs that are exchanged between parallel decoders. In the case of SOYA and BISOYA 0 = 1 while for ALSOV A 0 = 2. The stage at which initialization is performed for suh-block n is kl, l = O for n = 1 and k1, n = (n-l) M for n> 1.

La inicialización de estados de cara a hacer los TBs es la que sigue The initialization of states in order to make the TBs is as follows

SU" "'( k) PSU "" '(k) P

S(i,II)(s,k ) = S, r,n , n;Jt S (i, II) (s, k) = S, r, n, n; Jt

(4) r ,1I { O n=P (4) r, 1I {O n = P

, ,

donde la etapa en la que se realiza el último TB es kr,p=K+T para n=P y kr,n=nM para n<P. La ecuación anterior es válida para SOVA-PMSBx, ALSOVA-PMSBx y BISOYA-PMSBx dado que los estados se intercambian en la misma iteración, where the stage in which the last TB is performed is kr, p = K + T for n = P and kr, n = nM for n <P. The above equation is valid for SOVA-PMSBx, ALSOVA-PMSBx and BISOYA-PMSBx since the states are exchanged in the same iteration,

La arquitectura propuesta para un turbo decodificador serie paralelo usando ALSOV A-PMSBx se muestra en la Fig, 7, La dirección de decodificación se cambia a lo largo de las iteraciones (como se describió anterionnente) con objeto de mejorar la capacidad correctora sin aumentar significativamente la latencia o el consumo de área. El Banco de Memoria a la Entrada 701 y el Banco de Memoria Extrínseco 70S son capaces de alimentar el Banco de decodificadores SISO 704 en la direcciones hacia adelante y hacia atrás. La Unidad de Control 702 detennina el comportamiento de la diferentes unidades dependiendo de la iteración (o media iteración) a realizar en cada momento. No obstante, el caso del Banco de decodificadores SISO paralelo 704 tiene otra arquitectura que se muestra en la Fig, 12, confonne a la cuál dicho Banco de decodificadores SISO paralelo 704 comprende, entre otros, una Unidad de Control 1304, Como se puede observar, las conexiones entre los decodificadores SOYA fw/bw 703 penniten el intercambio de infonnación para paliar la incertidumbre en el borde de los sub-bloques, El intercambio de PM se realiza gracias a la unidad 1303, la cual aplica un retardo a las PMs de dos iteraciones completas (0=2), o lo que es lo mismo, a cuatro medias iteraciones. El intercambio de estados se realiza gracias a registros de memoria 1302 que almacenan dicha infonnación durante la iteración en la que es requerida. Además, los decodificadores 703 son decodificadores fw/bw con una arquitectura como la mostrada en la Fig, 8. Estos decodificadores son capaces de realizar la decodificación SOY A tanto hacia adelante como hacia atrás, dependiendo de la iteración en cuestión. The proposed architecture for a turbo parallel series decoder using ALSOV A-PMSBx is shown in Fig. 7, The decoding direction is changed throughout the iterations (as described above) in order to improve the corrective capacity without significantly increasing latency or area consumption. The Memory Bank at Entry 701 and the Extrinsic Memory Bank 70S are capable of feeding the Bank of decoders SISO 704 in the forward and backward directions. Control Unit 702 determines the behavior of the different units depending on the iteration (or half iteration) to be performed at each moment. However, the case of the SISO parallel decoder bank 704 has another architecture shown in Fig. 12, which confers to which said parallel SISO decoder bank 704 comprises, among others, a Control Unit 1304, as can be seen , the connections between the decoders SOYA fw / bw 703 penniten the exchange of information to alleviate the uncertainty at the edge of the sub-blocks, The exchange of PM is made thanks to the unit 1303, which applies a delay to the PMs of two full iterations (0 = 2), or what is the same, at four half iterations. The exchange of states is carried out thanks to memory records 1302 that store said information during the iteration in which it is required. In addition, decoders 703 are fw / bw decoders with an architecture like that shown in Fig, 8. These decoders are capable of performing the SOY A decoding both forward and backward, depending on the iteration in question.

Claims (17)

REIVINDICACIONES l. Método para turbo decodificación iterativa de baja tasa de error y baja complejidad caracterizado por que comprende: l. Method for turbo iterative decoding of low error rate and low complexity characterized by comprising: 3. El almacenamiento de las métricas LLR en un banco de memoria de entrada que posteriormente entrega, bien el bloque correspondiente a un decodificador no paralelo que trabaja hacia delante (fw) y hacia atrás (bw), bien los subbloques correspondientes a dos o más decodificadores paralelos fw/bw dichos dos o más decodificadores paralelos fw/bw comprendidos en uno o más bancos paralelos de decodificadores SOY A fwlbw; 3. The storage of LLR metrics in an input memory bank that subsequently delivers, either the block corresponding to a non-parallel decoder that works forward (fw) and backward (bw), or the subblocks corresponding to two or more fw / bw parallel decoders said two or more fw / bw parallel decoders comprised in one or more parallel banks of decoders SOY A fwlbw;
b. b.
el cálculo de métricas a-posteriori bien por dicho decodificador no paralelo fwlbw bien por dichos dos o más decodificadores paralelos fw/bw; the calculation of a-posterior metrics either by said non-parallel decoder fwlbw or by said two or more parallel decoders fw / bw;
c. C.
el cálculo por una o más unidades de cálculo extrínsecas de la infonnaci6n extrínseca a partir de las métricas LLR y las métricas a-posteriori; the calculation by one or more extrinsic calculation units of the extrinsic information from the LLR metrics and the a-posterior metrics;
d. d.
y la comparación de las medidas LLR a-posteriori calculadas hacia delante y hacia atrás a lo largo de distintas iteraciones mediante el intercambio de la infonnación extrínseca entre iteraciones calculando para ello las medidas LLR hacia adelante en las iteraciones pares, y las medidas LLR hacia atrás en las iteraciones impares confonne a la ecuación (2) and the comparison of the a-posterior LLR measures calculated forward and backward through different iterations by exchanging the extrinsic information between iterations by calculating the LLR measurements forward in the even iterations, and the LLR measurements backward in odd iterations, it confers to equation (2)
. {L'f" (U,) ifmod( [iJ ,2)~1 . {L'f "(U,) ifmod ([iJ, 2) ~ 1 L''' (u ), L~,<u,) ifmod<liJ,2)~ L '' '(u), L ~, <u,) ifmod <liJ, 2) ~ siendo li J la función suelo. being li J the ground function.
2. 2.
Método según la reivindicación anterior caracterizado por que el banco de memoria de entrada entrega el bloque correspondiente a un decodificador no paralelo fwlbw, dicho decodificador no paralelo fwlbw responsable del cálculo de métricas a-posteriori. Method according to the preceding claim characterized in that the input memory bank delivers the corresponding block to a non-parallel decoder fwlbw, said non-parallel decoder fwlbw responsible for calculating a-posteriori metrics.
3. 3.
Método según la reivindicación 1 caracterizado por que comprende: Method according to claim 1 characterized in that it comprises:
a. to.
El almacenamiento de las métricas LLR en un banco de memoria de entrada que posterionnente entrega los sub-bloques correspondientes a dos o más decodificadores paralelos fwlbw, dichos dos o más decodificadores paralelos fw/bw comprendidos en uno o más bancos paralelos de decodificadores SOYA fwlbw; The storage of LLR metrics in an input memory bank that subsequently delivers the sub-blocks corresponding to two or more fwlbw parallel decoders, said two or more fw / bw parallel decoders comprised in one or more parallel banks of SOYA fwlbw decoders;
b. b.
El entrelazado de las métricas LLR antes de la entrega de los sub-bloques correspondientes por parte de I banco de memoria de entrada a dos o más decodificadores paralelos fw/bw, dichos dos o más decodificadores paralelos fwlbw comprendidos en un banco paralelo de decodificadores SOYA fwlbw; The interlacing of LLR metrics before the delivery of the corresponding sub-blocks by I input memory bank to two or more fw / bw parallel decoders, said two or more fwlbw parallel decoders comprised in a parallel bank of SOYA decoders fwlbw;
c. C.
el cálculo de métricas a-posteriori por dichos dos o más decodificadores paralelos fwlbw; the calculation of a-posteriori metrics by said two or more fwlbw parallel decoders;
d. d.
el cálculo por una o más unidades de cálculo extrínsecas de la infonnación extrínseca a partir de las métricas LLR y las métricas a-posteriori; the calculation by one or more extrinsic calculation units of extrinsic infonation from LLR metrics and a-posteriori metrics;
e. and.
y la comparación de las medidas LLR a-posteriori calculadas hacia delante y hacia atrás a lo largo de distintas iteraciones mediante el intercambio de la infonnación extrínseca entre iteraciones calculando para ello las medidas LLR and the comparison of the a-posterior LLR measures calculated back and forth over different iterations by exchanging the extrinsic information between iterations calculating the LLR measurements
hacia adelante en las iteraciones pares, y las medidas LLR hacia atrás en las forward in even iterations, and LLR measures back in the
iteraciones impares conforme a la ecuación (2) odd iterations according to equation (2)
Lj'(U¡) ifmodqij ,2)~~1LV'(u¡) _ Lj '(U¡) ifmodqij, 2) ~~ 1LV' (u¡) _
{L~'(u¡ ) ifmod(liJ,2)=O {L ~ '(u¡) ifmod (liJ, 2) = O
siendo lj J la función suelo. lj J being the ground function.
5 5
4. Four.
Método según la reivindicación anterior caracterizado por que comprende el uso de las Method according to the preceding claim characterized in that it comprises the use of the
métricas de camino (PMs) en el borde derecho de los sub-bloques como métricas de road metrics (PMs) on the right edge of the sub-blocks as metrics for
inicialización para el siguiente sub-bloque de la siguiente iteración; y el uso de los initialization for the next sub-block of the next iteration; and the use of
estados del camino (ML) del borde izquierdo de los sub-bloques para hacer el último road states (ML) of the left edge of the sub-blocks to make the last
10 10
recorrido hacia atrás (TB) desde un estado fiable del decodificador SOY A fw/bw backward travel (TB) from a reliable state of the decoder I AM A fw / bw
previo, dichos estados de camino (ML) intercambiables en la misma iteración. prior, said interchangeable path states (ML) in the same iteration.
5. 5.
Método según la reivindicación 3 que comprende Method according to claim 3 comprising
a. La entrega de los sub-bloques correspondientes por parte del banco de memoria to. The delivery of the corresponding sub-blocks by the memory bank
15 fifteen
de entrada a dos o más decodificadores paralelos fw/bw, dichos dos o más input to two or more fw / bw parallel decoders, said two or more
decodificadores paralelos fw/bw comprendidos en dos o más bancos paralelos fw / bw parallel decoders comprised of two or more parallel banks
de decodificadores SOYA fw!bw; of SOYA fw! bw decoders;
b. el cálculo por dos o más unidades de cálculo extrínsecas de la infonnación b. the calculation by two or more extrinsic calculation units of the information
extrínseca a partir de las métricas LLR y las métricas a-posteriori; extrinsic from LLR metrics and a-posteriori metrics;
20 twenty
c. el desentrelazado de la información extrínseca calculada por al menos una de C. deinterlacing the extrinsic information calculated by at least one of
las unidades de cálculo extrínseca por al menos un banco de información extrinsic calculation units by at least one information bank
extrínseca que trabaja hacia delante (fw) en las iteraciones impares mientras extrinsic that works forward (fw) in odd iterations while
que trabaja hacia atrás (bw) en las iteraciones pares; that works backward (bw) in even iterations;
d. y el entrelazado de la ¡nfonnación extrínseca calculada por al menos una de las d. and the interlacing of extrinsic information calculated by at least one of the
25 25
unidades de cálculo extrínseca no implicadas en la etapa (c) por al menos un extrinsic calculation units not involved in step (c) by at least one
banco de información extrínseca no implicado en la etapa (c) y que trabaja extrinsic information bank not involved in stage (c) and that works
hacia atrás (bw) en las iteraciones pares mientras que trabaja hacia delante (fw) backward (bw) in even iterations while working forward (fw)
en las iteraciones impares. in odd iterations.
30 30
6. Sistema para turbo decodificación iterativa de baja tasa de error y baja complejidad que 6. System for turbo iterative decoding of low error rate and low complexity that
implementa un método conforme a la reivindicación 2 caracterizado por que comprende implements a method according to claim 2 characterized in that it comprises
un banco de memoria de entrada, una unidad de control, un decodificador SOY A no an input memory bank, a control unit, a decoder I AM A does not
paralelo fw/bw, un banco de memoria extrínseca y una unidad de cálculo extrínseco; de parallel fw / bw, an extrinsic memory bank and an extrinsic calculation unit; from
fonnaque, fonnaque,
35 35
a. el banco de memoria de entrada almacena las métricas LLR, las entrelaza to. the input memory bank stores LLR metrics, interlaces them
cuando lleva a cabo una semi-iteración, y proporciona el bloque al when it performs a semi-iteration, and provides the block to the
correspondiente decodificador SOYA no paralelo fw/bw; corresponding SOYA non-parallel fw / bw decoder;
b. el decodificador SOY A no paralelo fw/bw calcula métricas a-posterior hacia b. the decoder I AM A non-parallel fw / bw calculates metrics a-posterior towards
delante en las iteraciones impares y hacia atrás en las iteraciones pares; forward in odd iterations and backward in even iterations;
40 40
c. la unidad de control determina el comportamiento de las diferentes unidades C. the control unit determines the behavior of the different units
dependiendo de la iteración o semi-iteración que se lleve a cabo en cada depending on the iteration or semi-iteration that is carried out in each
momento; moment;
d. Y la unidad de cálculo extrínseco calcula la información extrínseca utilizando d. And the extrinsic calculation unit calculates the extrinsic information using
las métricas LLR y las métricas a-posteriari. LLR metrics and a-poster metrics.
7. Sistema para turbo decodificación iterativa de baja tasa de error y baja complejidad que 7. System for turbo iterative decoding of low error rate and low complexity that implementa un método confonne a la reivindicación 3 caracterizado por que comprende un Banco de Memoria de Entrada 701, una Unidad de Control 702, un Banco Paralelo de Decodificadores SOYA fwlbw 704 que comprende dos o más decodificadores SOY A fwlbw 703, un Banco de Memoria Extrínseca 70S, y una Unidad de Cálculo Extrínseco 706; de fonna que It implements a method according to claim 3 characterized in that it comprises an Input Memory Bank 701, a Control Unit 702, a Parallel Bank of SOYA fwlbw 704 Decoders comprising two or more SOY A fwlbw 703 decoders, an Extrinsic Memory Bank 70S, and an Extrinsic Calculation Unit 706; so that
a. to.
el Banco de Memoria de Entrada 701 almacena las métricas LLR, las entrelaza cuando lleva a cabo una semi·iteración, y proporciona el suh-bloque correspondiente a cada decodificador SOYA fwlbw 703 comprendido en el Banco Paralelo de Decodificadores SOY A 704; Input Memory Bank 701 stores LLR metrics, interlaces them when performing a semi-iteration, and provides the corresponding suh-block to each SOYA fwlbw 703 decoder included in the Parallel Bank of SOY A 704 Decoders;
b. b.
cada decodificador SOY A fw/bw 703 comprendido en el Banco Paralelo de Decodificadores SOY A fwlbw 704 calcula métricas a·posterior hacia delante en las iteraciones impares y hacia atrás en las iteraciones pares; each decoder I AM A fw / bw 703 included in the Parallel Bank of Decoders I AM A fwlbw 704 calculates metrics backwards forward in odd iterations and backwards in even iterations;
c. C.
la Unidad de Control 702 detennina el comportamiento de las diferentes unidades dependiendo de la iteración o semi-iteración que se lleve a cabo en cada momento; Control Unit 702 determines the behavior of the different units depending on the iteration or semi-iteration that is carried out at each moment;
d. d.
y la Unidad de Cálculo Extrinseca 1206 calcula la información extrínseca utilizando las métricas LLR y las métricas a-posteriori. and Extrinsic Calculation Unit 1206 calculates extrinsic information using LLR metrics and a-posteriori metrics.
8. Sistema según la reivindicación anterior caracterizado por que el Banco Paralelo de Decodificadores SOYA fwlbw 704 comprende 8. System according to the preceding claim characterized in that the SOYA fwlbw 704 Parallel Decoder Bank comprises
a. to.
Uno o más elementos 1303 que aplican un retardo de dos iteraciones completas (cuatro semi-iteraciones) a las PMs para facilitar su intercambio entre los decodificadores; One or more elements 1303 that apply a delay of two complete iterations (four semi-iterations) to the PMs to facilitate their exchange between decoders;
b. b.
y uno o más registros 1302 que almacenan el estado durante la misma iteración en la que son usados. and one or more records 1302 that store the state during the same iteration in which they are used.
9. Sistema segun la reivindicación anterior caracterizado por que cada decodificador paralelo SOYA fwlbw 703 comprende: 9. System according to the preceding claim characterized in that each SOYA fwlbw 703 parallel decoder comprises:
a. to.
Una Unidad Recursiva 801 que realiza las siguientes funciones, tanto hacia delante como hacia atrás: O) calcular la métrica de camino o PM para cada uno de los N estados; (ii) seleccionar el camino superviviente y (¡ii) obtener el peso de esta decisión como la diferencia de las PMs entre los caminos supervivientes, utilizándose dichas decisiones relativas a los caminos supervivientes y los pesos correspondientes para cada estado, para construir los vectores Y y W. de longitud N; A Recursive Unit 801 that performs the following functions, both forward and backward: O) calculate the road or PM metric for each of the N states; (ii) select the surviving road and (ii) obtain the weight of this decision as the difference of the MPs between the surviving roads, using these decisions relative to the surviving roads and the corresponding weights for each state, to construct the vectors Y and W. of length N;
b. b.
Un retardador 802 que aplica a los pesos W (diferencias entre las PMs) un retardo en ciclos de reloj; A retarder 802 that applies to the weights W (differences between the PMs) a delay in clock cycles;
c. C.
Una Unidad de Memoria de Supervivientes 803 que, en base a las decisiones relativas que recibe, realiza el recorrido hacia atrás (TB) para encontrar el camino ML A Survivor Memory Unit 803 that, based on the relative decisions it receives, travels backwards (TB) to find the ML path
d. d.
Una Unidad de Control 804 que implementa una máquina de estados finitos que activa las señales de control apropiadas para el resto de unidades del decodificador paralelo SOY A 703, pennitiendo a dichas unidades el realizar su función en la dirección hacia delante o hacia atrás dependiendo de la iteración en la que se encuentre; A Control Unit 804 that implements a finite state machine that activates the appropriate control signals for the remaining units of the SOY A 703 parallel decoder, allowing said units to perform their function in the forward or backward direction depending on the iteration in which you are;
e. and.
y una Unidad de Actualización SOS que. en función de los estados del camino ML, actualiza los pesos calculados por la Unidad Recursiva 801 realizando un doble recorrido hacia atrás (un TB obtiene el camino ML, mientras que el otro obtiene el camino competidor) de forma que, en cada etapa en la que el bit decidido para ambos caminos difiere, se lleva una actualización que consiste en la selección del peso mínimo entre el camino competidor y los caminos ML, obteniéndose finalmente las métricas LLR aMposterior en las direcciones hacia delante o hacia atrás dependiendo de la iteración actual. and an SOS Update Unit that. depending on the states of the ML path, it updates the weights calculated by the Recursive Unit 801 by double-traversing backwards (one TB obtains the ML path, while the other obtains the competing path) so that, at each stage in the that the bit decided for both paths differs, an update is carried out consisting of the selection of the minimum weight between the competing path and the ML paths, finally obtaining the LLR aMposter metrics in the forward or reverse directions depending on the current iteration.
10. Sistema según la reivindicación anterior caracterizado por que la Unidad Recursiva 801 comprende: 10. System according to the preceding claim characterized in that Recursive Unit 801 comprises:
a. to.
Una Red de Conexión 901 que entrega el PM adecuado de la etapa previa a cada Elemento Recursivo 902 dependiendo de la dirección (hacia delante o hacia atrás), implementando para ello, por ejemplo, un banco de multiplexores y registros para almacenar la PM previa; A Connection Network 901 that delivers the appropriate PM from the previous stage to each Recursive Element 902 depending on the direction (forward or backward), implementing for this, for example, a bank of multiplexers and registers to store the previous PM;
b. b.
y dos o más Elementos Recursivos 902 que (i) calculan la métrica de camino o PM para cada uno de los N estados; (ii) seleccionan el camino superviviente y and two or more Recursive Elements 902 that (i) calculate the road or PM metric for each of the N states; (ii) select the surviving path and
(iii) obtienen el peso de esta decisión como la diferencia de las PMs entre los caminos supervivientes. (iii) obtain the weight of this decision as the difference of the MPs between the surviving roads.
11. eleven.
Sistema para turbo decodificación iterativa de baja tasa de error y baja complejidad conforme cualquier de las reivindicaciones 7 a 10 que implementa un método conforme a la reivindicación 4 caracterizado por que la Unidad de Control 1304 garantiza el System for turbo iterative decoding of low error rate and low complexity according to any of claims 7 to 10 that implements a method according to claim 4 characterized in that the Control Unit 1304 guarantees the
intercambio de estados y PMs conforme con el método objeto de la reivindicación 4. exchange of states and PMs according to the method object of claim 4.
12. 12.
Sistema para turbo decodificación iterativa de baja tasa de error y baja complejidad que implementa un método conforme a la reivindicación 5 caracterizado por que comprende un Banco de Memoria de Entrada 1101, una Unidad de Control 1102, dos o más Bancos Paralelos de Decodificadores SOYA fwlbw 704 que comprenden dos o más decodificadores SOYA fw/bx, uno o más Bancos de Memoria Extrínsecosll03, uno o más Bancos de Memoria Extrinsecos 1104, y dos o más Unidades de Cálculo Extrínseco 706; de forma que System for turbo iterative decoding of low error rate and low complexity that implements a method according to claim 5 characterized in that it comprises an Input Memory Bank 1101, a Control Unit 1102, two or more SOYA fwlbw 704 Parallel Decoder Banks comprising two or more SOYA fw / bx decoders, one or more Extrinsic Memory Banks 03, one or more Extrinsic Memory Banks 1104, and two or more Extrinsic Calculation Units 706; so that
a. to.
el Banco de Memoria de Entrada 1I0lalimenta simultáneamente a los dos o más decodificadores SOYA fw/bw 703 comprendidos en los dos o más Bancos Paralelos de Decodificadores SOYA fwlbw 704; the 1I0 Input Memory Bank simultaneously feeds the two or more SOYA fw / bw 703 decoders included in the two or more SOYA fwlbw 704 Decoder Parallel Banks;
b. b.
el al menos un Banco de Memoria Extrínseco 1103 siempre desentrelaza la información extrínseca, trabajando hacia delante en las iteraciones impares y hacia atrás en las iteraciones pares; the at least one Extrinsic Memory Bank 1103 always deinterlaces the extrinsic information, working forward in odd iterations and backward in even iterations;
c. C.
el al menos un Banco de Memoria Extrínseco 1104 siempre entrelaza la información extrínseca, trabajando hacia delante en las iteraciones impares y hacia atrás en las iteraciones pares; the at least one Extrinsic Memory Bank 1104 always intertwines the extrinsic information, working forward in odd iterations and backward in even iterations;
d. d.
la Unidad de Control 702 determina el comportamiento de las diferentes unidades dependiendo de la iteración o semi-iteración que se lleve a cabo en cada momento; Control Unit 702 determines the behavior of the different units depending on the iteration or semi-iteration that is carried out at each moment;
e. and.
y las dos o más Unidades de Cálculo Extrínseco 706 calculan la información extrínseca utilizando las métricas LLR y las métricas a-posteriori. and the two or more Extrinsic Calculation Units 706 calculate the extrinsic information using LLR metrics and a-posteriori metrics.
13. 13.
Sistema según la reivindicación anterior caracterizado por que el Banco Paralelo de Decodificadores SOYA fwlbw 704 comprende System according to the preceding claim characterized in that the SOYA fwlbw 704 Parallel Decoder Bank comprises
14. 14.
Sistema según la reivindicación anterior caracterizado por que cada decodificador paralelo SOYA fwlbw 703 comprende: System according to the preceding claim characterized in that each SOYA fwlbw 703 parallel decoder comprises:
a. to.
Una Unidad Recursiva 801 que realiza las siguientes funciones, tanto hacia delante como hacia atrás: (i) calcular la métrica de camino o PM para cada uno de los N estados; (ii) seleccionar el camino superviviente y (jii) obtener el peso de esta decisión como la diferencia de las PMs entre los caminos supervivientes, utilizándose dichas decisiones relativas a los caminos supervivientes y los pesos correspondientes para cada estado, para construir los vectores Y y W, de longitud N; A Recursive Unit 801 that performs the following functions, both forward and backward: (i) calculate the road or PM metric for each of the N states; (ii) select the surviving road and (jii) obtain the weight of this decision as the difference of the MPs between the surviving roads, using these decisions relative to the surviving roads and the corresponding weights for each state, to construct the vectors Y and W, of length N;
b. b.
Un retardador 802 que aplica a los pesos W (diferencias entre las PMs) un retardo en ciclos de reloj; A retarder 802 that applies to the weights W (differences between the PMs) a delay in clock cycles;
c. C.
Una Unidad de Memoria de Supervivientes 803 que, en base a las decisiones relativas que recibe, realiza el recorrido hacia atrás (TB) para encontrar el camino ML; A Survivor Memory Unit 803 that, based on the relative decisions it receives, travels backwards (TB) to find the ML path;
d. d.
Una Unidad de Control 804 que implementa una máquina de estados finitos que A Control Unit 804 that implements a finite state machine that
a. to.
Uno o más elementos que aplican un retardo de dos iteraciones completas One or more items that apply a two full iteration delay
(cuatro semi-iteraciones) (four semi-iterations)
a las PMs para facilitar su intercambio entre los to the PMs to facilitate its exchange between the
decodificadores; decoders;
b. b.
y uno o más registros que almacenan el estado durante la misma iteración en la and one or more records that store the status during the same iteration in the
que son usados. that are used
activa las señales de control apropiadas para el resto de unidades del decodificador paralelo SOY A fw/bw 703, pennitiendo a dichas unidades el realizar su función en la dirección hacia delante o hacia atrás dependiendo de la iteración en la que se encuentre; activates the appropriate control signals for the rest of the units of the parallel decoder SO A fw / bw 703, allowing these units to perform their function in the forward or backward direction depending on the iteration in which they are located; e. y una Unidad de Actualización 805 que, en función de los estados del camino ML, actualiza los pesos calculados por la Unidad Recursiva 801 realizando un doble recorrido hacia atrás (un TB obtiene el camino ML, mientras que el otro obtiene el camino competidor) de fonna que, en cada etapa en la que el bit decidido para ambos caminos difiere, se lleva una actualización que consiste en la selección del peso mínimo entre el camino competidor y los caminos ML, obteniéndose finalmente las métricas LLR a-posterior en las direcciones hacia delante o hacia atrás dependiendo de la iteración actual. and. and an Update Unit 805 which, depending on the states of the ML path, updates the weights calculated by the Recursive Unit 801 by double-backing (one TB obtains the ML path, while the other obtains the competing path) of Fonna that, at each stage in which the bit decided for both paths differs, an update is carried out consisting of the selection of the minimum weight between the competing path and the ML paths, finally obtaining the LLR metrics a-posterior in the directions towards forward or backward depending on the current iteration.
15. Sistema según la reivindicación anterior caracterizado por que la Unidad Recursiva 801 comprende: 15. System according to the preceding claim characterized in that Recursive Unit 801 comprises:
a. to.
Una Red de Conexión 901 que entrega el PM adecuado de la etapa previa a cada Elemento Recursivo 902 dependiendo de la dirección (hacia delante o hacia atrás), implementando para ello, por ejemplo, un banco de multiplexores y registros para almacenar la PM previa; A Connection Network 901 that delivers the appropriate PM from the previous stage to each Recursive Element 902 depending on the direction (forward or backward), implementing for this, for example, a bank of multiplexers and registers to store the previous PM;
b. b.
y dos o más Elementos Recursivos 902 que (i) calculan la métrica de camino o PM para cada uno de los N estados; (ii) seleccionan el camino superviviente y and two or more Recursive Elements 902 that (i) calculate the road or PM metric for each of the N states; (ii) select the surviving path and
(iii) obtienen el peso de esta decisión como la diferencia de las PMs entre los caminos supervivientes. (iii) obtain the weight of this decision as the difference of the MPs between the surviving roads.
16. Programa informático adaptado para la realización de un método conforme a cualquiera de las reivindicaciones I a 5, o que comprende instrucciones para llevar a cabo las etapas comprendidas en un método conforme a cualquiera de las reivindicaciones 1 a 5. 16. Computer program adapted for carrying out a method according to any of claims I to 5, or comprising instructions for carrying out the steps comprised in a method according to any of claims 1 to 5. 5 17. Medio de almacenamiento legible en computador que comprende un programa informático conforme a la reivindicación anterior, o instrucciones para hacer que un 5 17. Computer readable storage medium comprising a computer program according to the preceding claim, or instructions for making a aparato de procesamiento de datos lleve a cabo las etapas comprendidas en un método conforme a cualquiera de las reivindicaciones 1 a 5. Data processing apparatus carries out the steps comprised in a method according to any one of claims 1 to 5. 10 18. Medio portador de grabación con un programa informático conforme a la reivindicación 16 grabado en dicho medio portador de grabación. 10 18. Recording carrier medium with a computer program according to claim 16 recorded on said recording carrier medium. 19. Onda portadora de señal portando señales que incorporan un programa infonnático confonne a la reivindicación 16. 19. Signal carrier wave carrying signals incorporating an infonnatic program according to claim 16.
ES201400891A 2014-11-06 2014-11-06 Systems and methods for turbo iterative decoding of low error rate and low complexity Active ES2561913B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
ES201400891A ES2561913B2 (en) 2014-11-06 2014-11-06 Systems and methods for turbo iterative decoding of low error rate and low complexity
PCT/ES2015/000161 WO2016071546A1 (en) 2014-11-06 2015-11-06 Systems and methods for iterative turbo decoding with a low error rate and of low complexity

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ES201400891A ES2561913B2 (en) 2014-11-06 2014-11-06 Systems and methods for turbo iterative decoding of low error rate and low complexity

Publications (2)

Publication Number Publication Date
ES2561913A1 ES2561913A1 (en) 2016-03-01
ES2561913B2 true ES2561913B2 (en) 2016-08-10

Family

ID=55360538

Family Applications (1)

Application Number Title Priority Date Filing Date
ES201400891A Active ES2561913B2 (en) 2014-11-06 2014-11-06 Systems and methods for turbo iterative decoding of low error rate and low complexity

Country Status (1)

Country Link
ES (1) ES2561913B2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010044919A1 (en) * 2000-05-05 2001-11-22 Edmonston Brian S. Method and apparatus for improved perormance sliding window decoding
JP2004080508A (en) * 2002-08-20 2004-03-11 Nec Electronics Corp Decoding method for error correction code, its program, and its device
EP1398881A1 (en) * 2002-09-05 2004-03-17 STMicroelectronics N.V. Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
CN101373978B (en) * 2007-08-20 2011-06-15 华为技术有限公司 Method and apparatus for decoding Turbo code

Also Published As

Publication number Publication date
ES2561913A1 (en) 2016-03-01

Similar Documents

Publication Publication Date Title
KR101323444B1 (en) Iterative Decoder and Iterative Decoding Method
US9337866B2 (en) Apparatus for processing signals carrying modulation-encoded parity bits
CN1168237C (en) component decoder in mobile communication system and method thereof
US9048877B2 (en) Turbo code parallel interleaver and parallel interleaving method thereof
CN101777924A (en) Method and device for decoding Turbo codes
CN104092470B (en) A kind of Turbo code code translator and method
Sun et al. Configurable and scalable high throughput turbo decoder architecture for multiple 4G wireless standards
WO2001084720A9 (en) Reduced-latency soft-in/soft-out module
Muller et al. Exploring parallel processing levels for convolutional turbo decoding
Mahdavi et al. Spatially coupled serially concatenated codes: Performance evaluation and VLSI design tradeoffs
US20130007568A1 (en) Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
CN102340320B (en) Bidirectional and parallel decoding method of convolutional Turbo code
Martin-Vega et al. Further improvements in SOVA for high-throughput parallel turbo decoding
Gonzalez-Perez et al. Parallel and configurable turbo decoder implementation for 3GPP-LTE
ES2561913B2 (en) Systems and methods for turbo iterative decoding of low error rate and low complexity
Chen et al. A 691 Mbps 1.392 mm 2 configurable radix-16 turbo decoder ASIC for 3GPP-LTE and WiMAX systems in 65nm CMOS
Karim et al. An improved low-power high-throughput log-MAP turbo decoder
Muller et al. Spc05-3: On the parallelism of convolutional turbo decoding and interleaving interference
Lin et al. Efficient highly-parallel turbo decoder for 3GPP LTE-Advanced
May et al. Evaluation of high throughput turbo-decoder architectures
US10116337B2 (en) Decoding method for convolutionally coded signal
EP2005597A1 (en) Scheduling pipelined state update for high-speed trellis processing
Ramteke et al. Hdl implementation of turbo decoder using soft output viterbi algorithm
Ramteke et al. Performance analysis of Turbo decoder using soft output Viterbi algorithm
Ljunger Turbo decoder with early stopping criteria

Legal Events

Date Code Title Description
FG2A Definitive protection

Ref document number: 2561913

Country of ref document: ES

Kind code of ref document: B2

Effective date: 20160810