ES2285049T3 - Metodo y sistema para generar codigos de comprobacion de paridad de baja densidad (ldpc). - Google Patents
Metodo y sistema para generar codigos de comprobacion de paridad de baja densidad (ldpc). Download PDFInfo
- Publication number
- ES2285049T3 ES2285049T3 ES03254308T ES03254308T ES2285049T3 ES 2285049 T3 ES2285049 T3 ES 2285049T3 ES 03254308 T ES03254308 T ES 03254308T ES 03254308 T ES03254308 T ES 03254308T ES 2285049 T3 ES2285049 T3 ES 2285049T3
- Authority
- ES
- Spain
- Prior art keywords
- nodes
- ldpc
- bit
- check
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/32—Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
- H04L27/34—Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
- H04L27/36—Modulator circuits; Transmitter circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/255—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2927—Decoding strategies
- H03M13/293—Decoding strategies with erasure setting
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/356—Unequal error protection [UEP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/005—Iterative decoding, including iteration between signal detection and decoding operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0059—Convolutional codes
- H04L1/006—Trellis-coded modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0065—Serial concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/18—Phase-modulated carrier systems, i.e. using phase-shift keying
- H04L27/20—Modulator circuits; Transmitter circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/32—Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
- H04L27/34—Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H40/00—Arrangements specially adapted for receiving broadcast information
- H04H40/18—Arrangements characterised by circuits or components specially adapted for receiving
- H04H40/27—Arrangements characterised by circuits or components specially adapted for receiving specially adapted for broadcast systems covered by groups H04H20/53 - H04H20/95
- H04H40/90—Arrangements characterised by circuits or components specially adapted for receiving specially adapted for broadcast systems covered by groups H04H20/53 - H04H20/95 specially adapted for satellite broadcast receiving
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/007—Unequal error protection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
Un método para generar un código de comprobación de paridad de baja densidad (LDPC -"low density parity check"), de tal forma que el método comprende: transformar un mensaje de entrada recibido en una palabra de código de LDPC utilizando únicamente una matriz de comprobación de paridad del código de LDPC, sin el uso de una matriz generadora del código de LDPC, y suministrar como salida la palabra de código de LDPC, en el que la matriz de comprobación de paridad especifica las conexiones de nodos de comprobación con nodos de bit, en el que los nodos de bit se dividen en grupos de M nodos de bit, en el que, para cada grupo de nodos de bit, cada nodo de bit nj está conectado con nodos de comprobación numerados como m1 + jp, m2 + jp, ..., md + jp, donde j = 0 a M-1 representa la numeración de los nodos de bit de dicho grupo y m1, m2, ..., md representan los d nodos de comprobación conectados al primer nodo de bit de cada grupo, de tal manera que los nodos de comprobación m1, m2, ..., md son diferentes de uno de los grupos de nodos de bit al siguiente grupo de nodos de bit, de modo que, con un valor adecuado de p, todos los nodos de comprobación representados en la matriz tienen el mismo grado, de tal forma que la matriz de comprobación de paridad proporciona acceso estructurado durante la descodificación de la palabra de código de LDPC, mediante la colocación de valores de borde para un grupo de nodos de bit, a continuación unos de otros en la memoria, y la colocación simultánea de valores de borde para un grupo de nodos de comprobación, a continuación unos de otros en la memoria.
Description
Método y sistema para generar códigos de
comprobación de paridad de baja densidad (LDPC).
La presente invención se refiere a sistemas de
comunicación y, más particularmente, a sistemas codificados.
Los sistemas de comunicación se sirven de la
codificación para garantizar una comunicación fiable a través de
canales de comunicación con ruido. Estos canales de comunicación
exhiben una capacidad fija que puede expresarse en términos de bits
por símbolo para cierta relación entre señal y ruido (SNR -"signal
to noise relation"), que define un límite teórico superior
(conocido como el límite de Shannon). Como resultado de ello, el
diseño de codificación se ha propuesto alcanzar velocidades que se
aproximen a este límite de Shannon. Una de tales clases de códigos
que se aproximan al límite de Shannon son los códigos de
Comprobación de Paridad de Baja Densidad (LDPC -"Low Density
Parity Check").
Tradicionalmente, los códigos de LDPC no se han
extendido de forma generalizada debido a un cierto número de
desventajas. Una de las desventajas es que la técnica de
codificación de LDPC es altamente compleja. La codificación de un
código de LDPC utilizando su matriz generadora requerirá el
almacenamiento de una matriz no dispersa muy grande. De manera
adicional, los códigos de LDPC requieren grandes bloques para ser
efectivos; en consecuencia, incluso aunque las matrices de
comprobación de paridad de los códigos de LDPC sean dispersas, el
almacenamiento de estas matrices resulta problemático. Desde el
punto de vista de la implementación, el almacenamiento constituye
una razón importante por la que los códigos de LDPC no han llegado a
generalizarse en la práctica. Un reto clave en la implementación de
códigos de LDPC ha venido siendo cómo conseguir la red de conexión
entre varias máquinas de procesamiento (nodos) en el
descodificador.
En consecuencia, existe la necesidad de un
sistema de comunicación de LDPC que se sirva de procedimientos de
codificación y de descodificación simples. Existe también la
necesidad de utilizar códigos de LDPC de forma eficaz para soportar
velocidades de datos elevadas, sin introducir una complejidad mayor.
Existe asimismo la necesidad de minimizar los requisitos de
almacenamiento para implementar la codificación de LDPC. Existe la
necesidad adicional de un esquema que simplifique la comunicación
entre los nodos de procesamiento y el descodificador de LDPC.
Las siguientes publicaciones se consideran
relevantes para la presente invención:
Eleftheriou, E. y Olger, S.:
"Low-density parity-check codes
for digital subscriber lines" ("Códigos de comprobación de
paridad de baja densidad para líneas de abonado digitales"),
Proc., IEEE International Conference on Communications (Conferencia
Internacional sobre Comunicaciones del IEEE (Instituto de Ingenieros
Eléctricos y Electrónicos)), ICC 2002, Nueva York, NY, USA, 28 de
abril - 2 de mayo de 2002, páginas 1.752-1.757
(XP-10589787);
Zhang, T. y Parhi, K. K.: "Joint code and
decoder design for implementation-oriented
(3,k)-regular LDPC codes" ("Código de unión y
diseño de descodificador para códigos de LDPC normales en (3,k) y
orientados a la implementación"), Proc., The 35^{th} Asilomar
Conference on Signals, Systems & Computers (La 35ª Conferencia
Asilomar sobre señales, sistemas y computadoras). Pacific Groove,
CA, USA, 4-7 de noviembre de 2001, IEEE Inc. Nueva
York, páginas 1.232-1.236
(XP-105822236);
Duman, T. M. y Salehi, M.: "Performance bounds
for turbo-coded modulation systems" ("Límites
de rendimiento para sistemas de modulación
turbo-codificados"), IEEE Transactions on
Communications (Transacciones de Comunicaciones del IEEE), vol. 47,
nº 4, abril de 1999, páginas 511-521
(XP-2263494);
Boutillon, E., Castura, J. y Kschischang, F. R.:
"Decoder-first code design" ("Diseño de
primer código de descodificador"), Proc., 2^{nd} International
Symposium on Turbo Codes and Related Topics (2º Simposio
Internacional sobre Turbo-Códigos y Aspectos
Relacionados), Brest, France, 4-7 de septiembre de
2000, páginas 459-462
(XP-80119934);
Hagenauer, J. et al.: "Iterative
decoding of binary block and convolutional codes"
("Descodificación iterativa de códigos de bloque binario y
convolucionales"), IEEE Transactions on Information Theory
(Transacciones del IEEE sobre Teoría de la Información), vol. 42,
nº 2, marzo de 1996, páginas 429-445
(XP-850507);
Hagenauer, J. et al.: "Decoding and
equalization with analog non-linear networks"
("Descodificación y ecualización con redes analógicas no
lineales"), European Transactions on Telecommunications
(Transacciones Europeas sobre Telecomunicaciones), EUREL
Publication, Milán, vol. 10, nº 6,
noviembre-diciembre de 1999, páginas
659-680 (XP- 2246822);
Li, X. y Ritcey, J. A.:
"Bit-interleaved coded modulation with iterative
decoding using soft feedback" ("Modulación codificada e
intercalada en bits con descodificación iterativa utilizando
realimentación suave"), Electronics Letters, IEE Stevenage, vol.
34, nº 10, 14 de mayo de 1998, páginas 942-943
(XP-600973); y
Vasic, B. et al.: "Kirkman systems and
their application in perpendicular magnetic recording" ("Los
sistemas de Kirkman y su aplicación en la grabación magnética
perpendicular"), IEEE Transactions on Magnetics ("Transacciones
del IEEE sobre magnetismo"), vol. 38, nº 4, julio de 2002 (XP
2258068).
Estas y otras necesidades son tratadas por la
presente invención, en la que se proporciona una solución para la
generación de unos códigos de Comprobación de Paridad de Baja
Densidad (LDPC -"Low Density Parity Check"). La estructura de
los códigos de LDPC viene proporcionada al restringir la parte de
porción de la matriz de comprobación de paridad de modo que sea
triangular inferior y/o por el cumplimiento de otros requisitos
tales como que la comunicación entre nodos de tratamiento o
procesamiento del descodificador se haga muy simple. También, la
solución puede sacar partido, ventajosamente, de la facultad de
protección contra errores desigual de los códigos de LDPC sobre los
bits transmitidos, con el fin de proporcionar una protección contra
errores añadida a los bits más vulnerables de las constelaciones de
modulación de orden alto (tales como la 8-PSK
(Cifrado con Desplazamiento de Fase -"Phase Shift Keying")). De
manera adicional, la matriz de comprobación de paridad puede
generarse algorítmicamente mediante el uso de constantes previamente
almacenadas y operaciones a la manera de bits.
La presente invención se define en las
reivindicaciones que se acompañan.
Aún otros aspectos, características y ventajas
de la presente invención se pondrán de manifiesto claramente a
partir de la siguiente descripción detallada, con la simple
ilustración de un cierto número de realizaciones e implementaciones
particulares, incluyendo el mejor modo contemplado para llevar a
cabo la presente invención. La presente invención es también
susceptible de otras realizaciones diferentes, y sus diversos
detalles pueden ser modificados de acuerdo con diversos aspectos
obvios, todo ello sin apartarse del ámbito de la presente
invención. De acuerdo con ello, los dibujos y la descripción han de
considerarse como de naturaleza ilustrativa, y no como restrictivos
o limitativos.
La presente invención se ilustra a modo de
ejemplo, y no a modo de limitación, en las Figuras de los dibujos
que se acompañan, en las que los mismos números de referencia aluden
a elementos similares, y en las cuales:
la Figura 1 es un diagrama de un sistema de
comunicaciones configurado para utilizar códigos de Comprobación de
Paridad de Baja Densidad (LDPC -"Low Density Parity Check"), de
acuerdo con una realización de la presente invención;
la Figura 2 es un diagrama de un transmisor
proporcionado a modo de ejemplo en el sistema de la Figura 1;
la Figura 3 es un diagrama de un receptor
proporcionado a modo de ejemplo en el sistema de la Figura 1;
la Figura 4 es un diagrama de una matriz de
comprobación de paridad dispersa, de acuerdo con una realización de
la presente invención;
la Figura 5 es un diagrama de un gráfico
bipartito o en dos partes de un código de LDPC de la matriz de la
Figura 4;
la Figura 6 es un diagrama de una matriz
subordinada o sub-matriz de una matriz de
comprobación de paridad dispersa, en el cual la
sub-matriz contiene valores de comprobación de
paridad restringidos a la región triangular inferior, de acuerdo
con una realización de la presente invención;
la Figura 7 es un gráfico que muestra el
rendimiento entre códigos que utilizan una matriz de comprobación
de paridad (matriz H) no restringida frente a una matriz H
restringida que tiene una sub-matriz como la de la
Figura 6;
las Figuras 8A y 8B son, respectivamente, un
diagrama de un esquema de modulación 8-PSK que no es
de Gray, y de una modulación 8-PSK de Gray, cada
una de las cuales puede utilizarse en el sistema de la Figura 1;
la Figura 9 es un gráfico que muestra el
rendimiento entre códigos que utilizan un etiquetado de Gray frente
a un etiquetado que no es de Gray;
la Figura 10 es un diagrama de flujo del
funcionamiento del descodificador de LDPC utilizando una relación
de correspondencia que no es de Gray, de acuerdo con una realización
de la presente invención;
la Figura 11 es un diagrama de flujo del
funcionamiento del descodificador de LDPC de la Figura 3, utilizando
una relación de correspondencia de Gray, de acuerdo con una
realización de la presente invención;
las Figuras 12A-12C son
diagramas de las interacciones entre los nodos de comprobación y los
nodos de bit en un procedimiento de descodificación, de acuerdo con
una realización de la presente invención;
las Figuras 13A-13C son gráficos
que muestran los resultados de simulación de códigos de LDPC
generados de acuerdo con varias realizaciones de la presente
invención;
las Figuras 14A y 14B son diagramas del borde
superior y del borde inferior, respectivamente, de una memoria
organizada para proporcionar soporte al acceso estructurado en lo
que se refiere a la realización de la aleatoriedad en la
codificación de LDPC, de acuerdo con una realización de la presente
invención; y
la Figura 15 es un diagrama de un sistema
informático que puede llevar a cabo el procedimiento de codificación
y descodificación de códigos de LDPC, de acuerdo con ciertas
realizaciones de la presente invención.
Se describen un sistema, un método y software o
programación para generar de forma eficaz códigos de Comprobación
de Paridad de Baja Densidad (LDPC -"Low Density Parity Check")
estructurados. En la siguiente descripción, por propósitos
explicativos, se exponen numerosos detalles específicos con el fin
de proporcionar una comprensión exhaustiva de la presente
invención. Es evidente, sin embargo, para un experto de la técnica
que la presente invención puede ponerse en práctica sin estos
detalles específicos o con una disposición equivalente. En otros
casos, se muestran estructuras y dispositivos bien conocidos en
forma de diagrama de bloques al objeto de evitar un oscurecimiento
innecesario de la presente invención.
La Figura 1 es un diagrama de un sistema de
comunicaciones configurado para utilizar códigos de Comprobación de
Paridad de Baja Densidad (LDPC), de acuerdo con una realización de
la presente invención. Un sistema de comunicaciones digital 100
incluye un transmisor 101 que genera formas o perfiles de onda de
señal a través de un canal de comunicación 103, hasta un receptor
101. En este sistema de comunicaciones discreto 100, el transmisor
101 tiene una fuente de mensajes que produce un conjunto discreto de
posibles mensajes: cada uno de los posibles mensajes tiene una
forma de señal correspondiente. Estas formas de señal son atenuadas
o alteradas de otro modo, por el canal de comunicaciones 103. Los
códigos de LDPC se utilizan con el fin de combatir el canal de
ruido 103.
Los códigos de LDPC que se generan por el
transmisor 101 hacen posible una implementación de alta velocidad
sin incurrir en ninguna pérdida en el rendimiento. Esta salida de
códigos de LDPC estructurados desde el transmisor 101 evita la
asignación de un pequeño número de nodos de comprobación a los nodos
de bit que son ya vulnerables a errores de canal en virtud del
esquema de modulación (por ejemplo, 8-PSK).
Tales códigos de LDPC tienen un algoritmo de
descodificación susceptible de hacerse paralelo (a diferencia de
los turbo-códigos), lo que implica, ventajosamente,
operaciones sencillas tales como la adición, la comparación y la
consulta en tablas. Además, los códigos de LDPC cuidadosamente
diseñados no exhiben ningún signo de suelo de error.
De acuerdo con una realización de la presente
invención, el transmisor 101 genera, utilizando una técnica de
codificación relativamente simple, códigos de LDPC basándose en
matrices de comprobación de paridad (que facilitan un acceso a la
memoria eficaz durante la descodificación) con el fin de comunicarse
con el receptor 105. El transmisor 101 emplea códigos de LDPC que
pueden sobrepasar el rendimiento de los códigos turbo + RS
concatenados (de Reed-Solomon), siempre y cuando la
longitud de bloque sea lo suficientemente grande.
La Figura 2 es un diagrama de un transmisor
proporcionado a modo de ejemplo en el sistema de la Figura 1. Un
transmisor 200 está equipado con un codificador de LDPC 203 que
acepta una entrada desde una fuente de información 201 y suministra
como salida una corriente codificada de redundancia superior
adecuada para el tratamiento o procesamiento de corrección de
errores en el receptor 105. La fuente de información 201 genera
señales k a partir de un alfabeto discreto, X. Los
códigos de LDPC se especifican con matrices de comprobación de la
paridad. Por otra parte, los códigos de codificación de LDPC
requieren, en general, especificar las matrices generadoras.
Incluso aunque es posible obtener matrices generadoras a partir de
matrices de comprobación de paridad utilizando la eliminación
gaussiana, la matriz resultante ya no es dispersa y el
almacenamiento de una matriz generadora de gran tamaño puede ser
complicado.
El codificador 203 genera señales a partir de un
alfabeto Y hacia un modulador 205 utilizando una técnica de
codificación simple que hace uso únicamente de la matriz de
comprobación de paridad, mediante la imposición de una estructura
en la matriz de comprobación de paridad. Específicamente, se plantea
una restricción en la matriz de comprobación de paridad al obligar
a que cierta porción de la matriz sea triangular. La construcción
de tal matriz de comprobación de paridad se describe más
exhaustivamente más adelante, en la Figura 6. Dicha restricción
tiene como resultado una pérdida de rendimiento despreciable y, por
tanto, constituye un compromiso atractivo.
El modulador 205 establece una relación de
correspondencia entre los mensajes codificados procedentes del
codificador 203 y las formas de onda de señal que son transmitidas a
una antena de transmisión 207, la cual emite estas formas de onda a
través del canal de comunicación 103. De acuerdo con ello, los
mensajes codificados son modulados y distribuidos a una antena de
transmisión 207. Las transmisiones desde la antena de transmisión
207 se propagan hasta un receptor, tal y como se expone más
adelante.
La Figura 3 es un diagrama de un receptor
proporcionado a modo de ejemplo en el sistema de la Figura 1. En el
lado de recepción, un receptor 300 incluye un desmodulador 301 que
lleva a cabo la desmodulación de las señales recibidas desde un
transmisor 200. Estas señales son recibidas en una antena de
recepción 303 para su desmodulación. Tras la desmodulación, las
señales recibidas se remiten a un descodificador 305, el cual trata
de reconstruir los mensajes de fuente originales mediante la
generación de mensajes, X', en combinación con un generador
métrico 307 de bits. Con la relación de correspondencia que no es de
Gray, el generador métrico 307 de bits intercambia información de
probabilidad con el descodificador 305 hacia delante y hacia atrás
(de forma iterativa) durante el procedimiento de descodificación, lo
que se detalla en la Figura 10. Alternativamente, en el caso de que
se utilice una relación de correspondencia de Gray (de acuerdo con
una realización de la presente invención), un solo paso del
generador métrico de bits es suficiente, por cuanto que es probable
que los intentos adicionales de generación métrica de bits tras cada
iteración del descodificador de LDPC tengan como resultado una
mejora en el rendimiento limitada; esta solución se describe más
exhaustivamente en relación con la Figura 11. Con el fin de
apreciar las ventajas que la presente invención ofrece, resulta
instructivo examinar cómo se generan los códigos de LDPC, según se
expone respecto a la Figura 4.
La Figura 4 es un diagrama de una matriz de
comprobación de paridad dispersa, de acuerdo con una realización de
la presente invención. Los códigos de LDPC son códigos de bloques
largos y lineales con una matriz de comprobación de paridad
dispersa H_{(n-k),xn}. Típicamente, la
longitud del bloque, n, oscila entre miles y decenas de miles de
bits. Por ejemplo, en la Figura 4 se muestra una matriz de
comprobación de paridad para un código de LDPC de longitud n = 8 y
velocidad ½. El mismo código puede ser representado de forma
equivalente por el gráfico en dos partes de la Figura 5.
La Figura 5 es un diagrama de un gráfico
bipartito o en dos partes de un código de LDPC de la matriz de la
Figura 4. Las ecuaciones de comprobación de paridad implican que,
para cada nodo de comprobación, la suma (en todo el GF (Campo de
Galois -"Galois Field")(2)) de todos los nodos de bit
adyacentes es igual a cero. Como se observa en la figura, los nodos
de bit ocupan el lado izquierdo del gráfico y están asociados con
uno o más nodos de comprobación, de acuerdo con una relación
predeterminada. Por ejemplo, en correspondencia con el nodo de
comprobación m_{1}, existe la siguiente expresión:
n_{1} + n_{4} + n_{5} + n_{8} =
0 con respecto a los nodos de bit.
Volviendo al receptor 303, el descodificador de
LDPC 305 está considerado como un descodificador de paso de
mensajes, por lo que el descodificador 305 se propone encontrar los
valores de los nodos de bit. Con el fin de llevar a cabo esta
tarea, los nodos de bit y los nodos de comprobación se comunican de
forma iterativa unos con otros. La naturaleza de esta comunicación
se describe más adelante.
De los nodos de comprobación a los nodos de bit,
cada nodo de comprobación proporciona a un nodo de bit adyacente
una estimación ("opinión") referente al valor de ese nodo de
bit, basándose en la información que llega de otros nodos de bit
adyacentes. Por ejemplo, en el ejemplo anterior, si la suma de
n_{4}, n_{5} y n_{8} "parece como"
0 para m_{1}, entonces m_{1} indicará a
n_{1} que se cree que el valor de n_{1} es 0
(puesto que n_{1} + n_{4} + n_{5} +
n_{8} = 0); en caso contrario, m_{1} indicará a
n_{1} que se cree que el valor de n_{1} es 1. De
manera adicional, para la descodificación de decisión suave, se
añade una medida de fiabilidad.
De los nodos de bit a los nodos de comprobación,
cada nodo de bit remite o hace pasar a un nodo de comprobación
adyacente una estimación acerca de su propio valor, basándose en la
realimentación que llega de sus otros nodos de comprobación
adyacentes. En el ejemplo anterior, n_{1} tiene únicamente
dos nodos de comprobación adyacentes, m_{1} y
m_{3}. Si la realimentación que llega de m_{3} a
n_{1} indica que el valor de n_{1} es
probablemente 0, entonces n_{1} notificará a m_{1}
que una estimación del propio valor de n_{1} es 0. Para el
caso en que el nodo de bit tenga más de dos nodos de comprobación
adyacentes, el nodo de bit lleva a cabo un voto mayoritario
(decisión suave) sobre la realimentación que llega desde sus otros
nodos de comprobación adyacentes, antes de notificar esa decisión al
nodo de comprobación con el que se comunica. El procedimiento
anterior se repite hasta que todos los nodos de bit sean
considerados como correctos (es decir, se satisfagan todas las
ecuaciones de comprobación de la paridad) o hasta se haya alcanzado
un número máximo predeterminado de iteraciones, con lo que se
declara un fallo en la descodificación.
La Figura 6 es un diagrama de una
sub-matriz de una matriz de comprobación de paridad
dispersa, de tal manera que la sub-matriz contiene
valores de comprobación de paridad restringidos a la región
triangular inferior, de acuerdo con una realización de la presente
invención. Como se ha descrito anteriormente, el descodificador 203
(de la Figura 2) puede emplear una técnica de codificación simple
restringiendo los valores del área triangular inferior de la matriz
de comprobación de paridad. De acuerdo con una realización de la
presente invención, la restricción impuesta a la matriz de
comprobación de paridad es de la forma:
donde B es triangular
inferior.
Cualquier bloque de información i =
(i_{0}, i_{1}, ...,
i_{k-1}) se codifica en una palabra de
código c = (i_{0}, i_{1}, ...,
i_{k-1}, p_{0}, p_{1},
..., p_{n-k-1}) utilizando
Hc^{T} = 0, y resolviendo recurrentemente para bits de paridad;
por ejemplo:
La Figura 7 es un gráfico que muestra el
rendimiento entre códigos que utilizan una matriz de comprobación
de paridad (matriz H) no restringida, frente a la matriz H
restringida de la Figura 6. El gráfico muestra la comparación de
rendimientos entre dos códigos de LDPC: uno con una matriz de
comprobación de paridad general y el otro con una matriz de
comprobación de paridad restringida de modo que sea triangular
inferior, para simplificar la codificación. El esquema de
modulación para esta simulación es 8-PSK. La pérdida
de rendimiento se encuentra dentro de 0,1 dB. En consecuencia, la
pérdida de rendimiento es despreciable basándose en la restricción
de las matrices H triangulares inferiores, mientras que la ganancia
en la simplicidad de la técnica de codificación es significativa.
De acuerdo con ello, cualquier matriz de comprobación de paridad que
sea equivalente a una triangular inferior o triangular superior
bajo permutación de filas y/o columnas puede ser utilizada para el
mismo propósito.
Las Figuras 8A y 8B son, respectivamente, un
diagrama de un esquema de modulación 8-PSK que no es
de Gray, y de una modulación 8-PSK de Gray, cada
una de las cuales puede ser utilizada en el sistema de la Figura 1.
El esquema en 8-PSK que no es de Gray de la Figura
8A puede ser utilizado en el receptor de la Figura 3 para
proporcionar un sistema que requiere una Velocidad de Borrado de
Trama (FER -"Frame Erasure Rate") muy baja. Este requisito
puede satisfacerse también mediante el uso de un esquema en
8-PSK de Gray, como se muestra en la Figura 8B, en
combinación con un código externo, tal como el código de Bose,
Chaudhuri y Hocquenghem (BCH), el de Hamming o el de
Reed-Solomon (RS).
Alternativamente, el esquema en
8-PSK de Gray de la Figura 8B puede ser implementado
con un código externo. Con este esquema, no existe necesidad de
iterar entre el descodificador de LDPC 305 (Figura 3) y el generador
métrico 307 de bits, que puede emplear modulación
8-PSK. En ausencia de un código externo, el
descodificador de LDPC 305 se sirve de un etiquetado de Gray que
exhibe un suelo de error anterior, tal como se muestra en la Figura
9, más adelante.
La Figura 9 es un gráfico que muestra el
rendimiento entre códigos que utilizan el etiquetado de Gray frente
al etiquetado que no es de Gray de las Figuras 8A y 8B. El suelo de
error radica en el hecho de que, asumiendo una realimentación
correcta desde el descodificador de LDPC 305, la regeneración de
métricas de bits en 8-PSK es más precisa con el
etiquetado que no es de Gray, puesto que los dos símbolos en
8-PSK con dos bits conocidos se separan
adicionalmente con el etiquetado que no es de Gray. Esto puede
verse, de forma equivalente, como un funcionamiento con una
Relación entre Señal y Ruido (SNR
-"Signal-to-Noise Ratio")
superior. En consecuencia, incluso aunque las asíntotas de error
del mismo código de LDPC y utilizando el etiquetado de Gray o el que
no es de Gray, tengan la misma pendiente (es decir, sean paralelas
una a otra), la que tiene el etiquetado que no es de Gray pasa a
través de la FER inferior para cualquier SNR.
Por otra parte, para sistemas que no requieren
una FER muy baja, el etiquetado de Gray sin ninguna iteración entre
el descodificador de LDPC 305 y el generador métrico 307 de bits en
8-PSK puede resultar más adecuado debido a que
regenerar métricas de bits en 8-PSK antes de cada
iteración del descodificador de LDPC provoca una complejidad
adicional. Por otra parte, cuando se utiliza el etiquetado de Gray,
la regeneración de métricas de bits en 8-PSK antes
de cada iteración del descodificador de LDPC tiene como resultado
tan sólo una mejora en el rendimiento muy pequeña. Como se ha
mencionado anteriormente, el etiquetado de Gray sin iteración puede
ser utilizado para sistemas que requieran una FER muy baja, siempre
y cuando se implemente un código externo.
La elección entre el etiquetado de Gray el
etiquetado que no es de Gray depende también de las características
del código de LDPC. Típicamente, cuanto más altos son los grados de
los nodos de bit o de comprobación, mejor será para el etiquetado
de Gray, debido a que, para grados de nodo elevados, la
realimentación inicial desde el descodificador de LDPC 305 al
generador métrico 307 de bits en 8-PSK (o modulación
similar de orden superior) se deteriora más con un etiquetado que
no es de Gray.
Cuando se utiliza la modulación
8-PSK (u orden superior similar) con un codificador
binario, se constata que los tres (o más) bits de un símbolo no se
reciben "con el mismo ruido". Por ejemplo, con el etiquetado en
8-PSK de Gray, el tercer bit de un símbolo se
considera con más ruido por parte del descodificador que los otros
dos bits. En consecuencia, el diseño del código de LDPC no asigna un
número pequeño de bordes para los nodos de bit por los terceros
bits "con más ruido" del símbolo en 8-PSK, de
modo que estos bits no se vean penalizados dos veces.
La Figura 10 es un diagrama de flujo del
funcionamiento del descodificador de LDPC utilizando una relación
de correspondencia que no es de Gray, de acuerdo con una realización
de la presente invención. Con esta solución, el descodificador de
LDPC y el generador métrico de bits se iteran o repiten uno detrás
de otro. En este ejemplo se utiliza la modulación
8-PSK; sin embargo, los mismos principios se aplican
también a otros esquemas de modulación superiores. En este
contexto, se supone que el desmodulador 301 suministra como salida
un vector de distancia, d, que denota las distancias entre
los puntos de símbolo de ruido recibidos y los puntos de símbolo en
8-PSK con respecto al generador métrico 307, por lo
que los componentes de vector son como sigue:
El generador métrico 307 de bits en
8-PSK se comunica con el descodificador de LDPC 305
para intercambiar una información de probabilidad a priori y
una información de prioridad a posteriori, que son
representadas, respectivamente, como u y a. Es decir,
los vectores u y a representan, respectivamente,
probabilidades a priori y a posteriori de relaciones
logarítmicas probables entre bits codificados.
El generador métrico 307 de bits en
8-PSK genera las relaciones de probabilidad a
priori para cada grupo de tres bits como sigue. En primer
lugar, se obtiene información extrínseca acerca de bits
codificados:
A continuación, se determinan las probabilidades
de símbolo en 8-PSK, p_{i} i = 0, 1,
..., 7.
A continuación, el generador métrico 307 de bits
determina relaciones de probabilidad logarítmica a priori de
los bits codificados como entrada al descodificador de LDPC 305,
como sigue:
Se aprecia que la función f(.) con más de dos
variables puede ser evaluada de forma recurrente, por ejemplo,
f(a,b,c) = f(f(a,b),c).
Se describirá a continuación el funcionamiento
del descodificador de LDPC 305 utilizando una relación de
correspondencia que no es de Gray. En la etapa 1001, el
descodificador de LDPC 305 inicializa relaciones de probabilidad
logarítmicas de bits codificados, v, antes de la primera
iteración de acuerdo con lo siguiente (y según se muestra en la
Figura 12A):
\vskip1.000000\baselineskip
Aquí, v_{n \rightarrow ki} denota el
mensaje que va desde el nodo de bit n hasta su nodo de
comprobación adyacente k_{i}, u_{n} denota la
salida del desmodulador para el bit n, y N es el
tamaño de la palabra de código.
En la etapa 1003 se actualiza un nodo de
comprobación, k, por lo que la entrada v da como
resultado la salida w. Como se observa en la Figura 12B, los
mensajes entrantes al nodo de comprobación k desde sus
d_{\zeta} nodos de bit adyacentes se denotan por v_{n1
\rightarrow k}, v_{n2 \rightarrow k}, ..., v_{nd
\zeta \rightarrow k}. El objetivo es computar los mensajes
salientes desde el nodo de comprobación k, de vuelta a los
d_{\zeta} nodos de bit adyacentes. Estos mensajes se
denotan por w_{k \rightarrow n1}, w_{k \rightarrow
n2}, ..., w_{k \rightarrow nd \zeta}, donde
\vskip1.000000\baselineskip
La función g() se define como sigue:
donde
LUT_{g}(a,b) = ln(1 + e^{- |
a+b | }) - ln(1 + e^{- | a-b | }).
De forma similar a la función f, la función g con más
de dos variables puede ser evaluada de forma
recurrente.
\newpage
A continuación, el descodificador 305, en la
etapa 1205, genera como salida una información de probabilidad a
posteriori (Figura 12C), tal que:
En la etapa 1007 se determina si se satisfacen
todas las ecuaciones de comprobación de la paridad. Si estas
ecuaciones de comprobación de la paridad no se satisfacen, entonces
el descodificador 305, como en la etapa 1009, vuelve a deducir las
métricas de bit en 8-PSK y el canal de entrada
u_{n}. A continuación, el nodo de bit se actualiza, como
en la etapa 1011. Como se muestra en la Figura 13C, los mensajes
entrantes al nodo de bit n desde sus d_{v} nodos de
comprobación adyacentes se denotan por w_{k1 \rightarrow
n}, v_{k2 \rightarrow n}, ..., v_{kdv \rightarrow
n}. Los mensajes salientes desde el nodo de bit n son
computados de vuelta a d_{v} nodos de comprobación
adyacentes; tales mensajes se denotan por v_{n \rightarrow
k1}, v_{n \rightarrow k2}, ..., v_{n \rightarrow
kdv}, y se computan como sigue:
En la etapa 1013, el descodificador 305
suministra como salida la decisión dura (en el caso de que se
satisfagan todas las ecuaciones de comprobación de paridad):
La solución anterior es apropiada cuando se
utiliza un etiquetado que no es de Gray. Sin embargo, cuando se
pone en práctica un etiquetado de Gray, se realiza el procedimiento
de la Figura 11.
La Figura 11 es un diagrama de flujo del
funcionamiento del descodificador de LDPC de la Figura 3 utilizando
una relación de correspondencia de Gray, de acuerdo con una
realización de la presente invención. Cuando se emplea un
etiquetado de Gray, las métricas de bits se generan, ventajosamente,
tan sólo una vez antes del descodificador de LDPC, ya que la
regeneración de métricas de bits tras cada iteración del
descodificador de LDPC puede dar como resultado una mejora del
rendimiento nominal. Como con las etapas 1001 y 1003 de la Figura
10, la inicialización de las relaciones de probabilidad logarítmicas
de bits codificados, v, se llevan a cabo, y el nodo de
comprobación es actualizado, por las etapas 1101 y 1103. A
continuación, se actualiza el nodo de bit n, como en la
etapa 1105. Tras ello, el descodificador suministra como salida la
información de probabilidad a posteriori (etapa 1107). En la
etapa 1109, se realiza la determinación acerca de si se satisfacen
todas las ecuaciones de comprobación de la paridad; si es así, el
descodificador suministra como salida la decisión dura (etapa
1111). En caso contrario, se repiten las etapas
1103-1107.
Las Figuras 13A-13C son gráficos
que muestran resultados de simulación de códigos de LDPC generados
de acuerdo con diversas realizaciones de la presente invención. En
particular, las Figuras 13A-13C muestran el
rendimiento de códigos de LDPC con modulación de orden superior y
velocidades de código de 3/4 (QPSK, 1.485 bits/símbolo), 2/3
(8-PSK, 1.980 bits/símbolo), y 5/6
(8-PSK, 2.474 bits/símbolo).
Existen dos soluciones generales para llevar a
cabo las interconexiones entre nodos de comprobación y nodos de
bit: (1) una solución completamente en paralelo, y (2) una solución
parcialmente en paralelo. En una arquitectura completamente en
paralelo, se implementan físicamente la totalidad de los nodos y de
sus conexiones. La ventaja de esta arquitectura es la
velocidad.
La arquitectura parcialmente en paralelo, sin
embargo, puede implicar una mayor complejidad a la hora de realizar
la totalidad de los nodos y de sus conexiones. En consecuencia, con
una arquitectura completamente en paralelo, puede requerirse un
tamaño de bloque menor para reducirse la complejidad. En ese caso,
para la misma frecuencia de reloj, puede tenerse como resultado una
reducción proporcional en el rendimiento total y una cierta
degradación en la FER frente al rendimiento Es/No.
La segunda solución para implementar los códigos
de LDPC consiste en realizar físicamente tan sólo un subconjunto
del número total de nodos, y utilizar únicamente este número
limitado de nodos "físicos" para procesar la totalidad de los
nodos "funcionales" del código. Incluso aunque las operaciones
del descodificador de LDPC puedan hacerse extremadamente simples y
puedan llevarse a cabo en paralelo, el reto adicional del diseño es
cómo se establece la comunicación entre nodos de bit
"aleatoriamente" distribuidos y nodos de comprobación. El
descodificador 305 de la Figura 3, de acuerdo con una realización de
la presente invención, acomete este problema accediendo a la
memoria de una manera estructurada, en lo que se refiere a realizar
un código aparentemente aleatorio. Esta solución se explica con
respecto a las Figura 14A y 14B.
Las Figuras 14A y 14B son diagramas del borde
superior y del borde inferior, respectivamente, de una memoria
organizada para proporcionar soporte a un acceso estructurado en lo
que se refiere a realizar la aleatoriedad en la codificación de
LDPC, de acuerdo con una realización de la presente invención. El
acceso estructurado puede conseguirse sin comprometer el
rendimiento de un código verdaderamente aleatorio, al concentrarse
en la generación de la matriz de comprobación de paridad. En
general, una matriz de comprobación de paridad puede especificarse
por las conexiones de los nodos de comprobación con los nodos de
bit. Por ejemplo, los nodos de bit se dividen en grupos de 392 (el
número 392 se da con propósitos ilustrativos). De manera adicional,
suponiendo que los nodos de comprobación conectados al primer nodo
de bit de grado 3, por ejemplo, se numeran como a, b
y c, entonces los nodos de comprobación conectados al segundo
nodo de bit se numeran como a+p, b+p y
c+p, los nodos de comprobación conectados al tercer
nodo de bit se numeran como a+2p, b+2p
y c+2p, etc. Para el siguiente grupo de 392 nodos de
bit, los nodos de comprobación conectados al primer nodo de bit son
diferentes de a, b, c, de tal manera que, con
una elección adecuada de p, todos los nodos de comprobación
tienen el mismo grado. Se lleva a cabo una búsqueda aleatoria en
las constantes libres, de tal forma que el código de LDPC resultante
es libre en ciclo-4 y en
ciclo-6.
La anterior disposición facilita el acceso a la
memoria durante el procesamiento o tratamiento de los nodos de
comprobación y los nodos de bit. Los valores de los bordes en el
gráfico en dos partes pueden almacenarse en un medio de
almacenamiento, tal como una memoria de acceso aleatorio (RAM
-"Random Access Memory"). Se aprecia que, para un código de
LDPC verdaderamente aleatorio, durante el tratamiento de los nodos
de comprobación y de los nodos de bit, sería necesario acceder a
los valores de los bordes uno o a uno, de una forma aleatoria. Sin
embargo, tal esquema de acceso resultaría demasiado lento para una
aplicación con una elevada velocidad de datos. Las RAMs de las
Figuras 14A y 14B están organizadas de una manera por la cual existe
un gran grupo de bordes relevantes en un ciclo de reloj; de acuerdo
con ello, estos valores se sitúan "juntos" en la memoria. Se
observa que, en la actualidad, incluso con un código verdaderamente
aleatorio, para un grupo de nodos de comprobación (y,
respectivamente, de nodos de bit), los bordes relevantes pueden
situarse unos cerca de otros en la RAM, pero entonces los bordes
relevantes adyacentes a un grupo de nodos de bit (respectivamente,
de nodos de comprobación) estarán aleatoriamente repartidos en la
RAM. En consecuencia, el "grado de agrupamiento", con la
presente invención, radica en el diseño de las propias matrices de
comprobación de la paridad. Es decir, el diseño de la matriz de
comprobación garantiza que los bordes relevantes para un grupo de
nodos de bit y de nodos de comprobación se sitúan simultáneamente
juntos en la RAM.
Como se observa en las Figuras 14A y 14B, cada
caja contiene el valor de un borde, que consiste en múltiples bits
(por ejemplo, 6). La RAM de borde, de acuerdo con una realización de
la presente invención, se divide en dos partes: una RAM de borde
superior (Figura 14A) y una RAM de borde inferior (Figura 14B). La
RAM de borde inferior contiene los bordes entre nodos de bit de
grado 2, por ejemplo, y nodos de comprobación. La RAM de borde
superior contiene los bordes entre nodos de bit de grado mayor que 2
y nodos de comprobación. En consecuencia, para cada nodo de
comprobación, se almacenan 2 bordes adyacentes en la RAM de fondo, y
el resto de los bordes se almacena en la RAM de borde superior.
Continuando con el ejemplo anterior, se
selecciona un grupo de 392 nodos de bit y 392 nodos de comprobación
para su procesamiento a un tiempo. Para el procesamiento de los 392
nodos de comprobación, se accede a q filas consecutivas
desde la RAM de borde superior, y a dos filas consecutivas desde la
RAM de borde inferior. En este ejemplo, q + 2 es el grado de
cada nodo de comprobación. Para el tratamiento de los nodos de bit,
si el grupo de 392 nodos de bit tiene grado 2, sus bordes están
situados en 2 filas consecutivas de la RAM de borde de fondo. En el
caso de que los nodos de bit tengan un grado d > 2, sus
bordes se encuentran situados en un cierto número d de filas
de la RAM de borde superior. Las direcciones de estas d filas
pueden almacenarse en una memoria no volátil, tal como una Memoria
de Sólo Lectura (ROM -"Read Only Memory"). Los bordes de una
de las filas corresponden a los primeros bordes de los 392 nodos de
bit, los bordes de otra de las filas corresponden a los segundos
bordes de los 392 nodos de bit, etc. Es más, para cada fila, el
índice de columna del borde que pertenece al primer nodo de bit del
grupo de 392, puede también ser almacenado en la ROM. Los bordes
que corresponden a los nodos de bit segundo, tercero, etc., siguen
el índice de columna de comienzo de una forma "circundante en
envolvente". Por ejemplo, si el j-ésimo borde la fila pertenece
al primer nodo de bit, entonces el borde (j + 1)-ésimo pertenece al
segundo nodo de bit, el borde (j + 2)-ésimo pertenece al tercer
nodo de bit, ..., y el borde (j - 1)-ésimo pertenece al nodo de bit
392-avo.
Con la organización anterior (que se muestra en
las Figuras 14A y 14B), la velocidad de acceso a la memoria se
incrementa en gran medida durante la codificación de LDPC.
La Figura 15 ilustra un sistema informático 1500
con el que puede llevarse a la práctica una realización de acuerdo
con la presente invención. El sistema informático 1500 incluye un
bus 1501 u otro mecanismo de comunicación, destinado a comunicar
información, así como un procesador 1503, acoplado o conectado al
bus para el tratamiento de información. El sistema informático 1500
incluye también una memoria principal 1505, tal como una memoria de
acceso aleatorio (RAM) u otro tipo de dispositivo de almacenamiento
dinámico, conectado al bus 1501 para almacenar información e
instrucciones que se han de llevar a cabo por el procesador 1503. La
memoria principal 1505 puede también ser utilizada para almacenar
variables temporales u otra información intermedia durante la
ejecución de instrucciones que se han de ejecutar por el procesador
1503. El sistema informático 1500 incluye adicionalmente una
memoria de sólo lectura (ROM) 1507 u otro dispositivo de
almacenamiento estático, conectado al bus 1501 para almacenar
información estática e instrucciones para el procesador 1503. Un
dispositivo de almacenamiento 1509, tal como un disco magnético o
un disco óptico, está adicionalmente conectado al bus 1501 para
almacenar información e instrucciones.
El sistema informático 1500 puede estar
conectado a través del bus 1501 a un dispositivo de presentación
visual 1511, tal como un tubo de rayos catódicos (CRT -"cathode
ray tube"), un dispositivo de presentación visual de cristal
líquido, un dispositivo de presentación visual de matriz activa o un
dispositivo de presentación visual de plasma, a fin de presentar
visualmente información a un usuario informático. Un dispositivo de
entrada 1503, tal como un teclado que incluye teclas alfanuméricas
u otras teclas, se conecta al bus 1501 para comunicar información y
selecciones de instrucciones u órdenes al procesador 1503. Otro tipo
de dispositivo de entrada para usuario es un dispositivo 1515 de
control de cursor, tal como un ratón, una bola de guía o unas teclas
de dirección de cursor para comunicar información de dirección y
selecciones de órdenes al procesador 1503, y para controlar el
desplazamiento del cursor sobre el dispositivo de presentación
visual 1511.
De acuerdo con una realización de la invención,
la generación de códigos de LDPC se proporciona por el sistema
informático 1500 en respuesta al hecho de que el procesador 1503
lleve a cabo una disposición de instrucciones contenidas en la
memoria principal 1505. Tales instrucciones pueden ser leídas e
introducidas en la memoria principal 1505 desde otro medio legible
por una computadora, tal como el dispositivo de almacenamiento 1509.
La ejecución de la disposición de instrucciones contenida en la
memoria principal 1505 hace que el procesador 1503 lleve a cabo las
etapas de procedimiento aquí descritas. Pueden también emplearse uno
o más procesadores en una disposición de procesamiento múltiple, o
multi-procesamiento, para llevar a cabo las
instrucciones contenidas en la memoria principal 1505. En
realizaciones alternativas, pueden utilizarse circuitos físicamente
instalados con cableado, en lugar de, o en combinación con,
instrucciones de software o programación, para llevar a cabo la
realización de la presente invención. De esta forma, las
realizaciones de la presente invención no se limitan a ninguna
combinación específica de circuitos de hardware y software.
El sistema informático 1500 incluye también una
interfaz de comunicación 1517 conectada al bus 1501. La interfaz de
comunicación 1517 proporciona una conexión de comunicación de datos
en ambos sentidos con un enlace 1519 de red, conectado a una red
local 1521. Por ejemplo, la interfaz de comunicación 1517 puede ser
una tarjeta o módem (modulador-desmodulador) de
línea de abonado digital (DSL -"digital subscriber line"), una
tarjeta de red digital de servicios integrados (ISDN -"integrated
services digital network"), un módem por cable o un módem
telefónico, a fin de proporcionar una conexión de comunicación de
datos a un tipo correspondiente de línea telefónica. Como otro
ejemplo, la interfaz de comunicación 1517 puede ser una tarjeta de
red de área local (LAN -"local area network") (por ejemplo,
para Ethernet^{TM} o una red de Modelo de Transferencia Asíncrono
(ATM -"Asynchronous Transfer Model")), a fin de proporcionar
una conexión de comunicación de datos con una LAN compatible.
Pueden también ponerse en práctica enlaces inalámbricos. En
cualquiera de tales implementaciones, la interfaz de comunicación
1517 envía y recibe señales eléctricas, electromagnéticas u ópticas
que portan corrientes de datos digitales que representan varios
tipos de información. Por otra parte, la interfaz de comunicación
1517 puede incluir dispositivos periféricos de interfaz, tales como
la interfaz de Bus en Serie Universal (USB -"Universal Serial
Bus"), una interfaz de PCMCIA (Asociación Internacional de
Tarjetas de Memoria de Computadora Personal -"Personal Computer
Memory Card International Association"), etc.
El enlace 1519 de red proporciona típicamente
una comunicación de datos, a través de una o más redes, a otros
dispositivos de datos. Por ejemplo, el enlace 1519 de red puede
proporcionar una conexión, a través de la red local 1521, a una
computadora principal 1523, que tiene capacidad de conexión a una
red 1525 (por ejemplo, una red de área extensa (WAN -"wide area
network") o la red global de comunicación de datos en paquetes a
la que se hace referencia habitualmente como la "Internet"), o
a equipos de datos operados por un proveedor de servicios. La red
local 1521 y la red 1525 utilizan, ambas, señales eléctricas,
electromagnéticas u ópticas para transportar información e
instrucciones. Las señales a través de las diversas redes y las
señales en el enlace 1519 de red y a través de la interfaz de
comunicación 1517, que comunican datos digitales con el sistema
informático 1500, constituyen formas ejemplares de ondas portadoras
que soportan la información y las instrucciones.
El sistema informático 1500 puede enviar
mensajes y recibir datos, incluyendo código de programa, a través
de la(s) red(es), el enlace 1519 de red y la interfaz
de comunicación 1517. En el ejemplo de Internet, un servidor (no
mostrado) podría transmitir código solicitado perteneciente a un
programa de aplicación para implementar una realización de la
presente invención a través de la red 1525, la red local 1521 y la
interfaz de comunicación 1517. El procesador 1503 puede llevar a
cabo el código transmitido al tiempo que es recibido, y/o almacenar
el código en un dispositivo de almacenamiento 159 ó en otro
almacenamiento no volátil para su ejecución ulterior. De esta
forma, el sistema informático 1500 puede obtener código de
aplicación con la forma de una onda portadora.
La expresión "medio legible por
computadora", tal y como se utiliza aquí, se refiere a cualquier
medio que participe en el suministro de instrucciones al procesador
1503 para su realización. Tal medio puede adoptar muchas formas,
incluyendo medios no volátiles, medios volátiles y medios de
transmisión, si bien no se limita a éstos. Los medios no volátiles
incluyen, por ejemplo, discos ópticos o magnéticos, tales como el
dispositivo de almacenamiento 1509. Los medios volátiles incluyen
memoria dinámica, tal como la memoria principal 1505. Los medios de
transmisión incluyen cables coaxiales, hilo de cobre y fibras
ópticas, incluyendo los cables que comprenden el bus 1501. Los
medios de transmisión pueden también adoptar la forma de ondas
acústicas, ópticas o electromagnéticas, tales como las generadas
durante la comunicación de datos por radiofrecuencia (RF) e
infrarrojos (IR). Formas comunes de medios legibles por computadora
incluyen, por ejemplo, un disquete magnético, un disco flexible, un
disco duro, una cinta magnética, cualquier otro medio magnético, un
CD-ROM, CDRW, DVD, cualquier otro medio magnético,
tarjetas perforadas, cinta de papel, laminas de marcación óptica,
cualquier otro medio físico con configuraciones o patrones de
orificios u otras indicaciones reconocibles ópticamente, una RAM,
una PROM, una EPROM, una FLASH-EPROM (EPROM de
refrescamiento por impulsos), cualquier otro chip o cartucho de
memoria, una onda portadora, o cualquier otro medio en el que pueda
leer una computadora.
Pueden estar implicadas en el suministro de
instrucciones a un procesador para su ejecución diversas formas de
medios legibles por computadora. Por ejemplo, las instrucciones para
llevar a cabo al menos parte de la presente invención pueden estar
soportadas inicialmente en un disco magnético o en una computadora
distante. En tal contexto, la computadora distante carga las
instrucciones en la memoria principal y envía las instrucciones a
través de una línea telefónica utilizando un módem. Un módem de un
sistema informático local recibe los datos por la línea telefónica
y utiliza un transmisor de infrarrojos para convertir los datos en
una señal de infrarrojos y transmitir la señal de infrarrojos a un
dispositivo informático portátil, tal como un asistente personal
digital (PDA -"personal digital assistence") y una computadora
portátil. Un detector de infrarrojos situado en el dispositivo
informático portátil recibe la información y las instrucciones
portadas por la señal de infrarrojos y coloca los datos en un bus.
El bus transporta los datos a la memoria principal, desde la que un
procesador recupera las instrucciones y las lleva a cabo. Las
instrucciones recibidas por la memoria principal pueden,
opcionalmente, ser almacenadas en un dispositivo de almacenamiento,
ya sea antes o después de su ejecución por el procesador.
De acuerdo con ello, las diversas realizaciones
de la presente invención proporcionan una solución para generar
códigos de Comprobación de Paridad de Baja Densidad (LDPC -"Low
Density Parity Check"), con vistas a simplificar el codificador
y el descodificador. La estructura de los códigos de LDPC viene
proporcionada al restringir la matriz de comprobación de paridad de
forma que sea triangular inferior. También, la solución puede
explotar ventajosamente la capacidad desigual de protección contra
los errores de los códigos de LDPC en los bits transmitidos, a fin
de proporcionar una protección adicional frente a los errores a los
bits más vulnerables de las constelaciones de modulación de orden
superior (tales como la 8-PSK (Cifrado con
Desplazamiento de Fase -"Phase Shift Keying")).
Adicionalmente, la matriz de comprobación de paridad puede generarse
algorítmicamente utilizando constantes previamente almacenadas y
operaciones a modo de bits. La descodificación eficiente de la LDPC
puede conseguirse mediante el almacenamiento de información que
representa bordes consecutivos desde los nodos de comprobación
hasta los nodos de bit de la matriz de comprobación de paridad, en
ranuras consecutivas de memoria. La solución anterior da como
resultado, ventajosamente, una complejidad reducida sin sacrificar
el rendimiento.
Si bien la presente invención se ha descrito en
relación con un cierto número de realizaciones e implementaciones,
la presente invención no está limitada por ello, sino que cubre
diversas modificaciones obvias y disposiciones equivalentes que
caen dentro del ámbito de las reivindicaciones que se acompañan.
Claims (9)
1. Un método para generar un código de
comprobación de paridad de baja densidad (LDPC -"low density
parity check"), de tal forma que el método comprende:
transformar un mensaje de entrada recibido en
una palabra de código de LDPC utilizando únicamente una matriz de
comprobación de paridad del código de LDPC, sin el uso de una matriz
generadora del código de LDPC, y
suministrar como salida la palabra de código de
LDPC,
en el que la matriz de comprobación de paridad
especifica las conexiones de nodos de comprobación con nodos de
bit,
en el que los nodos de bit se dividen en grupos
de M nodos de bit,
en el que, para cada grupo de nodos de bit, cada
nodo de bit n_{j} está conectado con nodos de comprobación
numerados como m_{1} + jp, m_{2} +
jp, ..., m_{d} + jp, donde j = 0
a M-1 representa la numeración de los nodos
de bit de dicho grupo y m_{1}, m_{2}, ...,
m_{d} representan los d nodos de comprobación
conectados al primer nodo de bit de cada grupo, de tal manera que
los nodos de comprobación m_{1}, m_{2}, ...,
m_{d} son diferentes de uno de los grupos de nodos de bit
al siguiente grupo de nodos de bit, de modo que, con un valor
adecuado de p, todos los nodos de comprobación representados
en la matriz tienen el mismo grado,
de tal forma que la matriz de comprobación de
paridad proporciona acceso estructurado durante la descodificación
de la palabra de código de LDPC, mediante la colocación de valores
de borde para un grupo de nodos de bit, a continuación unos de
otros en la memoria, y la colocación simultánea de valores de borde
para un grupo de nodos de comprobación, a continuación unos de
otros en la memoria.
2. Un método de acuerdo con la reivindicación 1,
en el cual una porción triangular predeterminada de la matriz de
comprobación de paridad tiene, en la etapa de transformación,
valores cero tras la permutación de filas o de columnas.
3. Un método de acuerdo con la reivindicación 1,
que comprende adicionalmente:
modular una palabra de código de LDPC de acuerdo
con un esquema de modulación que incluye uno de entre un Cifrado
con Desplazamiento de Fase 8-PSK ("Phase Shift
Keying"), una Modulación de Amplitud en Cuadratura
16-QAM ("Quadrature Amplitude Modulation"), y
un Cifrado con Desplazamiento de Fase en Cuadratura QPSK
("Quadrature Phase Shift Keying").
4. Un medio legible por computadora, que soporta
instrucciones para generar códigos de LDPC (comprobación de paridad
de baja densidad), de tal forma que dichas instrucciones están
dispuestas para que, con su ejecución, provoquen que uno o más
procesadores lleven a cabo el método de la reivindicación 1.
5. Un método de acuerdo con la reivindicación 1,
que comprende adicionalmente aplicar un código externo al código de
LDPC, de manera que el código de externo de la etapa de aplicación
incluye uno de entre un código de Bose, Chaudhuri y Hocquenghem,
BCH, un código de Reed-Solomon, RS, y un código de
Hamming.
6. Un método de acuerdo con la reivindicación 1,
en el cual la memoria tiene una primera porción que contiene
valores de borde adyacentes a nodos de bit de grado 2, y una segunda
porción que contiene valores de borde adyacentes a nodos de bit de
grado mayor que 2.
7. Un sistema (200) para generar un código de
comprobación de paridad de baja densidad (LDPC -"low density
parity check"), de tal forma que el sistema (200) comprende:
medios (203) para transformar un mensaje de
entrada recibido en una palabra de código de LDPC utilizando
únicamente una matriz de comprobación de paridad del código de
LDPC, sin el uso de una matriz generadora del código de LDPC, y
medios para suministrar como salida la palabra
de código de LDPC,
en el que la matriz de comprobación de paridad
especifica las conexiones de nodos de comprobación con nodos de
bit,
en el que los nodos de bit se dividen en grupos
de M nodos de bit,
en el que, para cada grupo de nodos de bit, cada
nodo de bit n_{j} está conectado con nodos de comprobación
numerados como m_{1} + jp, m_{2} +
jp, ..., m_{d} + jp, donde j = 0
a M-1 representa la numeración de los nodos
de bit de dicho grupo y m_{1}, m_{2}, ...,
m_{d} representan los d nodos de comprobación
conectados al primer nodo de bit de cada grupo, de tal manera que
los nodos de comprobación m_{1}, m_{2}, ...,
m_{d} son diferentes de uno de los grupos de nodos de bit
al siguiente grupo de nodos de bit, de modo que, con un valor
adecuado de p, todos los nodos de comprobación representados
en la matriz tienen el mismo grado,
de tal forma que la matriz de comprobación de
paridad proporciona acceso estructurado durante la descodificación
de la palabra de código de LDPC, mediante la colocación de valores
de borde para un grupo de nodos de bit, a continuación unos de
otros en la memoria, y la colocación simultánea de valores de borde
para un grupo de nodos de comprobación, a continuación unos de
otros en la memoria.
8. Un sistema de acuerdo con la reivindicación
7, en el cual una porción triangular predeterminada de la matriz de
comprobación de paridad tiene valores cero tras la permutación de
filas o de columnas.
9. Un sistema (200) de acuerdo con la
reivindicación 7, en el cual la palabra de código de LDPC es
modulada de acuerdo con un esquema de modulación que incluye uno de
entre un Cifrado con Desplazamiento de Fase 8-PSK
("Phase Shift Keying"), una Modulación de Amplitud en
Cuadratura 16-QAM ("Quadrature Amplitude
Modulation"), y un Cifrado con Desplazamiento de Fase en
Cuadratura QPSK ("Quadrature Phase Shift Keying").
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US39876002P | 2002-07-26 | 2002-07-26 | |
US398760P | 2002-07-26 | ||
US10/353,230 US20040019845A1 (en) | 2002-07-26 | 2003-01-28 | Method and system for generating low density parity check codes |
US353230 | 2003-01-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2285049T3 true ES2285049T3 (es) | 2007-11-16 |
Family
ID=30002875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES03254308T Expired - Lifetime ES2285049T3 (es) | 2002-07-26 | 2003-07-07 | Metodo y sistema para generar codigos de comprobacion de paridad de baja densidad (ldpc). |
Country Status (8)
Country | Link |
---|---|
EP (1) | EP1385270B1 (es) |
JP (2) | JP4422436B2 (es) |
KR (1) | KR100543154B1 (es) |
CN (1) | CN1481130A (es) |
AT (1) | ATE362675T1 (es) |
DE (1) | DE60313832T2 (es) |
DK (1) | DK1385270T3 (es) |
ES (1) | ES2285049T3 (es) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7234098B2 (en) * | 2003-10-27 | 2007-06-19 | The Directv Group, Inc. | Method and apparatus for providing reduced memory low density parity check (LDPC) codes |
KR20050052184A (ko) * | 2003-11-29 | 2005-06-02 | 삼성전자주식회사 | 저밀도 패리티 검사 부호화를 위한 인터리빙 방법 |
CN1310433C (zh) * | 2004-03-29 | 2007-04-11 | 上海交通大学 | 采用分层低密度校验码的信道编码方法 |
WO2005096510A1 (en) * | 2004-04-02 | 2005-10-13 | Nortel Networks Limited | Ldpc encoders, decoders, systems and methods |
KR100540663B1 (ko) * | 2004-04-19 | 2006-01-10 | 삼성전자주식회사 | 저밀도 패리티 체크 코딩의 패리티 체크 행렬 변환 방법 |
US7171603B2 (en) | 2004-05-06 | 2007-01-30 | Motorola, Inc. | Method and apparatus for encoding and decoding data |
EP1782540B1 (en) * | 2004-07-27 | 2013-07-24 | LG Electronics Inc. | Method of encoding and decoding using low density parity check code |
JP4545793B2 (ja) * | 2004-08-10 | 2010-09-15 | サムスン エレクトロニクス カンパニー リミテッド | ブロック低密度パリティ検査符号を符号化/復号化する装置及び方法 |
EP1790083B1 (en) * | 2004-08-13 | 2011-01-12 | Dtvg Licensing, Inc | Code design and implementation improvements for low density parity check codes for multiple-input multiple-output channels |
KR20070062534A (ko) * | 2004-10-01 | 2007-06-15 | 톰슨 라이센싱 | 저밀도 패리티 체크(ldpc) 디코더 |
KR100846869B1 (ko) | 2004-12-16 | 2008-07-16 | 한국전자통신연구원 | 저 복잡도 ldpc복호 장치 및 그 방법 |
US7617439B2 (en) * | 2005-01-10 | 2009-11-10 | Broadcom Corporation | Algebraic construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices |
CN100414841C (zh) * | 2005-05-11 | 2008-08-27 | 电子科技大学 | 一种ldpc编码的实现方法 |
KR100727316B1 (ko) * | 2005-06-01 | 2007-06-12 | 삼성전자주식회사 | 저밀도채리티체크 채널 디코딩 방법 및 장치 |
CN100424999C (zh) * | 2005-06-06 | 2008-10-08 | 重庆市成鑫机电制造有限公司 | 逐条添加边算法的多进制低密度奇偶校验码编译码方法 |
US8229021B2 (en) | 2005-09-06 | 2012-07-24 | Kddi Corporation | Data transmission system and data transmission method |
CN100438394C (zh) * | 2006-01-12 | 2008-11-26 | 北京大学 | 非规则置换矩阵ldpc码的构造方法及装置 |
CN101005333B (zh) * | 2006-01-17 | 2010-05-12 | 华为技术有限公司 | 低密度奇偶校验码编码方法 |
KR100899738B1 (ko) * | 2006-02-02 | 2009-05-27 | 삼성전자주식회사 | 노드 메모리 기반의 ldpc 복호기 및 복호방법 |
CN100546205C (zh) * | 2006-04-29 | 2009-09-30 | 北京泰美世纪科技有限公司 | 构造低密度奇偶校验码的方法、译码方法及其传输系统 |
KR101444458B1 (ko) * | 2006-06-15 | 2014-09-30 | 삼성전자주식회사 | 통신 시스템에서 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법 |
KR101154995B1 (ko) * | 2006-07-14 | 2012-06-15 | 엘지전자 주식회사 | Ldpc 부호화를 수행하는 방법 |
JP4603518B2 (ja) * | 2006-07-27 | 2010-12-22 | 日本放送協会 | 符号化装置及び復号化装置 |
WO2008034291A1 (en) * | 2006-09-18 | 2008-03-27 | Ming Yang | An interleaving scheme for an ldpc coded qpsk/8psk system |
US8230299B2 (en) | 2006-09-18 | 2012-07-24 | Availink, Inc. | Interleaving scheme for an LDPC coded QPSK/8PSK system |
CN101127581B (zh) * | 2007-09-07 | 2010-09-08 | 普天信息技术研究院有限公司 | 一种ldpc编码调制的映射及逆映射方法和设备 |
KR101431268B1 (ko) | 2007-12-14 | 2014-08-20 | 삼성전자주식회사 | 직렬 부호화를 위한 저밀도 패리티 검사 부호의 생성 장치및 방법 |
CN101459430B (zh) * | 2007-12-14 | 2010-12-08 | 中兴通讯股份有限公司 | 低密度生成矩阵码的编码方法及装置 |
WO2010090374A1 (en) * | 2009-02-06 | 2010-08-12 | Lg Electronics Inc. | Apparatus for transmitting and receiving a signal and method of transmitting and receiving a signal |
US8464123B2 (en) | 2009-05-07 | 2013-06-11 | Ramot At Tel Aviv University Ltd. | Matrix structure for block encoding |
EP2436120B1 (en) | 2009-05-27 | 2017-09-27 | Novelsat Ltd | Adaptive scheduling of iterative demodulation and ldpc decoding |
CN102386995A (zh) * | 2010-09-01 | 2012-03-21 | 国家广播电影电视总局广播科学研究院 | 低密度奇偶校验码校验矩阵构造方法及装置 |
US9264182B2 (en) | 2012-09-13 | 2016-02-16 | Novelsat Ltd. | Iterative receiver loop |
US10411737B2 (en) * | 2015-02-25 | 2019-09-10 | Samsung Electronics Co., Ltd. | Transmitter and method for generating additional parity thereof |
JP6633252B2 (ja) * | 2017-06-27 | 2020-01-22 | 三菱電機株式会社 | 尤度生成装置 |
CN108462496B (zh) * | 2018-04-24 | 2021-04-02 | 成都吉纬科技有限公司 | 一种基于随机比特流更新的ldpc译码器 |
CN108880563A (zh) * | 2018-06-14 | 2018-11-23 | 东南大学 | 一种ldpc码的改进编码方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE332049T1 (de) * | 2001-01-16 | 2006-07-15 | Koninkl Philips Electronics Nv | Abbildung bit-verschachtelter kodierter modulation (bicm) |
EP1379001A3 (en) * | 2002-07-03 | 2004-03-10 | Hughes Electronics Corporation | Method and system for decoding low density parity check (LDPC) codes |
-
2003
- 2003-06-19 KR KR1020030039765A patent/KR100543154B1/ko active IP Right Grant
- 2003-06-20 JP JP2003176330A patent/JP4422436B2/ja not_active Expired - Lifetime
- 2003-07-07 ES ES03254308T patent/ES2285049T3/es not_active Expired - Lifetime
- 2003-07-07 EP EP03254308A patent/EP1385270B1/en not_active Expired - Lifetime
- 2003-07-07 AT AT03254308T patent/ATE362675T1/de not_active IP Right Cessation
- 2003-07-07 DE DE60313832T patent/DE60313832T2/de not_active Expired - Lifetime
- 2003-07-07 DK DK03254308T patent/DK1385270T3/da active
- 2003-07-24 CN CNA031328830A patent/CN1481130A/zh active Pending
-
2009
- 2009-10-08 JP JP2009234228A patent/JP2010050994A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JP2010050994A (ja) | 2010-03-04 |
JP2004064756A (ja) | 2004-02-26 |
JP4422436B2 (ja) | 2010-02-24 |
DE60313832T2 (de) | 2008-01-24 |
ATE362675T1 (de) | 2007-06-15 |
DK1385270T3 (da) | 2007-09-24 |
DE60313832D1 (de) | 2007-06-28 |
KR100543154B1 (ko) | 2006-01-20 |
CN1481130A (zh) | 2004-03-10 |
EP1385270A2 (en) | 2004-01-28 |
EP1385270A3 (en) | 2004-02-04 |
KR20040010116A (ko) | 2004-01-31 |
EP1385270B1 (en) | 2007-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2285049T3 (es) | Metodo y sistema para generar codigos de comprobacion de paridad de baja densidad (ldpc). | |
ES2381012T3 (es) | Procedimiento y sistema para generar códigos de comprobación de paridad de baja densidad (LDPC) | |
ES2273177T3 (es) | Metodo y aparato para codificar codigos de comprobacion de paridad de baja densidad (ldpc) en bloques largos y cortos. | |
US8095854B2 (en) | Method and system for generating low density parity check codes | |
US7020829B2 (en) | Method and system for decoding low density parity check (LDPC) codes | |
US7962830B2 (en) | Method and system for routing in low density parity check (LDPC) decoders | |
US6829308B2 (en) | Satellite communication system utilizing low density parity check codes | |
EP1379001A2 (en) | Method and system for decoding low density parity check (LDPC) codes | |
EP2273683A2 (en) | Encoding and decoding of low density parity check (LDPC) codes |