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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1165—QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
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
La presente invención se refiere a sistemas de
comunicación y, más particularmente, a sistemas codificados.
Los sistemas de comunicación se sirven de la
codificación para garantizar una comunicación fiable a través de
canales de comunicación con ruido. 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.
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.
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.
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}:
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:
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
\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},
\hskip1cmi = 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},
\hskip1cmi = 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
\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).
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):
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
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,
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,
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,
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
;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,
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
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.
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)
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)
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 |
-
2004
- 2004-10-22 US US10/971,509 patent/US7376883B2/en active Active
- 2004-10-26 CA CA002486048A patent/CA2486048C/en active Active
- 2004-10-27 DK DK04256629T patent/DK1528686T3/da active
- 2004-10-27 EP EP04256629.9A patent/EP1528686B9/en active Active
- 2004-10-27 KR KR1020040086317A patent/KR100686660B1/ko active IP Right Grant
- 2004-10-27 CN CNB2004100471557A patent/CN100449947C/zh active Active
- 2004-10-27 AT AT04256629T patent/ATE346425T1/de not_active IP Right Cessation
- 2004-10-27 ES ES04256629T patent/ES2273177T3/es active Active
- 2004-10-27 DE DE602004003324T patent/DE602004003324T2/de active Active
- 2004-10-27 JP JP2004312709A patent/JP3990396B2/ja active Active
-
2005
- 2005-10-20 HK HK05109319.0A patent/HK1077416A1/xx unknown
-
2007
- 2007-11-09 US US11/938,071 patent/US7483496B2/en active Active
-
2009
- 2009-01-16 US US12/355,694 patent/US8069393B2/en active Active
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 수신 장치 및 방법 |