ES2970217T3 - Decodificación de códigos LDPC cuasi-cíclicos para un sistema de comunicaciones móviles 5G - Google Patents
Decodificación de códigos LDPC cuasi-cíclicos para un sistema de comunicaciones móviles 5G Download PDFInfo
- Publication number
- ES2970217T3 ES2970217T3 ES22150629T ES22150629T ES2970217T3 ES 2970217 T3 ES2970217 T3 ES 2970217T3 ES 22150629 T ES22150629 T ES 22150629T ES 22150629 T ES22150629 T ES 22150629T ES 2970217 T3 ES2970217 T3 ES 2970217T3
- 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
Links
- 238000010295 mobile communication Methods 0.000 title description 3
- 239000011159 matrix material Substances 0.000 claims abstract description 572
- 238000004891 communication Methods 0.000 claims description 93
- 238000000034 method Methods 0.000 claims description 57
- 230000015654 memory Effects 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 5
- 238000006073 displacement reaction Methods 0.000 abstract description 16
- 238000013461 design Methods 0.000 description 57
- 230000009466 transformation Effects 0.000 description 42
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 15
- 238000004904 shortening Methods 0.000 description 8
- 238000004080 punching Methods 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 230000009977 dual effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000010365 information processing Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 102100038617 Hemoglobin subunit gamma-2 Human genes 0.000 description 2
- 101001031961 Homo sapiens Hemoglobin subunit gamma-2 Proteins 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000000945 filler Substances 0.000 description 2
- 240000003537 Ficus benghalensis Species 0.000 description 1
- 101000581507 Homo sapiens Methyl-CpG-binding domain protein 1 Proteins 0.000 description 1
- 101001134861 Homo sapiens Pericentriolar material 1 protein Proteins 0.000 description 1
- 102100027383 Methyl-CpG-binding domain protein 1 Human genes 0.000 description 1
- 101100438229 Solanum tuberosum PCM4 gene Proteins 0.000 description 1
- 101100438245 Solanum tuberosum PCM8 gene Proteins 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 229910052757 nitrogen Inorganic materials 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 101150033318 pcm2 gene Proteins 0.000 description 1
- 101150103044 pcm3 gene Proteins 0.000 description 1
- 229910052698 phosphorus Inorganic materials 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/255—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/033—Theoretical methods to calculate these checking codes
- H03M13/036—Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/1174—Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/618—Shortening and extension of codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/005—Iterative decoding, including iteration between signal detection and decoding operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
La aplicación se refiere a la decodificación de códigos LDPC cuasicíclicos sobre la base de una matriz de verificación de paridad del código, que se obtiene a partir de una matriz base en combinación con lo que se conoce como elevación de módulo utilizando un conjunto de factores de elevación siendo Z {5, 10, 20, 40, 80, 160, 320}, en donde la matriz base y sus coeficientes de desplazamiento asociados son como se muestran en la Fig. 3b-3. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Decodificación de códigos LDPC 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, un aparato de comunicación y un sistema.
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.
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” , 3GPP DRAFT; R1-1710829, PROYECTO DE ASOCIACIÓN DE TERCERA GENERACIÓN (3GPP), describe el conjunto de factores de elevación (Z) para el código LDPC-QC para el gráfico base n.° 1 y el gráfico base n.° 2.
ZTE: “ Shift Coefficient design for BG2” , 3GPP DRAFT; R1-1710846, PROYECTO DE ASOCIACIÓN DE TERCERA GENERACIÓN (3GPP), describe un diseño de coeficientes de cambio para el gráfico base n.° 2 de LDPC.
HUAWEI, Hisilicon: “ LDPC design for eMBB data” , 3GPP DRAFT; R 1-1704250, PROYECTO DE ASOCIACIÓN DE TERCERA GENERACIÓN (3GPP), describe un diseño de un código QC-LDPC para eMBB.
ZTE ET AL: “ Futher consideration on compact LDPC design for eMBB” , 3GPP DRAFT; R 1-1701600, PROYECTO DE ASOCIACIÓN DE TERCERA GENERACIÓN (3GPP), describe 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 QC-LDPC design” , 3GPP DRAFT; R 1-1704457, PROYECTO DE ASOCIACIÓN DE TERCERA GENERACIÓN (3GPP), describe un código compacto de QC-LDPC. 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 solicitud proporcionan un método de procesamiento de información y un aparato y sistema de comunicación, para admitir la codificación y decodificación de secuencias de bits de información con una pluralidad de longitudes. La presente invención está definida por las reivindicaciones independientes 1, 6, 14, 15 y 16. Las características adicionales de la presente solicitud se presentan en las reivindicaciones dependientes. Según 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). Según 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 las Figuras 3b-1 a 3b-8, 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 las Figuras 3b-1 a 3b-8, 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 las Figuras 3b-1 a 3b-8.
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, las matrices de bases correspondientes a diferentes factores de elevación Z se usan en base a los diferentes factores de elevación Z. En algunas implementaciones, Z= a *2 j donde 0<j<7, y a^{2,3,3,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 2 y la Tabla 3b-1 a la Tabla 3b-8. 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 de transmisión, 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 usando una matriz que se obtiene realizando 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 usando una matriz que se obtiene realizando 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 2 o la Tabla 3b-1 a la Tabla 3b-8, 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.
Según 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 según 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 según 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 una secuencia de bits de información.
Según 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 según el primer aspecto. En otro posible diseño, el codificador según el primer aspecto puede ser parte del procesador. Además de las funciones del codificador según 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 según En otro diseño posible, el decodificador según 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.
Según un quinto aspecto, una realización de la presente solicitud proporciona un sistema de comunicación. El sistema incluye el aparato de comunicación según el tercer aspecto.
Según un sexto aspecto, una realización de la presente solicitud proporciona un sistema de comunicación. El sistema incluye uno o más aparatos de comunicaciones según el cuarto aspecto.
Según todavía otro aspecto, una realización de 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 según los aspectos anteriores.
Según el método de procesamiento de información, el aparato, el dispositivo de comunicación y el sistema de comunicación en realizaciones 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 según la presente solicitud; la Figura 3b-1 es un diagrama esquemático de una matriz base según la presente solicitud;
la Figura 3b-2 es un diagrama esquemático de otra matriz base según la presente solicitud;
la Figura 3b-3 es un diagrama esquemático de otra matriz base según una realización de la presente invención; la Figura 3b-4 es un diagrama esquemático de otra matriz base según la presente solicitud;
la Figura 3b-5 es un diagrama esquemático de otra matriz base según la presente solicitud;
la Figura 3b-6 es un diagrama esquemático de otra matriz base según la presente solicitud;
la Figura 3b-7 es un diagrama esquemático de otra matriz base según la presente solicitud;
la Figura 3b-8 es un diagrama esquemático de otra matriz base según 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 según la presente solicitud; la Figura 6 es un diagrama de flujo de un procedimiento de procesamiento de información según la presente solicitud; la Figura 7 es un diagrama de bloques simplificado de un aparato de comunicación según la presente solicitud; y la Figura 8 es un diagrama de bloques de un sistema de comunicación según la presente solicitud.
Descripción detallada de las realizaciones
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. 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:
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 según 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,
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 Py . 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 4x411d 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, Py 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 Vy correspondiente en la fila 1 y la columna 3 en la matriz base 10b es 27. El valor de Py se puede obtener según Py=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 Py 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 mA*nA. 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 mA*mA. 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 peso 1 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 mA*mD.
La submatriz E es una matriz de identidad, y el tamaño de la submatriz E es mo*mD, donde mo=m-mA.
Un tamaño de la submatriz D es mD*(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 H<núcleo>. Una última fila y una última columna de la H<núcleo>se retiran. En otras palabras, una columna de peso-1 y una fila en la que se ubica el elemento distinto de cero en la columna de peso-1 se retiran de la H<núcleo>para obtener una matriz H<núcleo doble>. Bits de paridad parte del H<núcleo doble>se representa como H<e>= [H<e>-<i>H<e2>], donde H<e1>es una columna de peso-3, y H<e2>tiene una estructura bidiagonal. Según una definición de la matriz LDPC, H<núcleo doble>' [S P<e>]<T>= 0, donde S es una secuencia de entrada y está representada por un vector de bits de información, P<e>es un vector de bits de paridad, y [S P<e>]<T>representa una matriz transpuesta formada por la secuencia de entrada S y P<e>. Por lo tanto, los bits de paridad correspondientes a H<núcleo doble>se puede calcular primero en base a la secuencia de entrada S y H<núcleo doble>, donde la secuencia S de entrada incluye todos los bits de información. Entonces, los bits de paridad correspondientes a una o más columnas de peso-1 en la submatriz B se calculan basándose en los bits de paridad correspondientes a H<núcleo doble>y la secuencia de entrada S. En este caso, todos los bits de paridad correspondientes a la submatriz B pueden obtenerse. 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 [so/Z] en la submatriz A se eliminan para obtener una matriz de LDPC H’, y la secuencia de entrada S’ se codifica mediante el uso de la matriz LDPC H'; o la última
Las columnas en 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 según 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 memoria 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 memoria.
Se debe señalar que el método de decodificación descrito en la presente memoria 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 una 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 m<o>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 R<m>, el gráfico base o la matriz base para el código LDPC tiene m filas y n columnas, donde n=n<A>/R<m>+p, m=n-n<A>=n<A>/R<m>+p-n<A>, 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 R<m>=<i/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 m<n>de filas en la submatriz D puede ser hastaithti<a>=42-7=35, de modo que 0<m<o><35.
Mediante el uso del gráfico base 30a en la Figura 3a como ejemplo, la submatriz D puede incluir las filas m<o>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 m<o>=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 m<o>=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 m<o>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 m<o>en una matriz F. El intercambio de filas no puede realizarse en las filas m<o>, o el intercambio de filas puede realizarse en una o más de las filas m<o>. 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 m<o>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 las filas mD en la fila 7 a la fila 41 en cualquiera de las matrices base y los valores de mo 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 l6 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 una parte de núcleo de la matriz de 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, puede usarse cualquier estructura mostrada en las Figuras 3b-1 a 3b-8 u otro diseño de matriz.
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 entero, 17<n<52, y n es un entero.
En este diseño no se limita una estructura de otra parte de la matriz base del código LDPC. Por ejemplo, puede usarse cualquier estructura mostrada en las Figuras 3b-1 a 3b-8 u otro diseño de matriz.
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 puede 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 puede usar, y también se pueden usar otras estructuras.
En todavía 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 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 entero, 17<n<52, y n es un 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, puede usarse una estructura que se muestra en cualquiera de las Figuras 3b-1 a 3b-8, y también pueden usarse otras estructuras.
En una implementación, la operación de acortamiento puede ser acortar bits de información. Usando una 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 LDP<c>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. Usando una 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 una o más columnas perforadas en cualquiera de las matrices que se muestran 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*2i, 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
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'
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 memoria. El conjunto de factor de elevación soportado por el gráfico de base puede dividirse en diferentes subconjuntos basándose en un valor 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, 16, 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 Offset<s>, 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 Offset<s>se añade o se resta de cada valor de desplazamiento mayor o igual a 0 en columna s en una cualquiera de las matrices mostradas en las Figuras 3b-1 a 3b-8, para obtener una matriz compensada Hs, donde Offset<s>es un número entero mayor o igual a 0, y s es un número entero mayor o igual a 0 y menor de 11. Los valores de compensación Offset<s>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
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, usando las matrices de 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
Tabla 3b-2
Tabla 3b-3
Tabla 3b-4
Tabla 3b-5
Tabla 3b-6
Tabla 3b-7
Tabla 3b-8
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 definidas y los valores de desplazamiento Vi,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'
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 en 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 memoria.
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 basada en 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 compensando al menos una columna a cualquier matriz base enumerada en las implementaciones anteriores;
(d) Una matriz obtenida por elevación (expansión) de la matriz de base o elevada de la matriz de compensación H<s>de la matriz base;
(e) Una matriz de base obtenida realizando una transformación de fila/columna en cualquier matriz base o la matriz de compensación H<s>de la matriz base enumerada en las implementaciones anteriores;
(f) Una matriz obtenida mediante elevación de una matriz base transformada de fila/columna o una matriz de compensación transformada de fila/columna H<s>de la matriz base; y
(g) Una matriz de base obtenida realizando una operación de acortamiento o perforación en cualquier matriz base o la matriz de compensación H<s>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
codificar/decodificar información basada en una matriz de compensación H<s>de la matriz base obtenida; o codificar/decodificar información basada en una matriz, que se obtiene realizando una transformación de fila/columna en una matriz de compensación H<s>de la matriz base. Alternativamente, la información de codificación/decodificación basada en la matriz base o la matriz de compensación H<s>puede incluir además: codificar/decodificar información basada en una matriz base elevada desde la matriz base o la matriz de compensación H<s>de la matriz base; o codificar/decodificar información basada en una matriz obtenida realizando una operación de acortamiento o perforación en la matriz base o la matriz de compensación H<s>.
ii. Codificación/decodificación de información basada en una matriz almacenada según el punto (b), (c), (d) o (e) anterior. La matriz puede ser una matriz base almacenada, una matriz de compensación H<s>de la matriz base, una matriz obtenida realizando una transformación de fila/columna en la matriz base, o una matriz obtenida realizando una transformación de fila/columna en la matriz de compensación H<s>. 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 memoria, opcionalmente, la codificación/decodificación basada en la matriz base o la matriz de compensación H<s>puede incluir además: realizar codificación/decodificación basándose en una matriz de difusión de la matriz base o una matriz de difusión de la matriz de compensación H<s>; o realizar codificación/decodificación basándose en una matriz obtenida después de realizar una operación de acortamiento o perforación en la matriz base o la matriz de compensación H<s>.
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={c<0>,c-<i>,c<2>,...,<ck - i>} para obtener una secuencia de salida d={d<ü>,d<i>,d<2>,..., d<N -i>}, donde K y N son números enteros mayores que 0. La secuencia de salida d incluye bits K<0>en la secuencia de entrada c y bits de paridad en una secuencia de comprobación de paridad w, donde K<0>es un número entero y 0<K<ü><K. La secuencia de paridad w y la secuencia de entrada c satisfacen una fórmula
donde c<T>= [c<0>, c<i>, c<2>,..., c<k - i>]<t>es un vector transpuesto de un vector formado por bits en la secuencia de entrada c, W<T>= [W<0>, w<i>, W<2>,..., w<n - k 0 - i>]<T>es un vector transpuesto de un vector formado por bits en la secuencia de paridad w; 0<T>es un vector de columna, y los valores de todos los elementos en 0<T>son 0; y H es una matriz de comprobación de paridad de baja densidad (LDPC). Un gráfico base de H incluye H<b g>y H<e g , e x t>:
donde0mcXncrepresenta una matriz de tamaño cero de tamaño m<c>*n<c>, yIncxncrepresenta una matriz de identidad de tamaño n<c>*n<¿>y H<b g>incluye columnas correspondientes a K<b>columnas de bits de información en H<b g 2>y columna 10 a columna 10+m<a>-1 en HBG2, donde una cantidad de columnas HBG2 es 10+m<A>, 4<m<A><7, donde K<b>^{6,8,9,10}. Para m<c>=7 y 0<n<c><35, una cantidad de columnas en H<b g 2>es igual a 17; o para m<c>=6 y 0<n<c><36, una cantidad de columnas en H<b g 2>es igual a 16; o para m<c>=5 y 0<n<c><37, una cantidad de columnas en H<b g 2>es igual a 15; o para m<c>=4 y 0<n<c><38, una cantidad de columnas en H<b g 2>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=K<b>Z, y Z=K/K<b>. 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 K<b>Z<ü>>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, K<b>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 K<bmá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 memoria, que no se limita a esto.
Para otro ejemplo, un valor de K<b>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 K<b.>
En un diseño, se debe señalar que los umbrales 640, 560 y 192 de la presente memoria 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 en base al 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 nuevamente en la presente memoria. 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 memoria, 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 memoria, 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 memoria, que no se limita a esto.
Tabla 4
En otro diseño, se puede usar alternativamente la siguiente manera:
Tabla 4a
Además, en un posible diseño, para el factor de elevación Z, Pi,j de un elemento en la fila i y la columna j en la matriz base satisface la siguiente relación:
<f -1>V.. = - l
P . = i
■' |mod(V,; ,Z ) v;.,->()
donde V¡,j 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. P, de un elemento en la fila i y la columna j en una matriz base correspondiente a Z satisface:
<-1>V'.J =
mod(V;..,Z) V,-,>0
donde V<ij>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 V<ij>13, donde V<ij>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 memoria, y la presente solicitud no se limita a esto.
Bloque 603: Codificar/decodificar la secuencia de entrada basada en 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 P<i j>distinto de cero que tiene en la matriz base, determine una matriz de permutación circular h<i j>de tamaño ZxZ, donde h<i,j>es una matriz de permutación circular obtenida desplazando de manera circular una matriz de identidad para P<i,j>veces. Un elemento distinto de cero que tiene P<i, j>se reemplaza con h<i, j>, y elementos cero en la matriz base H<b>se reemplazan con una matriz de tamaño 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 según 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 según 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 memoria 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 los parámetros relacionados de la matriz LDPC se almacenan, no todas las filas en las matrices en la Figura 3a y las Figuras 3b-1 a 3b-8 o no todas las filas en las matrices de la Tabla 2 y la Tabla 3b-1 a la Tabla 3b-8 se almacenan, y los parámetros indicados por las filas correspondientes en las tablas pueden almacenarse en base a 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 Offset<s>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 memoria, que no se limita a esto.
Usando la Figura 1 como ejemplo, en una implementación, después de la matriz base H<B>se determina, 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, H<núcleo doble>. 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 los bits de secuencia y paridad de entrada correspondientes a H<núcleo doble>. 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 nuevamente en la presente memoria.
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<0>,d<1>,d<2>,..., d<N-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 Z<c>, 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 con o sin 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+K<b>)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 K0 bits en la secuencia de entrada c y N-K0 bits de paridad en una secuencia de paridad w, donde K0 es un número entero, y 0<K£K. La secuencia de paridad w puede representarse como {W<0>, W<1>, W<2>,..., w<n -k 0-1>}, y una longitud de la secuencia de paridad w es N-K<0>. 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+2Z<c>-K, y la secuencia de paridad w puede representarse como {w<0>,w<1>,w<2>,..., w<n 2z c - k -1>}. 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 {w0,w1 ,w2,..., wN-K-1}.
Para un valor de K<b,>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 Z<c>=K/K<b>. Por ejemplo, el factor de elevación Z<c>puede determinarse con referencia a la Tabla 1 y la Tabla -1’.
(3) Los valores se asignan a los primeros K-2Z<c>bits en la secuencia de bits codificada d={d0,d1,d2,..., dN-1}. En la presente memoria, los primeros 2Z<c>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-l,
si Ck^<NULO>
dk-2Zc= Cki
si no
<C k =>0<;>
d k- 2 Z c = < N U L O > ;
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:
En la fórmula (1), c=[c<o>,c<i>,c2,...,c<K-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 verificación LDPC, y puede dividirse en dos partes H<1>y H<2>para la representación, por ejemplo, H=[H<1>H<2>]. c=[c¡<0>, c<1>, c<2>,...,<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+2Z<c>-K bits de paridad, w=[Wo, W<1>, W<2>,..., W<n 2z c -k -1>]<t>son un vector transpuesto de un vector formado por bits en una secuencia de paridad {Wo, W<1>, W<2>,..., W<n+2z c - k -1>}. Para otro ejemplo, para bits de paridad N-K-1, w=[Wo, W<1>, W<2>,..., W<n -k -1>]<t>es un vector transpuesto de un vector formado por bits en una secuencia de paridad {Wo, W<1>, W<2>,..., W<n -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 Z<c>*Z<c>. Cada elemento cero en el gráfico base se reemplaza con una matriz todo cero de tamaño Z<c>xZ<c>. 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(P<¡,j>) correspondiente a un valor de desplazamiento P<i,j>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(P<j>se obtiene desplazando de manera circular la matriz de tamaño Z<c>*Z<c>a la derecha o a la izquierda Pu veces, donde P<i j>=mod(V<i j>,Z<c>), y V<ij>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, H<1>pueden ser las partes A, B y D del gráfico base o la matriz base enumerados en lo anterior, 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, H<1>puede ser algunas filas y algunas columnas en las partes A, B y D del gráfico base o la matriz base enumerados en lo anterior, 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 la fila 41 y la columna 0 a la columna 13.
En una implementación, H<1>alternativamente puede ser m filas y n columnas en el gráfico base o la matriz base enumerados en lo anterior, 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 K<b>, una longitud de secuencia de entrada del codificador es K<b>*Z. Si K<b><9, columnas {K<b>K<b+>1,...,9} en la matriz H<1>se retiran y luego 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+pZ)/Z columnas o n=N/Z columnas.
Como implementación, H<2>puede representarse como
donde 0mxn representa un mxn toda la matriz cero (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 de n x 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 basándose en una matriz de la fila 0 a la fila 41 y de la columna 0 a la columna 13 de cualquiera de las matrices de la Figura 3a o de las Figuras 3b-1 a 3b-8.
En un diseño, para K<b>E {6,8,9}, la matriz H puede ser una matriz obtenida después de las columnas {K<b>, K<b 1>,..., 9} se retiran de cualquier matriz base o matriz base descrita anteriormente; para K<b>= 10, la matriz H puede ser cualquier gráfico base o matriz base descrita anteriormente.
El valor de desplazamiento V<i,j>en la matriz H se puede obtener en base a las Figuras 3b-1 a 3b-8, o la Tabla 3b-1 a la Tabla 3b-8 y la Tabla 3b-2', o cualquier manera 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 una longitud de la secuencia de paridad w es N+2Z<c>-K. Si las columnas de perforación integradas p participan en la codificación, una longitud de la secuencia de paridad w es N-K.
En un diseño, 0<mxn>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.
I<nxn>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 últimas dos columnas de cada una de la submatriz B y la submatriz D, o la submatriz E más las tres últimas columnas de cada una de la submatriz B y la submatriz D en lo anterior.
(5) Opcionalmente, para k=K a N+2Z<c>-1, d<k-2Zc>=<W k-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 de base o las matrices base mostradas en la Figura 3a y las Figuras 3b-1 a 3b-8 enumeradas en lo anterior se usa como un 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 posible diseño, 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 basándose en algunas de la fila 0 a la fila 6 y 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 puede obtenerse en base a las matrices base proporcionadas en las Figuras 3b-1 a 3b-8, o la matriz LDPC puede obtenerse en base a la Tabla 3b-1 correspondiente a la Tabla 3b-8.
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 está ubicado en la columna 28; cuando la fila actualmente procesada es la fila 19, un elemento distinto de cero correspondiente a la parte E se ubica 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 está ubicado en la columna 14; cuando una fila actualmente procesada es la fila 5, un elemento distinto de cero correspondiente a una parte almacenada está ubicado 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 se almacena está ubicado en la columna (14+x)z; cuando una fila actualmente procesada es fila (3+x)+1, un elemento distinto de cero correspondiente a la parte E se ubica en la columna (14+x)z+1; 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 según P<y>=mod (V<y>,Z<c>), 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 V<i,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 Vy, el valor transformado es (z-V<i,j>) 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 Vy 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={c<0>,c<1>,c<2>,c<3>,...,c<K-1>}, y un segmento de bits codificado es d={d<0>,d<-i>,d<2>,...,d<N-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=[PI1 (2)
En este caso, la matriz de generación G correspondiente satisface:
G=L1Pt J (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={d<0>,d<1>,d<2>,...d<N -1>} puede calcularse en base al segmento de bits que se va a codificar c={c<0>,c<1>,c<2>,c<3>,...,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 P<i,j>=mod(V<y>,Z<c>), 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 que se obtiene el código LDPC, el aparato de comunicación puede realizar además la siguiente o más operaciones: realizar la coincidencia de velocidad en el código LDPC; intercalando, según una solución de intercalado, el código LDPC en el que se realiza la coincidencia de velocidad; modular el código LDPC entrelazado según 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 nuevamente en la presente memoria. 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, una realización de 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 en lo anterior. 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 nuevamente en la presente memoria.
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 tasas, 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 según 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 propósito general, un ordenador dedicado, una red de ordenadores, u otro aparato programable. Las instrucciones de 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.
Claims (16)
- REIVINDICACIONES 1. Un método para comunicación inalámbrica, que comprende: obtener una secuencia de entrada; decodificar la secuencia de entrada basándose en una matriz de control de paridad de baja densidad LDPC, en donde la matriz LDPC se determina según una matriz y un factor de elevación Z, en donde el factor de elevación Z es uno de 5, 10, 20, 40, 80, 160, o 320; en donde los elementos en la matriz están representados respectivamente por su índice de fila i e índice de columna j, un elemento en la matriz 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 V¡,j, en donde cada elemento cero en la matriz representa una matriz todo cero de tamaño Z*Z, en donde un elemento distinto de cero en la fila i y la columna j en la matriz representa una matriz de permutación circular de tamaño Z*Z, en donde la matriz de permutación circular corresponde a una Z*Z matriz de identidad desplazada circularmente a la derecha paraPijveces, en dondePj=mod(Vj,Z); y en donde los elementos distintos de cero de la matriz cuyos índices de fila i, índices de columna j y valores correspondientesV,json los siguientes:
- 2. El método según la reivindicación 1, que comprende además: determinar el factor de elevación Z; y determinar la matriz según un índice establecido de un conjunto de factor de elevación donde se ubica el factor de elevación Z.
- 3. El método según la reivindicación 1 o la reivindicación 2, en donde el factor de elevación Z se determina en base a una longitud K de la secuencia de entrada antes de la codificación.
- 4. El método según una cualquiera de las reivindicaciones 1 a 3, en donde el factor de elevación Z es un valor mínimo que satisface K<t>/Z >K , K es la longitud de la secuencia de entrada antes de la codificación y K<b>es uno de 6, 8, 9 y 10.
- 5. El método según la reivindicación 4, en donde K<b>satisface: K> 640 560 < 1 < 640 192<E<566 otros
- 6. Un aparato (700) para comunicación inalámbrica, que comprende: al menos un procesador (701) configurado para: obtener una secuencia de entrada, decodificar la secuencia de entrada basándose en una matriz de control de paridad de baja densidad LDPC, en donde la matriz LDPC se determina según una matriz y un factor de elevación Z, en donde el factor de elevación Z es uno de 5, 10, 20, 40, 80, 160, o 320; en donde los elementos en la matriz están representados respectivamente por su índice de fila i e índice de columna j, un elemento en la matriz 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 V<j> en donde cada elemento cero en la matriz representa una matriz todo cero de tamaño Z*Z, en donde un elemento distinto de cero en la fila i y la columna j en la matriz representa una matriz de permutación circular de tamaño ZxZ, en donde la matriz de permutación circular corresponde a una ZxZ matriz de identidad desplazada circularmente a la derecha paraPi,jveces, en dondeP/j=mod( V,j, Z); y en donde los elementos distintos de cero de la matriz cuyos índices de fila i, índices de columna j y valores correspondientesV/json los siguientes:
- 7. El aparato (700) según la reivindicación 6, en donde el al menos un procesador (701) se configura además para: determinar el factor de elevación Z; y determinar la matriz según un índice establecido de un conjunto de factor de elevación donde se ubica el factor de elevación Z.
- 8. El aparato (700) según la reivindicación 6 o la reivindicación 7, en donde el factor de elevación Z se determina en base a una longitud K de la secuencia de entrada antes de la codificación.
- 9. El aparato (700) según una cualquiera de las reivindicaciones 1 a 8, en donde el factor de elevación Z es un valor mínimo que satisface K^Z>K, K es la longitud de la secuencia de entrada antes de la codificación y Kb es uno de 6, 8, 9 y 10.
- 10. El aparato (700) según la reivindicación 9, en donde Kb satisface: K> 64® S6Q*CK S 640 192 <E < 560 otros
- 11. El aparato (700) según una cualquiera de las reivindicaciones 6 a 10, en donde el al menos un procesador (701) se configura además para: recibir una señal que comprende información que se basa en codificación de comprobación de paridad de baja densidad, LDPC; y realizar una demodulación, desintercalado y de desajuste de tasas en la señal para obtener la secuencia de entrada.
- 12. El aparato (700) según una cualquiera de las reivindicaciones 6 a 11, que comprende además al menos una memoria (702) configurada para almacenar uno o más de los siguientes: la matriz; parámetros asociados con la matriz; los factores de elevación Z; o una matriz transformada de la matriz.
- 13. El aparato (700) según una cualquiera de las reivindicaciones 6 a 12, que comprende además un transceptor (705) configurado para recibir la secuencia de entrada.
- 14. 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 según una cualquiera de las reivindicaciones 1 a 5.
- 15. Un producto de programa informático, que comprende instrucciones (703, 704) que, cuando se ejecutan en un ordenador, hacen que el ordenador realice el método según cualquiera de las reivindicaciones 1 a 5.
- 16. Un sistema (800) de comunicación, que comprende un primer dispositivo (80) de comunicación y un segundo dispositivo (81) de comunicación; el primer dispositivo (80) de comunicación está configurado para codificar una secuencia de entrada en base a una matriz de comprobación de paridad de baja densidad, LDPC, y enviar la secuencia de entrada codificada al segundo dispositivo (81) de comunicación; el segundo dispositivo (81) de comunicación está configurado para decodificar la secuencia de entrada codificada recibida del primer dispositivo (80) de comunicación; en donde la matriz LDPC se determina según una matriz y un factor de elevación Z, en donde el factor de elevación Z es uno de 5, 10, 20, 40, 80, 160, o 320; en donde los elementos en la matriz están representados respectivamente por su índice de fila i e índice de columna j, un elemento en la matriz 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 V<i, j>, en donde cada elemento cero en la matriz representa una matriz todo cero de tamaño Z*Z, en donde un elemento distinto de cero en la fila i y la columna j en la matriz representa una matriz de permutación circular de tamaño ZxZ, en donde la matriz de permutación circular corresponde a una ZxZ matriz de identidad desplazada circularmente a la derecha paraPi,jveces, en dondePi,j=mod( Vj, Z); y en donde los elementos distintos de cero de la matriz cuyos índices de fila i, índices de columna j y valores correspondientes V<i,j>son los siguientes:
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710503056 | 2017-06-27 | ||
CN201710572364.0A CN109150197B (zh) | 2017-06-27 | 2017-07-13 | 信息处理的方法、装置和通信设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2970217T3 true ES2970217T3 (es) | 2024-05-27 |
Family
ID=64803188
Family Applications (2)
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 |
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 |
Family Applications After (1)
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 |
Country Status (12)
Country | Link |
---|---|
US (4) | US10771092B2 (es) |
EP (3) | EP4064573B1 (es) |
JP (2) | JP7143343B2 (es) |
KR (1) | KR102276721B1 (es) |
CN (3) | CN109327225B9 (es) |
AU (1) | AU2018294981B2 (es) |
BR (2) | BR112019027688A8 (es) |
CA (1) | CA3068553A1 (es) |
ES (2) | ES2970217T3 (es) |
MY (1) | MY196344A (es) |
PL (1) | PL3567731T3 (es) |
RU (1) | RU2758968C2 (es) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3471276A4 (en) | 2017-02-06 | 2020-06-24 | LG Electronics Inc. -1- | LDPC CODE TRANSFER METHOD WITH LINE-ORIENTAL STRUCTURE AND DEVICE THEREFOR |
RU2740154C1 (ru) | 2017-06-15 | 2021-01-12 | Хуавей Текнолоджиз Ко., Лтд. | Способ обработки информации и устройство связи |
CN109327225B9 (zh) * | 2017-06-27 | 2021-12-10 | 华为技术有限公司 | 信息处理的方法、装置和通信设备 |
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 (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3808769B2 (ja) | 2001-12-27 | 2006-08-16 | 三菱電機株式会社 | Ldpc符号用検査行列生成方法 |
ES2381012T3 (es) | 2002-07-03 | 2012-05-22 | Dtvg Licensing, Inc | Procedimiento y sistema para generar códigos de comprobación de paridad de baja densidad (LDPC) |
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 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치 |
US20050283707A1 (en) | 2004-06-22 | 2005-12-22 | Eran Sharon | LDPC decoder for decoding a low-density parity check (LDPC) codewords |
EP1626505B1 (en) | 2004-08-10 | 2011-03-09 | Samsung Electronics Co., Ltd. | Apparatus and method for encoding and decoding a block low density parity check code |
US7188297B2 (en) | 2004-08-12 | 2007-03-06 | Motorola, Inc. | Method and apparatus for encoding and decoding data |
US7721179B2 (en) | 2004-09-15 | 2010-05-18 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding/decoding transmission information in mobile telecommunication system |
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 | 中兴通讯股份有限公司 | 一种支持递增冗余混合自动重传的低密度奇偶校验码编码装置和方法 |
CA2674719A1 (en) | 2007-01-24 | 2008-07-31 | Qualcomm Incorporated | Ldpc encoding and decoding of packets of variable sizes |
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 |
GB2471513B (en) | 2009-07-02 | 2013-09-25 | Samsung Electronics Uk Ltd | Encoding/decoding apparatus and method |
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 |
US20140229788A1 (en) * | 2013-02-13 | 2014-08-14 | Qualcomm Incorporated | Ldpc design for high rate, high parallelism, and low error floor |
CN104521147B (zh) | 2013-06-12 | 2019-12-17 | 索尼公司 | 数据处理设备和数据处理方法 |
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 коды |
CN113949389A (zh) * | 2017-05-05 | 2022-01-18 | 联发科技股份有限公司 | Qc-ldpc编码方法、装置及非暂时性计算机可读介质 |
CN110535474B (zh) * | 2017-05-05 | 2023-06-06 | 华为技术有限公司 | 信息处理的方法、通信装置 |
RU2740154C1 (ru) | 2017-06-15 | 2021-01-12 | Хуавей Текнолоджиз Ко., Лтд. | Способ обработки информации и устройство связи |
CN109327225B9 (zh) * | 2017-06-27 | 2021-12-10 | 华为技术有限公司 | 信息处理的方法、装置和通信设备 |
-
2017
- 2017-07-13 CN CN201810974626.0A patent/CN109327225B9/zh active Active
- 2017-07-13 CN CN201710572364.0A patent/CN109150197B/zh active Active
-
2018
- 2018-04-12 BR BR112019027688A patent/BR112019027688A8/pt not_active Application Discontinuation
- 2018-04-12 ES ES22150629T patent/ES2970217T3/es active Active
- 2018-04-12 PL PL18825332T patent/PL3567731T3/pl unknown
- 2018-04-12 AU AU2018294981A patent/AU2018294981B2/en active Active
- 2018-04-12 EP EP22150629.8A patent/EP4064573B1/en active Active
- 2018-04-12 CA CA3068553A patent/CA3068553A1/en active Pending
- 2018-04-12 EP EP23210956.1A patent/EP4376337A2/en active Pending
- 2018-04-12 JP JP2019571976A patent/JP7143343B2/ja active Active
- 2018-04-12 ES ES18825332T patent/ES2907089T3/es active Active
- 2018-04-12 MY MYPI2019007678A patent/MY196344A/en unknown
- 2018-04-12 KR KR1020207002529A patent/KR102276721B1/ko active IP Right Grant
- 2018-04-12 EP EP18825332.2A patent/EP3567731B1/en active Active
- 2018-04-12 RU RU2020102671A patent/RU2758968C2/ru active
- 2018-06-27 CN CN201880043727.4A patent/CN111066253A/zh active Pending
- 2018-06-27 BR BR112019027876-1A patent/BR112019027876A2/pt unknown
-
2019
- 2019-05-28 US US16/423,175 patent/US10771092B2/en active Active
-
2020
- 2020-09-06 US US17/013,640 patent/US11277153B2/en active Active
-
2022
- 2022-02-02 US US17/591,347 patent/US11671116B2/en active Active
- 2022-09-13 JP JP2022145260A patent/JP7471360B2/ja active Active
-
2023
- 2023-04-24 US US18/305,982 patent/US12047096B2/en active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2970217T3 (es) | Decodificación 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 | |
CN110999091B (zh) | 信息处理的方法和通信装置 | |
JP7221999B2 (ja) | 情報処理方法および通信装置 | |
WO2019001477A1 (zh) | 信息处理的方法、装置和通信设备 |