ES2273177T3 - Metodo y aparato para codificar codigos de comprobacion de paridad de baja densidad (ldpc) en bloques largos y cortos. - Google Patents

Metodo y aparato para codificar codigos de comprobacion de paridad de baja densidad (ldpc) en bloques largos y cortos. Download PDF

Info

Publication number
ES2273177T3
ES2273177T3 ES04256629T ES04256629T ES2273177T3 ES 2273177 T3 ES2273177 T3 ES 2273177T3 ES 04256629 T ES04256629 T ES 04256629T ES 04256629 T ES04256629 T ES 04256629T ES 2273177 T3 ES2273177 T3 ES 2273177T3
Authority
ES
Spain
Prior art keywords
ldpc
sub
code
bch
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES04256629T
Other languages
English (en)
Inventor
Mustafa Eroz
Feng-Wen Sung
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
Application filed by DirecTV Group Inc filed Critical DirecTV Group Inc
Application granted granted Critical
Publication of ES2273177T3 publication Critical patent/ES2273177T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • 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/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • 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
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

Un método de codificación que comprende: recibir bits de información; y generar, basándose en los bits de información, bits de paridad de un código de Comprobación de Paridad de Baja Densidad (LDPC ¿"Low Density Parity Check"), de acuerdo con una de entre una tasa o proporción de código de 1/3, una proporción de código de 1/4 ó una proporción de código de 2/5, al acumular bits en direcciones de bits de paridad.

Description

