ES2339295T3 - DECODIFICATION PROCESS IN MESSAGE PASS WITH A CLASSIFICATION OF THE NODES ACCORDING TO A RELIABILITY RELIABILITY. - Google Patents

DECODIFICATION PROCESS IN MESSAGE PASS WITH A CLASSIFICATION OF THE NODES ACCORDING TO A RELIABILITY RELIABILITY. Download PDF

Info

Publication number
ES2339295T3
ES2339295T3 ES07787874T ES07787874T ES2339295T3 ES 2339295 T3 ES2339295 T3 ES 2339295T3 ES 07787874 T ES07787874 T ES 07787874T ES 07787874 T ES07787874 T ES 07787874T ES 2339295 T3 ES2339295 T3 ES 2339295T3
Authority
ES
Spain
Prior art keywords
nodes
node
decoding
reliability
control
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
ES07787874T
Other languages
Spanish (es)
Inventor
Valentin Savin
Dimitri Ktenas
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.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
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 Commissariat a lEnergie Atomique CEA filed Critical Commissariat a lEnergie Atomique CEA
Application granted granted Critical
Publication of ES2339295T3 publication Critical patent/ES2339295T3/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The invention relates to an iterative method by message passing for decoding of an error correction code that can be displayed in a bipartite graph comprising a plurality of variable nodes and a plurality of check nodes. For each iteration in a plurality of decoding iterations of said method: variable nodes or check nodes are classified (720) as a function of the corresponding degrees of reliability of decoding information available in the neighborhoods (Vn(d),Vm(d)) of these nodes, a node with a high degree of reliability being classified before a node with a low degree of reliability; each node thus classified (725) passes at least one message (αmn,βmn) to an adjacent node, in the order defined by said classification. The invention also relates to a computer program designed to implement said decoding method.

Description

Procedimiento de descodificación en paso de mensajes con una clasificación de los nodos según una fiabilidad de vecinaje.Decoding procedure in step of messages with a classification of the nodes according to a reliability of neighborhood.

       \global\parskip0.900000\baselineskip\ global \ parskip0.900000 \ baselineskip
    
Campo técnicoTechnical field

La presente invención se refiere a la decodificación de códigos correctores de errores en el campo de las telecomunicaciones y del registro de datos. De manera más precisa, la invención está relacionada con un procedimiento de descodificación iterativo en paso de mensajes de códigos correctores de errores susceptibles de una representación mediante gráfico bipartito, tales como los códigos LDPC (Low Density Parity Check) o los turbocódigos.The present invention relates to the decoding of error correction codes in the field of telecommunications and data recording. More precisely, the invention is related to an iterative decoding process in the passage of error correction code messages susceptible to a bipartite graphic representation, such as LDPC ( Low Density Parity Check ) codes or turbocodes.

Estado de la técnica anteriorPrior art

Los códigos correctores de errores susceptibles de representación mediante gráfico bipartito abarcan una gran diversidad de códigos, en particular los códigos LDPC, inicialmente descritos por R. Gallager en su artículo titulado "Low density parity check codes", publicado en IEEE Trans. Inform. Theory, vol. IT-8, páginas 21-28, 1962, cuyas interesantes propiedades han sido redescubiertas recientemente, y los turbocódigos introducidos por C. Berrou y cols., en su artículo fundador "Near optimum error correcting coding and decoding": turbocodes, aparecido en IEEE Trans. Inform. Theory, vol. 44, núm. 10, páginas 1261-1271, 1996.Corrective error codes of representation by means of a bipartite graph cover a large code diversity, particularly LDPC codes, initially described by R. Gallager in his article entitled "Low density parity check codes ", published in IEEE Trans. Inform. Theory, vol. IT-8, pages 21-28, 1962, whose interesting properties have been rediscovered recently, and the turbocodes introduced by C. Berrou and cols., in its founding article "Near optimum error correcting coding and decoding ": turbocodes, appeared in IEEE Trans. Inform. Theory, vol. 44, no. 10, pages 1261-1271, nineteen ninety six.

Se denomina gráfico bipartito un gráfico no orientado, cuyo conjunto de nodos está constituido por dos subconjuntos disyuntos tales como dos nodos cualesquiera de un mismo subconjunto que no están unidos entre sí por una arista del gráfico.It is called a two-part graph a graph not oriented, whose set of nodes consists of two disjoint subsets such as any two nodes of a same subset that are not linked together by an edge of the graphic.

Algunos códigos correctores de errores son susceptibles de una representación mediante gráfico bipartito. El gráfico está dividido en un primer subconjunto de nodos asociados a los símbolos que constituyen una palabra de código, y un segundo subconjunto de nodos asociados a las restricciones del código, típicamente a los controles de paridad. Un gráfico bipartito asociado a un grupo de restricciones, se denomina también gráfico de Tanner.Some error correction codes are susceptible of a representation by means of a bipartite graph. He chart is divided into a first subset of nodes associated with the symbols that constitute a code word, and a second subset of nodes associated with code restrictions, typically at parity controls. A bipartite chart associated with a group of restrictions, it is also called a graph of Tanner

Los símbolos de la palabra de código son, en general, elementos del cuerpo de Galois F_{2} = {0,1}, dicho de otro modo de los bits, pero pueden ser, de forma más general, elementos de un cuerpo de característica 2 cualquiera F_{2}', y por consiguiente de un alfabeto 2^{p}-ario. En lo que sigue, nos limitaremos sin pérdida de generalidad al caso en que
p = 1, es decir, a los códigos binarios.
The symbols of the code word are, in general, elements of the body of Galois F_ {2} = {0,1}, in other words of the bits, but they can be, more generally, elements of a body of feature 2 any F 2 ' , and therefore of a 2 p -ary alphabet. In what follows, we will limit ourselves without loss of generality to the case in which
p = 1, that is, to binary codes.

Los códigos susceptibles de representación mediante gráfico bipartito, pueden ser descodificados por medio de una descodificación iterativa en paso de mensajes, conocida también como de tipo MP (Message Passing) o BP (Belief Propagation). Se encontrará una descripción genérica de este método de descodificación en la tesis de N. Wiberg, titulada "Codes and decoding on general graphs", 1996. La decodificación iterativa de tipo MP es, de hecho, una generalización de algoritmos bien conocidos en el campo de la descodificación, a saber el algoritmo "forward-backward" utilizado para los turbocódigos, y el algoritmo de Gallager para los códigos LDPC.The codes that can be represented by a two-part graphic can be decoded by means of an iterative decoding in message passing, also known as MP ( Message Passing ) or BP ( Belief Propagation ). A generic description of this method of decoding can be found in the thesis of N. Wiberg, entitled "Codes and decoding on general graphs", 1996. The iterative decoding of type MP is, in fact, a generalization of well-known algorithms in the field of decoding, namely the "forward-backward" algorithm used for turbo codes, and the Gallager algorithm for LDPC codes.

En un intento de simplificación, recurriremos en lo que sigue al principio de descodificación iterativa por paso de mensajes en el marco de un código LDPC. Consideraremos un código lineal {K,N} donde K es la dimensión del código que representa el número de bits de información, y N es la longitud del código, que representa el número de bits codificados. M = N - K corresponde al número de bits de paridad o, de manera equivalente, al número de restricciones de paridad.In an attempt to simplify, we will resort to what follows the principle of iterative decoding by passing messages within the framework of an LDPC code. We will consider a linear code { K, N } where K is the dimension of the code that represents the number of bits of information, and N is the length of the code, which represents the number of coded bits. M = N - K corresponds to the number of parity bits or, equivalently, to the number of parity restrictions.

En la Figura 1 se ha ilustrado el gráfico de Tanner de un código lineal {K,N}. Se ha hecho figurar, a la izquierda del gráfico, los nodos correspondientes a los bits del código, denominados también nodos de tipo "variable" o incluso de manera más simple "variables", y a la derecha, los nodos correspondientes a los controles de paridad, denominados también nodos de tipo "control", o incluso de manera más simple "controles". La matriz de incidencia del gráfico corresponde a la matriz de paridad del código que es de dimensión M x N. Así, el gráfico bipartito comprende N nodos de tipo "variable" y M nodos de tipo "control", estando un nodo n de variable ligado a un nodo m de control si, y solo si,
h_{nm} = 1. Por ejemplo, el gráfico de la Figura 1 corresponde a un código (10,5) que posee la matriz de paridad siguiente:
The Tanner graph of a linear code { K, N } is illustrated in Figure 1. The nodes corresponding to the bits of the code, also called "variable" or even more simply "variable" types, and to the right, the nodes corresponding to the parity controls have been included on the left of the graph. , also called nodes of type "control", or even more simply "controls". The incidence matrix of the graph corresponds to the parity matrix of the code that is of dimension M x N. Thus, the bipartite graph comprises N nodes of type "variable" and M nodes of type "control", being a node n of variable linked to a control node m if, and only if,
h_ {nm} = 1. For example, the graph in Figure 1 corresponds to a code (10.5) that has the following parity matrix:

1one

Se recuerda, de manera general, que un código lineal está definido por una matriz generadora G cuyos elementos son valores lineales binarios, y que una palabra de código x = (x_{1}, x_{2}, ..., x_{N}) se obtiene a partir de una palabra de bits de información a = (\alpha_{1}, \alpha_{2}, ..., \alpha_{k}) por medio de:It is generally recalled that a linear code is defined by a generating matrix G whose elements are binary linear values, and that a code word x = (x_ {1}, x_ {2}, ..., x_ { N}) is obtained from a word of information bits a = (\ alpha_ {1}, \ alpha_ {2}, ..., \ alpha_ {k}) by means of:

       \global\parskip1.000000\baselineskip\ global \ parskip1.000000 \ baselineskip
    

100100

Puesto que todas las palabras de código verifican los controles de paridad, se tiene la relación:Since all code words Check the parity controls, you have the relationship:

101101

donde se ha indicado mediante G^{T} la transformada de la matriz G.where indicated by G ^ {T} transform matrix G.

La palabra de código x es transmitida por un canal de comunicación, o registrada en un soporte de datos. Con la recepción o la lectura del soporte, se recupera una versión ruidosa de x, a saber y = (y_{1}, y_{2}, ..., y_{N}). La operación de descodificación consiste en hallar x y con ello a, a partir de la observación y.The code word x is transmitted by a communication channel, or registered in a data carrier. With the reception or reading of the medium, a noisy version of x is recovered, namely y = ( y_ {1}, y_ {2}, ..., y_ {N} ). The decoding operation consists in finding xy with it a , from the observation y .

Convendremos las notaciones siguientes antes de describir el principio de descodificación iterativa en paso de mensajes:We will agree the following notations before describe the principle of iterative decoding in step of posts:

H(n) designa el conjunto de controles ligados a la variable n en el gráfico bipartito, o dicho de otro modo, el conjunto de nodos adyacentes al nodo n; H (n) designates the set of controls linked to variable n in the bipartite graph, or in other words, the set of nodes adjacent to node n ;

H(m) es el conjunto de variables asociadas al control m en el gráfico bipartito, o dicho de otro modo, el conjunto de nodos adyacentes al nodo m; H (m) is the set of variables associated with the control m in the bipartite graph, or in other words, the set of nodes adjacent to the node m ;

\alpha_{n} representa la información a priori concerniente a la variable n del gráfico bipartito, o dicho de otro modo, la información a priori concerniente al n^{ésimo} bit de la palabra de código. Esta información tiene en cuenta la señal recibida y las características del canal de transmisión. La misma constituye la entrada del descodificador, y es suministrada generalmente por el demodulador en forma de valores flexibles, es decir en términos de probabilidades: α_ {n} represents the a priori information concerning the variable n of the bipartite graph, or in other words, the a priori information concerning the nth bit of the code word. This information takes into account the received signal and the characteristics of the transmission channel. It constitutes the decoder input, and is generally supplied by the demodulator in the form of flexible values, that is to say in terms of probabilities:

102102

