ES2907089T3 - Diseño de códigos ldpc cuasi-cíclicos para un sistema de comunicaciones móviles 5g - Google Patents

Diseño de códigos ldpc cuasi-cíclicos para un sistema de comunicaciones móviles 5g Download PDF

Info

Publication number
ES2907089T3
ES2907089T3 ES18825332T ES18825332T ES2907089T3 ES 2907089 T3 ES2907089 T3 ES 2907089T3 ES 18825332 T ES18825332 T ES 18825332T ES 18825332 T ES18825332 T ES 18825332T ES 2907089 T3 ES2907089 T3 ES 2907089T3
Authority
ES
Spain
Prior art keywords
matrix
column
row
base
ldpc
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
ES18825332T
Other languages
English (en)
Inventor
Jie Jin
Ivan Leonidovich Mazurenko
Aleksandr Aleksandrovich Petiushko
Chaolong Zhang
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority claimed from PCT/CN2018/082851 external-priority patent/WO2019001090A1/zh
Application granted granted Critical
Publication of ES2907089T3 publication Critical patent/ES2907089T3/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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
    • 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/1174Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Un método de codificación, que comprende: obtener (601) un factor de elevación Z, donde Z es uno de 5, 10, 20, 40, 80, 160 o 320; codificar (502; 603) una secuencia de entrada c de longitud K basada en una matriz de comprobación de paridad de baja densidad, LDPC, H en donde la matriz LDPC H se determina (602) de acuerdo con una matriz base y el factor de elevación Z; en donde la matriz base comprende la fila 0 a la fila m-1 y la columna 0 a la columna n-1 de la siguiente matriz HB, donde 7<=m<=42, m es un número entero, 17<=n<=52, y n es un número entero, y los elementos en la matriz base están representados respectivamente por su índice de fila i y su índice de columna j, donde 0<=i<m, 0<=j<n; en donde un elemento en la matriz base es un elemento cero o un elemento distinto de cero, y un elemento distinto de cero en la fila i y la columna j tiene un valor Vi,j, en donde cada elemento cero en la matriz base corresponde a una matriz todo cero de tamaño Z×Z en la matriz LDPC H, en donde un elemento distinto de cero en la fila i y la columna j en la matriz base corresponde a una matriz de permutación circular de tamaño Z×Z en la matriz LDPC H, y la matriz de permutación circular corresponde a una matriz de identidad Z×Z desplazada de manera circular a la derecha para Pi,j veces, donde Pi,j=mod(Vi,j,Z); y en donde en la siguiente matriz HB, todos los elementos excepto los elementos distintos de cero son elementos cero, y los elementos distintos de cero cuyos índices de fila (i), índices de columna (j) y valores correspondientes Vi,j son los siguientes: **(Tabla)**

Description