Método y aparato para codificar códigos de comprobación de paridad de baja densidad (LDPC) en bloques largos y cortos.
\global\parskip0.850000\baselineskip
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. Por ejemplo, en un sistema inalámbrico (o de radio), tal como una red vía satélite, abundan las fuentes de ruido, que van desde factores geográficos hasta medioambientales. Estos canales de comunicación exhiben una capacidad fija que puede ser expresada en términos de bits por cada símbolo en una cierta relación entre señal y ruido (SNR-"signal-to-noise ratio"), que define un límite teórico (conocido como el límite de Shannon). Como resultado de ello, el diseño de la codificación ha estado dirigido a conseguir relaciones o proporciones que se aproximen a este límite de Shannon. Este objetivo es particularmente relevante para los sistemas vía satélite limitados en anchura de banda. Una de tales clases de códigos que se aproximan al límite de Shannon la constituyen 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 con un código de LDPC con el uso de su matriz generadora requeriría el almacenamiento de una matiz muy grande y no dispersa. Adicionalmente, los códigos de LDPC requieren bloques grandes para ser eficaces; en consecuencia, incluso aunque las matrices de comprobación de paridad de los códigos de LDPC sean dispersas, el almacenamiento de estas matrices es problemático.
Desde el punto de vista de la implantación, existe un cierto número de retos confrontados. Por ejemplo, el almacenamiento es una razón importante por la que los códigos de LDPC no han llegado a generalizarse en la práctica. Los códigos de LDPC de longitud requieren, por tanto, un mayor espacio de almacenamiento. Asimismo, un reto fundamental para la puesta en práctica del código de LDPC ha venido siendo el modo como conseguir la red de conexión entre varios dispositivos generadores de procesamiento (nodos) en el descodificador. Por otra parte, la carga computacional en el procedimiento de descodificación, específicamente las operaciones de los nodos de comprobación, plantea un problema.
La publicación Yu, Y. et al.:"Diseño de códigos semi-algebraicos de comprobación de paridad de baja densidad (SA-LDPC-"semi-algebraic low density parity-check") para la modulación codificada en múltiples niveles" ("Design of semi-algebraic low density parity-check (SA-LDPC) codes for multilevel coded modulation") describe la modulación codificada en múltiples niveles con el uso de códigos de LDPC semi-algebraicos.
Existe la necesidad de un sistema de comunicación de LDPC que emplee procedimientos de codificación y descodificación simples. Existe también la necesidad de utilizar eficazmente los códigos de LDPC para proporcionar soporte a velocidades de datos elevadas sin introducir mayor complejidad. Existe también la necesidad de mejorar el rendimiento de los codificadores y descodificadores de LDPC. Existe también la necesidad de minimizar los requisitos de almacenamiento para la puesta en práctica de la codificación de LDPC.
Sumario de la invención
Estas y otras necesidades se acometen por la presente invención, en la que se proporciona una solución para la codificación con códigos de Comprobación de Paridad de Baja Densidad (LDPC-"Low Density Parity Check"). Un codificador genera un código de LDPC que tiene un código de Bose-Chaudhuri-Hocquenghem (BCH) externo de acuerdo con una de las Tablas 1-6 para la transmisión como señal codificada en LDPC. Cada una de las Tablas 1-6 especifica la dirección de los acumuladores de bit de paridad. La solución proporciona, ventajosamente, tanto una codificación como una descodificación oportunas de los códigos de LDPC, al tiempo que minimiza los recursos de almacenamiento y de procesamiento.
De acuerdo con otro aspecto de una realización de la presente invención, los códigos de LDPC están representados por señales que son moduladas de acuerdo con una constelación de señales que incluye una de entre el 8-PSK (Cifrado de Desplazamiento de Fase-"Phase Shift Keying"), la 16-QAM (Modulación de Amplitud en Cuadratura-"Quadrature Amplitude Modulation"), el QPSK (Cifrado con Desplazamiento de Fase en Cuadratura-"Quadrature Phase Shift Ke-ying"), el 16-APSK (Cifrado con Desplazamiento de Fase en Amplitud-"Amplitud Phase Shift Keying") y el
\hbox{32-APSK.}
Aún de acuerdo con otro aspecto de una realización de la presente invención, la señal codificada en LDPC y modulada es transmitida por un enlace vía satélite como soporte de una aplicación vía satélite de banda ancha.
Aún otros aspectos, características y ventajas de la presente invención se ponen de manifiesto de forma evidente a partir de la siguiente descripción detallada, al ilustrar simplemente un cierto número de realizaciones e implementaciones particulares, incluyendo el mejor modo que se contempla para llevar a cabo la presente invención. La presente invención es asimismo susceptible de otras realizaciones diferentes, y sus varios detalles pueden ser modificados en diversos términos obvios, todo ello sin apartarse del espíritu y ámbito de la presente invención. De acuerdo con ello, los dibujos y la descripción se han de considerar como de naturaleza ilustrativa, y no restrictiva.
Breve descripción de los dibujos
La presente invención se ilustra a título 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 se refieren 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;
las Figuras 2A y 2B son diagramas de codificadores de LDPC proporcionados a modo de ejemplo y desplegados en el transmisor de la Figura 1;
las Figuras 2C y 2D son diagramas de flujo del procedimiento de codificación del codificador de LDPC de la Figura 2B, para generar, respectivamente, códigos de longitud de trama larga y códigos de LDPC de longitud de trama corta, de acuerdo con una realización de la presente invención;
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 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, 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;
la Figura 7 es un gráfico del comportamiento de los códigos de LDPC en las tasas o proporciones de 1/3 y 1/4, frente a códigos de repetición;
la Figura 8 es un gráfico del comportamiento de los códigos de LPDC para las diversas tasas o proporciones de código, y de los sistemas de modulación a los que proporciona soporte el transmisor de la Figura 2A; y
la Figura 9 es un diagrama de un sistema de computación que puede llevar a cabo el procedimiento de codificación de LPDC, 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 programación o software para codificar eficazmente con códigos de Comprobación de Paridad de Baja Densidad (LDPC-"Low Density Parity Check") de trama corta. En la descripción que sigue se establecen, para los propósitos de la explicación, numerosos detalles específicos con el fin de proporcionar una comprensión exhaustiva de la presente invención. Sin embargo, es evidente para un experto de la técnica que la presente invención puede llevarse a la 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, con el propósito de evitar enturbiar innecesariamente 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 perfiles o formas de onda de señal, a través de un canal de comunicación 103, hasta un receptor 105. En este sistema de comunicaciones discreto 100, el transmisor 101 tiene una fuente de suministro de mensajes que produce un conjunto discreto de posibles mensajes; cada uno de los posibles mensajes tiene una forma de onda de señal correspondiente. Estas formas de onda de señal son atenuadas o alteradas de otro modo por el canal de comunicaciones 103. Con el fin de combatir el ruido en el canal 103, se utilizan códigos de LDPC.
A modo de ejemplo, el canal 103 es un enlace vía satélite que da servicio a terminales de satélite (por ejemplo, Terminales de Abertura Muy Pequeña (VSATs-"Very Small Aperture Terminals")) como soporte para aplicaciones de satélite de banda ancha. Dichas aplicaciones incluyen servicios de difusión o emisión vía satélite e interactivos (y de conformidad con la norma de Emisión de Vídeo Digital (DVB-"Digital Video Broadcast")-S2). La norma de Emisión de Vídeo Digital vía Satélite (DVB-S) ha sido ampliamente adoptada en todo el mundo para proporcionar, por ejemplo, programación de televisión vía satélite digital.
Los códigos de LDPC que son generados por el transmisor 101 permiten una implementación de elevada velocidad sin incurrir en ninguna pérdida de rendimiento. Estos códigos de LDPC estructurados suministrados como salida desde el transmisor 101 evitan la asignación de un número pequeño de nodos de comprobación a los nodos de bits que son ya vulnerables a los errores de canal, en virtud del esquema de modulación (por ejemplo, el 8-PSK).
Dichos códigos de LDPC tienen un algoritmo de descodificación susceptible de hacerse paralelo (a diferencia de los códigos turbo), el cual implica, ventajosamente, operaciones simples tales como la suma, la comparación y la consulta en tablas. Es má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 basados en matrices de comprobación de paridad (las cuales facilitan un acceso a la memoria eficiente durante la descodificación), a fin de comunicarse con el receptor 105. El transmisor 101 emplea códigos de LDPC que pueden llevar a cabo externamente códigos concatenados turbo + RS (Reed-Solomon), siempre y cuando la longitud de los bloques sea lo suficientemente larga.
Las Figuras 2A y 2B son diagramas de codificadores de LPDC proporcionados a modo de ejemplo y desplegados en el transmisor de la Figura 1. Como se observa en la Figura 2A, un transmisor 200 está equipado con un codificador de LDPC 203 que acepta la entrada desde una fuente 201 de suministro de información y suministra como salida una corriente codificada de redundancia superior, adecuada para el procesamiento de corrección de errores en el receptor 105. La fuente 201 de suministro de información genera señales k a partir de un alfabeto discreto, X. Los códigos de LDPC se especifican con matrices de comprobación de paridad. Por otra parte, los códigos de LDPC para codificación requieren, en general, especificar las matrices generadoras. Incluso aunque sea posible obtener matrices generadoras a partir de matrices de comprobación de paridad con el uso de eliminación Gaussiana, la matriz resultante ya no es dispersa y el almacenamiento de una matriz generadora grande puede ser complejo.
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 tan solo de la matriz de comprobación de paridad, al imponer una cierta estructura a la matriz de comprobación de paridad. Específicamente, se establece una restricción a la matriz de comprobación de paridad al limitar o restringir cierta porción de la matriz de modo que sea triangular. La construcción de dicha matriz de comprobación de paridad se describe más exhaustivamente más adelante, en la Figura 6. Dicha restricción da lugar a una pérdida de rendimiento despreciable y, por lo tanto, constituye un compromiso atractivo.
El modulador 205 establece una relación de correspondencia de los mensajes codificados procedentes del codificador 203, con perfiles o formas de onda de señal que son transmitidas a una antena de transmisión 207, la cual emite estas formas de onda por el 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 a un receptor (mostrado en la Figura 3), tal como se explica más adelante.
La Figura 2B muestra un codificador de LDPC que se utiliza con un codificador de Bose-Chaudhuri-Hocquenghem (BCH) y un codificador de comprobación de redundancia cíclico (CRC-"cyclic redundancy check"), de acuerdo con una realización de la presente invención. En este contexto, los códigos generados por el codificador de LDPC 203, conjuntamente con el codificador de CRC 209 y el codificador de BCH 211, tienen un código de BCH externo concatenado y un código de comprobación de paridad de baja densidad (LDPC) interno. Por otra parte, la detección de los errores se consigue utilizando códigos de comprobación de redundancia cíclicos (CRC). El codificador de CRC 209, en una realización proporcionada a modo de ejemplo, codifica utilizando un código de CRC de 8 bits con el polinomio generador (x^{5} + x^{4} + x^{3} + x^{2} + 1)(x^{2} + x + 1)(x + 1). El código de CRC se suministra como salida al codificador de BCH 211.
La Figura 2C es un diagrama de flujo del procedimiento de codificación del codificador de LDPC de la Figura 2B, para generar códigos de LCPD de longitud de trama larga, de acuerdo con una realización de la presente invención. En la etapa 221, los bits de información son recibidos y procesados hasta llegar a la cadena de codificadores 209, 211 y 203. En consecuencia, el codificador de LDPC 203 genera códigos de LDPC con códigos de BCH externos, basándose en los bits de información recibidos, como en la etapa 223. Los códigos contienen también el código de CRC. A continuación, los códigos de LDPC se representan mediante señales que son moduladas, por la etapa 225, para su transmisión a través del canal 103, el cual es, en una realización proporcionada a modo de ejemplo, un enlace vía satélite a uno o más terminales de satélite (etapa 227).
El codificador de LDPC 203 codifica sistemáticamente un bloque de información de tamaño k_{ldpc}, i = (i_{0}, i_{1}, ..., i_{kldpc-1}) en una palabra de código de tamaño n_{ldpc}, c = (i_{0}, i_{1}, ..., i_{kldpc-1}, p_{0}, p_{1}, ..., p_{nldpc-kldpc-1}). La transmisión de la palabra de código comienza en el orden dado desde i_{0} y termina con p_{nldpc-kldpc-1} parámetros de código de LDPC (n_{ldpc}, k_{ldpc}).
La tarea del codificador de LDPC 203 consiste en determinar n_{ldpc}-k_{ldpc} bits de paridad (p_{0}, p_{1}, ..., p_{nldpc-kldpc-1}) para cada bloque de k_{ldpc} bits de información, (i_{0}, i_{1}, ..., i_{kldpc-1}). El procedimiento es como sigue. En primer lugar, se inicializan los bits de paridad; p_{0} = p_{1} = p_{2} = ... = p_{nldpc-kldpc-1} = 0. A modo de ejemplo, se codifican sistemáticamente k_{ldpc} bits para generar n_{ldpc} bits. El primer bit de información, i_{0}, se acumula en la dirección de bit de paridad especificada en la primera fila de las Tablas 1-3. Para el código de proporción 1/3 de la Tabla 1, los parámetros relevantes son como sigue: q = 120, n_{ldpc} = 64.800, k_{ldpc} = n_{BCH} = 21.600, k_{BCH} = 21.408 (BCH de corrección de errores de 12 bits). Para la proporción 1/4, el código de LDPC tiene los siguientes parámetros relevantes: q = 135, n_{ldpc} = 64.800, k_{ldpc} = n_{BCH} = 16.200, k_{BCH} = 16.008 (BCH de corrección de errores de 12 bits). Para un código de LDPC de 2/5 largo, se dan los siguientes parámetros: q = 108, n_{ldpc} = 64.800, k_{ldpc} = n_{BCH} = 25.920, k_{BCH} = 25.728 (BCH de corrección de errores de 12 bits).
Por ejemplo, para la proporción 1/3 (Tabla 1), resulta lo siguiente para i_{0}:
1
En las anteriores ecuaciones, las sumas son en GF(2).
A continuación, para los 359 siguientes bits de información, i_{m}, m = 1, 2, ..., 359, estos bits se acumulan en las direcciones de bit de paridad {x + m mod360 \times q}mod(n_{lpdc}-k_{lpdc}), donde x denota la dirección del acumulador de bit de paridad correspondiente al primer bit i_{0}, y q es una constante dependiente de la proporción de código. Continuando con el ejemplo con q = 120 para la proporción 1/3, para el bit de información i_{1}, se llevan a cabo las siguientes operaciones:
2
Para el 361º bit de información, i_{360}, las direcciones de los acumuladores de bit de paridad se dan en las segundas filas de las Tablas 1-3. De una forma similar, las direcciones de los acumuladores de bit de paridad para los 359 bits de información siguientes, i_{m}, m = 361, 362, ..., 719 se obtienen utilizando la fórmula {x + m mod360 \times q}mod(n_{lpdc}-k_{lpdc}), donde x denota la dirección del acumulador de bit de paridad correspondiente al bit de información i_{360}, es decir las entradas de la segunda fila de las Tablas 1-3. De una forma similar, para cada grupo de 360 nuevos bits de información, se utiliza una nueva fila de las Tablas 1-3 para encontrar las direcciones de los acumuladores de bit de paridad.
\global\parskip0.990000\baselineskip
TABLA 1
3
4
5
TABLA 2
6
7
TABLA 3
8
9
\newpage
Una vez que se han agotado todos los bits de información, se obtienen los bits de paridad finales como sigue. En primer lugar, se llevan a cabo las siguientes operaciones, comenzando con i = 1.
p_{i} = p_{i} \oplus p_{i-1},
\hskip1cm
i = 1, 2, ... , n_{ldpc} - k_{ldpc} - 1.
El contenido final de p_{i}, i = 0, 1, ..., n_{ldpc} - k_{ldpc} - 1 es igual al bit de paridad p_{i}.
Una vez que se han agotado la totalidad de los bits de información, los bits de paridad finales se obtienen como sigue. En primer lugar, se realizan las siguientes operaciones, comenzando con i = 1.
p_{i} = p_{i} \oplus p_{i-1},
\hskip1cm
i = 1, 2, ... , n_{ldpc} - k_{ldpc} - 1.
El contenido final de p_{i}, i = 0, 1, ..., n_{ldpc} - k_{ldpc} - 1 es igual al bit de paridad p_{i}.
Por lo que respecta a la codificación de BCH, de acuerdo con una realización de la presente invención, el generador polinómico del código de BCH utilizado por el codificador de BCH 211 es como sigue:
\vskip1.000000\baselineskip
10
\vskip1.000000\baselineskip
La codificación de BCH de bits de información m = (m_{kbch-}_{1}, m_{kbch}_{-2}, ..., m_{1}, m_{0}) en una palabra de código
c = (m_{kbch-}_{1}, m_{kbch}_{-2}, ..., m_{1}, m_{0}, d_{nbch-kbch}_{-1}, d_{nbch-kbch}_{-2}, ..., d_{1}, d_{0}) se consigue como sigue. Se multiplica el mensaje polinómico m(x) = m_{kbch}_{-1}x^{kbch}^{-1} + m_{kbch}_{-2}x^{kbch}^{-2} + ... + m_{1}x + m_{0} por x^{nbch-kbch}. A continuación, x^{nbch-kbch}\cdotm(x) se divide por g(x). Siendo d(x) = d_{nbch-kbch}_{-1}x^{nbch}^{-kbch-1} + ... + d_{1}x + d_{0} el resto, el polinomio de palabra de código se establece como sigue: c(x) = x^{nbch-kbch}m(x) + d(x).
Como se ha expuesto, se codifican sistemáticamente k_{ldpc} bits para generar n_{ldpc} bits. De acuerdo con una realización de la presente invención, n_{ldpc} son 16.200 bits, lo que constituye una longitud de bloque corta. Dada la longitud relativamente corta de tales códigos, los códigos de LDPC que tienen longitudes aproximadas de 16.200 bits o menores se consideran códigos de longitud de bloque "corta".
De acuerdo con una realización de la presente invención, algunos de los códigos de bloques cortos (por ejemplo, de la proporción 1/5 de la Tabla 5) se generan al acortar versiones de códigos "madre" ligeramente mayores (k_{m}, n_{m}) con un tamaño de bloque n_{m} > 16.200. Como se muestra en la Figura 2D, k_{ldpc} de los bits codificados en BCH son precedidos por k_{m}-k_{lpdc} ceros de relleno (según la etapa 251). Los k_{m} bits resultantes son codificados sistemáticamente para generar n_{m} bits, como corresponde a la etapa 253. Se borran entonces los k_{m}-k_{lpdc} primeros ceros de relleno, según la etapa 255, y los n_{ldpc} = 16.200 bits resultantes serán transmitidos (etapa 257). Se aprecia que k_{m}-k_{ldpc} = n_{m}-n_{ldpc}. Las Tablas 4-6 proporcionan otras proporciones de código corto aportadas a modo de ejemplo, 1/3, 1/5 y 2/5 (n_{ldpc} de 16.200 bits):
TABLA 4
11
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
TABLA 5
12
TABLA 6
14
La anterior solución para designar los códigos de LDPC, según se proporcionan en las Tablas 1-6, permite, ventajosamente, que el almacenamiento y la recuperación de la información relevante concerniente a los grupos divididos de nodos de bits y de nodos de comprobación, sean siempre ubicados en posiciones de memoria contiguas dentro de la memoria (por ejemplo, una Memoria de Acceso Aleatorio (RAM-"Random Access Memory")). En consecuencia, es posible dar soporte a múltiples proporciones de código sin emplear diferentes descodificadores. Por otra parte, el diseño hace posible el uso de un único banco de RAMs, con lo que se minimiza el tamaño del circuito integrado. Como ya se ha mencionado, los anteriores códigos de LDPC, en una realización proporcionada a modo de ejemplo, pueden ser utilizados en una variedad de aplicaciones de vídeo digital, tales como la transmisión por paquetes de MPEG (Grupo Experto de Imágenes en Movimiento-"Motion Pictures Expert Group").
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 la recepción, un receptor 300 incluye un desmodulador 301 que lleva a cabo la desmodulación de las señales recibidas desde el transmisor 200. Estas señales son recibidas por una antena de recepción 303 para su desmodulación. Tras la desmodulación, las señales recibidas son remitidas a un descodificador de LDPC 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 de bits 307. El generador métrico de bits 307 puede intercambiar información con el descodificador 305 en sentido hacia delante y hacia atrás (de forma iterativa) durante el procedimiento de descodificación. Estas soluciones de descodificación se describen más exhaustivamente en la solicitud co-dependiente titulada "Método y sistema para el encaminamiento en descodificadores de Comprobación de Paridad de Baja Densidad (LDPC-"Low Density Parity Check")" ("Method and System for Routing in Low Density Parity Check (LDPC) Decoders"), depositada el 3 de julio de 2003 (Serie Nº 10/613.824; Registro de Representante PD-203009). Es de apreciar que los códigos de LDPC, al construirse con las Tablas 1-6, pueden proporcionar soporte a múltiples proporciones de código (en consecuencia, a múltiples velocidades de datos) utilizando una arquitectura o estructura de descodificación común; en contraste con ello, los códigos convolutivos, por ejemplo, requieren técnicas de punzado o perforación para conseguir proporciones intermedias.
Con el fin de apreciar adicionalmente las ventajas que ofrece la presente invención, resulta instructivo examinar el modo como son generados los códigos de LDPC, según se expone en 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 lineares con una matriz de comprobación de paridad dispersa H_{(n-k)xn}. Típicamente, la longitud de los bloques, n, varía desde miles a 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 proporción 1/2. El mismo código puede representarse de forma equivalente por el gráfico en dos partes de la Figura 5.
La Figura 5 es un diagrama de un gráfico 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 el GF (Campo de Galois-"Galois Field")(2)) de todos los nodos de bits adyacentes es igual a cero. Como se observa en la Figura, los nodos de bits 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 bits.
Volviendo al receptor 300, el descodificador de LDPC 305 está considerado como un descodificador de paso de mensajes, por lo que el descodificador 305 tiene como propósito encontrar los valores de los nodos de bits. Con el fin de cumplir este cometido, los nodos de bits y los nodos de comprobación se comunican de forma iterativa unos con otros. La naturaleza de esta comunicación se describe en lo que sigue.
Desde los nodos de comprobación a los nodos de bits, cada nodo de comprobación proporciona a un nodo de bits adyacente una estimación ("opinión") con respecto al valor de ese nodo de bits, basándose en la información que llega desde otros nodos de bits adyacentes. Por ejemplo, en el ejemplo anterior, si la suma de n_{4}, n_{5} y n_{8} "parece ser" entre 0 y m_{1}, entonces m_{1} indicará a n_{1} que se cree que el valor de n_{1} es cero (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 o blanda, se añade una medida de la fiabilidad.
Desde los nodos de bits a los nodos de comprobación, cada nodo de bits facilita a un nodo de comprobación adyacente una estimación acerca de su propio valor basándose en la realimentación que llega desde sus otros nodos de comprobación adyacentes. En el ejemplo anterior, m_{1} tiene únicamente dos nodos de comprobación adyacentes, m_{1} y m_{3}. Si la realimentación que llega desde m_{3} a m_{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 bits tenga más de dos nodos de comprobación adyacentes, el nodo de bits llevará a cabo una votación por mayoría (decisión suave) sobre la realimentación que llega desde sus otros nodos de comprobación adyacentes, antes de dar cuenta de esa decisión al nodo de comprobación con el que se comunica. El procedimiento anterior se repite hasta que todos los nodos de bits sean considerados como correctos (es decir, se satisfagan todas las ecuaciones de comprobación de paridad), o bien hasta que se alcance un número máximo predeterminado de iteraciones, con lo que se declare un fallo en la descodificación.
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 o limitados a la región triangular inferior, de acuerdo con una realización de la presente invención. Como se ha descrito anteriormente, el codificador 203 (de las Figuras 2A y 2B) puede emplear una técnica de codificación simple al restringir los valores de la zona 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:
H_{(n-k)xn} = [A_{(n-k)xk} \ B_{(n-k)x(n-k)}],
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 resolviéndola de forma recurrente para los bits de paridad; por ejemplo,
a_{00}i_{0} + a_{01}i_{1} + ... + a_{0,k-1}i_{k-1} + p_{0} = 0 \Rightarrow Resolver \ p_{0},
a_{10}i_{0} + a_{11}i_{1} + ... + a_{1,k-1}i_{k-1} + b_{10}p_{0} + p_{1} = 0\Rightarrow Resolver \ p_{1}
y de forma similar para p_{2}, p_{3}, ..., p_{n-k}_{-1}.
Las Figuras 7 y 8 son gráficos del rendimiento de los códigos de LDPC para las diversas proporciones de código y esquemas de modulación a los que proporciona soporte el transmisor 200 de la Figura 2A. Concretamente, el gráfico de la Figura 7 muestra una comparación de rendimientos entre los códigos de LDPC de proporciones 1/3 y 1/4, y entre los códigos de LDPC de proporción 2/3 de repetición y de proporción 1/4 de repetición, respectivamente. En este contexto, el rendimiento se considera, en el caso de las proporciones 1/3 y 1/4 para códigos de LDPC de QPSK, en un canal de Ruido Gaussiano Blanco Aditivo (AWGN-"Additive White Gaussian Noise"). Como se observa, el código de proporción 1/3 ofrece una ganancia de aproximadamente 1,3 dB con respecto a un código de LDPC de proporción 2/3 de repetición, en tanto que el código de LDPC de proporción 1/4 ofrece una ganancia de aproximadamente 0,4 dB con respecto a un código de LDPC de proporción 1/2 de repetición. Los códigos de repetición se construyen repitiendo los bits de información de fuente como el conjunto de bits de paridad. En consecuencia, los códigos de LDPC de proporciones 1/3 y 1/4 ofrecerán una ventaja en su rendimiento con respecto a los códigos de repetición cuando se utilizan en una rama de baja prioridad de esquemas de modulación jerárquica compatibles en sentido inverso o hacia atrás.
La Figura 8 ilustra el rendimiento de códigos de longitud de trama corta de las proporciones 1/5, 1/3 y 2/5, conjuntamente con el de los códigos de longitud de trama larga de las proporciones 1/4, 1/3 y 2/5. Como se muestra, los códigos cortos para las proporciones 1/3 y 2/5 exhiben un rendimiento casi comparable con el de sus contrapartidas de códigos largos (dentro de 0,2 dB).
Los procedimientos de codificación de LDPC según se ha detallado anteriormente, pueden llevarse a efecto a través de una variedad de configuraciones de hardware, o dispositivos físicos, y/o software, o programación. De hecho, esta solución puede desplegarse también fácilmente tan solo a través de un cambio en el software, con lo que se suprimen costosas modificaciones en el hardware.
La Figura 9 ilustra un hardware proporcionado a modo de ejemplo con el que puede llevarse a la práctica una realización de acuerdo con la presente invención. Un sistema de computación 900 incluye un bus 901 u otro mecanismo de comunicación destinado a comunicar información, así como un procesador 903, conectado al bus 901 para el tratamiento o procesamiento de la información. El sistema de computación 900 incluye también una memoria principal 905, tal como una memoria de acceso aleatorio (RAM-"Random Access Memory") u otro dispositivo de almacenamiento dinámico, conectada al bus 901 para almacenar información e instrucciones que se han de llevar a cabo por parte del procesador 903. La memoria principal 905 puede utilizarse también para almacenar variables temporales u otra información intermedia durante la ejecución de las instrucciones por parte del procesador 903. El sistema de computación 900 puede incluir adicionalmente una memoria de sólo lectura (ROM-"Read Only Memory") 907 u otro dispositivo de almacenamiento estático, conectado al bus 901 y destinado a almacenar información estática e instrucciones para el procesador 903. Un dispositivo de almacenamiento 909, tal como un disco magnético o un disco óptico, está conectado al bus 901 con el fin de almacenar de forma permanente información e instrucciones.
El sistema de computación 900 puede estar conectado, a través del bus 901, a un dispositivo de presentación visual 911, tal como un dispositivo de presentación visual de cristal líquido o un dispositivo de presentación visual de matriz activa, a fin de presentar visualmente información a un usuario. Un dispositivo de entrada 913, tal como un teclado que incluye teclas alfanuméricas y otras teclas, puede estar conectado al bus 901 para comunicar información y selecciones de órdenes al procesador 903. El dispositivo de entrada 913 puede incluir un control por cursor, tal como un ratón, una bola de seguimiento o teclas de dirección de cursor, al objeto de comunicar información de dirección y selecciones de órdenes al procesador 903, y controlar el movimiento del cursor por el dispositivo de presentación visual 911.
De acuerdo con una realización de la invención, los procedimientos de las Figuras 2C y 2D pueden ser proporcionados por el sistema de computación 900 en respuesta a la ejecución, por parte del procesador 903, de una disposición de instrucciones contenida en la memoria principal 905. Dichas instrucciones pueden ser leídas e introducidas en la memoria principal 905 desde otro medio legible por la computadora, tal como el dispositivo de almacenamiento 909. La ejecución de la disposición de instrucciones contenida en la memoria principal 905 hace que el procesador 903 lleve a cabo las etapas del procedimiento que se ha descrito aquí. Pueden emplearse también uno o más procesadores en una disposición de procesamiento múltiple para llevar a efecto o ejecutar las instrucciones contenidas en la memoria principal 905. En realizaciones alternativas, es posible utilizar circuitos en cable instalado como hardware, en lugar de, o en combinación con, instrucciones de software, a fin de implementar la realización de la presente invención. En otro ejemplo, puede utilizarse hardware reconfigurable, tal como Conjuntos Ordenados de Puertas Programables en Campo (FPGAs-"Field Programmable Gate Arrays"), en el cual la capacidad funcional y la topología de conexión de sus puertas lógicas se pueden personalizar durante el tiempo de funcionamiento, típicamente por medio de tablas de consulta de memoria de programación. Así pues, las realizaciones de la presente invención no están limitadas por cualquier combinación concreta de circuitos de hardware y software.
El sistema de computación 900 incluye también al menos una interfaz de comunicación 915, conectada al bus 901. La interfaz de comunicación 915 proporciona un acoplamiento de comunicación de datos en ambos sentidos a un enlace de red (no mostrado). La interfaz de comunicación 915 envía y recibe señales eléctricas, electromagnéticas u ópticas que transportan corrientes de datos digitales que representan diversos tipos de información. Además, la interfaz de comunicación 915 puede incluir dispositivos de interfaz periféricos, tales como una interfaz de Bus en Serie Universal (USB-"Universal Series Bus"), una interfaz de la PCMCIA (Asociación Internacional de Tarjetas de Memoria de Computadoras Personales-"Personal Computer Memory Card International Association"), etc.
El procesador 903 puede llevar a efecto código que está siendo recibido por la interfaz de comunicación 915, y/o almacenar el código en el dispositivo de almacenamiento 909 ó en otro almacenamiento no volátil para su ejecución ulterior. De esta manera, el sistema de computación 900 puede obtener código de aplicación en 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 a la hora de proporcionar instrucciones al procesador 903 para su ejecución. Dicho medio puede adoptar muchas formas, incluyendo medios no volátiles, medios volátiles y medios de transmisión, aunque no se limita a ellas. Los medios no volátiles incluyen, por ejemplo, discos ópticos o magnéticos, tales como el dispositivo de almacenamiento 909. Los medios volátiles incluyen memoria dinámica, tal como la memoria principal 905. Los medios de transmisión incluyen cables coaxiales, cable de cobre y fibras ópticas, incluyendo los cables que comprenden el bus 901. Los medios de transmisión pueden también adoptar la forma de ondas acústicas, ópticas y electromagnéticas, tales como las que se generan durante las comunicaciones de datos por radiofrecuencia (RF) e infrarrojos (IR). Formas comunes de medios legibles por computadora incluyen, por ejemplo, un disquete, un disco flexible, un disco duro, cinta magnética, cualquier otro medio magnético, un CD-ROM, un CDRW, un DVD, cualquier otro medio óptico, tarjetas perforadas, cinta de papel, láminas con marcas ópticas, cualquier otro medio físico provisto de patrones o configuraciones de orificios u otras indicaciones reconocibles por medios ópticos, una RAM, una PROM, una EPROM, una EPROM de tipo FLASH (FLASH-EPROM), cualquier otro chip o cartucho de memoria, una onda portadora, o bien 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 una parte de la presente invención pueden estar inicialmente contenidas en un disco magnético de una computadora distante. En semejante 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 (dispositivo modulador-desmodulador). Un módem de un sistema 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 de computación portátil, tal como un asistente digital personal (PDA-"personal digital assistant") o una computadora portátil. Un detector de infrarrojos situado en el dispositivo de computación portátil recibe la información y las instrucciones que lleva la señal de infrarrojos y sitúa los datos en un bus. El bus transporta los datos hasta una memoria principal, desde la que un procesador recupera y lleva a cabo las instrucciones. Las instrucciones recibidas por la memoria principal pueden ser almacenadas opcionalmente en un dispositivo de almacenamiento, antes o después de su ejecución por parte del procesador.
De acuerdo con ello, las diversas realizaciones de la presente invención proporcionan un codificador de LDPC que genera un código de LDPC que tiene un código de Bose-Chaudhuri-Hocquenghem (BCH) externo de conformidad con una de las Tablas 1-6, para su transmisión como señal codificada en LDPC. Cada una de las Tablas 1-6 especifica la dirección de los acumuladores de bit de paridad. La solución anterior ofrece, 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 de esta forma, sino que abarca diversas modificaciones obvias y disposiciones equivalentes que caen dentro del ámbito de las reivindicaciones que se acompañan.

Claims (13)

1. Un método de codificación que comprende:
recibir bits de información; y
generar, basándose en los bits de información, bits de paridad de un código de Comprobación de Paridad de Baja Densidad (LDPC-"Low Density Parity Check"), de acuerdo con una de entre una tasa o proporción de código de 1/3, una proporción de código de 1/4 ó una proporción de código de 2/5, al acumular bits en direcciones de bits de paridad según se especifica por las siguientes tablas respectivas, que utilizan acumuladores de bit de paridad,
15
16
18
19
2. Un método de acuerdo con la reivindicación 1, que comprende adicionalmente:
modular la señal codificada en LDPC; y
transmitir la señal modulada.
3. Un método de acuerdo con la reivindicación 2, en el cual la señal modulada es transmitida por un enlace vía satélite (103) como soporte de una aplicación vía satélite de banda ancha.
4. El método de acuerdo con la reivindicación 2, en el cual la etapa de modulación se lleva a cabo de acuerdo con una constelación de señales que incluye una de entre el 8-PSK, la 16-QAM, el QPSK, el 16-APSK y el 32-APSK, de tal forma que el PSK denota Cifrado de Desplazamiento de Fase, la QAM denota Modulación de Amplitud en Cuadratura, el QPSK denota Cifrado con Desplazamiento de Fase en Cuadratura, y el APSK denota Cifrado con Desplazamiento de Fase en Amplitud.
5. Un medio legible por computadora, que lleva incorporadas instrucciones para codificar, estando dispuestas dichas instrucciones para hacer, al ser ejecutadas, que uno o más procesadores lleven a cabo el método de acuerdo con la reivindicación 1.
6. Un codificador (203) que comprende:
medios para recibir bits de información; y
medios para generar, basándose en los bits de información, un código de Comprobación de Paridad de Baja Densidad (LDPC-"Low Density Parity Check"), de acuerdo con una de entre una pluralidad de tasas o proporciones de código, al acumular bits en direcciones de bits de paridad según se especifica por las siguientes tablas respectivas, que utilizan acumuladores de bit de paridad,
21
22
\vskip1.000000\baselineskip
23
24
\vskip1.000000\baselineskip
25
26
;y
medios para generar un código de Bose-Chaudhuri-Hocquenghem (BCH) externo para el código de LDPC.
7. Un codificador (203) de acuerdo con la reivindicación 6, en el cual la señal codificada en LDPC es modulada y transmitida.
8. Un codificador (203) de acuerdo con la reivindicación 7, en el cual la señal modulada se da como soporte de una aplicación vía satélite de banda ancha.
9. Un codificador (203) de acuerdo con la reivindicación 7, en el cual la modulación se lleva a cabo de acuerdo con una constelación de señales que incluye una de entre el 8-PSK, la 16-QAM, el QPSK, el 16-APSK y el 32-APSK, de tal forma que el PSK denota Cifrado de Desplazamiento de Fase, la QAM denota Modulación de Amplitud en Cuadratura, el QPSK denota Cifrado con Desplazamiento de Fase en Cuadratura, y el APSK denota Cifrado con Desplazamiento de Fase en Amplitud.
10. Un transmisor (200) para proporcionar soporte a la transmisión de una señal codificada en Comprobación de Paridad de Baja Densidad (LDPC-"Low Density Parity Check"), que comprende:
un codificador (203) de Comprobación de Paridad de Baja Densidad (LDPC), configurado para suministrar como salida, basándose en bits de información recibidos, un código de LDPC; y
un codificador de Bose-Chaudhuri-Hocquenghem (BCH) (211), conectado al codificador de LDPC (203) y configurado para proporcionar un código externo al código de LDPC, de tal forma que el código de LDPC se genera de acuerdo con una de entre una tasa o proporción de código de 1/3, una proporción de código de 1/4 ó una proporción de código de 2/5, al acumular bits en direcciones de bits de paridad según se especifica por las siguientes tablas respectivas, que utilizan acumuladores de bit de paridad,
27
28
29
\vskip1.000000\baselineskip
30
31
\vskip1.000000\baselineskip
32
11. Un transmisor (200) de acuerdo con la reivindicación 10, que comprende adicionalmente:
un modulador (205), configurado para modular la señal codificada en LDPC.
12. Un transmisor (200) de acuerdo con la reivindicación 11, en el cual la señal modulada es transmitida a través de un enlace vía satélite (103) como soporte de una aplicación vía satélite de banda ancha.
13. Un transmisor (200) de acuerdo con la reivindicación 11, en el cual la modulación se lleva a cabo de acuerdo con una constelación de señales que incluye una de entre el 8-PSK, la 16-QAM, el QPSK, el 16-APSK y el 32-APSK, de tal forma que el PSK denota Cifrado de Desplazamiento de Fase, la QAM denota Modulación de Amplitud en Cuadratura, el QPSK denota Cifrado con Desplazamiento de Fase en Cuadratura, y el APSK denota Cifrado con Desplazamiento de Fase en Amplitud.
ES04256629T 2003-10-27 2004-10-27 Metodo y aparato para codificar codigos de comprobacion de paridad de baja densidad (ldpc) en bloques largos y cortos. Active ES2273177T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US51468303P 2003-10-27 2003-10-27
US514683P 2003-10-27
US51819903P 2003-11-07 2003-11-07
US518199P 2003-11-07

Publications (1)

Publication Number Publication Date
ES2273177T3 true ES2273177T3 (es) 2007-05-01

Family

ID=34426323

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04256629T Active ES2273177T3 (es) 2003-10-27 2004-10-27 Metodo y aparato para codificar codigos de comprobacion de paridad de baja densidad (ldpc) en bloques largos y cortos.

Country Status (11)

Country Link
US (3) US7376883B2 (es)
EP (1) EP1528686B9 (es)
JP (1) JP3990396B2 (es)
KR (1) KR100686660B1 (es)
CN (1) CN100449947C (es)
AT (1) ATE346425T1 (es)
CA (1) CA2486048C (es)
DE (1) DE602004003324T2 (es)
DK (1) DK1528686T3 (es)
ES (1) ES2273177T3 (es)
HK (1) HK1077416A1 (es)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7864869B2 (en) 2002-07-26 2011-01-04 Dtvg Licensing, Inc. Satellite communication system utilizing low density parity check codes
US7334181B2 (en) * 2003-09-04 2008-02-19 The Directv Group, Inc. Method and system for providing short block length low density parity check (LDPC) codes
US7376883B2 (en) * 2003-10-27 2008-05-20 The Directv Group, Inc. Method and system for providing long and short block length low density parity check (LDPC) codes
US7165205B2 (en) * 2004-05-14 2007-01-16 Motorola, Inc. Method and apparatus for encoding and decoding data
CN101341659B (zh) * 2004-08-13 2012-12-12 Dtvg许可公司 用于多输入多输出通道的低密度奇偶校验码的码设计与实现的改进
EP1779526A1 (en) * 2004-08-13 2007-05-02 Nokia Corporation Structured puncturing of irregular low-density parity-check (ldpc) codes
KR100672374B1 (ko) * 2005-01-15 2007-01-24 엘지전자 주식회사 이동통신 단말기
JP2006238127A (ja) * 2005-02-25 2006-09-07 Sony Corp 復号装置および方法、並びにプログラム
KR20060108959A (ko) 2005-04-13 2006-10-19 삼성전자주식회사 블록단위의 저밀도 패리티 체크 행렬 생성 방법 및 장치와그 기록매체
US7661037B2 (en) * 2005-10-27 2010-02-09 Samsung Electronics Co., Ltd. LDPC concatenation rules for IEEE 802.11n systems
US7844877B2 (en) * 2005-11-15 2010-11-30 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
US7707479B2 (en) * 2005-12-13 2010-04-27 Samsung Electronics Co., Ltd. Method of generating structured irregular low density parity checkcodes for wireless systems
US7620880B2 (en) * 2005-12-20 2009-11-17 Samsung Electronics Co., Ltd. LDPC concatenation rules for IEEE 802.11n system with packets length specified in OFDM symbols
US7631246B2 (en) * 2006-01-09 2009-12-08 Broadcom Corporation LDPC (low density parity check) code size adjustment by shortening and puncturing
US8145568B2 (en) * 2006-07-06 2012-03-27 Firethorn Mobile, Inc. Methods and systems for indicating a payment in a mobile environment
CN100446427C (zh) 2006-08-07 2008-12-24 北京泰美世纪科技有限公司 移动数字多媒体广播***中ldpc码的构造方法
WO2008034285A1 (en) * 2006-09-18 2008-03-27 Fengwen Sun A family of ldpc codes for video broadcasting applications
US8583981B2 (en) * 2006-12-29 2013-11-12 Marvell World Trade Ltd. Concatenated codes for holographic storage
US8065598B1 (en) * 2007-02-08 2011-11-22 Marvell International Ltd. Low latency programmable encoder with outer systematic code and low-density parity-check code
US20100122143A1 (en) 2007-03-27 2010-05-13 Hughes Network Systems, Llc Method and system for providing low density parity check (ldpc) coding for scrambled coded multiple access (scma)
CN101414833B (zh) * 2007-10-19 2010-08-04 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
US8166367B2 (en) * 2007-12-06 2012-04-24 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding channel in a communication system using low-density parity-check codes
CN101459429B (zh) * 2007-12-14 2010-07-14 中兴通讯股份有限公司 一种低密度生成矩阵码的译码方法
WO2009104898A2 (en) * 2008-02-18 2009-08-27 Samsung Electronics Co., Ltd. Apparatus and method for encoding and decoding channel in a communication system using low-density parity-check codes
US8832518B2 (en) * 2008-02-21 2014-09-09 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
CN101242188B (zh) * 2008-03-10 2011-05-11 清华大学 基于哈密尔顿图的低密度奇偶校验码的纠错编码方法
US20090319860A1 (en) * 2008-06-23 2009-12-24 Ramot At Tel Aviv University Ltd. Overcoming ldpc trapping sets by decoder reset
US8370711B2 (en) * 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
CN101420408B (zh) * 2008-10-27 2010-10-27 宁波大学 抗干扰数字电视地面广播发射机调制方法
US8654834B2 (en) * 2009-01-06 2014-02-18 Electronics And Telecommunications Research Institute Method for tuning coding rate and applying unequal error protection for adaptive video transmission, and video transmission/reception apparatus using the method
US20100162078A1 (en) * 2009-03-04 2010-06-24 Comtech Ef Data Corp. Telecommunication system and related methods
JP5881930B2 (ja) * 2009-05-13 2016-03-09 三菱電機株式会社 誤り訂正符号化装置および誤り訂正復号装置
CN102460977A (zh) 2009-05-27 2012-05-16 诺沃尔赛特有限公司 具有迭代调度的ldpc码迭代解码
US9397699B2 (en) * 2009-07-21 2016-07-19 Ramot At Tel Aviv University Ltd. Compact decoding of punctured codes
US8516352B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8516351B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8375278B2 (en) * 2009-07-21 2013-02-12 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8631304B2 (en) 2010-01-28 2014-01-14 Sandisk Il Ltd. Overlapping error correction operations
US8782489B2 (en) 2010-02-18 2014-07-15 Hughes Network Systems, Llc Method and system for providing Low Density Parity Check (LDPC) encoding and decoding
US8402341B2 (en) * 2010-02-18 2013-03-19 Mustafa Eroz Method and system for providing low density parity check (LDPC) encoding and decoding
JP5601182B2 (ja) * 2010-12-07 2014-10-08 ソニー株式会社 データ処理装置、及びデータ処理方法
CN105634570B (zh) * 2010-12-10 2019-02-15 太阳专利托管公司 信号生成方法及信号生成装置
EP2477335B1 (en) * 2011-01-18 2019-05-29 Samsung Electronics Co., Ltd. Apparatus and method for transmitting and reveiving data in communication/broadcasting system
US8667360B2 (en) * 2011-07-01 2014-03-04 Intel Corporation Apparatus, system, and method for generating and decoding a longer linear block codeword using a shorter block length
KR101791477B1 (ko) * 2011-10-10 2017-10-30 삼성전자주식회사 통신/방송 시스템에서 데이터 송수신 장치 및 방법
US8972834B2 (en) 2012-08-28 2015-03-03 Hughes Network Systems, Llc System and method for communicating with low density parity check codes
US9264182B2 (en) 2012-09-13 2016-02-16 Novelsat Ltd. Iterative receiver loop
US9021328B2 (en) 2013-01-15 2015-04-28 International Business Machines Corporation Shared error protection for register banks
US9041428B2 (en) 2013-01-15 2015-05-26 International Business Machines Corporation Placement of storage cells on an integrated circuit
US9201727B2 (en) 2013-01-15 2015-12-01 International Business Machines Corporation Error protection for a data bus
US9043683B2 (en) * 2013-01-23 2015-05-26 International Business Machines Corporation Error protection for integrated circuits
US9294131B2 (en) 2013-02-10 2016-03-22 Hughes Network Systems, Llc Apparatus and method for improved modulation and coding schemes for broadband satellite communications systems
US8887024B2 (en) 2013-02-10 2014-11-11 Hughes Network Systems, Llc Apparatus and method for improved modulation and coding schemes for broadband satellite communications systems
US9246634B2 (en) 2013-02-10 2016-01-26 Hughes Network Systems, Llc Apparatus and method for improved modulation and coding schemes for broadband satellite communications systems
US9203431B2 (en) 2013-03-15 2015-12-01 Hughes Networks Systems, Llc Low density parity check (LDPC) encoding and decoding for small terminal applications
KR102104937B1 (ko) * 2013-06-14 2020-04-27 삼성전자주식회사 Ldpc 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법
CN104518846B (zh) * 2013-09-29 2018-02-13 中国科学院上海高等研究院 基于bch码与长ldpc码级联的信令编码方法及***
EP2858249A1 (en) * 2013-10-07 2015-04-08 Electronics and Telecommunications Research Institute Low density parity check encoder
JP2015156533A (ja) * 2014-02-19 2015-08-27 ソニー株式会社 データ処理装置、及び、データ処理方法
KR101776275B1 (ko) 2014-02-19 2017-09-07 삼성전자주식회사 송신 장치 및 그의 인터리빙 방법
US10326471B2 (en) * 2014-05-22 2019-06-18 Electronics And Telecommunications Research Institute Bit interleaver for low-density parity check codeword having length of 16200 and code rate of 3/15 and quadrature phase shift keying, and bit interleaving method using same
US9490846B2 (en) * 2014-08-14 2016-11-08 Electronics And Telecommunications Research Institute Low density parity check encoder having length of 16200 and code rate of 3/15, and low density parity check encoding method using the same
TWI557747B (zh) * 2015-02-13 2016-11-11 瑞昱半導體股份有限公司 記憶體控制模組與方法以及錯誤更正碼編/解碼電路與方法
WO2018084735A1 (en) * 2016-11-03 2018-05-11 Huawei Technologies Co., Ltd. Efficiently decodable qc-ldpc code
DE102016222007B4 (de) 2016-11-09 2018-07-12 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Übertragen von Daten
EP3669460A4 (en) * 2017-08-18 2021-05-19 Nokia Solutions and Networks Oy USING LDPC BASIC GRAPHICS FOR NR
US11223372B2 (en) 2019-11-27 2022-01-11 Hughes Network Systems, Llc Communication throughput despite periodic blockages
CN113708776B (zh) * 2020-05-20 2023-06-09 中国科学院上海高等研究院 基于ldpc码的编码方法、***、介质及装置
CN113708777B (zh) * 2020-05-20 2023-06-13 中国科学院上海高等研究院 基于ldpc码的编码方法、***、介质及装置
US11838127B2 (en) 2022-03-11 2023-12-05 Hughes Network Systems, Llc Adaptive satellite communications
CN115314157B (zh) * 2022-07-19 2023-10-24 烽火通信科技股份有限公司 一种以太网成帧方法及装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2799592B1 (fr) * 1999-10-12 2003-09-26 Thomson Csf Procede de construction et de codage simple et systematique de codes ldpc
DE60040805D1 (de) * 1999-12-20 2008-12-24 Research In Motion Ltd Hybrid-wiederholungsaufforderungsystem und -verfahren
US20020051501A1 (en) * 2000-04-28 2002-05-02 Victor Demjanenko Use of turbo-like codes for QAM modulation using independent I and Q decoding techniques and applications to xDSL systems
JP2001345716A (ja) 2000-06-02 2001-12-14 Oki Electric Ind Co Ltd 符号化通信システムおよびその伝送誤り低減方法
KR20100046063A (ko) 2000-06-16 2010-05-04 어웨어, 인크. Ldpc 코드형 변조를 위한 시스템 및 방법
WO2002099976A2 (en) * 2001-06-06 2002-12-12 Seagate Technology Llc A method and coding apparatus using low density parity check codes for data storage or data transmission
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6789227B2 (en) * 2001-07-05 2004-09-07 International Business Machines Corporation System and method for generating low density parity check codes using bit-filling
US6895547B2 (en) 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
JP3917624B2 (ja) 2002-07-03 2007-05-23 ヒューズ・エレクトロニクス・コーポレーション 低密度パリティチェック(ldpc)デコーダにおける経路指定方法およびシステム
US6829308B2 (en) 2002-07-03 2004-12-07 Hughes Electronics Corporation Satellite communication system utilizing low density parity check codes
US7020829B2 (en) 2002-07-03 2006-03-28 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes
US20040019845A1 (en) 2002-07-26 2004-01-29 Hughes Electronics Method and system for generating low density parity check codes
US7864869B2 (en) 2002-07-26 2011-01-04 Dtvg Licensing, Inc. Satellite communication system utilizing low density parity check codes
US7395487B2 (en) 2002-08-15 2008-07-01 Broadcom Corporation Common circuitry supporting both bit node and check node processing in LDPC (Low Density Parity Check) decoder
US7409628B2 (en) 2002-08-15 2008-08-05 Broadcom Corporation Efficient design to implement LDPC (Low Density Parity Check) decoder
CN1185796C (zh) 2002-11-15 2005-01-19 清华大学 改进的非规则低密度奇偶校验码纠错译码方法
US7222284B2 (en) * 2003-06-26 2007-05-22 Nokia Corporation Low-density parity-check codes for multiple code rates
US7334181B2 (en) 2003-09-04 2008-02-19 The Directv Group, Inc. Method and system for providing short block length low density parity check (LDPC) codes
US7376883B2 (en) 2003-10-27 2008-05-20 The Directv Group, Inc. Method and system for providing long and short block length low density parity check (LDPC) codes
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
US8261152B2 (en) * 2007-09-10 2012-09-04 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding/decoding in communication system using variable-length LDPC codes
TWI497920B (zh) * 2007-11-26 2015-08-21 Sony Corp Data processing device and data processing method

Also Published As

Publication number Publication date
CA2486048A1 (en) 2005-04-27
KR100686660B1 (ko) 2007-02-27
US20050091570A1 (en) 2005-04-28
US20090158117A1 (en) 2009-06-18
US20080065972A1 (en) 2008-03-13
DE602004003324T2 (de) 2007-05-31
HK1077416A1 (en) 2006-02-10
EP1528686B1 (en) 2006-11-22
CN1625058A (zh) 2005-06-08
KR20050040116A (ko) 2005-05-03
CN100449947C (zh) 2009-01-07
EP1528686B9 (en) 2015-09-02
ATE346425T1 (de) 2006-12-15
DE602004003324D1 (de) 2007-01-04
CA2486048C (en) 2008-05-20
JP3990396B2 (ja) 2007-10-10
US7483496B2 (en) 2009-01-27
EP1528686A1 (en) 2005-05-04
US7376883B2 (en) 2008-05-20
JP2005136989A (ja) 2005-05-26
US8069393B2 (en) 2011-11-29
DK1528686T3 (da) 2007-03-12

Similar Documents

Publication Publication Date Title
ES2273177T3 (es) Metodo y aparato para codificar codigos de comprobacion de paridad de baja densidad (ldpc) en bloques largos y cortos.
ES2300716T3 (es) Metodo y sistema para la codificacion de codigos de verificacion de paridad de baja densidad (ldpc) de longitud de bloque corto.
ES2282671T3 (es) Codificacion de codigos de comprobacion de paridad de baja densidad (ldpc) utilizando una matriz de comprobacion de paridad estructurada.
ES2285049T3 (es) Metodo y sistema para generar codigos de comprobacion de paridad de baja densidad (ldpc).
US7234098B2 (en) Method and apparatus for providing reduced memory low density parity check (LDPC) codes
CA2685463C (en) Method and system for providing short block length low density parity check (ldpc) codes in support of broadband satellite applications
EP3136608B1 (en) Method and system for providing low density parity check (ldpc) encoding and decoding
US8782489B2 (en) Method and system for providing Low Density Parity Check (LDPC) encoding and decoding
JP2004064757A (ja) 低密度のパリティチェックコードを使用する衛星通信システム
KR102557432B1 (ko) 길이가 16200이며, 부호율이 3/15인 ldpc 부호어 및 16-심볼 맵핑에 상응하는 bicm 수신 장치 및 방법