ES2400950T3 - Construcción de códigos para códigos LDPC acortados irregulares con buen rendimiento - Google Patents

Construcción de códigos para códigos LDPC acortados irregulares con buen rendimiento Download PDF

Info

Publication number
ES2400950T3
ES2400950T3 ES05747940T ES05747940T ES2400950T3 ES 2400950 T3 ES2400950 T3 ES 2400950T3 ES 05747940 T ES05747940 T ES 05747940T ES 05747940 T ES05747940 T ES 05747940T ES 2400950 T3 ES2400950 T3 ES 2400950T3
Authority
ES
Spain
Prior art keywords
columns
weight
column weight
code
matrix
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
ES05747940T
Other languages
English (en)
Inventor
Yufei Blankenship
Brian K. Classon
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.)
Motorola Mobility LLC
Original Assignee
Motorola Mobility LLC
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=35310751&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2400950(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Motorola Mobility LLC filed Critical Motorola Mobility LLC
Application granted granted Critical
Publication of ES2400950T3 publication Critical patent/ES2400950T3/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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • 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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Dc Digital Transmission (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un método para codificar que genera bits de comprobación de paridad (p0, ..., pm-1) basándose en unconjunto de símbolos de comprobación de paridad de baja densidad actual s>=(s0, ..., sk-L-1), comprendiendo elmétodo las etapas de: adquirir un valor L; obtener el conjunto de símbolos actual s >= (s0, ..., sk-L-1) de longitud (k-L); obtener un vector s de información relleno con ceros de longitud k mediante rellenando con ceros del conjunto desímbolos actual con L ceros, donde L>0; utilizar una matriz H y el vector s de información relleno mediante rellenado con ceros para determinar los bits decomprobación de paridad, donde H comprende una sección H1 y una sección H2 y H1 tiene el tamaño m por k y H2tiene el tamaño m por m; y transmitir los bits de comprobación de paridad junto con el conjunto de símbolos actual s >= (s0, ..., sk-L-1);caracterizado por que H1 consiste en dos sub-matrices; comprendiendo una de las dos sub-matrices columnas que tienen un primer peso de columna y columnas que tienenun segundo peso de columna, siendo el primer peso de columna diferente del segundo peso de columna, estandolas columnas del primer peso de columna y las columnas del segundo peso de columna substancialmenteentrelazados en la sub-matriz; y comprendiendo la otra de las dos sub-matrices columnas que tienen el primer peso de columna y columnas quetienen el segundo peso de columna, estando las columnas del primer peso de columna y las columnas del segundopeso de columna substancialmente entrelazados en la sub-matriz.

Description

Construcción de códigos para códigos LDPC acortados irregulares con buen rendimiento
Campo de la Invención
La presente invención se refiere generalmente a la codificación de datos y en particular, a un método para codificar datos utilizando códigos de comprobación de paridad de baja densidad (LDPC – Low Density Parity Check, en inglés).
Antecedentes de la Invención
Un código de comprobación de paridad de baja densidad (LDPC - Low Density Parity Check, en inglés) se define mediante una matriz H de comprobación de paridad, que es una matriz binaria pseudoaleatoria de baja densidad. Por razones de implementación, una sola matriz H es a veces preferida aunque deben soportarse múltiples tasas de código y tamaños de bloque. En este caso, las múltiples tasas de código pueden ser obtenidas acortando un código de LDPC sistemático.
En un código sistemático que mapea k bits de información a n bits codificados, los primeros k bits de los bits codificados son los bits de información. Cuando se realiza el acortamiento, L de los bits de información son puestos a cero y los correspondientes ceros son eliminados de los bits codificados. El acortamiento es llevado a cabo típicamente (lógica o físicamente) poniendo los primeros L bits de información a cero. En algunos codificadores, los ceros directores no cambian el estado del codificador, para que los ceros no tengan que ser proporcionados al circuito de codificación. Para un código de LDPC, el acortamiento poniendo los primeros L bits de información a cero puede lograrse de dos maneras equivalentes. Primero, un vector de información de k bits puede ser puesto con L bits como cero, que se asume que están situados en las posiciones de los primeros L bits de información en lo que sigue sin que se pierda la generalidad. El vector de información de longitud k puede ser proporcionado al codificador (que puede estar basado en la matriz H de (n-k) por n no acortada o en la matriz generadora G de k por n equivalente), y los L ceros subsiguientemente separados de los bits codificados tras la codificación. En segundo lugar, un vector de información acortado puede ser pasado al codificador que codifica basándose en una matriz H de (n-k) por (n-L) acortada con las primeras L columnas eliminadas, o la matriz G de (k-L) por (n-L) acortada equivalente. No obstante, el código o los códigos de LDPC acortado o acortados resultante o resultantes, es probable que tenga o tengan un bajo rendimiento porque su distribución de peso puede ser inferior a un código particularizado diseñado para esa tasa de código y tamaño de bloque. No está claro cómo construir un código de LDPC acortado que mantenga un buen rendimiento.
El satélite de transmisión de video digital estándar (DVB-S2) utiliza códigos de LDPC, y define una matriz H para cada tasa de código deseada. El DVB-S2 define diez tasas de código de LDPC diferentes, 1/4, 1/3, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9 y 9/10, todas con una longitud de bloque codificado de n = 64800 bits. Para cada tasa de código, se especifica una matriz H de comprobación de paridad diferente – no se utiliza el acortamiento en el estándar. Como es conocido en el sector los códigos de LDPC irregulares ofrecen un mejor rendimiento que los códigos de LDPC regulares. El término regular cuando se utiliza para un código de LDPC significa que todas las filas de H tienen el mismo número de 1’s, y todas las columnas de H tienen un mismo número de 1’s, donde el número de 1’s en una fila o columna se denomina también el peso de la fila o columna. Si no el código de LDPC es considerado irregular. En un sentido más estricto, el término regular puede ser también aplicado bien a las filas o bien a las columnas (es decir, una matriz puede tener pesos de columna regulares, pero pesos de fila irregulares), y puede ser también aplicado a una sub-matriz de una matriz (por ejemplo, una sub-matriz de una matriz es regular cuando todas las columnas de la sub-matriz tienen el mismo peso de columna y todas las filas de la sub-matriz tienen el mismo peso de fila). Debido a que se desean códigos irregulares para un buen rendimiento, el DVB-S2 define múltiples matrices H, cada una con una distribución de peso deseada para un buen rendimiento y esa tasa de código. Los números de columnas de cada peso se muestran en la Tabla 1 para todas las tasas de código del DVB-S2.
Tabla 1. Número de Columnas de Varios Pesos en DVB.
Tasa de Código
13 12 11 8 4 3 2 1
1/4
5400 10800 48599 1
1/3
7200 14400 43199 1
1/2
12960 19440 32399 1
3/5
12960 25920 25919 1
2/3
4320 38880 21599 1
3/4
5400 43200 16199 1
4/5
6480 45360 12959 1
5/6
5400 48600 10799 1
8/9
7200 50400 7199 1
9!10
6480 51840 6479 1
Algunos diseños de código, tales como el código de LDPC de Intel propuesto para el para 802.16, sólo tienen una matriz H y utilizan el acortamiento para obtener otras tasas de código, pero los códigos tras el acortamiento no se comportan muy bien. La porción de H correspondiente a los bits de información (denotada por H1) es regular (y por lo tanto toda la matriz se denomina a veces semi-regular), y tras el acortamiento la distribución de peso del código es mala comparada con un buen diseño. Los buenos diseños de LDPC tienden a no tener un peso de columna regular en H1.
LIY et al: “Design of Efficiently Encodable Moderate-Length High-Rate Irregular LDPC Codes” IEEE TRANSACTIONS ON COMUNICATIVOS, IEEE SERVICE CENTER, PISCATA WAY, NJ, US, vol. 52, nº 4, 1 de Abril de 2004 (2004-04-01), páginas 564-571, XP011111852 ISSN: 0090-6778, describe métodos de acuerdo con el preámbulo de la reivindicación 1.
TIFFANY JING LI, RUIYUAN HU: “Robust Distributed Source Encoding using LDPC Codes” Marzo de 2004 (200403), página 1, XP002506615 Lehigh University, muestra un código de LDPC acortado.
Breve Descripción de los Dibujos
La FIG. 1 muestra una distribución de peso de columna de una matriz de comprobación de paridad con peso de columna no-entrelazada en H1, es decir, las columnas del mismo peso están agrupadas. El tamaño del código es (2000, 1600).
La FIG. 2 muestra una distribución de peso de columna de una matriz de comprobación de paridad con peso de columna entelazado en H1. El tamaño del código es (2000, 1600).
La FIG. 3 muestra el rendimiento de FER de códigos no acortados de tamaño (2000, 1600).
La FIG. 4 muestra el rendimiento de FER de los códigos de (1200, 800) acortados de los códigos de (2000, 1600) en 800 bits.
La FIG. 5 muestra el rendimiento de FER de los códigos de (800, 400) acortados de los códigos de (2000, 1600) en 1200 bits.
Descripción Detallada de los Dibujos
Esta invención propone y utiliza una matriz H irregular que se comporta bien no acortada o acortada. La matriz y sus versiones acortadas pueden ser utilizadas para codificación y descodificación. voy aquí (0009
Para un código que toma k bits de información y genera n bits de código, la matriz H se divide en dos partes H = [H1 H2], donde H1 tiene un tamaño de m por k y H2 tiene un tamaño de m por m, m=n-k. H1 corresponde a los bits de información no acortados y H2 corresponde a los bits de paridad, de manera que
. Cuando se acortan las primeras L posiciones de s, las primeros L columnas de H1 son esencialmente eliminadas.
H1 es determinística porque está definida una estructura de peso de columna particular. H2 es no determinística porque puede ser regular o irregular, tener cualquier estructura o estar construida aleatoriamente. Una H2 preferida puede ser similar a la descrita en la Solicitud de Patente de US Nº 10/839995 “Method And Apparatus For Encoding And Decoding Data” en la propuesta de LDPC de Intel para 802.16 (aproximadamente triangular inferior, teniendo todas las columnas peso 2 excepto la última columna que tiene peso 1, los 1’s de una columna están sobre cada uno de ellos, el 1 superior está en la diagonal. Matemáticamente la matriz H2 de m por m se describe siendo la entrada de la fila i columna j 1 si i=j, e i=j+1, 0<=i<=m-1, 0<=j<=m-1.)
Un ejemplo de la matriz H2 es:
. Donde h es peso desigual > 2, y puede ser h=[1 0 0 0 1 0 0 0 1 0 … 0]T. Otra realización de ejemplo de H2 es
. 5
Para códigos irregulares que tienen un mejor rendimiento que los códigos regulares, las columnas de varios pesos pueden estar dispuestas en cualquier orden sin afectar al rendimiento, puesto que permutar el orden de los bits de código no afecta al rendimiento en la corrección de error. Los pesos de columna están por tanto típicamente distribuidos sin ningún orden particular. Por ejemplo, todas las columnas del mismo peso pueden estar agrupadas. Cuando las L columnas directoras de H son efectivamente eliminadas mediante acortamiento, los pesos restantes pueden resultar en un bajo rendimiento.
Para resolver el problema, la sección determinística H1 comprende una pluralidad de sub-matrices que tienen cada una pesos de columna substancialmente entrelazados entre las sub-matrices. El entrelazado entre sub-matrices se basa en una distribución de peso de columna deseada para las sub-matrices. El entrelazado entre las sub-matrices es uniforme si la distribución de peso de columna deseada es la misma para todas las sub-matrices. El entrelazado entre las matrices es no uniforme si la distribución de peso de columna deseada es diferente para dos sub-matrices. Dentro de una sub-matriz, las columnas de diferentes pesos pueden ser entrelazadas de manera que las columnas de diferente peso se extiendan predominantemente de manera uniforme sobre la sub-matriz.
En esta invención, las columnas de diferentes pesos están uniforme y no uniformemente entrelazada entre submatrices, de manera que la matriz acortada resultante puede tener una distribución de peso mucho mejor, y por lo tanto un mejor rendimiento en la corrección de error. Sea H1 irregular porque tiene dos o más pesos de columna distintos (por ejemplo, las de 3 y 10 en cada columna de H1). Las columnas de H1 están también divididas en dos secciones (sub-matrices), H1a y H1b, donde H1a es una matriz de m por L (es decir, las primeras L columnas de H1) y H1b es una matriz de m por (k-L) (es decir, las restantes k-L columnas de H1). Las columnas de diferentes pesos están entrelazadas entre H1a y H1b, de manera que tras el acortamiento de L bits (es decir, eliminando efectivamente H1a de H); el código resultante con [H1b H2] tiene una buena distribución de peso.
Cuando se codifica, el codificador primero pone como prefijo L ceros al conjunto de símbolos actual de longitud (k-L). A continuación el vector de información rellenado con ceros s=[0L sb], donde sb tiene una longitud k-L, es codificado utilizando H como si no estuviese acortado para generar el vector de bit de paridad p (de longitud m). Tras eliminar los ceros puestos como prefijo del conjunto de símbolos actual, el vector de bits de código x=[sb p] es transmitido sobre el canal. Este procedimiento de codificación es equivalente a la codificación del vector de información sb utilizando la matriz acortada [H1b H2] para determinar los bits de comprobación de paridad.
El ejemplo simple fue descrito con dos regiones de H1, pero H1 puede estar también subdividido con las columnas entrelazadas sobre regiones más pequeñas. El entrelazado del peso de columna es llevado a cabo de manera que tras el acortamiento de las matrices de comprobación de paridad resultantes todas tengan una buena distribución de peso.
El entrelazado entre sub-matrices puede ser llevado a cabo de una manera uniforme o no uniforme. El entrelazado uniforme tiene una distribución de peso deseada que preserva la relación de peso de columna aproximada de H1 para cada región de H1. Por ejemplo, si H1 tiene aproximadamente 25% de columnas de peso x1 y 75% de peso x2, H1a y H1b pueden tener aproximadamente 25% de columnas de peso x1 y 75% de peso x2 entrelazando una columna de peso x1 con tres columnas de peso x2 en toda H1. Alternativamente, las columnas pueden disponerse colocando aproximadamente el redondeo de (0,25*ancho(H1a)) columnas de peso x1 seguidas por el redondeo de (0,75*ancho(H1a) columnas de peso x2 en H1a. En los dos casos, H1b tendrá una distribución de peso de columna como H1a, y la disposición de las columnas en H1b no afecta al rendimiento a menos que el código esté también acortado (es decir, que H1b esté dividido en regiones adicionales). El entrelazado uniforme generalmente resulta en distribuciones de peso por debajo de las óptimas para los códigos acortados.
El entrelazado no uniforme intenta coincidir con una distribución de peso deseada para cada región de H1. Por ejemplo, si H1 tiene una distribución de peso de 25% de peso x1 y 75% de peso x2, pero un 50% del código acortado con H1b tiene una distribución de peso deseada de 50% de peso x1 y 50% de peso x2, H1b puede lograr la distribución deseada mediante el entrelazado no uniforme de las columnas entre H1a y H1b. En este caso, aproximadamente el redondeo de (0,25*ancho (H1) – 0,5*ancho (H1b)) columnas de peso x1 y aproximadamente el redondeo de (0,75*ancho(H1) – 0,5*ancho (H1b)) columnas de peso x2 están situadas en H1a, y H1b tiene las columnas con la distribución de peso deseada de 0,5*ancho(H1b) de peso x1 y 0,5*ancho (H1b) de peso x2. Una distribución no uniforme entrelazada se logra entrelazando aproximadamente una columna de peso x2 con cero columnas de peso x1 en H1a (es decir, toda la H1a son columnas de peso x2) y (si se desea) alternando aproximadamente una columna de peso x2 con una columna de peso x1 en H1b. Si tienen que soportarse múltiples tasas de código acortado, entonces el entrelazado no uniforme con columnas de varios pesos distribuidas aleatoriamente sobre la sub-matriz resulta deseable para proporcionar un menor rendimiento para todas las tasas de códigos acortados.
Algoritmo de Pseudo Código
[El siguiente Matlab se incluye para ilustrar cómo puede encontrarse una buena distribución de peso de columna
para una tasa de código dada y un tamaño de código utilizando las distribuciones de peso deseadas. % obtener distribución de grado optimizada, dv = máximo peso de columna, tasa es la tasa de código vDeg = obtener DegDist(tasa, dv) (siendo Deg la abreviatura de Degree – Grado, en inglés);
5 % obtener el número de nodos de variable de cada peso, N es el número de columnas en H vNodos = redondeo de (N * vDeg(2,:)./vDeg(1,:)/suma de (vDeg(2,:)./vDeg(1:))); función [vDeg] = obtenerDegDist(tasa, dv) % vDeg(1,i): col peso i % vDeg(2,i): fracción de bordes ligados a la variable nodo de peso vDeg(1,i) 10 % vDeg(3,i): fracción de la variable nodos de peso vDeg(1,i)
El siguiente código de Matlab ilustra cómo relacionarse dentro de una sub-matriz. Debe observarse que s es el vector de pesos de columna, y z1 y z2 dependen de la distribución de peso de columna particular dentro de la submatriz.
15 temp = [s(1:longitud1) –unos(1, longitud_total-longitud1)]; sub-matriz 1 = reconformar(reconformar(temp, z1, z2)’,1, z1*z2)); idx = encontrar (sub-matriz1<0); sub-matriz1(idx) = []; Ejemplo
20 Se utiliza un ejemplo para ilustrar la propuesta descrita anteriormente. Para un código de tasa 4/5 de tamaño (2000, 1600), se encuentra una matriz H con pesos de columna de 2, 3 y 10. La distribución de peso de columna de la matriz de comprobación de paridad no entrelazada Hno está representada en la Figura 1. Tras el entrelazado de columnas de la porción H1, la distribución de peso de columna de la matriz de comprobación de paridad resultante Hinter (siendo inter la abreviatura de interleaved – entrelazada, en inglés) está representada en la Figura 2, y se lista en el Apéndice A. La matriz Hinter es la misma que la matriz Hno excepto que se introduce la permutación de columnas.
Cuando se lleva a cabo el acortado en la Hinter, la matriz resultante mantiene aún buenas distribuciones de peso de columna. Como ejemplo, las distribuciones de peso de objetivo dadas de un código de tasa 2/3,
5 vDeg = [2 0.1666670000 (0.33000059795989)
3 0.3679650000 (0.48571370868582)
10 0.4653680000 (0.18428569335429)];
donde la primera columna indica el peso de columna deseado, la tercera columna indica el número de columnas con el peso dado, el algoritmo de inserción no uniforme proporciona las distribuciones de peso de columna del código de
10 tasa 2/3 derivado en la Tabla 2. Un procedimiento similar se utiliza para encontrar la distribución de peso de columna deseada del código de tasa 1/2 (tras el acortamiento del código de tasa 4/5 original) en la Tabla 2. Las distribuciones de peso para Hno y Hinter_u (con entrelazado uniforme) vienen dadas en las Tablas 3 y 4, respectivamente. Debe observarse que en todos los casos H2 tiene 399 columnas de peso 2 y una columna de peso 3, y H1 tiene una columna de peso 2.
15 Tabla 2. Número de Columnas de Varios Pesos en la Hinter de tasa 4/5 y sus códigos derivados.
Tasa de Código
10 3 2
1/2
191 217 400
2/3
221 583 400
4/5
343 1257 400
Tabla 3. Número de Columnas de Varios Pesos en la Hno de tasa 4/5 y sus códigos derivados.
Tasa de Código
10 3 2
1/2
0 400 400
2/3
0 800 400
4/5
343 1257 400
Tabla 4. Número de Columnas de Varios Pesos en la Hinter_u de tasa 4/5 y sus códigos derivados.
Tasa de Código
10 3 2
1/2
84 316 400
2/3
168 632 400
4/5
343 1257 400
20 Estudios de simulaciones muestran que el entrelazado no uniforme proporciona códigos de LDPC con buen rendimiento no acortados o acortados. El rendimiento del código de tasa 4/5 no acortado se muestra en la Figura 3, en comparación con el diseño de código propuesto para 802.16. Debe observarse que sin acortamiento, el diseño de código irregular tiene el mismo rendimiento con o sin entrelazado de peso de columna. La simulación muestra que la
25 Hno y la Hinter se comportan 0,2 dB mejor que el diseño propuesto para 802.16 (Intel) en FER=10-2.
Cuando se acorta el código en L=800 posiciones de información, las 800 columnas directoras de Hno (o de Hinter) son esencialmente eliminadas, resultando en un código de tasa 2/3. El rendimiento de los códigos acortados se muestra en la Figura 4, en comparación con el diseño propuesto para 802.16 acortado de manera similar. La simulación muestra que sin entrelazado, el rendimiento del código tras el acortamiento es inferior al diseño propuesto para
802.16 (Intel) debido a la mala distribución del peso tras el acortamiento. No obstante, tras el entrelazado, el rendimiento del código es 0,25 dB mejor que el diseño propuesto para 802.16 en FER=10-2.
De manera similar, el código puede ser acortado más. Cuando se acorta el código original en L=1200 posiciones de información, las 1200 columnas directoras de Hno (o de Hinter) son esencialmente eliminadas, resultando en un código de tasa 1/2. El rendimiento de los códigos acortados se muestra en la Figura 5, en comparación con el diseño propuesto para 802.16 acortado de manera similar. La simulación muestra que sin entrelazado, el rendimiento del código tras el acortamiento es ligeramente inferior al diseño propuesto para 802.16 debido a la mala distribución de peso tras el acortamiento. No obstante, tras el entrelazado, el rendimiento del código es 0,35 dB mejor que el diseño propuesto para 802.16 en FER=10-2.
La Figura 1 muestra la distribución de peso de columna en la matriz de comprobación de paridad con peso de columna no entrelazado en H1, es decir, las columnas del mismo peso están agrupadas. El tamaño del código es (2000, 1600).
La Figura 2 muestra la distribución de peso de columna de la matriz de comprobación de paridad con peso de columna entrelazado en H1. El tamaño del código es (2000, 1600).
La Figura 3 muestra el rendimiento de FER de los códigos no acortados de tamaño (2000, 1600). Los dos códigos no acortados son: (a). el diseño propuesto para 802.16 (Intel): (b). El diseño de código irregular. Debe observarse que sin acortamiento, el diseño de código irregular tiene el mismo rendimiento con o sin entrelazado de peso de columna.
La Figura 4 muestra el rendimiento de FER de los códigos de (1200, 800) acortados de los códigos de (2000, 1600) en 800 bits. Los tres códigos no acortados son (a). el diseño propuesto para 802.16 (Intel); (b). El diseño de código irregular sin entrelazado de peso de columna; (c). El diseño de código irregular con entrelazado de peso de columna.
La Figura 5 muestra el rendimiento de FER de los códigos de (800, 400) acortados de los códigos de (2000, 1600) en 1200 bits. Los tres códigos no acortados son: (a). el diseño propuesto para 802.16 (Intel); (b). el diseño de código irregular sin entrelazado de peso de columna; (c). el diseño de código irregular con entrelazado de peso de columna.
Apéndice: Distribución de Peso de Columna Entrelazado
Presentada a continuación se encuentra la distribución de peso de columna de la matriz H de (2000, 1600) irregular tras el entrelazado de la sección H1. El peso de columna de cada columna se muestra empezando desde la primera columna.

Claims (3)

  1. REIVINDICACIONES
    1. Un método para codificar que genera bits de comprobación de paridad (p0, …, pm-1) basándose en un conjunto de símbolos de comprobación de paridad de baja densidad actual s=(s0, …, sk-L-1), comprendiendo el método las etapas de:
    5 adquirir un valor L;
    obtener el conjunto de símbolos actual s = (s0, …, sk-L-1) de longitud (k-L);
    obtener un vector s de información relleno con ceros de longitud k mediante rellenando con ceros del conjunto de símbolos actual con L ceros, donde L>0;
    utilizar una matriz H y el vector s de información relleno mediante rellenado con ceros para determinar los bits de
    10 comprobación de paridad, donde H comprende una sección H1 y una sección H2 y H1 tiene el tamaño m por k y H2 tiene el tamaño m por m; y
    transmitir los bits de comprobación de paridad junto con el conjunto de símbolos actual s = (s0, …, sk-L-1);
    caracterizado por que H1 consiste en dos sub-matrices;
    comprendiendo una de las dos sub-matrices columnas que tienen un primer peso de columna y columnas que tienen
    15 un segundo peso de columna, siendo el primer peso de columna diferente del segundo peso de columna, estando las columnas del primer peso de columna y las columnas del segundo peso de columna substancialmente entrelazados en la sub-matriz; y
    comprendiendo la otra de las dos sub-matrices columnas que tienen el primer peso de columna y columnas que tienen el segundo peso de columna, estando las columnas del primer peso de columna y las columnas del segundo 20 peso de columna substancialmente entrelazados en la sub-matriz.
  2. 2. El método de la reivindicación 1, en el que:
  3. 3. El método de la reivindicación 1, en el que:
    .
ES05747940T 2004-05-14 2005-05-11 Construcción de códigos para códigos LDPC acortados irregulares con buen rendimiento Active ES2400950T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US57128004P 2004-05-14 2004-05-14
US571280P 2004-05-14
US10/874,611 US7165205B2 (en) 2004-05-14 2004-06-23 Method and apparatus for encoding and decoding data
US874611 2004-06-23
PCT/US2005/016410 WO2005114418A2 (en) 2004-05-14 2005-05-11 Code construction for irregular shortened ldpc codes with good performance

Publications (1)

Publication Number Publication Date
ES2400950T3 true ES2400950T3 (es) 2013-04-15

Family

ID=35310751

Family Applications (1)

Application Number Title Priority Date Filing Date
ES05747940T Active ES2400950T3 (es) 2004-05-14 2005-05-11 Construcción de códigos para códigos LDPC acortados irregulares con buen rendimiento

Country Status (11)

Country Link
US (1) US7165205B2 (es)
EP (4) EP2405581B1 (es)
JP (1) JP4558037B2 (es)
KR (1) KR100861893B1 (es)
CN (2) CN1934789B (es)
CA (1) CA2564395C (es)
ES (1) ES2400950T3 (es)
IL (1) IL177439A (es)
PL (1) PL1747613T3 (es)
TW (1) TWI348831B (es)
WO (1) WO2005114418A2 (es)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE556491T1 (de) * 2002-07-03 2012-05-15 Dtvg Licensing Inc Methode und verfahren für die speicherverwaltung in low density parity check (ldpc) decodern
US7020829B2 (en) * 2002-07-03 2006-03-28 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes
US7577207B2 (en) * 2002-07-03 2009-08-18 Dtvg Licensing, Inc. Bit labeling for amplitude phase shift constellation used with low density parity check (LDPC) codes
US7864869B2 (en) 2002-07-26 2011-01-04 Dtvg Licensing, Inc. Satellite communication system utilizing low density parity check codes
US20040019845A1 (en) * 2002-07-26 2004-01-29 Hughes Electronics Method and system for generating low density parity check codes
GB2454193B (en) 2007-10-30 2012-07-18 Sony Corp Data processing apparatus and method
WO2006011744A2 (en) * 2004-07-27 2006-02-02 Lg Electronics Inc. Method of encoding and decoding using low density parity check code
KR101208546B1 (ko) * 2004-08-09 2012-12-05 엘지전자 주식회사 저밀도 패리티 체크 행렬을 이용한 부호화 및 복호화 방법
US7698623B2 (en) 2004-08-13 2010-04-13 David Hedberg Systems and methods for decreasing latency in a digital transmission system
CN101341659B (zh) * 2004-08-13 2012-12-12 Dtvg许可公司 用于多输入多输出通道的低密度奇偶校验码的码设计与实现的改进
US20060218459A1 (en) * 2004-08-13 2006-09-28 David Hedberg Coding systems and methods
JP2008515342A (ja) * 2004-10-01 2008-05-08 トムソン ライセンシング 低密度パリティ検査(ldpc)復号器
EP1677450A3 (en) * 2004-12-31 2008-09-24 Samsung Electronics Co., Ltd. HARQ apparatus and method using an LDPC code
US7668248B2 (en) * 2005-10-19 2010-02-23 Texas Instruments Incorporated High-performance LDPC coding for digital communications in a multiple-input, multiple-output environment
US7707479B2 (en) 2005-12-13 2010-04-27 Samsung Electronics Co., Ltd. Method of generating structured irregular low density parity checkcodes for wireless systems
KR20070063851A (ko) * 2005-12-15 2007-06-20 삼성전자주식회사 패리티 검사 행렬, 패리티 검사 행렬 생성 방법, 인코딩방법 및 에러 정정 장치
JP4558638B2 (ja) * 2005-12-15 2010-10-06 富士通株式会社 符号器および復号器
US7493548B2 (en) * 2006-02-06 2009-02-17 Motorola, Inc Method and apparatus for encoding and decoding data
CN101162907B (zh) * 2006-10-10 2010-11-03 华为技术有限公司 一种利用低密度奇偶校验码实现编码的方法及装置
ES2562031T3 (es) * 2007-10-30 2016-03-02 Sony Corporation Aparato y método de procesamiento de datos
TW200947881A (en) * 2007-11-26 2009-11-16 Sony Corp Data processing device and data processing method
TWI538415B (zh) * 2007-11-26 2016-06-11 Sony Corp Data processing device and data processing method
TWI497920B (zh) * 2007-11-26 2015-08-21 Sony Corp Data processing device and data processing method
TWI459724B (zh) * 2007-11-26 2014-11-01 Sony Corp Data processing device and data processing method
TW200937872A (en) * 2007-11-26 2009-09-01 Sony Corp Data processing device and data processing method
TWI410055B (zh) * 2007-11-26 2013-09-21 Sony Corp Data processing device, data processing method and program product for performing data processing method on computer
TW200947880A (en) * 2007-11-26 2009-11-16 Sony Corp Data process device and data process method
TWI390856B (zh) * 2007-11-26 2013-03-21 Sony Corp Data processing device and data processing method
KR101503059B1 (ko) * 2008-02-26 2015-03-19 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치
TWI372523B (en) * 2008-11-14 2012-09-11 Realtek Semiconductor Corp Recording controller and decoder for parity-check code
KR101670511B1 (ko) * 2010-05-07 2016-10-28 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치
CN102394659B (zh) * 2011-08-04 2013-06-05 中国科学院上海微系统与信息技术研究所 Ldpc码校验矩阵构造方法及对应矩阵乘法运算装置
CN106462504B (zh) 2013-10-21 2023-09-01 Flc环球有限公司 最终级高速缓存系统和对应的方法
US11822474B2 (en) 2013-10-21 2023-11-21 Flc Global, Ltd Storage system and method for accessing same
US10097204B1 (en) * 2014-04-21 2018-10-09 Marvell International Ltd. Low-density parity-check codes for WiFi networks
CN104811266B (zh) * 2014-01-29 2018-01-23 上海数字电视国家工程研究中心有限公司 比特交织、解交织方法及对应的发射机、接收机
US9264074B2 (en) 2014-02-11 2016-02-16 Entropic Communications, Llc LDPC code matrices
WO2015168609A1 (en) 2014-05-02 2015-11-05 Marvell World Trade Ltd. Caching systems and methods for hard disk drives and hybrid drives
US10382064B2 (en) 2015-10-13 2019-08-13 SK Hynix Inc. Efficient LDPC encoder for irregular code
EP3807773B1 (en) 2018-06-18 2024-03-13 FLC Technology Group Inc. Method and apparatus for using a storage system as main memory
US11481471B2 (en) * 2019-08-16 2022-10-25 Meta Platforms, Inc. Mapping convolution to a matrix processor unit

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3697949A (en) * 1970-12-31 1972-10-10 Ibm Error correction system for use with a rotational single-error correction, double-error detection hamming code
US3697942A (en) * 1971-08-19 1972-10-10 Loren P Hocking Early warning brake fault device and system
US6141788A (en) * 1998-03-13 2000-10-31 Lucent Technologies Inc. Method and apparatus for forward error correction in packet networks
JP3833545B2 (ja) * 2002-02-13 2006-10-11 三菱電機株式会社 通信システム、受信機、送信機および通信方法
JP3893383B2 (ja) * 2002-02-28 2007-03-14 三菱電機株式会社 Ldpc符号用検査行列生成方法および検査行列生成装置
EP2348640B1 (en) * 2002-10-05 2020-07-15 QUALCOMM Incorporated Systematic encoding of chain reaction codes
CN1185796C (zh) * 2002-11-15 2005-01-19 清华大学 改进的非规则低密度奇偶校验码纠错译码方法
US7702986B2 (en) * 2002-11-18 2010-04-20 Qualcomm Incorporated Rate-compatible LDPC codes
KR100936022B1 (ko) * 2002-12-21 2010-01-11 삼성전자주식회사 에러 정정을 위한 부가정보 생성 방법 및 그 장치
KR100906474B1 (ko) * 2003-01-29 2009-07-08 삼성전자주식회사 저밀도 부가정보 발생용 매트릭스를 이용한 에러 정정방법 및그 장치
US6957375B2 (en) * 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
KR100996029B1 (ko) * 2003-04-29 2010-11-22 삼성전자주식회사 저밀도 패리티 검사 코드의 부호화 장치 및 방법
JP4224777B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
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
US7395495B2 (en) * 2004-01-12 2008-07-01 Intel Corporation Method and apparatus for decoding forward error correction codes
KR100659266B1 (ko) * 2004-04-22 2006-12-20 삼성전자주식회사 다양한 코드율을 지원하는 저밀도 패러티 검사 코드에 의한데이터 송수신 시스템, 장치 및 방법

Also Published As

Publication number Publication date
PL1747613T3 (pl) 2013-04-30
IL177439A (en) 2014-04-30
JP4558037B2 (ja) 2010-10-06
EP1747613A4 (en) 2009-01-21
EP1747613B1 (en) 2013-01-02
CN1934789A (zh) 2007-03-21
US7165205B2 (en) 2007-01-16
JP2007525931A (ja) 2007-09-06
KR20070012825A (ko) 2007-01-29
EP2405581B1 (en) 2018-07-11
WO2005114418A3 (en) 2006-05-18
EP2405581A1 (en) 2012-01-11
CN1934789B (zh) 2012-06-06
EP1747613A2 (en) 2007-01-31
EP2405582A1 (en) 2012-01-11
US20050257119A1 (en) 2005-11-17
TWI348831B (en) 2011-09-11
CA2564395C (en) 2009-07-07
EP2365640A1 (en) 2011-09-14
CN102647193B (zh) 2014-12-17
WO2005114418A2 (en) 2005-12-01
CA2564395A1 (en) 2005-12-01
CN102647193A (zh) 2012-08-22
KR100861893B1 (ko) 2008-10-09
TW200611497A (en) 2006-04-01
IL177439A0 (en) 2006-12-10

Similar Documents

Publication Publication Date Title
ES2400950T3 (es) Construcción de códigos para códigos LDPC acortados irregulares con buen rendimiento
ES2529182T3 (es) Diseño de LDPC estructurado con agrupación de filas de vector
TWI479807B (zh) Data processing device and data processing method
ES2273177T3 (es) Metodo y aparato para codificar codigos de comprobacion de paridad de baja densidad (ldpc) en bloques largos y cortos.
US9768806B2 (en) Parity check matrix generating method, encoding apparatus, encoding method, decoding apparatus and decoding method using the same
US20080065956A1 (en) Method and apparatus for encoding and decoding data
US8713399B1 (en) Reconfigurable barrel shifter and rotator
CN104779961B (zh) 一种ldpc结构、码字及对应的编码器、解码器和编码方法
KR102557432B1 (ko) 길이가 16200이며, 부호율이 3/15인 ldpc 부호어 및 16-심볼 맵핑에 상응하는 bicm 수신 장치 및 방법
US20080109618A1 (en) Parallel interleaving apparatus and method
JP6484041B2 (ja) 連接符号を用いた送信装置、受信装置及びチップ
CN105024703B (zh) 基于准循环的中短码长ldpc及编解码器和编码方法
CA2892107A1 (en) Bit interleaver for low-density parity check codeword having length of 16200 and code rate of 2/15 and 256-symbol mapping, and bit interleaving method using same
Yang et al. New research on unequal error protection (UEP) property of irregular LDPC codes
Conway et al. Quaternary constructions for the binary single-error-correcting codes of Julin, Best and others
Tseng et al. Low-complexity and piecewise systematic encoding of non-full-rank QC-LDPC codes
EP2037586A1 (en) Encoding method and device for Tail-biting Trellis LDPC codes
EP3771105B1 (en) Transmitter, receiver, communication system, and coding rate revision method
Paudel et al. An unequal error protection of quasi-cyclic low density parity check (QC-LDPC) codes based on combinatorial designs
CN104821830B (zh) 一种ldpc结构、码字及对应的编码器、解码器和编码方法
CN107276595A (zh) Ldpc码字及编码方法和编解码器
Boncalo et al. Memory efficient implementation of self-corrected min-sum LDPC decoder
Blaum et al. Soft decoding of several classes of array codes
CN105322970B (zh) 针对下一代无线广播的ldpc码字及编码方法和编解码器
US20190222230A1 (en) Systems and methods for an efficiently routable low-density parity-check (ldpc) decoder