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 PDF

Info

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
Application number
ES03254308T
Other languages
English (en)
Inventor
Mustafa Eroz
Feng-Wen Sun
Lin-Nan Lee
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.)
DirecTV Group Inc
Original Assignee
DirecTV Group Inc
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
Priority claimed from US10/353,230 external-priority patent/US20040019845A1/en
Application filed by DirecTV Group Inc filed Critical DirecTV Group Inc
Application granted granted Critical
Publication of ES2285049T3 publication Critical patent/ES2285049T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • H04L27/34Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
    • H04L27/36Modulator circuits; Transmitter circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • 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
    • 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/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/152Bose-Chaudhuri-Hocquenghem [BCH] 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • 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/35Unequal 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/356Unequal error protection [UEP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes
    • H04L1/006Trellis-coded modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/18Phase-modulated carrier systems, i.e. using phase-shift keying
    • H04L27/20Modulator circuits; Transmitter circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • H04L27/34Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H40/00Arrangements specially adapted for receiving broadcast information
    • H04H40/18Arrangements characterised by circuits or components specially adapted for receiving
    • H04H40/27Arrangements characterised by circuits or components specially adapted for receiving specially adapted for broadcast systems covered by groups H04H20/53 - H04H20/95
    • H04H40/90Arrangements 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/007Unequal error protection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (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).
Campo de la invención
La presente invención se refiere a sistemas de comunicación y, más particularmente, a sistemas codificados.
Antecedentes de la invención
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).
Sumario de la invención
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.
Descripción de la realización preferida
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:
1
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:
2
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:
3
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:
4
A continuación, se determinan las probabilidades de símbolo en 8-PSK, p_{i} i = 0, 1, ..., 7.
5
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:
6
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):
7
\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
8
\vskip1.000000\baselineskip
La función g() se define como sigue:
9
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:
10
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:
11
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):
12
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").
ES03254308T 2002-07-26 2003-07-07 Metodo y sistema para generar codigos de comprobacion de paridad de baja densidad (ldpc). Expired - Lifetime ES2285049T3 (es)

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)

* Cited by examiner, † Cited by third party
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 上海交通大学 采用分层低密度校验码的信道编码方法
US7831883B2 (en) * 2004-04-02 2010-11-09 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
US7814403B2 (en) 2004-07-27 2010-10-12 Lg Electronics Inc. Method of encoding and decoding using low density parity check code
JP4545793B2 (ja) * 2004-08-10 2010-09-15 サムスン エレクトロニクス カンパニー リミテッド ブロック低密度パリティ検査符号を符号化/復号化する装置及び方法
DE602005025896D1 (de) * 2004-08-13 2011-02-24 Dtvg Licensing Inc Codeentwurfs- und implementierungsverbesserungen für wenig dichte paritätsprüfcodes für kanäle mit mehreren eingängen und mehreren ausgängen
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 重庆市成鑫机电制造有限公司 逐条添加边算法的多进制低密度奇偶校验码编译码方法
WO2007029734A1 (ja) * 2005-09-06 2007-03-15 Kddi Corporation データ伝送システム及びデータ伝送方法
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 北京泰美世纪科技有限公司 构造低密度奇偶校验码的方法、译码方法及其传输系统
WO2007145491A1 (en) * 2006-06-15 2007-12-21 Samsung Electronics Co., Ltd. Apparatus and method of encoding/decoding block low density parity check codes in a communication system
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编码调制的映射及逆映射方法和设备
CN101459430B (zh) * 2007-12-14 2010-12-08 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
KR101431268B1 (ko) 2007-12-14 2014-08-20 삼성전자주식회사 직렬 부호화를 위한 저밀도 패리티 검사 부호의 생성 장치및 방법
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
WO2010136930A2 (en) 2009-05-27 2010-12-02 Novelsat Ltd. Iterative decoding of ldpc codes with iteration scheduling
CN102386995A (zh) * 2010-09-01 2012-03-21 国家广播电影电视总局广播科学研究院 低密度奇偶校验码校验矩阵构造方法及装置
US9264182B2 (en) 2012-09-13 2016-02-16 Novelsat Ltd. Iterative receiver loop
MY189607A (en) * 2015-02-25 2022-02-20 Samsung Electronics Co Ltd Transmitter and method for generating additional parity thereof
WO2019003301A1 (ja) * 2017-06-27 2019-01-03 三菱電機株式会社 尤度生成装置
CN108462496B (zh) * 2018-04-24 2021-04-02 成都吉纬科技有限公司 一种基于随机比特流更新的ldpc译码器
CN108880563A (zh) * 2018-06-14 2018-11-23 东南大学 一种ldpc码的改进编码方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1418421A (zh) * 2001-01-16 2003-05-14 皇家菲利浦电子有限公司 比特交织的编码调制映射
JP3917563B2 (ja) * 2002-07-03 2007-05-23 ヒューズ・エレクトロニクス・コーポレーション 低密度のパリティチェック(ldpc)コードをデコードする方法およびシステム

Also Published As

Publication number Publication date
EP1385270B1 (en) 2007-05-16
KR20040010116A (ko) 2004-01-31
JP4422436B2 (ja) 2010-02-24
DK1385270T3 (da) 2007-09-24
EP1385270A2 (en) 2004-01-28
JP2004064756A (ja) 2004-02-26
JP2010050994A (ja) 2010-03-04
EP1385270A3 (en) 2004-02-04
ATE362675T1 (de) 2007-06-15
CN1481130A (zh) 2004-03-10
KR100543154B1 (ko) 2006-01-20
DE60313832D1 (de) 2007-06-28
DE60313832T2 (de) 2008-01-24

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
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