ES2383835T3 - Procedimiento y dispositivo de decodificación para códigos LDPC, y aparato de comunicación que comprende dicho dispositivo - Google Patents

Procedimiento y dispositivo de decodificación para códigos LDPC, y aparato de comunicación que comprende dicho dispositivo Download PDF

Info

Publication number
ES2383835T3
ES2383835T3 ES07870358T ES07870358T ES2383835T3 ES 2383835 T3 ES2383835 T3 ES 2383835T3 ES 07870358 T ES07870358 T ES 07870358T ES 07870358 T ES07870358 T ES 07870358T ES 2383835 T3 ES2383835 T3 ES 2383835T3
Authority
ES
Spain
Prior art keywords
symbol
variable node
node
variable
symbols
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
ES07870358T
Other languages
English (en)
Inventor
Valentin Savin
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
Commissariat a lEnergie Atomique et aux Energies Alternatives 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, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Application granted granted Critical
Publication of ES2383835T3 publication Critical patent/ES2383835T3/es
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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1171Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC codes
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/112Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/1122Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3916Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding for block codes using a trellis or lattice

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)
  • Electroluminescent Light Sources (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Procedimiento de decodificación iterativa de una palabra recibida, representada por valores de una señal, según un código de matriz de control de paridad, del tipo de paso de mensajes entre dos nodos de variable y dos nodos de control de un grafo bipartito asociado a dicha matriz, caracterizado una etapa de inicialización de por lo menos un mensaje de un nodo de variable, en función de dichos valores, mediante una información representativa de la relación entre la probabilidad de tener el símbolo más probable en la posición correspondiente al nodo de variable y la probabilidad de tener el símbolo actual en dicha posición.

Description

Procedimiento y dispositivo de decodificación para códigos LDPC, y aparato de comunicación que comprende dicho dispositivo.
La presente invención se refiere a un procedimiento y un dispositivo de decodificación, así como a un aparato de comunicación que comprende dicho dispositivo.
La codificación de palabras de información (de una longitud generalmente indicada como K) en palabras de código (de una longitud indicada generalmente como N, con N > K) se utiliza cuando se desea añadir redundancia a las informaciones referidas con el fin de recuperar la totalidad de las informaciones de origen aunque una parte de las mismas sea errónea o se haya perdido, como en el caso de la transmisión de informaciones en un canal con perturbaciones o de su almacenamiento en un soporte sujeto a degradaciones (tales como arañazos en un disco óptico).
La decodificación llevada a cabo en la recepción (o en la lectura en el caso del almacenamiento) con el fin de recuperar las palabras de información de origen comprende en general una primera fase de corrección de errores, que consiste en recuperar de forma precisa la palabra de código emitida (o almacenada) a partir de la palabra recibida (vocabulario usado también para designar la palabra leída en el caso del almacenamiento), a pesar de eventuales errores y gracias a la redundancia introducida, y a continuación una fase de “demapping” que consiste en realizar la operación inversa a la efectuada durante la codificación.
En este contexto, se conocen los códigos de matriz de control de paridad con baja densidad, denominados en lo sucesivo códigos LDPC (según la abreviatura de la denominación anglosajona “Low Density Parity Check”), tales como los descritos por ejemplo en el artículo “Low density parity check codes”, de R. Gallager en IEEE Trans. Inform. Theory, vol., IT-8, págs. 21 a 28, 1962.
Estos códigos son particularmente interesantes no solo porque están muy próximos a la capacidad del canal (límite de Shannon) y ofrecen el mejor compromiso posible entre rendimiento y prestaciones (próximos al límite de Gilbert-Varshamov), sino también porque admiten una decodificación iterativa de tipo paso de mensaje.
Hasta el momento se han propuesto dos algoritmos principales de decodificación de los códigos LDPC, ya sean códigos binarios (para los cuales los símbolos que representan las informaciones son 0 ó 1, es decir, adoptados en el campo de Galois ( ()) o códigos no binarios (para los cuales los símbolos se adoptan en el campo de Galois
GF 2
()con ).
GFqq >2
El primero, propuesto en el artículo citado previamente con el nombre de “probabilistic decoding” se conoce generalmente (y se denomina en lo sucesivo) como decodificación SPA (de “Sum – Product Algorithm”) o BP (de “Belief Propagation”). Este algoritmo se califica generalmente como óptimo puesto que la decodificación SPA converge hacia la máxima verosimilitud a condición de que el grafo bipartito asociado al código LDPC no contenga ciclos. En el caso de los códigos LDPC no binarios, este algoritmo es sin embargo inservible en un sistema real de comunicaciones a causa de su muy amplia dinámica, lo cual acarrea una fuerte inestabilidad de los cálculos efectuados. Además, requiere la realización de un número importante de productos, lo cual lo hace complejo, y depende del conocimiento del ruido térmico.
El segundo algoritmo de decodificación, subóptimo, es conocido principalmente con el nombre de MSA (de “Min-Sum Algorithm”). Es menos complejos que el SPA y es independiente del conocimiento del ruido térmico, aunque presenta, en términos de tasa de errores de bit, una pérdida de prestaciones con respecto al SPA que varía generalmente de 0,25 dB a 1 dB para un canal AWGN (del inglés “Additive White Gaussian Noise” de ruido blanco gaussiano aditivo), en función del rendimiento, de la irregularidad o de la longitud del código utilizado.
Así, en este contexto, la invención pretende especialmente proponer una solución para la decodificación de los códigos LDPC, en particular no binarios, que combine buenas prestaciones (por ejemplo con respecto al MSA) y una complejidad reducida con respecto al algoritmo óptimo (algoritmo SPA).
Así, la invención propone un procedimiento de decodificación iterativa de una palabra recibida, representada por valores de una señal, según un código de matriz de control de paridad, del tipo de paso de mensajes entre dos nodos de variable y dos nodos de control de un grafo bipartito asociado a dicha matriz, caracterizado porque comprende una etapa de inicialización de por lo menos un mensaje de un nodo de variable, en función de dichos valores, mediante una información representativa de la relación entre la probabilidad de tener el símbolo más probable en la posición correspondiente al nodo de variable y la probabilidad de tener el símbolo actual en dicha posición.
Por otra parte, se puede prever según este procedimiento que el mismo comprenda por lo menos una de las etapas siguientes:
-
determinación de por lo menos un mensaje, referente a un símbolo determinado, de un nodo de control hacia un nodo de variable determinado, como el valor mínimo adoptado, entre las secuencias de símbolos que verifican la
ecuación en el nodo de control utilizando dicho símbolo determinado en el nodo de variable determinado, por el valor máximo de los mensajes recibidos en el nodo de control desde nodos de variable que no sean el nodo de variable determinado y referentes, cada uno de ellos, al símbolo asociado a este otro nodo de variable en la secuencia que verifica la ecuación;
-
determinación de los mensajes de un nodo de variable hacia un nodo de control referentes al conjunto de los símbolos de tal manera que el valor mínimo de dichos mensajes sea nulo.
La solución así propuesta (denominada en lo sucesivo MMA de “Min-Max Algorithm”) permite obtener buenas prestaciones para una complejidad reducida, tal como se desprenderá a partir de ejemplos de realización presentados posteriormente.
En la práctica, la etapa de inicialización del mensaje de un nodo de variable comprende, por ejemplo, las siguientes etapas:
-
para cada símbolo del alfabeto, determinación de la suma de las relaciones de verosimilitud logarítmica binarias referentes a los bits no nulos del símbolo y en la posición correspondiente al nodo de variable y;
-
determinación del mínimo de las sumas determinadas;
-
resta, de cada suma determinada, del mínimo determinado.
Por otro lado, se puede prever según este procedimiento una etapa de determinación de una información a posteriori referente a un nodo de variable y a un símbolo, como la suma del mensaje inicial referente al símbolo en dicho nodo de variable y del conjunto de los mensajes recibidos en el nodo de variable y referentes al símbolo, en cuyo caso el final del procedimiento iterativo se puede determinar de la manera siguiente:
-
para cada nodo de variable, determinación del símbolo para el cual la información a posteriori es mínima;
-
si la secuencia de los símbolos así determinados para el conjunto de los nodos de variable es una palabra de código, utilización de dicha palabra de código como palabra estimada.
Según un modo de realización de la etapa de determinación de los mensajes de un nodo de variable hacia un nodo de control dado previsto más arriba, el mismo comprende las siguientes etapas:
-
para cada símbolo, determinación de la suma del mensaje inicial referente al símbolo en dicho nodo de variable y del conjunto de los mensajes recibidos en el nodo de variable procedentes de un nodo de control que no sea el nodo de control dado y referentes al símbolo;
-
determinación del mínimo de entre las sumas determinadas;
-
para cada símbolo, resta del mínimo determinado, de la suma determinada referente al símbolo.
Para la realización práctica de la etapa de determinación de por lo menos un mensaje de un nodo de control hacia un nodo de variable determinado, el mismo puede comprender, por ejemplo, las siguientes etapas:
-
determinación, para cada símbolo, de un valor intermedio igual al valor mínimo adoptado por el valor máximo de mensajes recibidos en el nodo de control desde una parte solamente de los nodos de variable asociados al nodo de control;
-
determinación del valor mínimo adoptado por el valor máximo de entre los valores intermedios y los mensajes recibidos de un nodo de variable asociado al nodo de control y que no pertenecen a dicha parte.
De forma más precisa, estas dos etapas se pueden describir de la manera siguiente:
-
determinación, para cada símbolo, de un valor intermedio igual al valor mínimo adoptado, de entre las secuencias de símbolos asociados a una parte solamente de los nodos de variable conectados a dicho nodo de control y tales que la suma de los símbolos de la secuencia multiplicados por los coeficientes correspondiente en la matriz a dichos nodos de variable sea igual a dicho símbolo determinado, por el valor máximo de los mensajes recibidos en el nodo de control desde los nodos de variable de dicha parte y referentes, cada uno de ellos, al símbolo asociado a este nodo de variable en dicha secuencia;
-
determinación de manera recursiva, para cada símbolo, de un valor intermedio nuevo igual al valor mínimo adoptado, de entre las parejas de símbolos cuyo primer símbolo está asociado a un valor intermedio calculado previamente y correspondiente a una parte de los nodos de variable y cuyo segundo símbolo está asociado a un nodo de variable nuevo que no pertenece a dicha parte, y tales que la suma del primer símbolo y del segundo símbolo multiplicado por el coeficiente en la matriz del nodo de variable correspondiente sea igual a dicho símbolo determinado, por el valor máximo entre el valor intermedio calculado previamente referente al primer símbolo de dicha pareja y el mensaje recibido en el nodo de control desde el nodo de variable nuevo y referente al segundo
símbolo de dicha pareja. El valor intermedio nuevo, calculado de esta manera, se corresponde con una parte nueva de nodos de variable que comprenden la parte antigua y el nodo nuevo de variable.
Se trata de un modo de realización particularmente práctico, denominado en lo sucesivo «forward - backward» (del inglés que significa “hacia delante, hacia atrás”), que permite limitar (preferentemente a dos) el número de nodos de variables (es decir de dimensiones) sobre las cuales se debe buscar el mínimo del máximo.
Por otra parte, según un modo de realización propuesto posteriormente (“implementación selectiva”), el procedimiento comprende una etapa de determinación del mínimo, entre las parejas de dos símbolos que pertenecen al alfabeto del código, del máximo de dos valores asociados respectivamente a los dos símbolos de cada pareja, que comprende las siguientes subetapas:
-
determinación de conjuntos que agrupan, cada uno de ellos, los símbolos a los cuales están asociados valores comprendidos en un intervalo determinado;
-
selección de conjuntos, de entre los conjuntos determinados, de tal manera que la reunión de los conjuntos seleccionados contiene por lo menos un número predeterminado de símbolos (siendo suficiente este número predeterminado para el cálculo del mínimo de los máximos considerados aquí y explicado posteriormente con el nombre de “fórmula min-max”);
-
utilización, como máximo entre dos valores, del valor asociado al símbolo comprendido en el conjunto correspondiente al intervalo superior cuando los valores están asociados a símbolos comprendidos en conjuntos seleccionados correspondientes a intervalos distintos;
-
determinación por comparación del máximo entre dos valores cuando los valores están asociados a símbolos comprendidos en conjuntos seleccionados correspondientes a un mismo intervalo.
El agrupamiento de los símbolos por conjuntos según el valor adoptado, en la práctica mediante la utilización de la parte entera de este valor, permite reducir claramente el número de símbolos implicados y simplificar las operaciones de comparación de los valores asociados a los símbolos implicados.
El código es, por ejemplo, un código de alfabeto no binario, en cuyo caso el procedimiento propuesto es particularmente interesante.
La invención propone también un dispositivo de decodificación iterativa de una palabra recibida, representada por valores de una señal, según un código de matriz de control de paridad, del tipo de paso de mensajes entre dos nodos de variable y dos nodos de control de un grafo bipartito asociado a dicha matriz, caracterizado porque comprende:
-
medios de inicialización de por lo menos un mensaje de un nodo de variable, en función de dichos valores, mediante una información representativa de la relación entre la probabilidad de tener el símbolo más probable en la posición correspondiente al nodo de variable y la probabilidad de tener el símbolo actual en dicha posición.
Este dispositivo puede constar de características opcionales correspondientes a las previstas anteriormente para el procedimiento de decodificación y las ventajas asociadas.
La invención propone finalmente un aparato de comunicación que comprende dicho dispositivo.
Se pondrán de manifiesto otras características y ventajas de la invención considerando la descripción que se ofrece seguidamente, realizada en referencia a los dibujos adjuntos en los cuales:
-
la figura 1 ofrece a título ilustrativo un ejemplo de matriz de paridad y de grafo asociado;
-
la figura 2 representa los elementos principales de un sistema de comunicación que comprende un receptor de acuerdo con las enseñanzas de la invención;
-
la figura 3 representa esquemáticamente la técnica de paso de mensajes entre los nodos de variable y los nodos de control;
-
la figura 4 ilustra el método «forward - backward» utilizado en el primer modo de realización;
-
la figura 5 ofrece a título explicativo una ilustración de las técnicas propuestas en el segundo modo de realización;
-
la figura 6 representa una comparación de las prestaciones obtenidas al utilizar el decodificador MSA y el correspondiente propuesto por la invención para códigos LDPC binarios y no binarios;
-
la figura 7 representa una comparación de las prestaciones obtenidas al utilizar los dos modos de realización presentados posteriormente en este documento;
-
la figura 8 representa una comparación de las complejidades de la decodificación MSA y de la decodificación
propuesta por la invención para códigos binarios y no binarios.
En lo sucesivo se presentan dos ejemplos de realización de la invención, con las siguientes notaciones comunes:
-
p , un entero estrictamente positivo denominado dimensión (o grado de extensión) del campo de Galois;
-
q =2 p , denominado cardinal del campo de Galois;
-
() un polinomio irreducible de grado p con coeficientes en GF 2 = 0,1
PX(){ };
-
GF() { q 0,1,., q -1}, el campo de Galois de q elementos, denominándose símbolos los elementos de ().
= GF q
Se observa que el campo de Galois ()se
GF q define típicamente como el cociente del anillo de polinomios GF()2 []X por el ideal generado por el polinomio PX
(), aunque, en este caso, por simplificar la exposición, el campo de Galois () se identifica con el conjunto de los enteros {0,1,...,q -
GFq1 }provisto de las operaciones «suma» y «producto» descritas más abajo (aunque cada elemento del campo de Galois se denomina símbolo con el fin de diferenciarlo de un «simple» entero).
Recuérdese en este momento que, con el fin de definir las operaciones «suma» y «producto» que dotan a ()de
GF quna estructura de campo, cada símbolo a E() se identifica con una secuencia binaria aa
GF q 01 .ap-1
-
p 1
Iii i 0,1correspondiente a la escritura de a en base 2, dicho de otra manera a = a 2, a E{}. Además, al símbolo a se
i=0
p-1 p-1 ii
le asocia el polinomio ()=IaX , con la consecuencia de que a 2 = a 2 =
aX ()I a .
ii
i=0 i=0
Los valores binarios a0 a1 .ap-1 se denominarán en lo sucesivo los bits del símbolo a EGF q
().
GF q , indicada a tb , se puede definir entonces mediante la suma bit a bit de los símbolos a y b , dicho de otra manera (a tb)=a +b mod 2 .
La suma de dos símbolos a,b E ()
i ii
GF q , indicado a ®b , se define por su parte mediante el producto de los polinomios ()y bX módulo (), dicho de otra manera (®bX =aX .bX mod ()
El producto de dos símbolos a,b E ()
aX() PX a )() ()() PX .
Un código LDPC sobre ()es un código lineal definido por una matriz de paridad HM ,N GFq ) con baja
GF q EM ( ()
GF q )) es el conjunto de las matrices de M filas y N columnas con densidad de elementos no nulos (donde MM ,N ( ()
coeficientes en ()). Se pueden introducir entonces las siguientes nociones:
GF q
-
N , la longitud de código, se corresponde con el número de columnas de la matriz H ;
-
M , el número de controles de paridad, se corresponde con el número de filas de la matriz H ;
-
K =N -M , la dimensión del código, se corresponde con la longitud de la palabra de información;
una palabra de código q-aria, es decir, una secuencia de símbolos (), tales que
-
x =(x1, x2 .., xN ) xn EGF q
H .x'=0 , donde x' es el vector transpuesto de x , es decir, tales que t h ®x =0,\m =1,., M , donde h
m,nn m,n
n=1,..,N
es el elemento de la fila m y la columna n de la matriz H ;
(),
-
(x , x ,., x , x , x ,.x ,.., x , x ,., x 1 ), donde x , x ,., x son los bits del símbolo xEGF q
1,0 1,1 1, p-1 2,0, 2,1 2, p-1 N ,0 N ,1 N , p-n,0 n,1 n, p-1 n
la palabra de código binario correspondiente;
-
G EMK ,N ( ()
GF q ), la matriz generadora del código, es decir, una matriz de rango K tal que H .G'=0 , donde G' es
K
la matriz transpuesta de G ; a una secuencia ( ,a ,., a )EGF q
a ()se le denomina palabra de información q-aria y
12 K
está codificada en (x , x ,.., x )( a , a ,.,a ).G
= .
12 N 12 K
Se define como grafo bipartito, o grafo de Tanner, asociado a un código LDPC un grafo que contiene N +M nodos divididos en dos tipos:
-
N nodos de tipo variable, correspondientes a las columnas de la matriz H ; -M nodos de tipo control, correspondientes a las filas de la matriz H ;
y en el cual un nodo de variable está conectado a un nodo de control si y solamente si el elemento correspondiente de la matriz H que define el código es no nulo.
En lo sucesivo se utilizan las siguientes notaciones:
-
los índices m,n designan un nodo de control, respectivamente un nodo de variable;
-
() designa el conjunto de los nodos de variable conectados al nodo de control m , denominándose grado del
Hmnodo de variable m a su cardinal.
-
() designa el conjunto de los nodos de control conectados al nodo de variable n , denominándose grado del
Hnnodo de variable n a su cardinal.
Para obtener más detalles sobre este tipo de grafos, puede hacerse referencia al artículo “A recursive approach to low complexity codes” de R. M. Tanner en IEEE Trans. Inform. Theory, vol. 27, n.º 5, págs. 533 a 547, 1981.
A título ilustrativo, la figura 1 representa un ejemplo de matriz de paridad de un código LDPC sobre ()y el grafo
GF 8 bipartito asociado. A cada arista del grafo bipartito le corresponde un coeficiente no nulo de H aunque, para no sobrecargar la representación gráfica, se ha omitido la presentación de los coeficientes de H sobre las aristas del grafo.
La figura 2 describe el esquema de un sistema de comunicación que utiliza un código LDPC no binario y que comprende un aparato de recepción de acuerdo con las enseñanzas de la invención.
En la emisión (es decir, en el nivel de un aparato de emisión de las informaciones a transmitir), en particular en el seno de un módulo de codificación, una palabra de información binaria (a ,a ,.a ,.., a ,a ,., a 1 )se
1,0 1,1 1, p-1 K ,0 K ,1 K , p
transforma en una palabra de información q -aria (a1,., aK ), donde ak es el símbolo determinado por los bits
ak ,0 ak ,1 .ak , p-1 , y a continuación la palabra de información q-aria se codifica en la palabra de código q-aria
(x1, x2,., xN ) ( = a1,., aK ).G . Por lo tanto, la palabra de código q-aria (x1, x2,., xN ) se transforma en una palabra de
código binario (x , x ,.x , x , x ,.x ,.., x , x ,.x 1 ).
1,0 1,1 1, p-1 2,0 2,1 2, p-1 N ,0 N ,1 N , p-
En la práctica, naturalmente se puede pasar de manera directa de la palabra de información binaria a la palabra de código binario utilizando una matriz generadora binaria.
La palabra de código binario generada por el módulo de codificación se transmite al módulo de modulación, el cual la transforma en una señal a emitir en el canal de comunicación.
El aparato de recepción comprende:
-
un módulo de demodulación, que determina las relaciones de verosimilitud logarítmica binarias (denominadas en lo sucesivo LLR binarias, según la formulación anglosajona “Logarithmic Likelihood Ratio”), indicadas A , n E{1,., N}{ ,i E0,., p -1}, correspondientes a la señal recibida en el canal de comunicación según la fórmula:
n,i
(Pr(x =0
observación del canal)J
n,i
A=lnl ;
n,i
lPr(x =1observación del canal)
n,i
-
un módulo de corrección de errores (denominado en lo sucesivo decodificador), que determina, por medio del procedimiento de decodificación propuesto por la invención y cuyos dos ejemplos se ofrecen posteriormente, una secuencia q-aria de longitud N (igual a la palabra de código q-aria emitida cuando la decodificación resulta satisfactoria) sobre la base de la secuencia de las LLR binarias recibidas del módulo de demodulación;
-
un módulo de demapping que transforma la secuencia q-aria a la salida del decodificador en una palabra de información, que se corresponde, en caso de resultado satisfactorio de la decodificación, en la palabra de información emitida (a1,.,aK ).
A continuación se describe un primer ejemplo de un procedimiento de decodificación propuesto por la invención, llevado a la práctica en el seno del módulo de corrección de errores (o decodificador) y que permite la estimación de una palabra recibida (o secuencia q-aria) sobre la base de las LLR binarias suministradas por el módulo de demodulación.
La decodificación propuesta se realiza de manera iterativa y con paso de mensajes. Así, este procedimiento comprende:
-
una etapa de inicialización sobre la base de las LLR binarias suministradas por el módulo de demodulación;
-
etapas de iteración durante las cuales se intercambian mensajes entre los nodos de variable y los nodos de control conectados en el grafo bipartito, aplicándose la primera etapa de iteración en los valores emitidos de la etapa de inicialización, mientras que las etapas siguientes se aplican en los valores resultantes de la etapa anterior.
La etapa de inicialización comienza mediante un cálculo de las informaciones a priori disponibles en los nodos de variable n { N} a E() Yna
E1,. en relación con los símbolos GF q , indicados (), de acuerdo con el procedimiento de decodificación presentado aquí:
(Pr(xn =sn
observación del canal)J
Y()= ll
na ln
Pr(xn =a observación del canal)
donde sn indica el símbolo más probable para xn , teniendo en cuenta la observación del canal.
Observando que:
(Pr(xn =0
observación del canal)J (Pr(xn =0 observación del canal)J
lY()= ll
na ln -ln
l
Pr(xn =a observación del canal) Pr(xn =sn observación del canal)
(Pr(x =0
observación del canal)J (Pr(x =0 observación del canal)J
l
l
=ln n
-
min ln n
l
EGF q
Pr(xn =a observación del canal) s () lPr(xn =s observación del canal)
se pueden calcular de la manera siguiente las informaciones a priori (en lo siguiente, ai indica el bit iésimo del símbolo a ), y ello en cada nodo de variable n y para todo símbolo a del alfabeto:
Cada información a priori n () ofrece por lo tanto una medida de la fiabilidad de símbolo a (para la posición n), en
Ya
forma de una distancia al símbolo más probable.
Por tanto, la etapa de inicialización puede proseguir (y acabar) con la inicialización de los mensajes de los nodos de variable hacia los nodos de control (denominados también informaciones extrínsecas). El mensaje enviado por el nodo de variable am,n ()al nodo de control m E () en relación con el símbolo a E ()
a Hn GFq se indica como
n E{1,.N}.
Según el procedimiento de decodificación propuesto aquí, las informaciones extrínsecas se inicializan a partir de las informaciones a priori de la manera siguiente:
Cada etapa de iteración se realiza mediante paso de mensajes entre los nodos del grafo bipartito, tal como se representa esquemáticamente en la figura 3, y comprende por tanto las siguientes subetapas:
-
cálculo de los mensajes de los nodos de control hacia los nodos de variable. El mensaje enviado por el nodo de control m { M } al nodo de variable n EHm en relación con el símbolo a EGF q se indica como fm,na
E1,.() ()(). Este mensaje se calcula en función de los mensajes a()' m desde los nodos de
a recibidos por el nodo de control
m,n
, en relación con todos los símbolos (), de acuerdo con el método de decodificación propuesto aquí:
variable n'EH () {}m -na'EGF q
-
cálculo de las informaciones a posteriori. La información a posteriori calculada en el nodo de variable n E{1,.N}
~
GF q se indica como a . Esta información se calcula en función de la información
en relación con el símbolo a E() Yn ()
a priori Y() disponible en el nodo de variable n y de los mensajes f() recibidos por el nodo de variable n
aa
nm,n
desde los nodos de control m E (), en relación con el símbolo a E (), de acuerdo con la fórmula a
Hn GFq
continuación:
-
cálculo de los mensajes de los nodos de variable hacia los nodos de control (o informaciones extrínsecas). El mensaje (nuevo) a() se calcula en función de la información a priori Y() disponible en el nodo de variable n y
aa
m,nn
de los mensajes f() recibidos por el nodo de variable n desde los nodos de control m'EHn -m
a () {}, en relación
m',n
con el símbolo a E ()GF q , en este caso de acuerdo con:
Así, para el símbolo más probable s (es decir, tal que a =a ()s ), se tiene siempre en cada iteración
nm,nm,nn
a ()s =0
m,nn
En cada iteración, se puede calcular una decisión dura correspondiente a los símbolos más probables a partir de las
~
informaciones a posteriori Yn ()n E1,.N}a EGF q
a , { , (). Como ya se ha dado a conocer, los símbolos más probables ~
son aquellos que producen el mínimo de informaciones a posteriori Yn ()
a . Si la secuencia de estos símbolos más probables se corresponde con una palabra de código, se considera que la palabra de código encontrada es la
palabra de código emitida en el origen: la decodificación se detiene y se pasa al módulo de demapping la palabra de código encontrada.
En cambio, si la secuencia de estos símbolos más probables no se corresponde con una palabra de código, la decodificación continúa hasta que se obtenga un número máximo predeterminado de iteraciones, en cuyo caso se considera que la decodificación ha fracasado.
El interés de la fórmula min – max utilizada en el cálculo de los mensajes de los nodos de control fm,n ()a se puede
explicar de la manera siguiente.
En lo sucesivo, se fijan un nodo de control m , un nodo de variable n conectado al nodo de control m y un símbolo a E () n ) conectados al nodo de control m se indican
GF q . Los otros nodos de variable (es decir, diferentes de como n ., nd () { n, n1,.,
1,. Así, con las notaciones anteriores se tiene Hm = nd }.
El mensaje fm,n ()m desde los nodos de
a se calcula en función de los mensajes recibidos por el nodo de control
variable n1,.,nd (y ello para cada símbolo de GF(q)) .
Si se considera una secuencia de símbolos (a1,., ad ) que comprende un símbolo para cada nodo de variable
n1,., nd , se dirá en lo sucesivo que una secuencia de este tipo es admisible si la secuencia (a,a1,.,ad )- que
comprende un símbolo para cada nodo de variable n,n1,.,nd - satisface el control m , es decir, la ecuación de la matriz de paridad en la fila m:
Por tanto, una secuencia admisible es susceptible de constituir una parte de una palabra de código.
El cálculo de fm,n ()
a tiene en cuenta la totalidad de las secuencias admisibles. Así, para cada secuencia admisible (a1,., ad ), se puede calcular el máximo de los mensajes recibidos por el nodo de control m desde los nodos de variable n1,.,nd en relación con los símbolos de esta secuencia, que ofrece una medida de la fiabilidad de esta
secuencia (correspondiéndose un valor bajo, tal como se ha visto anteriormente, con una información fiable). Con mayor precisión, se trata de:
Si este máximo se indica como M (a1,., ad ), entonces el mensaje calculados para la totalidad de las secuencias admisibles, es decir:
()= min ( ,.,
f a Maa
m,n 1 d
(a1,.,ad )admisible
fm,n ()a es igual al mínimo de todos los máximos
)
.
= min l(max (a ()J
a )
m,nk k 1 d
(a ,.,a ) k =1,.,d admisible
5 Por tanto, este mínimo apunta a la más probable de las secuencias admisibles y ofrece una medida de su fiabilidad.
Se obtiene así una información sobre la fiabilidad del símbolo a en la posición n, que tiene en cuenta otras informaciones disponibles en el nodo de control m.
A continuación se propone un primer método práctico para llevar a cabo el cálculo de los mensajes fm,n ()a sin tener
que enumerar cada vez el conjunto de las secuencias admisibles. Este primer modo de realización utiliza un método 10 de tipo «forward - backward» y se puede expresar de la manera siguiente.
Algoritmo Min – Max
Entrada: A1,0,A1,1,.,A1, p-1,A2,0,A2,1,.,A2, p-1,.,AN ,0,AN ,1,.,AN , p-1 - LLR binarias
Salida: s1, s2,.., sN - secuencia q-aria
Inicialización
15 Informaciones a priori Para cada nodo de variable n E{1,2,., N}hacer:
Inicialización de los mensajes de los nodos de variable Para cada nodo de variable n E{1,2,., N} m E()hacer:
y cada nodo de control Hn
Iteraciones
Mensajes de los nodos de control Para cada nodo de control m E{1,2,., M } (se plantea () { n1, n2,., nd }, siendo consecuentemente d el cardinal
Hm =
de ()) hacer:
Hm
25 // forward
// backward
// mensajes del nodo de control m
Informaciones a posteriori
5 Para cada nodo de variable n E{1,2,., N}hacer:
Decisión dura: elección de los símbolos más probables
Para cada nodo de variable n E{1,2,., N}hacer:
10
Si ()( ) { M }msh nm n mHn 1,2,.0,, \ E=®t E entonces SALIR;
Mensajes de los nodos de variable
Para cada nodo de variable
{ N}n ,1,2,.E y cada nodo de control ()H nm E hacer:
El método «forward - backward» utilizado en este modo de realización se ilustra en la figura 4. La notación am,n () 15 designa el conjunto de los mensajes a ()a EGF q ; de manera similar para F () ()B y f (). La utilización
a , () ,
m,n jjm,n
de cantidades (o valores) intermedias F () ()permite no implicar más que fórmulas de dos símbolos (a' es
j ,Bj ,a )
decir, no tener que determinar cada vez el mínimo de los valores máximos, más que sobre dos dimensiones.
Por otra parte, las fórmulas utilizadas anteriormente en el presente documento para determinar las Fj()y Bja
a ()en
el cálculo de los mensajes de los nodos de control (fórmulas de tipo «min - max») se pueden llevar a la práctica de la 20 manera siguiente.
Para simplificar la explicación, se ignora en este caso el valor de los coeficientes de la matriz H (es decir, se considera que 1,\n E ()), lo cual permite expresar una fórmula de este tipo con la forma:
h=Hm
m,n
y proceder a su cálculo de la manera siguiente: 25 Para a E()inicializar: ()a +0;
Para a E ()hacer:
GFq f =
'GF q
Para a''E ()hacer:
GF q
Si f < f ()entonces f ()=f ;
aa
Se observa que la complejidad de este cálculo es proporcional a q2 .
Se puede señalar por otra parte que, dadas las fórmulas utilizadas, la dinámica de los mensajes intercambiados es baja y consecuentemente no es necesaria ninguna normalización. Además, la solución propuesta es independiente del conocimiento del ruido térmico.
A continuación se describe un segundo modo de realización de la invención en el cual la baja dinámica a la que se ha hecho referencia más arriba se utiliza para reducir la complejidad. Se pretende especialmente reducir el coste de los cálculos min-max de la forma
Se puede constatar en la práctica (y además se demuestra en el anexo posteriormente) que, para este cálculo, es suficiente con considerar solamente los símbolos a'y a''correspondientes a los q +1 valores más bajos de entre 'a'f ()q
las f ()y a'' (es decir 2 . valores en total).
''a''' a'' '''. Se tiene entonces '+ ''
El número de símbolos a', respectivamente a ', correspondientes a los q +1 valores más bajos de entre las f ()y
f (), se indica como q ,q qq =q +1 y la complejidad del cálculo anterior se hace { q (q J}
proporcional a q'.q''E q, q +1,. l+1 .
Se podrá por tanto prever la reducción de la complejidad del cálculo de las f ()a EGF q
a , (), a condición de ordenar los valores f '()' y f ''a''. Ahora bien, la ordenación de los valores f '()' y f ''a'' añadiría una complejidad no
a ()a ()
despreciable en términos tanto del número de operaciones como de acceso a memoria.
'a'''' a '
Con el fin de evitar la ordenación de los valores f ()y f 'a , en este caso los símbolos a'y 'se almacenan
()según la parte entera de f ()f ()ik ik
' a' y de a . Los conjuntos '(respectivamente '') que contienen los símbolos a' ' a'J=k Lf ()J k
tales que Lf () (respectivamente los símbolos a''tales que a = ) donde el operador LJdesigna la parte entera, se indican entonces.
Bastaría entonces con determinar el entero más pequeño E tal que el número de símbolos a'y a''contenidos en los conjuntos '=' u'y i''=i u u sea superior o igual a ; y a continuación calcular ()
iiu. i . i q +1 fa
0 E 0E
utilizando:
Evidentemente, utilizando este método, puede que sea necesario utilizar más símbolos que cardinal del campo más uno (> 1 ), aunque se evita así la ordenación de los valores ' a' y f '()
q + f ()' a . La utilización de los conjuntos i'k y i'k 'tiene un interés doble:
-
se reduce el número de símbolos (y por tanto el número de bucles) necesarios para el cálculo de las fórmulas de tipo «min - max»);
-la mayor parte de los cálculos de máximo resultan obsoletos. Así, el máximo max(f '() ()a', f ''a'')se debe calcular solamente si los símbolos a'y a se encuentran en conjuntos del mismo rango, es decir, a'Ei' k y a''Ei k , con k'=k''. En los otros casos, el máximo se corresponde con el símbolo del conjunto de rango máximo (es decir,
f '()si k'' y a'' si k '). Para utilizar este método, se procede de la manera siguiente:
max =a' > k 'max =f ()'> k'
-
se define una dinámica predefinida de las informaciones a priori, de tal manera que la parte entera de los mensajes intercambiados proporcione un criterio suficientemente ajustado para distinguir entre los símbolos del alfabeto (en este caso el campo de Galois ()). Para ello se utiliza una constante AI (de “Average a priori Information”) y en
GF q
la etapa de inicialización, después del cálculo de las informaciones a priori (véase el primer modo de realización), se calcula:
{() {1,2,. N}a EGF()q ;
Y=media de los Y an E , }
ave n
a continuación se normalizan las informaciones a priori:
n ()=AI .Yn ()para n E1,., N}a EGF q
Y aa ; { , ()Yave
-
se define una dinámica máxima de los mensajes de los nodos de control, con el fin de tener un número reducido de
conjuntos i'k y i k . Para ello, se utiliza una constante COT (de “Cut Off Threshold”) y el cálculo de la fórmula «min -max» se realiza tal como se describe a continuación:
// determinar los conjuntos i'k y i' k '
para a E()GF q hacer
si ( =Lf '()J)<COT entonces añadir a a i
ka'' k
k 'a J k
si ( =Lf '()'')<COT entonces añadir a a i
// determinar el número de conjunto a utilizar (indicado E )
card =0;
para (E =0; E <COT -1; E ++)
card ++card( ))
si ( =(card( )i' E i E );q +1entonces salir del bucle Se define así E de tal manera que los conjuntos i'=i' u.ui' y i''=i''u.ui'' agrupan por lo menos q +1
0E 0E
elementos (como se ha visto anteriormente), excepto en el caso en el que se alcanza el valor máximo para E (es decir el valor COT -1).
En la salida del bucle, E define por tanto el nombre de conjuntos que se utilizarán. Se observa que es posible que el bucle llegue a su fin, en cuyo caso E=COT -1 (valor máximo de símbolo E logrado) y card(i'ui )puede ser
entonces inferior a q +1 (con lo que el número de símbolos a' y a''que se utilizarán es inferior a q +1 y, consecuentemente, la complejidad del cálculo «min-max» se reducirá todavía más). Esto se produce en general durante las últimas iteraciones, cuando la decodificación está bastante avanzada y cuando el decodificador no pone en duda más que un número muy bajo de símbolos.
Cuando sea necesario, para poner en evidencia el hecho de que el entero E se determina a partir de los conjuntos i'k y i'k ', 0 :k :COT , se indicará E =E(i', i'').
Se propone así el siguiente algoritmo:
// cálculo de la fórmula «min - max» implementación selectiva
para a E()inicializar: f ()=COT ;
GFq a para k'=0,., E y a'Ei' k hacer:
para k''=0,., k'-1 y a''Ei' k 'hacer:
a =a'ta'';
// obsérvese que f '()' f ' a' , f ''a'')puesto que k'>k'' si f () fa entonces fa =f ()
a =max(() ()
'a'<()() 'a' para k''=0,., E y a''Ei k hacer:
para k'=0,.,k''-1 y a'Ei' k hacer: 5 a =a'ta''; a = (()()''''
// obsérvese que f () maxf ' a , fa'')puesto que k'>k' si f () fa entonces fa =f ()
''a''<()() a para k =0,., E hacer: para a'Ei' k y a''Ei' k 'hacer: 10 a =a'ta''; max(f '() (), f 'a')
f = a' '' si f <f ()entonces fa
a ()=f
A continuación se ofrecerá la descripción completa del segundo modo de realización del algoritmo propuesto por la presente invención.
15 Se definen tres tipos de conjuntos:
-
conjuntos Aj ik : contienen los símbolos a EGF q Lam,nja J k
()tales que ()= ,
-
conjuntos Fj ik : contienen los símbolos GF q tales que Fj a J k ,
a E() L ()= jk a E() a
-
conjuntos B i : contienen los símbolos GF q tales que LBj ()J=k .
En esta descripción se mantienen las notaciones del primer modo de realización. 20 Por lo tanto el algoritmo propuesto en este segundo nodo de realización es el siguiente:
Algoritmo Min – Max
Entrada: A1,0,A1,1,.,A1, p-1,A2,0,A2,1,.,A2, p-1,..,AN ,0,AN ,1,.,AN , p-1 - LLR binarias
Salida: s1, s2,.., sN - secuencia q-aria
definir AI , por ejemplo: AI =4.647 para ()
GF 8 25 definir COT , por ejemplo: COT=10 para GF 8
()
Inicialización
Informaciones a priori
Para cada nodo de variable n E{1,2,., N}hacer:
{} GF q };
30 Hacer: Y=media de los{Y ()an E1,2,.N , a E ()
ave n
Para cada de variable n E{1,2,., N}hacer:
Inicialización de los mensajes de los nodos de variable
Para cada nodo de variable n E{1,2,., N} y cada nodo de control m E()
Hn hacer:
Iteraciones
Mensajes de los nodos de control
Para cada nodo de control m E{1,2,., M }(se plantea H () { m = n1, n2,.,nd }) hacer:
// conjuntos Aj ik
Determinar los conjuntos Aj ik ; // forward
Determinar los conjuntos F1ik ;
Determinar los conjuntos Fj ik ; //backward
Determinar los conjuntos Bdik ;
Determinar los conjuntos Bj ik ; // mensajes del nodo de control m
Informaciones a posteriori
Para cada nodo de variable n E{1,2,., N}hacer:
Decisión dura: elección de los símbolos más probables
Para cada nodo de variable n E{1,2,., N}hacer:
Si
()( )sh nm n mHn 0,, =®t E { M }m ,1,2,.\ E entonces SALIR;
10
Mensajes de los nodos de variable
Para cada nodo de variable
{ N}n ,1,2,.E y cada nodo de control ()H nm E hacer:
En los cálculos anteriores, para determinar el resultado de cada una de las fórmulas de tipo «min-max» se utiliza el algoritmo presentado más arriba en el presente documento (“// el cálculo de la fórmula «min-max» implementación
15 selectiva”).
Por otra parte, tal como se ha precisado anteriormente, en la etapa de inicialización, la dinámica de las
informaciones a priori se modifica de tal manera que la parte entera de los mensajes intercambiados proporciona un
criterio suficientemente ajustado para distinguir entre los símbolos del alfabeto (en este caso el campo de Galois()). En la práctica, el cálculo de ave se puede realizar solamente de forma periódica, sabiendo que su variación
GF q Y
20 entre dos palabras de código consecutivas es despreciable.
Los parámetros mencionados más arriba en el presente documento se escogen preferentemente tales que:
-
después de la multiplicación por , los valores de las informaciones a priori Yna
AI () estén suficientemente Yave
separados, de tal modo que los conjuntos de tipo ik contienen pocos símbolos;
-
el valor de COT , que se puede determinar por medio de simulaciones, debe ser relativamente bajo puesto que 25 determina el número de conjuntos de tipo ik que se utilizará.
A este respecto se puede observar que los valores de las constantes AI y COT ofrecidas como ejemplo más arriba en el presente documento sobre GF(8) se determinaron por medio de simulaciones y se pueden utilizar para un canal AWGN y para todo código LDPC sobre GF(8), con independencia de las características del código (longitud, irregularidad, rendimiento) o de la modulación utilizada.
La utilización conjunta de los conjuntos Aj ik ,Fj ik , Bj ik y del método «forward - backward» se describe
esquemáticamente a título meramente explicativo en la figura 5, para una constante COT igual a 3 y un nodo de control m de grado 4 ( H (m ={n1,n2,n3,n4 }).
En este ejemplo ofrecido sobre la base del campo de Galois, es decir, GF(8), se considera que los conjuntos F i,k =0,1,2 , contienen respectivamente 3, 1 y 4 símbolos y que los conjuntos A i, k =0,1,2 , contienen
1 k 1 k
respectivamente 4, 3 y 1 símbolos. Por tanto, para el cálculo de los valores F2 ()a EGF 8a , (), es suficiente con utilizar
a' a'''''los valores F ()y a()correspondientes a los símbolos a EF i y a EA i solamente para k =0 y k =1
1m,n21k 2k
(así pues 4 símbolos a' y 7 símbolos a'', es decir, un total de 11 símbolos, lo cual es suficiente puesto que debe haber por lo menos q +1 =9 símbolos en total).
, (), los símbolos GF 8
a ()se almacenan en los conjuntosUna vez que se han calculado los valores F2 ()a EGF 8 a E
F i, k =0,1,2 (según las partes enteras de los valores calculados). Supóngase que los conjuntos F i , k =0,1,2
2 k2 k
contienen respectivamente 6, 2 y 0 símbolos. Por lo tanto, para el cálculo de los valores F3 ()a EGF 8a , ()basta con
utilizar solamente los valores F ()y a' correspondientes a los 6 símbolos EF y a los 3 símbolos
a'a3 ()'a'i
2m,n 20
a EA3i0 (es decir, un total de 9 símbolos).
A continuación se presenta el resultado de simulaciones comparativas de los diferentes algoritmos previstos anteriormente en el presente documento y en la técnica anterior, en este caso para códigos LDPC sobre GF(8) o binarios.
El algoritmo objeto de la presente invención se denomina MMA (de “Min-Max Algorithm”), “implementación estándar” su primer modo de realización más arriba e “implementación selectiva” su segundo modo de realización.
Todos los códigos utilizados son códigos LDPC irregulares. El grafo bipartito se construye utilizando el algoritmo “Progressive Edge Growth”, descrito en “Regular and irregular progressive edge – growth Tanner graphs”, H. Y. Hu,
E. Eleftheriou, D.M. Arnold, IEEE Trans. Inform. Theory, vol. 51, n.º 1, págs. 386 a 398, 2005. En el caso de un código LDPC sobre GF(8), las aristas del grafo bipartito se corresponden con los lugares de los coeficientes no nulos en la matriz de paridad. Estos coeficientes se han escogido de manera aleatoria. En lo sucesivo no se indicará la irregularidad de los códigos utilizados, aunque se indicará el grado medio de los nodos de variable, que se designará
como dnave .
Las irregularidades de los códigos LDPC binarios se han optimizado por “evolución de densidad” tal como se describe en “Design of capacity approaching irregular low density parity check codes”, T. J. Richardson, M.A. Shokrollahi, R.L. Urbanke, IEEE Trans. Inform. Theory, vol. 47, n.º 2, págs. 619 a 637, 2001. Sin embargo, la irregularidad correspondiente a un buen código binario no es adecuada para obtener un buen código q-ario (y a la inversa). En general, cuanto más aumenta el cardinal del campo de Galois, más “huecos” (menos aristas en el grafo bipartito) deben ser los códigos utilizados, y de allí la diferencia entre los grados medios de los nodos de variable para los códigos binarios y para los códigos sobre GF(8) utilizados más abajo.
Las simulaciones se han realizado para un canal AWGN, utilizando una modulación QPSK. Por otra parte, las prestaciones de prestaciones se han realizado para una tasa de errores de bit (BER) de 10-5. El número máximo de iteraciones se fija a 200.
La figura 6 representa prestaciones de los decodificadores MMA y MSA con un código LDPC sobre GF(8), y del decodificador MSA con un código LDPC binario para códigos que tienen las características siguientes:
-
1.008 bits (es decir, 336 símbolos) de información, 2.016 bits (es decir, 672 símbolos) codificados (es decir, un rendimiento de 1/2) por un lado;
-
4.032 bits (es decir, 1.344 símbolos) de información, 8.064 bits (es decir, 2.688 símbolos) codificados (es decir, un rendimiento de 1/2) por otro lado;
-
para los códigos binarios: dnave =3,27 ;
-
para los códigos sobre GF(8): dnave =2,5 .
Se observa que:
-
para los códigos LDPC sobre GF(8), el decodificador MMA aventaja al decodificador MSA de 0,15 a 0,22 dB;
-
el código sobre GF(8) (decodificación MMA) avanza al código binario en 0,33 dB.
Se puede señalar también que, tras las simulaciones realizadas (no representadas), se ha constatado que para los códigos LDPC sobre GF(8), el decodificador MMA está a solamente 0,04 dB del decodificador SPA.
Por otra parte, se comparan, en referencia a la figura 7, las prestaciones del decodificador MMA, obtenidas utilizando las implementaciones “estándar” y “selectiva”. Se utilizan códigos LDPC sobre GF(8) de longitud binaria igual a 2.016 bits y de rendimientos 1/3, 1/2 y 4/5, cuyos grados medios de los nodos de variables son respectivamente 2,4, 2,5 y 2,8. Por otra parte, las constantes AI y COT utilizadas para la implementación selectiva se han fijado a:
AI = 4,647 , COT = 10
En la vista de la figura 7 se observa que las prestaciones obtenidas son (casi) idénticas, dicho de otra manera que no hay ninguna pérdida sustancial de prestaciones de la implementación selectiva con respecto a la implementación estándar.
La figura 8 permite la comparación de la complejidad de las decodificaciones MSA y MMA (implementaciones estándar y selectiva) sobre GF(8), y de la decodificación MSA sobre GF(2) (código binario).
El número de operaciones representa el número medio de operaciones en millares por bit codificado (todas las iteraciones acumuladas), efectuadas por los dos decodificadores. Este número depende de la relación señal/ruido (SNR) puesto que el número medio de iteraciones efectuadas por los dos decodificadores disminuye cuando la relación señal/ruido Eb/N0 aumenta.
Para cada rendimiento (1/3, 1/2 y 4/5), se registra el número medio de operaciones por bit codificado para los valores de Eb/N0, correspondientes a la región de caída de la BER.
Sobre GF(8), el decodificador MMA – estándar es menos complejo que el decodificador MSA. Esto es debido al hecho de que el decodificador MMA converge más rápidamente que el MSA; dicho de otra manera, el número de iteraciones efectuadas por el MMA es inferior al número de iteraciones efectuadas por el MSA (efectuando los dos decodificadores casi el mismo número de operaciones por iteración).
Sobre GF(8), el decodificador MMA – selectivo es de 2 a 3 veces menos complejo que el decodificador MMA – estándar. El número de iteraciones efectuadas por los dos decodificadores es el mismo aunque, para cada iteración, el MMA – selectivo efectúa menos operaciones que el MMA – estándar.
Finalmente, se observa que el decodificador MMA – selectivo sobre GF(8) es solamente de 1 a 2 veces más complejo que el decodificador MSA binario.
Los modos de realización presentados anteriormente no son más que posibles ejemplos de puesta en práctica de la invención, la cual no se limita a los mismos.
ANEXO
Se consideran dos funciones f ' y f '' definidas sobre ()y de valores reales, y f la función definida por la
GF q
fórmula «min-max»:
5 Sean i' subconjuntos de ()
' y i'GF q tales que el conjunto de los valores
contiene los q +1 valores más bajos de entre todos los valores de f 'y f '', es decir, de entre
Se mostrará entonces que f()
a se puede calcular mediante la fórmula
lo cual implica un número reducido de símbolos a'y a''. En una primera etapa, se mostrará que todo símbolo a Ea =5'+5 con 5'Ei'y 5 Ei . Para ello se definen dos funciones I,Ta : ()-GF q
GF q ()
()se puede escribir como la suma de dos símbolos:
GF q
con ()=x (función identidad) y Ta ()=a
Ix x tx (traslación
15 en a ). Señalando que las dos funciones son biyectivas, se obtiene
De aquí resulta que existen 5'Ei'y 5''Ei''tales que: I 5=Ta5 , lo cual equivale a 5' =a 5' a =5 5 .
()' ()t', de donde 't '' En una segunda etapa de la demostración, los dos símbolos tales que s'sa se indican s', s EGF q
t = (), logrando
20 el mínimo en la definición de f ()a , dicho de otra manera, tales que
Sean 5'Ei' y 5''Ei'' tales que a =5'+5'' (después de la primera etapa). Recuérdese que los símbolos de i' y i''se corresponden con los q +1 valores más bajos de entre el conjunto de los valores de las funciones f 'y f ''.
Entonces (por reducción al absurdo) si se tenía s'�i' o s''�i'', uno por lo menos de los valores f '()' , f ''()''
ss
25 estará fuera de los q +1 valores más bajos y se obtendría por tanto
lo cual contradice el carácter mínimo de la pareja s', s''. Por tanto, se tiene necesariamente s'Ei' y s''Ei''y consecuentemente

Claims (20)

  1. REIVINDICACIONES
    1.
    Procedimiento de decodificación iterativa de una palabra recibida, representada por valores de una señal, según un código de matriz de control de paridad, del tipo de paso de mensajes entre dos nodos de variable y dos nodos de control de un grafo bipartito asociado a dicha matriz, caracterizado una etapa de inicialización de por lo menos un mensaje de un nodo de variable, en función de dichos valores, mediante una información representativa de la relación entre la probabilidad de tener el símbolo más probable en la posición correspondiente al nodo de variable y la probabilidad de tener el símbolo actual en dicha posición.
  2. 2.
    Procedimiento de decodificación según la reivindicación 1, que comprende una etapa de determinación de por lo menos un mensaje, referente a un símbolo determinado, de un nodo de control hacia un nodo de variable determinado, como el valor mínimo adoptado, entre las secuencias de símbolos que verifican la ecuación en el nodo de control utilizando dicho símbolo determinado en el nodo de variable determinado, por el valor máximo de los mensajes recibidos en el nodo de control desde nodos de variable que no sean el nodo de variable determinado y referentes, cada uno de ellos, al símbolo asociado a este otro nodo de variable en la secuencia que verifica la ecuación.
  3. 3.
    Procedimiento de decodificación según la reivindicación 1 ó 2, que comprende una etapa de determinación de los mensajes de un nodo de variable hacia un nodo de control referentes al conjunto de los símbolos de tal manera que el valor mínimo de dichos mensajes sea nulo.
  4. 4.
    Procedimiento de decodificación según una de las reivindicaciones 1 a 3, en el cual la etapa de inicialización del mensaje de un nodo de variable comprende las siguientes etapas:
    -
    para cada símbolo del alfabeto, determinación de la suma de las relaciones de verosimilitud logarítmica binarias referentes a los bits no nulos del símbolo y en la posición correspondiente al nodo de variable y;
    -
    determinación del mínimo de las sumas determinadas;
    -
    resta, de cada suma determinada, del mínimo determinado.
  5. 5. Procedimiento de decodificación según una de las reivindicaciones 1 a 4, que comprende una etapa de determinación de una información a posteriori referente a un nodo de variable y a un símbolo, como la suma del mensaje inicial referente al símbolo en dicho nodo de variable y del conjunto de los mensajes recibidos en el nodo de variable y referentes al símbolo.
  6. 6. Procedimiento de decodificación según la reivindicación 5, que comprende las siguientes etapas:
    -
    para cada nodo de variable, determinación del símbolo para el cual la información a posteriori es mínima;
    -
    si la secuencia de los símbolos así determinados para el conjunto de los nodos de variable es una palabra de código, utilización de dicha palabra de código como palabra estimada.
  7. 7. Procedimiento de decodificación según una de las reivindicaciones 3 a 6, considerándose las reivindicaciones 4 y 5 en dependencia de la reivindicación 3, en el cual la etapa de determinación de los mensajes de un nodo de variable hacia un nodo de control dado comprende las siguientes etapas:
    -
    para cada símbolo, determinación de la suma del mensaje inicial referente al símbolo en dicho nodo de variable y del conjunto de los mensajes recibidos en el nodo de variable procedentes de un nodo de control que no sea el nodo de control dado y referentes al símbolo;
    -
    determinación del mínimo de entre las sumas determinadas;
    -
    para cada símbolo, resta, del mínimo determinado, de la suma determinada referente al símbolo.
  8. 8. Procedimiento de decodificación según una de las reivindicaciones 2 a 7, considerándose las reivindicaciones 3 a 7 en dependencia de la reivindicación 2, en el cual la etapa de determinación de por lo menos un mensaje de un nodo de control hacia un nodo de variable determinado comprende las siguientes etapas:
    -
    determinación, para cada símbolo, de un valor intermedio igual al valor mínimo adoptado por el valor máximo de mensajes recibidos en el nodo de control desde una parte solamente de los nodos de variable asociados al nodo de control;
    -
    determinación del valor mínimo adoptado por el valor máximo de entre los valores intermedios y los mensajes recibidos de un nodo de variable asociado al nodo de control y que no pertenecen a dicha parte.
  9. 9. Procedimiento de decodificación según una de las reivindicaciones 1 a 8, que comprende una etapa de determinación del mínimo, entre las parejas de dos símbolos que pertenecen al alfabeto del código, del máximo de dos valores asociados respectivamente a los dos símbolos de cada pareja, que comprende las siguientes subetapas:
    -
    determinación de conjuntos que agrupan, cada uno de ellos, los símbolos a los cuales están asociados valores comprendidos en un intervalo determinado;
    -
    selección de conjuntos, de entre los conjuntos determinados, de tal manera que la reunión de los conjuntos seleccionados contiene por lo menos un número predeterminado de símbolos;
    -
    utilización, como máximo entre dos valores, del valor asociado al símbolo comprendido en el conjunto correspondiente al intervalo superior cuando los valores están asociados a símbolos comprendidos en conjuntos seleccionados correspondientes a intervalos distintos;
    -
    determinación por comparación del máximo entre dos valores cuando los valores están asociados a símbolos comprendidos en conjuntos seleccionados correspondientes a un mismo intervalo.
  10. 10.
    Procedimiento de decodificación según una de las reivindicaciones 1 a 9, en el cual el código es un código de alfabeto no binario.
  11. 11.
    Dispositivo de decodificación iterativa de una palabra recibida, representada por valores de una señal, según un código de matriz de control de paridad, del tipo de paso de mensajes entre dos nodos de variable y dos nodos de control de un grafo bipartito asociado a dicha matriz, caracterizado porque comprende medios de inicialización de por lo menos un mensaje de un nodo de variable, en función de dichos valores, mediante una información representativa de la relación entre la probabilidad de tener el símbolo más probable en la posición correspondiente al nodo de variable y la probabilidad de tener el símbolo actual en dicha posición.
  12. 12.
    Dispositivo de decodificación según la reivindicación 11, que comprende medios de determinación de por lo menos un mensaje, referente a un símbolo determinado, de un nodo de control hacia un nodo de variable determinado, como el valor mínimo adoptado, entre las secuencias de símbolos que verifican la ecuación en el nodo de control utilizando dicho símbolo determinado en el nodo de variable determinado, por el valor máximo de los mensajes recibidos en el nodo de control desde nodos de variable que no sean el nodo de variable determinado y referentes, cada uno de ellos, al símbolo asociado a este otro nodo de variable en la secuencia que verifica la ecuación.
  13. 13.
    Dispositivo de decodificación según la reivindicación 11 ó 12, que comprende medios de determinación de los mensajes de un nodo de variable hacia un nodo de control referentes al conjunto de los símbolos de tal manera que el valor mínimo de dichos mensajes sea nulo.
  14. 14.
    Dispositivo de decodificación según una de las reivindicaciones 11 a 13, en el cual los medios de inicialización del mensaje de un nodo de variable comprenden:
    -
    medios para determinar, para cada símbolo del alfabeto, la suma de las relaciones de verosimilitud logarítmica binarias referentes a los bits no nulos del símbolo y en la posición correspondiente al nodo de variable y;
    -
    medios para determinar el mínimo de las sumas determinadas;
    -
    medios para restar, de cada suma determinada, el mínimo determinado.
  15. 15. Dispositivo de decodificación según una de las reivindicaciones 11 a 14, que comprende medios de determinación de una información a posteriori referente a un nodo de variable y a un símbolo, como la suma del mensaje inicial referente al símbolo en dicho nodo de variable y del conjunto de los mensajes recibidos en el nodo de variable y referentes al símbolo.
  16. 16. Dispositivo de decodificación según la reivindicación 15, que comprende:
    -
    medios para determinar, para cada nodo de variable, el símbolo para el cual la información a posteriori es mínima;
    -
    medios para utilizar la secuencia de los símbolos así determinados para el conjunto de los nodos de variable como palabra estimada si dicha secuencia es una palabra de código.
  17. 17. Dispositivo de decodificación según una de las reivindicaciones 13 a 16, considerándose las reivindicaciones 14 y 15 en dependencia de la reivindicación 13, en el cual los medios de determinación de los mensajes de un nodo de variable hacia un nodo de control dado comprenden:
    -
    medios para determinar, para cada símbolo, la suma del mensaje inicial referente al símbolo en dicho nodo de variable y del conjunto de los mensajes recibidos en el nodo de variable procedentes de un nodo de control que no sea el nodo de control dado y referentes al símbolo;
    -
    medios para determinar el mínimo de entre las sumas determinadas;
    -
    para cada símbolo, medios para restar el mínimo determinado, de la suma determinada referente al símbolo.
  18. 18. Dispositivo de decodificación según una de las reivindicaciones 12 a 17, considerándose las reivindicaciones 13 a 15 en dependencia de la reivindicación 12, en el cual los medios de determinación de por lo menos un mensaje de un nodo de control hacia un nodo de variable determinado comprenden:
    5 - medios para determinar, para cada símbolo, un valor intermedio igual al valor mínimo adoptado por el valor máximo de mensajes recibidos en el nodo de control desde una parte solamente de los nodos de variable asociados al nodo de control;
    -
    medios para determinar el valor mínimo adoptado por el valor máximo de entre los valores intermedios y los mensajes recibidos de un nodo de variable asociado al nodo de control y que no pertenecen a dicha parte.
    10 19. Dispositivo de decodificación según una de las reivindicaciones 11 a 18, en el cual medios para determinar el mínimo, entre las parejas de dos símbolos que pertenecen al alfabeto del código, del máximo de dos valores asociados respectivamente a los dos símbolos de cada pareja, comprenden:
    -
    medios de determinación de conjuntos que agrupan, cada uno de ellos, los símbolos a los cuales están asociados valores comprendidos en un intervalo determinado;
    15 - medios de selección de conjuntos, de entre los conjuntos determinados, de tal manera que la reunión de los conjuntos seleccionados contiene por lo menos un número predeterminado de símbolos;
    -
    medios que utilizan, como máximo entre dos valores, el valor asociado al símbolo comprendido en el conjunto correspondiente al intervalo superior cuando los valores están asociados a símbolos comprendidos en conjuntos seleccionados correspondientes a intervalos distintos;
    20 - medios para determinar por comparación el máximo entre dos valores cuando los valores están asociados a símbolos comprendidos en conjuntos seleccionados correspondientes a un mismo intervalo.
  19. 20. Dispositivo de decodificación según una de las reivindicaciones 11 a 19, en el cual el código es un código de alfabeto no binario.
  20. 21. Aparato de comunicación que comprende un dispositivo según una de las reivindicaciones 11 a 20.
ES07870358T 2006-12-01 2007-11-29 Procedimiento y dispositivo de decodificación para códigos LDPC, y aparato de comunicación que comprende dicho dispositivo Active ES2383835T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0655275 2006-12-01
FR0655275A FR2909499B1 (fr) 2006-12-01 2006-12-01 Procede et dispositif de decodage pour codes ldpc, et appareil de communication comprenant un tel dispositif
PCT/FR2007/001963 WO2008071884A2 (fr) 2006-12-01 2007-11-29 Precede et dispositif de decodage pour codes ldpc sur le corps de galois gf (q)

Publications (1)

Publication Number Publication Date
ES2383835T3 true ES2383835T3 (es) 2012-06-26

Family

ID=38051566

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07870358T Active ES2383835T3 (es) 2006-12-01 2007-11-29 Procedimiento y dispositivo de decodificación para códigos LDPC, y aparato de comunicación que comprende dicho dispositivo

Country Status (8)

Country Link
US (1) US8291284B2 (es)
EP (1) EP2095512B1 (es)
JP (1) JP5177767B2 (es)
CN (1) CN101542913B (es)
AT (1) ATE554532T1 (es)
ES (1) ES2383835T3 (es)
FR (1) FR2909499B1 (es)
WO (1) WO2008071884A2 (es)

Families Citing this family (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359522B2 (en) * 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
US8245104B2 (en) 2008-05-02 2012-08-14 Lsi Corporation Systems and methods for queue based data detection and decoding
US8464129B2 (en) * 2008-08-15 2013-06-11 Lsi Corporation ROM list-decoding of near codewords
WO2010059264A1 (en) * 2008-11-20 2010-05-27 Lsi Corporation Systems and methods for noise reduced data detection
CN101903890B (zh) 2009-03-05 2015-05-20 Lsi公司 用于迭代解码器的改进的turbo均衡方法
CN102077173B (zh) 2009-04-21 2015-06-24 艾格瑞系统有限责任公司 利用写入验证减轻代码的误码平层
US8773790B2 (en) 2009-04-28 2014-07-08 Lsi Corporation Systems and methods for dynamic scaling in a read data processing system
US8352841B2 (en) 2009-06-24 2013-01-08 Lsi Corporation Systems and methods for out of order Y-sample memory management
EP2282470A1 (en) * 2009-08-07 2011-02-09 Thomson Licensing Data reception using low density parity check coding and constellation mapping
EP2282471A1 (en) 2009-08-07 2011-02-09 Thomson Licensing Data transmission using low density parity check coding and constellation mapping
US8266505B2 (en) 2009-08-12 2012-09-11 Lsi Corporation Systems and methods for retimed virtual data processing
US8743936B2 (en) * 2010-01-05 2014-06-03 Lsi Corporation Systems and methods for determining noise components in a signal set
US20110205653A1 (en) * 2010-02-24 2011-08-25 Lsi Corporation Systems and Methods for Data Recovery
US8345369B2 (en) * 2010-02-24 2013-01-01 Lsi Corporation Systems and methods for data recovery using enhanced sync mark location
US8418019B2 (en) 2010-04-19 2013-04-09 Lsi Corporation Systems and methods for dynamic scaling in a data decoding system
US8464142B2 (en) 2010-04-23 2013-06-11 Lsi Corporation Error-correction decoder employing extrinsic message averaging
US8443249B2 (en) 2010-04-26 2013-05-14 Lsi Corporation Systems and methods for low density parity check data encoding
US8527831B2 (en) 2010-04-26 2013-09-03 Lsi Corporation Systems and methods for low density parity check data decoding
US8381074B1 (en) 2010-05-21 2013-02-19 Lsi Corporation Systems and methods for utilizing a centralized queue based data processing circuit
US8381071B1 (en) 2010-05-21 2013-02-19 Lsi Corporation Systems and methods for decoder sharing between data sets
US8402348B1 (en) 2010-05-21 2013-03-19 Lsi Corporation Systems and methods for variable data processing using a central queue
US8499226B2 (en) 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding
US8458555B2 (en) 2010-06-30 2013-06-04 Lsi Corporation Breaking trapping sets using targeted bit adjustment
US8504900B2 (en) 2010-07-02 2013-08-06 Lsi Corporation On-line discovery and filtering of trapping sets
JP5132738B2 (ja) * 2010-09-03 2013-01-30 株式会社東芝 誤り訂正復号器及び受信機
US8773794B2 (en) 2010-09-13 2014-07-08 Lsi Corporation Systems and methods for block-wise inter-track interference compensation
US8661071B2 (en) 2010-10-11 2014-02-25 Lsi Corporation Systems and methods for partially conditioned noise predictive equalization
US8443250B2 (en) 2010-10-11 2013-05-14 Lsi Corporation Systems and methods for error correction using irregular low density parity check codes
US8385014B2 (en) 2010-10-11 2013-02-26 Lsi Corporation Systems and methods for identifying potential media failure
US8560930B2 (en) 2010-10-11 2013-10-15 Lsi Corporation Systems and methods for multi-level quasi-cyclic low density parity check codes
US8656244B1 (en) 2010-10-29 2014-02-18 Massachusetts Institute Of Technology Rate adaptive nonbinary LDPC codes with low encoding complexity
US8566379B2 (en) 2010-11-17 2013-10-22 Lsi Corporation Systems and methods for self tuning target adaptation
US8810940B2 (en) 2011-02-07 2014-08-19 Lsi Corporation Systems and methods for off track error recovery
US8699167B2 (en) 2011-02-16 2014-04-15 Lsi Corporation Systems and methods for data detection using distance based tuning
US8446683B2 (en) 2011-02-22 2013-05-21 Lsi Corporation Systems and methods for data pre-coding calibration
JP2012191309A (ja) * 2011-03-09 2012-10-04 Toshiba Corp 復号器、再生装置及び受信装置
US8693120B2 (en) 2011-03-17 2014-04-08 Lsi Corporation Systems and methods for sample averaging in data processing
US8854753B2 (en) 2011-03-17 2014-10-07 Lsi Corporation Systems and methods for auto scaling in a data processing system
US8887034B2 (en) 2011-04-15 2014-11-11 Lsi Corporation Systems and methods for short media defect detection
US8611033B2 (en) 2011-04-15 2013-12-17 Lsi Corporation Systems and methods for selective decoder input data processing
US8670955B2 (en) 2011-04-15 2014-03-11 Lsi Corporation Systems and methods for reliability assisted noise predictive filtering
US8499231B2 (en) 2011-06-24 2013-07-30 Lsi Corporation Systems and methods for reduced format non-binary decoding
US8560929B2 (en) 2011-06-24 2013-10-15 Lsi Corporation Systems and methods for non-binary decoding
US8566665B2 (en) 2011-06-24 2013-10-22 Lsi Corporation Systems and methods for error correction using low density parity check codes using multiple layer check equations
US8862972B2 (en) 2011-06-29 2014-10-14 Lsi Corporation Low latency multi-detector noise cancellation
US8595576B2 (en) 2011-06-30 2013-11-26 Lsi Corporation Systems and methods for evaluating and debugging LDPC iterative decoders
US8650451B2 (en) 2011-06-30 2014-02-11 Lsi Corporation Stochastic stream decoding of binary LDPC codes
US8566666B2 (en) 2011-07-11 2013-10-22 Lsi Corporation Min-sum based non-binary LDPC decoder
US8879182B2 (en) 2011-07-19 2014-11-04 Lsi Corporation Storage media inter-track interference cancellation
US8830613B2 (en) 2011-07-19 2014-09-09 Lsi Corporation Storage media inter-track interference cancellation
US8819527B2 (en) 2011-07-19 2014-08-26 Lsi Corporation Systems and methods for mitigating stubborn errors in a data processing system
US8854754B2 (en) 2011-08-19 2014-10-07 Lsi Corporation Systems and methods for local iteration adjustment
US8539328B2 (en) 2011-08-19 2013-09-17 Lsi Corporation Systems and methods for noise injection driven parameter selection
US9026572B2 (en) 2011-08-29 2015-05-05 Lsi Corporation Systems and methods for anti-causal noise predictive filtering in a data channel
US8656249B2 (en) 2011-09-07 2014-02-18 Lsi Corporation Multi-level LDPC layer decoder
US8756478B2 (en) 2011-09-07 2014-06-17 Lsi Corporation Multi-level LDPC layer decoder
US8681441B2 (en) 2011-09-08 2014-03-25 Lsi Corporation Systems and methods for generating predictable degradation bias
US8661324B2 (en) 2011-09-08 2014-02-25 Lsi Corporation Systems and methods for non-binary decoding biasing control
US8850276B2 (en) 2011-09-22 2014-09-30 Lsi Corporation Systems and methods for efficient data shuffling in a data processing system
US8767333B2 (en) 2011-09-22 2014-07-01 Lsi Corporation Systems and methods for pattern dependent target adaptation
US8578241B2 (en) 2011-10-10 2013-11-05 Lsi Corporation Systems and methods for parity sharing data processing
US8689062B2 (en) 2011-10-03 2014-04-01 Lsi Corporation Systems and methods for parameter selection using reliability information
US8479086B2 (en) 2011-10-03 2013-07-02 Lsi Corporation Systems and methods for efficient parameter modification
US8862960B2 (en) 2011-10-10 2014-10-14 Lsi Corporation Systems and methods for parity shared data encoding
US8996597B2 (en) 2011-10-12 2015-03-31 Lsi Corporation Nyquist constrained digital finite impulse response filter
US8707144B2 (en) 2011-10-17 2014-04-22 Lsi Corporation LDPC decoder with targeted symbol flipping
US8788921B2 (en) 2011-10-27 2014-07-22 Lsi Corporation Detector with soft pruning
US8683309B2 (en) 2011-10-28 2014-03-25 Lsi Corporation Systems and methods for ambiguity based decode algorithm modification
US8604960B2 (en) 2011-10-28 2013-12-10 Lsi Corporation Oversampled data processing circuit with multiple detectors
US8527858B2 (en) 2011-10-28 2013-09-03 Lsi Corporation Systems and methods for selective decode algorithm modification
US8443271B1 (en) 2011-10-28 2013-05-14 Lsi Corporation Systems and methods for dual process data decoding
US8768990B2 (en) 2011-11-11 2014-07-01 Lsi Corporation Reconfigurable cyclic shifter arrangement
US8531320B2 (en) 2011-11-14 2013-09-10 Lsi Corporation Systems and methods for memory efficient data decoding
US8751913B2 (en) 2011-11-14 2014-06-10 Lsi Corporation Systems and methods for reduced power multi-layer data decoding
US8700981B2 (en) 2011-11-14 2014-04-15 Lsi Corporation Low latency enumeration endec
US8760991B2 (en) 2011-11-14 2014-06-24 Lsi Corporation Systems and methods for post processing gain correction
US8719686B2 (en) 2011-11-22 2014-05-06 Lsi Corporation Probability-based multi-level LDPC decoder
US8631300B2 (en) 2011-12-12 2014-01-14 Lsi Corporation Systems and methods for scalable data processing shut down
US8625221B2 (en) 2011-12-15 2014-01-07 Lsi Corporation Detector pruning control system
US8707123B2 (en) 2011-12-30 2014-04-22 Lsi Corporation Variable barrel shifter
US8819515B2 (en) 2011-12-30 2014-08-26 Lsi Corporation Mixed domain FFT-based non-binary LDPC decoder
US8751889B2 (en) 2012-01-31 2014-06-10 Lsi Corporation Systems and methods for multi-pass alternate decoding
US8850295B2 (en) 2012-02-01 2014-09-30 Lsi Corporation Symbol flipping data processor
US8775896B2 (en) 2012-02-09 2014-07-08 Lsi Corporation Non-binary LDPC decoder with low latency scheduling
US8749907B2 (en) 2012-02-14 2014-06-10 Lsi Corporation Systems and methods for adaptive decoder message scaling
US8782486B2 (en) 2012-03-05 2014-07-15 Lsi Corporation Systems and methods for multi-matrix data processing
US8731115B2 (en) 2012-03-08 2014-05-20 Lsi Corporation Systems and methods for data processing including pre-equalizer noise suppression
US8610608B2 (en) 2012-03-08 2013-12-17 Lsi Corporation Systems and methods for reduced latency loop correction
US8873182B2 (en) 2012-03-09 2014-10-28 Lsi Corporation Multi-path data processing system
US8977937B2 (en) 2012-03-16 2015-03-10 Lsi Corporation Systems and methods for compression driven variable rate decoding in a data processing system
US9043684B2 (en) 2012-03-22 2015-05-26 Lsi Corporation Systems and methods for variable redundancy data protection
US9230596B2 (en) 2012-03-22 2016-01-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for variable rate coding in a data processing system
WO2013147777A1 (en) * 2012-03-28 2013-10-03 Intel Corporation Updating variable nodes associated with an iterative decoder
US8612826B2 (en) 2012-05-17 2013-12-17 Lsi Corporation Systems and methods for non-binary LDPC encoding
US8880986B2 (en) 2012-05-30 2014-11-04 Lsi Corporation Systems and methods for improved data detection processing
US8930780B2 (en) 2012-08-28 2015-01-06 Lsi Corporation Systems and methods for non-zero syndrome based processing
US9324372B2 (en) 2012-08-28 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for local iteration randomization in a data decoder
US9019647B2 (en) 2012-08-28 2015-04-28 Lsi Corporation Systems and methods for conditional positive feedback data decoding
US8751915B2 (en) 2012-08-28 2014-06-10 Lsi Corporation Systems and methods for selectable positive feedback data processing
US8949702B2 (en) 2012-09-14 2015-02-03 Lsi Corporation Systems and methods for detector side trapping set mitigation
US9112531B2 (en) 2012-10-15 2015-08-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for enhanced local iteration randomization in a data decoder
US8634152B1 (en) 2012-10-15 2014-01-21 Lsi Corporation Systems and methods for throughput enhanced data detection in a data processing circuit
RU2012146685A (ru) 2012-11-01 2014-05-10 ЭлЭсАй Корпорейшн База данных наборов-ловушек для декодера на основе разреженного контроля четности
US9048870B2 (en) 2012-11-19 2015-06-02 Lsi Corporation Low density parity check decoder with flexible saturation
US8929009B2 (en) 2012-12-19 2015-01-06 Lsi Corporation Irregular low density parity check decoder with low syndrome error handling
US9130589B2 (en) 2012-12-19 2015-09-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Low density parity check decoder with dynamic scaling
US8773791B1 (en) 2013-01-14 2014-07-08 Lsi Corporation Systems and methods for X-sample based noise cancellation
US9003263B2 (en) 2013-01-15 2015-04-07 Lsi Corporation Encoder and decoder generation by state-splitting of directed graph
US9009557B2 (en) 2013-01-21 2015-04-14 Lsi Corporation Systems and methods for reusing a layered decoder to yield a non-layered result
US8885276B2 (en) 2013-02-14 2014-11-11 Lsi Corporation Systems and methods for shared layer data decoding
US8930792B2 (en) 2013-02-14 2015-01-06 Lsi Corporation Systems and methods for distributed low density parity check decoding
US9214959B2 (en) 2013-02-19 2015-12-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for skip layer data decoding
US8797668B1 (en) 2013-03-13 2014-08-05 Lsi Corporation Systems and methods for penalty based multi-variant encoding
US9048873B2 (en) 2013-03-13 2015-06-02 Lsi Corporation Systems and methods for multi-stage encoding of concatenated low density parity check codes
US9048874B2 (en) 2013-03-15 2015-06-02 Lsi Corporation Min-sum based hybrid non-binary low density parity check decoder
US9281843B2 (en) 2013-03-22 2016-03-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for reduced constraint code data processing
US9048867B2 (en) 2013-05-21 2015-06-02 Lsi Corporation Shift register-based layered low density parity check decoder
US9274889B2 (en) 2013-05-29 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for data processing using global iteration result reuse
US8959414B2 (en) 2013-06-13 2015-02-17 Lsi Corporation Systems and methods for hybrid layer data decoding
US8917466B1 (en) 2013-07-17 2014-12-23 Lsi Corporation Systems and methods for governing in-flight data sets in a data processing system
US8817404B1 (en) 2013-07-18 2014-08-26 Lsi Corporation Systems and methods for data processing control
US8908307B1 (en) 2013-08-23 2014-12-09 Lsi Corporation Systems and methods for hard disk drive region based data encoding
US9196299B2 (en) 2013-08-23 2015-11-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for enhanced data encoding and decoding
US9129651B2 (en) 2013-08-30 2015-09-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Array-reader based magnetic recording systems with quadrature amplitude modulation
US9047882B2 (en) 2013-08-30 2015-06-02 Lsi Corporation Systems and methods for multi-level encoding and decoding
US9298720B2 (en) 2013-09-17 2016-03-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for fragmented data recovery
CN104518801A (zh) 2013-09-29 2015-04-15 Lsi公司 非二进制的分层低密度奇偶校验解码器
US9219503B2 (en) 2013-10-16 2015-12-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for multi-algorithm concatenation encoding and decoding
US9323606B2 (en) 2013-11-21 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for FAID follower decoding
US9130599B2 (en) 2013-12-24 2015-09-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods of converting detector output to multi-level soft information
RU2014104571A (ru) 2014-02-10 2015-08-20 ЭлЭсАй Корпорейшн Системы и способы для эффективного с точки зрения площади кодирования данных
US9378765B2 (en) 2014-04-03 2016-06-28 Seagate Technology Llc Systems and methods for differential message scaling in a decoding process
US20160028419A1 (en) * 2014-07-22 2016-01-28 Lsi Corporation Systems and Methods for Rank Independent Cyclic Data Encoding
CN107659316B (zh) * 2016-07-26 2021-08-06 普天信息技术有限公司 一种多元LDPC的低复杂度Min-Max译码方法
EP3419179B1 (en) * 2017-06-19 2022-11-02 Universite De Bretagne Sud Hybrid architectures for check node processing of extended min-sum (ems) decoding of non-binary ldpc codes
CN108092671A (zh) * 2017-12-27 2018-05-29 南京大学 一种高性能低复杂度的nb-ldpc码译码方法
US10790854B2 (en) * 2019-01-17 2020-09-29 NandEXT S.r.l. Coset probability based majority-logic decoding for non-binary LDPC codes
CN110601699B (zh) * 2019-09-28 2023-03-28 西南电子技术研究所(中国电子科技集团公司第十研究所) 码率动态可变的多元ldpc码实现方法
US11152956B1 (en) 2020-09-24 2021-10-19 Gylicon Ltd Coset probability based decoding for non-binary LDPC codes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748116A (en) * 1996-11-27 1998-05-05 Teralogic, Incorporated System and method for nested split coding of sparse data sets
US6584101B2 (en) * 1998-12-04 2003-06-24 Pmc-Sierra Ltd. Communication method for packet switching systems
US7484158B2 (en) * 2003-12-03 2009-01-27 Infineon Technologies Ag Method for decoding a low-density parity check (LDPC) codeword
US7191376B2 (en) * 2003-12-04 2007-03-13 Mitsubishi Electric Research Laboratories, Inc. Decoding Reed-Solomon codes and related codes represented by graphs
US7237181B2 (en) * 2003-12-22 2007-06-26 Qualcomm Incorporated Methods and apparatus for reducing error floors in message passing decoders
US7383487B2 (en) * 2004-01-10 2008-06-03 Broadcom Corporation IPHD (iterative parallel hybrid decoding) of various MLC (multi-level code) signals
CN101924565B (zh) * 2004-04-02 2014-10-15 苹果公司 Ldpc编码器、解码器、系统及方法
US20050265387A1 (en) * 2004-06-01 2005-12-01 Khojastepour Mohammad A General code design for the relay channel and factor graph decoding
US20050283707A1 (en) * 2004-06-22 2005-12-22 Eran Sharon LDPC decoder for decoding a low-density parity check (LDPC) codewords
US7757149B2 (en) * 2005-10-12 2010-07-13 Weizhuang Xin Broadcast message passing decoding of low density parity check codes

Also Published As

Publication number Publication date
JP5177767B2 (ja) 2013-04-10
FR2909499B1 (fr) 2009-01-16
JP2010511337A (ja) 2010-04-08
CN101542913A (zh) 2009-09-23
CN101542913B (zh) 2013-11-06
WO2008071884A2 (fr) 2008-06-19
US20100050043A1 (en) 2010-02-25
EP2095512B1 (fr) 2012-04-18
EP2095512A2 (fr) 2009-09-02
WO2008071884A3 (fr) 2008-07-31
US8291284B2 (en) 2012-10-16
FR2909499A1 (fr) 2008-06-06
ATE554532T1 (de) 2012-05-15

Similar Documents

Publication Publication Date Title
ES2383835T3 (es) Procedimiento y dispositivo de decodificación para códigos LDPC, y aparato de comunicación que comprende dicho dispositivo
KR101021465B1 (ko) 저밀도 패리티 검사 코드를 사용하는 통신 시스템에서 신호수신 장치 및 방법
US7673223B2 (en) Node processors for use in parity check decoders
US8291279B2 (en) Memory-efficient LDPC decoder and method
US7222284B2 (en) Low-density parity-check codes for multiple code rates
JP4598085B2 (ja) 検査行列生成方法
EP2068449B1 (en) Shortening and puncturing of low-density parity-check (LDPC) codes for channel encoding and decoding
US20090319860A1 (en) Overcoming ldpc trapping sets by decoder reset
ES2437143T3 (es) Aparato y método para codificación y descodificación de canal en un sistema de comunicación utilizando códigos de comprobación de paridad de baja densidad
US9048874B2 (en) Min-sum based hybrid non-binary low density parity check decoder
EP2768146A2 (en) Apparatus and method for transmitting and receiving data in communication/broadcasting system
US20090063926A1 (en) Apparatus and method for decoding using channel code
TW200835168A (en) Overlapping sub-matrix based LDPC (Low Density Parity Check) decoder
US20140122961A1 (en) Method and apparatus for channel coding and decoding in a communication system using a low-density parity-check code
US10374632B2 (en) Low density parity check coded modulation for optical communications
EP1699138A1 (en) Method and device for decoding LDPC encoded codewords, in particular DVB-S2 LDPC encoded codewords
WO2011071293A2 (en) Method and apparatus for channel encoding and decoding in a communication system using a low-density parity check code
US7171603B2 (en) Method and apparatus for encoding and decoding data
US8190977B2 (en) Decoder of error correction codes
ES2415379T3 (es) Método y aparato para la decodificación de canales en un sistema de comunicación usando códigos de comprobación de paridad de baja densidad
Nguyen et al. Two-bit bit flipping decoding of LDPC codes
Balasubramanian ITERATIVE DECODING OF SPATIALLY-COUPLED PRODUCT CODES USING GUESSING RANDOM ADDITIVE NOISE DECODING ALGORITHMS
Narang et al. imAGE PRoCEssiNG
JP2009118418A (ja) 復号化装置、符号化装置、復号化方法、及び、符号化方法