ES2788664T3 - Procedimiento de codificación, procedimiento de descodificación, dispositivo de codificación y dispositivo de descodificación para códigos LDPC estructurados - Google Patents

Procedimiento de codificación, procedimiento de descodificación, dispositivo de codificación y dispositivo de descodificación para códigos LDPC estructurados Download PDF

Info

Publication number
ES2788664T3
ES2788664T3 ES14882882T ES14882882T ES2788664T3 ES 2788664 T3 ES2788664 T3 ES 2788664T3 ES 14882882 T ES14882882 T ES 14882882T ES 14882882 T ES14882882 T ES 14882882T ES 2788664 T3 ES2788664 T3 ES 2788664T3
Authority
ES
Spain
Prior art keywords
adjacent pairs
matrix
base matrix
equal
mod
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
ES14882882T
Other languages
English (en)
Inventor
Jun Xu
Liguang Li
Zhifeng Yuan
Jin Xu
Kaibo Tian
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.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Application granted granted Critical
Publication of ES2788664T3 publication Critical patent/ES2788664T3/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
    • 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
    • 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/033Theoretical methods to calculate these checking codes
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • 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/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

Un procedimiento de codificación para códigos de comprobación de paridad de baja densidad estructurados, LDPC, que comprende: determinar (801) una matriz base MbxNb usada para codificar, donde la matriz base comprende un bloque A de Mbx(Nb-Mb) correspondiente a bits sistemáticos y un bloque B de MbxMb correspondiente a bits de comprobación, la matriz base tiene K0 pares adyacentes superiores e inferiores, los K0 pares adyacentes superiores e inferiores tienen K1 pares adyacentes superiores e inferiores de un primer tipo y K2 pares adyacentes arriba y abajo de un segundo tipo, donde K0 = K1 + K2, los pares adyacentes superiores e inferiores son un conjunto constituido por dos elementos {hbij, hb((i+1) mod Mb)j} en la matriz base correspondiente a matrices cuadradas no nulas, los pares adyacentes superiores e inferiores del primer tipo son pares adyacentes superiores e inferiores que son congruentes con (hbij-hb((i+1) mod Mb)j) mod Q = a y los pares adyacentes superiores e inferiores del segundo tipo son pares adyacentes superiores e inferiores que son congruentes con (hbij-hb((i+1)mod Mb)j) mod Q = d donde hbij representa un elemento en la fila iésima y la columna jésima de una matriz base y corresponde a una matriz cuadrada nula de zxz, una matriz identidad de zxz o una matriz de desplazamiento cíclico de una matriz identidad de zxz de una matriz de comprobación de paridad de un código LDPC estructurado, donde a y d no son iguales, a y d son números enteros mayores o iguales a 0 y menores o iguales a Q-1, Q es un factor del factor de expansión z del código LDPC estructurado, i es un índice de fila de la matriz base, j es un índice de columna de la matriz base, i = 0, 1, ..., Mb-1, j=0, 1, ..., Nb-1; y de acuerdo con la matriz base y el factor de expansión z correspondiente a la matriz base, realizar (802) una operación de codificación LDPC para obtener una palabra de código de Nbxz bits basada en datos fuente de (Nb-Mb)xz bits, donde z es un número entero positivo mayor que 1, caracterizado por que K0 es un número entero positivo mayor o igual a 6* Mb, K2 es un entero positivo mayor o igual a 0 y menor que 2*Mb y Q es 2.

Description