DESCRIPCIÓN
Diseño de códigos Idpc cuasi-cíclicos para un sistema de comunicaciones móviles 5g
Campo técnico
Las realizaciones de la presente solicitud se relacionan con el campo de las comunicaciones y, en particular, con un método de procesamiento de información y un aparato de comunicación.
Antecedentes
Un código de comprobación de paridad de baja densidad (LDPC) es un tipo de código de bloque lineal caracterizado por una matriz de comprobación dispersa y tiene una estructura flexible y una baja complejidad de decodificación. Debido a que se puede usar un algoritmo de decodificación iterativo parcialmente paralelo para decodificar una palabra de código codificada de LDPC, el código LDPC tiene un rendimiento más alto que un código Turbo convencional. El código LDPC puede usarse como un código de corrección de errores en un sistema de comunicación, para mejorar la confiabilidad y la utilización de energía en la transmisión basada en canales. El código LDPC también puede usarse ampliamente en comunicaciones espaciales, comunicaciones de fibra óptica, sistemas de comunicación personal, bucle de abonado digital asimétrico (ADSL), dispositivos de grabación magnética y similares. Actualmente, el código LDPC se ha considerado como uno de los esquemas de codificación de canales en los sistemas de comunicaciones móviles de quinta generación (5G).
En aplicaciones reales, se pueden usar matrices LDPC que tienen diferentes estructuras especiales. Una matriz H de LDPC, que tiene una estructura especial, se puede obtener expandiendo (también llamado levantamiento) una matriz base LDPC que tiene una estructura de cuasi ciclo (QC).
Un esquema de codificación que usa matrices LDPC-QC es adecuado para hardware con un alto grado de paralelismo y proporciona un mayor rendimiento. La matriz LDPC-QC puede diseñarse para que sea adecuada para la codificación de canales.
MEDIATEK INC: "On NR LDPC design and performance", Borrador 3GPP; R1-1710829, PROYECTO DE ASOCIACIÓN DE TERCERA GENERACIÓN (3GPP), divulga el conjunto de factores de elevación (Z) para el código LDPC-QC para el gráfico base #1 y el gráfico base #2.
ZTE: "Shift Coefficient design for BG2", BORRADOR 3GPP; R1-1710846, PROYECTO DE ASOCIACIÓN DE TERCERA GENERACIÓN (3GPP), divulga un diseño de coeficientes de cambio para el gráfico base #2 de LDPC. HUAWEI, Hisilicon: "LDPC design for eMBB data", BORRADOR 3GPP; R1-1704250, PROYECTO DE ASOCIACIÓN DE TERCERA GENERACIÓN (3GPP), divulga un diseño de un código LDPC-QC para eMBB.
ZTE Y OTROS: "Futher consideration on compact LDPC design for eMBB", Borrador 3GPP; R1-1701600, PROYECTO DE ASOCIACIÓN DE TERCERA GENERACIÓN (3GPP), divulga algunas consideraciones de esquemas de codificación LDPC. Se propone centrarse en un diseño de matriz base LDPC compacto y uniforme. MEDIATEK INC: "A multi-codebook embedded compact LDPC-QC design", Borrador 3GPP; R1-1704457, PROYECTO DE ASOCIACIÓN DE TERCERA GENERACIÓN (3GPP), divulga un código compacto LDPC-QC. Se propone que las ortogonales sin filas (no RO), las cuasi-RO y las RO puras se integren en una matriz base de señal. Se propone integrar dos códigos LDPC en una única matriz base. Se propone un conjunto de factores de elevación para suavizar aún más el rendimiento de granularidad de CBS.
Resumen
Las realizaciones de la presente invención proporcionan un método de codificación, un aparato, un medio de almacenamiento legible por ordenador y un producto de programa informático, para soportar la codificación de secuencias de bits de información con una pluralidad de longitudes. La presente invención está definida por las reivindicaciones independientes 1, 9, 12 y 13. Las características adicionales de la presente invención se presentan en las reivindicaciones dependientes.
De acuerdo con un primer aspecto, se proporcionan un método de codificación y un codificador. El codificador codifica una secuencia de entrada mediante el uso de una matriz de comprobación de paridad de baja densidad (LDPC).
De acuerdo con un segundo aspecto, se proporcionan un método de decodificación y un decodificador. El decodificador decodifica una secuencia de entrada mediante el uso de una matriz LDPC.
En una primera implementación del primer aspecto o del segundo aspecto, la matriz LDPC se obtiene en base a un factor de elevación Z y una matriz base.
En base a la implementación anterior, una matriz base de un gráfico base incluye uno de los siguientes:
la matriz base incluye la fila 0 a la fila 6, la columna 0 a la columna 16 de una de las matrices mostradas en las Figuras 3b-1 a 3b-8, o
la matriz base incluye la fila 0 a la fila 6, algunas columnas de la columna 0 a la columna 16 en una de las matrices mostradas en la Figura 3b-3, o
la matriz base es una matriz obtenida mediante la realización de una transformación de fila/columna en la fila 0 a la fila 6 columna 0 a la columna 16 en una de las matrices mostradas en la Figura 3b-3, o
la matriz base es una matriz obtenida mediante la realización de la transformación de fila/columna en la fila 0 a la fila 6, algunas columnas de la columna 0 a la columna 16 en una de las matrices mostradas en la Figura 3b-3. Para admitir diferentes longitudes de bloque de código, se necesitan diferentes factores de elevación Z para un código LDPC. En base a las implementaciones anteriores, se usan matrices base correspondientes a diferentes factores de elevación Z en base a los diferentes factores de elevación Z. En algunas implementaciones, Z=a*2j, donde 0<j<7, y ae {2,3, 5,7,9,11,13,15}.
Además, en base a las implementaciones anteriores, la matriz LDPC puede obtenerse en base a un factor de elevación Z y una matriz Hs que se obtiene mediante la compensación de la matriz base anterior. Alternativamente, la matriz LDPC se puede obtener en base a un factor de elevación Z y una matriz que se obtiene mediante la realización de una transformación de fila/columna en una matriz Hs, y Hs se obtiene mediante la compensación de la matriz base anterior. La compensación de la matriz base anterior puede aumentar o disminuir un valor de desplazamiento mayor o igual a 0 en una o más columnas por una compensación.
El gráfico base y la matriz base de la matriz LDPC en las implementaciones anteriores pueden satisfacer un requisito de rendimiento de bloques de código de una pluralidad de longitudes de bloque.
El factor de elevación Z puede determinarse por el codificador o el decodificador en base a una longitud K de la secuencia de entrada, o puede determinarse por otro dispositivo y se proporciona al codificador o al decodificador como un parámetro de entrada. Opcionalmente, la matriz LDPC se puede obtener en base al factor de elevación Z obtenido y una matriz base correspondiente al factor de elevación Z.
En una segunda implementación del primer aspecto o del segundo aspecto, la matriz LDPC se obtiene en base al factor de elevación Z y parámetro(s) de la matriz LDPC.
Los parámetros de la matriz LDPC pueden incluir un índice de fila, un índice de columna de una columna en la que se localiza un elemento distinto de cero y un valor de desplazamiento del elemento distinto de cero. Los parámetros se almacenan en formas como la fila 0 a la fila 6 en una de la Tabla 3b-3. Los parámetros de la matriz LDPC pueden incluir además un peso de fila. Las localizaciones de los elementos distintos de cero en las columnas están en una correspondencia uno a uno con los valores de desplazamiento de los elementos distintos de cero.
Para un dispositivo de comunicación en un lado transmisor, la codificación de una secuencia de entrada mediante el uso de una matriz LDPC puede incluir: codificar la secuencia de entrada mediante el uso de una matriz LDPC correspondiente al factor de elevación Z; o codificar una secuencia de entrada mediante el uso de una matriz que se obtiene al realizar una transformación de fila/columna en una matriz LDPC correspondiente al factor de elevación Z. La transformación de fila/columna en esta solicitud significa transformación de fila, transformación de columna o transformación de fila y transformación de columna.
Para un dispositivo de comunicación en un lado de recepción, la decodificación de una secuencia de entrada mediante el uso de una matriz LDPC puede incluir: decodificar la secuencia de entrada mediante el uso de una matriz LDPC correspondiente al factor de elevación Z; o decodificar la secuencia de entrada mediante el uso de una matriz que se obtiene mediante la realización de una transformación de fila/columna en una matriz LDPC correspondiente al factor de elevación Z. La transformación de fila/columna en esta solicitud significa transformación de fila, transformación de columna o transformación de fila y transformación de columna.
En una posible implementación, se puede almacenar una matriz LDPC, y la matriz LDPC se usa para codificar la secuencia de entrada, o se obtiene una matriz LDPC que se puede usar para la codificación realizando una transformación (transformación de fila/columna) o elevación basada en la matriz LDPC.
En otra implementación posible, se puede almacenar un parámetro o parámetros, y se puede obtener una matriz LDPC usada para codificar o decodificar en base al parámetro, de modo que la secuencia de entrada se pueda codificar o decodificar en base a la matriz LDPC. El parámetro o parámetros incluyen al menos uno de los siguientes: un gráfico base, una matriz base, una matriz transformada obtenida mediante la realización de una transformación de fila/columna en un gráfico base o una matriz base, una matriz de elevación basada en un gráfico base o una matriz base, una matriz de elevación basada en un gráfico base o una matriz base, un valor de desplazamiento de un elemento distinto de cero en una matriz base, o cualquier parámetro usado para obtener la matriz LDPC.
En aún otra implementación posible, la matriz base de la matriz LDPC puede almacenarse en una memoria.
En todavía otra implementación posible, el gráfico base de la matriz LDPC puede almacenarse en una memoria, y el valor de desplazamiento del elemento distinto de cero en la matriz base de la matriz LDPC puede almacenarse en la memoria.
En aún otra implementación posible, el parámetro de la matriz LDPC se almacena en una memoria de maneras similares a la Tabla 3b-3, o se pueden almacenar algunos grupos de elementos del parámetro.
En base a las posibles implementaciones anteriores, en un diseño posible, al menos uno de un gráfico base y una matriz base usada para la codificación o decodificación de LDPC se obtiene mediante la realización de una transformación de fila, una transformación de columna o una transformación de fila y una transformación de columna en al menos uno del gráfico base y la matriz base de la matriz LDPC.
De acuerdo con un tercer aspecto, se proporciona un aparato de comunicación. El aparato de comunicación puede incluir módulos de software y/o componentes de hardware configurados para realizar los diseños de métodos anteriores.
En un posible diseño, el aparato de comunicación proporcionado en el tercer aspecto incluye un procesador y un componente transceptor. El procesador y el componente transceptor pueden configurarse para realizar cualquiera de las posibles implementaciones del método de codificación o el método de decodificación. El aparato de comunicación puede ser un terminal, una estación base u otro dispositivo de red, y el componente transceptor del aparato de comunicación puede ser un transceptor. El aparato de comunicación puede ser un chip de banda base o una placa de banda base, y el componente transceptor del aparato de comunicación puede ser un circuito de entrada/salida del chip de banda base o de la placa de banda base, y está configurado para recibir/enviar una señal de entrada/salida. Opcionalmente, el aparato de comunicación puede incluir además una memoria, configurada para almacenar datos y/o instrucciones.
En una implementación, el procesador puede incluir el codificador de acuerdo con el primer aspecto y una unidad de determinación. La unidad de determinación está configurada para determinar un factor de elevación Z requerido para codificar una secuencia de entrada. El codificador está configurado para codificar la secuencia de entrada mediante el uso de una matriz LDPC correspondiente al factor de elevación Z.
En otra implementación, el procesador puede incluir el decodificador de acuerdo con el segundo aspecto y una unidad de obtención. La unidad de obtención está configurada para obtener un valor flexible de un código LDPC y un factor de elevación Z. El decodificador está configurado para decodificar el valor flexible del código LDPC en base a una matriz base Hb correspondiente al factor de elevación Z, para obtener un secuencia de bits de información. De acuerdo con un cuarto aspecto, se proporciona un aparato de comunicación. El aparato de comunicación incluye uno o más procesadores. En un posible diseño, el uno o más procesadores configurados para realizar cualquiera de las posibles implementaciones del codificador de acuerdo con el primer aspecto. En otro posible diseño, el codificador de acuerdo con el primer aspecto puede ser parte del procesador. Además de las funciones del codificador de acuerdo con el primer aspecto, el procesador puede implementar además otras funciones. En un posible diseño, uno o más procesadores pueden implementar funciones del decodificador de acuerdo con el segundo aspecto. En otro diseño posible, el decodificador de acuerdo con el segundo aspecto puede ser una parte del procesador.
Opcionalmente, el aparato de comunicación puede incluir además un transceptor y una antena. Opcionalmente, el aparato de comunicación puede incluir además un componente para comprobación de redundancia cíclica (CRC) de bloque de transporte, un componente para segmentación de bloque de código y comprobación de CRC, un intercalador para intercalar, un modulador para procesamiento de modulación, o similar. En un posible diseño, las funciones de estos componentes pueden implementarse mediante el uso de uno o más procesadores.
Opcionalmente, el aparato de comunicación puede incluir además un demodulador para una operación de demodulación, un desintercalador para desintercalar, un componente para el desajuste de tasas o similar. Las funciones de estos dispositivos pueden implementarse mediante el uso de uno o más procesadores.
De acuerdo con un quinto aspecto, la presente solicitud proporciona un sistema de comunicación. El sistema incluye el aparato de comunicación de acuerdo con el tercer aspecto.
De acuerdo con un sexto aspecto, la presente solicitud proporciona un sistema de comunicación. El sistema incluye uno o más aparatos de comunicaciones de acuerdo con el cuarto aspecto.
De acuerdo con todavía otro aspecto, la presente solicitud proporciona un medio de almacenamiento informático. El medio de almacenamiento informático almacena un programa, y cuando se ejecuta el programa, se hace que un ordenador realice los métodos descritos en los aspectos anteriores.
Todavía otro aspecto de esta solicitud proporciona un producto de programa informático que incluye una o más instrucciones, que cuando se ejecutan por ordenador, hacen que el ordenador realice los métodos de acuerdo con los aspectos anteriores.
De acuerdo con el método de procesamiento de información, el aparato, el dispositivo de comunicación y el sistema de comunicación de la presente solicitud, se pueden cumplir los requisitos flexibles de longitud de código y tasa de código de un sistema en términos de rendimiento de codificación y un piso de error.
Breve descripción de los dibujos
La Figura 1 muestra ejemplos de un gráfico base, una matriz base y matrices de permutación circular que se usan en el código LDPC;
La Figura 2 es un diagrama estructural esquemático de un gráfico base que se usa en el código LDPC;
La Figura 3a es un diagrama esquemático de un gráfico base que se usa en el código LDPC de acuerdo con la presente solicitud;
La Figura 3b-1 es un diagrama esquemático de una matriz base de acuerdo con la presente solicitud; La Figura 3b-2 es un diagrama esquemático de otra matriz base de acuerdo con la presente solicitud; La Figura 3b-3 es un diagrama esquemático de otra matriz base de acuerdo con una realización de la presente invención;
La Figura 3b-4 es un diagrama esquemático de otra matriz base de acuerdo con la presente solicitud; La Figura 3b-5 es un diagrama esquemático de otra matriz base de acuerdo con la presente solicitud; La Figura 3b-6 es un diagrama esquemático de otra matriz base de acuerdo con la presente solicitud; La Figura 3b-7 es un diagrama esquemático de otra matriz base de acuerdo con la presente solicitud; La Figura 3b-8 es un diagrama esquemático de otra matriz base de acuerdo con la presente solicitud; La Figura 4 es un diagrama de rendimiento proporcionado por la presente solicitud;
La Figura 5 es un diagrama de flujo de un procedimiento de procesamiento de información de acuerdo con la presente solicitud;
La Figura 6 es un diagrama de flujo de un procedimiento de procesamiento de información de acuerdo con la presente solicitud;
La Figura 7 es un diagrama de bloques simplificado de un aparato de comunicación de acuerdo con la presente solicitud; y
La Figura 8 es un diagrama de bloques de un sistema de comunicación de acuerdo con la presente solicitud.
Descripción detallada
Para facilitar la comprensión, a continuación se describen algunos términos usados en esta solicitud.
En esta solicitud, los términos "red" y "sistema" se usan a menudo de manera intercambiable, "aparato" y "dispositivo" se usan de manera intercambiable, e "información" y "datos" también se usan de manera intercambiable. Los medios de estos términos se entienden convencionalmente. Un "aparato de comunicación" puede referirse a un chip (por ejemplo, un chip de banda base, un chip de procesamiento de señales digitales o un chip de uso general), un terminal, una estación base u otros dispositivos de red. El artículo "un" o "una" pretende indicar uno o más. Un terminal es un dispositivo que tiene funciones de comunicación. Un terminal puede ser un dispositivo de mano, un dispositivo a bordo de un vehículo, un dispositivo ponible u otros tipos de dispositivos que tengan funciones de comunicación inalámbrica. Un terminal puede recibir diferentes nombres en diferentes redes, tales como equipo de usuario, estación móvil, unidad de suscriptor, estación, teléfono celular, asistente digital personal, módem inalámbrico, dispositivo de comunicación inalámbrico, dispositivo de mano, ordenador portátil, aparato telefónico inalámbrico o estación de bucle local inalámbrico. Para facilitar la descripción, estos dispositivos se denominan colectivamente como terminal en esta solicitud. Una estación base (base station, BS) o denominada dispositivo de estación base es un dispositivo desplegado en una red de acceso por radio para proporcionar funciones de comunicación inalámbrica. La estación base puede recibir diferentes nombres en diferentes sistemas de acceso inalámbrico. Por ejemplo, una estación base en una red del Sistema Universal de Telecomunicaciones Móviles (UMTS) se denomina como NodoB. Una estación base en una red de evolución a largo plazo (LTE) se denomina NodoB evolucionado (eNB o eNodeB). Una estación base en una red de nueva radio (NR) se denomina como un punto de recepción de transmisión (TRP) o un NodoB de próxima generación (gNB). Las estaciones base en otras redes pueden recibir otros nombres. Esto no está limitado en la presente solicitud.
Las soluciones técnicas en las realizaciones de la presente solicitud se describen a continuación con referencia a los dibujos adjuntos.
Un código LDPC se puede definir mediante una matriz de comprobación de paridad H. En una implementación, la matriz de comprobación de paridad H para el código LDPC, también conocida como matriz LDPC, está representada por una matriz denominada gráfico base, y cada elemento en el gráfico base representa una matriz de expansión (elevación) Z*Z. Z es un número entero positivo y se denomina factor de elevación. Z puede denominarse además tamaño de elevación o similar. El gráfico base se usa para indicar las localizaciones de los elementos cero y elementos distintos de cero. Cada elemento distinto de cero en el gráfico base corresponde a un valor de desplazamiento. La matriz de comprobación de paridad H para el código LDPC se puede obtener en base al gráfico base y los valores de desplazamiento. Usualmente, un gráfico base incluye m*n elementos de matriz (también llamados entradas) y se representa mediante una matriz de m filas y n columnas. Un valor de cada elemento de la matriz es 0 o 1. Un elemento cuyo valor es 0 se denomina elemento cero, que corresponde a una matriz de todos ceros de Z columna * Z fila. Un elemento cuyo valor es 1 se denomina elemento distinto de cero, que corresponde a una matriz de permutación circular de Z columna * Z fila. En otras palabras, cada elemento del gráfico base representa una matriz de todos ceros o una matriz de permutación circular. En el ejemplo de gráfico base 10a mostrada en la Figura 1, m=7 y n=17, y el gráfico base 10a tiene una estructura QC. Se debe señalar que, a lo largo de esta solicitud, los índices de fila y los índices de columna de los gráficos base y las matrices base se numeran a partir de 0, y esto es simplemente para facilitar la descripción. Por ejemplo, el índice de columna 0 representa una primera columna en un gráfico base o una matriz base, el índice de columna 1 representa una segunda columna en el gráfico base o la matriz base, el índice de fila 0 representa una primera fila en el gráfico base o la matriz base, el índice de fila 1 representa una segunda fila en el gráfico base o la matriz base, y así sucesivamente.
Puede entenderse que las filas y las columnas pueden numerarse alternativamente a partir de 1. En este caso, los índices de fila y los índices de columna que se muestran en esta descripción aumentan en 1 en consecuencia. Por ejemplo, si los índices de fila y los índices de columna se numeran a partir de 1, la columna 1 representa una primera columna en el gráfico base y la matriz, la columna 2 representa una segunda columna en el gráfico base y la matriz, la fila 1 representa una primera fila en el gráfico base y la matriz, la fila 2 representa una segunda fila en el gráfico base y una matriz, y así sucesivamente.
En otra implementación, se puede definir una matriz base de m filas y n columnas, y a veces se denomina PCM (matriz de comprobación de paridad). Por ejemplo, se define cualquier matriz proporcionada en la Figura 3b-1 a la Figura 3b-8 o una matriz que incluye algunas filas y columnas en cualquier matriz de la Figura 3b-1 a la Figura 3b-8. Los elementos de la matriz base están en una correspondencia uno a uno con los elementos del gráfico base. Un elemento cero en el gráfico base tiene la misma posición en la matriz base. En la matriz base, un elemento cero puede estar representado por -1 o "nulo". Una localización de un elemento distinto de cero en la fila i y la columna j, cuyo valor es 1 en el gráfico base, tiene la misma posición en la matriz base, y el elemento distinto de cero se representa como V j Un valor de Vi,j en la matriz base puede estar definido por un sistema o puede estar predefinido, o Vi,j puede obtenerse en base a un valor de desplazamiento Pi,j de un elemento distinto de cero en el gráfico base y un factor de elevación Z. Pi,j es un valor de desplazamiento correspondiente a un factor de elevación Z predeterminado o particular. Pi,j puede obtenerse en base a Z y V j En una implementación, Pi,j y Vi,j satisfacen la siguiente relación:
Pi,j=mod(Vi,j, Z)
donde i y j representan un índice de fila y un índice de columna del elemento distinto de cero, e indican una localización del elemento en la matriz base.
En esta solicitud, a veces la matriz base también se denomina matriz de desplazamiento del gráfico base. La matriz base se puede obtener de acuerdo con el gráfico base y el valor de desplazamiento. Si un elemento en la fila i y la columna j del gráfico base tiene un valor 1, y un valor de desplazamiento del elemento es Pi,j, donde Pi,j es un número entero mayor o igual a 0, indica que el elemento puede reemplazarse por una matriz de permutación circular Z*Z correspondiente a Pij. La matriz de permutación circular puede denominarse además matriz de desplazamiento. La matriz de permutación circular puede obtenerse desplazando de manera circular una matriz de identidad Z*Z hacia la derecha o hacia la izquierda Pi j veces. En una implementación,
Pi,j=mod(Vi,j, Z)
donde Vi,j es un valor en la matriz base, que corresponde a un elemento distinto de cero en el gráfico base. A veces, Vi,j puede denominarse además valor de desplazamiento, valor de desplazamiento cíclico o coeficiente de desplazamiento. Vi,j puede ser, por ejemplo, un valor de desplazamiento correspondiente a un factor de elevación máximo Zmáx. Zmáx es un valor máximo en un conjunto de valores de Z. Si el valor de un elemento en la fila i y la columna j en el gráfico base es 0, el elemento puede reemplazarse con una matriz todo cero Z*Z. Si el valor de un elemento en la fila i y la columna j en el gráfico base es 1, el elemento se puede reemplazar con una matriz de permutación circular Z*Z que tiene el valor de desplazamiento de Pij. De esta forma se obtiene una matriz de comprobación de paridad H para el código LDPC. Z es un número entero positivo y puede denominarse factor de elevación, tamaño de elevación o similar. Z puede determinarse en base a un tamaño de bloque de código y un tamaño de datos de información que son admitidos por un sistema. Se puede ver que para un gráfico base de m filas * n columnas, el tamaño de la matriz de comprobación de paridad H para el código LDPC es (mxZ) filas x (nxZ) columnas. Por ejemplo, si el factor de elevación Z es 4, cada elemento cero se reemplaza con una matriz de todo cero de tamaño 4x4 (ver 11a de la Figura 1). Si P2,3=2, un elemento distinto de cero en la fila 2 y la columna 3 de la matriz base se reemplaza con una matriz de permutación circular 4x4 11d de la Figura 1. La matriz 11d se obtiene desplazando de manera circular una matriz de identidad de 4x4 11b hacia la derecha dos veces. Si P2,4=0, un elemento distinto de cero en la fila 2 y la columna 4 se reemplaza con la matriz de identidad 11b. Se debe señalar que este ejemplo es simplemente ilustrativo y no pretende imponer una limitación.
El valor de Py puede depender del factor de elevación Z. Para un elemento de 1 en el gráfico base, Pij puede ser diferente para diferentes factores de elevación Z. Una matriz base correspondiente al gráfico base 10a se muestra mediante 10b en la Figura 1. Por ejemplo, para un valor de 1 en la fila 1 y la columna 3 en el gráfico base 10a, un valor de desplazamiento Vij correspondiente en la fila 1 y la columna 3 en la matriz base 10b es 27. El valor de Pij se puede obtener de acuerdo con Pij=mod(Vy, Z). De esta manera, un elemento en la fila 1 y la columna 3 se puede reemplazar con una matriz de permutación circular que se obtiene al desplazar de manera circular una matriz de identidad de tamaño Z*Z hacia la derecha o hacia la izquierda por Pij veces.
Usualmente, el gráfico base o la matriz base para el código LDPC pueden incluir además p columnas de la columna de perforación integrada, donde p puede ser un número entero de 0 a 2. Estas columnas se pueden usar en la codificación, pero no se envían los bits de sistema codificados correspondientes a las columnas de perforación integradas. En este caso, una tasa de código de la matriz base para el código LDPC satisface R=(n-m)/(n-p). Mediante el uso del gráfico base 10a como ejemplo, si hay dos columnas de perforación integradas, la tasa de código es (17-7)/(17-2)=0,667, que es aproximadamente 2/3.
Un código LDPC usado en un sistema de comunicación inalámbrico es un código LDPC-QC. Una parte de bits de paridad del código LDPC-QC tiene una estructura bidiagonal o una estructura similar a un ave de rapiña. Esto puede simplificar la codificación y admitir la repetición híbrida de redundancia incremental. Un decodificador para el código LDPC-QC usualmente usa una red de desplazamiento LDPC-QC (QSN), una red Banyan o una red Benes para circular la información de desplazamiento.
Un gráfico base 200 para el código LDPC-QC, que tiene una estructura similar a un ave de rapiña, es una matriz de m filas y n columnas. El gráfico base 200 puede incluir cinco submatrices A, B, C, D y E. El peso de una fila o una columna de la matriz se determina por la cantidad de elementos distintos de cero en la fila o la columna. El peso de una fila (peso de fila) significa una cantidad de elementos distintos de cero en una fila, y el peso de columna (peso de columna) significa una cantidad de elementos distintos de cero en una columna. Lo siguiente se muestra en el gráfico base 200 de la Figura 2:
La submatriz A es una matriz de mA filas y nA columnas, y el tamaño de la submatriz A es mAxnA. Cada columna corresponde a bits de sistema Z en el código LDPC, y un bit de sistema a veces se denomina bit de información. La submatriz B es una matriz de mA filas y mA columnas, y el tamaño de la submatriz B es mAxmA. Cada columna corresponde a Z bits de paridad en el código LDPC. La submatriz B incluye una submatriz B' que tiene una estructura bidiagonal y una columna de matriz cuyo peso de columna es 3 (columna de peso 3 para abreviar). La columna de peso 3 puede localizarse en el lado izquierdo de la submatriz B', como se muestra por 20a en la Figura 2. La submatriz B puede incluir además una o más columnas de matriz cuyos pesos de columna son 1 (columna de peso1 para abreviar). 20b y 20c de la Figura 2 son ejemplos de posibles localizaciones de las columnas de peso 1. Usualmente, una matriz generada en base a las submatrices A y B puede denominarse matriz central, que puede usarse para admitir la codificación de alta tasa de código.
La submatriz C es una matriz todo cero, y el tamaño de la submatriz C es itaxitd.
La submatriz E es una matriz de identidad, y el tamaño de la submatriz E es itidxitid, donde mo=m-mA.
Un tamaño de la submatriz D es mDx(nA+mA), y usualmente se puede usar para generar bits de paridad de baja tasa de código.
Debido a que las submatrices C y E tienen estructuras relativamente definidas, las estructuras de las tres submatrices A, B y D son algunos de los factores que afectan el rendimiento de codificación/decodificación del código LDPC.
Puede entenderse que lo anterior describe la estructura del gráfico base/la matriz base desde una perspectiva de principios. La división de las submatrices A, B, C, D y E es simplemente para facilitar la comprensión desde la perspectiva de los principios. Puede entenderse que la división de las submatrices A, B, C, D y E no se limita a la forma de división anterior. En una implementación, C es una matriz todo cero, E es una matriz de identidad y se conocen las estructuras de C y E. Por lo tanto, una matriz LDPC puede representarse de forma simplificada sin usar todas las submatrices A, B, C, D y E. Por ejemplo, la matriz LDPC puede representarse de forma simplificada por las submatrices A, B y D, por las submatrices A, B, C y D, o por las submatrices A, B, D y E. En otra implementación, debido a que la submatriz B incluye una o más columnas de peso 1, para la una o más columnas de peso 1 en la submatriz B, es una estructura relativamente definida. Por lo tanto, una o más columnas de peso 1 no se pueden usar para representar la matriz LDPC. Por ejemplo, la submatriz A, algunas columnas en la submatriz B y las columnas correspondientes en la submatriz D pueden usarse para representar la matriz LDPC. Cuando se usa para la codificación una matriz LDPC que tiene una estructura similar a un ave de rapiña, una posible implementación es que la parte de la matriz que incluye las submatrices A y B, es decir, una matriz central, se puede usar primero en la codificación para obtener uno o más bits de paridad correspondiente a la submatriz B. Luego, toda la matriz LDPC se usa en la codificación para obtener uno o más bits de paridad correspondientes a la submatriz E. Debido a que la submatriz B puede incluir una submatriz B' con estructura bidiagonal y una o más columnas de peso 1, durante la codificación, pueden obtenerse primero los bits de paridad correspondientes a la submatriz B' y, a continuación, los bits de paridad correspondientes a las columnas de peso 1.
A continuación se proporciona un ejemplo de un esquema de codificación. Suponiendo que la matriz central que incluye las submatrices A y B es Hnúcleo. Se eliminan una última fila y una última columna de1Hnúcleo. En otras palabras, una columna de peso 1 y una fila en la que se localiza el elemento distinto de cero en la columna de peso 1 se eliminan del Hnúcleo para obtener una matriz Hdoble-núcleo. La parte de bits de paridad de la Hdoble-núcleo se representa como He=[He1 He2], donde He1 es una columna de peso 3, y He2 tiene una estructura bidiagonal. De acuerdo con una definición de la matriz LDPC, Hdoble-núcleo[S Pe]T=0, donde S es una secuencia de entrada y está representada por un vector de bits de información, Pe es un vector de bits de paridad y [S Pe]T representa una matriz transpuesta formada por la secuencia de entrada S y Pe. Por lo tanto, los bits de paridad correspondientes a Hdoble-núcleo se pueden calcular primero en base a la secuencia de entrada S y Hdoble-núcleo, donde la secuencia de entrada S incluye todos los bits de información. Luego, los bits de paridad correspondientes a una o más columnas de peso 1 en la submatriz B se calculan en base a los bits de paridad correspondientes a Hdoble-núcleo y la secuencia de entrada S. En este caso, pueden obtenerse todos los bits de paridad correspondientes a la submatriz B. Los bits de paridad correspondientes a la submatriz E se obtienen codificando la submatriz D en base a la secuencia de entrada S y los bits de paridad correspondientes a la submatriz B, para obtener todos los bits de información y todos los bits de paridad. Estos bits constituyen una secuencia codificada, específicamente, una palabra de código LDPC.
El código LDPC puede incluir además una operación de acortamiento (shortening) o una operación de perforación sobre la secuencia codificada. Los bits acortados o perforados no se envían.
El acortamiento usualmente se realiza a partir del último bit de los bits de información y puede realizarse de diferentes maneras. Por ejemplo, si una cantidad de bits acortados es tal, los últimos bits de la secuencia de entrada S pueden establecerse como bits conocidos, por ejemplo, establecerse en 0, nulo u otro valor, para obtener una secuencia de entrada S'. Luego, la secuencia de entrada S' se codifica mediante el uso de una matriz LDPC. Para otro ejemplo, los últimos bits (mod Z) en la secuencia de entrada S pueden establecerse alternativamente como bits conocidos, por ejemplo, establecerse como cero, nulo o algún otro valor, para obtener una secuencia de entrada S'. Las últimas columnas lso/Zj en la submatriz A se eliminan para obtener una matriz LDPC H', y la secuencia de entrada S' se codifica mediante el uso de la matriz LDPC H'; o las últimas columnas Lso/Z- de la submatriz A no participan en la codificación de la secuencia de entrada S'. Después de la codificación, los bits acortados no se envían.
La perforación se puede realizar en bit(s) de perforación integrado(s) o bit(s) de paridad en la secuencia de entrada. La perforación de bit(s) de paridad generalmente se realiza a partir del último bit en los bits de paridad. Alternativamente, la perforación de bit(s) de paridad se puede realizar de acuerdo con un orden de perforación preestablecido del sistema. Una posible implementación es la siguiente: la secuencia de entrada se codifica primero y luego, los últimos p bits en los bits de paridad se seleccionan en base a una cantidad p de bits que deben perforarse, o se seleccionan p bits en base al orden de perforación preestablecido del sistema. Los bits p no se envían. En otra posible implementación, alternativamente, se pueden determinar p columnas en una matriz que corresponden a los bits perforados y p filas en las que se localizan los elementos distintos de cero en las columnas. Estas filas y columnas no participan en la codificación y no se generan los bits de paridad correspondientes.
Se debe señalar que la implementación de codificación descrita en la presente descripción es simplemente un ejemplo, y otras implementaciones de codificación conocidas por un experto en la técnica se pueden usar alternativamente en base al gráfico base y/o la matriz base proporcionada en las realizaciones de esta solicitud. Esto no se limita en esta solicitud. La decodificación en esta solicitud se puede realizar en una pluralidad de métodos de decodificación, por ejemplo, se puede usar un método de decodificación min-sum (MS) o un método de decodificación de propagación de creencias. El método de decodificación MS a veces se denomina método de decodificación MS por inundación. Por ejemplo, la secuencia de entrada se inicializa y luego se realiza el procesamiento iterativo. La detección de decisiones difíciles se realiza después de la iteración y se realiza una comprobación en el resultado de una decisión difícil. Si un resultado de decodificación satisface una ecuación de comprobación, la decodificación tiene éxito, la iteración finaliza y se emite el resultado de la decisión. Si el resultado de la decodificación no satisface la ecuación de comprobación, el procesamiento de la iteración se realiza nuevamente dentro de una cantidad máxima de iteraciones. Si aún no pasa una comprobación cuando se alcanza la cantidad máxima de iteraciones, la decodificación falla. Un experto en la técnica entiende un principio de la decodificación MS, y los detalles no se describen en la presente descripción.
Se debe señalar que el método de decodificación descrito en la presente descripción es simplemente un ejemplo, y que se pueden usar alternativamente otros métodos de decodificación conocidos por un experto en la técnica en base al gráfico base y/o la matriz base proporcionada en esta solicitud. El método de decodificación no se limita en esta solicitud.
Se obtiene una palabra de código LDPC en dependencia del diseño de un gráfico base o una matriz base. Por ejemplo, se puede determinar un límite superior de rendimiento de un código LDPC realizando la evolución de la densidad en el gráfico base o la matriz base. Se determina un piso de error del código LDPC en base a un valor de desplazamiento en la matriz base. El rendimiento de codificación o decodificación se puede mejorar y el piso de error se puede reducir diseñando apropiadamente el gráfico base o la matriz base. En los sistemas de comunicación inalámbrica, la longitud del código es flexible, por ejemplo, 2560 bits o 38400 bits. La Figura 3a muestra un ejemplo de un gráfico base para un código LDPC. Las Figuras 3b-1 a 3b-8 muestran ejemplos de matrices base correspondientes al gráfico base de la Figura 3a. Las matrices base pueden satisfacer los requisitos de rendimiento de una pluralidad de longitudes de bloque. Para facilitar la descripción y la comprensión, los índices de columna y los índices de fila se muestran respectivamente en el lado más superior y en el lado más izquierdo en 3a y las Figuras 3b-1 a 3b-8.
La Figura 4 es un diagrama de rendimiento esquemático de un código LDPC mostrado en la Figura 3a. En el diagrama de rendimiento mostrado en la Figura 4, se muestran las curvas de rendimiento de codificación mediante el uso de cualquiera de las matrices mostradas en las Figuras. 3b-1 a 3b-8. La coordenada horizontal representa la longitud de una secuencia de bits de información en unidades de bits, y la coordenada vertical es una relación señal/ruido (Es/N0) para que un símbolo requerido alcance una tasa de error de bloque (BLER) correspondiente. Dos líneas de cada tasa de código corresponden a dos BLER 0,01 y 0,0001. Para una misma tasa de código, 0,01 corresponde a una curva superior y 0,0001 corresponde a una curva inferior. Si las curvas son suaves, indica que la matriz tiene un rendimiento relativamente alto en casos de diferentes longitudes de bloque.
La Figura 3a muestra un ejemplo de un gráfico base de un código LDPC. En el gráfico base de la Figura 3a, los números 0 a 51 en la fila más superior son índices de columna y corresponden a la columna 0 hasta la columna 51 del gráfico base, respectivamente. Los números del 0 al 41 en la columna más a la izquierda son índices de fila y corresponden a la fila 0 hasta la fila 41 del gráfico base, respectivamente. Es decir, el gráfico base tiene un tamaño de 42 filas y 52 columnas.
En una implementación, una combinación de la submatriz A y la submatriz B puede considerarse como una matriz central del gráfico base para el código LDPC, y la matriz central puede usarse para codificación de alta tasa de código. Como se muestra en la Figura 3a, una matriz de 7 filas y 17 columnas en la esquina superior del gráfico base puede considerarse como la matriz central del gráfico base. La matriz central incluye la submatriz A y la submatriz B. La submatriz A es una matriz de 7 filas y 10 columnas, y está constituida por la fila 0 a la fila 6 y la columna 0 a la columna 9 de la matriz base de la Figura 3a. La submatriz B es una matriz de 7 filas y 7 columnas, y está constituida por la fila 0 a la fila 6 y la columna 10 a la columna 16 de la matriz base de la Figura 3a.
En otra implementación, una matriz constituida por 7 filas y 14 columnas, o una matriz constituida por 7 filas y 15 columnas, o una matriz constituida por 7 filas y 16 columnas, en una esquina superior izquierda en el gráfico base mostrado en la Figura 3a, puede considerarse como la parte central. En otras palabras, en el gráfico base mostrada en la Figura 3a, una matriz constituida por la fila 0 a la fila 6 y la columna 0 a la columna 13, o una matriz constituida por la fila 0 a la fila 6 y la columna 0 a la columna 14, o una matriz constituida por la fila 0 a la fila 6 y la columna 0 a la columna 15, puede considerarse como la parte central. De manera correspondiente, una parte en cualquiera de las matrices mostradas en las Figuras 3b-1 a 3b-8 que corresponde a una parte central en el gráfico base de la Figura 3a puede considerarse alternativamente como una parte central.
En una implementación, la submatriz A puede incluir una o más columnas de perforación integradas. Por ejemplo, la submatriz A puede incluir dos columnas de perforación integradas. En este caso, después de la perforación, una tasa de código que puede soportar la matriz central es 2/3. La submatriz B puede incluir una columna de peso 1. Para ser específicos, el peso de columna de la primera columna en la submatriz B es 3 (columna 10 en la matriz central). Un peso de columna de la segunda columna en la submatriz B es 5 (columna 11 en la matriz central). La segunda columna a la cuarta columna (columna 11 a columna 13 en la matriz central) y la fila 0 a la fila 3 en la submatriz B tienen una estructura bidiagonal, donde los pesos de columna de la tercera columna y la cuarta columna (columna 12 y la columna 13 en la matriz central) son 2. La submatriz B incluye además tres columnas de peso 1 (columna 14 a columna 16 en la matriz central).
En una implementación, la submatriz A puede corresponder a bits del sistema, a veces también se denomina bits de información, y tiene un tamaño de mA filas y 10 columnas, donde mA=5. La submatriz A está constituida por los elementos de la fila 0 a la fila 4 y de la columna 0 a la columna 9 en un gráfico base 30a en la Figura 3a.
En una implementación, la submatriz B puede corresponder a bits de paridad y tener un tamaño de mA filas y mA columnas. La submatriz B está constituida por los elementos de la fila 0 a la fila 6 y de la columna 10 a la columna 16 en el gráfico base 30a de la Figura 3a.
Para obtener una tasa de código flexible, la submatriz C, la submatriz D y la submatriz E de tamaños correspondientes pueden agregarse en base a la matriz central, para obtener diferentes tasas de código. Debido a que la submatriz C es una matriz cero, la submatriz E es una matriz de identidad, y los tamaños de las submatrices se determinan principalmente en base a las tasas de código, las estructuras son relativamente fijas. El rendimiento de codificación/decodificación se ve afectado principalmente por la matriz central y la submatriz D. Se agregan filas y columnas en base a la matriz central, para formar las partes correspondientes C, D y E, obteniendo de esta manera diferentes tasas de código.
Una cantidad mp de columnas en la submatriz D es una suma de cantidades de columnas en la submatriz A y la submatriz B. Una cantidad de filas en la submatriz D está relacionada principalmente con una tasa de código. Mediante el uso del gráfico base 30a en la Figura 3a como ejemplo, la submatriz D tiene 17 columnas. Si una tasa de código admitida por el código LDPC es Rm, el gráfico base o la matriz base para el código LDPC tiene m filas y n columnas, donde n=nA /Rm+p, m=n-nA=nA /Rm+p-nA, y p es la cantidad de columnas de perforación integradas. La tasa de código admitida por el código LDPC se puede obtener en base a la fórmula. Si una tasa de codificación más baja es Rm=1/3 y la cantidad p de una base a columnas de perforación es 2, en el ejemplo del gráfico de base 30a en la Figura 3a como ejemplo, n=52, m=42, y una cantidad mp de filas en la submatriz D puede ser hasta m-mA=42-7=35, de modo que 0<mp <35.
Mediante el uso del gráfico base 30a en la Figura 3a como ejemplo, la submatriz D puede incluir la filas itd en la fila 7 a la fila 41.
En esta solicitud, si hay como máximo un elemento distinto de cero en cada columna para dos filas adyacentes en el gráfico base, las dos filas son ortogonales. En otras columnas diferentes de algunas columnas para dos filas adyacentes en el gráfico base, si hay como máximo un elemento distinto de cero en cada columna de las otras columnas para dos filas adyacentes, las dos filas adyacentes son casi ortogonales. Por ejemplo, para dos filas adyacentes, en cada columna distinta de las columnas de perforación integradas, si solo hay un elemento distinto de cero, se puede considerar que las dos filas adyacentes son casi ortogonales.
La Fila 7 a fila 41 en el gráfico base 30a en la Figura 3a puede incluir una pluralidad de filas en una estructura casi ortogonal y al menos dos filas en una estructura ortogonal. Por ejemplo, la fila 32 y la fila 33 en el gráfico base 30a en la Figura 3a son ortogonales, la fila 34 y la fila 35 son ortogonales y las filas 36, 37 y 38 son ortogonales. Para dos filas adyacentes cualquiera, en otras columnas diferentes de la columna de perforación integrada, si hay como máximo un elemento distinto de cero en cada columna, las dos filas adyacentes satisfacen una estructura casi ortogonal. Si se incluyen las columnas de perforación integradas, hay como máximo un elemento distinto de cero en cualquiera de las columnas, las dos filas adyacentes satisfacen una estructura ortogonal.
Si tid=15, la submatriz D en el gráfico base del código LDPC tiene 15 filas y 17 columnas, y puede ser una matriz constituida por la fila 7 a la fila 21 y la columna 0 a la columna 16 en el gráfico base 30a de la Figura 3a. Se puede obtener una tasa de código correspondiente admitida por el código LDPC en base a la fórmula de cálculo anterior. La submatriz E es una matriz de identidad de 15 filas y 15 columnas, y la submatriz C es una matriz todo cero de 7 filas y 15 columnas.
Si tid=19, la submatriz D en el gráfico base del código LDPC tiene 19 filas y 17 columnas, y puede ser una matriz constituida por la fila 7 a la fila 25 y la columna 0 a la columna 16 en el gráfico base 30a de la Figura 3a. Se puede obtener una tasa de código correspondiente admitida por el código LDPC en base a la fórmula de cálculo anterior. A esta tasa de código, el gráfico base del código LDPC corresponde a una matriz constituida por la fila 0 a la fila 25 y la columna 0 a la columna 16 en el gráfico base 30a en la Figura 3a. La submatriz E es una matriz de identidad de 16 filas y 16 columnas, y la submatriz C es una matriz todo cero de 7 filas y 16 columnas. Lo mismo es verdadero si itd es otro valor, los detalles no se describen.
En un diseño, la permutación de filas/columnas se puede realizar en el gráfico base y/o en la matriz base. La permutación de filas/columnas puede ser permutación de filas, permutación de columnas o permutación de filas y permutación de columnas. La permutación de fila/columna no cambia el peso de fila o el peso de columna, y tampoco cambia una cantidad de elementos distintos de cero. Por lo tanto, un gráfico base y/o una matriz base obtenida mediante la realización de una permutación de filas/columnas tiene un impacto limitado en el rendimiento del sistema. En general, el impacto en el rendimiento del sistema debido a la permutación de filas/columnas es aceptable y se encuentra dentro de un rango de tolerancia. Por ejemplo, el rendimiento disminuye dentro de un rango de tolerancia en algunos escenarios o en algunos rangos, mientras que en algunos escenarios o en algunos rangos, el rendimiento mejora hasta cierto punto y el rendimiento general no se afecta mucho.
Por ejemplo, la fila 34 y la fila 36 del gráfico base 30a en la Figura 3a pueden intercambiarse, y la columna 44 y la columna 45 pueden intercambiarse. Para otro ejemplo, la submatriz D incluye filas mp en una matriz F. El intercambio de filas no puede realizarse en las filas mp, o el intercambio de filas puede realizarse en una o más de las filas mp. La submatriz E todavía tiene una estructura diagonal, y no se realiza intercambio de filas ni de columnas en la submatriz E. Por ejemplo, el intercambio de filas se realiza en la fila 27 y la fila 29 en la matriz F. La submatriz D incluye las filas mD en la matriz F, y la submatriz E sigue siendo de estructura diagonal. Puede entenderse que si el gráfico base o la matriz base incluye la submatriz D, cuando el intercambio de columnas se realiza en la matriz central, el intercambio de columnas debe realizarse correspondientemente en la submatriz D.
Las matrices mostradas en las Figuras 3b-1 a 3b-8 son ejemplos de las matrices base correspondientes al gráfico base 30a en la Figura 3a. Una localización de un elemento distinto de cero en la fila i y la columna j en el gráfico base 30a en la Figura 3a es la misma que el de las matrices mostradas en las Figuras. 3b-1 a 3b-8. Un valor de desplazamiento del elemento distinto de cero es Vi,j. Un elemento cero se representa como un valor — 1 o nulo en la matriz base. Una parte correspondiente de la submatriz D en la matriz base puede incluir la filas mD en la fila 7 a la fila 41 en cualquiera de las matrices base y los valores de mD pueden seleccionarse en base a diferentes tasas de código. Puede entenderse que si el gráfico base es una matriz obtenida mediante la realización de una transformación de fila/columna en el gráfico base 30a en la Figura 3a, en consecuencia, la matriz base es una matriz correspondiente obtenida mediante la realización de la transformación de fila/columna.
En un posible diseño, debido a que las estructuras de las submatrices C y E son relativamente fijas, el gráfico base/la matriz base del código LDPC se puede representar mediante el uso de las submatrices A, B y D, es decir, fila 0 a la fila 41 y la columna 0 a la columna 16 en cualquiera de las matrices mostradas en la Figura 3a o las Figuras 3b-1 a 3b-8.
En un posible diseño, debido a que la columna 14 a la columna 51 tiene una estructura relativamente definida, el gráfico base/la matriz base del código LDPC se puede representar de forma simplificada mediante el uso de la fila 0 a la fila 41 y la columna 0 a la columna 13 en cualquiera de la matriz mostrada en la Figura 3a o las Figuras 3b-1 a 3b-8.
En un diseño posible, el gráfico base/la matriz base del código LDPC puede representarse mediante el uso de la fila 0 a la fila 41 y la columna 0 a la columna 13 más parte de la columna 14 a la columna 51 en cualquiera de las matrices mostradas en la Figura 3a o las Figuras 3b-1 a 3b-8. Por ejemplo, el gráfico base/la matriz base del código LDPC puede representarse mediante el uso de la fila 0 a la fila 41 y la columna 0 a la columna 15 o la fila 0 a la fila 41 y la columna 0 a la columna 14 en cualquiera de las matrices mostradas en la Figura 3a o las Figuras 3b-1 a 3b-8.
En un posible diseño, la matriz base del código LDPC puede incluir la fila 0 a la fila 6 y la columna 0 a la columna 16 en cualquiera de las matrices que se muestran en las Figuras 3b-1 a 3b-8. En este caso, una matriz constituida por la fila 0 a la fila 6 y la columna 0 a la columna 16 en cualquiera de las matrices mostradas en las Figuras 3b-1 a 3b-8 se puede usar como parte central de la matriz base. En este diseño no se limita una estructura de otra parte, por ejemplo, las submatrices C, D y E, de la matriz base del código LDPC. Por ejemplo, cualquier estructura mostrada en las Figuras. 3b-1 a 3b-8 u otro diseño de matriz puede usarse.
En otro posible diseño, la matriz base del código LDPC puede incluir una matriz constituida por la fila 0 a la fila m-1 y la columna 0 a la columna n-1 en cualquiera de las matrices mostradas en las Figuras 3b-1 a 3b-8, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero.
En este diseño no se limita una estructura de otra parte de la matriz base del código LDPC. Por ejemplo, cualquier estructura mostrada en las Figuras. 3b-1 a 3b-8 u otro diseño de matriz puede usarse.
Todavía en otro diseño posible, la matriz base del código LDPC puede incluir la fila 0 a la fila 6 y algunas columnas de la columna 0 a la columna 16 en cualquiera de las matrices 3b-1 a 3b-8 mostradas en las Figuras 3b-1 a 3b-8. Por ejemplo, la parte central (fila 0 a la fila 6 y la columna 0 a la columna 16) de las matrices mostradas en las Figuras. 3b-1 a 3b-8 pueden acortarse y/o perforarse. En una implementación, la matriz base del código LDPC puede no incluir columna(s) correspondiente(s) a bit(s) acortado(s) y/o perforado(s).
En este diseño, no se limita otra parte de la matriz base del código LDPC. Por ejemplo, una estructura mostrada en las Figuras. 3b-1 a 3b-8 se pueden usar, y también se pueden usar otras estructuras.
Todavía en otro diseño posible, la matriz base del código LDPC puede incluir una matriz constituida por la fila 0 a la fila m-1 y algunas columnas de la columna 0 a la columna n-1 en cualquiera de las matrices mostradas en las Figuras 3b-1 a 3b-8, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero. Por ejemplo, la operación de acortamiento y/o la operación de perforación se pueden realizar en la fila 0 a la fila m-1 y de la columna 0 a la columna n-1 de cualquiera de las matrices mostradas en las Figuras 3b-1 a 3b-8. En una implementación, la matriz base del código LDPc puede no incluir la(s) columna(s) correspondiente(s) al(a los) bit(s) acortado(s) y/o perforado(s). En este diseño, no se limita otra parte de la matriz base del código LDPC. Por ejemplo, una estructura mostrada en cualquiera de las Figuras 3b-1 a 3b-8 se pueden usar, y también se pueden usar otras estructuras. En una implementación, la operación de acortamiento puede ser acortar bits de información. Mediante el uso de cualquiera de las matrices mostradas en las Figuras. 3b-1 a 3b-8 como ejemplo, se acortan una o más columnas de la columna 0 a la columna 9. En este caso, la matriz base del código LDPC puede no incluir una o más columnas acortadas en cualquiera de las matrices que se muestran en las Figuras 3b-1 a 3b-8. Por ejemplo, si se acorta la columna 9, la matriz base del código LDPC puede incluir la columna 0 a la columna 8 y la columna 10 a la columna 16 en cualquiera de las matrices de las Figuras 3b-1 a 3b-8.
En otra implementación, la operación de perforación puede ser la perforación de bits de paridad. Mediante el uso de cualquiera de las matrices mostradas en las Figuras 3b-1 a 3b-8 como ejemplo, se perforan una o más columnas de la columna 10 a la columna 16. En este caso, la matriz base del código LDPC puede no incluir la una o más columnas perforadas en cualquiera de las matrices mostradas en las Figuras 3b-1 a 3b-8. Por ejemplo, si se perfora la columna 16, la matriz base del código LDPC puede incluir la columna 0 a la columna 15 en cualquiera de las matrices que se muestran en las Figuras 3b-1 a 3b-8.
Para admitir diferentes longitudes de bloque, el código LDPC necesita diferentes factores de elevación Z. En un diseño posible, se pueden usar diferentes matrices base para diferentes factores de elevación, para lograr un rendimiento relativamente alto. Por ejemplo, el factor de elevación es Z=a*2j, donde 0<j<7 y ae {2,3,5,7,9,11,13,15}. La Tabla 1 muestra un conjunto de factores de elevación posiblemente compatible {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384}. Cada una de las celdas, excepto la fila más superior y la columna más a la izquierda, representa un valor de Z correspondiente a los valores de a y j correspondientes. Por ejemplo, para una columna a=2 y una fila j=1, Z es 4. Para otro ejemplo, para a=11 y j=3, Z es 88. Por analogía, los detalles no se describen.
Tabla 1
Figure imgf000012_0001
Puede entenderse que la Tabla 1 simplemente muestra una forma de describir un conjunto de factores de elevación. La implementación real del producto no se limita a la forma de la Tabla 1, y los factores de elevación pueden tener otra forma de representación.
Por ejemplo, cada valor corresponde a un conjunto de factores de elevación. El conjunto del factor de elevación puede identificarse mediante un índice de conjunto. Por ejemplo, la Tabla 1' muestra otra forma de representación del conjunto de factores de elevación.
Tabla 1'
Figure imgf000012_0002
El conjunto de factores de elevación admitido por el gráfico base puede incluir todos los factores de elevación o algunos factores de elevación en la Tabla 1 o la Tabla 1'. Por ejemplo, el conjunto del factor de elevación puede ser {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384}. En otras palabras, Z es mayor o igual a 24. Para otro ejemplo, el conjunto del factor de elevación puede ser un conjunto de unión de {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288,320,352,384} y uno o más de {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22}. Se debe señalar que esto es simplemente un ejemplo en la presente descripción. El conjunto de factores de elevación admitido por el gráfico base se puede dividir en diferentes subconjuntos en base a un valor de a. Por ejemplo, si a=2, un subconjunto de factores de elevación Z puede incluir uno o más de {2, 4, 8, 16, 32, 64, 128, 256}; para otro ejemplo, si a=3, un subconjunto de factores de elevación Z puede incluir uno o más de {3, 6, 12, 24, 48, 96, 192, 384}; y así sucesivamente.
El conjunto de factores de elevación admitido por el gráfico base se puede dividir en base a diferentes valores de a, y se determina una matriz base correspondiente.
Si a=2 o un valor del factor de elevación Z es uno de {2, 4, 8, 16, 32, 64, 128, 256}, la matriz base puede incluir la fila 0 a la fila 6 y la columna 0 a la columna 16 en cualquiera de las matrices mostradas en las Figuras 3b-1 a 3b-8; o la matriz base incluye la fila 0 a la fila m-1 y la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-1, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero; o la matriz base incluye la fila 0 a la fila m-1 y algunas columnas de la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-1, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero.
Si a=3 o un valor del factor de elevación Z es uno de {3, 6, 12, 24, 48, 96, 192, 384}, la matriz base puede incluir la fila 0 a la fila 6 y la columna 0 a la columna 16 en una matriz mostrada en la Figura 3b-2; o la matriz base incluye la fila 0 a la fila m-1 y la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-2, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero; o la matriz base incluye la fila 0 a la fila m-1 y algunas columnas de la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-2, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero.
Por ejemplo, un PCM de matriz base incluye la fila 0 a la fila 41 y la columna 0 a la columna 13, o la columna 0 a la columna 14, o la columna 0 a la columna 15 en la Figura 3b-2.
Si a=5 o un valor del factor de elevación Z es uno de {5, 10, 20, 40, 80, 160, 320}, la matriz base incluye la fila 0 a la fila 6 y la columna 0 a la columna 16 en una matriz mostrada en la Figura 3b-3; o la matriz base incluye la fila 0 a la fila m-1 y la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-3, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero; o la matriz base incluye la fila 0 a la fila m-1 y algunas columnas de la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-3, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero.
Si a=7 o un valor del factor de elevación Z es uno de {7, 14, 28, 56, 112, 224}, la matriz base puede incluir la fila 0 a la fila 6 y la columna 0 a la columna 16 en una matriz mostrada en la Figura 3b-4; o la matriz base incluye la fila 0 a la fila m-1 y la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-4, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero; o la matriz base incluye la fila 0 a la fila m-1 y algunas columnas de la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-4, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero.
Si a=9 o un valor del factor de elevación Z es uno de {9, 18, 36, 72, 144, 288}, la matriz base puede incluir la fila 0 a la fila 6 y la columna 0 a la columna 16 en una matriz mostrada en la Figura 3b-5; o la matriz base incluye la fila 0 a la fila m-1 y la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-5, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero; o la matriz base incluye la fila 0 a la fila m-1 y algunas columnas de la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-5, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero.
Si a=11 o un valor del factor de elevación Z es uno de {11, 22, 44, 88, 176, 352}, la matriz base puede incluir la fila 0 a la fila 6 y la columna 0 a la columna 16 en una matriz mostrada en la Figura 3b-6; o la matriz base incluye la fila 0 a la fila m-1 y la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-6, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero; o la matriz base incluye la fila 0 a la fila m-1 y algunas columnas de la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-6, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero.
Si a=13 o un valor del factor de elevación Z es uno de {13, 26, 52, 104, 208}, la matriz base puede incluir la fila 0 a la fila 6 y la columna 0 a la columna 16 en una matriz mostrada en la Figura 3b-7; o la matriz base incluye la fila 0 a la fila m-1 y la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-7, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero; o la matriz base incluye la fila 0 a la fila m-1 y algunas columnas de la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-7, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero.
Si a=15 o un valor del factor de elevación Z es uno de {15, 30, 60, 120, 240}, la matriz base puede incluir la fila 0 a la fila 6 y la columna 0 a la columna 16 en una matriz 3b-8; o la matriz base incluye la fila 0 a la fila m-1 y la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-8, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero; o la matriz base incluye y algunas columnas de la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-8, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero.
Opcionalmente, para una matriz base para un código LDPC, los valores de desplazamiento de los elementos distintos de cero en una o más columnas se pueden aumentar o disminuir por un valor de compensación Offsets, sin afectar en gran medida el rendimiento del sistema. Los valores de compensación de elementos distintos de cero en diferentes columnas pueden ser iguales o diferentes. Por ejemplo, para compensar una o más columnas en una matriz, los valores de compensación para diferentes columnas pueden ser iguales o diferentes. Esto no se limita en esta solicitud.
No afectar mucho el rendimiento del sistema significa que el impacto en el rendimiento del sistema es aceptable y está dentro de un rango de tolerancia. Por ejemplo, el rendimiento disminuye dentro de un rango de tolerancia en algunos escenarios o en algunos rangos. Sin embargo, en algunos escenarios o en algunos rangos, el rendimiento mejora hasta cierto punto. El rendimiento general no se afecta mucho.
Por ejemplo, el valor de compensación Offsets se suma o se resta de cada valor de desplazamiento mayor o igual a 0 en la columna s en cualquiera de las matrices mostradas en las Figuras 3b-1 a 3b-8, para obtener una matriz compensada Hs, donde Offsets es un número entero mayor o igual a 0, y s es un número entero mayor o igual a 0 y menor que 11. Los valores de compensación Offsets para una o más columnas pueden ser iguales o diferentes. En el diagrama de rendimiento mostrado en la Figura 4, en base a las curvas de rendimiento de las matrices de codificación mostradas en la Figura 3b-1 y la Figura 3b-2, una coordenada horizontal representa una longitud de una secuencia de bits de información, y una unidad de la longitud es bit, y una coordenada vertical es una relación señal/ruido de símbolo (Es/N0) necesaria para alcanzar una BLER correspondiente. Dos líneas de cada tasa de código corresponden a dos casos de BLER 0,01 y 0,0001. A la misma tasa de código, 0,01 corresponde a una curva superior y 0,0001 corresponde a una curva inferior. Si las curvas son suaves, indica que la matriz tiene un rendimiento relativamente alto en casos de diferentes longitudes de bloque.
La Figura 1 a la Figura 3a y las Figuras 3b-1 a 3b-8 muestran estructuras del gráfico base y la matriz base que están relacionadas con el código LDPC. Para describir suficientemente los diseños del gráfico base y/o la matriz base en las implementaciones de la presente solicitud, la estructura de la matriz base puede representarse en otra forma que pueda ser identificada por el sistema, por ejemplo, en una forma tabular.
En un diseño, el gráfico base mostrado por 10a en la Figura 1 es una matriz de 7 filas y 10 columnas, y los parámetros relacionados se pueden representar en la Tabla 2.
Tabla 2 corres ondiente a 10a en la Fi ura 1
Figure imgf000014_0001
Puede entenderse que debido a que la columna 14 a la columna 16 en el gráfico base 10a son columnas cuyo peso de columna es 1, y las localizaciones de las columnas son relativamente fijas o fáciles de determinar, las localizaciones de los elementos distintos de cero en la columna 14 a la columna 16 pueden no registrarse en la Tabla 2, pero se registran en otra forma.
En un diseño, mediante el uso de las matrices base mostradas en las Figuras 3b-1 a 3b-8 como ejemplos, los parámetros relacionados con las matrices base pueden representarse respectivamente en la Tabla 3b-1 a la Tabla 3b-8.
Tabla 3b-1 Corresondiente a la Fiura 3b-1
Figure imgf000015_0001
(continuación)
Figure imgf000016_0001
Tabla 3b-2 Corresondiente a la Fiura 3b-2
Figure imgf000017_0001
continuación
Figure imgf000018_0001
Tabla 3b-3 Corresondiente a la Fiura 3b-3
Figure imgf000018_0002
continuación
Figure imgf000019_0001
Tabla 3b-4 (Correspondiente a la Figura 3b-4)
Figure imgf000019_0002
continuación
Figure imgf000020_0001
Tabla 3b-5 (Correspondiente a la Figura 3b-5)
Figure imgf000020_0002
Figure imgf000021_0001
Tabla 3b-6 (Correspondiente a la Figura 3b-6)
Figure imgf000021_0002
continuación
Figure imgf000022_0001
Tabla 3b-7 Corresondiente a la Fiura 3b-7
Figure imgf000023_0001
continuación
Figure imgf000024_0001
Tabla 3b-8 (Correspondiente a la Figura 3b-8)
Figure imgf000024_0002
(continuación)
Figure imgf000025_0001
Puede entenderse que la Figura 3a, las Figuras 3b-1 a 3b-8, la Tabla 2 y las Tablas 3b-1 a 3b-8 están destinadas a ayudar a comprender los diseños de los gráficos base y las matrices base, y las formas de representación de los mismos no se limitan a estos. También pueden incluirse otras posibles variaciones. Por ejemplo, para variaciones de la Tabla 3b-1 y de la Tabla 3b-3 a la Tabla 3b-8, se puede hacer referencia a una forma de la Tabla 3b-2'. La información sobre los elementos de las columnas, como la columna 14 a la columna 51, que tienen estructuras relativamente definidas y que corresponden a un valor de desplazamiento 0 se pueden incluir de forma selectiva en la tabla o no incluirse en la tabla, para ahorrar espacio de almacenamiento.
En un diseño, para una parte que tiene una estructura relativamente definida en el gráfico base o la matriz base, las localizaciones de los elementos distintos de cero del gráfico base o la matriz base se pueden obtener a través del cálculo basado en una localización de fila/columna, y las localizaciones de los elementos distintos de cero no pueden almacenarse. Mediante el uso de la Figura 3b-2 y la Tabla 3b-2 como ejemplo, las localizaciones de la columna 14 a la columna 51 en la matriz mostrada en la Figura 3b-2 son relativamente definidos y los valores de desplazamiento V¡,j son todos 0. Las localizaciones de los elementos distintos de cero se pueden calcular en base a los elementos distintos de cero conocidos. En la Tabla 3b-2, es posible que no se incluya información sobre la columna 14 a la columna 51, o que no se incluya información sobre algunas columnas de la columna 14 a la columna 51. Por ejemplo, los elementos distintos de cero en la columna 16 a la columna 51 y los valores de desplazamiento correspondientes de los elementos distintos de cero pueden no estar incluidos. Por ejemplo, la matriz mostrada en la Figura 3b-2 puede representarse alternativamente en la Tabla 3b-2'.
Tabla 3b-2'
Figure imgf000025_0002
continuación
Figure imgf000026_0001
Para otro ejemplo, mediante el uso de la Figura 3b-2 como ejemplo, los valores de desplazamiento Vy en la fila 0 también son 0, y la información sobre la fila 0 puede no almacenarse, pero se obtiene a través del cálculo.
En una implementación, el parámetro "peso de fila" en la Tabla 2, las Tablas 3b-1 a 3b-8 y la Tabla 3b-2' pueden omitirse alternativamente. Se puede conocer una cantidad de elementos distintos de cero en una fila en base a una columna en la que se localizan los elementos distintos de cero en la fila. Por lo tanto, también se conoce el peso de fila.
En una implementación, los valores de los parámetros en el "Índice de columna del elemento distinto de cero" en la Tabla 2, la Tabla 3b-1 a la Tabla 3b-8 y la Tabla 3b-2' no se pueden organizar en orden ascendente, siempre que los valores del parámetro estén indexados a columnas en las que se localizan los elementos distintos de cero. Además, los valores de los parámetros en el "valor de desplazamiento de un elemento distinto de cero" en la Tabla 2 y la Tabla 3b-1 a la Tabla 3b-8 no se pueden organizar en un orden de columnas, siempre que los valores de los parámetros en el "valor de desplazamiento del elemento distinto de cero" tengan una correspondencia uno a uno con los valores de los parámetros en el "Índice de columna del elemento distinto de cero".
En una implementación, las diferentes matrices base anteriores pueden combinarse en una o más tablas para su representación. Por ejemplo, los elementos distintos de cero correspondientes a diferentes matrices base tienen la misma localización y el mismo número de fila, pero tienen diferentes valores de desplazamiento V¡,j. Por lo tanto, se puede representar una pluralidad de matrices base mediante el uso de una tabla enumerando los números de fila, índice de columnas en los que se localizan los elementos distintos de cero y los valores de desplazamiento de una pluralidad de grupos de elementos distintos de cero. Por ejemplo, los valores de desplazamiento de dos grupos de elementos distintos de cero se pueden enumerar en columnas diferentes y se indican mediante el uso de índices. En una implementación, el gráfico base puede usarse para indicar las localizaciones de los elementos distintos de cero. El parámetro "Índice de columna del elemento distinto de cero" en las tablas anteriores puede ser opcional alternativamente.
En una implementación, las matrices mostradas en la Figura 3a y las Figuras 3b-1 a 3b-8 se pueden representar alternativamente mediante el uso de números de columna (índices de columna), filas en las que se localizan los elementos distintos de cero y valores de desplazamiento de los elementos distintos de cero. Opcionalmente, se puede incluir el peso de la columna.
En otra implementación, 1 y 0 en cada fila o cada columna en el gráfico base o la matriz base pueden considerarse números binarios, y almacenar los números binarios en números decimales o números hexadecimales puede ahorrar espacio de almacenamiento. Mediante el uso de cualquier gráfico base anterior o matriz base como ejemplo, las localizaciones de los elementos distintos de cero en las primeras 14 columnas o las primeras 17 columnas pueden almacenarse mediante el uso de números hexadecimales. Por ejemplo, si las primeras 14 columnas en la fila 0 son 11110010011100, las localizaciones de los elementos distintos de cero en la fila 0 pueden registrarse como 0xF2 y 0x70. Es decir, cada 8 columnas forman un número hexadecimal. Para las dos últimas columnas, se pueden obtener números hexadecimales correspondientes llenando ceros para alcanzar un múltiplo entero de 8 bits. Alternativamente, se puede obtener un número hexadecimal correspondiente llenando ceros en las dos primeras columnas para alcanzar un múltiplo entero de 8 bits. Lo mismo es verdadero para otras filas y los detalles no se describen en la presente descripción.
La Figura 5 muestra un diagrama de flujo de un proceso de procesamiento de datos. El proceso de procesamiento de datos puede implementarse mediante el uso de un aparato de comunicación. El aparato de comunicación puede ser una estación base, un terminal u otra entidad tal como un chip de comunicación o un codificador/decodificador, etc.
Bloque 501: Obtener una secuencia de entrada. En una implementación, una secuencia de entrada para la codificación puede ser una secuencia de bits de información, una secuencia de bits de información rellena o una secuencia obtenida añadiendo una secuencia de bits CRC a una secuencia de bits de información. A veces, la secuencia de bits de información también se denomina bloque de código, por ejemplo, puede ser una secuencia de salida obtenida mediante la realización de la segmentación de bloques de código en un bloque de transporte. En una implementación, una secuencia de entrada para la decodificación puede ser una secuencia de valores flexibles de un código LDPC.
Bloque 502: codificar/decodificar la secuencia de entrada en base a una matriz LDPC. Una matriz base de la matriz LDPC puede ser cualquier matriz base mostrada en los ejemplos anteriores.
En una implementación, la matriz LDPC se puede obtener en base a un factor de elevación Z y la matriz base. En una implementación se pueden almacenar parámetros relacionados con la matriz LDPC. Los parámetros incluyen uno o más de los siguientes:
(a) Parámetros usados para obtener cualquier matriz base listada en las implementaciones anteriores. La matriz base se puede obtener en base a los parámetros. Por ejemplo, los parámetros pueden ser uno o más de los siguientes: índice de fila, peso de fila, índice de columna, peso de columna; localizaciones de los elementos distintos de cero (tales como índices de fila de los elementos distintos de cero o índices de columna de los elementos distintos de cero), valores de desplazamiento en la matriz base, valores de desplazamiento de los elementos distintos de cero y localizaciones correspondientes de los elementos distintos de cero, un valor de compensación, un factor de elevación Z, un gráfico base, una tasa de código y similares;
(b) Una matriz base, que es una de las matrices base enumeradas en las implementaciones anteriores;
(c) Una matriz de compensación Hs, obtenida mediante la compensación de al menos una columna a cualquier matriz base enumerada en las implementaciones anteriores;
(d) Una matriz obtenida elevando (expandiendo) la matriz base o elevada de la matriz de compensación Hs de la matriz base;
(e) Una matriz base obtenida mediante la realización de una transformación de fila/columna en cualquier matriz base o la matriz de compensación Hs de la matriz base enumerada en las implementaciones anteriores;
(f) Una matriz obtenida elevando una matriz base transformada de fila/columna o una matriz de compensación Hs transformada de fila/columna de la matriz base; y
(g) Una matriz base obtenida mediante la realización de una operación de acortamiento o perforación sobre cualquier matriz base o la matriz de compensación Hs de la matriz base enumerada en las implementaciones anteriores.
En una posible implementación, la codificación/decodificación de una secuencia de entrada basada en una matriz de comprobación de paridad de baja densidad (LDPC) se puede realizar en un proceso de codificación/decodificación de una o más de las siguientes maneras:
i. obtener una matriz base en base a algunos o todos los parámetros enumerados en el punto (a) anterior, y luego:
codificar/decodificar información basada en la matriz base obtenida; o
realizar una transformación de fila/columna sobre la matriz base obtenida, y codificar/decodificar información basada en la matriz base transformada de fila/columna; o
información de codificación/decodificación basada en una matriz de compensación Hs de la matriz base obtenida; o
codificación/decodificación de información basada en una matriz, que se obtiene mediante la realización de una transformación de fila/columna en una matriz de compensación Hs de la matriz base. Alternativamente, la codificación/decodificación de la información basada en la matriz base o la matriz de compensación Hs puede incluir además: la codificación/decodificación de la información basada en una matriz base elevada de la matriz base o de la matriz de compensación Hs de la matriz base; o
codificar/decodificar información a partir de una matriz obtenida mediante la realización de una operación de acortamiento o perforación sobre la matriz base o la matriz de compensación Hs.
ii. Codificación/decodificación de información basada en una matriz almacenada de acuerdo con el punto (b), (c), (d) o (e) anterior. La matriz puede ser una matriz base almacenada, una matriz de compensación Hs de la matriz base, una matriz obtenida mediante la realización de una transformación de fila/columna en la matriz base, o una matriz obtenida mediante la realización de una transformación de fila/columna en la matriz de compensación Hs. Alternativamente, se realiza una transformación de fila/columna en la matriz base almacenada, y la codificación/decodificación se realiza en base a una matriz obtenida mediante la realización de la transformación de fila/columna. En la presente descripción, opcionalmente, la codificación/decodificación basada en la matriz base o la matriz de compensación Hs puede incluir además: realizar la codificación/decodificación en base a una matriz de expansión de la matriz base o una matriz de expansión de la matriz de compensación Hs; o realizar una codificación/decodificación en base a una matriz obtenida después de realizar una operación de acortamiento o perforación sobre la matriz base o la matriz de compensación Hs.
iii. Codificar/decodificar información basada en una matriz descrita en los puntos (d), (f) o (g) anteriores.
Bloque 503: Emitir una secuencia de bits codificada/decodificada. En un diseño, se puede codificar una secuencia de entrada c={co,c-i,c2,..., ck-i } para obtener una secuencia de salida d={do,di,d2,..., dN-i}, donde K y N son números enteros mayores que 0. La secuencia de salida d incluye bits Ko en la secuencia de entrada c y bits de paridad en una secuencia de comprobación de paridad w, donde Ko es un número entero y 0<Ko áK. La secuencia de paridad w y la secuencia de entrada c satisfacen una fórmula
Figure imgf000028_0001
donde cT=[co,ci,c2,..., ck-i ]t es un vector transpuesto de un vector formado por bits en la secuencia de entrada c, wT=[wo,wi,W2,..., wn-ko-i ]t es un vector transpuesto de un vector formado por bits en la secuencia de paridad w; 0T es un vector de columna y los valores de todos los elementos en oT son o; y H es una matriz de comprobación de paridad de baja densidad (LDPC). Un gráfico base de H incluye Hbg y Hbg,ext:
Figure imgf000029_0001
donde 0 m c * n c representa una matriz todo cero de tamaño mc*nc, e In c*n c representa una matriz de identidad de tamaño nexne; y HBG incluye columnas correspondientes a Kb columnas de bits de información en HBG2 y la columna 10 a la columna 10+mA-1 en HBG2, donde una cantidad de columnas en HBG2 es 10+mA, 4<mA <7, donde Kbe {6,8,9,10}. Para mc=7, y 0<nc <35, una cantidad de columnas en HBG2 es igual a 17; o para mc=6, y 0<nc<36, una cantidad de columnas en HBG2 es igual a 16; o para mc=5, y 0<nc <37, una cantidad de columnas en HBG2 es igual a 15; o para mc=4, y 0<nc <38, una cantidad de columnas en HBG2 es igual a 14.
La Figura 6 muestra un diagrama de flujo de un proceso de procesamiento de datos, que puede aplicarse al bloque 502 en la Figura 5.
Bloque 601: Obtener un factor de elevación Z. En un diseño posible, el rellenado se puede realizar en una secuencia de bits de información para obtener una secuencia de entrada. Una longitud de la secuencia de entrada es K=Kb Z, y Z=K/Kb. En otro diseño posible, se pueden rellenar los bits que necesitan perforarse o acortarse en una secuencia de bits de información. En otras palabras, los bits de relleno se usan para reemplazar los bits que deben perforarse o acortarse, de modo que después de la codificación, los bits de relleno se puedan identificar y no se envíen. Por ejemplo, un valor nulo, un valor 0, un valor acordado en un sistema o un valor predefinido puede usarse como valor de un bit de relleno. En un diseño, los bits que se deben perforar se perforan sin rellenar. Los bits de relleno se rellenan después de la secuencia de bits de información.
En una implementación, el factor de elevación Z puede determinarse en base a la longitud K de la secuencia de entrada. Por ejemplo, un Zo mínimo que cumpla con Kb Z0 >K puede determinarse a partir de una pluralidad de factores de elevación en un conjunto de factores de elevación soportados y puede usarse como un valor del factor de elevación Z. En un posible diseño, Kb puede ser una cantidad de columnas de bits de información en una matriz base de un código LDPC. Para un gráfico base 30a en la Figura 3a, una cantidad de columnas de bits de información es Kbmáx=10. Se supone que un conjunto de factores de elevación admitido por el gráfico base 30a en la Figura 3a es {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384}. Si la longitud de la secuencia de entrada es K=529 bits, Z es igual a 26. Si la longitud de la secuencia de entrada es K=5000 bits, Z es igual a 240. Se debe señalar que esto es simplemente un ejemplo en la presente descripción, que no se limita a esto.
Para otro ejemplo, un valor de Kb puede variar con el valor de K, pero no exceder de la cantidad de columnas de bits de información en la matriz base del código de LDPC. Por ejemplo, diferentes umbrales pueden establecerse para Kb.
En un diseño, se debe señalar que los umbrales 640, 560 y 192 de la presente descripción son simplemente ejemplos. Alternativamente, se puede diseñar otro valor en dependencia de un requisito de diseño del sistema.
si (K>640), Kb=10;
si no, si (K>560), Kb=9;
si no, si (k>192), Kb=8;
si no Kb=6; fin
El factor de elevación Z puede determinarse por un aparato de comunicación basado en la longitud K de la secuencia de entrada, o puede obtenerse por el aparato de comunicación de otra entidad (por ejemplo, un procesador).
Bloque 602: Obtener una matriz LDPC basada en el factor de elevación y una matriz base. La matriz base es cualquier matriz base enumerada en las implementaciones anteriores, una matriz de compensación obtenida mediante la compensación de al menos una columna en cualquier matriz base enumerada anteriormente, o una matriz base obtenida después de realizar la transformación en un orden de fila, un orden de columna o un orden de filas y un orden de columnas de cualquier matriz base enumerada anteriormente o una matriz de compensación. Un gráfico base de la matriz base incluye al menos una submatriz A y una submatriz B. Opcionalmente, el gráfico base puede incluir además una submatriz C, una submatriz D y una submatriz E. Para descripciones de las submatrices, se puede hacer referencia a las descripciones anteriores. Los detalles no se describen en la presente descripción de nuevo. La matriz base puede obtenerse en base al gráfico base y un valor de desplazamiento, puede ser cualquier matriz base almacenada enumerada en las implementaciones anteriores, o puede obtenerse a través de la variación de cualquier matriz base enumerada en las implementaciones anteriores.
En una posible implementación, la matriz base correspondiente se determina en base al factor de elevación Z, y la matriz base se permuta en base al factor de elevación Z para obtener la matriz LDPC.
En una implementación, la matriz LDPC H se puede obtener en base a una correspondencia entre el factor de elevación y la matriz base. Por ejemplo, la matriz base correspondiente se determina en base al factor de elevación Z obtenido en el bloque 601.
Por ejemplo, si Z es igual a 26 y a es igual a 13, la matriz base puede incluir la fila 0 a la fila 6 y la columna 0 a la columna 16 en una matriz mostrada en la Figura 3b-7, o la matriz base incluye la fila 0 a la fila 6 y algunas columnas de la columna 0 a la columna 16 en una matriz mostrada en la Figura 3b-7. Además, alternativamente, la matriz base incluye además la fila 0 a la fila m-1 y la columna 0 a la columna n-1 en una matriz, donde 7<m<42, m es un número entero, 17<n<52 y n es un entero; o la matriz base incluye la fila 0 a la fila m-1 y la columna 0 a la columna n-1 en una matriz mostrada en la Figura 3b-7, donde 7<m<42, m es un número entero, 17<n<52 y n es un número entero. La matriz base se permuta en base al factor de elevación Z para obtener la matriz LDPC. Se debe señalar que en la presente descripción, Z=26, a=13, y la matriz mostrada en la Figura 3b-7 solo se usan como ejemplo para la descripción. Esto es simplemente un ejemplo en la presente descripción, y la presente solicitud no se limita a esto. Puede entenderse que diferentes factores de elevación conducen a diferentes matrices base.
En una posible implementación, la correspondencia entre el factor de elevación y la matriz base se puede enumerar en la Tabla 4, y un índice de matriz base correspondiente al factor de elevación se determina en base a la Tabla 4. En un posible diseño, PCM1 puede ser la matriz mostrada en la Figura 3b-1, PCM2 puede ser la matriz mostrada en la Figura 3b-2, PCM3 puede ser la matriz mostrada en la Figura 3b-3, PCM4 puede ser la matriz mostrada en la Figura 3b-4, PCM5 puede ser la matriz mostrada en la Figura 3b-5, PCM6 puede ser la matriz mostrada en la Figura 3b-6, PCM7 puede ser la matriz mostrada en la Figura 3b-7, y PCM8 puede ser la matriz mostrada en la Figura 3b-8. Esto es simplemente un ejemplo en la presente descripción, que no se limita a esto.
Tabla 4
Figure imgf000030_0001
En otro diseño, se puede usar alternativamente la siguiente manera:
Tabla 4A
Figure imgf000030_0002
Además, en un posible diseño, para el factor de elevación Z, un elemento Pij en la fila i y la columna j en la matriz base satisface la siguiente relación:
Figure imgf000031_0001
donde Vij es un valor de desplazamiento de un elemento en la fila i y la columna j en una matriz base para un conjunto al que pertenece el factor de elevación Z, o un valor de desplazamiento de un elemento distinto de cero en la fila i y la columna j en una matriz base correspondiente a un factor de elevación máximo en un conjunto al que pertenece el factor de elevación Z.
Por ejemplo, Z es igual a 13. Un elemento Pijj en la fila i y la columna j en una matriz base correspondiente a Z satisface:
Figure imgf000031_0002
donde Vij es un valor de desplazamiento de un elemento distinto de cero en la fila i y la columna j en PCM7, es decir, una matriz mostrada en la Figura 3b-7. Para Z=13, realice la operación de módulo del módulo Vi j 13, donde Vi j es un valor de desplazamiento del elemento distinto de cero en la fila i y la columna j en la matriz mostrada en la Figura 3b-7. Se debe señalar que esto es simplemente un ejemplo en la presente descripción, y la presente solicitud no se limita a esto.
Bloque 603: codificar/decodificar la secuencia de entrada en base a la matriz LDPC.
En una implementación, la secuencia de entrada para la codificación puede ser una secuencia de bits de información. En otra implementación, la secuencia de entrada para decodificar puede ser una secuencia de valores flexibles del código LDPC, y se puede hacer referencia a las descripciones relacionadas en la Figura 5. Al codificar/decodificar la secuencia de entrada, la matriz LDPC H puede obtenerse elevando la matriz base basada en Z. Para cada elemento Pijj distinto de cero en la matriz base, determine una matriz de permutación circular hij de tamaño ZxZ, donde hi j es una matriz de permutación circular obtenida desplazando de manera circular una matriz de identidad para Pij veces. Un elemento Pij distinto de cero se reemplaza con hij, y los elementos cero en la matriz base Hb se reemplazan con una matriz todo cero de tamaño ZxZ, para obtener la matriz de comprobación de paridad H.
En una posible implementación, la matriz base del código LDPC puede almacenarse en una memoria. El aparato de comunicación obtiene la matriz LDPC correspondiente al factor de elevación Z, para codificar/decodificar la secuencia de entrada.
En una posible implementación, debido a que hay una pluralidad de matrices base del código LDPC, se ocupa un espacio de almacenamiento relativamente grande si las matrices base se almacenan en base a una estructura de matriz. Alternativamente, el gráfico base del código LDPC se puede almacenar en la memoria, y los valores de desplazamiento de los elementos distintos de cero en cada matriz base se almacenan fila por fila o columna por columna, y luego se obtiene la matriz LDPC en base al gráfico base y un valor de desplazamiento en la matriz base asociado con el factor de elevación Z.
En una posible implementación, los valores de desplazamiento de los elementos distintos de cero en cada matriz base pueden almacenarse de acuerdo con la Tabla 2 y la Tabla 3b-1 a la Tabla 3b-8. Como parámetro de la matriz LDPC, el parámetro "peso de fila" de la matriz LDPC es opcional. En otras palabras, el parámetro "peso de fila" puede almacenarse o no. Se conoce una cantidad de elementos distintos de cero en una fila en base a una columna en la que se localizan los elementos distintos de cero en la fila. Por lo tanto, también se conoce el peso de fila. En una posible implementación, los valores de los parámetros en el "índice de columna del elemento distinto de cero" en la Tabla 2 y la Tabla 3b-1 a la Tabla 3b-8 pueden alternativamente no disponerse en orden ascendente, siempre que los valores de los parámetros estén indexados a índice de columna en el que se localizan los elementos distintos de cero. Además, los valores de los parámetros en el "valor de desplazamiento del elemento distinto de cero" en la Tabla 2 y la Tabla 3b-1 a la Tabla 3b-8 pueden alternativamente no disponerse en un orden de índice de columna, siempre que los valores de los parámetros en el "valor de desplazamiento del elemento distinto de cero" están en una correspondencia uno a uno con los valores de parámetro en el "índice de columna del elemento distinto de cero" y el aparato de comunicación puede conocer un valor de desplazamiento de un elemento distinto de cero en qué fila y en qué columna. Por ejemplo, en una implementación, el valor de desplazamiento de los elementos distintos de cero se puede conocer de acuerdo con los valores de los parámetros del índice de columna, el peso de columna y el índice de fila del elemento distinto de cero o el índice de fila del elemento cero. Esto es similar a la forma en la Tabla 2 y la Tabla 3b-1 a la Tabla 3b-8, y los detalles no se describen en la presente descripción nuevamente.
En una posible implementación, los parámetros relacionados de la matriz LDPC pueden almacenarse con referencia a las descripciones relacionadas en la Figura 5.
En una posible implementación, cuando se almacenan los parámetros relacionados de la matriz LDPC, no todas las filas de las matrices de la Figura 3a y las Figuras 3b-1 a 3b-8 o no todas las filas en las matrices de la Tabla 2 y de la Tabla 3b-1 a la Tabla 3b-8 se almacenan, y los parámetros indicados por las filas correspondientes en las tablas se pueden almacenar en base a las filas incluidas en la matriz base. Por ejemplo, se puede almacenar una matriz constituida por filas y columnas incluidas en la matriz base de la matriz LDPC descrita anteriormente o parámetros relacionados de la matriz constituida por filas y columnas.
Por ejemplo, para la fila 0 a la fila 6 y la columna 0 a la columna 16 en cualquier matriz en las Figuras 3b-1 a 3b-8, se puede almacenar una matriz constituida por la fila 0 a la fila 6 y la columna 0 a la columna 16 y/o los parámetros relacionados de una matriz constituida por la fila 0 a la fila 6 y la columna 0 a la columna 16. Para más detalles, se puede hacer referencia a los parámetros enumerados en la Tabla 3b-1 a la Tabla 3b-8 y algunas de las descripciones anteriores.
Para la fila 0 a la fila m-1 y la columna 0 a la columna n-1 en cualquier matriz en las Figuras 3b-1 a 3b-8, donde 7<m<42, m es un número entero, 17<n<52, y n es un número entero, una matriz constituida por la fila 0 a la fila m-1 y la columna 0 a la columna n-1 y/o parámetros relacionados de la matriz constituida por la fila 0 a la fila m-1 y la columna 0 a la columna n-1 pueden almacenarse. Para más detalles, se puede hacer referencia a los parámetros enumerados en la Tabla 3b-1 a la Tabla 3b-8 y algunas de las descripciones anteriores.
En una posible implementación, se puede sumar o restar un valor de compensación Offsets de cada valor de desplazamiento que sea mayor o igual a 0 en al menos una localización indicada por "índice de columna del elemento distinto de cero" en cualquiera de la Tabla 2 y de la Tabla 3b-1 a la Tabla 3b-8. Se debe señalar que esto es simplemente un ejemplo en la presente descripción, que no se limita a esto.
Mediante el uso de la Figura 1 como ejemplo, en una implementación, después de determinar la matriz base Hb, primero, los bits de paridad correspondientes a la columna 10 a la columna 15 se pueden obtener en base a la secuencia de entrada y la fila 0 a la fila 3 y la columna 0 a la columna 9 en la matriz base, es decir, Hdoble-núcleo. A continuación, los bits de paridad correspondientes a la columna 16, es decir, una columna con peso de columna de 1, se obtienen en base a la secuencia de entrada y los bits de paridad correspondientes a Hdoble-núcleo. Luego, los bits de paridad correspondientes a la submatriz E se obtienen codificando la submatriz D en base a la secuencia de entrada y los bits de paridad correspondientes a la columna 10 a la columna 16 para completar la codificación. Para un proceso de codificación del código LDPC, se puede hacer referencia a las descripciones en las implementaciones anteriores. Los detalles no se describen en la presente descripción de nuevo.
En un diseño, en la parte 502 y la parte 603 anteriores, cuando la secuencia de entrada se codifica/decodifica en base a la matriz LDPC, la secuencia de entrada puede codificarse mediante el uso de la matriz LDPC H correspondiente al factor de elevación Z.
En una posible implementación, la codificación LDPC puede implementarse de la siguiente manera:
(1) La secuencia de entrada que se va a codificar se representa como c={c0,c-i,c2,..., ck-1}, la longitud de la secuencia de entrada c es K y una secuencia de salida obtenida al codificar la secuencia de entrada c por un codificador se representa como d={dü,d1 ,d2,..., dN-1}, donde K es un número entero mayor que 0, K puede ser un número entero múltiplo del factor de elevación Z, el factor de elevación de la secuencia de entrada c puede representarse como Z o Zc, y el subíndice c indica que el factor de elevación está asociado a la secuencia de entrada c. Opcionalmente, otros parámetros en esta implementación se pueden proporcionar o no con un índice de subíndice. Esto no afecta un significado esencial del parámetro. Un experto en la materia podrá entender el significado de la misma, donde N=50Z o N=(40+Kb)Z. La longitud de la secuencia de entrada c es K, la longitud de la secuencia de salida d es N, y la secuencia de salida de N bits puede incluir Ko bits en la secuencia de entrada c y N-Ko bits de paridad en una secuencia de paridad w, donde Ko es un número entero y 0<Kü<K. La secuencia de paridad w puede representarse como {w0,w-i,w2,..., wn+2Zc-k--i}, y la longitud de la secuencia de paridad w es N-K0. En un diseño, si la matriz LDPC H incluye p columna(s) de perforación integrada, donde p es un número entero mayor o igual a 0, y la(s) columna(s) de perforación integrada p participa/no participa(n) en la codificación, por ejemplo, p=2, una longitud de la secuencia de paridad w es N+2Zc-K, y la secuencia de paridad w puede representarse como {w0,w-i,w2,..., wn+2Zo-k--i}. Si la(s) columna(s) de perforación integrada(s) participa(n) en la codificación, la longitud de la secuencia de paridad w es N-K, y la secuencia de paridad w puede representarse como {wq,w-i,w2,..., Wn-k--i}.
Para un valor de Kb, se puede hacer referencia al diseño anterior. Por ejemplo:
si (K>640), Kb=10;
si no, si (K>560), Kb=9;
si no, si (k>192), Kb=8;
si no Kb=6;
fin
(2) Un índice PCM o un índice de conjunto del factor de elevación correspondiente a la longitud K de un segmento de bit se determina en base a Zc=K/Kb. Por ejemplo, el factor de elevación Zc puede determinarse con referencia a la Tabla 1 y la Tabla 2.
(3) Los valores se asignan a los primeros K-2Zc bits en la secuencia de bits codificada d={d0,d1 ,d2,..., dN-1}. En la presente descripción, los primeros 2Zc bits de relleno en el segmento de bits a codificar deben omitirse, y hay que considerar que el segmento de bits a codificar puede incluir un bit de relleno.
En una implementación, la asignación de valor se puede realizar de la siguiente manera:
para K=2ZC a K-1,
si ck #<NULO>
dk-2Zc=ck;
si no
ck=0;
dk-2Zc=<NULO>;
fin si
fin para
donde k es un valor de índice, k es un número entero, <NULO> representa un bit de relleno, y un valor del mismo puede ser 0 u otro valor predeterminado. Opcionalmente, es posible que no se envíe el bit de relleno.
(4) Se generan los bits de paridad w, de modo que los bits de paridad satisfagan la siguiente fórmula:
Figure imgf000033_0001
En la fórmula (1), c=[co,ci,c2 ,...,o<-i]T, donde 0 representa un vector de columna y los valores de todos los elementos en 0 son cero. La matriz H representa una matriz de comprobación LDPC y puede dividirse en dos partes H1 y H2 para su representación, por ejemplo, H=[H1 H2]. c=[c0,c1,c2,...,cK-1]T es un vector transpuesto de un vector formado por bits en la secuencia de entrada. Los bits de paridad w en la fórmula (1) son un vector transpuesto de un vector formado por bits en la secuencia de paridad w. Por ejemplo, para N+2zc-K bits de paridad, w=[Wo, W1, W2,..., WN+2Zc-K-1]T son un vector transpuesto de un vector formado por bits en un secuencia de paridad {Wo, W1, W2,..., Wn+2Zc-k-1}. Para otro ejemplo, para bits de paridad N-K-1, w=[W0, W1 , W2 ,..., Wn-k-1]t es un vector transpuesto de un vector formado por bits en una secuencia de paridad {W0, W1 , W2,..., Wn-k-1}. H en la fórmula (1) es cualquiera de las matrices LDPC indicadas anteriormente.
En una implementación, H se puede obtener sobre la base de cualquier gráfico base enumerado en lo que antecede y una matriz de expansión Zc*Zc. Cada elemento cero en el gráfico base se reemplaza con una matriz todo cero de tamaño Zc*Zc. Un elemento cuyo valor es 1 (elemento distinto de cero) en el gráfico base se reemplaza con una matriz de permutación circulante Z*Z I(Pi,j) correspondiente a un valor de desplazamiento Pij del elemento, donde i y j representan un índice de fila y un índice de columna del elemento. La matriz de permutación circular I(Pij) se obtiene desplazando de manera circular la matriz de tamaño Zc*Zc a la derecha o a la izquierda Pij veces, donde Pi,j=mod(Vi,j,Zc), y Vi,j es un valor de desplazamiento que está en la matriz base y que corresponde a un elemento distinto de cero en el gráfico base.
En una implementación, H1 pueden ser las partes A, B y D del gráfico base o la matriz base enumerada anteriormente, es decir, la fila 10 a la fila 41 y la columna 0 a la columna 16 en la Figura 3a y las Figuras 3b-1 a 3b-8.
En una implementación, H1 puede estar algunas filas y algunas columnas en las partes A, B y D del gráfico base o la matriz base enumerada anteriormente, por ejemplo, la fila 0 a la fila 41 y la columna 0 a la columna 13, o la fila 0 a la fila 41 y la columna 0 a la columna 14, o la fila 0 a la fila 41 y la columna 0 a la columna 15, o la fila 1 a fila 41 y la columna 0 a la columna 13.
En una implementación, H1 puede ser alternativamente m filas y n columnas en el gráfico base o la matriz base listada anteriormente, por ejemplo, m=7 y n=35, o m=4 y n=38, o m= 5 y n=37 o m=6 y n=36.
En una implementación, en base a un valor de Kb, una longitud de la secuencia de entrada del codificador es Kb*Z. Si Kb<9, las columnas {Kb, Kb+1,..., 9} en la matriz H1 se eliminan, a continuación, se realiza la codificación.
En una implementación, la matriz H puede incluir M filas y (N+p-Z) columnas o M filas y N columnas, y el tamaño de la matriz base de H es m=M/Z filas y n=(N+p-Z) /Z columnas o n=N/Z columnas.
En una implementación, H2 puede representarse como
Figure imgf000034_0001
donde OmXn representa una matriz todo cero m*n (m filas y n columnas), por ejemplo, puede tener 7 filas y 35 columnas, o 4 filas y 38 columnas, o 5 filas y 37 columnas, o 6 filas y 36 columnas, y Inxn representa una matriz n*n (n filas y n columnas), por ejemplo, puede tener 35 filas y 35 columnas, o 36 filas y 36 columnas, o 37 filas y 37 columnas, o 38 filas y 38 columnas.
En una implementación, cuando se usa la matriz H para codificar, la codificación se puede realizar en base a cualquiera de los gráficos base o matrices base descritos anteriormente, por ejemplo, se puede realizar en base a una matriz de fila 0 a la fila 41 y la columna 0 a la columna 16 en cualquiera de las matrices de la Figura 3a o las Figuras 3b-1 a 3b-8, o puede realizarse en base a una matriz de la fila 0 a la fila 41 y a columna 0 a la columna 13 en cualquiera de las matrices de la Figura 3a o las Figuras 3b-1 a 3b-8.
En un diseño, para Kb E {6,8,9}, la matriz H puede ser una matriz obtenida después de eliminar las columnas {Kb,Kb+1,...,9} de cualquier matriz base o matriz base descritas anteriormente; para Kb= 10, la matriz H puede ser cualquier gráfico base o matriz base descritos anteriormente.
El valor de desplazamiento V¡j en la matriz H puede obtenerse en base a las Figuras 3b-1 a 3b-8, o Tabla 3b-1 a Tabla 3b-8 y Tabla 3b-2', o cualquier forma descrita anteriormente. Sobre la base de un índice de la matriz de comprobación, que a veces se considera como un índice de conjunto de factores de elevación, se puede determinar una matriz de comprobación correspondiente, con lo que se obtiene un valor de desplazamiento correspondiente V¡j. En un diseño, H incluye p columna(s) de perforación integrada, donde p es un número entero mayor o igual a 0, y la(s) p columna(s) de perforación integrada participa/no participa(n) en la codificación. Por ejemplo, p es igual a 2, y la longitud de la secuencia de paridad w es N+2ZC-K. Si las p columnas de perforación integradas participan en la codificación, una longitud de la secuencia de paridad w es N-K.
En un diseño, 0mxn puede ser una submatriz C, la submatriz C más una última columna en la submatriz B, una submatriz C más las dos últimas columnas de la submatriz B, o una submatriz C más las tres últimas columnas de la submatriz B en lo anterior.
Inxn puede ser la submatriz E, la submatriz E más una última columna en cada una de la submatriz B y la submatriz D, la submatriz E más las dos últimas columnas de cada una de la submatriz B y la submatriz D, o la submatriz E más las últimas tres columnas de cada una de la submatriz B y la submatriz D en los anteriores 2. r. J 2. encapsulamientos.
(5) Opcionalmente, para k=K a N+2Zc-1, dk-2Zc=Wk-K.
En las implementaciones anteriores, el codificador puede realizar la codificación y la salida de una pluralidad de formas. Cualquiera de los gráficos base o las matrices base mostradas en la Figura 3a y las Figuras 3b-1 a 3b-8 enumerados en las Realizaciones anteriores se usan como ejemplo para la descripción a continuación. El gráfico base tiene un máximo de 42 filas y un máximo de 52 columnas, incluidas dos columnas de perforación integradas. Para facilitar la descripción, en la presente solicitud, a veces un gráfico base/matriz base con una cantidad máxima de filas y una cantidad máxima de columnas se denomina gráfico base o matriz base completa. Un gráfico base/matriz base obtenido eliminando las dos columnas de perforación integradas del gráfico base/matriz base completa se denomina gráfico base/matriz base completa que no incluye ninguna columna de perforación integrada. Manera 1
La codificación se realiza en base al gráfico base/matriz base completo o al gráfico base/matriz base completo que no incluye una columna de perforación integrada, para obtener tantos bits de paridad como sea posible. En este caso, m es igual a 42. Si las columnas de perforación integradas participan en la codificación, n es igual a 52, es decir, la fila 0 a la fila 41 y la columna 0 a la columna 51 en cualquiera de las matrices de la Figura 3a y las Figuras 3b-1 a 3b-8. Si las columnas de perforación integradas no participan en la codificación, n es igual a 51, es decir, fila 0 a la fila 41 y columna 2 a columna 51. En consecuencia, para la matriz LDPC H, M es igual a 41Z y N es igual a 52Z o 51Z. En un proceso de procesamiento posterior, los bits de información y los bits de paridad que deben enviarse pueden determinarse a partir de la secuencia de salida generada por el codificador.
Manera 2
La codificación se realiza en base a algunas filas y columnas del gráfico base completo. Se puede seleccionar una fila y una columna, desde el gráfico base completo o el gráfico base completo que no incluye una columna de perforación integrada y en base a una tasa de código que debe usarse para enviar, los bits de información y los bits de paridad, o similares, para codificar. Por ejemplo, la tasa de código es 2/3 y m es igual a 7. Si las columnas de perforación integradas participan en la codificación, n es igual a 17. Para ser específicos, la codificación se realiza en base a parte de la fila 0 a la fila 6 y de la columna 0 a la columna 16 en cualquier matriz de la Figura 3a y las Figuras 3b-1 a 3b-8. Si las columnas de perforación integradas participan en la codificación, n es igual a 15, es decir, una fila 0 a una fila 6 y una columna 2 a una columna 16 en cualquier matriz de la Figura 3a y las Figuras 3b-1 a 3b-8.
En un diseño posible, la columna 14 a la columna 51 en cualquier matriz en la Figura 3a y las Figuras 3b-1 a 3b-8 enumeradas anteriormente son columnas con un peso de columna de 1, y una o más de las columnas con un peso de columna de 1 en la matriz central pueden perforarse. Una o más columnas correspondientes en la matriz central pueden codificarse en base a algunas de la fila 0 a la fila 6 y de la columna 0 a la columna 15 en cualquier matriz en la Figura 3a y las Figuras 3b-1 a 3b-8, donde, por ejemplo, m es 6, n es 16, y las columnas de perforación integradas participan en la codificación. En una implementación, las columnas de perforación integradas pueden alternativamente no participar en la codificación, de manera que se puede obtener una tasa de código más alta. Se debe señalar que lo anterior describe el principio de la matriz H. La solución proporcionada en esta realización de la presente solicitud puede implementarse en base a varias transformaciones de la matriz H, siempre que los bits de paridad generados satisfagan la fórmula (1).
Una posible implementación es que la expansión Cuasi-ciclo (QC) se realice en la matriz H antes de ser usada. En otra posible implementación, en un proceso de uso de la matriz H, se realiza una expansión Cuasi-ciclo (QC) sobre una parte correspondiente a los elementos actuales a procesar.
Una posible implementación es que (calculando un valor de desplazamiento), la matriz H no se eleve en un proceso de uso, sino que se use un método para una fórmula de equivalencia expandible para calcular una relación de conexión entre filas y columnas de la matriz.
Una posible implementación es que la matriz H no se pueda elevar. En un proceso de codificación, para cada elemento a procesar, se realiza una operación de desplazamiento en un segmento de bits a codificar correspondiente al elemento en base a un valor de desplazamiento del elemento. Entonces, se realiza una operación de codificación en todos los segmentos de bits en los que se realiza la operación de desplazamiento. En una posible implementación, la matriz base puede obtenerse predefiniendo una matriz base PCM o definiendo una matriz base PCM por un sistema, sin usar el gráfico base. Por ejemplo, la matriz LDPC se puede obtener en base a las matrices base proporcionadas en las Figuras 3b-1 a 3b-8, o la matriz LDPC se puede obtener en base a la Tabla 3b-1 a la Tabla 3b-8 correspondiente.
En un proceso de implementación, un extremo transmisor o un extremo receptor pueden almacenar una matriz completa, es decir, todo de A, B, C, D y E. Alternativamente, una matriz completa puede no almacenarse para ahorrar espacio de almacenamiento. Por ejemplo, la codificación/decodificación se puede implementar almacenando solo una parte de la matriz completa o es necesario almacenar los parámetros correspondientes a la matriz. En comparación con un método en el que se almacena una matriz completa, almacenar solo una parte de una matriz puede reducir los gastos generales de un dispositivo de almacenamiento en un códec. Para más detalles, se puede hacer referencia a las descripciones en lo anterior.
Por ejemplo, en una implementación, se almacenan las partes A, B y D en la matriz, o las partes A, B y D no incluyen una parte con un peso de columna de 1. En un proceso de codificación/decodificación real, los valores de las partes C y E o los valores de la parte con un peso de columna de 1 se calculan mediante una fórmula. Para ser específicos, solo se almacenan las primeras 17 columnas o las primeras 14 columnas en la matriz completa original. Debido a que la parte C es una matriz todo cero y se puede obtener, y la parte E es una matriz de identidad, para una localización de un elemento distinto de cero en la parte E, se puede obtener un índice de columna correspondiente a través del cálculo basado en un número de una fila actualmente procesada. Por ejemplo, cuando la fila actualmente procesada es la fila 18, un elemento distinto de cero correspondiente a la parte E se localiza en la columna 28; cuando la fila actualmente procesada es la fila 19, un elemento distinto de cero correspondiente a la parte E se localiza en la columna 29; y así sucesivamente. Si las localizaciones de todos los elementos distintos de cero en la parte E se obtienen a través del cálculo, se puede almacenar o no almacenar un resultado de cálculo. Se puede obtener una localización de un elemento distinto de cero cuando la fila y la columna correspondientes se calculan en el proceso de codificación o decodificación
En otra implementación, se almacenan las primeras 14 columnas de la matriz completa original. En una parte que no está almacenada en el lado derecho de la matriz, se puede obtener mediante cálculo la localización de un elemento distinto de cero en la parte que no está almacenada. Por ejemplo, cuando una fila actualmente procesada es la fila 4, un elemento distinto de cero correspondiente a una parte almacenada se localiza en la columna 14; cuando una fila actualmente procesada es la fila 5, un elemento distinto de cero correspondiente a una parte almacenada se localiza en la columna 15; y así sucesivamente. Cuando las localizaciones de todos los elementos distintos de cero en la parte que no está almacenada en la matriz se obtienen a través del cálculo, el resultado de un cálculo puede almacenarse o no almacenarse. Se puede obtener una localización de un elemento distinto de cero cuando la fila y la columna correspondientes se calculan en el proceso de codificación o decodificación.
En otra implementación, se almacenan las primeras 14+x columnas en la matriz completa original. En una parte sin almacenar del lado derecho de la matriz, las primeras 4 filas son una matriz de ceros, la otra parte es una matriz de identidad y la localización de un elemento distinto de cero en la parte que no está almacenada se puede obtener a través de cálculo. Por ejemplo, cuando una fila actualmente procesada es la fila 3+x, un elemento distinto de cero correspondiente a la parte que no está almacenada se localiza en la columna (14+x)z; cuando una fila actualmente procesada es la fila (3+x)+l, un elemento distinto de cero correspondiente a la parte E se localiza en la columna (14+x)z+l; y así sucesivamente. Cuando las localizaciones de todos los elementos distintos de cero en la parte que no está almacenada en la matriz se obtienen a través del cálculo, se puede almacenar un resultado de cálculo. Alternativamente, el resultado de un cálculo puede no almacenarse y la localización de un elemento distinto de cero puede calcularse al codificar o decodificar una fila y columna correspondiente.
En aún otra implementación, cuando se almacena una matriz de desplazamiento, pueden almacenarse valores registrados en la matriz de desplazamiento, o puede almacenarse un valor obtenido después de realizar una transformación matemática simple sobre valores en la matriz de desplazamiento descrita en esta solicitud.
En una implementación, los valores de la matriz de desplazamiento se transforman y luego se almacenan. Durante la transformación, la transformación se realiza fila por fila a partir de la primera fila en una matriz de desplazamiento actual. En el caso de un elemento (por ejemplo, -1) que representa una matriz de ceros, el elemento se almacena sin transformación. En el caso de un elemento (un elemento no negativo) que representa una matriz distinta de cero y que es el primer elemento (un elemento no negativo) que representa la matriz distinta de cero en la columna, el elemento se almacena sin transformación. En el caso de un elemento (un elemento no negativo) que representa una matriz de elementos distintos de cero y que no es el primer elemento (un elemento no negativo) que representa la matriz distinta de cero en la columna, se almacena una diferencia entre el elemento no negativo y un elemento anterior que representa la matriz distinta de cero en la misma columna. Si la diferencia es positiva, indica desplazamiento a la derecha. Si la diferencia es negativa, indica desplazamiento a la izquierda.
Se debe señalar que no se puede realizar una transformación similar a partir de la primera fila en la matriz de desplazamiento y se puede realizar a partir de cualquier fila. Después de realizar una transformación similar en la última fila de la matriz, la transformación continúa realizándose a partir de la primera fila. Además, dicha manera de almacenamiento de diferencia puede variar en base a diferentes factores de elevación Z. Se calcula un valor de desplazamiento real de acuerdo con Pi,j=mod (Vi,j,Zc), y luego se calcula una diferencia.
En un proceso de codificación/decodificación, un valor de desplazamiento antes de la transformación puede restaurarse a través de un cálculo recursivo basado en un valor de un elemento anterior en una misma columna. Alternativamente, se puede usar un valor de desplazamiento relativo para realizar la codificación y decodificación. En una implementación, el valor Vi,j en la matriz de desplazamiento puede transformarse y luego almacenarse. En un proceso de operación de transformación, las localizaciones y los valores de todos los elementos (por ejemplo, -1) que representan una matriz de todos cero en la matriz permanecen sin cambios. Para un elemento (un elemento no negativo) que representa una matriz distinta de cero, suponiendo que un valor original del elemento es Vij, el valor transformado es (z-Vij) mod z. En un proceso de codificación/decodificación real, se realiza una operación de desplazamiento a la izquierda (que originalmente es una operación de desplazamiento a la derecha) en una matriz de identidad basada en el valor de desplazamiento transformado, para implementar la codificación y decodificación normales.
En una implementación, el valor Vij en la matriz de valores de desplazamiento se transforma y luego se almacena. En un proceso de operación de transformación, un valor de desplazamiento decimal original se transforma en un número en otra base, tal como un sistema binario, un sistema octal o un sistema hexadecimal. En un proceso de codificación/decodificación, se puede elegir una matriz de valor de desplazamiento transformada para restauración y luego se codifica/decodifica. Alternativamente, una matriz de valores de desplazamiento transformada puede usarse directamente para codificar/decodificar.
En una implementación, un lado del codificador no almacena una matriz de comprobación, pero almacena una matriz de generación posiblemente requerida para la codificación. Se supone que un segmento de bits a codificar es c={c0,c-i,c2,c3,...,cK-1}, y un segmento de bits codificado es d={do,d1 ,d2,...,dN-1} La matriz de generación G satisface d=cG.
La matriz de generación se puede obtener transformando la matriz H. Un lado derecho de la matriz H puede transformarse en una forma de matriz diagonal a través de la transformación de fila/columna, y puede representarse como:
H=[P I] (2)
En este caso, la matriz de generación G correspondiente satisface:
G=[I pt] (3)
La matriz de comprobación H puede ser cualquiera de las matrices de paridad o matrices base anteriores, o la matriz LDPC. Durante la codificación, el segmento de bits codificado d={d0,d1 ,d2 ,...dN-1} puede calcularse en base al segmento de bits que se va a codificar c={c0,c1 ,c2,c3,...,c<-1} mediante el uso de la matriz de generación almacenada G.
En una implementación, durante la codificación, para una parte diagonal dual de la matriz, la codificación se puede realizar de cualquiera de las maneras anteriores o mediante el uso de un método para almacenar una matriz que tiene una pluralidad de filas superpuestas.
En una implementación, se puede calcular una matriz de desplazamiento correspondiente a cada factor de elevación Z en base a Pi,j=mod(Vi,j,Zc), y luego, se almacenan todas las matrices correspondientes a 51 factores de elevación para codificar/decodificar.
Opcionalmente, en un sistema de comunicación, la codificación se puede realizar mediante el uso del método anterior para obtener el código LDPC. Después de obtener el código LDPC, el aparato de comunicación puede realizar además una o más operaciones siguientes: realizar un ajuste de tasas en el código LDPC; intercalar, de acuerdo con una solución de intercalado, el código LDPC sobre el que se realiza el ajuste de tasas; modular el código LDPC intercalado de acuerdo con un esquema de modulación, para obtener una secuencia de bits X; y enviar la secuencia de bits X.
La decodificación es un proceso inverso a la codificación. Una matriz base usada durante la decodificación y una matriz base usada durante la codificación tienen las mismas características. Para un proceso de codificación del código LDPC, se puede hacer referencia a las descripciones en las implementaciones anteriores. Los detalles no se describen en la presente descripción de nuevo. En una implementación, antes de la decodificación, el aparato de comunicación puede realizar además una o más operaciones siguientes: recibir una señal que incluye información que se basa en la codificación LDPC, demodular la señal, realizar el desintercalado y el desajuste de tasas para obtener una secuencia de valores flexibles del código LDPC, y decodificar la secuencia de valores flexibles del código LDPC. Alternativamente, la decodificación se puede realizar en base a un gráfico base completo, un gráfico base completo que no incluye una columna perforada integrada, o algunas filas y columnas de un gráfico base completo.
El "almacenamiento" en esta solicitud puede almacenarse en una o más memorias. La una o más memorias pueden disponerse por separado o pueden integrarse en un codificador, un decodificador, un procesador, un chip, un aparato de comunicación o un terminal. Alternativamente, algunas de las una o más memorias pueden disponerse por separado o pueden integrarse en un decodificador, un procesador, un chip, un aparato de comunicación o un terminal. La memoria puede ser un medio de almacenamiento en cualquier forma. Esto no se limita en esta solicitud.
En correspondencia con los diseños del proceso de procesamiento de datos descrito en la Figura 5 y la Figura 6, la presente solicitud proporciona además un aparato de comunicación correspondiente. El aparato de comunicación incluye un módulo correspondiente configurado para realizar cada parte en la Figura 5 o la Figura 6. El módulo puede ser software, hardware o una combinación de software y hardware. Por ejemplo, el módulo puede incluir una memoria, un dispositivo electrónico, un componente electrónico, un circuito lógico o cualquiera de sus combinaciones. La Figura 7 es un diagrama estructural esquemático de un aparato de comunicación 700; El aparato 700 puede configurarse para implementar los métodos descritos anteriormente. Para más detalles, se puede hacer referencia a las descripciones anteriores. El aparato de comunicación 700 puede ser un chip, una estación base, un terminal u otro dispositivo de red.
El aparato de comunicación 700 incluye uno o más procesadores 701. El procesador 701 puede ser un procesador de uso general o un procesador dedicado, por ejemplo, un procesador de banda base o una unidad de procesamiento central. El procesador de banda base puede configurarse para procesar un protocolo de comunicación y datos de comunicación. La unidad central de procesamiento puede configurarse para controlar el aparato de comunicación (por ejemplo, una estación base, un terminal o un chip) para ejecutar un programa de software y procesar datos en el programa de software.
En un posible diseño, uno o más módulos de la Figura 5 y la Figura 6 puede implementarse por uno o más procesadores, o por uno o más procesadores y memorias.
En un posible diseño, el aparato de comunicación 700 incluye uno o más procesadores 701. El uno o más procesadores 701 pueden implementar la función de codificación/decodificación. Por ejemplo, el aparato de comunicación puede ser un codificador o un decodificador. En otro diseño posible, el procesador 701 puede implementar otras funciones además de la función de codificación/decodificación.
El aparato de comunicación 700 codifica/decodifica una secuencia de entrada basada en una matriz LDPC. Una matriz base de la matriz LDPC puede ser cualquier matriz base de los ejemplos anteriores, una matriz base obtenida mediante la realización de una transformación en un orden de fila, un orden de columna o un orden de fila y un orden de columna en cualquier matriz base enumerada anteriormente, una matriz base obtenida por acortamiento o perforación basada en cualquier matriz base enumerada anteriormente, o una matriz obtenida a través de la expansión de cualquier matriz base enumerada anteriormente. Para el procesamiento de codificación/decodificación, se puede hacer referencia a las descripciones de las partes relacionadas en la Figura 5 y la Figura 6. Los detalles no se describen en la presente descripción de nuevo.
Opcionalmente, en un diseño, el procesador 701 puede incluir una o más instrucciones 703 (o algunas veces denominado código o programa). Las instrucciones pueden ejecutarse en el procesador, de modo que el aparato de comunicación 700 realice los métodos descritos anteriormente. En otro diseño posible, el aparato de comunicación 700 puede incluir además un circuito. El circuito puede implementar la función de codificación/decodificación de lo anterior.
Opcionalmente, en un diseño, el aparato de comunicación 700 puede incluir una o más memorias 702. La memoria 702 almacena una o más instrucciones 704. Las instrucciones pueden ejecutarse en el procesador, de modo que el aparato de comunicación 700 realice los métodos descritos anteriormente.
Opcionalmente, la memoria puede almacenar además datos. Opcionalmente, el procesador puede almacenar además una o más instrucciones y/o datos. El procesador y la memoria se pueden disponer por separado o se pueden integrar juntos.
Opcionalmente, el "almacenamiento" en lo anterior puede almacenarse en la memoria 702, o puede almacenarse en otra memoria externa o en un dispositivo de almacenamiento.
Por ejemplo, una o más memorias 702 pueden almacenar un parámetro relacionado con la matriz LDPC enumerada anteriormente, por ejemplo, un parámetro relacionado con una matriz base, tal como un valor de desplazamiento, un gráfico base, la expansión de una matriz basada en una base gráfico, cada fila en una matriz base, un factor de elevación, una matriz base o la expansión de una matriz basada en una matriz base. Para más detalles, se puede hacer referencia a las descripciones relacionadas en la parte de la Figura 5.
Opcionalmente, el aparato de comunicación 700 puede incluir además un transceptor 705 y una antena 706. El procesador 701 puede denominarse unidad de procesamiento y controla el aparato de comunicación (un terminal o una estación base). El transceptor 505 puede denominarse unidad transceptora, circuito transceptor o similar, y está configurado para implementar funciones de envío y recepción del aparato de comunicación 700 mediante el uso de la antena 506.
Opcionalmente, el aparato de comunicación 700 puede incluir además un dispositivo para la generación de CRC de bloques de transporte, un dispositivo para la segmentación de bloques de código y una comprobación de CRC, un intercalador para intercalar, un dispositivo para el ajuste de tasas, un modulador para procesamiento de modulación, o similares. Las funciones de estos dispositivos pueden implementarse mediante el uso de uno o más procesadores 701.
Opcionalmente, el aparato de comunicación 700 puede incluir además un demodulador para una operación de demodulación, un desintercalador para desintercalar, un dispositivo para el desajuste de tasa, un dispositivo para concatenación de bloques de código y una comprobación de CRC, o similares. Las funciones de estos dispositivos pueden implementarse mediante el uso de uno o más procesadores 701.
La Figura 8 es un diagrama esquemático de un sistema de comunicación 800. El sistema de comunicación 800 incluye los dispositivos de comunicación 80 y 81. Los datos de información se reciben y envían entre los dispositivos de comunicación 80 y 81. Los dispositivos de comunicación 80 y 81 pueden ser el aparato de comunicación 700, o los dispositivos de comunicación 80 y 81 cada uno incluye el aparato de comunicación 700, y reciben y/o envían los datos de información. En un ejemplo, el dispositivo de comunicación 80 puede ser un terminal y el dispositivo de comunicación correspondiente 81 puede ser una estación base. En otro ejemplo, el dispositivo de comunicación 80 puede ser una estación base y el dispositivo de comunicación correspondiente 81 puede ser un terminal.
Se entiende además por un experto en la técnica que varios bloques y pasos lógicos ilustrativos pueden implementarse mediante hardware electrónico, software informático o una de sus combinaciones. Que tales funciones sean implementadas por hardware o software depende de una aplicación particular y un requisito de diseño de un sistema completo. Para cada aplicación particular, se pueden usar varios métodos para implementar las funciones. Sin embargo, tales implementaciones no deben interpretarse como que van más allá del alcance de protección de las realizaciones de la presente solicitud.
Las tecnologías descritas en esta solicitud se pueden implementar de varias maneras. Por ejemplo, las tecnologías pueden implementarse mediante hardware, software o una de sus combinaciones. Para la implementación por hardware, una unidad de procesamiento configurada para implementar las tecnologías en el aparato de comunicación (por ejemplo, una estación base, un terminal, una entidad de red o un chip) puede implementarse en uno o más procesadores de uso general, un procesador de señal digital (DSP), un dispositivo de procesamiento de señal digital (DSPD), un circuito integrado de aplicación específica (ASIC), un dispositivo lógico programable (PLD), una matriz de puerta programable de campo (FPGA), otro aparato lógico programable, una puerta discreta, una lógica de transistor, un componente de hardware discreto o cualquiera de sus combinaciones. El procesador de uso general puede ser un microprocesador. Opcionalmente, el procesador de uso general puede ser cualquier procesador, controlador, microcontrolador o máquina de estado convencional. El procesador puede implementarse mediante el uso de una combinación de aparatos informáticos, por ejemplo, un procesador de señal digital y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores en combinación con un núcleo de procesador de señal digital o cualquier otra configuración similar.
Los pasos de los métodos o los algoritmos descritos en la presente solicitud pueden estar integrados directamente en el hardware, una o más instrucciones ejecutadas por un procesador, o una de sus combinaciones. La memoria puede ser una memoria RAM, una memoria flash, una memoria ROM, una memoria EPROM, una memoria EEPROM, un registro, un disco duro, un disco extraíble, un CD-ROM o cualquier otra forma de medio de almacenamiento en la técnica. Por ejemplo, la memoria puede estar conectada al procesador, de modo que el procesador pueda leer información de la memoria y almacenar y escribir información en la memoria. Opcionalmente, la memoria puede estar integrada en el procesador. El procesador y la memoria pueden disponerse en el ASIC, y el ASIC puede estar dispuesto en un terminal o una estación base u otros dispositivos de red. Opcionalmente, el procesador y la memoria pueden disponerse en diferentes componentes del terminal o una estación base u otros dispositivos de red.
Con las descripciones de las implementaciones anteriores, un experto en la técnica puede comprender claramente que la presente solicitud puede implementarse mediante hardware, microprograma o una de sus combinaciones. Cuando la presente solicitud es implementada por un programa de software, la presente solicitud puede implementarse total o parcialmente en forma de un producto de programa informático, donde el producto de programa informático incluye una o más instrucciones de ordenador. Cuando las instrucciones del ordenador se cargan y ejecutan, el procedimiento o las funciones de acuerdo con las realizaciones de la presente solicitud se generan total o parcialmente. Cuando la presente solicitud se implementa mediante programa de software, las funciones anteriores pueden almacenarse alternativamente en un medio legible por ordenador o transmitirse como una o más instrucciones o código en el medio legible por ordenador. El ordenador puede ser un ordenador de uso general, un ordenador dedicado, una red de ordenadores u otro aparato programable. Las instrucciones del ordenador pueden almacenarse en un medio de almacenamiento legible por ordenador o pueden transmitirse desde un medio de almacenamiento legible por ordenador a otro medio de almacenamiento legible por ordenador. El medio legible por ordenador incluye un medio de almacenamiento informático y un medio de comunicaciones, donde el medio de comunicaciones incluye cualquier medio que permita que se transmita un programa informático de un lugar a otro. El medio de almacenamiento puede ser cualquier medio disponible al que pueda acceder un ordenador. Lo siguiente proporciona un ejemplo, pero no impone ninguna limitación: El medio legible por ordenador puede incluir una RAM, una ROM, una EEPROM, un CD-ROM u otro almacenamiento de disco óptico, un medio de almacenamiento de disco, otro dispositivo de almacenamiento magnético, o cualquier otro medio que pueda transportar o almacenar el código de programa esperado en forma de una(s) instrucción(es) o una estructura de datos y al que puede acceder un ordenador. Además, cualquier conexión puede definirse adecuadamente como un medio legible por ordenador. Por ejemplo, si el software se transmite desde un sitio web, un servidor u otra fuente remota mediante el uso de un cable coaxial, un cable/fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como rayos infrarrojos, ondas de radio y microondas, cable coaxial, fibra óptica/cable, par trenzado, DSL o tecnologías inalámbricas tales como los rayos infrarrojos, las ondas de radio y microondas están incluidos en las definiciones de medios al que pertenecen. Por ejemplo, un disco magnético y un disco óptico usados por la presente solicitud incluye un disco compacto CD, un disco láser, un disco óptico, un disco versátil digital (DVD), un disquete y un disco Blu-ray, donde el disco magnético generalmente copia datos magnéticamente, y el disco óptico copia datos ópticamente mediante el uso de láser. La combinación anterior también debe incluirse en el alcance de protección del medio legible por ordenador.
Se debe señalar que "/" en esta solicitud representa y/o. Por ejemplo, "codificar/decodificar (codificar y/o decodificar)" significa codificar, decodificar o codificar y decodificar.
En conclusión, la descripción anterior es simplemente ejemplos de realizaciones de las soluciones técnicas de la presente invención, pero no pretende limitar el alcance de protección de la presente invención.