donde p_{n}^{\alpha} = Pr(x_{n} = \alpha|y_{n}), \alpha\in{0,1},where p_ {n} ^ {\ alpha} = Pr (x_ {n} = \ alpha | y_ {n} , \ alpha \ in {0,1},

es decir, más cómodamente en forma de una relación logarítmica de probabilidades o LLR:that is, more comfortably in the form of a logarithmic ratio of probabilities or LLR:

22

       \vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
    

De ese modo, mediante un ruido BBCG (ruido blanco centrado gaussiano) y una modulación BPSK, el demodulador calcula simplemente:That way, using a BBCG noise (noise Gaussian centered white) and a BPSK modulation, the demodulator simply calculate:

33

       \vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
    

donde \sigma^{2} es la varianza del ruido. where \ sigma2 is the variance of noise.

\alpha_{mn} representa el mensaje transmitido por la variable n al control m\inH(n). Por referencia a los turbocódigos, \alpha_{mn} se conoce incluso como información extrínseca;α_ {mn} represents the message transmitted by the variable n to the control m \ in H ( n ). By reference to the turbo codes, α_ {mn} is even known as extrinsic information;

\beta_{nm} representa, de manera simétrica, el mensaje transmitido por el control m a la variable n\inH(m). El mismo está calificado igualmente como información extrínseca;βnm represents, symmetrically, the message transmitted by the control m to the variable n \ in H ( m ). It is also classified as extrinsic information;

\hat{\alpha}_{n} representa la información a posteriori relativa a la variable n; la misma tiene en cuenta a la vez la información a priori \alpha_{n} y los mensajes \beta_{nm} recibidos por la variable n desde sus controles adyacentes durante la descodificación;\ hat {α} n represents the a posteriori information relative to the variable n ; it takes into account both the a priori \ alpha_ {n} information and the \ beta_ {nm} messages received by the variable n from its adjacent controls during decoding;

\overline{\alpha}_{n} es el valor rígido correspondiente al valor flexible \hat{\alpha}_{n}, dicho de otro modo la toma de muestra para el bit x_{n}.\ overline {\ alpha} _ {n} is the rigid value corresponding to the flexible value \ hat {\ alpha} _ {n}, in other words the sampling for bit x_ {n} .

El principio de descodificación iterativa por paso de mensajes ha sido ilustrado en la Figura 2.The principle of iterative decoding by Message passing has been illustrated in Figure 2.

En la etapa 210, se procede a la inicialización de los mensajes \alpha_{mn}, para cada par de variable n y control m\inH(n). Los mensajes \alpha_{mn} son inicializados generalmente por las informaciones a priori, es decir: \alpha_{mn} = \alpha_{n}, \forallm\inH(n). Se inicializa igualmente el contador de iteraciones Iter mediante puesta a 0.In step 210, the initialization of the messages \ alpha_ {mn} is carried out , for each pair of variable n and control m \ in H ( n ). The messages \ alpha_ {mn} are generally initialized by the a priori information, that is: \ alpha_ {mn} = \ alpha_ {n} , \ forall m \ in H ( n ). The Iter iteration counter is also initialized by setting to 0.

La etapa de inicialización va seguida de un bucle de iteración que comprende las siguientes etapas:The initialization stage is followed by a iteration loop comprising the following stages:

En 220, se procede al tratamiento de los controles. De forma más precisa, para cada control m, se calculan los mensajes \beta_{nm} del control m con destino a las variables respectivas n\inH(m), es decir:In 220, the controls are processed. More precisely, for each control m , the messages β of the control m are calculated with destination to the respective variables n \ in H ( m ), that is:

44

en la que se ha indicado con F_{c} la función de tratamiento de los controles. Para un par de nodos m,n\inH(m) cualquiera dado, el mensaje \beta_{nm} se calcula en función de los mensajes que en sí mismo recibió el control m desde las variables n'\inH(m)-{n}. Se constata, por consiguiente, que no hay reenvío de información extrínseca desde un nodo de variable sobre sí mismo. La etapa de tratamiento de los controles se denomina también etapa horizontal.in which the control treatment function has been indicated with F_ {c} . For a pair of nodes m, n \ in H (m) any given message \ beta_ {nm} is calculated based on the messages itself received the m control from the variables n '\ in H (m) - { n }. It is found, therefore, that there is no forwarding of extrinsic information from a variable node on itself. The control treatment stage is also called the horizontal stage.

En 230, se procede simétricamente al tratamiento de las variables. De manera más precisa, para cada variable n, se calculan los mensajes \alpha_{mn} con destino a los controles respectivos m\inH(n), es decir:In 230, we proceed symmetrically to the treatment of the variables. More precisely, for each variable n , the messages α_ {mn} are calculated for the respective controls m \ in H ( n ), that is:

55

en la que se ha indicado con F_{v} la función de tratamiento de las variables. Para un par de nodos n,m\inH(n) dados, el mensaje \alpha_{nm} se calcula en función de los mensajes que han recibido la variable n de los controles m'\inH(n)-{m} de modo que, al igual que en lo que antecede, no hay reenvío de información extrínseca de un nodo en sí mismo. La etapa de tratamiento de las variables se denomina también etapa vertical.in which the treatment function of the variables has been indicated with F_ {v} . For a pair of nodes n, m \ in H ( n ) given, the message \ alpha_ {nm} is calculated based on the messages that have received the variable n of the controls m ' \ in H ( n ) - { m } So, as in the foregoing, there is no forwarding of extrinsic information from a node itself. The stage of treatment of the variables is also called the vertical stage.

En 240, se estima la información a posteriori \hat{\alpha}_{n} a partir de la información a priori \alpha_{n} y de los mensajes \beta_{mn} recibidos por la variable n de parte de sus nodos de control adyacentes m\inH(n), lo que se expresa simbólicamente mediante:At 240, the a posteriori information \ hat {\ alpha} _ {n} is estimated from the a priori information \ alpha_ {n} and the messages \ beta_ {mn} received by the variable n from their nodes adjacent control m \ in H ( n ), which is expressed symbolically by:

66

en la que se ha indicado con F_{AP} la función de estimación a posteriori.in which the a posteriori estimation function has been indicated with F_ {AP} .

En 250, se toma una decisión sobre los valores rígidos \overline{\alpha}_{n} a partir de los valores flexibles \hat{\alpha}_{n}, es decir:In 250, a decision is made about the values rigid \ overline {\ alpha} _ {n} from flexible values \ hat {\ alpha} n, that is:

77

en la que se ha indicado con F_{0} la función de decisión. Típicamente, para una modulación BPSK, la decisión se toma sobre el signo del valor flexible, es decir, \overline{\alpha}_{n} = sgn(\hat{\alpha}_{n}). Se identificará en lo que sigue, por razones de comodidad, el valor de un bit con su valor modulado. Se representará convencionalmente el bit "0" mediante el valor "+1" y el bit "1" mediante el valor "-1".in which the decision function has been indicated with F_ {0} . Typically, for a BPSK modulation, the decision is made on the sign of the flexible value, that is, \ overline {\ alpha} _ {n} = sgn (\ hat {\ alpha} n). The value of a bit with its modulated value will be identified in the following, for convenience. The "0" bit will be conventionally represented by the "+1" value and the "1" bit by the "-1" value.

En 260, se comprueba si el vector \overline{\alpha} = (\alpha_{1}, \alpha_{3}, ..., \alpha_{N}) es una palabra de código, es decir, si satisface los controles de paridad. En caso afirmativo, se sale del bucle en 265, siendo \overline{\alpha} la palabra descodificada. En caso negativo, se incrementa el número de iteraciones en 267, y se compara, en 270, si el número de iteraciones efectuadas Iter ha alcanzado un valor de umbral Iter_máx. Si no es ese el caso, se continúa la descodificación iterativa volviendo al bucle de la etapa 220. En su defecto, se concluye el fracaso de la operación de descodificación, y se sale en 275.In 260, it is checked whether the vector \ overline {\ alpha} = ( \ alpha_ {1}, \ alpha_ {3}, ..., \ alpha_ {N} ) is a code word, that is, if it satisfies the parity controls If so, the loop is exited at 265, with \ overline {\ alpha} being the decoded word. If not, the number of iterations is increased by 267, and it is compared, at 270, if the number of iterations carried out Iter has reached a threshold value Iter _max. If that is not the case, iterative decoding is continued by returning to the loop of step 220. Failing that, the failure of the decoding operation is concluded, and exit 275.

El orden de las etapas en el bucle de iteración puede diferir del que se ha expuesto en la Figura 2. En particular, se puede invertir el orden de tratamiento de las variables y de los controles, y comenzar entonces por una inicialización de los mensajes \beta_{mn}:\beta_{mn}=0, \foralln\in{1,...,N} y \forallm\inH(n).The order of the stages in the iteration loop may differ from that shown in Figure 2. In particular, the order of processing of the variables and controls can be reversed, and then begin with an initialization of the messages \ beta_ {mn} : \ beta_ {mn} = 0, \ forall n \ in {1, ..., N } and \ forall m \ in H ( n ).

Según el principio de descodificación iterativa presentado en la Figura 2, se procede al tratamiento de todos los controles y después de todas las variables, o bien, según se ha mencionado en lo que antecede, al tratamiento de todas las variables y después de todos los controles. Se habla entonces de "planificación paralela", o incluso de "planificación por inundación" (flooding scheduling). Otros tipos de planificaciones han sido propuestos en la bibliografía; éstos pueden ser clasificados en dos categorías:According to the principle of iterative decoding presented in Figure 2, we proceed to the treatment of all controls and after all the variables, or, according to mentioned above, to the treatment of all variables and after all controls. There is talk about "parallel planning", or even "planning by flooding (scheduling). Other types of planning they have been proposed in the bibliography; these might be classified into two categories:

- planificación de tipo serie, categoría en la que se pueden ordenar las planificaciones denominadas "serial scheduling", "shuffled-BP", "horizontal shuffled" o "vertical shuffled". La planificación de tipo serie es aplicable también tanto a los controles como a las variables. Para una aplicación a los controles, la descodificación utiliza la siguiente estrategia:- serial type planning, category in that the so-called "serial" schedules can be sorted scheduling "," shuffled-BP "," horizontal shuffled "or" vertical shuffled. "Type planning series is also applicable to both controls and variables For an application to controls, decoding use the following strategy:

\bullet?
se procede, en primer lugar, al tratamiento de un solo umbral m calculando los mensajes \beta_{mn} con destino a las variables n\inH(m);first, we proceed to the treatment of a single threshold m by calculating the messages \ beta_ {mn} destined to the variables n \ in H ( m );

\bullet?
se actualizan y se transmiten los mensajes \alpha_{mn} de cada variable n\inH(m) con destino a los controles m'\inH(n)-{m}. Se actualizan igualmente las informaciones a posteriori \hat{\alpha}_{n}, relativas a las mismas variables;the messages \ alpha_ {mn} of each variable n \ in H ( m ) are updated and transmitted to the controls m ' \ in H ( n ) - { m }. The information a posteriori \ hat {\ n}, relative to the same variables, is also updated;

\bullet?
se procede al tratamiento del control siguiente y se repiten las dos etapas precedentes hasta el agotamiento de los controles.the treatment of next check and the previous two steps are repeated until the depletion of controls.

       \vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
    

De manera dual, se puede efectuar un tratamiento, variable por variable, en lugar de efectuar un tratamiento control por control. Según el caso previsto, se hablará de planificación "horizontal shuffled" o de planificación "vertical shuffled".In a dual way, you can make a treatment, variable by variable, instead of making a control by control treatment. According to the case provided, we will talk "horizontal shuffled" planning or planning "vertical shuffled".

Se pueden hibridar también las dos planificaciones citadas anteriormente en forma de una planificación denominada "mixta" o "group-shuffled". Se encontrará una descripción de la estrategia de descodificación correspondiente a una planificación mixta en el artículo de J- Zhang y cols., titulado "Shuffled iterative decoding" aparecido en IEEE Trans. On Comm., Vol. 53, núm. 2, Febrero de 2005, páginas 209-213. La estrategia está basada en una partición de los nodos por grupos, siendo el tratamiento en paralelo en el seno de un grupo, y en serie de un grupo al siguiente. De manera más precisa, para una partición en grupos de controles:You can also hybridize both schedules mentioned above in the form of a schedule called "mixed" or "group-shuffled". Be you will find a description of the decoding strategy corresponding to a mixed planning in the J- article Zhang et al., Entitled "Shuffled iterative decoding" appeared  in IEEE Trans. On Comm., Vol. 53, no. 2, February 2005, pages 209-213. The strategy is based on a partition of the nodes by groups, being the parallel treatment in the within a group, and in series from one group to the next. By way of more precise, for a partition in groups of controls:

\bullet?
se procede al tratamiento de un primer grupo G formado por los controles {m_{1}, m_{2}, ..., m_{g}} calculando los mensajes \beta_{mn} con destino a las variables n\inH(m_{i}) para i=1, ..., g;the first group G is formed by the controls { m_ {1}, m_ {2}, ..., m_ {g} } calculating the messages \ beta_ {mn} destined to the variables n \ in H ( m_ {i} ) for i = 1, ..., g ;

\bullet?
se actualizan y se transmiten los mensajes \alpha_{mn} de cada variable n\inH(m_{i}), i=1, ..., g con destino a los controles respectivos m'\inH(n)-{m}. Se actualizan igualmente las informaciones a posteriori \acute{\alpha}_{n} relativas a estas mismas variables;the messages \ alpha_ {mn} of each variable n \ in H ( m_ {i} ), i = 1, ..., g are updated and transmitted to the respective controls m ' \ in H ( n ) - { m }. The a posteriori \ α {n} information related to these same variables is also updated;

\bullet?
se procede al tratamiento del grupo de controles siguiente, y se repiten las dos etapas anteriores hasta el agotamiento de los grupos de controles.the treatment of next group of controls, and the previous two stages are repeated until the exhaustion of the control groups.

       \vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
    

De manera dual, se puede operar sobre la base de una partición por grupos de variables en lugar de una partición por grupos de controles.In a dual way, it can be operated on the basis of a partition by groups of variables instead of a partition by control groups

En las Figuras 3, 4 y 5 se ha ilustrado esquemáticamente el mecanismo de paso de mensajes, respectivamente, para una planificación paralelo, una planificación serie y una planificación mixta. Se ha supuesto que se procedía al tratamiento de los controles con anterioridad al tratamiento de las variables. En la Figura 3 se ha hecho aparecer la primera etapa de tratamiento de los controles (a) y la primera etapa de tratamiento de las variables (b). En las Figuras 4 y 5 se ha hecho aparecer la primera (a) y la segunda (c) etapas de tratamiento de los controles, así como la primera etapa (b) y la segunda etapa (d) de tratamiento de las variables. En la Figura 5, el conjunto de nodos de control ha sido dividido en dos grupos indicados como G_{1} y G_{2}, que son tratados secuencialmente.Figures 3, 4 and 5 schematically illustrate the message passing mechanism, respectively, for parallel planning, serial planning and mixed planning. It has been assumed that the controls were treated prior to the treatment of the variables. In Figure 3 the first stage of treatment of the controls (a) and the first stage of treatment of the variables (b) have been shown. In Figures 4 and 5 the first (a) and the second (c) stages of treatment of the controls have been shown, as well as the first stage (b) and the second stage (d) of treatment of the variables. In Figure 5, the set of control nodes has been divided into two groups indicated as G1 and G2 , which are treated sequentially.

Se debe señalar que la planificación serie y la planificación paralelo, pueden ser vistas de hecho como casos particulares de una planificación mixta, correspondiendo la primera al caso de que los grupos estén reducidos a singletones (instancias únicas), y correspondiendo la segunda al caso de que un grupo comprenda el conjunto de todos los nodos de control (respectivamente de variables).It should be noted that serial planning and parallel planning, can in fact be seen as cases particular of a mixed planning, corresponding the first in case the groups are reduced to singletones (instances unique), and the second one corresponds to the case that a group understand the set of all control nodes (respectively of variables).

El documento US 2005/0268204 describe un descodificador de códigos LDPC en el que, en base a las fiabilidades de los valores de probabilidad de los elementos binarios adquiridos por la unidad de detección, una unidad de control determina una temporización de las operaciones para ejecutar una operación LDPC.US 2005/0268204 describes a LDPC code decoder in which, based on the reliability  of the probability values of the binary elements acquired by the detection unit, a control unit determines a timing of operations to execute an operation LDPC

Se conocen dos algoritmos principales de descodificación iterativa de paso de mensajes para los códigos LDPC: el algoritmo SPA (Sum Product Algoritm), denominado también "log-BP", y el algoritmo "Min-Sum" denominado también "based BP". Se encontrará una descripción detallada de estos dos algoritmos en el artículo de W.E. Ryan titulado "An introduction to LDPC codes", publicado en "CRC Handbook for coding and signal processing for recording systems", y disponible en el enlace www.csee.wvu.edu/wcrl/ldpc.htm. There are two main iterative decoding algorithms for message passing for LDPC codes: the SPA algorithm ( Sum Product Algoritm ), also called "log-BP", and the " Min-Sum " algorithm also called "based BP". A detailed description of these two algorithms can be found in the WE Ryan article entitled "An introduction to LDPC codes", published in "CRC Handbook for coding and signal processing for recording systems", and available at the link www.csee.wvu. edu / wcrl / ldpc.htm.

Los algoritmos SPA y Min-Sum solamente difieren en la etapa de tratamiento de los controles que será detallada más adelante. Las otras etapas son idénticas, a saber:The SPA and Min-Sum algorithms only differ in the treatment stage of the controls that It will be detailed later. The other stages are identical, to to know:

La etapa 230 de tratamiento de las variables consiste en calcular los mensajes \alpha_{mn} como sigue:The step 230 of treating the variables consists in calculating the messages α_ {mn} as follows:

88

en la que B'_{mn} representa el conjunto de mensajes \beta'_{mn} recibidos por la variable n de parte de los controles m'\inH(n)-{m}, y C_{mn} representa el evento correspondiente a un control de paridad comprobado para cada uno de esos controles. Bajo reserva de la independencia de las y_{n}, se muestra que \alpha_{mn} puede expresarse en forma LLR mediante:where B 'mn represents the set of messages ? beta' mn received by the variable n from the controls m ' \ in H ( n ) - { m }, and C_ {mn} represents the event corresponding to a checked parity control for each of those controls. Subject to the independence of the y_ {n} , it is shown that α_ {mn} can be expressed in LLR form by:

99

La etapa 240 de estimación de la información a posteriori consiste en calcular:The step 240 for estimating the information a posteriori consists in calculating:

1010

en la que B_{n} representa los mensajes recibidos por la variable n de todos los controles de H(n), y C_{n} representa el evento correspondiente a un control de paridad verificado para cada uno de estos controles. Bajo la misma hipótesis que lo anterior, se muestra que \hat{\alpha}_{n} puede expresarse bajo la forma de LLR mediante:in which B_ {n} represents the messages received by the variable n of all H ( n ) controls, and C_ {n} represents the event corresponding to a verified parity control for each of these controls. Under the same hypothesis as above, it is shown that \ hat {α} n can be expressed in the form of LLR by:

11eleven

Se observa que, a partir de (11) y (13):It is observed that, from (11) and (13):

1212

La etapa 230 de tratamiento de las variables puede estar situada, por consiguiente, al final de la iteración, después de la estimación de la información a posteriori. La expresión (14) traduce el hecho de que no retorna la información extrínseca (en este caso \beta_{mn}) enviada por un nodo (m) hacia sí mismo.The step 230 of treating the variables can therefore be located at the end of the iteration, after the estimation of the information afterwards . The expression (14) translates the fact that it does not return the extrinsic information (in this case \ beta_ {mn} ) sent by a node ( m ) to itself.

La etapa 250 de decisión de los valores rígidos se realiza simplemente mediante:Stage 250 of decision of rigid values It is done simply by:

1313

en la que sgn(x)=1 si x es positiva, y sgn(x)=-1 si no lo es.in which sgn ( x ) = 1 if x is positive, and sgn ( x ) = - 1 if it is not.

La verificación en 260 de los controles de paridad sobre los valores rígidos, pasa por el cálculo de los controles de paridad:Verification in 260 of the controls of parity over rigid values, goes through the calculation of parity controls:

1414

Los controles de paridad son todos satisfactorios si, y solo si:Parity controls are all satisfactory yes, and only if:

15fifteen

La etapa de tratamiento de los controles 220 consiste en calcular, mediante el algoritmo SPA:The treatment stage of controls 220 It consists in calculating, using the SPA algorithm:

1616

en la que C_{m} = 1 significa una condición de paridad satisfecha para el control m, y A*_{mn} representa el conjunto de mensajes \alpha_{mn'} recibidos por el control m de parte de las variables n'\inH(m)-{n}. Se muestra que \beta_{mn} puede expresarse mediante:in which C_ {m} = 1 means a condition of parity satisfied for the control m , and A * _n} represents the set of messages \ alpha_ {mn '} received by the control m from part of the variables n' \ in H ( m ) - { n }. It is shown that β mn can be expressed by:

1717

       \vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
    

siendo 18 being 18

       \vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
    

El tratamiento de los controles según el algoritmo Min-Sum corresponde a una simplificación de la expresión (19). Por el hecho de la disminución rápida de la función \Phi(x) y de la igualdad de \Phi(x) con su recíproca, es decir, \Phi(\Phi(x))=x, se puede efectuar legítimamente la siguiente aproximación:The treatment of controls according to Min-Sum algorithm corresponds to a simplification of the expression (19). Due to the rapid decrease of function \ Phi (x) and the equality of \ Phi (x) with its reciprocal, that is, \ Phi (\ Phi (x)) = x, you can legitimately make the following approach:

1919

El algoritmo de descodificación Min-Sum es sensiblemente más simple que el algoritmo de descodificación SPA puesto que no efectúa más que adiciones, comparaciones y cambios de signo. Además, los comportamientos del algoritmo Min-Sum son independientes de la estimación de la varianza del ruido \sigma^{2}.The decoding algorithm Min-Sum is significantly simpler than the algorithm of decoding SPA since it does not make more than additions, Comparisons and sign changes. In addition, the behaviors of Min-Sum algorithm are independent of the noise variance estimation sig2.

Aunque los rendimientos del algoritmo de descodificación SPA sean mejores que los del algoritmo Min-Sum, los mismos pueden degradarse severamente en caso de una mala estimación de la potencia de ruido.Although the algorithm returns from SPA decoding is better than the algorithm Min-Sum, they can be severely degraded in case of a bad estimate of the noise power.

El objeto general de la presente invención consiste en proponer un algoritmo de descodificación iterativa del tipo de paso de mensajes, que permita descodificar un código corrector de error susceptible de representación mediante gráfico bipartito, que posea mejores comportamientos en términos de índice de error y de velocidad de convergencia, que los algoritmos del mismo tipo conocidos en el estado de la técnica.The general object of the present invention it consists in proposing an iterative decoding algorithm of the type of message step, which allows you to decode a code error corrector that can be represented by graphic bipartite, that has better behaviors in terms of index of error and speed of convergence, that the algorithms of the same type known in the state of the art.

Un primer objeto de la invención consiste en proponer un algoritmo de descodificación iterativa del tipo de paso de mensajes, que permita descodificar un código LDPC con una complejidad sustancialmente inferior a la del algoritmo SPA, todo ello presentando, para una relación señal-ruido dada, comportamientos comparables, o incluso superiores, en términos de índice de error, y que, por añadidura, no necesite una estimación de la potencia de ruido.A first object of the invention consists in propose an iterative decoding algorithm of the step type of messages, which allows decoding an LDPC code with a complexity substantially lower than the SPA algorithm, all this presenting, for a signal-to-noise ratio given, comparable behaviors, or even higher, in error rate terms, and that, in addition, you do not need a noise power estimation.

Otro objeto particular de la presente invención consiste en proponer un algoritmo de descodificación del tipo de paso de mensajes, que permita la descodificación de códigos LDPC con una velocidad de convergencia más elevada que la de los algoritmos CPA o Min-Sum.Another particular object of the present invention is to propose a decoding algorithm of the type of message passing, which allows decoding of LDPC codes with a higher convergence rate than algorithms CPA or Min-Sum.

Exposición de la invenciónExhibition of the invention

La presente invención está definida por un método de descodificación iterativa del tipo de paso de mensajes para descodificar un código corrector de errores susceptible de representación mediante un gráfico bipartito que comprende una pluralidad de nodos de variable y una pluralidad de nodos de control, siendo el citado método tal que, para cada iteración de una pluralidad de iteraciones de descodificación:The present invention is defined by a iterative decoding method of message passing type to decode an error correction code susceptible to representation by means of a bipartite graph comprising a plurality of variable nodes and a plurality of nodes of control, said method being such that, for each iteration of a plurality of decoding iterations:

- se efectúa una clasificación de los nodos de variable o bien de los nodos de control en función de los grados de fiabilidad respectivos de las informaciones de descodificación disponibles en las proximidades de estos nodos, poseyendo un nodo un grado de fiabilidad elevado que está clasificado por delante de un nodo que posee un grado de fiabilidad bajo;- a classification of the nodes of variable or control nodes depending on the degrees of respective reliability of decoding information available in the vicinity of these nodes, owning a node a high degree of reliability that is rated ahead of a node that has a low degree of reliability;

- los nodos así clasificados pasan, cada uno de ellos, al menos un mensaje a un nodo adyacente, en el orden definido por la citada clasificación.- the nodes so classified pass, each of they, at least one message to an adjacent node, in the order defined by the aforementioned classification.

       \vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
    

Según un primer modo de realización, la citada clasificación comprende, para cada nodo a clasificar, el cálculo de una medición de fiabilidad de las informaciones presentes, enviadas o recibidas por los nodos situados a menos de una distancia predeterminada de este último, en el seno del gráfico bipartito, y la selección de los valores de las mediciones así obtenidas.According to a first embodiment, said classification includes, for each node to be classified, the calculation of a measurement of reliability of the information present, sent or received by nodes located less than a distance default of the latter, within the bipartite chart, and the selection of the values of the measurements thus obtained.

Para cada iteración de la citada pluralidad, se opera después secuencialmente sobre los nodos clasificados en el orden definido por la citada clasificación y, para cada nodo clasificado, se calculan los mensajes con destino a los nodos que le son adyacentes y, para cada uno de los citados nodos adyacentes, los mensajes con destino a los propios nodos adyacentes a este mismo.For each iteration of the said plurality, then operates sequentially on the nodes classified in the order defined by the aforementioned classification and, for each node classified, messages are calculated for the nodes that they are adjacent to you and, for each of the aforementioned adjacent nodes, messages destined to the nodes adjacent to this one same.

Según un segundo modo de realización, la citada clasificación comprende, para cada nodo a clasificar, el cálculo de una medición de fiabilidad de las informaciones presentes, enviadas o recibidas por los nodos situados a menos de una distancia predeterminada de este nodo en el seno del gráfico bipartito. Los nodos están agrupados por intervalos de valores de la citada medición.According to a second embodiment, said classification includes, for each node to be classified, the calculation of a measurement of reliability of the information present, sent or received by nodes located less than a distance default of this node within the bipartite graph. The nodes are grouped by ranges of values of the aforementioned measurement.

Si la medición de fiabilidad tiene valores enteros, se almacenan para cada uno de los citados valores enteros, en una zona de memoria que se asocia a este valor, los índices de los nodos cuya medición de fiabilidad es igual a este último.If the reliability measurement has values integers, are stored for each of the aforementioned integer values, in an area of memory that is associated with this value, the indexes of the nodes whose reliability measurement is equal to the latter.

Para cada iteración de la citada pluralidad, se opera secuencialmente sobre los grupos de nodos en el orden definido por la citada clasificación y, para cada uno de los grupos de nodos, se calculan los mensajes con destino a los nodos que le son adyacentes y, para cada uno de los citados nodos adyacentes, los mensajes con destino a los propios nodos adyacentes a estos últimos.For each iteration of the said plurality, operates sequentially on the groups of nodes in the order defined by the aforementioned classification and, for each of the groups of nodes, the messages destined to the nodes are calculated they are adjacent and, for each of the aforementioned adjacent nodes, the messages destined to the nodes adjacent to these last.

Según una variante, cada iteración de la citada pluralidad comprende, además, para cada nodo de variable de dicho gráfico bipartito, una etapa de cálculo de una información a priori, ya presente en ese nodo, y mensajes recibidos por ese nodo procedentes de los nodos de control adyacentes.According to a variant, each iteration of said plurality also includes, for each variable node of said bipartite graph, a step of calculating a priori information, already present in that node, and messages received by that node from the nodes adjacent control.

La etapa de cálculo de información a posteriori puede ir seguida de una etapa de decisión sobre el valor rígido de la citada variable.The step of calculating information a posteriori may be followed by a decision stage on the rigid value of said variable.

Se comprueba después si los valores de las variables así obtenidas verifican los controles de paridad asociados a todos los nodos de control del gráfico y, en caso afirmativo, se proporciona como palabra descodificada la palabra constituida por los citados valores rígidos.It is checked later if the values of the variables thus obtained verify the associated parity controls  to all control nodes of the graph and, if so, it provides as decoded word the word constituted by the aforementioned rigid values.

Ventajosamente, la clasificación se interrumpe después de un número de iteraciones de descodificación predeterminado, prosiguiendo el procedimiento de descodificación a continuación de sus iteraciones de descodificación en ausencia de la citada clasificación de los citados nodos de variables o bien de los citados nodos de control.Advantageously, the classification is interrupted after a number of decoding iterations default, continuing the decoding procedure to continuation of your decoding iterations in the absence of the aforementioned classification of the aforementioned variable nodes or of the mentioned control nodes.

La clasificación se interrumpe si el mínimo, en valor absoluto, de las diferencias entre los valores a posteriori y los valores a priori de las citadas variables, es superior a un valor de umbral predeterminado, continuando el procedimiento de descodificación en ausencia de dicha clasificación de los citados nodos de variable o bien de los citados nodos de control.The classification is interrupted if the minimum, in absolute value, of the differences between the a posteriori values and the a priori values of the aforementioned variables, is greater than a predetermined threshold value, continuing the decoding procedure in the absence of said classification of the aforementioned variable nodes or the mentioned control nodes.

En una primera aplicación, el citado código corrector de errores es un turbocódigo.In a first application, the aforementioned code Bug fixer is a turbocode.

En una segunda aplicación, el citado código corrector de errores es un código LDPC (K,N) representado por un gráfico bipartito de N nodos de variable, y M = N-K nodos de control.In a second application, said error correction code is an LDPC code ( K, N ) represented by a bipartite graph of N variable nodes, and M = NK control nodes.

       \newpage\ newpage
    

En este último caso, el mensaje \betamn de un nodo de control de índice m\in{1, ..., M) a un nodo de variable de índice n\in{1, ..., N), podrá ser calculado mediante:In the latter case, the message \ betamn of an index control node m \ in {1, ..., M ) to an index variable node n \ in {1, ..., N ), may be calculated by:

20twenty

en la que \alpha_{mn'} designa el mensaje del nodo de variable de índice n' al nodo de control de índice m, H(m) el conjunto de los nodos de variables adyacentes al nodo de control de índice m, sgn(x)=1 si x es positiva y sgn(x)=-1 si no lo es,wherein \ alpha_ {mn '} designates the message from the index variable node n ' to the index control node m , H ( m ) the set of variable nodes adjacent to the index control node m , sgn ( x ) = 1 if x is positive and sgn ( x ) = - 1 if it is not,

y 21 Y twenty-one

Alternativamente, el mensaje \beta_{mn} de un nodo de control de índice m\in{1, ..., M} a un nodo de variable de índice n\in{1, ..., N) podrá ser calculado mediante:Alternatively, the message \ beta_ {mn} from an index control node m \ in {1, ..., M } to an index variable node n \ in {1, ..., N ) can be calculated through:

2222

en la que \alpha_{mn'} designa el mensaje del nodo de variable de índice n' al nodo de control de índice m, H(m) el conjunto de nodos de variable adyacentes al nodo de control de índice m, sgn(x)=1 si x es positiva y sgn(x)=-1 si no lo es.wherein \ alpha_ {mn '} designates the message from index variable node n ' to index control node m , H ( m ) the set of variable nodes adjacent to index control node m , sgn ( x ) = 1 if x is positive and sgn ( x ) = - 1 if it is not.

Según un ejemplo de realización, la clasificación recae sobre los nodos de control, y la distancia predeterminada es igual a 2. La medición de fiabilidad de un nodo de control de índice m se calcula entonces como:According to an embodiment, the classification falls on the control nodes, and the predetermined distance is equal to 2. The reliability measurement of an index control node m is then calculated as:

232. 3

en la que H(m) designa el conjunto de nodos de variable adyacentes al nodo de control de índice m, H(n) el conjunto de nodos de control adyacentes al nodo de variable de índice n, Card(.) designa el cardinal de un conjunto, con c=0 si c_{m}=+1 y c=\delta_{max}+1 si c_{m}=-1, en la que \delta_{max} es el grado máximo de los nodos de control en el gráfico bipartito, y en la que c_{m}=+1 / c_{m}=-1 significan, respectivamente, que el control de paridad ha sido verificado/ no ha sido verificado, para el nodo de control de índice m.wherein H ( m ) designates the set of variable nodes adjacent to the index control node m , H ( n ) the set of control nodes adjacent to the index variable node n , Card (.) designates the cardinal of a set, with c = 0 if c_ {m} = + 1 and c = \ delta_ {max} +1 if c_ {m} = -1, where \ delta_ {max} is the maximum degree of the nodes of control in the bipartite graph, and in which c_ {m} = + 1 / c_ {m} = -1 mean, respectively, that the parity control has been verified / has not been verified, for the index control node m .

La invención se refiere, por último, a un programa de ordenador que comprende medios lógicos adaptados para llevar a cabo las etapas del procedimiento de descodificación definido con anterioridad cuando es ejecutado por un ordenador.The invention relates, finally, to a computer program comprising logical means adapted to carry out the steps of the decoding procedure defined previously when it is executed by a computer.

Breve descripción de los dibujosBrief description of the drawings

La Figura 1 representa un ejemplo del gráfico de Tanner para un código (K,N);Figure 1 represents an example of the Tanner chart for a code ( K, N );

La Figura 2 ilustra, de manera esquemática, el principio de una descodificación iterativa por paso de mensajes conocido en el estado de la técnica;Figure 2 illustrates, schematically, the principle of iterative decoding per message step known in the state of the art;

La Figura 3 representa las primeras iteraciones de una descodificación iterativa en paso de mensajes según una planificación de tipo paralelo;Figure 3 represents the first iterations of an iterative decoding in message step according to a parallel type planning;

La Figura 4 representa las primeras iteraciones de una descodificación iterativa en paso de mensajes según una planificación de tipo serie;Figure 4 represents the first iterations of an iterative decoding in message step according to a serial type planning;

La Figura 5 representa las primeras iteraciones de una descodificación iterativa en paso de mensajes según una planificación de tipo mixto;Figure 5 represents the first iterations of an iterative decoding in message step according to a mixed type planning;

Las Figuras 6A y 6B representan, respectivamente, el vecinaje de orden 1 y de orden 2 de un nodo;Figures 6A and 6B represent, respectively, the neighborhood of order 1 and order 2 of a node;

La Figura 7 representa el principio de una descodificación iterativa en paso de mensajes según la invención;Figure 7 represents the beginning of a iterative decoding in message step according to the invention;

La Figura 8 representa un procedimiento de descodificación iterativa en paso de mensajes según un primer modo de realización de la invención;Figure 8 represents a procedure of iterative decoding in message step according to a first mode of embodiment of the invention;

La Figura 9 representa un procedimiento de descodificación iterativa en paso de mensajes según un segundo modo de realización de la invención;Figure 9 represents a procedure of iterative decoding in message passing according to a second mode of embodiment of the invention;

La Figura 10 representa un ejemplo de aplicación del procedimiento de descodificación según la invención, para descodificar un código LDPC, yFigure 10 represents an application example of the decoding process according to the invention, for decode an LDPC code, and

La Figura 11 indica el índice de error obtenido mediante el procedimiento de descodificación según la invención por comparación con los métodos del estado de la técnica, para un código LDPC particular.Figure 11 indicates the error rate obtained by the decoding process according to the invention by comparison with prior art methods, for a code LDPC particular.

Exposición detallada de modos de realización particularesDetailed exposition of particular embodiments

Se considera de nuevo un código corrector de errores susceptible de una representación por medio de un gráfico bipartito con N variables y M controles.Again, a corrective error code is considered susceptible to a representation by means of a bipartite graph with N variables and M controls.

Se denomina distancia entre dos nodos \nu,\mu del gráfico y se indica como D(\nu,\mu), la longitud, expresada en número de aristas, del camino más corto que une estos nodos a través del gráfico. Teniendo en cuenta la definición misma de un gráfico bipartito, se deduce que la distancia entre dos nodos del mismo tipo es un número par, y que la distancia entre dos nodos de tipos diferentes es un número impar.The distance between two nodes \ nu, \ mu of the graph is called and is indicated as D ( \ nu, \ mu ), the length, expressed in number of edges, of the shortest path that joins these nodes through the graph. Taking into account the very definition of a bipartite graph, it follows that the distance between two nodes of the same type is an even number, and that the distance between two nodes of different types is an odd number.

Se define el vecinaje de orden d de un nodo \nu cualquiera de un gráfico \Gamma, el conjunto V_{\nu}^{(d)} de los nodos situados a una distancia inferior o igual a d desde \nu, es decir:The neighborhood of order d of any node \ nu of a graph \ Gamma is defined, the set V _ {\ nu} ^ {(d)} of the nodes located at a distance less than or equal to d from \ nu , that is :

2424

Así, el vecinaje de orden 0 de un nodo no es otro que el propio nodo, el vecinaje de orden 1 es la reunión del vecinaje de orden 0 con el conjunto de nodos adyacentes a ese nodo, el vecinaje de orden 2 es la reunión del vecinaje de orden 1 con el conjunto de los nodos adyacentes a todo su alrededor a los nodos de este último, y así sucesivamente. Para un gráfico bipartito, constituido por variables n y controles m, los vecinajes de orden 0 a 2 de estos nodos vienen dados por:Thus, the neighborhood of order 0 of a node is none other than the node itself, the neighborhood of order 1 is the meeting of the neighborhood of order 0 with the set of nodes adjacent to that node, the neighborhood of order 2 is the meeting of the order 2 neighborhood of order 1 with the set of nodes adjacent all around the nodes of the latter, and so on. For a bipartite graph, consisting of variables n and controls m , the neighbors of order 0 to 2 of these nodes are given by:

2525

       \vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
    

Se apreciará que el singletón {n} (respectivamente {m}) no aparece en la expresión V_{n}^{(2)} (respectivamente V_{m}^{(2)}) debido a que ya está incluido en el segundo término de la unión teniendo en cuenta la simetría de la relación de adyacencia.It will be appreciated that the singlet {n} (respectively {m}) does not appear in the expression V_ {n} ^ {(2)} (respectively V_ {m} ^ {2)} because it is already included in the second term of the union taking into account the symmetry of the adjacency relationship.

De manera general, los vecinajes de un nodo \nu de un gráfico bipartito, pueden obtenerse por medio de la relación de recurrencia:In general, the neighbors of a node \ nu of a bipartite graph can be obtained through the recurrence relationship:

2626

Con el fin de explicar la noción de vecinaje, se han representado en las Figuras 6A y 6B los vecinajes de orden 1 y 2 de un nodo de control m del gráfico de la Figura 1. Los nodos pertenecientes a los citados vecinajes han sido indicados en reticulado.In order to explain the notion of neighborliness, the neighbors of order 1 and 2 of a control node m of the graph of Figure 1 have been represented in Figures 6A and 6B. The nodes belonging to said neighborhoods have been indicated in crosslinked

En lo que sigue, se denominará medición de fiabilidad de orden d de un nodo \nu de \Gamma, una variable f_{d}(\nu) dependiente de las informaciones de descodificación disponibles en el seno del vecinaje V_{\Gamma}^{(d)}, es decir, de las informaciones presentes, enviadas o recibidas por los nodos pertenecientes a dicho vecinaje, y que indican el grado de fiabilidad local de la operación de descodificación. Aquí calificaremos la medición como "positiva" cuando f_{d}(\nu) sea más elevada de lo elevado que sea el grado de fiabilidad, y como "negativa" en caso contrario.Hereinafter, measurement reliability of order d of a \ nu \ Gamma a variable f _ {d} (\ nu) node dependent information decoding available within the vecinaje V _ {\ Gamma} is called ^ (d)} , that is, of the information present, sent or received by the nodes belonging to said neighbor, and which indicate the degree of local reliability of the decoding operation. Here we will rate the measurement as "positive" when f d (nu) is higher than the degree of reliability, and as "negative" otherwise.

La información de descodificación disponible en un nodo m de control comprende, por una parte, el valor c_{m}, que indica la verificación o no del control de paridad y, por otra parte, los mensajes \beta_{mn} transmitidos a los nodos de variable adyacentes n\inH(m). El valor c_{m}, así como los mensajes \beta_{mn} son portadores de una información de fiabilidad sobre la descodificación.The decoding information available on a control node m comprises, on the one hand, the value c_ {m} , which indicates the verification or not of the parity control and, on the other hand, the messages ? Β {mn} transmitted to the adjacent variable nodes n \ in H ( m ). The value c_ {m} , as well as the messages \ beta_ {mn} are carriers of reliable information about decoding.

La información disponible en un nodo n de variable comprende la información a priori \alpha_{n}, la información a posteriori \hat{\alpha}_{n}, los mensajes de información extrínseca \alpha_{mn} con destino a los nodos de control adyacentes m\inH(n), así como los valores rígidos \overline{\alpha}_{n}.The data available in a node n variable comprising the information a priori \ alpha {n}, the a posteriori information \ hat {\ alpha} _ {n}, messages extrinsic information \ alpha {mn} destined to nodes adjacent control m \ in H ( n ), as well as the rigid values \ overline {\ alpha} _ {n}.

Las informaciones citadas en lo que antecede, con excepción de los valores rígidos, son portadores de una información de fiabilidad acerca de la descodificación.The information cited above, with the exception of rigid values, they are carriers of a Reliability information about decoding.

De manera general, si se consideran los valores flexibles \beta_{mn}, \alpha_{mn}, \alpha_{n}, \hat{\alpha}_{n}, expresados en forma de LLR, la descodificación será considerada tanto más fiable cuanto más elevados en valor absoluto sean estos últimos.In general, if the flexible values ? Beta_ {mn}, \ alpha_ {mn}, \ alpha_ {n} , \ hat {\ alpha} {n}, expressed in the form of LLR are considered, decoding will be considered both more reliable the higher in absolute value the latter are.

En lo que sigue daremos algunos ejemplos ilustrativos y no limitativos de mediciones de fiabilidad para los órdenes 0 a 2:In the following we will give some examples illustrative and non-limiting reliability measurements for Orders 0 to 2:

- mediciones de fiabilidad de orden 0:- reliability measurements of order 0:

El vecinaje se reduce entonces al nodo en sí mismo. Se podrá elegir para la medición de fiabilidad de orden cero de un nodo n de variable, la función:The neighborhood is then reduced to the node itself. The function can be chosen for the measurement of zero order reliability of a node n of variable:

2727

la cual indica el grado de confianza que se tiene en el valor rígido \overline{\alpha}_{n}.which indicates the degree of confidence in rigid value \ overline {\ alpha} _ {n}.

Para un nodo de control m se podrá elegir simplemente la función:For a control node m you can simply choose the function:

2828

Se comprende, en efecto, que si se verifica que el control de paridad ha sido (c_{m}=1), la descodificación será más fiable que si no se verifica.It is understood, in effect, that if it is verified that the parity control has been ( c_ {m} = 1), the decoding will be more reliable than if it is not verified.

- mediciones de fiabilidad de orden 1:- reliability measurements of order 1:

Se distinguirán de nuevo nodo de variable y nodo de control. Para un nodo de variable se podrá elegir para la medición de fiabilidad de orden 1, una de las funciones siguientes:Variable node and node will be distinguished again of control. For a variable node you can choose for the reliability measurement of order 1, one of the functions following:

2929

3030

La expresión (27) representa el número de nodos de control m enlazados al nodo de variable n para los que se verifica el control de paridad.The expression (27) represents the number of control nodes m linked to the variable node n for which the parity control is verified.

La expresión (28) tiene en cuenta la irregularidad del código (es decir, la posibilidad de que los nodos de variable tengan grados diferentes), y hace el balance de los controles de paridad verificados y no verificados.The expression (28) takes into account the irregularity of the code (i.e. the possibility of nodes variable have different degrees), and takes stock of Verified and unverified parity controls.

Las expresiones (27') y (28') son mediciones negativas correspondientes a las mediciones positivas (27) y (28).The expressions (27 ') and (28') are measurements negative corresponding to the positive measurements (27) and (28).

La medición de fiabilidad expresada en (29) es conservadora, puesto que está fundada en una minoración de la información de fiabilidad recibida desde los nodos de control adyacentes.The measurement of reliability expressed in (29) is conservative, since it is founded on a reduction of the reliability information received from the control nodes adjacent.

Para un nodo m de control, se podrá elegir para medición de fiabilidad de orden 1, una de las funciones siguientes:For a control node m , one of the following functions may be chosen for reliability measurement of order 1:

3131

La expresión (30) indica el mínimo de las fiabilidades (informaciones a posteriori) de las variables a las que está conectado el control m.The expression (30) indicates the minimum of the reliability (information a posteriori ) of the variables to which the control m is connected.

La expresión (31) traduce un criterio similar, pero recae sobre las informaciones extrínsecas. Se apreciará que la misma es dual de la expresión (29).The expression (31) translates a similar criterion, but it falls on extrinsic information. It will be appreciated that the It is dual of the expression (29).

La expresión (32) representa el producto cartesiano de dos informaciones y, por consiguiente, se tienen en cuenta conjuntamente: la primera recae sobre la verificación del control de paridad y la segunda sobre las informaciones a posteriori, como en (30).The expression (32) represents the Cartesian product of two information and, therefore, they are taken into account jointly: the first falls on the verification of the parity control and the second on the subsequent information, as in (30).

- mediciones de fiabilidad de orden 2:- reliability measurements of order 2:

Se podrá elegir para un nodo n de variable, la función siguiente:The following function can be chosen for a variable node n :

3232

       \vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
    

La expresión (33) representa una medición negativa de fiabilidad de la descodificación: la misma indica el número de controles conectados a la variable n para los que no se ha verificado la condición de paridad, y tales que la variable n sea la menos fiable entre todas las variables adyacentes a estos controles. Se puede considerar, de hecho, la medición (33) como la composición de las mediciones (27') y (30).The expression (33) represents a negative measurement of decoding reliability: it indicates the number of controls connected to the variable n for which the parity condition has not been verified, and such that the variable n is the least reliable among all variables adjacent to these controls. In fact, measurement (33) can be considered as the composition of measurements (27 ') and (30).

Para un nodo m de control, se podrá elegir una de las funciones siguientes:For a control node m , one of the following functions can be chosen:

3333

con c=0 si c_{m}=+1 y c_{m}=\delta_{max} +1 si c_{m}=-1 siendo \delta_{max} el grado máximo de los nodos de control, es decir: 104 with c = 0 if c_ {m} = + 1 and c_ {m} = \ delta_ {max} +1 if c_ {m} = -1 where \ delta_ {max} is the maximum degree of the control nodes, that is : 104

La expresión (34) proporciona el número de controles de paridad no verificados en el vecinaje de orden 2 de m, con exclusión del propio m. Esto representa una medida negativa de la fiabilidad de la descodificación. Se apreciará que la segunda igualdad de la expresión (34) no se verifica más que en ausencia de ciclos de longitud 4 en el vecinaje en cuestión. En la práctica, se utilizan códigos cuyos gráficos de Tanner presentan ciclos lo más largos posible, de modo que en general se verifica la igualdad.The expression (34) provides the number of unverified parity controls in the neighborhood of order 2 of m , excluding m itself. This represents a negative measure of the decoding reliability. It will be appreciated that the second equality of the expression (34) is verified only in the absence of cycles of length 4 in the neighborhood in question. In practice, codes whose Tanner graphics have cycles as long as possible are used, so that equality is generally verified.

La expresión (35) indica el número de variables adyacentes a m, conectadas a al menos un control no verificado, con exclusión del propio m. La misma representa, por consiguiente, una medición negativa de la fiabilidad de la descodificación. Al ser los términos bajo el signo de suma iguales a 0 o a 1, el valor de la medición está comprendido entre 0 y \delta_{max}.The expression (35) indicates the number of variables adjacent to m , connected to at least one unverified control, excluding m itself. It therefore represents a negative measure of the reliability of decoding. Since the terms under the sum sign are equal to 0 or 1, the measurement value is between 0 and δ_max .

La expresión (35) no hace distinción en cuanto a que el control de paridad haya sido verificado o no para el nodo m. Con el fin de tener en cuenta esta información, se ha introducido en la expresión (36) una interpolación c cuyo valor depende de la verificación del control m. Para los valores de interpolación indicados más arriba (c=0,\delta_{max}+1), la medición de fiabilidad toma valores comprendidos entre 0 y \delta_{max} para un control verificado, y entre \delta_{max}+1 y 2\delta_{max}+1 para un control no verificado. Observamos que se trata de una medición de fiabilidad negativa en el sentido definido más arriba, es decir, cuanto más fiable es el valor de \tilde{f}_{2}(m), más fiable es el control m. Así, el grado de fiabilidad de un control verificado es siempre superior al de un control no verificado, cualquiera que sea el valor de (35).The expression (35) makes no distinction as to whether or not the parity control has been verified for node m . In order to take this information into account, an interpolation c whose value depends on the verification of the control m has been introduced in expression (36). For the interpolation values indicated above ( c = 0, δ_ {max} +1), the reliability measurement takes values between 0 and δ_max for a verified control, and between \ delta_ {max} + 1 and 2 \ delta_ {max} +1 for an unverified control. We note that this is a negative reliability measurement in the sense defined above, that is, the more reliable the value of \ tilde {f} 2 (m), the more reliable the control m . Thus, the degree of reliability of a verified control is always higher than that of an unverified control, whatever the value of (35).

Se apreciará que algunas de las funciones definidas en lo que antecede son valores enteros, en particular las de (34) a (36). Las mismas se prestan particularmente bien a una implementación por medio de un microprocesador.It will be appreciated that some of the functions defined above are integer values, in particular the from (34) to (36). They lend themselves particularly well to a implementation through a microprocessor.

De manera importante, algunas de las funciones definidas en lo que antecede, en particular las de (34) a (36), no se refieren más que a valores rígidos c_{m}. Puesto que 105, se constata que el valor de la potencia de ruido (\sigma^{2}) no interviene en el cálculo de estas funciones.Importantly, some of the functions defined above, in particular those from (34) to (36), refer only to rigid values c_ {m} . Since 105 , it is noted that the value of the noise power ( sig2 ) does not intervene in the calculation of these functions.

La idea que subyace en la base de la invención es la de clasificar los nodos del gráfico según su fiabilidad, y efectuar una decodificación por paso de mensajes según un esquema de tipo serie o mixto comenzando por el nodo o el grupo de nodos más fiable(s). Se mejora así considerablemente el comportamiento de la descodificación, tanto en términos de velocidad de convergencia como de tasa de error binario (BER).The idea that underlies the basis of the invention is to classify the nodes of the graph according to their reliability, and perform a decoding by passing messages according to a scheme of serial or mixed type starting with the node or group of nodes more reliable (s). This improves the behavior considerably of decoding, both in terms of speed of convergence as binary error rate (BER).

Se comprende que los mensajes transmitidos por los nodos más fiables son los mejores para contribuir eficazmente a la descodificación de los nodos adyacentes. Existe así una propagación rápida de fiabilidad de una iteración a otra y de nodo en nodo, y correlativamente, un incremento sensible en valor absoluto de las informaciones extrínsecas, a medida de las iteraciones.It is understood that the messages transmitted by the most reliable nodes are the best to contribute effectively to decoding of adjacent nodes. There is thus a rapid propagation of reliability from one iteration to another and node in node, and correlatively, a sensible increase in value absolute of extrinsic information, tailored to the iterations

La Figura 7 ilustra de manera esquemática el principio de descodificación según la invención. Después de una fase 710 de inicialización que será detallada más adelante, se entra en un bucle de iteración. Se procede, en 720, a la clasificación de los nodos de control o de los nodos de variable del gráfico según su grado de fiabilidad. Se supondrá aquí que se clasifican los nodos de control, conduciendo la clasificación de los nodos de variable a etapas simé-
tricas.
Figure 7 schematically illustrates the decoding principle according to the invention. After an initialization phase 710 that will be detailed later, an iteration loop is entered. In 720, the classification of the control nodes or the variable nodes of the graph is determined according to their degree of reliability. It will be assumed here that the control nodes are classified, leading the classification of the variable nodes to similar stages.
Tricas

En 730, se efectúa un tratamiento serie o bien un tratamiento mixto. Para un tratamiento de tipo serie, se tratan los nodos de control de manera secuencial y, para cada uno de ellos, los nodos de variable que le son adyacentes, comenzando por el nodo de control más fiable y prosiguiendo por grados de fiabilidad decrecientes. Para un tratamiento de tipo mixto, los nodos de control habrán sido clasificados en grupos de fiabilidad, estando el primer grupo constituido por los nodos más fiables, estando el segundo grupo constituido por nodos menos fiables, etc. Se trata después, de manera paralelo, los nodos de variable y los nodos de control del primer grupo, y se pasa inmediatamente después al tratamiento paralelo de los nodos de variable y de los nodos de control del grupo siguiente, y se continúa así hasta el agotamiento de los grupos. Las etapas 740, 750, 760, 765, 767, 770, 775 son, respectivamente, idénticas a las etapas 240, 250, 260, 265, 267, 270, 275 de la Figura 2, y no se va a realizar por lo tanto ningún detalle.In 730, a serial treatment is carried out or a mixed treatment For a series treatment, they are treated control nodes sequentially and, for each of them, the variable nodes that are adjacent to it, starting with the node of more reliable control and continuing through degrees of reliability decreasing For a mixed type treatment, the nodes of control will have been classified into reliability groups, being the first group consisting of the most reliable nodes, being the second group consisting of less reliable nodes, etc. It is about then, in parallel, the variable nodes and the nodes of control of the first group, and passed immediately after parallel treatment of the variable nodes and the nodes of control of the next group, and it continues like this until exhaustion of the groups. Stages 740, 750, 760, 765, 767, 770, 775 are, respectively, identical to steps 240, 250, 260, 265, 267, 270, 275 of Figure 2, and therefore no detail.

La Figura 8 representa, de manera más detallada, un modo de realización de la invención que utiliza una planificación serie.Figure 8 represents, in more detail, an embodiment of the invention that uses planning  Serie.

En la _{etapa} 810, se efectúa una inicialización de los mensajes \alpha_{mn} y \beta_{mn}. Por ejemplo, para cada par de variable n y control m\inH(n), se inicializa \alpha_{mn} mediante \alpha_{mn}=\alpha_{n}. De manera similar, para cada par de control m y de variable n\inH(m), se inicializa \beta_{mn} mediante \beta_{mn}=0.In step 810, an initialization of the messages α_mn and βmn is performed . For example, for each pair of variable n and control m \ in H ( n ), \ alpha_ {mn} is initialized by α_ {mn} = \ alpha_ {n} . Similarly, for each control pair m and variable n \ in H ( m ), β_mn} is initialized using β_ {mn} = 0.

       \newpage\ newpage
    

A continuación se clasifican, en 820, los controles por grados de fiabilidad decrecientes utilizando las mediciones de fiabilidad \tilde{f}_{d}(m). Dicho de otro modo, para una medición positiva, se clasifican los controles de manera que 106 y para una medición negativa se clasifican en sentido inverso. Si la medición es un producto cartesiano (véase, por ejemplo, (32)), se utiliza la relación de orden lexicográfico inverso según sea la medición negativa o positiva. Se inicializa, por otra parte, un contador de nodos de control, j=0.The controls are then classified in 820, by decreasing degrees of reliability using the reliability measurements \ tilde {f} d (m). In other words, for a positive measurement, controls are classified so that 106 and for a negative measurement they are classified in the opposite direction. If the measurement is a Cartesian product (see, for example, (32)), the inverse lexicographic order relationship is used according to the negative or positive measurement. On the other hand, a control node counter, j = 0, is initialized.

Se selecciona, en 825, el control actual m=m_{j} y se tratan en 830 las variables n\inH(m), o dicho de otro modo se calcula 107 The current control m = m_ {j} is selected in 825 and the variables n \ in H ( m ) are treated in 830, or in other words it is calculated 107

A continuación se pasa, en 835, a un tratamiento del control actual m, o dicho de otro modo se calcula 108 para n\inH(m).Then, in 835, a treatment of the current control m is passed, or in other words it is calculated 108 for n \ in H ( m ).

Según una variante de realización, se invierten las etapas 830 y 935.According to a variant embodiment, they are reversed stages 830 and 935.

Se incrementa el contador de nodos de control en 837, y se comprueba en 939 si los mismos han sido tratados en su totalidad. En caso negativo, se retorna a la etapa 825, y si no es así, se sigue por las etapas 840 a 860, que representan respectivamente el cálculo de información a posteriori, la decisión sobre los valores rígidos y la verificación de los controles de paridad. Las etapas 840, 850, 860, 865, 867, 870, 875 son respectivamente idénticas a las etapas 240, 250, 260, 265, 267, 270, 275 de la Figura 2.The counter of control nodes is increased by 837, and it is checked at 939 if they have been treated in their entirety. If not, return to step 825, and if not, follow steps 840 to 860, which respectively represent the calculation of information a posteriori , the decision on rigid values and the verification of parity controls . Steps 840, 850, 860, 865, 867, 870, 875 are respectively identical to steps 240, 250, 260, 265, 267, 270, 275 of Figure 2.

Según un modo alternativo de realización, se procede a la clasificación de las variables en lugar de la clasificación de los controles. El bucle interno 825 a 839 lleva sobre una variable cada vez, lo mismo que en lo que antecede, pudiendo efectuarse el tratamiento de la variable actual antes o después del tratamiento de los controles que le son adyacentes.According to an alternative embodiment, proceed to classify the variables instead of the classification of controls. The internal loop 825 to 839 carries about one variable at a time, the same as in the foregoing, being able to carry out the treatment of the current variable before or after the treatment of the controls that are adjacent to it.

La Figura 9 ilustra un modo de realización de la invención que utiliza una planificación mixta.Figure 9 illustrates an embodiment of the invention that uses mixed planning.

En la etapa 910, se efectúa una inicialización de los mensajes \alpha_{mn} y \beta_{mn} como en la etapa 810 de la Figura 8.In step 910, an initialization of the messages α_ {mn} and β_ {mn} is carried out as in step 810 of Figure 8.

En 920, se divide el conjunto de los nodos de control o de los nodos de variable en grupos, correspondiendo cada uno a una clase de fiabilidad diferente. Una clase de fiabilidad se define, por ejemplo, por medio de un intervalo de valores de una medición de fiabilidad. Este modo de realización es particularmente ventajoso cuando la medición es de valores enteros. En efecto, se puede entonces asignar un grupo a un valor entero o a una pluralidad de valores enteros continuos, y ordenar los índices de los nodos en una tabla en función de sus clases respectivas. Se apreciará en lo que sigue mediante \varphi_{0}, \varphi_{1}, ...., \varphi_{\omega} las diferentes clases de fiabilidad, siendo \varphi_{0} la clase de grado de fiabilidad más alto y \varphi_{\omega} la clase de grado de fiabilidad más bajo, y G_{0}, G_{1}, ...., G_{\omega} los grupos de nodos correspondientes. Se supone, en lo que sigue, que la partición ha sido efectuada sobre los nodos de control.In 920, the set of control nodes or variable nodes is divided into groups, each corresponding to a different reliability class. A reliability class is defined, for example, by a range of values of a reliability measurement. This embodiment is particularly advantageous when the measurement is of integer values. In effect, you can then assign a group to an integer value or a plurality of continuous integer values, and order the indexes of the nodes in a table according to their respective classes. It will be appreciated in what follows by \ varphi_ {0}, \ varphi_ {1}, ...., \ varphi_ {\ omega} the different reliability classes, with \ varphi_ {0} being the highest degree of reliability class and var the lowest degree of reliability class, and G 0, G 1, ...., G the groups of corresponding nodes. It is assumed, in the following, that the partition has been effected on the control nodes.

Se inicializa, por otra parte, el contador de clases de fiabilidad en j=0.On the other hand, the reliability class counter is initialized at j = 0.

En 925, se selecciona el grupo de nodos correspondiente a la clase de fiabilidad actual \varphi_{j}, es decir G_{j}.In 925, the group of nodes corresponding to the current reliability class \ varphi_ {j} , that is G_ {j}, is selected .

En la etapa 930, se efectúa en paralelo el tratamiento de las variables n\inH(m), \forallm\inG_{j}, es decir que se calculan los mensajes 109 In step 930, the treatment of the variables n \ in H ( m ), \ m \ m \ in G_ {j} is carried out in parallel, that is, the messages are calculated 109

En la etapa 935, se efectúa en paralelo el tratamiento de los controles m\inG_{j}, es decir que se calculan los mensajes 110 In step 935, the processing of the controls m \ in G_ {j} is carried out in parallel, that is, the messages are calculated 110

Según una variante de realización, se invierten las etapas 930 y 935.According to a variant embodiment, they are reversed stages 930 and 935.

En 937 se incrementa el contador de clases y se comprueba, en 939, si todas ellas han sido tratadas. En caso negativo, se retorna al bucle en la etapa 925, si no es así se continúa hasta las etapas 940 a 960, que representan respectivamente el cálculo de información a posteriori, la decisión sobre los valores rígidos y la verificación de los controles de paridad. Las etapas 940, 950, 960, 965, 967, 970, 975, son respectivamente idénticas a las etapas 240, 250, 260, 265, 267, 270, 275 de la Figura 2.In 937 the class counter is increased and it is checked, in 939, if all of them have been treated. If not, it returns to the loop in step 925, if not, it continues until steps 940 to 960, which respectively represent the calculation of information afterwards , the decision on rigid values and the verification of parity controls . Stages 940, 950, 960, 965, 967, 970, 975, are respectively identical to steps 240, 250, 260, 265, 267, 270, 275 of Figure 2.

La Figura 10 ilustra una aplicación particular de la invención a la descodificación de un código LDPC por medio de una planificación mixta, sobre la base de una medición de fiabilidad a valores enteros. Se ha elegido aquí la medición negativa sobre los nodos de control definida en (36).Figure 10 illustrates a particular application of the invention to decoding an LDPC code by means of mixed planning, based on a measurement of reliability to integer values. The negative measurement on the control nodes defined in (36).

En la etapa 1010, se efectúa la inicialización de los valores flexibles a posteriori \hat{\alpha}_{n} mediante las observaciones correspondientes: = \hat{\alpha}_{n} = \alpha_{n} y de los mensajes \beta_{mn} por 0.In step 1010, the initialization of the flexible values is carried out a posteriori \ hat {\ alpha} {n} by means of the corresponding observations: = \ hat {\ alpha} {n} = \ alpha_ {n} and of the messages? mn for 0.

Se inicializa igualmente el contador de iteraciones a 0.The counter is also initialized iterations to 0.

En 1015, se toma una decisión sobre los valores rígidos, es decir \overline{\alpha}_{n}=sgn(\hat{\alpha}_{n}).In 1015, a decision is made about the values rigid, that is \ overline {\ alpha} _ {n} = sgn (\ hat {\ alpha} _ {n}).

Se calcula, en 1020, el valor de 34 en la que los c_{m} son los controles de paridad 35 350 The value of 1020 is calculated 3. 4 in which the c_ {m} are the parity controls 35 350

Se comprueba, en 1023, si \chi=M, es decir, si todos los controles de paridad han sido verificado. En caso afirmativo, se sale del algoritmo de descodificación en 1025, proporcionando la palabra de código. En su defecto, se continúa en 1027 mediante el cálculo de las mediciones de fiabilidad de los nodos de control por medio de la medición (36). Se recuerda que esta medición toma valores enteros entre 0,1,...,2\delta_{max}+1, en la que \delta_{max} es el grado máximo de los nodos de control. En el presente caso, se atribuye una clase de fiabilidad por valor entero, es decir, \varphi_{0,}\varphi_{1},...,\varphi_{\omega} con \omega=2\delta_{max}+1 en la que la clase \varphi_{j} corresponde al valor de medición j\in{0,1,...,2\delta_{max}+1}.It is checked, in 1023, if \ chi = M, that is, if all the parity controls have been verified. If so, the decoding algorithm is exited in 1025, providing the code word. Otherwise, it is continued in 1027 by calculating the reliability measurements of the control nodes by means of the measurement (36). Remember that this measurement takes integer values between 0.1, ..., 2 \ delta_ {max} +1, where \ delta_ {max} is the maximum degree of control nodes. In the present case, a reliability class is assigned by integer value, that is, \ varphi_ {0,} \ varphi_ {1}, ..., \ varphi_ {\ omega} with \ omega = 2 \ delta_ {max} +1 in which the class \ varphi_ {j} corresponds to the measurement value j \ in {0,1, ..., 2 \ delta_ {max} +1}.

En 1029, se selecciona el grupo de nodos correspondiente a la clase de fiabilidad actual \varphi_{j}, es decir G_{j}.In 1029, the group of nodes corresponding to the current reliability class \ varphi_ {j} is selected, ie G_ {j} .

En 1030, se efectúa en paralelo el tratamiento de las variables n\inH(m), \forallm\inG_{j}, es decir que se calculan los mensajes \alpha_{mn} = \hat{\alpha}_{n} - \beta_{mn}, \forallm\inG_{j}.In 1030, the treatment of the variables n \ in H ( m ), \ forall m \ inG_ {j} is carried out in parallel, that is, the messages \ alpha_ {mn} = \ hat {\ alpha} _ { n} - \ beta_ {mn} , \ forall m \ inG_ {j}.

En la etapa 1035, se efectúa en paralelo el tratamiento de los controles m\inG_{j}, es decir que se calculan los mensajes con destino a las variables n\inH(m), \forallm\inG_{j}, es decir,In step 1035, the processing of the controls m \ inG_ {j} is carried out in parallel, that is to say that the messages with destination to the variables n \ in H ( m ), \ forall m \ inG_ {j} are calculated, that is to say,

3636

       \vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
    

para un tratamiento SPA yfor a SPA treatment Y

3737

       \vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
    

para un tratamiento simplificado de tipo Min-Sum como se ha indicado en la presente sobre la Figura. Se calculan a continuación las informaciones a posteriori, en 1040, gracias a 38.for a simplified Min-Sum type treatment as indicated herein on the Figure. They are then calculated a posteriori information, in 1040, thanks to 38 .

Se apreciará que una parte de los controles m\inH(n) que intervienen en la suma, pueden no formar parte del grupo G_{j} y que por tanto los mensajes \beta_{mn} que provienen de esos controles no han sido recalculados en 1035. Además, al ser la variable n adyacente a varios controles m\inH(n), el cálculo de \hat{\alpha}_{n} se hará varias veces a medida que se tratan los controles de H(n). Con el fin de evitar que la suma en 1040 no sea calculada varias veces y que cada vez que algunos mensajes \beta_{mn} no hayan variado no sean calculados de nuevo, se podrán reemplazar ventajosamente las etapas 1035 y 1040 por una etapa que comprenda las operaciones siguientes:It will be appreciated that a part of the controls m \ in H ( n ) involved in the sum, may not be part of the group G_ {j} and therefore the messages \ beta_ {mn} that come from those controls have not been recalculated at 1035. In addition, since the variable n is adjacent to several controls m \ in H ( n ), the calculation of \ hat {\ alpha} n will be done several times as the controls of H ( n ). In order to avoid that the sum in 1040 is not calculated several times and that every time some [beta] {mn} messages have not changed, they are not recalculated, steps 1035 and 1040 can be advantageously replaced by a stage that includes the following operations:

\forallm\inG_{j},\foralln\inH(m),\ forall m \ inG_ {j} , \ forall n \ in H ( m ),

--
substracción del antiguo mensaje, es decir:subtraction of the old message, is tell:

\hat{\alpha}_{n} = \hat{\alpha}_{n}-\beta_{mn}\ hat {\ alpha} n = \ hat {\ alpha} _ {n} - \ beta_ {mn}

       \newpage\ newpage
    

--
cálculo del nuevo mensaje, es decir:calculation of the new message, is tell:

103103

--
actualización de la información a posteriori por adición del nuevo mensaje:update the information a posteriori by adding the new message:

\hat{\alpha}_{n} = \hat{\alpha}_{n} + \beta_{mn}\ hat {\ alpha} _ {n} = \ hat {\ alpha} _ {n} + \ beta_ {mn}

De esta manera, se actualiza la información a posteriori \hat{\alpha}_{n} a medida que se calculan los nuevos mensajes enviados por los controles m\inH(n) a la variable n. Esto permite reducir sensiblemente el número de operaciones efectuadas para el cálculo de las informaciones a posteriori.In this way, the information is updated a posteriori \ hat {\ alpha} {n} as the new messages sent by the controls m \ in H ( n ) to the variable n are calculated. This makes it possible to significantly reduce the number of operations carried out for the calculation of the information afterwards .

A continuación se incrementa, en 1043, el contador de clases de fiabilidad y se comprueba, en 1045, si todas las clases han sido tratadas. En caso negativo se retorna a la etapa 1029 para tratar la clase de fiabilidad siguiente. En caso afirmativo, se incrementa el contador de iteraciones en 1050. En 1053, se comprueba si se verifica el criterio de detención, es decir, si se ha alcanzado el número máximo de iteraciones. Si es ese el caso, se sale del bucle en 1055, concluyendo el fracaso de la descodificación. Por defecto, se retorna al bucle en la etapa 1015 para una nueva iteración.Then it increases, by 1043, the reliability class counter and it is checked, in 1045, if all The classes have been treated. If not, return to the stage 1029 to address the following reliability class. In case Yes, the iteration counter is incremented by 1050. In 1053, it is checked if the detention criterion is verified, it is say, if the maximum number of iterations has been reached. Yes it is In that case, the loop is released in 1055, concluding the failure of the decoding. By default, the loop is returned in step 1015 For a new iteration.

Se aprecia que en la Figura 10, las etapas de decisión son los valores rígidos, tanto de verificación del control de paridad anterior a los de cálculo de fiabilidad, como de tratamiento de los nodos. Esto se debe al hecho de que la medición de fiabilidad aquí utilizada (expresión (36)), recurre a las decisiones rígidas c_{m} y necesita por consiguiente su cálculo previo.It can be seen that in Figure 10, the decision stages are the rigid values, both of verification of the parity control prior to those of calculation of reliability, and of treatment of the nodes. This is due to the fact that the reliability measurement used here (expression (36)), resorts to the rigid decisions c_ {m} and therefore needs its prior calculation.

El algoritmo ilustrado en la Figura 10 no presenta más que una baja complejidad adicional con relación a los algoritmos SPA o Min-Sum del estado de la técnica. En contrapartida, la planificación por fiabilidad de vecinaje acelera la convergencia y permite alcanzar un índice de error (BER) más bajo para una misma relación señal-ruido (SNR). Alternativamente, para un mismo índice de error de consigna, el procedimiento de descodificación según la invención permite utilizar códigos a una ganancia de codificación más baja.The algorithm illustrated in Figure 10 does not it presents more than a low additional complexity in relation to SPA or Min-Sum algorithms of the prior art. In return, neighborhood reliability planning accelerates convergence and allows to reach an error rate (BER) lower for the same signal-to-noise ratio (SNR). Alternatively, for the same setpoint error rate, the decoding process according to the invention allows use codes at a lower coding gain.

La Figura 11 permite comparar los comportamientos, en términos de índice de error binario (BER), de los algoritmos Min-Sum y SPA convencionales, con el algoritmo Min-Sum utilizando una planificación por fiabilidad de vecinaje, indicado como Min-Sum-FV, todo ello para una gama importante de relaciones señal-ruido. Los códigos utilizados son códigos LDPC irregulares [1008,2016] y [4032,8064], y por tanto de rendimiento 1/2. El número de iteraciones efectuadas es igual a 200 para los tres algoritmos.Figure 11 allows comparing behaviors, in terms of binary error rate (BER), of the conventional Min-Sum and SPA algorithms, with the Min-Sum algorithm using a schedule by neighborhood reliability, indicated as Min-Sum-FV, all for a range Signal-to-noise ratio important. The codes used are irregular LDPC codes [1008,2016] and [4032,8064], and therefore 1/2 performance. The number of iterations performed It is equal to 200 for all three algorithms.

Se observa que el algoritmo Min-Sum-FV según la invención, supera al algoritmo SPA convencional en el sentido de que su complejidad es sensiblemente menor.It is observed that the algorithm Min-Sum-FV according to the invention, surpasses the conventional SPA algorithm in the sense that its complexity is significantly less.

En el procedimiento de descodificación según la invención tal como el que se ha representado en las Figuras 7 a 10, se ha supuesto que se utilizó la planificación por fiabilidad de vecinaje durante toda la duración de la descodificación. Según una variante, no se puede aplicar esta planificación más que durante las primeras iteraciones, con el fin de eliminar el ruido de las observaciones, y después bascular sobre un tratamiento convencional. El criterio de basculamiento puede estar etiquetado en un número de iteraciones Iter_{f} o bien, ventajosamente, estar basado en una comparación en valor absoluto de las informaciones extrínsecas con un umbral de referencia. Por ejemplo, después de la descodificación iterativa:In the decoding process according to the invention such as that shown in Figures 7 to 10, it has been assumed that neighborhood reliability planning was used for the entire duration of the decoding. According to a variant, this planning cannot be applied except during the first iterations, in order to eliminate the noise of the observations, and then to tilt over a conventional treatment. The tilting criterion can be labeled in a number of iterations Iter_ {f} or, advantageously, based on an absolute value comparison of the extrinsic information with a reference threshold. For example, after iterative decoding:

3939

en la que T_{f} representa un umbral mínimo de fiabilidad, se podrá volver a un tratamiento Min-Sum o SPA convencional. Esta variante permite evitar la selección o la clasificación de los nodos después de que los valores descodificados sean suficientemente fiables y que la convergencia esté asegurada.where T_ {f} represents a minimum reliability threshold, a conventional Min-Sum or SPA treatment can be returned. This variant allows to avoid the selection or classification of the nodes after the decoded values are sufficiently reliable and the convergence is assured.

La presente invención se aplica a la descodificación de códigos correctores de errores susceptibles de representación mediante gráfico bipartito, especialmente los códigos LDPC o los turbocódigos. La misma puede ser utilizada en el campo del registro de datos o de las telecomunicaciones, en particular para los sistemas de telecomunicaciones que utilizan ya los códigos LDPC, por ejemplo los que obedecen a las normas IEEE 802.3a (Ethernet 10 Gbits/s), DVB -S2 (difusión de video por satélite), IEEE 802.16 (WiMAX), o sean susceptibles de utilizarlas, por ejemplo los sistemas que obedecen a las normas IEEE 802.11 (WLAN) e IEEE 802.20 (Mobile Broadcasting Wireless Access).The present invention applies to the decoding of error correction codes susceptible to representation by bipartite graph, especially LDPC codes or turbo codes. It can be used in the field of data logging or telecommunications, in particular for telecommunications systems that already use LDPC codes, for example those that comply with IEEE standards 802.3a (Ethernet 10 Gbits / s), DVB-S2 (video broadcast over satellite), IEEE 802.16 (WiMAX), or are likely to use them, for example systems that comply with IEEE 802.11 standards (WLAN) and IEEE 802.20 (Mobile Broadcasting Wireless Access).

Claims (17)

1. Procedimiento de descodificación iterativa del tipo de paso de mensajes para descodificar un código corrector de errores susceptible de representación mediante un gráfico bipartito que comprende una pluralidad de nodos de variable y una pluralidad de nodos de control, caracterizado porque, en cada iteración de una pluralidad de iteraciones de descodificación:1. Iterative decoding procedure of the type of message step to decode an error correction code capable of being represented by a bipartite graph comprising a plurality of variable nodes and a plurality of control nodes, characterized in that, in each iteration of a plurality of decoding iterations: - se efectúa una clasificación (720) de los nodos de variable o bien de los nodos de control en función de los grados de fiabilidad respectivos de las informaciones de descodificación disponibles en los vecinajes (V_{n}^{(d)}, V_{m}^{(d)}) de estos nodos, de modo que un nodo que posee un grado de fiabilidad elevado está clasificado por delante de un nodo que posee un bajo grado de fiabilidad;- a classification (720) of the variable nodes or of the control nodes is made according to the respective degrees of reliability of the decoding information available in the neighborhoods ( V_ {n} ^ {(d)} , V_ {m} ^ (d)} ) of these nodes, so that a node that has a high degree of reliability is classified ahead of a node that has a low degree of reliability; - los nodos así clasificados pasan (725), cada uno de ellos, al menos un mensaje (\alpha_{mn}, \beta_{mn}) a un nodo adyacente, en el orden definido por la citada clasificación.- the nodes so classified pass (725), each of them, at least one message ( α_ {mn}, \ beta_ {mn} ) to an adjacent node, in the order defined by said classification. 2. Procedimiento de descodificación según la reivindicación 1, caracterizado porque la citada clasificación comprende, para cada nodo a clasificar, el cálculo de una medición de fiabilidad (f _{d}(n), (\tilde{f}_{d}(m)) de las informaciones presentes, enviadas o recibidas por los nodos situados a menos de una distancia (d) predeterminada de estos últimos en el seno del gráfico bipartito, y la selección de los valores de las mediciones así obtenidos.2. Decoding method according to claim 1, characterized in that said classification comprises, for each node to be classified, the calculation of a measurement of reliability ( f d ( n ), (\ tilde {f} d) (m)) of the information present, sent or received by the nodes located less than a predetermined distance ( d ) of the latter within the bipartite graph, and the selection of the values of the measurements thus obtained. 3. Procedimiento de descodificación según la reivindicación 2, caracterizado porque, para cada iteración de la citada pluralidad, opera secuencialmente sobre los nodos clasificados en el orden definido por la citada clasificación, y porque, para cada nodo clasificado (825), se calculan los mensajes con destino a los nodos que le son adyacentes (835) y, para cada uno de los citados nodos adyacentes, los mensajes con destino a los propios nodos adyacentes a éste (830).3. Decoding method according to claim 2, characterized in that, for each iteration of said plurality, it operates sequentially on the nodes classified in the order defined by said classification, and because, for each classified node (825), the messages destined to the nodes that are adjacent to it (835) and, for each of the aforementioned adjacent nodes, the messages destined to the nodes adjacent to it (830). 4. Procedimiento de descodificación según la reivindicación 1, caracterizado porque la citada clasificación comprende, para cada nodo a clasificar, el cálculo de una medición de fiabilidad (f _{d}(n), (\tilde{f}_{d}(m)) de las informaciones presentes, enviadas o recibidas por los nodos situados a menos de una distancia (d) predeterminada de este nodo en el seno del gráfico bipartito, y porque se agrupan los nodos por intervalos de valores de la citada medición.4. Decoding method according to claim 1, characterized in that said classification comprises, for each node to be classified, the calculation of a measurement of reliability ( f d ( n ), (\ tilde {f} d) (m)) of the information present, sent or received by the nodes located less than a predetermined distance ( d ) from this node within the bipartite graph, and because the nodes are grouped by intervals of values of the said measurement. 5. Procedimiento de descodificación según la reivindicación 4, caracterizado porque la medición de fiabilidad es en valores enteros, y porque, para cada uno de los citados valores enteros, se almacenan en una zona de memoria que se les ha asociado, los índices de los nodos cuya medición de fiabilidad sea igual a ese valor.5. Decoding method according to claim 4, characterized in that the measurement of reliability is in integer values, and because, for each of said integer values, the indices of the memory are associated with them. nodes whose reliability measurement is equal to that value. 6. Procedimiento de descodificación según la reivindicación 4 ó 5, caracterizado porque, para cada iteración de la citada pluralidad, se opera secuencialmente sobre los grupos de nodos en el orden definido por la citada clasificación, y porque, para cada grupo de nodos (G_{j}), se calculan los mensajes con destino a los nodos que le son adyacentes (935) y, para cada uno de los citados nodos adyacentes, los mensajes con destino a los propios nodos adyacentes a estos últimos (930).6. Decoding method according to claim 4 or 5, characterized in that, for each iteration of said plurality, the groups of nodes are sequentially operated in the order defined by said classification, and because, for each group of nodes ( G_ {j} ), the messages destined to the adjacent nodes (935) are calculated and, for each of the aforementioned adjacent nodes, the messages destined to the nodes adjacent to the latter nodes (930). 7. Procedimiento de descodificación según una de las reivindicaciones anteriores, caracterizado porque cada iteración de la citada pluralidad comprende, además, para cada nodo de variable de dicho gráfico bipartito, una etapa de cálculo (740, 840, 940) de una información a posteriori (\hat{\alpha}_{n}) en función de una información a priori (\alpha_{n}) ya presente en ese nodo y de los mensajes recibidos (\beta_{mn}) por ese nodo provenientes de los nodos de control adyacentes.7. Decoding method according to one of the preceding claims, characterized in that each iteration of said plurality further comprises, for each variable node of said bipartite graph, a calculation step (740, 840, 940) of a posteriori information (\ hat {\ alpha} _ {n}) based on a priori information (\ alpha_ {n}) already present in that node and the messages received ( \ beta_ {mn} ) by that node from the nodes adjacent control. 8. Procedimiento de descodificación según la reivindicación 7, caracterizado porque la etapa de cálculo de información a posteriori va seguida de una etapa de decisión (750, 850, 950) sobre el valor rígido (\hat{\alpha}_{n}) de la citada variable.8. Decoding method according to claim 7, characterized in that the step of calculating information a posteriori is followed by a decision stage (750, 850, 950) on the rigid value (\ hat {\ n}) of the aforementioned variable. 9. Procedimiento de descodificación según la reivindicación 8, caracterizado porque se comprueba (760, 860, 960) si los valores rígidos de las variables así obtenidos, verifican los controles de paridad asociados a todos los nodos de control del gráfico, y porque, en caso afirmativo, se proporciona como palabra descodificada la palabra constituida por los citados valores rígidos.9. Decoding method according to claim 8, characterized in that it is checked (760, 860, 960) if the rigid values of the variables thus obtained verify the parity controls associated with all control nodes of the graph, and why, in If so, the word constituted by the said rigid values is provided as a decoded word. 10. Procedimiento de descodificación según una de las reivindicaciones anteriores, caracterizado porque la clasificación se interrumpe después de un número de iteraciones de descodificación predeterminado (Iter_{f}), prosiguiendo el procedimiento de descodificación a continuación sus iteraciones de descodificación en ausencia de la citada clasificación de los citados nodos de variables o bien de los citados nodos de control.10. Decoding method according to one of the preceding claims, characterized in that the classification is interrupted after a predetermined number of iterations of decoding ( Iter f), continuing the decoding procedure following its decoding iterations in the absence of the cited classification of said variable nodes or of said control nodes. 11. Procedimiento de descodificación según la reivindicación 7, caracterizado porque la clasificación se interrumpe si el mínimo, en valor absoluto, de las diferencias entre los valores a posteriori y los valores a priori de las citadas variables, es superior a un valor de umbral predeterminado (T_{f}), prosiguiendo a continuación el procedimiento de descodificación sus iteraciones de descodificación en ausencia de dicha clasificación de los citados nodos de variables o bien de los citados nodos de control.11. Decoding method according to claim 7, characterized in that the classification is interrupted if the minimum, in absolute value, of the differences between the a posteriori values and the a priori values of said variables, is greater than a predetermined threshold value ( T f), the decoding procedure then continuing its decoding iterations in the absence of said classification of said variable nodes or of said control nodes.
         \newpage\ newpage
      
12. Procedimiento de descodificación según una de las reivindicaciones anteriores, caracterizado porque el citado código corrector de errores es un turbocódigo.12. Decoding method according to one of the preceding claims, characterized in that said error correction code is a turbocode. 13. Procedimiento de descodificación según una de las reivindicaciones 1 a 11, caracterizado porque el citado código corrector de errores es un código LDPC (K,N) representado por un gráfico bipartito de N nodos de variable y M = N-K nodos de control.13. Decoding method according to one of claims 1 to 11, characterized in that said error correction code is an LDPC code ( K, N ) represented by a two-part graph of N variable nodes and M = N - K control nodes . 14. Procedimiento de descodificación según la reivindicación 13, caracterizado porque el mensaje \beta_{mn} de un nodo de control de índice m\in{1,..,M} a un nodo de variable de índice n\in{1,..,N}, se calcula mediante:14. The decoding method according to claim 13, characterized in that the message \ beta_ {mn} of an index control node m \ in {1, .., M } to an index variable node n \ in {1, .., N }, is calculated by: 4040 en la que \alpha_{mn'} designa el mensaje del nodo de variable de índice n' al nodo de control de índice m, H(m) el conjunto de los nodos de variable adyacentes al nodo de control de índice m, sgn(x)=1 si x es positivo y sgn (x)=-1 si no lo es, y 41 wherein \ alpha_ {mn '} designates the message of the index variable node n' to the index control node m, H ( m ) the set of variable nodes adjacent to the index control node m , sgn ( x ) = 1 if x is positive and sgn ( x ) = - 1 if it is not, and 41 15. Procedimiento de descodificación según la reivindicación 13, caracterizado porque el mensaje \beta_{mn} de un nodo de control de índice m\in{1,..,M} a un nodo de variable de índice n\in{1,..,N}, se calcula mediante:15. Decoding method according to claim 13, characterized in that the message \ beta_ {mn} of an index control node m \ in {1, .., M } to an index variable node n \ in {1, .., N }, is calculated by: 4242 en la que \alpha_{mn'} designa el mensaje del nodo de variable de índice n' al nodo de control de índice m, H(m) el conjunto de los nodos de variable adyacentes al nodo de control de índice m, sgn(x)=1 si x es positiva, y sgn(x)=-1 si no lo es.wherein \ alpha_ {mn '} designates the message of the index variable node n' to the index control node m , H ( m ) the set of variable nodes adjacent to the index control node m , sgn ( x ) = 1 if x is positive, and sgn ( x ) = - 1 if it is not. 16. Procedimiento de descodificación según las reivindicaciones 5 y 15, caracterizado porque la clasificación recae sobre los nodos de control, porque la citada distancia predeterminada es igual a 2, y porque la medición de fiabilidad de un nodo de control de índice m se calcula mediante:16. Decoding method according to claims 5 and 15, characterized in that the classification falls on the control nodes, because said predetermined distance is equal to 2, and because the reliability measurement of an index control node m is calculated by : 4343 en la que H(m) designa el conjunto de los nodos de variable adyacentes al nodo de control de índice m, H(n) el conjunto de los nodos de control adyacentes al nodo de variable de índice n, Card(.) designa el cardinal de un conjunto, con c=0 si c_{m}=+1 y c=\delta_{max}+1 si c_{m}=-1 en la que \delta_{max} es el grado máximo de los nodos de control en el gráfico bipartito, y en la que c_{m}=+1 / c_{m}=-1 significan respectivamente que el control de paridad ha sido verificado/ no ha sido verificado, para el nodo de control de índice m.wherein H ( m ) designates the set of variable nodes adjacent to the index control node m , H ( n ) the set of control nodes adjacent to the index variable node n , Card (.) designates the cardinal of a set, with c = 0 if c_ {m} = + 1 and c = \ delta_ {max} +1 if c_ {m} = -1 in which \ delta_ {max} is the maximum degree of the nodes of control in the bipartite graph, and in which c_ {m} = + 1 / c_ {m} = -1 mean respectively that the parity control has been verified / has not been verified, for the index control node m . 17. Programa de ordenador que comprende medios lógicos adaptados para llevar a cabo las etapas del procedimiento de descodificación según una de las reivindicaciones que anteceden, cuando es ejecutado por un ordenador.17. Computer program comprising media logics adapted to carry out the steps of the procedure decoding according to one of the preceding claims, when it is executed by a computer.
ES07787874T 2006-07-27 2007-07-25 DECODIFICATION PROCESS IN MESSAGE PASS WITH A CLASSIFICATION OF THE NODES ACCORDING TO A RELIABILITY RELIABILITY. Active ES2339295T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0653148 2006-07-27
FR0653148A FR2904499B1 (en) 2006-07-27 2006-07-27 METHOD FOR DECODING MESSAGES WITH ORDERING ACCORDING TO NEIGHBORHOOD RELIABILITY.

Publications (1)

Publication Number Publication Date
ES2339295T3 true ES2339295T3 (en) 2010-05-18

Family

ID=37989156

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07787874T Active ES2339295T3 (en) 2006-07-27 2007-07-25 DECODIFICATION PROCESS IN MESSAGE PASS WITH A CLASSIFICATION OF THE NODES ACCORDING TO A RELIABILITY RELIABILITY.

Country Status (10)

Country Link
US (1) US8245115B2 (en)
EP (1) EP2047605B1 (en)
JP (1) JP5199255B2 (en)
KR (1) KR101431162B1 (en)
CN (1) CN101496292B (en)
AT (1) ATE454750T1 (en)
DE (1) DE602007004224D1 (en)
ES (1) ES2339295T3 (en)
FR (1) FR2904499B1 (en)
WO (1) WO2008012318A1 (en)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8219878B1 (en) * 2007-12-03 2012-07-10 Marvell International Ltd. Post-processing decoder of LDPC codes for improved error floors
US8219873B1 (en) 2008-10-20 2012-07-10 Link—A—Media Devices Corporation LDPC selective decoding scheduling using a cost function
US8935601B1 (en) 2008-12-03 2015-01-13 Marvell International Ltd. Post-processing methodologies in decoding LDPC codes
WO2011126578A1 (en) * 2010-04-09 2011-10-13 Link_A_Media Devices Corporation Implementation of ldpc selective decoding scheduling
US9055065B2 (en) * 2011-11-21 2015-06-09 Red Hat, lnc. Managing participant order in distributed transactions
US9203432B2 (en) * 2012-08-28 2015-12-01 Marvell World Trade Ltd. Symbol flipping decoders of non-binary low-density parity check (LDPC) codes
US9191256B2 (en) 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US20140019879A1 (en) * 2013-02-01 2014-01-16 Concurix Corporation Dynamic Visualization of Message Passing Computation
US9256969B2 (en) 2013-02-01 2016-02-09 Microsoft Technology Licensing, Llc Transformation function insertion for dynamically displayed tracer data
US9323863B2 (en) 2013-02-01 2016-04-26 Microsoft Technology Licensing, Llc Highlighting of time series data on force directed graph
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US8843901B2 (en) 2013-02-12 2014-09-23 Concurix Corporation Cost analysis for selecting trace objectives
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US9021447B2 (en) 2013-02-12 2015-04-28 Concurix Corporation Application tracing by distributed objectives
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US9665474B2 (en) 2013-03-15 2017-05-30 Microsoft Technology Licensing, Llc Relationships derived from trace data
FR3003711B1 (en) 2013-03-21 2015-04-17 Commissariat Energie Atomique COOPERATIVE COMMUNICATION SYSTEM WITH ADAPTIVE PACKET RETRANSMISSION STRATEGY
US9575874B2 (en) 2013-04-20 2017-02-21 Microsoft Technology Licensing, Llc Error list and bug report analysis for configuring an application tracer
US9734040B2 (en) 2013-05-21 2017-08-15 Microsoft Technology Licensing, Llc Animated highlights in a graph representing an application
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code
US9280841B2 (en) 2013-07-24 2016-03-08 Microsoft Technology Licensing, Llc Event chain visualization of performance data
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
EP3069241B1 (en) 2013-11-13 2018-08-15 Microsoft Technology Licensing, LLC Application execution path tracing with configurable origin definition
EP3069267A4 (en) 2013-11-13 2017-09-27 Microsoft Technology Licensing, LLC Software component recommendation based on multiple trace runs
US10075190B2 (en) 2015-10-27 2018-09-11 Sandisk Technologies Llc Adaptive scheduler for decoding
KR102504550B1 (en) * 2015-12-28 2023-02-28 삼성전자주식회사 Apparatus and method for receiving signal in communication system supporting low density parity check code
CN106936444B (en) * 2015-12-29 2020-09-01 北京航空航天大学 Set decoding method and set decoder
EP3242405B1 (en) * 2016-05-02 2024-02-21 Université de Bretagne Sud Non-binary check node processing with pre-sorted input
KR102626162B1 (en) * 2016-06-14 2024-01-18 삼성전자주식회사 Method for operating decoder to reduce computational complexity and method for operating data storage device having the same
KR20180009558A (en) 2016-07-19 2018-01-29 삼성전자주식회사 Decoder using low-density parity-check code and memory controller including the same
US10530392B2 (en) * 2017-07-31 2020-01-07 Codelucida, Inc. Vertical layered finite alphabet iterative decoding
FR3072851B1 (en) * 2017-10-23 2019-11-15 Commissariat A L'energie Atomique Et Aux Energies Alternatives REALIZING LEARNING TRANSMISSION RESOURCE ALLOCATION METHOD
CN110569974B (en) * 2018-06-06 2021-08-24 天津大学 DNA storage layered representation and interweaving coding method capable of containing artificial base
CN109586844B (en) * 2018-10-30 2020-08-04 北京航空航天大学 Set-based unequal protection decoding method and system
KR20230019636A (en) * 2021-08-02 2023-02-09 삼성전자주식회사 Method and apparatus for decoding of data in communication and broadcasting systems

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450535A (en) * 1993-09-24 1995-09-12 At&T Corp. Graphs employing clusters
FR2753026B1 (en) * 1996-08-28 1998-11-13 Pyndiah Ramesh METHOD FOR TRANSMITTING INFORMATION BITS WITH ERROR CORRECTING CODER, ENCODER AND DECODER FOR CARRYING OUT SAID METHOD
US7085969B2 (en) * 2001-08-27 2006-08-01 Industrial Technology Research Institute Encoding and decoding apparatus and method
US6704376B2 (en) * 2002-01-23 2004-03-09 Bae Systems Information And Electronic Systems Integration Inc. Power and confidence ordered low complexity soft turbomud with voting system
US7020829B2 (en) * 2002-07-03 2006-03-28 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes
EP1414158A1 (en) * 2002-10-24 2004-04-28 STMicroelectronics N.V. Method of decoding an incident turbo-code encoded signal in a receiver, and corresponding receiver, in particular for mobile radio systems
US7484158B2 (en) * 2003-12-03 2009-01-27 Infineon Technologies Ag Method for decoding a low-density parity check (LDPC) codeword
US7174495B2 (en) * 2003-12-19 2007-02-06 Emmanuel Boutillon LDPC decoder, corresponding method, system and computer program
JP2005210238A (en) * 2004-01-21 2005-08-04 Nec Corp Turbo decoder, its method, and its operation program
JP4296949B2 (en) * 2004-02-03 2009-07-15 ソニー株式会社 Decoding apparatus and method, and information processing apparatus and method
US7251769B2 (en) * 2004-03-17 2007-07-31 Lucent Technologies Inc. Methods and apparatus for communication using generalized low density parity check codes
JP3891186B2 (en) * 2004-03-22 2007-03-14 住友電気工業株式会社 Decoding device and preprocessing device
JP3875693B2 (en) * 2004-03-24 2007-01-31 株式会社東芝 Coded bit mapping method and transmission apparatus using LPC code
KR100594818B1 (en) * 2004-04-13 2006-07-03 한국전자통신연구원 A Decoding Apparatus of Low-Density Parity-Check Codes Using Sequential Decoding, and a method thereof
JP4138700B2 (en) * 2004-05-31 2008-08-27 株式会社東芝 Decoding device and decoding circuit
US20050283707A1 (en) * 2004-06-22 2005-12-22 Eran Sharon LDPC decoder for decoding a low-density parity check (LDPC) codewords
US20060195765A1 (en) * 2005-02-28 2006-08-31 Texas Instruments Incorporated Accelerating convergence in an iterative decoder
JP4519694B2 (en) * 2005-03-29 2010-08-04 財団法人北九州産業学術推進機構 LDPC code detection apparatus and LDPC code detection method
KR100943623B1 (en) * 2005-09-30 2010-02-24 삼성전자주식회사 Puncturing technique of low density parity check code
WO2007126328A1 (en) * 2006-04-28 2007-11-08 Intel Corporation Multi-theshold message passing decoding of low density parity check codes using the min-sum principle
KR100981501B1 (en) * 2006-11-06 2010-09-10 연세대학교 산학협력단 Apparatus and method for transmitting/receiving signal in a communication system

Also Published As

Publication number Publication date
ATE454750T1 (en) 2010-01-15
EP2047605B1 (en) 2010-01-06
FR2904499B1 (en) 2009-01-09
JP5199255B2 (en) 2013-05-15
KR20090048465A (en) 2009-05-13
DE602007004224D1 (en) 2010-02-25
FR2904499A1 (en) 2008-02-01
CN101496292B (en) 2014-02-19
US20090313525A1 (en) 2009-12-17
EP2047605A1 (en) 2009-04-15
WO2008012318A1 (en) 2008-01-31
KR101431162B1 (en) 2014-08-18
CN101496292A (en) 2009-07-29
US8245115B2 (en) 2012-08-14
JP2009545220A (en) 2009-12-17

Similar Documents

Publication Publication Date Title
ES2339295T3 (en) DECODIFICATION PROCESS IN MESSAGE PASS WITH A CLASSIFICATION OF THE NODES ACCORDING TO A RELIABILITY RELIABILITY.
AU2005225107B2 (en) Method and apparatus for decoding low density parity check code using united node processing
US10567010B2 (en) Flexible polar encoders and decoders
Sarkis et al. Fast list decoders for polar codes
Elkelesh et al. Belief propagation decoding of polar codes on permuted factor graphs
Healy et al. Design of LDPC codes based on multipath EMD strategies for progressive edge growth
US8566666B2 (en) Min-sum based non-binary LDPC decoder
US20110179333A1 (en) Lower-complexity layered belief propagation decoding ldpc codes
WO2008034254A1 (en) Stochastic decoding of ldpc codes
US9258015B2 (en) Decoder with selective iteration scheduling
EP2833553B1 (en) LDPC decoder
US8201049B2 (en) Low density parity check (LDPC) decoder
Arlı et al. Noise-aided belief propagation list decoding of polar codes
US20100146371A1 (en) Modified Turbo-Decoding Message-Passing Algorithm for Low-Density Parity Check Codes
JP2016530839A (en) Method and apparatus for identifying a first extreme value and a second extreme value from a set of values
Wang et al. Post-processing for CRC-aided successive cancellation list decoding of polar codes
ES2225647T3 (en) TURBO DECODER WITH COMPARISON OF SIGNAL CODE FOR CIRCULAR REDUNDANCY.
Xiong et al. Improved iterative hard-and soft-reliability based majority-logic decoding algorithms for non-binary low-density parity-check codes
Fossorier et al. A unified method for evaluating the error-correction radius of reliability-based soft-decision algorithms for linear block codes
ES2417930T3 (en) Method and apparatus for coding channels in a communication system using low density parity check codes
Scholl et al. ML vs. BP decoding of binary and non-binary LDPC codes
Sarkis et al. Unrolled polar decoders, part ii: Fast list decoders
Fayyaz et al. A low-complexity soft-output decoder for polar codes
Tan et al. CRC aided short-cycle free BP decoding for polar codes
US20090106630A1 (en) Iterative decoding in a mesh network, corresponding method and system