DESCRIPCIÓN
Procedimiento de codificación, procedimiento de descodificación, dispositivo de codificación y dispositivo de descodificación para códigos LDPC estructurados
Campo de la técnica
La presente invención se refiere a un sistema de comunicación digital y, más particularmente, a un procedimiento de codificación, procedimiento de descodificación, dispositivo de codificación y dispositivo de descodificación para LDPC estructurados.
Antecedentes de la técnica relacionada
Con el desarrollo de la comunicación digital inalámbrica y el surgimiento de varios servicios con alta velocidad y ráfagas fuertes, cada vez hay más demanda de tecnología de codificación de corrección de errores propuesta por las personas. La figura 1 muestra un sistema de comunicación digital típico. Los códigos de comprobación de paridad de baja densidad (LDPC) son un tipo de código de bloque lineal que se puede definir mediante una matriz de comprobación de paridad muy dispersa o un gráfico bipartito. La LDPC fue descubierta inicialmente por Gallager y por ello se denomina códigos Gallager. Después de décadas de silencio, con el desarrollo de hardware informático y las teorías relativas, MacKay y Neal redescubrieron la LDPC y demostraron que la LDPC tiene un rendimiento cercano al límite de Shannon. La última investigación muestra que la LDPC tiene las siguientes ventajas: baja complejidad de descodificación, ser capaz de codificar en tiempo lineal, tener un rendimiento cercano al límite de Shannon, ser capaz de descodificar en paralelo y superior a los códigos Turbo en el escenario de códigos de gran tamaño.
Los códigos de LDPC son un tipo de códigos de bloque lineal basados en una matriz de comprobación de paridad dispersa y la codificación y descodificación de baja complejidad se logran simplemente utilizando la dispersidad de la matriz de comprobación de los códigos LDPC, haciendo que los códigos LDPC sean practicables. Los códigos irregulares se refieren a los códigos de comprobación de paridad de baja densidad donde un peso de la hilera y un peso de la columna de una matriz de comprobación de paridad son totalmente diferentes y los pesos de la columna de una porción de bits de información de la matriz de comprobación de paridad también son diferentes. Los códigos irregulares se refieren a códigos de comprobación de paridad de baja densidad donde un peso de la fila y un peso de la columna de una matriz de comprobación de paridad son totalmente iguales, o los códigos de comprobación de paridad de baja densidad donde un peso de la fila y un peso de la columna de una porción de bits de información son totalmente iguales en una matriz de comprobación de paridad cuando una porción de bits de comprobación mantiene, de forma correspondiente, una estructura constante. En la literatura relevante, los códigos de paridad de baja densidad del segundo caso de códigos regulares se denominan códigos semi-regulares. La distribución del número de potencia de la matriz base y la distribución del número de potencia de la matriz de comprobación de paridad son consistentes.
La LDPC es un tipo especial de código de bloque lineal. En comunicación, se necesitan M bits de comprobación para garantizar cierta capacidad de corrección cuando se envía una palabra de código con una longitud de bloque de N bits, cada palabra de código tiene que cumplir Hx T = 0 T, en el presente documento H es una matriz de comprobación de paridad dimensional MxN en un campo binario. Todas las operaciones se realizan en un campo binario GF(2) y la suma y la resta en el presente documento son operaciones "XOR", y la multiplicación es la operación "Y".
LDPC estructurada
Se supone que una matriz de comprobación de paridad H de los códigos LDPC estructurados es una matriz (Mbxz) x (Nbxz) compuesta por matrices de bloques MbxNb, cada matriz de bloque es una matriz de permutación de base zxz con un número de potencia diferente o una matriz nula de zxz. Cuando la matriz de permutación base es una matriz identidad, las matrices de los bloques son matrices de desplazamiento cíclico de la matriz identidad (el valor predeterminado es el desplazamiento a la derecha en el presente documento). Cada matriz de bloque se puede identificar de forma única a través del número de potencia j, el número de potencia de la matriz identidad puede representarse como 0 y el número de potencia de una matriz generalmente se representa como -1. Por lo tanto, si cada matriz de bloques de H se reemplaza por su número de potencia, se puede obtener una matriz Hb de potencia MbxNb. En este caso, Hb se define como la matriz base de H y H se llama matriz de expansión de Hb. En la codificación práctica, z = - n-u-m-- e--r-o-- d-e-- co lum na Nb - de la m a tr iz bá -s-i-c-a , y z se llama factor de expansión.
Por ejemplo, la matriz
Figure imgf000003_0001
se puede obtener extendiendo una matriz base Hb 2x4 y el siguiente parámetro z:
Z = 3 y
Figure imgf000003_0002
Por lo tanto, un codificador LDPC de la presente invención puede generarse de manera única por la matriz base Hb, el factor de expansión z y la matriz de permutación base seleccionada. En resumen, cada elemento en la matriz base Hb corresponde a una matriz cuadrada z*z de la matriz de comprobación de paridad. En particular, en la matriz base, cada elemento que toma el valor de -1 corresponde a una matriz cuadrada z*z cero y cada elemento que toma el valor de no -1 corresponde a una matriz cuadrada z*z no cero (es decir, la matriz identidad o las matrices de desplazamiento cíclico de la matriz identidad). De acuerdo con la definición anterior de la matriz identidad, se puede ver que bajo la condición de que se determina un factor de expansión (un número entero z mayor que 1) y la matriz base y la matriz de comprobación de paridad son de la misma naturaleza.
Codificación de LDPC
Un procedimiento de codificación directa de los códigos de bloque del sistema es: una palabra de código x se divide en bits de información N-M y bits c de comprobación M, de forma correspondiente, una matriz de comprobación de paridad MxN H se divide en dos bloques con tamaños de Mx(N-M) y MxM correspondientes a los bits de información y los bits de comprobación respectivamente, a saber H=[A|B]. De acuerdo con Hxx = 0, se puede tener:
Figure imgf000003_0003
A continuación, se puede tener A * s B * c = 0 y derivar además c = B'1As. Cuando el bloque B usa una estructura matricial especial, tal como una estructura triangular estrictamente inferior (matriz semialeatoria), estructura triangular inferior doble, etc., B-1 tiene una forma muy simple, la parte c del bit de comprobación en las palabras de código se puede calcular directamente de acuerdo con la fórmula anterior y se puede garantizar que el codificador tenga una complejidad lineal.
El algoritmo de codificación de tiempo lineal de Richarson también se puede aplicar, la matriz de comprobación de paridad H tiene una estructura triangular cuasi inferior, suponiendo que H tiene la siguiente forma:
Figure imgf000003_0004
Se supone que las palabras de código codificadas son x = (s, pi , P2), en el presente documento, s es la parte de bit del sistema de las palabras de código codificadas, p1 y p2 son la parte del bit de comprobación de las palabras de código, la longitud de p1 es g y la longitud de p2 es (m-g). En la fórmula anterior, las dimensiones de A son (m-g)x(nm), las dimensiones de B son (m-g)xg, las dimensiones de T son (m-g)x(m-g), las dimensiones de C son gx(n-m), las dimensiones de D son gxg y las dimensiones de E son gx (m-g). Todas estas matrices son matrices dispersas y T es una matriz triangular inferior de la cual todos los elementos diagonales son 1. La parte del bit de comprobación se puede obtener de la siguiente fórmula:
Figure imgf000004_0001
en el presente documento,
<p = -E T _1B D
Por lo tanto, el codificador de los códigos LDPC diseñado por la presente invención puede ser generado de manera única por la matriz H de comprobación de paridad LDPC, que en realidad determina no solo el rendimiento del descodificador de código LDPC sino también la complejidad, el espacio de almacenamiento y el retraso de procesamiento del codificador y descodificador de los códigos LDPC. Por lo tanto, lo más importante es buscar una estructura de matriz de comprobación de paridad adecuada de los códigos LDPC.
En una implementación específica, una función de codificación para obtener una palabra de código de N bits de acuerdo con los datos de origen de los bits N-M puede realizarse calculando con el procedimiento directo anterior, el procedimiento de Richarson u otros procedimientos. De hecho, el codificador usa software o hardware para implementar las operaciones de multiplicación y suma de la matriz dispersa en la fórmula. Para la LDPC basada en la matriz identidad y la matriz de desplazamiento cíclico de la matriz identidad, la operación de multiplicación de la matriz dispersa puede estar constituida por varios registros de desplazamiento cíclico con z bits (z es el factor de expansión) y varios sumadores con z bits, y la operación de adición de la matriz dispersa puede ser realizada por varios sumadores anteriores con z bits, y los varios registros de desplazamiento cíclico con z bits z y varios sumadores con z bits constituyen un codificador LDPC implementado por un circuito de hardware.
Descodificación de LDPC
Una presentación gráfica de una matriz de comprobación de paridad LDPC es un gráfico bipartito. El gráfico bipartito es una correspondencia de uno a uno con la matriz de comprobación, una matriz de comprobación de paridad MxN H define la restricción para cada palabra de código de N bits que cumplen los conjuntos de comprobación de paridad M. Un gráfico bipartito incluye N nodos variables y M nodos de comprobación de paridad. Cuando la comprobación emésima se refiere al enésimo bit, esto es, un elemento Hm en la emésima fila y la enésima columna de la H, cuando n es igual a 1, habrá una línea de conexión para conectar el nodo de comprobación m y el nodo variable n. No hay conexión entre nodos de ningún tipo en el gráfico bipartito y el número de aristas en el gráfico bipartito es igual al número de elementos distintos de cero en la matriz de comprobación.
El mensaje que pasa el algoritmo de descodificación de LDPC, también llamado algoritmo de propagación de creencias (BP), asume que los nodos variables son independientes unos de otros, sin embargo, la existencia del círculo corto inevitablemente rompe la asunción de la independencia, lo que obviamente disminuirá el rendimiento de descodificación. De hecho, cuanto más largo sea el círculo más corto del gráfico bipartito correspondiente a la matriz de comprobación de paridad LDPC, esto es, cuanto mayor es el valor de la circunferencia, menor sea la información de retroalimentación positiva transmitida desde el nodo variable a sí misma y mejor será el rendimiento de descodificación. Existe una relación entre la circunferencia de la matriz de comprobación H y la matriz base Hb y las conclusiones relacionadas se pueden obtener mediante la validación del razonamiento matemático y la simulación por ordenador.
Corrección de la matriz base
Si no se puede usar una misma matriz base para cada factor de expansión diferente, un descodificador/codificador LDPC necesita almacenar una matriz base para cada longitud de código diferente, por tanto, es necesario almacenar una gran cantidad de matrices base cuando hay una pluralidad de longitudes de código, por lo tanto, se ocupará un gran espacio de almacenamiento o el circuito de hardware se complicará.
La corrección utiliza el factor de expansión de otra longitud de código para corregir los elementos no negativos en la matriz base Hb, y el valor del elemento corregido debe ser menor que el valor del factor de expansión debajo de la longitud del código. El algoritmo de corrección puede ser m.od, escalado truncado o escalado redondeo, etc. Suponiendo que Pi, j es el elemento no negativo en la fila iesima y la columna jesima de la matriz base, y P'i, j son los elementos corregidos, hay:
Para un algoritmo mod:
Pi,=P¡¡ mod-
Para un algoritmo de escalado truncado:
P¡J = [P¡ x ^ ]
Para un algoritmo de escalado redondeo:
Plj = Redondeo(
Figure imgf000005_0001
en el presente documento, N es el número de columnas de la matriz base, y n es la longitud del código de los códigos de comprobación de paridad de baja densidad que generarán la matriz de comprobación de paridad. Mod es una operación mod, [ ] es una operación de truncado y Redondeo es una operación de redondeo. En este caso, se supone que la mayor longitud de códigos es 2304.
Por ejemplo, para códigos de comprobación de paridad de baja densidad con una longitud de código de 1152 bits, se supone que algún elemento no negativo de la matriz base es 93, entonces el resultado corregido es:
Para un algoritmo mod:
93mod— 24 = 93mod48 = 45
Para un algoritmo de escalado truncado:
[93x^ 3 = [46,5] = 46
Para un algoritmo de escalado redondeo:
Redondeo (93 *— ) = Redondeo (46,5) = 47
Si la descodificación en capas popular más reciente se utiliza para LDPC, La lectura-escritura de la información de la razón logarítmica de verosimilitud afecta seriamente a la disposición de la cola de LDPC. En particular, en la alta tasa de bits, para una estructura de LDPC ordinaria, el descodificador necesita procesar una fila de la matriz base antes de comenzar la siguiente etapa de una cola, que necesita un largo tiempo de espera y si una etapa de una cola es particularmente larga, la eficiencia del descodificador se verá seriamente reducida.
El documento US 2009/0282315 A1 desvela sistemas de codificación LDPC para una extensión de capa física basada en ondas milimétricas de 60 GHz. La codificación LDPC en cooperación con el entrelazado de subportadoras, en el contexto de multiplexación por división de frecuencia ortogonal y el mapeo de símbolos apropiado se realiza de acuerdo con el procesamiento de transmisión como se puede realizar dentro de un dispositivo de comunicación. En un dispositivo de comunicación receptor, el procesamiento de recepción puede realizarse en una señal recibida en función del tipo de LDPC, entrelazado de subportadoras y mapeo de símbolos de los mismos.
Sumario de la invención
Las realizaciones de la presente invención proporcionan un procedimiento de codificación, procedimiento de descodificación, dispositivo de codificación y dispositivo de descodificación para LDPC estructurado como se define en las reivindicaciones 1-13, que resuelven el problema existente de baja eficiencia de un descodificador/codificador. Una realización de la presente invención proporciona además un programa informático, incluidas las instrucciones del programa, que, cuando lo ejecuta un dispositivo de codificación, habilite el dispositivo de codificación para implementar el procedimiento de codificación como se especifica en las reivindicaciones 1-3.
Una realización de la presente invención proporciona además un programa informático, incluidas las instrucciones del programa, que, cuando es ejecutado por un dispositivo de descodificación, permitir que el dispositivo de descodificación implemente el procedimiento de descodificación de las reivindicaciones 4-7.
La realización de la presente invención proporciona además una portadora que lleva uno cualquiera de los programas informáticos anteriores.
Las realizaciones de la presente invención proporcionan un procedimiento de codificación, procedimiento de descodificación, dispositivo de codificación y dispositivo de descodificación para códigos de LDPC estructurados. Al determinar una matriz base, utilizada para descodificar o codificar, que incluye K0 pares adyacentes superiores e inferiores, de acuerdo con la matriz base y el factor de expansión correspondiente a la matriz base, se completa la descodificación o codificación, Se realiza la codificación y descodificación LDPC a la alta velocidad de canalización y se resuelve el problema existente de baja eficiencia de un descodificador/codificador.
Breve descripción de los dibujos
La figura 1 es un diagrama de módulo de un sistema de comunicación digital;
la figura 2 es un diagrama esquemático de una estructura de un codificador de códigos LDPC proporcionado en una primera realización de la presente invención;
la figura 3 es un diagrama esquemático de una matriz base utilizada en la primera realización de la presente invención;
la figura 4 es un diagrama esquemático de una estructura de un descodificador de códigos LDPC proporcionado en una segunda realización de la presente invención;
la figura 5 es un diagrama esquemático de una matriz base utilizada en la segunda realización de la presente invención;
la figura 6 es un diagrama esquemático de una la cola de descodificación en capas convencional proporcionada en la segunda realización de la presente invención;
la figura 7 es un diagrama esquemático de una la cola de descodificación en capas de la presente invención proporcionada en la segunda realización de la presente invención;
la figura 8 es un diagrama de flujo de un procedimiento de codificación para códigos LDPC estructurados proporcionado en una tercera realización de la presente invención;
la figura 9 es un diagrama de flujo de un procedimiento de descodificación para códigos LDPC estructurados proporcionado en una cuarta realización de la presente invención;
la figura 10 es un diagrama esquemático de una estructura de un dispositivo de codificación para códigos LDPC estructurados proporcionados en una quinta realización de la presente invención; y
la figura 11 es un diagrama esquemático de una estructura de un dispositivo de descodificación para códigos LDPC estructurados proporcionados en la quinta realización de la presente invención.
Realizaciones preferidas de la invención
Para una LDPC estructurada convencional, si se usa la descodificación en capas más popular recientemente, la lectura-escritura de la información de la razón logarítmica de verosimilitud afecta seriamente a la disposición de la cola de LDPC. En particular, en la alta tasa de bits, para una estructura de LDPC ordinaria, el descodificador necesita procesar una fila de la matriz base antes de comenzar la siguiente etapa de una cola. La eficiencia del descodificador se verá seriamente reducida si una etapa de una la cola es particularmente larga.
No obstante, el número de posibles patrones de combinación de matrices base es enorme y, en la técnica existente, no existe un procedimiento factible para reducir el tiempo de espera y no se obtiene una matriz base para satisfacer dicho requisito.
Con el fin de resolver el problema anterior, las realizaciones de la presente invención proporcionan un procedimiento de codificación, procedimiento de descodificación, dispositivo de codificación y dispositivo de descodificación para LDPC estructurados. En función de la practicabilidad, para varias longitudes de código diferentes con la misma velocidad de bits, las realizaciones de la presente invención usan la misma matriz base que generalmente se genera correspondiente al código más largo. Al mismo tiempo, la matriz base se corrige para diferentes longitudes de código, lo que hace que el descodificador/codificador generado sea adecuado para el caso de longitudes de código variables. Sin estar limitada a este punto, la presente invención también se aplica al caso de que cada longitud de código usa una matriz base.
En lo sucesivo, junto con los dibujos adjuntos, se describirán con detalle las realizaciones de la presente invención. Cabe señalar que en caso de no existir conflicto, las realizaciones en la presente invención y las características en las realizaciones pueden combinarse de forma arbitraria entre sí.
Realización 1
La realización de la presente invención proporciona un dispositivo de codificación para códigos de comprobación de paridad de baja densidad (LDPC) estructurados en comunicación digital, cuya estructura se muestra en la figura 2, que incluye, al menos, un procesador 202 y una memoria 201.
La memoria 201 está configurada para, al menos, almacenar una matriz base que se usa para codificar e incluye K0 pares adyacentes superiores e inferiores y parámetros.
Para cada matriz base Hb, si el número de diferentes K0 pares adyacentes superiores e inferiores, hay K1 pares adyacentes superiores e inferiores de un primer tipo y K2 pares adyacentes superiores e inferiores de un segundo tipo, en el presente documento K0 = K1 K2, K0 es un número entero positivo mayor o igual a 6*Mb, y K2 es un número entero positivo mayor o igual a 0 y menor o igual a 2*Mb.
Preferentemente, si K2 es mayor o igual a 3, para dos filas cualquiera adyacentes (la fila x1a y la fila ((x1 1) mod Mb)esima), el número de pares adyacentes del segundo tipo es como máximo 3, en el presente documento x1 y x2 toman el valor de 0 a Mb-1.
En el presente documento, el par adyacente superior e inferior se define como un conjunto constituido por dos elementos {hby, hb((i i)mod Mb)j} correspondiente a matrices cuadradas no nulas en cada matriz base Hb, esto es, un conjunto constituido por dos elementos adyacentes que corresponden a matrices cuadradas no nulas en alguna columna de una matriz base, en el presente documento, la última fila y la primera fila se definen como adyacentes, y la última fila se define como una fila anterior de la primera fila. Los pares adyacentes superiores e inferiores del primer tipo se definen como pares adyacentes superiores e inferiores que son congruentes con(hby-hb((i++i)mod Mb)j) mod Q = a y los pares adyacentes superiores e inferiores del segundo tipo se definen como pares adyacentes superiores e inferiores que son congruentes con (hby-hb((i++imod Mb)j) mod Q = d.
El número total de elementos que corresponden a las matrices cuadradas no nulas en la columna jesima de la matriz base Hb es Lj, el primer elemento de arriba a abajo es 0, Lj es un número entero positivo mayor o igual a 1, y j = 0, 1, ..., Nb-1. Debe observarse que la presente invención no se limita a tal manera. El último elemento también puede ser 0 o cualquier elemento también puede ser 0. De esta manera se garantiza que si se utiliza la descodificación en capas, no se puede usar una red inversa de desplazamiento cíclico, una sobrecarga de enrutamiento puede reducirse considerablemente y se obtiene un efecto beneficioso.
El procesador 202 está configurado para determinar la matriz base y un factor de expansión z, y realizar una operación de codificación LDPC para obtener una palabra de código de Nbxz bits de acuerdo con los datos de origen de (Nb-Mb) * z bits.
En el presente documento, hbij representa un elemento en la fila iesima y la columna jesima de una matriz base, en el presente documento, a y b no son iguales, a y b son números enteros mayores o iguales a 0^ y menores o iguales a Q-1, Q es un factor de multiplicación del factor de expansión z, el peso de la columna _de la jesima columna se refiere al número total de elementos correspondientes a matrices cuadradas no nulas en la jesima columna de la Hb, i es un índice de fila de la Hb, j es un índice de columna de la Hb, i = 0, 1, ..., Mb-1, j=0, 1, ..., Nb-1, z es el factor de expansión y z es un número entero positivo mayor o igual a 1.
Preferentemente, el valor de K2 generalmente toma cualquiera de los siguientes: 1, 2, 3, ... y 12.
El valor de Q = 2 y, para ejemplos que no forman parte de la invención, Q toma cualquiera de los siguientes: 3, 4, 5, 6, 7 y 8.
Lo siguiente describe una realización más específica. Una matriz base Hb, como se muestra en la figura 3, cumple los requisitos anteriores.
Para la matriz base mostrada en la figura 3, se establecen parámetros, tales como, la tasa de bits correspondiente a la matriz es 3/4, el número de filas de la matriz es Mb = 4, el número de columnas de la matriz es Nb = 16, Q = 2, K2 = 4, K0 = 47, K1 = 43, a = 0, d = 1. La matriz base corresponde al factor de expansión z = 42. El factor de expansión z = 42 = 2*3*7, por lo tanto, Q = 2 satisface el requisito de que Q es el factor de multiplicación del factor de expansión z.
Para la matriz base Hb mostrada en la figura 3, si el número de diferentes K0 pares adyacentes superiores e inferiores = 47, hay K1 = 43 pares adyacentes superiores e inferiores del primer tipo y K2 = 3 pares adyacentes superiores e inferiores del segundo tipo. Los siguientes aparentemente se satisfacen: K0=K1+K2, K0 es un número entero positivo mayor que 24 y K2 es un número entero positivo mayor que 8.
En el presente documento, los pares adyacentes superiores e inferiores del primer tipo se definen como pares adyacentes superiores e inferiores con (hbij-hb((i+1) mod Mb)j) mod Q = 0, como se muestra mediante un recuadro de línea discontinua en la figura 3, en el presente documento, un recuadro abierto de línea discontinua superior y un recuadro abierto de línea discontinua inferior de una columna constituyen un recuadro completo de línea discontinua. Los pares adyacentes superiores e inferiores del segundo tipo se definen como pares adyacentes superiores e inferiores con (hb¡j-hb((i+1) mod Mb)j) mod 2 = 1, como se muestra mediante un recuadro de línea continua en la figura 3. En la matriz dada anteriormente, en la parte superior están los índices de columna, a la izquierda están los índices de fila, la parte A de la matriz es una parte sistemática de bits de la matriz, la parte B es una parte de bits de comprobación de la matriz. Los elementos, que toman el valor de -1 en la matriz, corresponden a matrices cuadradas nulas de zxz. Los elementos, que toman el valor de no -1, corresponden a matrices cuadradas no nulas de zxz y las matrices cuadradas no nulas son matrices obtenidas desplazando cíclicamente la matriz identidad por el valor correspondiente.
De acuerdo con las características descritas, los pares adyacentes superiores e inferiores son un conjunto constituido por dos elementos adyacentes, correspondiente a matrices cuadradas no nulas, en alguna columna de una matriz base, específicamente como los 2 elementos que se muestran en el recuadro rectangular de la figura. El recuadro de línea discontinua representa pares adyacentes superiores e inferiores del primer tipo y, de forma correspondiente, a = 0. El recuadro de línea continua representa pares adyacentes superiores e inferiores del segundo tipo, y, de forma correspondiente, d = 1.
Se puede ver que hay 4 pares adyacentes superiores e inferiores del segundo tipo. En la matriz de paridad base anterior, para dos filas adyacentes, no hay más de 2 pares adyacentes superiores e inferiores del segundo tipo. Por ejemplo, para las filas 0a y 1a, solo hay un par adyacente superior e inferior del segundo tipo; para las filas 1a y 2a, solo hay un par adyacente superior e inferior del segundo tipo; para las filas 2a y 3a, hay dos pares adyacentes superiores e inferiores del segundo tipo; para las filas 3a y 0°, no hay un par adyacente superior e inferior del segundo tipo.
Además, el primer elemento correspondiente a una matriz cuadrada distinta de cero en cada una de las columnas de la matriz base Hb es 0. En este caso, la red de desplazamiento cíclico solo necesita completar las diferencias de desplazamiento cíclico. Por ejemplo, para la primera columna, la red de desplazamiento cíclico solo necesita implementar desplazamientos de 30-0, 20-30, 36-20 y 0-36. Después de completar una iteración completa de LDPC, la información de una razón logarítmica de verosimilitud correspondiente a la primera matriz base se devuelve a una posición secuencial y se puede tomar una decisión firme, y, si es correcta, se envía a la salida y, si es incorrecta, la iteración continúa. En este caso, un descodificador en capas LDPC con la estructura matricial de la realización de la presente invención, no necesita la red inversa de desplazamiento cíclico. En comparación con las soluciones convencionales, el recorrido se reduce a la mitad.
Preferentemente, el codificador también tiene las siguientes características: el codificador incluye además un módulo de expansión, configurado para realizar una expansión en la matriz base de acuerdo con el factor de expansión y una matriz de permutación base para obtener una matriz de comprobación de paridad de los códigos de comprobación de paridad de baja densidad (Mxz) x (Nxz). El módulo de operación de descodificación realiza una operación de codificación basada en la matriz de comprobación de paridad obtenida por la expansión de la matriz base.
En la realización de la presente invención, se realiza una codificación LDPC en un bit de información a través de una estructura propuesta de la matriz base, que puede generar una palabra de código LDPC. Esta palabra de código LDPC se envía a un canal a través de módulos de modulación, etc. Después de recibir una señal, un extremo receptor realiza un procesamiento tal como desmodulación, etc., y genera una palabra de código LDPC recibida. La palabra de código LDPC recibida se envía a un descodificador LDPC. Por dicha palabra de código LDPC, se garantiza que la velocidad de la cola del descodificador alcanza el efecto de verse elevada, esto es, la velocidad de la cola del descodificador alcanza el efecto de verse elevada. Esto aumenta de forma eficaz la eficiencia de LDPC y acelera la velocidad de descodificación. Permitiendo no usar la red de desplazamiento cíclico inverso (para escribir una memoria), la estructura de la matriz base propuesta por la realización de la presente invención también puede reducir las redes de conmutación y reduce aún más la complejidad del hardware.
Realización 2
La realización de la presente invención proporciona un dispositivo de descodificación para códigos estructurados de comprobación de paridad de baja densidad (LDPC) en comunicación digital, cuya estructura se muestra en la figura 4, que incluye, al menos, un procesador 402 y una memoria 401.
La memoria 401 está configurada para, al menos, almacenar una matriz base que incluye K0 pares adyacentes superiores e inferiores y parámetros. La matriz base incluye las siguientes características:
Para cada matriz base Hb, si el número de diferentes K0 pares adyacentes superiores e inferiores, hay K1 pares adyacentes superiores e inferiores de un primer tipo y K2 pares adyacentes superiores e inferiores de un segundo tipo, en el presente documento K0 = K1 K2, K0 es un número entero positivo mayor o igual a 6*Mb, y K2 es un número entero positivo mayor o igual a 1 y menor o igual a 2*Mb.
Preferentemente, si K2 es mayor o igual a 3, para dos filas cualquiera adyacentes (la fila x1a y la fila ((x1 1) mod Mb)esima), el número de pares adyacentes del segundo tipo es como máximo 3, en el presente documento x1 y x2 toman el valor de 0 a Mb-1.
El par adyacente superior e inferior se define como un conjunto constituido por dos elementos {hby, hb((i i)mod Mb)j} correspondiente a matrices cuadradas no nulas en cada matriz base Hb, esto es, un conjunto constituido por dos elementos adyacentes que corresponden a matrices cuadradas no nulas en alguna columna de una matriz base, en el presente documento, la última fila y la primera fila se definen como filas adyacentes, y la última fila se define como una fila anterior de la primera fila. Los pares adyacentes superiores e inferiores del primer tipo se definen como pares adyacentes superiores e inferiores que son congruentes con (hby-hb((i++i)mod Mb)j) mod Q = a y los pares adyacentes superiores e inferiores del segundo tipo se definen como pares adyacentes superiores e inferiores que son congruentes con (hby-hb((i+1)mod Mb)j) mod Q = d.
El número total de elementos que corresponden a las matrices cuadradas no nulas en la columna jesima de la matriz base Hb es Lj, el primer elemento de arriba a abajo es 0, Lj es un número entero positivo mayor o igual a 1, y j = 0, 1, ..., Nb-1.
El procesador 402 está configurado para, de acuerdo con la matriz base y el factor de expansión correspondiente z, realizar una operación de descodificación LDPC para obtener los datos de información de (Nb-Mb)xz bits de acuerdo con la palabra de código de Nbxz bits.
En el presente documento, hby representa un elemento en la fila iésima y la columna jésima de una matriz base, en el presente documento, a y d no son iguales, a y d son números^ enteros entre 0 y Q-1, Q es un factor de multiplicación del factor de expansión z. El peso de la columna de Ja jesima columna se refiere al número total de elementos correspondientes a matrices cuadradas no nulas en la jesima columna de la Hb, i es un índice de fila de la Hb, j es un índice de columna de la Hb, i = 0, 1, ..., Mb-1, j=0, 1, ..., Nb-1, z es el factor de expansión y z es un número entero positivo mayor o igual a 1.
Preferentemente, el valor de K2 generalmente toma uno de los siguientes: 1, 2, 3, ... y 12.
El valor de Q = 2 y, para ejemplos que no forman parte de la invención, Q toma uno de los siguientes: 3, 4, 5, 6, 7 y 8.
Lo siguiente describe una realización más específica. Una matriz base Hb, como se muestra en la figura 5, cumple con el requisito anterior.
Para la matriz base mostrada en la figura 5, se establecen parámetros, tales como, la tasa de bits correspondiente a la matriz es 3/4, el número de filas de la matriz es Mb = 4, el número de columnas de la matriz es Nb = 16, Q = 2, K2 = 4, K0 = 47, K1 = 43, a = 0, d = 1. La matriz base corresponde al factor de expansión z = 42. Para el factor de expansión z=42=2*3*7, por lo tanto, Q = 2 satisface el requisito de que Q es el factor de multiplicación del factor de expansión z.
Para la matriz base Hb mostrada en la figura 5, si el número de diferentes K0 pares adyacentes superiores e inferiores = 47, hay K1 = 43 pares adyacentes superiores e inferiores del primer tipo y K2 = 3 pares adyacentes superiores e inferiores del segundo tipo. Los siguientes aparentemente se satisfacen: K0=K1+K2, K0 es un número entero positivo mayor que 24 y K2 es un número entero positivo mayor que 8.
En el presente documento, los pares adyacentes superiores e inferiores del primer tipo se definen como pares adyacentes superiores e inferiores que son (hbij-hb((i+1)mod Mb)j) mod Q = 0, como se muestra mediante un recuadro de línea discontinua en la figura donde un recuadro abierto de línea discontnua superior y un recuadro abierto de línea discontinua inferior de una columna constituyen un recuadro completo de línea discontinua. Los pares adyacentes superiores e inferiores del segundo tipo se definen como pares adyacentes superiores e inferiores que son (hbijhb((i+1) mod Mb)j) mod 2 = 1, como se muestra mediante un recuadro de línea continua en la figura 5.
En la matriz dada anteriormente, en la parte superior están los índices de columna, a la izquierda están los índices de fila, la parte A de la matriz es una parte sistemática de bits de la matriz, la parte B es una parte de bits de comprobación de la matriz. Los elementos, que toman el valor de -1 en la matriz, corresponden a matrices cuadradas nulas de zxz. Los elementos, que toman el valor de no -1, corresponden a matrices cuadradas no nulas de zxz y las matrices no nulas son matrices obtenidas mediante desplazamiento cíclico de la matriz identidad por el valor correspondiente.
De acuerdo con las características descritas, los pares adyacentes superiores e inferiores son un conjunto constituido por dos elementos adyacentes que corresponden a matrices cuadradas no nulas en alguna columna de una matriz base, específicamente como 2 elementos mostrados en el recuadro rectangular en la figura 5. El recuadro de línea discontinua representa pares adyacentes superiores e inferiores del primer tipo y, de forma correspondiente, a = 0. El recuadro de línea continua representa pares adyacentes superiores e inferiores del segundo tipo, y, de forma correspondiente, d = 1.
Se puede ver que hay 4 pares adyacentes superiores e inferiores del segundo tipo. En la matriz de paridad base anterior, para dos filas adyacentes, no hay más de 2 pares adyacentes superiores e inferiores del segundo tipo. Por ejemplo, para las filas 0a y 1a, solo hay un par adyacente superior e inferior del segundo tipo; para las filas 1a y 2a, solo hay un par adyacente superior e inferior del segundo tipo; para las filas 2a y 3a, hay dos pares adyacentes superiores e inferiores del segundo tipo; para las filas 3a y 0°, no hay un par adyacente superior e inferior del segundo tipo.
Además, el primer elemento correspondiente a una matriz cuadrada distinta de cero en cada una de las columnas de la matriz base Hb es 0. En este caso, la red de desplazamiento cíclico solo necesita completar las diferencias de desplazamiento cíclico. Por ejemplo, para la primera columna, la red de desplazamiento cíclico solo necesita implementar desplazamientos de 30-0, 20-30, 36-20 y 0-36. Después de completar una iteración completa de LDPC, la información de una razón logarítmica de verosimilitud correspondiente a la primera matriz base se devuelve a una posición secuencial y se puede tomar una decisión firme, y, si es correcta, se envía a la salida y, si es incorrecta, la iteración continúa. En este caso, un descodificador en capas LDPC con la estructura matricial de la realización de la presente invención, no requiere la red inversa de desplazamiento cíclico. En comparación con las soluciones convencionales, el recorrido se reduce a la mitad. Adicionalmente, el procesador usa un algoritmo de propagación de creencias (BP) en capas y un algoritmo min-sum corregido para la descodificación para realizar una actualización de fila en la matriz base. En una iteración de número impar, además de actualizar la información extrínseca correspondiente a un elemento que no sean pares adyacentes del segundo tipo, el procesador solo actualiza la información extrínseca (nodo de comprobación de la información del nodo variable) correspondiente a un elemento en cada par adyacente del segundo tipo. En una iteración de número par, además de actualizar la información extrínseca correspondiente a elementos que no sean pares adyacentes del segundo tipo, el procesador solo actualiza la información extrínseca (nodo de comprobación de la información del nodo variable) correspondiente a otro elemento en cada par adyacente del segundo tipo.
Lo siguiente ilustra los efectos beneficiosos de la descodificación que son causados por la estructura del código de la presente realización de la invención.
Si el grado de paralelismo del descodificador es paralelo = 21, y para una secuencia de bits de palabra de código, hay una memoria de razón logarítmica de verosimilitud (LLR) para cada zf = 42 bits, entonces hay 16 memorias LLR y cada memoria corresponde a una columna de una matriz base. Cada memoria LLR incluye número de palabra = zf/paralelo = 2 palabras, una palabra almacena bits impares entre 42 bits correspondientes a una columna de la matriz base y otra palabra almacena bits pares. En el presente documento, Zf es el factor de expansión.
Durante la descodificación del descodificador, para el número de capa de cada capa (de 0 al nivel máximo permitido por la descodificación), se seleccionan y actualizan 21 filas de la matriz de comprobación de paridad H de acuerdo con la siguiente fórmula:
índice de fila = índice de fila Hb*zf mod(mod número de capa, número de palabra:número de palabra:(índice de fila Hb+1)*zf-1;
en el presente documento, mod número de capa = mod(número de capa,total de capas), índice de filaHb = fijo(mod número de capa * paralelo/zf); Total de capas = Mb*zf/paralelo = 8.
A un primer tiempo t0, el descodificador en capas realiza una actualización de fila en las filas 0, 2, ... y 40, y completa la descodificación en capas de la primera capa; a un segundo tiempo t1, el descodificador realiza una actualización de fila en las filas 1, 3, ... y 41, y completa la descodificación en capas de la segunda capa; a un tercer tiempo t2, el descodificador realiza una actualización de fila en las filas 42, 44, ... y 82, y completa la descodificación en capas de la tercera capa; a un cuarto tiempo t3, el descodificador realiza una actualización de fila en las filas 43, 45, ... y 83, y completa la descodificación en capas de la cuarta capa; a un quinto tiempo t4, el descodificador realiza una actualización de fila en las filas 84, 86, ... y 124, y completa la descodificación en capas de la quinta capa; a un sexto tiempo t5, el descodificador realiza una actualización de fila en las filas 85, 87, ... y 125, y completa la descodificación en capas de la sexta capa; a un séptimo tiempo t6, el descodificador realiza una actualización de fila en las filas 126, 128, ... y 166, y completa la descodificación en capas de la séptima capa; a un octavo tiempo t7, el descodificador realiza una actualización de fila en las filas 127, 129, ... y 167, y completa la descodificación en capas de la octava capa. Por lo tanto, se completa una descodificación completa de los códigos LDPC. Si no hay convergencia, el proceso anterior se continúa repitiendo hasta que la descodificación tenga éxito o hasta que la descodificación falle y alcance el número máximo permitido.
Para un descodificador convencional, es necesario esperar a que la cola de descodificación de la segunda capa se implemente completamente antes de comenzar la descodificación en capas de la tercera capa, hay un largo tiempo de espera. De manera similar, es necesario esperar a que la descodificación de la cola de la cuarta capa se implemente completamente antes de comenzar la descodificación en capas de la quinta capa, hay un largo tiempo de espera. De manera similar, es necesario esperar a que la cola de descodificación de la sexta capa se implemente completamente antes de comenzar la descodificación en capas de la séptima capa, hay un largo tiempo de espera. De manera similar, es necesario esperar a que la cola de descodificación de la sexta capa se implemente completamente antes de comenzar la descodificación en capas de la séptima capa, hay un largo tiempo de espera. Por analogía, el tiempo de espera genera un gran retraso en la cola de LDPC, lo que reduce en gran medida la velocidad de la descodificación de los códigos LDPC en capas. Como se muestra en la figura 6, suponiendo que, para cada capa LDPC, se usa un reloj para leer, un reloj para procesar y un reloj para escribir, y cada reloj ocupa un tiempo de T, entonces una descodificación LDPC completa necesita un tiempo de 16*T.
Dado que el diseño de los autores evita que la palabra utilizada en una última canalización debe ser diferente de la palabra utilizada en una la cola siguiente al cruzar capas. Adicionalmente, se usa un proceso de tiempo compartido para una pequeña cantidad de colisión. Como se muestra en la figura 7, solo se necesita un tiempo de 13*T. De hecho, como un todo, se puede ahorrar un tiempo de 4*T para el tiempo de cada 16*T durante la descodificación LDPC.
En la realización de la presente invención, el grado de paralelismo se puede seleccionar para que sea 7 y hay 6 palabras. Si las palabras impares se procesan primero y las palabras pares se procesan después, se realiza una disposición similar a la de la figura 4 y la figura 5. Como un todo, la LDPC necesita un tiempo de 32*T y usando la descodificación de la presente invención, se puede ahorrar un tiempo de 12*T. El efecto es más obvio.
En la realización de la presente invención, el grado de paralelismo se puede expandir a 42, se puede realizar una descodificación simultánea en las filas 0, 2, ..., 40, y las filas 42, 44, ..., 82, ya que estas filas requieren datos con la misma dirección. Además, la cola se puede organizar aún más, lo que no es un algoritmo de descodificación en capas simple, pero ahorra tiempo más obviamente.
En la realización de la presente invención, el grado de paralelismo se puede expandir a 84, se puede realizar una descodificación simultánea en las filas 0, 2, ..., 40, las filas 42, 44, ..., 82, las filas 84, 86, ..., 124, y las filas 126, 128, ..., 166, ya que estas filas requieren datos con la misma dirección. Además, la cola se puede organizar más, lo que no es un algoritmo de descodificación en capas simple, pero ahorra tiempo más obviamente.
Por lo tanto, la estructura en la realización de la presente invención puede soportar un paralelismo muy alto o relativamente flexible que satisfaga el requisito de descodificación de una velocidad súperalta, alcanzando así la velocidad de descodificación Gbps. En la realización, usando la estructura propuesta de la matriz base, se realiza la descodificación LDPC en los bits de información y el descodificador LDPC recibe la palabra de código LDPC. De este modo, el descodificador LDPC puede asegurar que se obtiene el efecto de que la velocidad de la cola de la descodificación se eleva, esto es, se consigue el efecto de que la velocidad de procesamiento del descodificador se eleva. La eficiencia de los códigos LDPC aumenta de forma eficaz y la velocidad de descodificación se acelera. Permitiendo no usar la red de desplazamiento cíclico inverso (para escribir una memoria), la estructura de la matriz base propuesta por la realización de la presente invención también puede reducir las redes de conmutación y asimismo reducir aún más la complejidad del hardware.
Realización 3
La realización de la presente invención proporciona un procedimiento de codificación para códigos LDPC estructurados y el proceso de codificación LDPC que se completa usando el procedimiento de codificación, es como se muestra en la figura 8. El procedimiento incluye las etapas siguientes.
En la etapa 801, es determinar una matriz base utilizada para codificar, que incluye K0 pares adyacentes superiores e inferiores.
En esta etapa, la matriz base incluye un bloque A de Mbx (Nb-Mb) correspondiente a bits sistemáticos y un bloque B de MbxMb correspondiente a bits de comprobación. La matriz base incluye K1 pares adyacentes superiores e inferiores de un primer tipo y K2 pares adyacentes superiores e inferiores de un segundo tipo, en el presente documento K0 = K1 K2, K0 es un número entero positivo mayor o igual a 6* Mb, K2 es un entero positivo mayor o igual a 0 y menor o igual a 2*Mb. Los pares adyacentes superiores e inferiores son un conjunto constituido por dos elementos {hby, hb((i+1) mod Mb)j} correspondiente a matrices cuadradas no nulas en cada matriz base.
Los pares adyacentes superiores e inferiores del primer tipo son pares adyacentes superiores e inferiores que son congruentes con ((hby-hb((i+1)mod Mb)j) mod Q = a.
Los pares adyacentes superiores e inferiores del segundo tipo son pares adyacentes superiores e inferiores que son congruentes con (hby-hb((i+1)mod Mb)j) mod Q = d.
En el presente documento, hby representa un elemento en la fila iesima y la columna jesima de la matriz base, en el presente documento, a y d no son iguales, a y d son números enteros mayores o iguales a 0 y menores o iguales a Q-1, Q es un factor de multiplicación de un factor de expansión z, un peso de la columna de la jesima columna se refiere al número total de elementos correspondientes a matrices cuadradas no nulas en la jesima columna de la matriz base, i es un índice de fila de la matriz base, j es un índice de columna de la matriz base, i = 0, 1, ..., Mb-1, j=0, 1, ..., Nb-1.
Si K2 es mayor o igual a 3, para dos filas cualquiera adyacentes (la fila x1a y la fila ((x1 1) mod Mb)esima), el número de pares adyacentes del segundo tipo es como máximo 3, en el presente documento, el índice de fila x1 toma el valor de 0 a Mb-1.
El valor de Q = 2 y, para ejemplos que no forman parte de la invención, Q toma cualquiera de los siguientes: 3, 4, 5, 6, 7 y 8.
El número total de elementos que corresponden a las matrices cuadradas no nulas en la columna jésima de la matriz base es Lj, el primer elemento de arriba a abajo es 0, Lj es un número entero positivo mayor o igual a 1, y j = 0, 1, ..., Nb-1.
El valor de K0 toma cualquiera de los siguientes:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 y 12.
En la etapa 802, de acuerdo con la matriz base y el factor de expansión correspondiente a la matriz base, se realiza una operación de codificación LDPC para obtener una palabra de código de Nbxz bits de acuerdo con los datos fuente de (Nb-Mb)xz bits.
En el presente documento, z es el factor de expansión y z es un número entero positivo mayor o igual a 1.
Realización 4
La realización de la presente invención proporciona un procedimiento de codificación para códigos LDPC estructurados y el proceso de codificación LDPC que se completa usando el procedimiento de codificación, es como se muestra en la figura 9. El procedimiento incluye las etapas siguientes.
En la etapa 901, es determinar una matriz base utilizada para descodificar, que incluye K0 pares adyacentes superiores e inferiores.
La matriz base incluye un bloque A de Mbx(Nb-Mb) correspondiente a bits sistemáticos y un bloque B de Mb * Mb correspondiente a bits de comprobación. La matriz base incluye K1 pares adyacentes superiores e inferiores de un primer tipo y K2 pares adyacentes superiores e inferiores de un segundo tipo, en el presente documento K0 = K1 K2, K0 es un número entero positivo mayor o igual a 6*Mb, y K2 es un número entero positivo mayor o igual a 1 y menor o igual a 2*Mb.
Los pares adyacentes superiores e inferiores son un conjunto constituido por dos elementos {hby, hb((i+1) mod Mb)j} correspondiente a matrices cuadradas no nulas en cada matriz base.
Los pares adyacentes superiores e inferiores del primer tipo son pares adyacentes superiores e inferiores que son congruentes con ((hbij-hb((i+1)mod Mb)j) mod Q = a.
Los pares adyacentes superiores e inferiores del segundo tipo son pares adyacentes superiores e inferiores que son congruentes con (hbij-hb((i+1)mod Mb)j) mod Q = d.
En el presente documento, hbij representa un elemento en la fila iesima y la columna jesima de la matriz base, en el presente documento, a y d no son iguales, a y d son números enteros mayores o iguales a 0 y menores o iguales a Q-1, Q es un factor de multiplicación de un factor de expansión z, un peso de columna de la columna jésima se refiere al número total de elementos correspondientes a la matriz cuadrada distinta de cero, en la columna jésima de la matriz base, i es un índice de fila de la matriz base, j es un índice de columna de la matriz base, i = 0, 1, ..., Mb-1, j=0, 1, ..., Nb-1.
Si K2 es mayor o igual a 3, para dos filas cualquiera adyacentes (la fila x1a y la fila ((x1 1) mod Mb)esima), el número de pares adyacentes del segundo tipo es como máximo 3. En esta etapa, x1 toma el valor de 0 a Mb-1.
El valor de Q = 2 y, para ejemplos que no forman parte de la invención, Q toma cualquiera de los siguientes: 3, 4, 5, 6, 7 y 8.
El número total de elementos que corresponden a las matrices cuadradas no nulas en la columna jésima de la matriz base es Lj, el primer elemento de arriba a abajo es 0, Lj es un número entero positivo mayor o igual a 1, y j = 0, 1, ..., Nb-1.
En la etapa 902, de acuerdo con la matriz base y el factor de expansión correspondiente, se realiza una operación de descodificación LDPC para obtener los datos de información de (Nb-Mb)xz bits de acuerdo con la palabra de código de Nbxz bits.
En esta etapa, z es el factor de expansión y z es un número entero positivo mayor o igual a 1.
Esta etapa incluye específicamente lo siguiente.
1. Al usar un algoritmo de propagación de creencias (BP) en capas o un algoritmo min-sum corregido, se realiza una actualización de fila en la matriz base, que incluye:
en una iteración de número impar, además de actualizar la información extrínseca correspondiente a elementos que no sean pares adyacentes del segundo tipo, solo se actualiza la información extrínseca correspondiente a un elemento en cada par adyacente del segundo tipo,
en una iteración de número par, además de actualizar la información extrínseca correspondiente a elementos que no sean pares adyacentes del segundo tipo, solo se actualiza la información extrínseca correspondiente a otro elemento en cada par adyacente del segundo tipo, y
la información extrínseca es información de un nodo de comprobación a un nodo variable; y
2. se calcula una razón logarítmica de verosimilitud para una palabra de código utilizando la información extrínseca y se toma una decisión firme y se verifica si el resultado es correcto, y si es correcto, se emite la palabra de código correcta y, si está mal, se continúa un procesamiento de descodificación.
Realización 5
La realización de la presente invención proporciona un dispositivo de codificación para códigos LDPC estructurados y la estructura del dispositivo de codificación se muestra en la figura 10. El dispositivo de codificación incluye:
un módulo de almacenamiento 1001 de la matriz base, configurado para determinar una matriz base utilizada para codificar, que incluye K0 pares adyacentes superiores e inferiores. En el presente documento, la matriz base incluye un bloque A de Mbx (Nb-Mb) correspondiente a bits sistemáticos y un bloque B de MbxMb correspondiente a bits de comprobación. La matriz base incluye K1 pares adyacentes superiores e inferiores de un primer tipo y K2 pares adyacentes superiores e inferiores de un segundo tipo, en el presente documento K0 = K1 K2, K0 es un número entero positivo mayor o igual a 6* Mb, K2 es un número entero positivo mayor o igual a 0 y menor o igual a 2*Mb, los pares adyacentes superiores e inferiores son un conjunto constituido por dos elementos {hby, hb((i+i) mod Mb)j} correspondiente a matrices cuadradas no nulas en cada matriz base, esto es, un conjunto constituido por dos elementos adyacentes que corresponden a matrices cuadradas no nulas en alguna columna de la matriz base, en el presente documento, la última fila y la primera fila se definen como filas adyacentes, y la última fila se define como una fila anterior de la primera fila;
los pares adyacentes superiores e inferiores del primer tipo son pares adyacentes superiores e inferiores que son congruentes con ((hby-hb((i+i)mod Mb)y) mod Q = a;
los pares adyacentes superiores e inferiores del segundo tipo son pares adyacentes superiores e inferiores que son congruentes con (hby-hb((i+i)mod Mb)j) mod Q = d;
En el presente documento, hby representa un elemento en la fila iesima y la columna jesima de la matriz base, en el presente documento, a y d no son iguales, a y d son números enteros mayores o iguales a 0 y menores o iguales a Q-1, Q es un factor de multiplicación de un factor de expansión z, un peso de la columna de la jesima columna se refiere al número total de elementos correspondientes a matrices cuadradas no nulas en la jesima columna de la matriz base, i es un índice de fila de la matriz base, j es un índice de columna de la matriz base, i = 0, 1, ..., Mb-1, j=0, 1, ..., Nb-1; y
un módulo de operación de codificación 1002, configurado para, de acuerdo con la matriz base y el factor de expansión correspondiente a la matriz base, realizar una operación de codificación LDPC para obtener una palabra de código de bits Nbxz de acuerdo con los datos fuente de (Nb-Mb)xz bits, en el presente documento, z es el factor de expansión y z es un número entero positivo mayor o igual a 1.
Preferentemente, si K2 es mayor o igual a 3, para dos filas cualquiera adyacentes (la fila x1a y la fila ((x1 1) mod Mb)esima), el número de pares adyacentes del segundo tipo es como máximo 3, en el presente documento, el índice de fila x1 toma el valor de 0 a Mb-1.
El valor de Q = 2 y, para ejemplos que no forman parte de la invención, Q toma cualquiera de los siguientes: 3, 4, 5, 6, 7 y 8.
Preferentemente, el número total de elementos que corresponden a las matrices cuadradas no nulas en la columna jesima de la matriz base es Lj, el primer elemento de arriba a abajo es 0, Lj es un número entero positivo mayor o igual a 1, y j = 0, 1, ..., Nb-1.
Preferentemente, el valor de K0 toma cualquiera de los siguientes:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 y 12.
La realización de la presente invención proporciona además un dispositivo de descodificación para códigos LDPC estructurados y la estructura del dispositivo de descodificación se muestra en la figura 11. El dispositivo de descodificación incluye:
un módulo de almacenamiento 1101 de la matriz base, configurado para determinar una matriz base utilizada para descodificar, que incluye K0 pares adyacentes superiores e inferiores. En el presente documento, la matriz base incluye un bloque A de Mbx (Nb-Mb) correspondiente a bits sistemáticos y un bloque B de MbxMb correspondiente a bits de comprobación. La matriz base incluye K1 pares adyacentes superiores e inferiores de un primer tipo y K2 pares adyacentes superiores e inferiores de un segundo tipo, en el presente documento K0 = K1 K2, K0 es un número entero positivo mayor o igual a 6*Mb, y K2 es un número entero positivo mayor o igual a 1 y menor o igual a 2*Mb; los pares adyacentes superiores e inferiores se definen como un conjunto constituido por dos elementos {hby, hb((i+1) mod Mb)j} correspondiente a matrices cuadradas no nulas en cada matriz base, esto es, un conjunto constituido por dos elementos adyacentes que corresponden a matrices cuadradas no nulas en alguna columna de la matriz base, en el presente documento, la última fila y la primera fila se definen como filas adyacentes, y la última fila se define como una fila anterior de la primera fila;
los pares adyacentes superiores e inferiores del primer tipo son pares adyacentes superiores e inferiores que son congruentes con ((hby-hb((i+1)mod Mb)j) mod Q = a;
los pares adyacentes superiores e inferiores del segundo tipo son pares adyacentes superiores e inferiores que son congruentes con (hby-hb((i+1)mod Mb)j) mod Q = d;
En el presente documento, hby representa un elemento en la fila iesima y la columna jesima de la matriz base, en el presente documento, a y d no son iguales, a y d son números enteros de 0 a Q-1, Q es un factor de multiplicación de un factor de expansión z, un peso de la columna de ja jesima columna se refiere al número total de elementos correspondientes a matrices cuadradas no nulas en la jesima columna de la matriz base, i es un índice de fila de la matriz base, j es un índice de columna de la matriz base, i = 0, 1, ..., Mb-1, j=0, 1, ..., Nb-1;
un módulo de operación de descodificación 1102, configurado para, de acuerdo con la matriz base y el factor de expansión correspondiente, realizar una operación de descodificación LDPC para obtener los datos de información de (Nb-Mb)xz bits de acuerdo con una palabra de código de Nbxz bits, en el presente documento, z es el factor de expansión y z es un número entero positivo mayor o igual a 1.
Preferentemente, si K2 es mayor o igual a 3, para dos filas cualquiera adyacentes (la fila x1a y la fila ((x1 1) mod Mb)esima), el número de pares adyacentes del segundo tipo es como máximo 3. En el presente documento, el índice de fila x1 toma el valor de 0 a Mb-1.
El valor de Q = 2 y, para ejemplos que no forman parte de la invención, Q toma cualquiera de los siguientes: 3, 4, 5, 6, 7 y 8.
Preferentemente, el número total de elementos que corresponden a las matrices cuadradas no nulas en la columna jesima de la matriz base es Lj, el primer elemento de arriba a abajo es 0, Lj es un número entero positivo mayor o igual a 1, y j = 0, 1, ..., Nb-1.
Preferentemente, el módulo de operación de descodificación 1102 incluye:
una unidad de actualización de filas para la matriz base 11021, configurado para: usar un algoritmo de BP en capas y un algoritmo min-sum corregido para realizar una actualización de fila en la matriz base, que incluye:
en una iteración de número impar, además de actualizar la información extrínseca correspondiente a elementos que no sean pares adyacentes del segundo tipo, solo se actualiza la información extrínseca correspondiente a un elemento en cada par adyacente del segundo tipo,
en una iteración de número par, además de actualizar la información extrínseca correspondiente a elementos que no sean pares adyacentes del segundo tipo, solo se actualiza la información extrínseca correspondiente a otro elemento en cada par adyacente del segundo tipo, y
la información extrínseca es información del nodo de comprobación al nodo variable; y
una unidad de decisión de descodificación 11022, configurado para calcular una razón logarítmica de verosimilitud para una palabra de código utilizando la información extrínseca y realizar una decisión firme y verificar si el resultado es correcto y, si es correcto, se envía la palabra de código correcta y, si es incorrecto, se continúa el procesamiento de descodificación.
Las realizaciones de la presente invención proporcionan un procedimiento de codificación, procedimiento de descodificación, dispositivo de codificación y dispositivo de descodificación para códigos de LDPC estructurados. Al determinar una matriz base utilizada para descodificar o codificar, que incluye K0 pares adyacentes superiores e inferiores, de acuerdo con la matriz base y el factor de expansión correspondiente a la matriz base, se completa la descodificación o codificación, se realiza la codificación y descodificación LDPC a la alta velocidad de la cola y se resuelve el problema existente de baja eficiencia de un descodificador/codificador. La matriz diseñada por la realización de la presente invención puede mejorar de forma revolucionaria la eficiencia del descodificador en combinación con un algoritmo de descodificación específico, que es significativa para el desarrollo y la aplicación de los códigos LDPC de baja complejidad y velocidad ultraalta. Las soluciones tecnicas proporcionadas por las realizaciones de la presente invención pueden ser aplicables a una tecnología de codificación de corrección de errores para la transmisión de datos en un sistema de comunicación digital para obtener códigos LDPC cuya eficiencia se mejora y cuya complejidad se reduce, y particularmente aplicables a un escenario de velocidad ultraalta.
Los expertos en la técnica pueden entender que todas o parte de las etapas de las realizaciones mencionadas anteriormente pueden implementarse usando un proceso de programa informático y el programa informático puede almacenarse en un medio de almacenamiento legible por ordenador y ejecutarse en una plataforma de hardware adecuada (tal como un sistema, equipo, aparatos, dispositivo y así sucesivamente), y durante la ejecución, se incluye una de las etapas de la realización del procedimiento o una combinación de las mismas.
Como alternativa, todas o parte de las etapas de las realizaciones mencionadas anteriormente también se pueden implementar con circuitos integrados, estas etapas pueden hacerse en módulos de circuito integrado individuales respectivamente o una pluralidad de los módulos o etapas pueden hacerse en un solo módulo de circuito integrado para ser implementado. Por lo tanto, la presente invención no se limita a ninguna combinación específica de hardware y software.
Cada dispositivo/módulo funcional/unidad funcional en las realizaciones mencionadas anteriormente puede implementarse con dispositivos informáticos universales, pueden concentrarse en un único dispositivo informático o distribuirse en una red compuesta por una pluralidad de dispositivos informáticos.
Cuando cada dispositivo/módulo funcional/unidad funcional en las realizaciones mencionadas anteriormente se implementa en forma de módulo funcional de software y se vende o utiliza como un producto individual, pueden almacenarse en un medio de almacenamiento legible por ordenador. El medio de almacenamiento legible por ordenador mencionado anteriormente puede ser una memoria de solo lectura, disco magnético u óptico, y similares. Cualquier persona familiarizada con el campo técnico de la técnica puede concebir fácilmente cambios o reemplazos dentro del alcance técnico desvelado en la presente invención y los cambios o reemplazos deben caer dentro del alcance de protección de la presente invención. Por lo tanto, el alcance de protección de la presente invención debe estar sujeto al alcance de protección de las reivindicaciones.
Aplicabilidad industrial
Usando la descodificación/codificación aplicable a los códigos LDPC estructurados en alas realizaciones de la presente invención, se realizan codificaciones y descodificaciones LDPC a velocidad de la cola alta.

Claims (13)

REIVINDICACIONES
1. Un procedimiento de codificación para códigos de comprobación de paridad de baja densidad estructurados, LDPC, que comprende:
determinar (801) una matriz base MbxNb usada para codificar, donde la matriz base comprende un bloque A de Mbx(Nb-Mb) correspondiente a bits sistemáticos y un bloque B de MbxMb correspondiente a bits de comprobación, la matriz base tiene K0 pares adyacentes superiores e inferiores, los K0 pares adyacentes superiores e inferiores tienen K1 pares adyacentes superiores e inferiores de un primer tipo y K2 pares adyacentes arriba y abajo de un segundo tipo, donde K0 = K1 K2, los pares adyacentes superiores e inferiores son un conjunto constituido por dos elementos {hby, hb((i+1) mod Mb)j} en la matriz base correspondiente a matrices cuadradas no nulas,
los pares adyacentes superiores e inferiores del primer tipo son pares adyacentes superiores e inferiores que son congruentes con (hbij-hb((¡+1) mod Mb)j) mod Q = a y
los pares adyacentes superiores e inferiores del segundo tipo son pares adyacentes superiores e inferiores que son congruentes con (hb -^hb^+^mod Mb)j) mod Q = d
donde hby representa un elemento en la fila iesima y la columna jesima de una matriz base y corresponde a una matriz cuadrada nula de zxz, una matriz identidad de zxz o una matriz de desplazamiento cíclico de una matriz identidad de zxz de una matriz de comprobación de paridad de un código LDPC estructurado, donde a y d no son iguales, a y d son números enteros mayores o iguales a 0 y menores o iguales a Q-1, Q es un factor del factor de expansión z del código LDPC estructurado, i es un índice de fila de la matriz base, j es un índice de columna de la matriz base, i = 0, 1, ..., Mb-1, j=0, 1, ..., Nb-1; y
de acuerdo con la matriz base y el factor de expansión z correspondiente a la matriz base, realizar (802) una operación de codificación LDPC para obtener una palabra de código de Nbxz bits basada en datos fuente de (Nb-Mb)xz bits, donde z es un número entero positivo mayor que 1, caracterizado por que
K0 es un número entero positivo mayor o igual a 6* Mb, K2 es un entero positivo mayor o igual a 0 y menor que 2*Mb y Q es 2.
2. El procedimiento de acuerdo con la reivindicación 1, donde,
si K2 es mayor o igual a 3, para cualquier fila x1a y fila ((x1 1) mod Mb)esima, un número de pares adyacentes del segundo tipo es como máximo 3, donde x1 = 0, 1, ..., Mb-1.
3. El procedimiento de acuerdo con la reivindicación 1, donde un número total de elementos en una columna jesima de la matriz base correspondiente a las matrices cuadradas no nulas es Lj un primer elemento de arriba a abajo en la columna jesima de la matriz base es 0, Lj es un número entero positivo mayor o igual a 1, y j = 0, 1, ..., Nb-1.
4. Un procedimiento de descodificación en capas para códigos de comprobación de paridad de baja densidad estructurados, LDPC, que comprende:
determinar (901) una matriz base MbxNb utilizada para descodificar, donde la matriz básica comprende un bloque A de Mbx (Nb-Mb) correspondiente a bits sistemáticos y un bloque B de MbxMb correspondiente a bits de comprobación, la matriz base tiene K0 pares adyacentes superiores e inferiores, los K0 pares adyacentes superiores e inferiores tienen K1 pares adyacentes superiores e inferiores de un primer tipo y K2 pares adyacentes arriba y abajo de un segundo tipo, donde K0 = K1 K2, los pares adyacentes superiores e inferiores son un conjunto constituido por dos elementos {hbij, hb((i+1) mod Mb)j} en la matriz base correspondiente a matrices cuadradas no nulas,
los pares adyacentes superiores e inferiores del primer tipo son pares adyacentes superiores e inferiores que son congruentes con (hbij-hb((i+1) mod Mb)j) mod Q = a, y
los pares adyacentes superiores e inferiores del segundo tipo son pares adyacentes superiores e inferiores que son congruentes con (hbij-hb((i+1)mod Mb)j) mod Q = d
donde hbij representa un elemento en la fila iesima y la columna jesima de una matriz base y corresponde a una matriz cuadrada nula de zxz, una matriz identidad de zxz o una matriz de desplazamiento cíclico de una matriz identidad de zxz de una matriz de comprobación de paridad de un código LDPC estructurado, donde a y d no son iguales, a y d son números enteros mayores o iguales a 0 y menores o iguales a Q-1, Q es un factor del factor de expansión z del código LDPC estructurado, i es un índice de fila de la matriz base, j es un índice de columna de la matriz base, i = 0, 1, ..., Mb-1, j=0, 1, ..., Nb-1; y
de acuerdo con la matriz base y un factor de expansión z correspondiente, realizar (902) una operación de descodificación LDPC para obtener datos de información de (Nb-Mb)xz bits basados en una palabra de código de Nbxz bits, donde z es un número entero positivo mayor que 1, caracterizado por que
K0 es un número entero positivo mayor o igual a 6* Mb, K2 es un entero positivo mayor o igual a 0 y menor que 2*Mb y Q es 2.
5. El procedimiento de acuerdo con la reivindicación 4, donde,
si K2 es mayor o igual a 3, para cualquier fila x1a y fila ((x1 1) mod Mb)esima, un número de pares adyacentes del segundo tipo es como máximo 3, donde x1 = 0, 1, ..., Mb-1.
6. El procedimiento de acuerdo con la reivindicación 4, donde un número total de elementos en una columna jésima de la matriz base correspondiente a las matrices cuadradas no nulas es Lj, un primer elemento de arriba a abajo en la columna jésima de la matriz base es 0, Lj es un número entero positivo mayor o igual a 1, y j = 0, 1, ..., Nb-1.
7. El procedimiento de acuerdo con la reivindicación 4, donde la etapa de realizar una operación de descodificación LDPC comprende: usar una propagación de creencias en capas, BP, algoritmo y un algoritmo min-sum corregido para realizar una actualización de fila en la matriz base, que comprende:
en una iteración LDPC de número impar, además de actualizar la información extrínseca correspondiente a elementos que no sean pares adyacentes del segundo tipo, solo actualizar la información extrínseca correspondiente a un elemento en cada par adyacente del segundo tipo,
en una iteración LDPC de números pares, además de actualizar la información extrínseca correspondiente a elementos que no sean pares adyacentes del segundo tipo, solo actualizar la información extrínseca correspondiente a otro elemento en cada par adyacente del segundo tipo,
donde la información extrínseca es información de un nodo de comprobación a un nodo variable; y calcular una razón logarítmica de verosimilitud para una palabra de código utilizando la información extrínseca y realizar una decisión firme, y comprobar si un resultado es correcto, y si es correcto, generar una palabra de código correcta y, si es incorrecto, continuar la descodificación LDPC.
8. Un dispositivo de codificación para códigos estructurados de comprobación de paridad de baja densidad, LDPC, que comprende:
un módulo de almacenamiento de matriz base (1001), configurado para almacenar al menos una matriz base Mb x Nb utilizada para codificar, donde la matriz base comprende un bloque A de Mbx(Nb-Mb) correspondiente a bits sistemáticos y un bloque B de MbxMb correspondiente a bits de comprobación, la matriz base tiene K0 pares adyacentes superiores e inferiores, los K0 pares adyacentes superiores e inferiores tienen K1 pares adyacentes superiores e inferiores de un primer tipo y K2 pares adyacentes arriba y abajo de un segundo tipo, donde K0 = K1 K2, los pares adyacentes superiores e inferiores son un conjunto constituido por dos elementos {hby, hb((i+1) mod Mb)j} en la matriz base correspondiente a matrices cuadradas no nulas,
los pares adyacentes superiores e inferiores del primer tipo son pares adyacentes superiores e inferiores que son congruentes con (hby-hb((i+1) mod Mb)j) mod Q = a, y
los pares adyacentes superiores e inferiores del segundo tipo son pares adyacentes superiores e inferiores que son congruentes con (hby-hb((i+1)mod Mb)j) mod Q = d
donde hb¡j representa un elemento en la fila iesima y la columna jesima de una matriz base y corresponde a una matriz cuadrada nula de zxz, una matriz identidad de zxz o una matriz de desplazamiento cíclico de una matriz identidad de zxz de una matriz de comprobación de paridad del código LDPC estructurado, donde a y d no son iguales, a y d son números enteros mayores o iguales a 0 y menores o iguales a Q-1, Q es un factor del factor de expansión z del código LDPC estructurado, i es un índice de fila de la matriz base, j es un índice de columna de la matriz base, i = 0, 1, ..., Mb-1, j=0, 1, ..., Nb-1; y un módulo de operación de codificación (1002), configurado para determinar la matriz base y el factor de expansión z correspondiente a la matriz base, y realizar una operación de codificación LDPC para obtener una palabra de código de Nbxz bits basada en datos fuente de (Nb-Mb)xz bits, donde z es un número entero positivo mayor que 1, caracterizado por que
K0 es un número entero positivo mayor o igual a 6* Mb, K2 es un entero positivo mayor o igual a 0 y menor que 2*Mb y Q es 2.
9. El dispositivo de acuerdo con la reivindicación 8, donde si K2 es mayor o igual a 3, para cualquier fila x1a y fila ((x1 1) mod Mb)esima, un número de pares adyacentes del segundo tipo es como máximo 3, donde x1 = 0, 1, ..., Mb-1.
10. El dispositivo de acuerdo con la reivindicación 8, donde un número total de elementos en una columna jésima de la matriz base correspondiente a matrices cuadradas no nulas es Lj, un primer elemento de arriba a abajo es 0, Lj es un número entero positivo mayor o igual a 1, y j = 0, 1, ..., Nb-1.
11. Un dispositivo de descodificación en capas para códigos de comprobación de paridad de baja densidad estructurados, LDPC, que comprende:
un módulo de almacenamiento de matriz base (1101), configurado para almacenar al menos una matriz base MbxNb utilizada para descodificar, donde la matriz base comprende un bloque A de Mbx(Nb-Mb) correspondiente a bits sistemáticos y un bloque B de MbxMb correspondiente a bits de comprobación, la matriz base tiene K0 pares adyacentes superiores e inferiores, los K0 pares adyacentes superiores e inferiores tienen K1 pares adyacentes superiores e inferiores de un primer tipo y K2 pares adyacentes arriba y abajo de un segundo tipo, donde K0 = K1 K2, los pares adyacentes superiores e inferiores son un conjunto constituido por dos elementos {hbij, hb((i+1) mod Mb)j} en la matriz base correspondiente a matrices cuadradas no nulas, los pares adyacentes superiores e inferiores del primer tipo son pares adyacentes superiores e inferiores que son congruentes con (hbij-hb((i+1) mod Mb)j) mod Q = a, y
los pares adyacentes superiores e inferiores del segundo tipo son pares adyacentes superiores e inferiores que son congruentes con (hbij-hb((i+1)mod Mb)j) mod Q = d
donde hby representa un elemento en la fila iesima y la columna jesima de una matriz base y corresponde a una matriz cuadrada nula de zxz, una matriz identidad de zxz o una matriz de desplazamiento cíclico de una matriz identidad de zxz de una matriz de comprobación de paridad de un código LDPC estructurado, donde a y d no son iguales, a y d son números enteros mayores o iguales a 0 y menores o iguales a Q-1, Q es un factor del factor de expansión z del código LDPC estructurado, i es un índice de fila de la matriz base, j es un índice de columna de la matriz base, i = 0, 1, ..., Mb-1, j=0, 1, ..., Nb-1; y
un módulo de operación de descodificación (1102), configurado para determinar la matriz base y un factor de expansión z correspondiente y realizar una operación de descodificación LDPC para obtener datos de información de (Nb-Mb)xz bits basadosen una palabra de código de Nbxz bits, donde z es un número entero positivo mayor que 1,
caracterizado por que
K0 es un número entero positivo mayor o igual a 6* Mb, K2 es un entero positivo mayor o igual a 0 y menor que 2*Mb y Q es 2.
12. El dispositivo de la reivindicación 11, en el que
si K2 es mayor o igual a 3, para cualquier fila x1a y fila ((x1 1) mod Mb)esima, un número de pares adyacentes del segundo tipo es como máximo 3, donde x1 = 0, 1, ..., Mb-1.
13. El dispositivo de la reivindicación 11, donde, el módulo de operación de descodificación comprende:
una unidad de actualización de filas (11021) para la matriz base, configurado para: usar una propagación de creencias en capas, BP, algoritmo y un algoritmo min-sum corregido para realizar una actualización de fila en la matriz base, que comprende:
en una iteración LDPC de número impar, además de actualizar la información extrínseca correspondiente a elementos que no sean pares adyacentes del segundo tipo, solo actualizar la información extrínseca correspondiente a un elemento en cada par adyacente del segundo tipo,
en una iteración LDPC de números pares, además de actualizar la información extrínseca correspondiente a elementos que no sean pares adyacentes del segundo tipo, solo actualizar la información extrínseca correspondiente a otro elemento en cada par adyacente del segundo tipo,
donde la información extrínseca es de un nodo de comprobación a un nodo variable; y
una unidad de decisión de descodificación (11022), configurado para calcular una razón logarítmica de verosimilitud para una palabra de código utilizando la información extrínseca y realizar una decisión firme y comprobar si un resultado es correcto, y, si es correcto, se genera una palabra de código correcta y, si es incorrecto, se continua la descodificación LDPC.
ES14882882T 2014-02-21 2014-08-25 Procedimiento de codificación, procedimiento de descodificación, dispositivo de codificación y dispositivo de descodificación para códigos LDPC estructurados Active ES2788664T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410061163.0A CN104868925B (zh) 2014-02-21 2014-02-21 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
PCT/CN2014/085132 WO2015123979A1 (zh) 2014-02-21 2014-08-25 结构化ldpc的编码方法、译码方法、编码装置和译码装置

Publications (1)

Publication Number Publication Date
ES2788664T3 true ES2788664T3 (es) 2020-10-22

Family

ID=53877603

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14882882T Active ES2788664T3 (es) 2014-02-21 2014-08-25 Procedimiento de codificación, procedimiento de descodificación, dispositivo de codificación y dispositivo de descodificación para códigos LDPC estructurados

Country Status (7)

Country Link
US (1) US10320419B2 (es)
EP (2) EP3110009B1 (es)
JP (1) JP6555759B2 (es)
KR (1) KR101789959B1 (es)
CN (1) CN104868925B (es)
ES (1) ES2788664T3 (es)
WO (1) WO2015123979A1 (es)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106160937B (zh) 2015-04-15 2019-01-04 中兴通讯股份有限公司 一种实现码块分割的方法及装置
CN106921395B (zh) * 2015-12-28 2021-09-28 北京忆芯科技有限公司 Ldpc编码方法及其装置
WO2017193558A1 (zh) * 2016-05-13 2017-11-16 中兴通讯股份有限公司 结构化ldpc码的数据处理方法及装置
CN107370489B (zh) 2016-05-13 2020-07-28 中兴通讯股份有限公司 结构化ldpc码的数据处理方法及装置
CN116827357A (zh) 2016-05-13 2023-09-29 中兴通讯股份有限公司 一种结构化低密度奇偶校验码ldpc的编码、译码方法及装置
CN107733440B (zh) * 2016-08-12 2022-12-02 中兴通讯股份有限公司 多边类型结构化ldpc处理方法及装置
US10270466B2 (en) * 2016-08-15 2019-04-23 Hughes Network Systems, Llc LDPC performance improvement using SBE-LBD decoding method and LBD collision reduction
CN107888198B (zh) 2016-09-30 2023-05-26 中兴通讯股份有限公司 准循环ldpc编译码方法、装置及ldpc编译码器
WO2018084735A1 (en) * 2016-11-03 2018-05-11 Huawei Technologies Co., Ltd. Efficiently decodable qc-ldpc code
CN108023598B (zh) * 2016-11-03 2021-05-07 华为技术有限公司 编码方法、译码方法及无线通信设备
CN108234064B (zh) * 2016-12-09 2022-05-03 中兴通讯股份有限公司 准循环ldpc码数据处理装置及处理方法
CN108270448B (zh) * 2017-01-04 2022-11-15 中兴通讯股份有限公司 准循环低密度奇偶校验编码方法及装置
CN110430010B (zh) * 2017-01-05 2020-08-07 华为技术有限公司 信息处理的方法和设备
WO2018126914A1 (zh) * 2017-01-09 2018-07-12 中兴通讯股份有限公司 准循环低密度奇偶校验码的编码方法及装置、存储介质
TWI652907B (zh) * 2017-01-09 2019-03-01 聯發科技股份有限公司 用於新無線電低密度奇偶校驗碼的偏移係數和提升因數設計
CN106921396B (zh) * 2017-03-02 2019-12-06 电子科技大学 一种用于ldpc码的混合译码方法
CN108631925B (zh) * 2017-03-24 2022-05-03 中兴通讯股份有限公司 一种准循环低密度奇偶校验编码处理方法及装置
SG11202009379VA (en) 2017-03-24 2020-10-29 Zte Corp Processing method and device for quasi-cyclic low density parity check coding
CN114614947A (zh) * 2017-05-04 2022-06-10 三星电子株式会社 在通信或广播***中用于信道编码和解码的方法和设备
WO2018201912A1 (zh) * 2017-05-05 2018-11-08 电信科学技术研究院有限公司 低密度奇偶校验码的基础图选择方法及装置
CN108809509B (zh) * 2017-05-05 2021-01-22 电信科学技术研究院 低密度奇偶校验码的基础图选择方法及装置
AU2017418080B9 (en) 2017-06-15 2021-01-28 Huawei Technologies Co., Ltd. Information processing method and communication apparatus
US10623139B2 (en) * 2017-06-23 2020-04-14 Samsung Electronics Co., Ltd. Method and apparatus for channel encoding and decoding in communication or broadcasting system
KR102378706B1 (ko) * 2017-06-23 2022-03-28 삼성전자 주식회사 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
CN109327225B9 (zh) 2017-06-27 2021-12-10 华为技术有限公司 信息处理的方法、装置和通信设备
CN110677157B (zh) 2017-06-27 2023-02-07 华为技术有限公司 信息处理的方法、装置和通信设备
CN108712174B9 (zh) * 2017-06-27 2019-08-30 华为技术有限公司 信息处理的方法、装置和通信设备
CN109391367B (zh) * 2017-08-11 2022-12-30 华为技术有限公司 通信方法和装置
CN109951250B (zh) * 2017-12-21 2021-01-08 华为技术有限公司 通信信号的ldpc编码方法和装置
CN109995379B (zh) * 2017-12-29 2021-07-16 华为技术有限公司 处理信息的方法和装置
CN110661593B (zh) * 2018-06-29 2022-04-22 中兴通讯股份有限公司 一种译码器、方法和计算机存储介质
CN111064475A (zh) * 2018-10-16 2020-04-24 华为技术有限公司 基于低密度奇偶校验码的译码方法及装置
CN111224673A (zh) * 2018-11-26 2020-06-02 中兴通讯股份有限公司 译码方法、装置及译码器
CN112583419B (zh) * 2019-09-30 2024-06-18 华为技术有限公司 一种译码方法及装置
CN115250162A (zh) * 2021-04-26 2022-10-28 华为技术有限公司 码字同步方法、接收器、网络设备及网络***

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1641128A1 (en) * 2004-09-22 2006-03-29 STMicroelectronics N.V. Method and device for delivering punctured code words encoded with a LDPC code.
US7752521B2 (en) * 2004-10-12 2010-07-06 Nortel Networks Limited Low density parity check (LDPC) code
CN100550655C (zh) * 2004-11-04 2009-10-14 中兴通讯股份有限公司 一种低密度奇偶校验码的编码器/译码器及其生成方法
KR101216075B1 (ko) * 2004-12-22 2012-12-26 엘지전자 주식회사 채널 코드를 이용한 복호화 및 복호화 장치
CN100486150C (zh) * 2005-01-23 2009-05-06 中兴通讯股份有限公司 基于非正则低密度奇偶校验码的编译码器及其生成方法
US7774675B1 (en) * 2005-12-05 2010-08-10 Marvell International Ltd. LDPC codes and expansion method
US8028216B1 (en) * 2006-06-02 2011-09-27 Marvell International Ltd. Embedded parity coding for data storage
CN101212277A (zh) * 2006-12-29 2008-07-02 中兴通讯股份有限公司 支持多协议标准的ldpc码译码装置
CN101217337B (zh) * 2007-01-01 2013-01-23 中兴通讯股份有限公司 一种支持递增冗余混合自动重传的低密度奇偶校验码编码装置和方法
CN101325474B (zh) * 2007-06-12 2012-05-09 中兴通讯股份有限公司 Ldpc码的混合自动请求重传的信道编码及调制映射方法
JP4487213B2 (ja) * 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、並びにプログラム
US20090113256A1 (en) * 2007-10-24 2009-04-30 Nokia Corporation Method, computer program product, apparatus and device providing scalable structured high throughput LDPC decoding
US8392786B2 (en) * 2008-05-07 2013-03-05 Broadcom Corporation LDPC coding systems for 60 GHz millimeter wave based physical layer extension
US8370711B2 (en) * 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
JP2010114862A (ja) * 2008-10-10 2010-05-20 Panasonic Corp 符号化器、送信装置及び符号化方法
US8627166B2 (en) * 2011-03-16 2014-01-07 Samsung Electronics Co., Ltd. LDPC code family for millimeter-wave band communications in a wireless network
CN103220005B (zh) * 2013-05-02 2017-04-12 广州海格通信集团股份有限公司 用于生成ldpc码校验矩阵的方法、及该ldpc码编码方法
CN103236860B (zh) * 2013-05-02 2016-09-07 广州海格通信集团股份有限公司 用于生成ldpc码校验矩阵的方法、及该ldpc码编码方法
CN104202057B (zh) * 2014-02-12 2019-08-16 中兴通讯股份有限公司 信息处理方法及装置

Also Published As

Publication number Publication date
KR20160122261A (ko) 2016-10-21
US20170230058A1 (en) 2017-08-10
US10320419B2 (en) 2019-06-11
EP3799313A1 (en) 2021-03-31
EP3110009A4 (en) 2017-03-08
JP2017506469A (ja) 2017-03-02
KR101789959B1 (ko) 2017-10-25
EP3110009B1 (en) 2020-03-11
CN104868925A (zh) 2015-08-26
CN104868925B (zh) 2019-01-22
WO2015123979A1 (zh) 2015-08-27
EP3110009A1 (en) 2016-12-28
JP6555759B2 (ja) 2019-08-07

Similar Documents

Publication Publication Date Title
ES2788664T3 (es) Procedimiento de codificación, procedimiento de descodificación, dispositivo de codificación y dispositivo de descodificación para códigos LDPC estructurados
JP7372369B2 (ja) 構造的ldpcの符号化、復号化方法および装置
US10530392B2 (en) Vertical layered finite alphabet iterative decoding
ES2529182T3 (es) Diseño de LDPC estructurado con agrupación de filas de vector
CN105075128B (zh) 用于经提升ldpc码的方法、计算机可读存储介质和设备
JP4168055B2 (ja) 低密度パリティ検査符号の生成方法及び装置
KR20090092892A (ko) Ldpc 코드를 이용한 복호화 방법
WO2014122772A1 (ja) 誤り訂正符号の検査行列のデータ構造、並びに誤り訂正符号の符号化率可変装置および可変方法
US7493548B2 (en) Method and apparatus for encoding and decoding data
US8713399B1 (en) Reconfigurable barrel shifter and rotator
WO2015135298A1 (zh) 一种支持低码率编码的方法及装置、计算机存储介质
CN104092536A (zh) 便于硬件实现的量子密钥分发中的信息协调方法
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
US20100050045A1 (en) Method of generating a parity check matrix for ldpc encoding and decoding
WO2017193614A1 (zh) 结构化ldpc的编码、译码方法及装置
US8650452B2 (en) Non-binary QC-LDPC code decoding device and associated method
Ma et al. Recursive encoding of spatially coupled LDPC codes with arbitrary rates
Balasubramanian ITERATIVE DECODING OF SPATIALLY-COUPLED PRODUCT CODES USING GUESSING RANDOM ADDITIVE NOISE DECODING ALGORITHMS
CN113517895A (zh) 用于准循环低密度奇偶校验码的垂直分层解码的方法及装置