Claims (13)

REIVINDICACIONES
1. Un método de codificación, que comprende:
obtener (601) un factor de elevación Z, donde Z es uno de 5, 10, 20, 40, 80, 160 o 320;
codificar (502; 603) una secuencia de entrada c de longitud K basada en una matriz de comprobación de paridad de baja densidad, LDPC, H en donde la matriz LDPC H se determina (602) de acuerdo con una matriz base y el factor de elevación Z;
en donde la matriz base comprende la fila 0 a la fila m-1 y la columna 0 a la columna n-1 de la siguiente matriz Hb, donde 7<m<42, m es un número entero, 17<n<52, y n es un número entero, y los elementos en la matriz base están representados respectivamente por su índice de fila i y su índice de columna j, donde 0<i<m, 0<j<n;
en donde un elemento en la matriz base es un elemento cero o un elemento distinto de cero, y un elemento distinto de cero en la fila i y la columna j tiene un valor Vij,
en donde cada elemento cero en la matriz base corresponde a una matriz todo cero de tamaño Z*Z en la matriz LDPC H,
en donde un elemento distinto de cero en la fila i y la columna j en la matriz base corresponde a una matriz de permutación circular de tamaño Z*Z en la matriz LDPC H, y la matriz de permutación circular corresponde a una matriz de identidad Z*Z desplazada de manera circular a la derecha para Pij veces, donde Pu=mod(Vij,Z); y
en donde en la siguiente matriz Hb, todos los elementos excepto los elementos distintos de cero son elementos cero, y los elementos distintos de cero cuyos índices de fila (i), índices de columna (j) y valores correspondientes Vij son los siguientes:
Figure imgf000040_0001
(continuación)
Figure imgf000041_0002
2. El método de acuerdo con la reivindicación 1, en donde la obtención de un factor de elevación Z comprende:
determinar el factor de elevación Z de acuerdo con la longitud K de la secuencia de entrada c.
3. El método de acuerdo con las reivindicaciones 1 o 2, en donde la secuencia de entrada c es una secuencia de salida de una segmentación de bloque de código.
4. El método de acuerdo con la reivindicación 2 o 3, en donde Z es un valor mínimo que satisface KbZ>K, y Kb es uno de 6, 8, 9 y 10.
5. El método de acuerdo con la reivindicación 4, en donde Kb satisface:
K > 640
56G<K<640
1 92 < K < 560
Figure imgf000041_0001
o tr o s
6. El método de acuerdo con cualquiera de las reivindicaciones 1 a 5, en donde el número de filas y columnas de la matriz base se determina en base a una tasa de código.
7. El método de acuerdo con cualquiera de las reivindicaciones 1 a 6, en donde la matriz LDPC H se determina de acuerdo con una matriz base y el factor de elevación Z comprende:
la matriz LDPC H se determina en base al factor de elevación Z y una matriz que se obtiene por transformación de fila, o transformación de columna, o la transformación de fila y la transformación de columna se realiza en la matriz base o una matriz de compensación Hs de la matriz base, en donde la matriz de compensación Hs se obtiene sumando o restando un valor de compensación hacia o de los valores Vi,j de los elementos distintos de cero en una o más columnas de la matriz base.
8. El método de acuerdo con una cualquiera de las reivindicaciones 1 a 7, que comprende además:
realizar el ajuste de tasas, intercalar y modular en una secuencia codificada de la secuencia de entrada c, para obtener una secuencia de bits X.
9. Un aparato (700; 80; 81), que comprende uno o más módulos configurados para realizar el método de acuerdo con cualquiera de las reivindicaciones 1 a 8.
10. El aparato de acuerdo con la reivindicación 9, en donde el aparato comprende una o más memorias (702) configuradas para almacenar parámetros relacionados con la matriz LDPC H.
11. El aparato de acuerdo con la reivindicación 9 o 10, en donde el aparato es un codificador, un chip, un terminal, una estación base o un dispositivo de red.
12. Un medio de almacenamiento legible por ordenador, que comprende una o más instrucciones que, cuando son ejecutadas por un ordenador, hacen que el ordenador realice el método de acuerdo con cualquiera de las reivindicaciones 1 a 8.
13. Un producto de programa informático que comprende instrucciones (703) que, cuando las instrucciones se ejecutan por un ordenador, hacen que el ordenador realice el método de acuerdo con cualquiera de las reivindicaciones 1 a 8.
ES18825332T 2017-06-27 2018-04-12 Diseño de códigos ldpc cuasi-cíclicos para un sistema de comunicaciones móviles 5g Active ES2907089T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710503056 2017-06-27
CN201710572364.0A CN109150197B (zh) 2017-06-27 2017-07-13 信息处理的方法、装置和通信设备
PCT/CN2018/082851 WO2019001090A1 (zh) 2017-06-27 2018-04-12 信息处理的方法、装置和通信设备

Publications (1)

Publication Number Publication Date
ES2907089T3 true ES2907089T3 (es) 2022-04-21

Family

ID=64803188

Family Applications (2)

Application Number Title Priority Date Filing Date
ES18825332T Active ES2907089T3 (es) 2017-06-27 2018-04-12 Diseño de códigos ldpc cuasi-cíclicos para un sistema de comunicaciones móviles 5g
ES22150629T Active ES2970217T3 (es) 2017-06-27 2018-04-12 Decodificación de códigos LDPC cuasi-cíclicos para un sistema de comunicaciones móviles 5G

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES22150629T Active ES2970217T3 (es) 2017-06-27 2018-04-12 Decodificación de códigos LDPC cuasi-cíclicos para un sistema de comunicaciones móviles 5G

Country Status (12)

Country Link
US (4) US10771092B2 (es)
EP (3) EP4064573B1 (es)
JP (2) JP7143343B2 (es)
KR (1) KR102276721B1 (es)
CN (3) CN109150197B (es)
AU (1) AU2018294981B2 (es)
BR (2) BR112019027688A8 (es)
CA (1) CA3068553A1 (es)
ES (2) ES2907089T3 (es)
MY (1) MY196344A (es)
PL (1) PL3567731T3 (es)
RU (1) RU2758968C2 (es)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018143743A1 (ko) 2017-02-06 2018-08-09 엘지전자 주식회사 행-직교 구조(row-orthogonal)를 이용한 LDPC 코드 전송 방법 및 이를 위한 장치
WO2018227681A1 (zh) 2017-06-15 2018-12-20 华为技术有限公司 信息处理的方法和通信装置
CN109150197B (zh) * 2017-06-27 2024-05-14 华为技术有限公司 信息处理的方法、装置和通信设备
CN112448724B (zh) * 2019-08-29 2023-07-07 华为技术有限公司 一种数据编码的方法及设备
CN110989921B (zh) * 2019-10-24 2023-05-26 西安艾可萨科技有限公司 可配置存储阵列系统及其控制方法、通信设备
CN113612573B (zh) * 2020-05-04 2022-10-11 华为技术有限公司 一种通信方法及装置
CN114257250A (zh) * 2020-09-25 2022-03-29 中兴通讯股份有限公司 Ldpc码编码方法、装置、网络设备和存储介质
WO2024040457A1 (en) * 2022-08-24 2024-02-29 Qualcomm Incorporated Low-density parity-check coding with applications for probabilistic amplitude shaping
WO2024065214A1 (en) * 2022-09-27 2024-04-04 Zte Corporation Methods and apparatus for information transmission

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3808769B2 (ja) 2001-12-27 2006-08-16 三菱電機株式会社 Ldpc符号用検査行列生成方法
EP1518328B1 (en) 2002-07-03 2007-04-18 The DIRECTV Group, Inc. Encoding of low-density parity check (ldpc) codes using a structured parity check matrix
US7058873B2 (en) 2002-11-07 2006-06-06 Carnegie Mellon University Encoding method using a low density parity check code with a column weight of two
KR100996029B1 (ko) 2003-04-29 2010-11-22 삼성전자주식회사 저밀도 패리티 검사 코드의 부호화 장치 및 방법
KR100809619B1 (ko) 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
KR100918763B1 (ko) * 2003-11-14 2009-09-24 삼성전자주식회사 병렬 연접 저밀도 패리티 검사 부호를 사용하는 채널 부호화/복호 장치 및 방법
CN1961499B (zh) 2004-04-02 2013-06-05 苹果公司 用于正交频分复用应用的空间时间发射分集系统及方法
KR20050118056A (ko) 2004-05-12 2005-12-15 삼성전자주식회사 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
JP4545793B2 (ja) 2004-08-10 2010-09-15 サムスン エレクトロニクス カンパニー リミテッド ブロック低密度パリティ検査符号を符号化/復号化する装置及び方法
US7188297B2 (en) 2004-08-12 2007-03-06 Motorola, Inc. Method and apparatus for encoding and decoding data
JP4339382B2 (ja) 2004-09-15 2009-10-07 サムスン エレクトロニクス カンパニー リミテッド 移動通信システムにおける送信情報の符号化/復号化のための方法及び装置
CN100550655C (zh) * 2004-11-04 2009-10-14 中兴通讯股份有限公司 一种低密度奇偶校验码的编码器/译码器及其生成方法
US7752520B2 (en) * 2004-11-24 2010-07-06 Intel Corporation Apparatus and method capable of a unified quasi-cyclic low-density parity-check structure for variable code rates and sizes
KR100913876B1 (ko) 2004-12-01 2009-08-26 삼성전자주식회사 저밀도 패리티 검사 부호의 생성 방법 및 장치
CN1845482B (zh) 2005-04-07 2011-05-11 华为技术有限公司 宽带码分多址系统下行信道编码打孔压缩装置和实现方法
US7774675B1 (en) * 2005-12-05 2010-08-10 Marvell International Ltd. LDPC codes and expansion method
US7493548B2 (en) * 2006-02-06 2009-02-17 Motorola, Inc Method and apparatus for encoding and decoding data
CN100546205C (zh) * 2006-04-29 2009-09-30 北京泰美世纪科技有限公司 构造低密度奇偶校验码的方法、译码方法及其传输系统
CN101162907B (zh) * 2006-10-10 2010-11-03 华为技术有限公司 一种利用低密度奇偶校验码实现编码的方法及装置
CN101217337B (zh) * 2007-01-01 2013-01-23 中兴通讯股份有限公司 一种支持递增冗余混合自动重传的低密度奇偶校验码编码装置和方法
BRPI0806757A2 (pt) 2007-01-24 2011-09-13 Qualcomm Inc encodificação e decodificação de ldpc de pacotes de tamanhos variáveis
CN101431337A (zh) * 2007-11-09 2009-05-13 松下电器产业株式会社 提高编码并行度实现降低编码时延的方法
KR101445080B1 (ko) 2008-02-12 2014-09-29 삼성전자 주식회사 하이브리드 자동 반복 요구 방식을 사용하는 통신 시스템에서 신호 송신 방법 및 장치
CN101515839A (zh) 2008-02-22 2009-08-26 大唐移动通信设备有限公司 一种编码输出的方法、装置及其系统
CN101662290B (zh) * 2008-08-26 2013-08-28 华为技术有限公司 生成准循环ldpc码及编码的方法与装置
US8103931B2 (en) 2008-08-27 2012-01-24 Mitsubishi Electric Research Laboratories, Inc. Method for constructing large-girth quasi-cyclic low-density parity-check codes
CN101686061A (zh) 2008-09-27 2010-03-31 松下电器产业株式会社 构造低密度奇偶校验码的方法及发送/接收装置和系统
CN101741396B (zh) * 2008-11-19 2013-03-13 华为技术有限公司 可变码长ldpc码编码或译码的方法与装置及编码器和译码器
CN101834613B (zh) 2009-03-09 2012-11-21 电信科学技术研究院 一种ldpc码的编码方法及编码器
US8433972B2 (en) 2009-04-06 2013-04-30 Nec Laboratories America, Inc. Systems and methods for constructing the base matrix of quasi-cyclic low-density parity-check codes
CN102025441B (zh) * 2009-09-11 2013-07-31 北京泰美世纪科技有限公司 Ldpc码校验矩阵的构造方法、ldpc码的编码方法和编码装置
KR101644656B1 (ko) * 2009-11-02 2016-08-10 삼성전자주식회사 선형 블록 부호를 사용하는 통신 시스템에서 패리티 검사 행렬을 생성하는 방법과 이를 이용한 채널 부호화/복호화 장치 및 방법
CN102412842B (zh) * 2010-09-25 2016-06-15 中兴通讯股份有限公司 一种低密度奇偶校验码的编码方法及装置
US8627166B2 (en) * 2011-03-16 2014-01-07 Samsung Electronics Co., Ltd. LDPC code family for millimeter-wave band communications in a wireless network
CN102315911B (zh) 2011-09-29 2017-10-27 中兴通讯股份有限公司 一种低密度奇偶校验码编码方法及装置
US9100052B2 (en) * 2013-02-01 2015-08-04 Samsung Electronics Co., Ltd. QC-LDPC convolutional codes enabling low power trellis-based decoders
US9306601B2 (en) * 2013-02-13 2016-04-05 Qualcomm Incorporated LDPC design for high parallelism, low error floor, and simple encoding
WO2014199865A1 (ja) 2013-06-12 2014-12-18 ソニー株式会社 データ処理装置、及びデータ処理方法
CN104518847B (zh) * 2013-09-29 2018-02-02 中国科学院上海高等研究院 基于bch码与短ldpc码级联的信令编码方法及系统
US9559722B1 (en) * 2013-10-21 2017-01-31 Marvell International Ltd. Network devices and methods of generating low-density parity-check codes and performing corresponding encoding of data
CN104868925B (zh) 2014-02-21 2019-01-22 中兴通讯股份有限公司 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
CN104917536B (zh) 2014-03-11 2019-11-12 中兴通讯股份有限公司 一种支持低码率编码的方法及装置
CN104168030B (zh) 2014-07-14 2017-11-14 北京邮电大学 一种基于本原域循环群两个生成元的ldpc码构造方法
US9432052B2 (en) * 2014-09-18 2016-08-30 Broadcom Corporation Puncture-aware low density parity check (LDPC) decoding
US9692451B2 (en) 2014-09-30 2017-06-27 Avago Technologies General Ip (Singapore) Pte. Ltd Non-binary low density parity check (NB-LDPC) codes for communication systems
CN104333390B (zh) * 2014-11-26 2019-08-06 西安烽火电子科技有限责任公司 一种ldpc码的校验矩阵的构造方法与编码方法
US20160173132A1 (en) * 2014-12-10 2016-06-16 Alcatel-Lucent Usa Inc. Construction of Structured LDPC Convolutional Codes
US20160218750A1 (en) * 2015-01-23 2016-07-28 Empire Technology Development Llc Parity check code encoder
SG10201500905QA (en) 2015-02-05 2016-09-29 Nanyang Polytechnic LDPC Codes For Storage System
CN104821831B (zh) 2015-03-24 2019-03-05 东南大学 一种适用于高码率qc-ldpc码的双循环构造方法
US9847794B2 (en) * 2015-05-19 2017-12-19 Samsung Electronics Co., Ltd. Transmitting apparatus and interleaving method thereof
CN106685586B (zh) 2015-11-11 2020-02-14 华为技术有限公司 生成用于在信道中传输的低密度奇偶校验码的方法及设备
WO2017091018A1 (en) 2015-11-24 2017-06-01 Samsung Electronics Co., Ltd. Method and apparatus for channel encoding/decoding in a communication or broadcasting system
US10469104B2 (en) * 2016-06-14 2019-11-05 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
WO2018062660A1 (ko) * 2016-09-30 2018-04-05 엘지전자 주식회사 Qc ldpc 코드의 레이트 매칭 방법 및 이를 위한 장치
WO2018084735A1 (en) 2016-11-03 2018-05-11 Huawei Technologies Co., Ltd. Efficiently decodable qc-ldpc code
CN108173621B (zh) 2016-12-07 2022-06-14 华为技术有限公司 数据传输的方法、发送设备、接收设备和通信系统
CN106849958B (zh) * 2016-12-29 2020-10-27 上海华为技术有限公司 低密度奇偶校验码校验矩阵的构造方法、编码方法及系统
US10581457B2 (en) 2017-01-09 2020-03-03 Mediatek Inc. Shift coefficient and lifting factor design for NR LDPC code
RU2733826C1 (ru) * 2017-03-03 2020-10-07 Хуавей Текнолоджиз Ко., Лтд. Высокоскоростные длинные ldpc коды
US10659079B2 (en) * 2017-05-05 2020-05-19 Mediatek Inc. QC-LDPC codes
CN108809328B (zh) * 2017-05-05 2024-05-17 华为技术有限公司 信息处理的方法、通信装置
WO2018227681A1 (zh) 2017-06-15 2018-12-20 华为技术有限公司 信息处理的方法和通信装置
CN109150197B (zh) * 2017-06-27 2024-05-14 华为技术有限公司 信息处理的方法、装置和通信设备

Also Published As

Publication number Publication date
KR20200013794A (ko) 2020-02-07
US20200052720A1 (en) 2020-02-13
RU2020102671A3 (es) 2021-09-07
CN109327225B (zh) 2019-09-03
ES2970217T3 (es) 2024-05-27
US20230361787A1 (en) 2023-11-09
RU2020102671A (ru) 2021-07-27
CN109327225A (zh) 2019-02-12
EP4064573B1 (en) 2023-12-27
CN109150197B (zh) 2024-05-14
JP7143343B2 (ja) 2022-09-28
KR102276721B1 (ko) 2021-07-12
CN109150197A (zh) 2019-01-04
PL3567731T3 (pl) 2022-02-28
EP4064573A1 (en) 2022-09-28
US11277153B2 (en) 2022-03-15
CA3068553A1 (en) 2019-01-03
EP4376337A2 (en) 2024-05-29
MY196344A (en) 2023-03-24
EP3567731B1 (en) 2022-01-12
CN109327225B9 (zh) 2021-12-10
EP3567731A1 (en) 2019-11-13
BR112019027688A8 (pt) 2020-09-29
US20210058095A1 (en) 2021-02-25
JP2020526111A (ja) 2020-08-27
RU2758968C2 (ru) 2021-11-03
AU2018294981B2 (en) 2020-10-22
BR112019027876A2 (pt) 2020-07-07
US20220231705A1 (en) 2022-07-21
US11671116B2 (en) 2023-06-06
JP2022179504A (ja) 2022-12-02
AU2018294981A1 (en) 2020-01-30
EP3567731A4 (en) 2020-07-01
US10771092B2 (en) 2020-09-08
JP7471360B2 (ja) 2024-04-19
CN111066253A (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
ES2907089T3 (es) Diseño de códigos ldpc cuasi-cíclicos para un sistema de comunicaciones móviles 5g
ES2922630T3 (es) Códigos LDPC cuasi cíclicos basados en una matriz base de dimensión 5x27 y módulo de elevación
AU2017413002B2 (en) Information processing method and communication apparatus
JP7221999B2 (ja) 情報処理方法および通信装置
WO2019001477A1 (zh) 信息处理的方法、装置和通信设备
CN110999091B (zh) 信息处理的方法和通信装置
CN110754042B (zh) 信息处理的方法和通信装置
EP4250571A2 (en) Information processing method and communication apparatus