ES2546912T3 - Intercalador de bits para un sistema de BICM con códigos QC LDPC - Google Patents
Intercalador de bits para un sistema de BICM con códigos QC LDPC Download PDFInfo
- Publication number
- ES2546912T3 ES2546912T3 ES12785728.2T ES12785728T ES2546912T3 ES 2546912 T3 ES2546912 T3 ES 2546912T3 ES 12785728 T ES12785728 T ES 12785728T ES 2546912 T3 ES2546912 T3 ES 2546912T3
- Authority
- ES
- Spain
- Prior art keywords
- bits
- bit
- cyclic
- cyclic blocks
- interleaver
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—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 using interleaving techniques
- H03M13/2792—Interleaver wherein interleaving is performed jointly with another technique such as puncturing, multiplexing or routing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1142—Decoding using trapping sets
-
- 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/0071—Use of interleaving
-
- 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/27—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 using interleaving techniques
- H03M13/2767—Interleaver wherein the permutation pattern or a portion thereof is stored
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1134—Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/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/1154—Low-density parity-check convolutional codes [LDPC-CC]
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1165—QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1168—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal 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
- H03M13/27—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 using interleaving techniques
-
- 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/27—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 using interleaving techniques
- H03M13/2703—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 using interleaving techniques the interleaver involving at least two directions
-
- 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/27—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 using interleaving techniques
- H03M13/2703—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 using interleaving techniques the interleaver involving at least two directions
- H03M13/271—Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column 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/27—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 using interleaving techniques
- H03M13/2778—Interleaver using block-wise interleaving, e.g. the interleaving matrix is sub-divided into sub-matrices and the permutation is performed in blocks of 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/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- 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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/356—Unequal error protection [UEP]
-
- 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/6325—Error control coding in combination with demodulation
-
- 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/6522—Intended application, e.g. transmission or communication standard
- H03M13/6552—DVB-T2
-
- 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/6522—Intended application, e.g. transmission or communication standard
- H03M13/6555—DVB-C2
-
- 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/02—Arrangements for detecting or preventing errors in the information received by diversity reception
- H04L1/06—Arrangements for detecting or preventing errors in the information received by diversity reception using space diversity
-
- 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
- H04L1/0058—Block-coded modulation
-
- 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/02—Arrangements for detecting or preventing errors in the information received by diversity reception
- H04L1/06—Arrangements for detecting or preventing errors in the information received by diversity reception using space diversity
- H04L1/0606—Space-frequency coding
-
- 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/02—Arrangements for detecting or preventing errors in the information received by diversity reception
- H04L1/06—Arrangements for detecting or preventing errors in the information received by diversity reception using space diversity
- H04L1/0618—Space-time coding
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
Abstract
Un método de intercalación de bits para intercalar una palabra de código generada mediante una codificación de comprobación de paridad de baja densidad cuasi cíclica, QC LDPC, que emplea Q × Q matrices circulantes, incluyendo codificación QC LDPC de repetir-acumular, comprendiendo el método de intercalación de bits: una etapa de permutación de bits para aplicar un proceso de permutación de bits a la palabra de código para redisponer bits de palabra de código, estando compuesta la palabra de código de N bloques cíclicos consistiendo cada uno en Q bits de bloques cíclicos; y una etapa de división para dividir la palabra de código, después del proceso de permutación de bits, en una pluralidad de palabras de constelación, estando compuesta cada una de las palabras de constelación de M bits, en donde F es un entero mayor de 1 y es un divisor de M y de Q, N no es un múltiplo de M/F, N' es igual a (M/F)×floor(N/(M/F)), antes del proceso de permutación de bits, se dividen N' bloques cíclicos entre los N bloques cíclicos en F×N'/M secciones de repliegue, consistiendo cada una de las secciones de repliegue en M/F de los bloques cíclicos, y en la etapa de permutación de bits, para cada sección de repliegue, el proceso de permutación de bits se aplica a los Q×(M/F) bits de una sección de repliegue dada de manera que M bits, incluyendo F bits de bloques cíclicos de cada uno de los M/F bloques cíclicos diferentes, se asignan a una de las Q/F palabras de constelación asociadas a la sección de repliegue dada.
Description
15
25
35
45
55
65
E12785728
08-09-2015
DESCRIPCIÓN
Intercalador de bits para un sistema de BICM con códigos QC LDPC
La presente divulgación se refiere al campo de comunicaciones digitales, y más específicamente a un intercalador de bits para un sistema de codificación y modulación de bits intercalados con códigos de comprobación de paridad de baja densidad cuasi cíclicos.
En los últimos años, los sistemas de codificación y modulación de bits intercalados (en lo sucesivo, BICM) se han usado en el campo de las comunicaciones digitales (véase, por ejemplo, la norma DVB-T2 ETSI EN 302 755 V1.2.1).
Los sistemas de BICM generalmente incorporan las siguientes tres etapas.
- (1)
- Codificar bloques de datos en palabras de código usando, por ejemplo, códigos de comprobación de paridad de baja densidad cuasi cíclicos (en lo sucesivo, QC LDPC) o similares.
- (2)
- Realizar intercalación de bits en los bits de cada palabra de código.
- (3)
- Dividir cada palabra de código intercalada de bits en palabras de constelación que tienen un número de bits de constelación, y mapear las palabras de constelación en constelaciones.
Normalmente, es deseable la eficacia en la intercalación aplicada a las palabras de código de los códigos de comprobación de paridad de baja densidad cuasi cíclicos.
El artículo “Macro Interleaver Design for Bit Interleaved Coded Modulation with Low-Density Parity-Check Codes” por Frank Kienle y Norbert Wehn (Vehicular Technology Conference, 2008. VTC Spring 2008. IEEE, Piscataway, NJ, Estados Unidos) desvela un intercalador diseñado para modulación codificada intercalada de bits con códigos de comprobación de paridad de baja densidad.
El artículo “Performance of belief propagation coded modulation with iterative decoding” por Hua Rui, XiaoFei Zhang, y DaZhuan Xu (International Conference on Communications, Circuits and Systems, ICCCAS 2004, Chengdu, China 27-29 de junio de 2004, IEEE, Piscataway, NJ, Estados Unidos) se refiere a modulación codificada de bits intercalados con decodificación iterativa para transmisión eficaz de ancho de banda a través del canal de desvanecimiento de Rayleigh y desvela un esquema iterativo concatenado en serie (BPCM-ID) que combina códigos de comprobación de paridad de baja densidad (LDPC) con modulación multinivel.
La referencia WO 2010-024914 (A1) desvela un método para reusar códigos de comprobación de paridad de baja densidad (LDPC) de difusión de vídeo digital por satélite de la segunda generación (DVB-S2), y por lo tanto también hardware de DVB-S2, en difusión de vídeo digital para contextos de cable de la segunda generación (DVB-C2). Los códigos de LDPC son susceptibles a un error umbral, más allá del que la información codificada no puede recuperarse con precisión. Coincidiendo los niveles variables de protección en una palabra de código de LDPC con los niveles variables de protección en modulación de amplitud en cuadratura, el número de errores puede mantenerse por debajo del error umbral.
La presente divulgación tiene por objetivo proporcionar un método de intercalación de bits que posibilita que se aplique intercalación eficaz a las palabras de código de códigos de comprobación de paridad de baja densidad cuasi cíclicos, así como un intercalador de bits correspondiente, un método de decodificación y un decodificador.
Esto se consigue mediante las características de las reivindicaciones independientes. Las realizaciones preferidas son la materia objeto de las reivindicaciones dependientes.
El alcance de la presente invención se define únicamente mediante las reivindicaciones adjuntas. Se proporcionan las realizaciones con F=1 o con N siendo un múltiplo de M/F para fines ilustrativos únicamente y no son parte de la invención reivindicada.
El método de intercalación de bits de la presente invención posibilita que se aplique intercalación eficaz a las palabras de código de los códigos de comprobación de paridad de baja densidad cuasi cíclicos.
[Breve descripción de los dibujos]
La Figura 1 es un diagrama de bloques que muestra la configuración de un transmisor que incluye un codificador de BICM típico. La Figura 2 ilustra un ejemplo de una matriz de comprobación de paridad para códigos de comprobación de paridad de baja densidad cuasi cíclicos que tienen una tasa de codificación de 1/2. La Figura 3 ilustra un ejemplo de una matriz de comprobación de paridad para códigos de comprobación de paridad de baja densidad cuasi cíclicos de repetir-acumular que tienen una tasa de codificación de 2/3. La Figura 4 ilustra una matriz de comprobación de paridad para los códigos de comprobación de paridad de baja
10
15
20
25
30
35
40
45
50
55
60
65
E12785728
08-09-2015
densidad cuasi cíclicos de repetir-acumular de la Figura 3 después de una permutación de fila. La Figura 5 ilustra una matriz de comprobación de paridad para los códigos de comprobación de paridad de baja densidad cuasi cíclicos de repetir-acumular de la Figura 3 después de una permutación de fila y una permutación de paridad. La Figura 6 describe diferentes niveles de robustez de los bits codificados en ocho símbolos de PAM. La Figura 7 es un diagrama de bloques que muestra la configuración de un intercalador de bits típico donde el factor cíclico Q es 8, el número de bloques cíclicos por palabra de código de comprobación de paridad de baja densidad N es 12 y el número de bits por constelación M es 4. La Figura 8A es un diagrama de bloques que muestra la configuración de un modulador de DVB-T2 usado en la norma DVB-T2 y la Figura 8B es un diagrama de bloques que muestra la configuración de un codificador de BICM para el modulador de DVB-T2 de la Figura 8A. La Figura 9A ilustra un proceso de escritura para los bits de una palabra de código de 16 K (es decir, un código de LDPC donde la longitud de la palabra de código de LDPC es 16200 bits) según se realiza mediante un intercalador de comuna-fila que tiene doce columnas, y la Figura 9B ilustra un proceso de lectura para los bits de la palabra de código escritos de la manera indicada mediante la Figura 9A según se realiza mediante el intercalador de columna-fila. La Figura 10A ilustra un proceso de escritura para los bits de una palabra de código de 16 K según se realiza mediante un intercalador de columna-fila que tiene ocho columnas, y la Figura 10B ilustra un proceso de lectura para los bits de la palabra de código escritos de la manera indicada mediante la Figura 10A según se realiza mediante el intercalador de columna-fila. La Figura 11 es un diagrama de bloques que muestra la configuración de un demultiplexor de bit a celda usado para códigos de 16 K de 16-QAM en la norma de DVB-T2. La Figura 12 es un diagrama de bloques que muestra la configuración de un demultiplexor de bit a celda usado para códigos de 16 K de 64-QAM en la norma de DVB-T2. La Figura 13 es un diagrama de bloques que muestra la configuración de un demultiplexor de bit a celda usado para códigos de 16 K de 256-QAM en la norma de DVB-T2. La Figura 14 ilustra un problema que aparece para los códigos de 16 K con un intercalador de bits de DVB-T2 de ocho columnas. La Figura 15 ilustra un problema que aparece para los códigos de 16 K con un intercalador de bits de DVB-T2 de doce columnas. La Figura 16 ilustra un problema que aparece para los códigos de 16 K con un intercalador de bits de DVB-T2 de ocho columnas cuando se aplica giro de columna. La Figura 17 ilustra un problema que aparece para los códigos de 16 K con un intercalador de bits de DVB-T2 de doce columnas cuando se aplica giro de columna. Las Figuras 18A y 18B ilustran respectivamente una primera y segunda condiciones descubiertas por los inventores que posibilitan que se proporcione un intercalador extremadamente eficaz. La Figura 19 ilustra una función de mapeo mediante un intercalador que pertenece a una realización. La Figura 20 es un diagrama de bloques que muestra la configuración de un intercalador que pertenece a una realización. La Figura 21A es un diagrama de bloques que muestra la configuración de un permutador de sección que realiza la permutación de sección ilustrada en la Figura 20, y la Figura 21B ilustra una función de mapeo del permutador de sección mostrado en la Figura 21A. La Figura 22A es un diagrama de bloques que muestra una configuración alternativa de un permutador de sección que realiza la permutación de sección ilustrada en la Figura 20, y la Figura 22B ilustra una función de mapeo del permutador de sección mostrado en la Figura 22A. La Figura 23 es un diagrama de bloques que muestra la configuración de un intercalador que pertenece a otra realización. La Figura 24 es un diagrama de bloques que muestra la configuración del intercalador de bits mostrado en la Figura 23. La Figura 25 es un diagrama de bloques que muestra la configuración de un transmisor que pertenece a una realización adicional. La Figura 26 es un diagrama de bloques que muestra la configuración de un codificador de BICM que pertenece a una realización adicional. La Figura 27 es un diagrama de bloques que muestra la configuración de un receptor que incluye un decodificador de BICM no iterativo, que pertenece a una realización adicional. La Figura 28 es un diagrama de bloques que muestra la configuración de un receptor que incluye un decodificador de BICM iterativo, que pertenece a una realización adicional. La Figura 29 es un diagrama de bloques que muestra la configuración de un decodificador de BICM iterativo que pertenece a una realización adicional. La Figura 30 ilustra un ejemplo de bloques cíclicos incluidos en y excluidos de un proceso de intercalador paralelo. Las Figuras 31A y 31B ilustran respectivamente una primera y segunda condiciones descubiertas por los inventores que posibilitan que se proporcione un intercalador extremadamente eficaz. La Figura 32 es un diagrama de bloques que muestra la configuración de un intercalador que pertenece a otra realización.
15
25
35
45
55
65
E12785728
08-09-2015
La Figura 33A ilustra una función de mapeo para una situación sin repliegue (F= 1), y la Figura 33B ilustra una función de mapeo para una situación con repliegue (F = 2). La Figura 34A es un diagrama de bloques que muestra la configuración de un permutador de sección (repliegue) para la situación sin repliegue (F = 1), y la Figura 34B es un diagrama de bloques que muestra la configuración de un permutador de sección de repliegue para la situación con repliegue (F = 2). La Figura 35 es un diagrama de bloques que muestra la configuración de un intercalador que pertenece a otra realización. La Figura 36 es un diagrama de bloques que muestra la configuración del intercalador de bits mostrado en la Figura 35. La Figura 37 es un diagrama de bloques que muestra la configuración de un transmisor que pertenece a una realización adicional. La Figura 38 es un diagrama de bloques de un receptor que incluye un decodificador de BICM no iterativo, que pertenece a una realización adicional. La Figura 39 es un diagrama de bloques de un receptor que incluye un decodificador de BICM iterativo, que pertenece a una realización adicional. La Figura 40 ilustra localizaciones de memoria de LLR para repliegue con F = 2, y posiciones de bits para la primera palabra de constelación. La Figura 41 representa esquemáticamente mapeo de bloques de constelación que pertenecen a códigos de QPSK+16QAM híbridos. La Figura 42 es un diagrama de bloques que muestra la configuración de un intercalador que pertenece a otra realización. La Figura 43 es un diagrama de bloques que muestra la configuración de un intercalador que pertenece a otra realización. Las Figuras 44A y 44B son diagramas de bloques que muestran las configuraciones de intercaladores de ejemplo que pertenecen a otra realización; teniendo la Figura 44A N = 45, Q = 360, M =4y F = 1 (sin repliegue), y teniendo la Figura 44B N = 45, Q = 360, M =4y F = 2 (con repliegue). Las Figuras 45A y 45B son diagramas de bloques que muestran las configuraciones de intercaladores de ejemplo que pertenecen a otra realización; teniendo la Figura 45A N = 45, Q = 360, M = 6, y F =1 (sin repliegue), y teniendo la Figura 45B N = 45, Q = 360, M = 6, y F = 2 (con repliegue). La Figura 46 ilustra la distinción de la conectividad de los nodos de comprobación de matriz de comprobación de paridad 17-24 mostrados en la Figura 5. La Figura 47 ilustra esquemáticamente la conectividad de los nodos variables de matriz de comprobación de paridad 17-24 mostrados en la Figura 46 para la permutación cíclica. Las Figuras 48A a 48H ilustran respectivamente mapeo de nodos variables asociados con los nodos de comprobación de matriz de comprobación de paridad 17-24 mostrados en la Figura 46. Las Figuras 49A a 49H ilustran respectivamente mapeo de constelación para 16-QAM para QB14 y QB15 asociados con los nodos de comprobación 17-24. Las Figuras 50A a 50H ilustran respectivamente mapeo de constelación para 16-QAM para QB4 y QB5 asociados con los nodos de comprobación 17-24. La Figura 51A ilustra un intercalador reconfigurable para la permutación de bloques intra-cíclica usando un único rotador, y la Figura 51B ilustra un intercalador reconfigurable para la permutación de bloques intra-cíclica usando dos rotadores. Las Figuras 52A a 52H ilustran respectivamente desplazar QB14 en dos para evitar nodos de comprobación ineficaces para cada una de las Figuras 49A a 49H. Las Figuras 53A a 53H ilustran respectivamente desplazar QB4 en tres para evitar nodos de comprobación ineficaces para cada una de las Figuras 50A a 50H. La Figura 54 ilustra esquemáticamente la configuración de un intercalador de bits paralelo y permutador de bloques cíclico para una realización donde el factor de repliegue es dos. La Figura 55 es un diagrama de bloques que muestra la configuración de un codificador de BICM cuando Q = 8, M =4y F = 2. La Figura 56 es un diagrama de bloques que muestra la configuración de un decodificador de BICM iterativo cuando Q = 8, M =4y F = 2.
[Descripción de las realizaciones]
(Información de antecedentes)
La Figura 1 es un diagrama de bloques que muestra la configuración de un transmisor 100 que incluye un codificador de codificación y modulación de bits intercalados (en lo sucesivo, BICM) típico. Como se muestra, el transmisor 100 incluye un procesador de entrada 110, un codificador de BICM (que incluye a su vez un codificador de comprobación de paridad de baja densidad 120 (en lo sucesivo, LDPC), un intercalador de bits 130 y un mapeador de constelación 140) y un modulador 150.
El procesador de entrada 110 convierte un flujo de bits de entrada en bloques de una longitud predeterminada. El codificador de LDPC 120 codifica los bloques en palabras de código usando códigos de LDPC, y a continuación transmite las palabras de código al intercalador de bits 130. El intercalador de bits 130 aplica un proceso de
10
15
20
25
30
35
40
45
50
55
60
65
E12785728
08-09-2015
intercalación a cada palabra de código de LDPC, a continuación divide cada palabra de código intercalada en una secuencia de palabras de celda (es decir, palabras de constelación). El mapeador de constelación 140 mapea cada palabra de celda (es decir, palabra de constelación) a una secuencia de constelaciones (por ejemplo, usando QAM). El modulador genérico 150 en la salida incluye todos los bloques de procesamiento desde la salida del codificador de BICM a un amplificador de potencia de frecuencia de radio (en lo sucesivo, RF).
Un código de LDPC es un código de corrección de errores lineal que se define completamente mediante una matriz de comprobación de paridad (en lo sucesivo, PCM). Una PCM es una matriz dispersa binaria que representa la relación de bits de palabras de código (en lo sucesivo denominado también nodos variables) a las comprobaciones de paridad (en lo sucesivo denominado también nodos de comprobación). Las columnas y las filas de la PCM corresponden respectivamente a los nodos variables y a los nodos de comprobación. En la PCM, una relación entre un nodo variable y un nodo de comprobación se representa mediante un elemento uno.
Los códigos de comprobación de paridad de baja densidad cuasi cíclicos (en lo sucesivo, QC LDPC) son una variedad de los códigos de LDPC. Los códigos QC LDPC tienen una estructura que es particularmente adecuada para implementación de hardware. De hecho, la mayoría de las normas en uso hoy en día emplean códigos QC LDPC. La PCM de un código QC LDPC tiene una configuración especial compuesta de una pluralidad de matrices circulantes. Una matriz circulante es una matriz cuadrada en que cada fila es un desplazamiento cíclico de los elementos en la fila anterior, y tiene una, dos o más diagonales replegadas. Cada matriz circulante tiene un tamaño de Q×Q. En este punto, Q representa el factor cíclico del QC LDPC. La configuración cuasi cíclica anteriormente descrita permite que se procesen Q nodos de comprobación en paralelo, que es evidentemente beneficioso para la implementación eficaz de hardware.
La Figura 2 muestra la PCM de un código QC LDPC que tiene un factor cíclico Q de ocho, como un ejemplo. En la Figura 2, así como en las Figuras 3 y 5 descritas más adelante, los cuadrados más pequeños representan cada uno un elemento de la PCM, donde los cuadrados negros son elementos uno y todos los demás cuadrados son elementos cero. La PCM mostrada tiene matrices circulantes con una o dos piezas diagonales replegadas. Este código QC LDPC codifica un bloque de 8×6 = 48 bits en una palabra de código de 8×12 = 96 bits. Por consiguiente, la tasa de codificación del QC LDPC es 48/96 = 1/2. Los bits de palabra de código se dividen en una pluralidad de bloques de Q bits cada uno. Los Q bloques de bits se denominan en lo sucesivo bloques cíclicos (o grupos cíclicos) por esta relación al factor cíclico de Q.
Una variedad especial de los códigos QC LDPC son los códigos de comprobación de paridad de baja densidad cuasi cíclicos de repetir-acumular (en lo sucesivo, QC LDPC). Los códigos RA QC LDPC son bien conocidos como que son fáciles de codificar, y se usan por lo tanto en una amplia diversidad de normas (por ejemplo, en las normas de DVB de la segunda generación, incluyendo DVB-S2, DVB-T2 y DVB-C2). El lado derecho de la PCM corresponde a los bits de paridad. Los elementos uno en la misma se disponen en una estructura en escalera. La Figura 3 muestra un ejemplo de una PCM para un RA QC LDPC que tienen una tasa de codificación de 2/3.
Anteriormente, y a lo largo de todo el documento, DVB-T es una abreviatura de Difusión de Vídeo Digital -Terrestre, DVB-S2 es una abreviatura de Difusión de Vídeo Digital -Satélite de Segunda Generación, DVB-T2 es una abreviatura de Difusión de Vídeo Digital -Terrestre de Segunda Generación y DVB-C2 es una abreviatura de Difusión de Vídeo Digital -Cable de Segunda Generación.
Aplicando una simple permutación de fila a la PCM mostrada en la Figura 3, se revela la estructura cuasi cíclica de los códigos RA QC LDPC, con la excepción de la porción de paridad, mostrada en la Figura 4. La permutación de fila es un cambio sencillo de la representación gráfica que no tiene influencia en la definición de código.
La estructura cuasi cíclica de la porción de paridad de PCM se imparte aplicando una permutación de fila adecuada a únicamente los bits de paridad de la PCM mostrados en la Figura 4. Esta técnica es ampliamente conocida en el campo y se usa en normas tales como DVB-T2, bajo el nombre de intercalación de paridad o de permutación de paridad. La Figura 5 muestra la PCM obtenida como resultado de aplicar tal permutación de paridad a la PCM mostrada en la Figura 4.
Normalmente, los bits de una palabra de código de LDPC varían en importancia, y los bits de una constelación varían en nivel de robustez. Mapear los bits de una palabra de código de LDPC a una constelación directamente, es decir, sin intercalar, conduce a rendimiento subóptimo. Por lo tanto, los bits de la palabra de código de LDPC requieren intercalación antes de mapear en las constelaciones.
Para este fin, se proporciona el intercalador de bits 130 entre el codificador de LDPC 120 y el mapeador de constelación 140, como se muestra en la Figura 1. Diseñando cuidadosamente el intercalador de bits 130, se mejora la asociación entre los bits de la palabra de código de LDPC y los bits codificados mediante la constelación, que conduce a rendimiento de receptor mejorado. El rendimiento se mide normalmente usando la tasa de errores de bits (en lo sucesivo, BER) como una función de la relación de señal a ruido (en lo sucesivo, SNR).
10
15
20
25
30
35
40
45
50
55
60
65
E12785728
08-09-2015
Los bits de la palabra de código de LDPC se diferencian en importancia principalmente puesto que no todos los bits están necesariamente implicados en el mismo número de comprobaciones de paridad. Cuantas más comprobaciones de paridad (nodos de comprobación) estén implicadas en un bit de palabra de código dado (nodo variable), más importante es el bit de palabra de código dado en un proceso de decodificación de LDPC iterativo. Una razón adicional es que cada uno de los nodos variables tiene diferente conectividad a los ciclos de un grafo de Tanner que representa los códigos de LDPC. Por lo tanto, los bits de palabra de código es probable que se diferencien en importancia a pesar de que estén implicados en el mismo número de comprobaciones de paridad. Estas ideas son bien entendidas en el campo. Como una regla, la importancia de los nodos variables aumenta a medida que aumenta el número de nodos de comprobación conectados entre ellos.
En el caso particular de los códigos QC LDPC, todos los bits incluidos en un bloque cíclico de Q bits tienen el mismo número de comprobaciones de paridad aplicadas al mismo, y tienen la misma conectividad para los ciclos del grafo de Tanner. Por lo tanto, todos los bits tienen la misma importancia.
De manera similar, es ampliamente conocido que los bits codificados de una constelación tienen diferentes niveles de robustez. Por ejemplo, una constelación de modulación de amplitud en cuadratura (en lo sucesivo, QAM) se compone de dos símbolos de modulación de impulsos en amplitud independientes (en lo sucesivo, PAM), correspondiendo un símbolo a la parte real y correspondiendo el otro símbolo a la parte imaginaria. Los dos símbolos de PAM codifican cada uno M bits. La Figura 6 muestra 8 símbolos de PAM que usan codificación de Gray. Como se muestra, los bits codificados en cada símbolo de PAM varían en términos de nivel de robustez. La diferencia en robustez es un resultado de la distancia entre dos subconjuntos definidos por cada bit (por ejemplo, 0 o 1) que es diferente para cada uno de los bits. Cuanto mayor es la distancia, más robusto y fiable es el bit. La Figura 6 indica que el bit b3 tiene el nivel de robustez más alto, mientras el bit b1 tiene el nivel de robustez más bajo.
Por lo tanto, una constelación 16-QAM codifica cuatro bits y tiene dos niveles de robustez. De manera similar, una constelación 64-QAM codifica seis bits y tiene tres niveles de robustez. También, una constelación 256-QAM codifica ocho bits y tiene cuatro niveles de robustez.
Los siguientes parámetros se usan en lo sucesivo a lo largo de toda la presente descripción.
Factor cíclico: Q =8
Número de bloques cíclicos por palabra de código de LDPC: N = 12
Número de bits por constelación: M = 4 (es decir, 16-QAM)
Dados los parámetros anteriores, el número de constelaciones a las que se mapea cada palabra de código de LDPC es igual a Q×N/M = 24. Normalmente, los parámetros Q y N se seleccionan de manera que Q×N es igual a un múltiplo de M para todas las constelaciones soportadas mediante el sistema.
La Figura 7 es un diagrama de bloques que muestra la configuración de un intercalador típico cuando se aplican los parámetros anteriores. En la Figura 7, los 12 bloques cíclicos se etiquetan QB1, ..., QB 12, y las 24 constelaciones se etiquetan C1, ..., C24. Un intercalador de bits 710 intercala los 96 bits de la palabra de código de LDPC.
Se conoce un intercalador de bits convencional a partir de la norma de DVB-T2 (véase el documento ETSI EN 302 755). La norma de DVB-T2 es una norma de televisión que presenta mejoras sobre la norma de DVB-T, y describe un sistema de transmisión de línea de base de la segunda generación para difusión de televisión digital. La norma de DVB-T2 proporciona los detalles de un sistema de codificación y modulación de canal para servicios de televisión de difusión y datos genéricos.
La Figura 8A es un diagrama de bloques que muestra la estructura de un modulador usado en la norma de DVB-T2 (es decir, un modulador de DVB-T2). El modulador de DVB-T2 800 incluye un procesador de entrada 810, un codificador de BICM 820, un creador de trama 830 y un generador de OFDM 840.
El procesador de entrada 810 convierte un flujo de bits de entrada en bloques de una longitud predeterminada. El codificador de BICM 820 aplica procesamiento de BICM a la entrada. El creador de trama 830 usa la entrada desde el codificador de BICM 820 y similares para generar una estructura de trama de distribución en el formato de DVB-T2. El generador de OFDM 840 realiza adición de piloto, aplicación de la transformada de Fourier, inserción de intervalo de guarda y similares en la estructura de trama de distribución, a continuación emite una señal de transmisión en el formato de DVB-T2.
El BICM usado en la norma de DVB-T2 se describe en el capítulo 6 de la norma del documento ETSI EN 302 755.
La Figura 8B es un diagrama de bloques que muestra la estructura del codificador de BICM 820 en el modulador de DVB-T2 800 ilustrado en la Figura 8A. La Figura 8B omite la codificación de BCH externa, la rotación de constelación, el intercalador de celda, el intercalador de tiempo y similares.
10
15
20
25
30
35
40
45
50
55
E12785728
08-09-2015
El codificador de BICM 820 incluye un codificador de LDPC 821, un intercalador de bits (que a su vez incluye un intercalador de paridad 822 y un intercalador de columna-fila 823), un demultiplexor de bit a celda 824 y un mapeador de QAM 825.
El codificador de LDPC 821 codifica los bloques en palabras de código usando códigos de LDPC. El intercalador de bits (que incluye el intercalador de paridad 822 y el intercalador de columna-fila 823) realiza intercalación en los bits de las palabras de código. El demultiplexor de bit a celda 824 demultiplexa los bits intercalados de las palabras de código en palabras de celda (palabras de constelación). El mapeador de QAM 825 mapea las palabras de celda (palabras de constelación) a símbolos de QAM complejos. Los símbolos de QAM complejos se denominan también celdas. De hecho, el demultiplexor de bit a celda 824 puede considerarse también una parte del intercalador de bits. En tales situaciones, el codificador de BICM que se ajusta a la norma de DVB-T2 puede considerarse que tiene la estructura básica mostrada en la Figura 1.
Los códigos de LDPC usados en la norma de DVB-T2 son códigos RA QC LDPC que tienen un factor cíclico de Q =
360. Se definen dos longitudes de palabra de código para la norma de DVB-T2, siendo una de 16200 bits y siendo la otra de 64800 bits. En el presente documento, los códigos de LDPC que usan una longitud de palabra de código de 16200 bits se denominan como códigos de 16 K (o como códigos de LDPC de 16 K) y los códigos de LDPC que tienen una longitud de palabra de código de 64800 bits se denominan como códigos de 64 K (o como códigos de LDPC de 64 K). El número de bloques cíclicos por palabra de código es 45 para los códigos de 16 K y 180 para los códigos de 64 K. Los códigos disponibles que corresponden a cada longitud de bloque (longitud de palabra de código) se proporciona en las Tablas A1 a A6 del documento ETSI EN 302 755 para la norma de DVB-T2.
El intercalador de bits se usa únicamente para constelaciones más largas que las constelaciones de modulación por desplazamiento de fase cuaternaria (en lo sucesivo, QPSK), e incluye el intercalador de paridad 822, el intercalador de columna-fila 823 y el demultiplexor de bit a celda 824. De acuerdo con la norma de DVB-T2, el intercalador de bits no incluye el demultiplexor de bit a celda 824. Sin embargo, el presente documento pertenece a la intercalación como se aplica a los códigos de LDPC antes del mapeo de constelación. Como tal, el demultiplexor de bit a celda 824 se trata como una parte del intercalador de bits.
El intercalador de paridad 822 realiza permutación de paridad en los bits de paridad de cada palabra de código para clarificar la estructura cuasi cíclica de los mismos, como se ha descrito anteriormente (véanse las Figuras 4 y 5).
Conceptualmente, el intercalador de columna-fila 823 opera escribiendo los bits de cada palabra de código de LDPC a nivel de columnas en una matriz intercaladora, leyendo a continuación los bits a nivel de filas. El primer bit de la palabra de código de LDPC se escribe en primer lugar, y se lee en primer lugar. Después de escribir y antes de leer los bits de la palabra de código de LDPC, el intercalador de columna-fila 823 desplaza cíclicamente las columnas de bits en un número de posiciones predeterminado. Esto se denomina giro de columna en la norma de DVB-T2. El número de columnas Nc y el número de filas Nr en la matriz intercaladora se proporciona en la Tabla 1 para diversos tamaños de constelación, de acuerdo con las dos longitudes de palabra de código de LDPC anteriormente mencionadas.
[Tabla 1]
- Longitud de palabra de código de LDPC
- Tamaño de constelación Nº de columnas: Nc Nº de filas: Nr
- 16-QAM
- 8 2025
- 16200
- 64-QAM 12 1350
- 256-QAM
- 8 2025
- 16-QAM
- 8 8100
- 64800
- 64-QAM 12 5400
- 256-QAM
- 16 4050
El número de columnas Nc es dos veces el número de bits por constelación, con la excepción de los códigos de 16 K con una constelación 256-QAM. Esta excepción tiene lugar puesto que la longitud de la palabra de código de LDPC de 16200 no es un múltiplo de 16, es decir, no es dos veces el número de bits por constelación 256-QAM.
El proceso de escritura de bits de palabra de código y el proceso de lectura de bits para los códigos de 16 K realizado mediante el intercalador de columna-fila 823 se ilustra en las Figuras 9A y 9B para doce columnas, y en las Figuras 10A y 10B para ocho columnas. Cada uno de los cuadrados pequeños corresponde a un bit de la palabra de código de LDPC. El cuadrado en negro representa el primer bit de la palabra de código de LDPC. Las flechas indican el orden en que se escriben y leen los bits en y desde la matriz intercaladora. Por ejemplo, cuando la matriz intercaladora tiene doce columnas, los bits de la palabra de código del código de 16 K se escriben en el orden dado en la Figura 9A, en concreto (Fila 1, Columna 1), (Fila 2, Columna 1), ..., (Fila 1350, Columna 1), (Fila 1, Columna 2), ..., (Fila 1350, Columna 12), a continuación se leen en el orden dado en la Figura 9B, en concreto (Fila 1, Columna
15
25
35
45
55
65
E12785728
08-09-2015
1), (Fila 1, Columna 2), ..., (Fila 1, Columna 12), (Fila 2, Columna 1), ..., (Fila 1350, Columna 12). Las Figuras 9A, 9B, 10A y 10B no ilustran el proceso de giro de columna.
Antes del mapeo de QAM, el demultiplexor de bit a celda 824 demultiplexa las palabras de código de LDPC para obtener una pluralidad de flujos de bits paralelos. El número de flujos es dos veces el número de bits codificados M por constelación de QAM, es decir, 2×M, con la excepción de los códigos de LDPC de 16 K con una constelación 256-QAM. Para los códigos de LDPC de 16 K con una constelación 256-QAM, el número de flujos es igual al número de bits codificados M por constelación de QAM. Los M bits codificados por constelación se denominan como una palabra de celda (palabra de constelación). Para los códigos de LDPC de 16 K, el número de palabras de celda por palabra de código es 16200/M, como se da a continuación.
8100 celdas para QPSK,
4050 celdas para 16-QAM,
2700 celdas para 64-QAM, y
2025 celdas para 256-QAM.
De acuerdo con la Tabla 1, proporcionada anteriormente, el número de flujos paralelos es igual al número de columnas en el intercalador de columna-fila para constelaciones más largas que QPSK. Los demultiplexores de bit a celda que corresponden a constelaciones 16-QAM, constelaciones 64-QAM y constelaciones 265-QAM para códigos de LDPC de 16 K se muestran respectivamente en las Figuras 11, 12 y 13. La notación de bits usada es la de la norma de DVB-T2.
Como se muestra en la Figura 11 (y en las Figuras 12 y 13), el demultiplexor de bit a celda 824 incluye un demultiplexor sencillo 1110 (también 1210, 1310) y un permutador de demultiplexación 1120 (también 1220, 1320).
Además de haber demultiplexado de manera sencilla las palabras de código de LDPC el demultiplexor sencillo 1110 (1210, 1310), a las que ha aplicado intercalación, el demultiplexor de bit a celda 824 también tiene el permutador de demultiplexación 1120 (1220, 1320) que realiza una permutación en los flujos de bits paralelos demultiplexados.
Sin embargo, cuando se usa el intercalador de columna-fila (es decir, para las constelaciones 16-QAM o más largas), la permutación aplicada a los flujos de bits es idéntica a una permutación aplicada a las columnas del intercalador de columna-fila debido que el número de flujos de bits paralelos es igual al número de columnas. Por lo tanto, la permutación realizada mediante el demultiplexor de bit a celda 824 se considera como una parte del intercalador de bits.
El intercalador de bits usado en la norma de DVB-T2 esencialmente tiene dos problemas.
El primer problema es que el paralelismo se degrada cuando el número de bloques cíclicos en la palabra de código de LDPC no es un múltiplo del número de columnas en la matriz intercaladora de bits. El paralelismo reducido conduce a latencia aumentada. Esto es especialmente problemático cuando se usa decodificación de BICM iterativa mediante el receptor. Esta situación aparece para varias combinaciones de longitud de palabra de código de LDPC y tamaño de constelación en la norma de DVB-T2.
Las Figuras 14 y 15 ilustran la situación anteriormente mencionada para casos de código de LDPC de 16 K donde la matriz intercaladora tiene ocho y doce columnas, respectivamente. Se usan ocho columnas en la matriz intercaladora para constelaciones 16-QAM y constelaciones 265-QAM. Se usan doce columnas en la matriz intercaladora para constelaciones 64-QAM. En las Figuras 14 y 15, la cuadrícula representa una palabra de código de LDPC, los cuadrados pequeños representan cada uno un bit de la palabra de código de LDPC, las filas corresponden a los bloques cíclicos y las columnas corresponden a bits del mismo índice de bit en un bloque cíclico. Los cuadrados en negro representan los bits octavo y duodécimo de la primera fila en la matriz intercaladora. Para facilidad de comprensión, el número de bits por bloque cíclico se ha reducido de 360 a 72. Sin embargo, esto no afecta el entendimiento.
El segundo problema es que, en la norma de DVB-T2, el número de posibles configuraciones de intercalador de bits está limitado por el número de columnas en la matriz intercaladora de bits.
Un problema adicional del intercalador de bits de DVB-T2 es que se degrada la regularidad y el paralelismo de la permutación por el proceso de giro de columna. Las Figuras 16 y 17 ilustran respectivamente las mismas situaciones que las Figuras 14 y 15, con la adición del proceso de giro de columna. Cuando la matriz intercaladora tiene ocho columnas para los códigos de LDPC de 16 K, los valores de giro de columna para las columnas del intercalador de bits de DVB-T2 son (0, 0, 0, 1, 7, 20, 20, 21). De manera similar, cuando la matriz intercaladora tiene doce columnas para los códigos de LDPC de 16 K, los valores de giro de columna para las columnas del intercalador de bits de DVB-T2 son (0, 0, 0, 2, 2, 2, 3, 3, 3, 6, 7, 7).
Por consiguiente, se desea un intercalador de bits que reduzca la latencia mientras mejora el paralelismo. Estas propiedades son particularmente importantes en decodificación de BICM iterativa.
E12785728
08-09-2015
(Descubrimientos del inventor)
El inventor ha descubierto, como el fruto de la experimentación prolongada, que un intercalador que satisface las siguientes dos condiciones es extremadamente eficaz. 5 (Condición 1)
Los M bits de cada constelación se mapean cada uno a uno de M diferentes bloques cíclicos de la palabra de código de LDPC. Esto es equivalente a mapear un bit desde M diferentes bloques cíclicos de la palabra de código de LDPC
10 a una palabra de constelación. Esto se ilustra esquemáticamente en la Figura 18A.
(Condición 2)
Todas las palabras de constelación mapeadas a los M bloques cíclicos se mapean únicamente a ese bloque cíclico
15 particular. Esto es equivalente a mapear todos los M×Q bits de los M diferentes bloques cíclicos compuestos cada uno de Q bits a exactamente Q constelaciones. Esto se ilustra esquemáticamente en la Figura 18B.
Las condiciones anteriores implican que exactamente se mapean Q constelaciones a cada conjunto de M bloques cíclicos.
20 (Realización 1)
Lo siguiente describe los detalles de un intercalador de bits (es decir, un intercalador de bits paralelo) que satisface las condiciones 1 y 2 proporcionadas anteriormente. En la siguiente descripción, el procesamiento y las unidades
25 que realizan tal procesamiento se etiquetan con los mismos números de referencia siempre que sea aplicable.
En el presente documento, cada grupo de M bloques cíclicos y cada grupo de Q palabras de constelación se denomina como una sección (o como una sección de intercalador).
30 Las Figuras 19 y 20 son diagramas de bloques que ilustran respectivamente la función de mapeo de un intercalador de bits que satisface las condiciones 1 y 2 y que corresponde a los parámetros anteriormente mencionados (es decir, Q = 8, M= 4, N= 12) y una configuración de muestra para un intercalador de bits de este tipo.
En las Figuras 19 y 20, las palabras de código QC-LDPC se componen de N = 12 bloques cíclicos, cada uno
35 compuesto a su vez de Q = 8 bits. Cada una de las 24 palabras de constelación se compone de M = 4 bits. Cada palabra de constelación indica uno de 2M = 16 puntos de constelación. El intercalador de bits se divide en N/M =3 secciones. Las 24 palabras de constelación se asocia cada una a una de las tres secciones.
Un intercalador de bits 2000 incluye un permutador de bits 2010, que a su vez incluye N/M (= 3) permutadores de
40 sección 2021, 2022 y 2023, operando cada uno independientemente. Sin embargo, en lugar de proporcionar tres permutadores de sección, puede proporcionarse, por ejemplo, un único permutador de sección para realizar los tres procesos de permutación de sección descritos a continuación, cambiando entre ellos con el tiempo.
Los permutadores de sección (2021, 2022 y 2023) realizan cada uno independientemente una permutación de
45 sección en los 32 bits que componen cada uno de los 4 bloques cíclicos, de manera que un bit de cada cuatro bloques cíclicos (es decir, QB1 a QB4, QB5 a QB8 y QB9 a QB12) se mapea a cada grupo de ocho palabras de constelación (es decir, C1 a C8, C9 a C16 y C17 a C24).
Las condiciones 1 y 2, anteriormente descritas, aseguran que el intercalador de bits es divisible en N/M secciones
50 paralelas. Las permutaciones de sección aplicadas a las secciones paralelas pueden aplicar todas las mismas reglas de permutación, pueden aplicar cada una diferentes reglas de permutación o puede implicar que un subconjunto de las secciones aplique idénticas reglas de permutación mientras que otro diferentes.
Por ejemplo, los permutadores de sección pueden mapear los Q bits de un bloque cíclico (que tiene cada uno la
55 misma importancia en decodificación de LDPC) a bits que tienen el mismo índice de bit (es decir, que tienen el mismo nivel de robustez) en las Q palabras de constelación. Para cada bloque cíclico, los Q bits pueden estar en orden secuencial o permutado. El último caso se describe con referencia a las Figuras 21A y 21B, mientras que el primer caso se describe con referencia a las Figuras 22A y 22B.
60 La Figura 21A ilustra estructuralmente el permutador de sección de la Figura 20.
El permutador de sección 2101 incluye los permutadores de bloques intra-cíclicos 2111 a 2114 y un permutador de columna-fila 2131. En lugar de proporcionar cuatro permutadores de bloques intra-cíclicos, por ejemplo, puede proporcionarse un único permutador de bloques intra-cíclico y realizar los cuatro procesos de permutación de
65 bloques intra-cíclica, descrito más adelante, cambiando entre ellos con el tiempo.
E12785728
08-09-2015
Los permutadores de bloques intra-cíclicos (2111-2114) cada uno realiza una permutación de bloques intra-cíclica en los bloques cíclicos (QB1-QB4) de Q-bit (8 bits). Las permutaciones de bloques intra-cíclicas aplicadas a los bloques cíclicos en cada sección pueden aplicar todas las mismas reglas de permutación, pueden aplicar cada una diferentes reglas de permutación o puede implicar que un subconjunto de las secciones aplique idénticas reglas de
5 permutación mientras que otro diferentes.
El permutador de columna-fila 2131 realiza una permutación de columna-fila en cada grupo de M×Q (= 32) bits. Específicamente, el permutador de columna-fila 2131 escribe los M×Q bits a nivel de filas en una matriz de M×Q (8×4), a continuación lee los M×Q bits a nivel de columna desde los mismos, aplicando por lo tanto la permutación
10 de columna-fila. La permutación de columna-fila aplicada mediante el permutador de columna-fila 2131 se asemeja a la permutación aplicada a la matriz 12×1350 mostrada en las Figuras 9A y 9B, donde se usan Q columnas y M filas, el proceso de escritura tiene lugar a nivel de columnas y el proceso de lectura tiene lugar a nivel de filas.
La Figura 21B es una representación estructural del permutador de sección mostrado en la Figura 21A. Como se 15 muestra, las palabras de constelación de M = 4 bits se indican cada una b1 a b4.
Sin embargo, es también plausible una variación en que el proceso de permutación de bloques intra-cíclico no es parte del proceso de permutación de sección.
20 Por ejemplo, se muestra una permutación de sección implementada sin ejecutar la permutación de bloques intracíclica y una estructura de mapeo mediante el permutador de sección en las Figuras 22A y 22B. El permutador de sección 2201 incluye un permutador de columna-fila 2131 y realiza una permutación de columna-fila sencilla. En la Figura 22B, las palabras de constelación de M = 4 bits se indican cada una b1 a b4.
25 La permutación de sección descrita en las Figuras 21A, 21B, 22A y 22B puede aplicarse a los bloques cíclicos QB5-QB8 y QB9-QB12.
Ventajosamente, puede aplicarse una permutación de bloques cíclica adicional a los N bloques cíclicos antes de que el intercalador de bits realice la permutación de sección. La Figura 23 es un diagrama estructural de la permutación
30 de bloques cíclica adicional aplicada mediante el intercalador de bits 2300. En este contexto, la permutación de bloques cíclica desempeña un papel similar a la de la permutación realizada mediante el demultiplexor de bit a celda en la norma de DVB-T2.
El intercalador de bits 2300 mostrado en la Figura 23 incluye un permutador de bloques cíclico 2310 y un 35 permutador de bits 2010 (que a su vez incluye los permutadores de sección 2021-2023).
El permutador de bloques cíclico 2310 realiza permutaciones de bloques cíclicas 2311-2318 en los bloques cíclicos QB1-QB12. En este punto, las permutaciones de bloques cíclicas 2311-2318 todas siguen las mismas reglas de permutación.
40 La permutación de bloque cíclica realizada en los N bloques cíclicos es particularmente ventajosa al posibilitar mapeado optimizado de los bits de la palabra de código de LDPC en los bits de constelación, dando como resultado rendimiento optimizado.
45 La Figura 24 es un diagrama de bloques esquemático del intercalador de bits 2300 mostrado en la Figura 23. El intercalador de bits 2400 mostrado en la Figura 24 incluye tres etapas, A, B y C.
Etapa A: (inter) permutación de bloques cíclica Etapa B: permutación de bloques intra-cíclica 50 Etapa C: permutación de columna-fila
La permutación de bloques (inter) cíclica se aplica a los N bloques cíclicos que componen la palabra de código, la permutación de bloques intra-cíclica se aplica a los Q bits de cada bloque cíclico y la permutación de columna-fila se aplica a las M×Q secciones.
55 El intercalador de bits 2400 mostrado en la Figura 24 incluye el permutador de bloques cíclico 2310 y el permutador de bits 2010 (que a su vez incluye los permutadores de sección 2101-2103). El permutador de sección 2101 (2102, 2013) incluye los permutadores de bloques intra-cíclicos 2111-2114 (2115-2118, 2119-2122) y el permutador de columna-fila 2131 (2132, 2133).
60 En el intercalador de bits 2400, la permutación de bloques (inter) cíclica se realiza mediante el permutador de bloques cíclico 2310 (etapa A), la permutación de bloques intra-cíclica se realiza mediante los permutadores de bloques intra-cíclicos 2111-2122 (etapa B) y la permutación de columna-fila se realiza mediante los permutadores de columna-fila 2131-2133 (etapa C).
65
15
25
35
45
55
65
E12785728
08-09-2015
Los permutadores de bloques intra-cíclicos 2111-2122 pueden eliminarse del intercalador de bits 2400 mostrado en la Figura 24, de manera que el intercalador de bits se configura para no realizar la permutación de bloques intracíclica. También, el intercalador de bits 2400 puede realizar la permutación de bloques (inter) cíclica antes de la permutación de bloques intra-cíclica en lugar de después de la permutación de bloques intra-cíclica, o puede realizar la permutación de bloques (inter) cíclica antes y después de la permutación de bloques intra-cíclica.
Los permutadores de bloques intra-cíclicos pueden tener estructuras similares. Esto es ventajoso en que los permutadores de bloques intra-cíclicos pueden implementarse por lo tanto usando recursos idénticos (por ejemplo, bloques de hardware). Como alternativa, las permutaciones de bloques intra-cíclicas pueden consistir en desplazamientos cíclicos, que permiten implementación de hardware eficaz usando desplazadores cilíndricos. Es también posible una implementación usando los desplazadores cilíndricos en el decodificador de LDPC.
Lo siguiente describe un transmisor que incluye el intercalador de bits que realiza un proceso de intercalación de bits que satisface las condiciones 1 y 2, con referencia a la Figura 25.
La Figura 25 es un diagrama de bloques de un transmisor que pertenece a una realización adicional de la presente divulgación. Como se muestra en la Figura 25, un transmisor 2500 incluye un codificador de BICM (que a su vez incluye un codificador de LDPC 2510, un intercalador de bits 2520 y un mapeador de constelación 2530) y un modulador 2540.
El codificador de LDPC 2510 codifica bloques de entrada en palabras de código usando códigos QC-LDPC, y a continuación transmite las palabras de código al intercalador de bits 2520.
El intercalador de bits 2520 recibe la palabra de código del código QC-LDPC desde el codificador de LDPC 2510. La palabra de código se compone de N = 12 bloques cíclicos, incluyendo cada bloque cíclico Q = 8 bits. El intercalador de bits 2520 realiza intercalación en los bits de las palabras de código para permutar los bits de cada una de las palabras de código. El intercalador de bits 2520 divide la palabra de código intercalada en una pluralidad de palabras de constelación, cada una compuesta de M = 4 bits y que indica uno de 2M = 16 puntos de constelación, a continuación emite las palabras de constelación al mapeador de constelación 2530. El intercalador de bits 2520 puede aplicar el proceso de intercalación de bits analizado con referencia a las Figuras 19 a 22A y 22B, o puede aplicar un proceso de permutación de bits variante. También, el intercalador de bits 2520 puede aplicar un proceso de permutación de bloques cíclico adicional, tal como el proceso analizado con referencia a las Figuras 23 y 24 o una variación del mismo.
El mapeador de constelación 2530 recibe las palabras de constelación desde el intercalador de bits 2520 y realiza mapeo de constelación en las palabras de constelación así recibidas.
El modulador 2740 genera una señal de transmisión usando multiplexación por división ortogonal de frecuencia (en lo sucesivo, OFDM) o similar.
Lo siguiente describe un codificador de BICM que incluye el intercalador de bits que realiza un proceso de intercalación de bits que satisface las condiciones 1 y 2, con referencia a la Figura 26.
La Figura 26 es un diagrama de bloques de un codificador de BICM de ejemplo que pertenece a una realización adicional de la divulgación. En la Figura 26, el codificador de BICM 2600 corresponde a los parámetros anteriormente proporcionados (es decir, Q= 8, N = 12, M = 4).
El codificador de BICM 2600 mostrado en la Figura 26 incluye una memoria principal 2601, un controlador de LDPC 2611, un rotador 2612, un grupo de procesadores de nodo de comprobación 2613, un des-rotador 2614, un contador de QB 2631, la tabla A 2632, el intercalador B 2633, un grupo de registros 2634, el intercalador C 2635 y un grupo de mapeadores 2651.
En la Figura 26, dado que Q = 8, la memoria principal 2601 lee ocho bits a la vez, el grupo de procesadores de nodo de comprobación 2613 incluye ocho procesadores de nodo de comprobación, y el grupo de mapeadores 2651 incluye ocho mapeadores. También, dado que M = 4, el grupo de registros 2634 incluye cuatro registros.
La memoria principal 2601 recibe una secuencia de bits para transmisión desde, por ejemplo, el procesador de entrada (no representado) y almacena la secuencia de bits recibida.
El controlador de LDPC 2611 emite una dirección de lectura a la memoria principal 2601. La memoria principal 2601 emite en consecuencia la secuencia de bits, ocho bits a la vez empezando con el bit inicial, al rotador 2612. El rotador 2612 se controla mediante el controlador de LDPC 2611 para realizar un número predeterminado de desplazamientos cíclicos en los ocho bits suministrados al mismo mediante la memoria principal 2601, y a continuación emite los ocho bits desplazados cíclicamente a los procesadores de nodo de comprobación del grupo de procesadores de nodo de comprobación 2613, un bit a la vez, estando los bits y los procesadores de nodo de comprobación en correspondencia uno o a uno. Cada procesador de nodo de comprobación del grupo de
15
25
35
45
55
65
E12785728
08-09-2015
procesadores de nodo de comprobación 2613 se controla mediante el controlador de LDPC 2611 para realizar procesamiento de nodo de comprobación en cada bit introducido al mismo, a continuación emite los resultados al des-rotador 2614. El des-rotador 2614 se controla mediante el controlador de LDPC 2611 para realizar un número predeterminado de desplazamientos cíclicos en los ocho bits recibidos desde el grupo de procesadores de nodo de comprobación 2613 para cancelar el desplazamiento cíclico aplicado mediante el rotador 2612, y a continuación emite los ocho bits desplazados a la memoria principal 2601. El controlador de LDPC 2611 emite una dirección de escritura a la memoria principal 2601. La memoria principal 2601 almacena en consecuencia los ocho bits suministrados a la misma mediante el des-rotador 2614. El controlador de LDPC 2611, el rotador 2612, el grupo de procesadores de nodo de comprobación 2613 y el des-rotador 2614 componen el codificador de BICM en el codificador de LDPC 2510 mostrado en la Figura 25.
El contador de QB 2631 cuenta desde 0 a 11 y emite el valor de contador a la tabla A 2632. La operación de recuento del contador de QB 2631 se define en consideración de N = 12.
La Tabla A 2632 es una tabla de búsqueda sencilla en que se almacenan las reglas de permutación de bloques cíclicos. Es decir, la Tabla A 2632 almacena N = 12 piezas de información de orden de lectura de bloques cíclicos (información que asocia un bloque cíclico diferente con cada uno de los 12 valores de contador del contador de QB 2631). La Tabla A 2632 emite una dirección de lectura a la memoria principal 2601 de manera que los bits de un bloque cíclico (es decir, Q = 8 bits) que corresponden al valor de contador suministrado mediante el contador de QB 2631 se suministran desde la memoria principal 2601 al intercalador B 2633. Por lo tanto, la memoria principal 2601 emite los bits de un bloque cíclico que corresponde al valor de contador del contador de QB 2631 al intercalador B 2633. El procesamiento que usa la tabla A 2632 se ejecuta como el proceso de permutación de bloques cíclico (etapa A).
El intercalador B 2633 realiza un número predeterminado de desplazamientos cíclicos en los bits del bloque cíclico suministrado mediante la memoria principal 2601, y emite los resultados a un primer nivel de registro del grupo de registros 2634. El procesamiento mediante el intercalador B 2633 se ejecuta como el proceso de permutación de bloque intra-cíclico (etapa B). Cada registro en el grupo de registros 2634 almacena un bloque cíclico de bits con temporización que coincide con la recepción de un pulso de control, y emite los bloques cíclicos de bits antes de recibir el siguiente pulso de control.
Cuando el contador de QB 2631 realiza el proceso anteriormente mencionado para los valores de contador de 0 a 3, los bits de cuatro bloques cíclicos (es decir, 32 bits) se introducen al intercalador C 2635. En este momento, el intercalador C 2635 intercala los bits de los cuatro bloques cíclicos introducidos al mismo, y los mapeadores del grupo de mapeadores 2651 emiten una palabra de constelación de bits (es decir, M = 4 bits). A través del proceso de intercalación, cuatro bits, es decir, uno de cada uno de los cuatro registros en el grupo de registros 2634, se suministra a cada mapeador. Este procesamiento mediante el intercalador C 2635 se ejecuta como el proceso de permutación de columna-fila (etapa C).
El contador de QB 2631, la tabla A 2632, el intercalador B 2633, el grupo de registros 2634 y el intercalador C 2635 componen el intercalador de bits 2520 del codificador de BICM mostrado en la Figura 25.
Los mapeadores del grupo de mapeadores 2651 mapean cada uno cuatro bits suministrados a los mismos desde el intercalador C 2635 a una constelación, a continuación emiten los resultados. El grupo de mapeadores 2651 compone el mapeador de constelación 2530 del codificador de BICM mostrado en la Figura 25.
Para cada palabra de código, el conjunto anteriormente descrito de procesos se aplica tres veces, una vez para cada valores de contador 0-3, 4-7 y 8-11 del contador de QB 2631.
La realización representada en la Figura 26 incluye Q mapeadores que operan en paralelo. Sin embargo, los mapeadores pueden realizarse también como un codificador de BICM para reducir o aumentar el paralelismo. Por ejemplo, el número de secciones de intercalador paralelas en el intercalador de bits, es decir, el cociente de N/M, evidentemente puede aumentarse para mejorar fácilmente el paralelismo. Tales métodos posibilitan que se optimice el paralelismo paralelizando los Q×N/M mapeadores. Implementar tal paralelismo, sin desventajas, en el intercalador de bits es beneficioso.
Lo siguiente describe un receptor que recibe señales desde un transmisor que incluye el intercalador de bits que realiza un proceso de intercalación de bits que satisface las condiciones 1 y 2, con referencia a la Figura 27.
La Figura 27 es un diagrama de bloques de un receptor de ejemplo, que incluye un decodificador de BICM no iterativo, que pertenece a una realización adicional de la divulgación. El receptor realiza las operaciones inversas del transmisor.
El receptor 2700 mostrado en la Figura 27 incluye un demodulador 2710 y un decodificador de BICM no iterativo (que a su vez incluye un desmapeador de constelación 2720, un desintercalador de bits 2730 y un decodificador de LDPC 2740).
15
25
35
45
55
65
E12785728
08-09-2015
El demodulador 2710 realiza un proceso de demodulación a través de OFDM, por ejemplo, y emite los resultados demodulados.
El desmapeador de constelación 2720 del decodificador de BICM no iterativo genera una secuencia de bits flexible aplicando un proceso de desmapeo a la entrada desde el demodulador 2710, y emite la secuencia de bits flexible así generada al desmapeador de constelación 2730. Los bits flexibles son una medida de probabilidad de que un bit dado sea un bit cero o un bit uno. Normalmente, los bits flexibles se representan como relaciones de probabilidad logarítmica (en lo sucesivo, LLR), definidos como sigue.
LLR(b) = ln [p(b = 0)/p(b = 1)]
donde p(b = 0) indica la probabilidad de que el bit b sea un bit cero, y p(b = 1) representa la probabilidad de que el bit dado b sea un bit uno. Por supuesto, p(b = 0)+ p(b = 1)=1.
El desintercalador de bits 2730 realiza un proceso de intercalación en una secuencia de bits flexible emitida mediante el desmapeador de constelación (es decir, un proceso de des-intercalación de bits) para cancelar el proceso de intercalación de bits aplicado a la secuencia de bits mediante el intercalador de bits en el transmisor ilustrado en la Figura 25.
El decodificador de LDPC 2740 recibe la secuencia de bits flexible desintercalada mediante el desintercalador de bits 2730, y realiza un proceso de decodificación de LDPC usando la secuencia de bits flexible así recibida.
Una técnica mejorada que ofrece ganancias de rendimiento significativas es la decodificación de BICM iterativa. La Figura 28 ilustra un decodificador de BICM iterativo.
La Figura 28 es un diagrama de bloques de un receptor de ejemplo, que incluye un decodificador de BICM iterativo, que pertenece a una realización adicional de la divulgación. El receptor realiza las operaciones del transmisor a la inversa.
Como se muestra en la Figura 28, un receptor 2800 incluye el demodulador 2710 y un decodificador de BICM iterativo (que a su vez incluye el desmapeador de constelación 2720, el desintercalador de bits 2730, el decodificador de LDPC 2740, un restador 2760 y un intercalador de bits 2750).
El receptor 2800 de la Figura 28 tiene el desmapeador de constelación 2720 que realiza un proceso de desmapeo de constelación, el desintercalador de bits 2730 que realiza un proceso de desintercalación de bits y el decodificador de LDPC 2740 que realiza un proceso de decodificación de LDPC.
Después de una o más iteraciones de decodificación de LDPC, la información extrínseca, obtenida mediante el restador 2760 que resta la entrada al decodificador de LDPC 2740 desde la salida del decodificador de LDPC 2740, se emite al intercalador de bits 2750. El intercalador de bits 2750 realiza un proceso de intercalación en la información extrínseca usando las mismas reglas de intercalación a aquellas aplicadas a la secuencia de bits mediante el intercalador de bits del transmisor representado en la Figura 25. El intercalador de bits 2750 a continuación realimenta la información extrínseca intercalada al desmapeador de constelación 2720. El desmapeador de constelación 2720 usa la información extrínseca así realimentada como información a priori para calcular valores de LLR más fiables. El desintercalador de bits 2730 a continuación realiza un proceso de intercalación en los valores de LLR nuevamente calculados (es decir, un proceso de des-intercalación de bits) para cancelar el proceso de intercalación de bits aplicado a la secuencia de bits mediante el intercalador de bits en el transmisor representado en la Figura 25 y restaura el orden original de la secuencia de bits. El decodificador de LDPC 2740 usa los valores de LLR así des-intercalados en el proceso de decodificación de LDPC.
Como se muestra en la Figura 28, un bucle de decodificación iterativo se compone de cuatro elementos, en concreto el desmapeador de constelación 2720, el desintercalador de bits 2730, el decodificador de LDPC 2740 y el intercalador de bits 2750. El desintercalador de bits 2730 y el intercalador de bits 2750 tienen beneficiosamente muy poca latencia, idealmente cero y baja complejidad. Esto da como resultado una implementación de receptor más eficaz. El desintercalador de bits 2730 y el intercalador de bits 2750 anteriormente descritos satisfacen ambas de estas condiciones.
La Figura 29 ilustra un decodificador de BICM iterativo que realiza implementación en paralelo muy eficaz.
La Figura 29 es un diagrama de bloques de un decodificador de BICM de ejemplo que pertenece a una realización adicional de la divulgación. En la Figura 29, el decodificador de BICM 2900 corresponde a los parámetros anteriormente proporcionados (es decir, Q = 8, N = 12, M = 4).
Como se muestra, el decodificador de BICM 2900 incluye una memoria de LLR principal 2901, una memoria de LLR de memoria intermedia 2902, un controlador de LDPC 2911, un rotador 2912, un grupo de procesadores de nodo de comprobación 2913, un des-rotador 2914, un contador de QB 2931, la tabla A 2932, un grupo de restadores 2933, el
10
15
20
25
30
35
40
45
50
55
60
65
E12785728
08-09-2015
intercalador B 2934, el grupo de registros 2935, el intercalador C 2936, un grupo de desmapeadores 2937, el desintercalador C 2938, el grupo de registros 2939, el desintercalador B 2940 y un retardador 2941.
En la Figura 29, dado que Q = 8, la memoria de LLR principal 2901 y la memoria de LLR de memoria intermedia 2902 cada una leen ocho valores de LLR a la vez, el grupo de procesadores de nodo de comprobación 2913 incluye ocho procesadores de nodo de comprobación y el grupo de desmapeadores 2951 incluye ocho desmapeadores. También, considerando que M = 4, los grupos de registros 2935 y 2972 incluyen cada uno cuatro registros.
Los desmapeadores en el grupo de desmapeadores 2937 cada uno realizan un proceso de desmapeo en la salida de un demodulador (no representado), a continuación emiten los valores de LLR así obtenidos al desintercalador C 2938. El grupo de desmapeadores 2937 compone el desmapeador de constelación 2720 del decodificador de BICM iterativo mostrado en la Figura 28.
El desintercalador C 2938 aplica un proceso de desintercalación a los valores de LLR (es decir, un nuevo proceso de intercalación que cancela el proceso de intercalación aplicado mediante el transmisor durante la etapa C), a continuación emite los valores de LLR desintercalados a los registros del grupo de registros 2939. Cada registro almacena un bloque cíclico de valores de LLR (es decir, ocho valores de LLR). En el grupo de registros 2939, el bloque cíclico de los valores de LLR almacenados mediante cada registro se emite secuencialmente a un último nivel de manera que el contenido de cada registro se actualiza secuencialmente. El desintercalador B 2940 aplica un proceso de desintercalación al bloque cíclico de (ocho) valores de LLR (es decir, un nuevo proceso de intercalación que cancela el proceso de intercalación aplicado mediante el transmisor durante la etapa B), a continuación escribe los resultados a la memoria de LLR principal 2901 y a la memoria de LLR de memoria intermedia 2902 de acuerdo con la tabla A 2932 (analizada más adelante). Se consigue un proceso de intercalación que cancela el proceso de intercalación aplicado mediante el transmisor durante la etapa A mediante esta escritura a la memoria de LLR principal 2901 y a la memoria de LLR de memoria intermedia 2902 de acuerdo con el contenido de la Tabla A 2932.
Por lo tanto, la memoria de LLR principal 2901 almacena los valores de LLR posteriores a la desintercalación, y se usa también mediante el decodificador de LDPC (es decir, el controlador de LDPC 2911, el rotador 2912, el grupo de procesadores de nodo de comprobación 2913 y el des-rotador 2914). El proceso de decodificación de LDPC es un proceso iterativo que implica una o más iteraciones. En cada iteración de decodificación de LDPC, se actualizan los valores de LLR en la memoria de LLR principal 2901. Para calcular la información extrínseca necesaria para la decodificación de BICM iterativa, los valores de LLR antiguos se graban en la memoria de LLR de memoria intermedia 2902.
Lo siguiente describe las operaciones del decodificador de LDPC.
El controlador de LDPC 2911 emite la dirección leída a la memoria de LLR principal 2901 de acuerdo con la matriz de comprobación de paridad de los códigos de LDPC. Por lo tanto, la memoria de LLR principal 2901 emite secuencialmente un bloque cíclico de valores de LLR al rotador 2912. El rotador 2912 se controla mediante el controlador de LDPC 2911 para realizar un número predeterminado de desplazamientos cíclicos en el bloque cíclico de valores de LLR suministrados secuencialmente mediante la memoria de LLR principal 2901, a continuación emite los valores de LLR así desplazados a los procesadores de nodo de comprobación del grupo de procesadores de nodo de comprobación 2913 uno a la vez. Los procesadores de nodo de comprobación del grupo de procesadores de nodo de comprobación 2913 se controlan mediante el controlador de LDPC 2911 para realizar un proceso de nodo de comprobación en la secuencia de valores de LLR introducidos secuencialmente a los mismos. A continuación, los procesadores de nodo de comprobación del grupo de procesadores de nodo de comprobación 2913 se controlan mediante el controlador de LDPC 2911 para emitir secuencialmente los valores de LLR resultantes del proceso de nodo de comprobación. El des-rotador 2914 se controla mediante el controlador de LDPC 2911 para realizar un número predeterminado de desplazamientos cíclicos que cancelan el desplazamiento cíclico aplicado al bloque cíclico secuencialmente recibido desde el grupo de procesadores de nodo de comprobación 2913 mediante el rotador 2912, a continuación emite secuencialmente los resultados desplazados a la memoria de LLR principal 2901. El controlador de LDPC 2911 emite la dirección de escritura a la memoria de LLR principal 2901 de acuerdo con la matriz de comprobación de paridad de los códigos de LDPC. Por lo tanto, la memoria de LLR principal 2901 almacena el bloque cíclico de resultados suministrados secuencialmente a la misma mediante el desrotador 2914. El controlador de LDPC 2911 ejecuta repetitivamente el procesamiento anteriormente descrito de acuerdo con la matriz de comprobación de paridad de los códigos de LDPC.
Después de un número predeterminado de iteraciones de LDPC, se realiza una iteración de BICM. Las iteraciones de LDPC y de BICM se denominan también respectivamente como iteraciones internas y externas. Estos dos tipos de iteraciones pueden solapar también en algunas implementaciones. Esto posibilita que se aumente la velocidad de convergencia. Los procesos de decodificación de BICM y de LDPC son bien conocidos en el campo, y por lo tanto se omiten los detalles de los mismos.
El contador de QB 2931 cuenta desde 0 a 11 y emite el valor de contador a la tabla A 2932. La operación de recuento del contador de QB 2931 se define en consideración de N = 12.
15
25
35
45
55
65
E12785728
08-09-2015
La Tabla A 2932 es una tabla de búsqueda sencilla en la que se almacenan las reglas de permutación de bloques cíclicos. Es decir, la Tabla A 2932 almacena N = 12 piezas de información de orden de lectura (y escritura) de bloques cíclicos (es decir, con información que asocia un bloque cíclico diferente con cada uno de los 12 valores de contador desde el contador de QB 2631). La Tabla A 2932 emite la dirección de lectura a la memoria de LLR principal 2901 y a la memoria de LLR de memoria intermedia 2902 de manera que se suministra un bloque cíclico de valores de LLR que corresponde al valor de contador suministrado mediante el contador de QB 2931 al grupo de restadores 2933 mediante la memoria de LLR principal 2901 y a la memoria de LLR de memoria intermedia 2902. Por lo tanto, la memoria de LLR principal 2901 y la memoria de LLR de memoria intermedia 2902 emiten cada una un bloque cíclico de valores de LLR que corresponden al valor de contador del contador de QB 2931 al restador 2933. El retardador 2941 realiza un ajuste de retardo de manera que la posición del valor de LLR leído desde la memoria de LLR principal 2901 y desde la memoria de LLR de memoria intermedia 2902 coincide con la posición de escritura de los mismos valores de LLR a la memoria de LLR principal 2901 y a la memoria de LLR de memoria intermedia 2902. El procesamiento que usa la tabla A 2932 se ejecuta como el proceso de permutación de bloques cíclicos (etapa A).
El restador 2933 en el grupo de restadores resta la salida de la memoria de LLR de memoria intermedia 2902 desde la salida de la memoria de LLR principal 2901, a continuación emite la información extrínseca para un bloque cíclico obtenido de esta manera (es decir, ocho piezas de información extrínseca) al intercalador B 2934.
El intercalador B 2634 realiza un número predeterminado de desplazamientos cíclicos en las piezas de información extrínseca para uno de los bloques cíclicos suministrados mediante el restador 2933, y emite los resultados a un primer registro de nivel del grupo de registros 2935. El procesamiento realizado mediante el intercalador B 2934 corresponde a la permutación de bloques intra-cíclica (etapa B). Cada registro en el grupo de registros 2935 almacena ocho bits con temporización que coincide con la recepción de un pulso de control, y emite los ocho bits antes de recibir el siguiente pulso de control.
Cuando el contador de QB 2631 realiza el proceso anteriormente mencionado para los valores de contador de 0 a 3, la información extrínseca para cuatro bloques cíclicos (es decir, 32 piezas de información extrínseca) se introduce al intercalador C 2936. En este momento, el intercalador C 2936 realiza un proceso de intercalación en la información extrínseca introducida al mismo para cuatro bloques cíclicos, a continuación emite una palabra de constelación de información extrínseca (es decir, M = 4 piezas de información extrínseca) a cada desmapeador del grupo de desmapeadores 2937. A través del proceso de intercalación, las cuatro piezas de información extrínseca se suministran a los desmapeadores del grupo de desmapeadores 2951 desde los cuatro registros en el grupo de registros 2935, uno a la vez. Este procesamiento mediante el intercalador C 2936 se ejecuta como el proceso de permutación de columna-fila (etapa C).
El contador de QB 2931, la tabla A 2932, el intercalador B 2934, el grupo de registros 2935 y el intercalador C 2936 componen el intercalador de bits 2750 del decodificador de BICM mostrado en la Figura 28.
Los desmapeadores del grupo de desmapeadores 2937 usan las cuatro piezas de información extrínseca suministrada mediante el intercalador C 2936 como información a priori para realizar un proceso de desmapeo, a continuación emiten los valores de LLR resultantes al desintercalador C 2938.
El desintercalador C 2938 aplica un proceso de desintercalación a los valores de LLR (es decir, un nuevo proceso de intercalación que cancela el proceso de intercalación aplicado mediante el transmisor durante la etapa C), a continuación emite los valores de LLR desintercalados a los registros del grupo de registros 2939. Cada registro almacena un bloque cíclico de valores de LLR (es decir, ocho valores de LLR). En el grupo de registros 2939, el bloque cíclico de valores de LLR almacenado mediante cada registro se emite secuencialmente a un último nivel de manera que el contenido de cada registro se actualiza secuencialmente. El desintercalador B 2940 aplica un proceso de desintercalación al bloque cíclico de (ocho) valores de LLR (es decir, un nuevo proceso de intercalación que cancela el proceso de intercalación aplicado mediante el transmisor durante la etapa B), a continuación escribe los resultados a la memoria de LLR principal 2901 y a la memoria de LLR de memoria intermedia 2902. La memoria de LLR principal 2901 y la memoria de LLR de memoria intermedia 2902 reciben la dirección de escritura desde la tabla A 2932 mediante el retardador 2941, a continuación almacenan un bloque cíclico de valores de LLR (es decir, ocho valores de LLR) recibido desde el desintercalador 2940 de acuerdo con la dirección de escritura recibida. Se consigue un proceso de intercalación que cancela el proceso de intercalación aplicado mediante el transmisor durante la etapa A mediante esta escritura de acuerdo con el contenido de la tabla A 2932.
Para cada palabra de código, se aplica el conjunto de procesos anteriormente descrito tres veces, una vez para cada valores de contador 0-3, 4-7 y 8-11 del contador de QB 2931.
El contador de QB 2931, la tabla A 2932, el desintercalador B 26938, el grupo de registros 2939 y el intercalador C 2940 componen el intercalador de bits 2730 del decodificador de BICM mostrado en la Figura 28.
El intercalador B 2934 y el desintercalador B 2940 son reconfigurables. Esto requiere un cierto coste de hardware, pero este coste se minimiza mediante el diseño con atención. El intercalador C 2936 y el desintercalador 2938
10
15
20
25
30
35
40
45
50
55
60
65
E12785728
08-09-2015
implementan la permutación de columna-fila. Esta permutación es uniforme para un tamaño de constelación predeterminado. Por lo tanto, se reduce el coste de la implementación.
La realización representada en la Figura 29 incluye Q desmapeadores que operan en paralelo. Sin embargo, los desmapeadores pueden realizarse también como un decodificador de BICM iterativo reduciendo o aumentando el paralelismo. Por ejemplo, el número de secciones de intercalador paralelas en el intercalador de bits, es decir, el cociente de N/M, evidentemente puede aumentarse para mejorar fácilmente el paralelismo. Tales métodos posibilitan que se optimice el paralelismo paralelizando los Q×N/M desmapeadores. El intercalador de bits anteriormente descrito tiene el mérito de poderse implementar con tal paralelismo sin problemas.
(Descubrimientos adicionales del experimentador)
Los intercaladores que satisfacen las condiciones 1 y 2 anteriormente proporcionadas (es decir, intercaladores paralelos) suponen que el número de bits por palabra de constelación M es un divisor del número de bloques cíclicos N. Sin embargo, M no es normalmente un divisor de N. Por ejemplo, los códigos de LDPC de 16 K usados en la norma de DVB-T2 tienen N= 45 bloques cíclicos por palabra de código de LDPC de 16 K. Cuando M no es un divisor de N, el mapeo de constelaciones cuadradas, tal como constelaciones de QAM donde M es par, no es directo.
Por lo tanto, se propone una solución particular que implica excluir uno o más de los N bloques cíclicos e implementar el intercalador analizado en la realización 1 anterior (es decir el intercalador paralelo), únicamente a los restantes bloques cíclicos.
En otras palabras, se seleccionan N’ bloques cíclicos de entre los N bloques cíclicos de manera que N’ es un múltiplo del número de bits por palabras de constelación M en el intercalador de bits. El intercalador de bits divide los N’ bloques cíclicos seleccionados en N’/M secciones de manera que cada sección incluye M bloques cíclicos, a continuación realiza una permutación de sección en cada sección. Los bits del bloque cíclico excluido (es decir, no seleccionado) pueden o pueden no intercalarse.
Específicamente, se pretende un método de intercalación de bits que pertenece a la divulgación para un sistema de comunicación que usa códigos de comprobación de paridad de baja densidad cuasi cíclicos, y comprende: una etapa de recepción para recibir una palabra de código de los códigos de comprobación de paridad de baja densidad cuasi cíclicos compuesta de N bloques cíclicos incluyendo cada uno Q bits; una etapa de permutación de bits para aplicar un proceso de permutación de bits a la palabra de código para permutar los bits en la palabra de código; una etapa de división para dividir la palabra de código, después del proceso de permutación de bits, en una pluralidad de palabras de constelación, estando compuesta cada una de las palabras de constelación de M bits e indicando uno de 2M puntos de constelación predeterminados; y una etapa de selección para seleccionar un subconjunto de N’ bloques cíclicos de entre los N bloques cíclicos de manera que N’ es un múltiplo de M, en el que antes del proceso de permutación de bits, la palabra de código se divide en N’lM secciones, incluyendo cada una de las secciones M de los bloques cíclicos, y estando asociada cada una de las palabras de constelación con una de las N’/M secciones, y en la etapa de permutación de bits, el proceso de permutación de bits se aplica de manera que los M bits en cada una de las palabras de constelación incluye un bit de cada uno de los M diferentes bloques cíclicos en una sección dada con una palabra de constelación dada, y de manera que todos los bits en la sección dada se mapean a únicamente Q de las palabras de constelación asociadas con la sección dada.
De manera similar, se pretende un intercalador de bits que pertenece a la divulgación para usar en un sistema de comunicación que usa códigos de comprobación de paridad de baja densidad cuasi cíclicos, y comprende: una unidad de permutación de bits que recibe una palabra de código de los códigos de comprobación de paridad de baja densidad cuasi cíclicos compuesta de N bloques cíclicos incluyendo cada uno Q bits, aplicar un proceso de permutación de bits a la palabra de código para permutar los bits en la palabra de código, y dividir la palabra de código, para emitir después del proceso de permutación de bits, en una pluralidad de palabras de constelación, estando compuesta cada una de las palabras de constelación de M bits e indicando uno de 2M puntos de constelación predeterminados; y una unidad de selección que selecciona un subconjunto de N’ bloques cíclicos de entre los N bloques cíclicos de manera que N’ es un múltiplo de M, en el que antes del proceso de permutación de bits, la palabra de código se divide en N’/M secciones, incluyendo cada una de las secciones M de los bloques cíclicos, y estando asociada cada una de las palabras de constelación con una de las N’lM secciones, y la unidad de permutación de bits aplica el proceso de permutación de bits de manera que los M bits en cada una de las palabras de constelación incluye un bit de cada uno de los M diferentes bloques cíclicos en una sección dada asociada con una palabra de constelación dada, y de manera que todos los bits en la sección dada se mapean a únicamente Q de las palabras de constelación asociadas con la sección dada.
También, los bits en la palabra de código pueden incluir un grupo de bits que es uno de: no incluido en el subconjunto seleccionado de N’ bloques cíclicos y dejar como está sin redisposición; y no incluido en el subconjunto seleccionado de N’ bloques cíclicos, y someter a un proceso de redisposición que es independiente del proceso de permutación de bits y que se aplica únicamente a algunos bloques cíclicos no seleccionados.
10
15
20
25
30
35
40
45
50
55
E12785728
08-09-2015
De acuerdo con esta configuración, se aplica intercalación de bits a un número maximizado de bloques cíclicos.
Por ejemplo, los bloques cíclicos excluidos pueden ser los bloques cíclicos que tienen un nodo variable del peso más bajo. Para el ejemplo de los códigos RA QC LDPC (véase La Figura 5), los bloques cíclicos excluidos son el bloque cíclico de la sección de paridad (que tiene un peso de nodo variable de dos) y son beneficiosos el último o más bloques cíclicos de la palabra de código.
Además, la etapa de selección puede usarse también para seleccionar los bloques cíclicos de acuerdo con la importancia de los bits incluidos en los mismos.
La importancia de los bits incluidos en los bloques cíclicos se determina de acuerdo con el número de bits de paridad asociados entre ellos.
Cuando la palabra de código es para códigos de comprobación de paridad de baja densidad cuasi cíclicos de repetir-acumular, los bloques cíclicos no seleccionados corresponden a la sección de paridad de la palabra de código.
De acuerdo con esta configuración, la mayoría de los bits que corresponden a la palabra de código están implicados en la intercalación óptima. Reducir el número de bits implicados en la intercalación da como resultado eficacia global enormemente mejorada.
Además, el subconjunto de N’ bloques cíclicos seleccionados puede formarse de N’ bloques cíclicos continuos que empiezan con el primer bit de la palabra de código.
De acuerdo con esta configuración, la implementación de hardware se simplifica adicionalmente. Particularmente, para el ejemplo de la matriz de comprobación de paridad en códigos de comprobación de paridad de baja densidad cuasi cíclicos de repetir-acumular, el último bit de la palabra de código es el bit que tiene la menor capacidad de asociación.
La Figura 30 ilustra un bloque cíclico sometido a y un bloque cíclico excluido de (es decir, un bloque excluido de) el proceso de intercalación anteriormente descrito (es decir, la realización 1). En la Figura 30, el código es código de LDPC de 16 K que se ajusta a la norma de DVB-T2 y la constelación es una constelación 16-QAM. Como se muestra, 44 de los bloques cíclicos se someten a intercalación (es decir, los bloques 1 a 44), y el bloque cíclico 45, en la última fila, es el bloque cíclico no sometido a intercalación (es decir, el bloque excluido). Los cuatro cuadrados en negro representan los cuatro bits de la primera constelación.
En general, el número de secciones de intercalador (compuesta cada una de M bloques cíclicos) se proporciona mediante floor(N/M), y el número de bloques cíclicos excluidos se proporciona mediante rem(N, M). En este punto, floor(N/M) es una función que devuelve el mayor entero menor o igual que N/M, y rem(N, M) es una función que devuelve el resto de dividir N por M.
La Tabla 2 indica el número de secciones y el número de bloques cíclicos excluidos para diversos tamaños de constelación (es decir, número de bits por constelación M), para los códigos de LDPC de 16 K de la norma de DVB-T2 (donde se usan N = 45 bloques cíclicos).
[Tabla 2]
- Tamaño de constelación
- M Nº de secciones Nº de bloques excluidos
- QPSK
- 2 22 1
- 16-QAM
- 4 11 1
- 64-QAM
- 6 7 3
- 256-QAM
- 8 5 5
De acuerdo con el método de intercalación que satisface las condiciones 1 y 2 como se ha descrito anteriormente, cada palabra de constelación se mapea en M bloques cíclicos. Sin embargo, para constelaciones grandes (es decir, constelaciones que tienen muchos puntos de constelación), un método de intercalación que satisface las condiciones 1 y 2 requiere una cantidad extremadamente grande de registros de retardo (véase la implementación descrita con referencia a las Figuras 26 a 29). Usar una cantidad extremadamente grande de registros conduce a un aumento en el área de circuito y consumo de energía eléctrica. Además, reducir el número de bloques cíclicos en cada palabra de constelación que se mapea es beneficioso para aumentar el solapamiento entre las iteraciones externas (BICM) y las iteraciones internas (LDPC), reduciendo a su vez la latencia de decodificación de BICM global.
Mapeando dos o más bits de cada palabra de constelación en el mismo bloque cíclico, se reduce el número de bloques cíclicos en los que se mapea cada palabra de constelación. El número de bits de palabras de constelación mapeados en el mismo bloque cíclico se denomina el factor de repliegue y se indica F. Por ejemplo, cuando F =2
E12785728
08-09-2015
para una constelación 16-QAM, cada palabra de constelación se mapea en cuatro bloques cíclicos en lugar de en dos. La única restricción es que el factor de repliegue F (que es un entero mayor de uno) debe ser un divisor de tanto M como de Q. Cuando F = 1, no se implica repliegue, es decir, la situación corresponde a la realización 1, anteriormente descrita.
5 Un símbolo de constelación de QAM complejo se descompone en dos símbolos de PAM reales idénticos. Por lo tanto, los M bits de la constelación de QAM se dividen en dos símbolos de PAM reales idénticos, que son conjuntos de M/2 bits. Los bits de cada palabra de constelación se mapean a continuación en el mismo número M/2 de bloques cíclicos. Un factor de repliegue de F = 2 es ventajoso para la constelación de QAM.
10 Para constelaciones complejas que no pueden descomponerse en números reales, tales como 8-PSK (modulación por desplazamiento de fase), 16-APSK (modulación por desplazamiento de fase y amplitud), 32-APSK y así sucesivamente en la norma de DVB-S2, el método de repliegue no es aplicable fácilmente. Sin embargo, el método de repliegue es usable cuando F es un divisor de M. Desafortunadamente, esto evita alguna garantía de que cada
15 bloque cíclico tenga únicamente bits del mismo nivel de robustez desde las constelaciones mapeadas al mismo.
Beneficiosamente, el método de repliegue se aplica, por ejemplo, de manera que únicamente se mapean los bits del mismo nivel de robustez en las constelaciones a los bloques cíclicos.
20 El repliegue es también beneficioso al reducir el número de bloques cíclicos excluidos, o incluso eliminando la necesidad de excluir algún bloque cíclico. Como se ha descrito anteriormente, un cierto número de bloques cíclicos que componen la palabra de código deben excluirse cuando se usa el intercalador descrito en la realización 1 (es decir, un intercalador paralelo).
25 Sin repliegue (es decir, cuando F = 1), el número de grupos de M bloques cíclicos (es decir, el número de secciones) es floor(N/M), y el número de bloques cíclicos excluidos es rem(N, M). Con repliegue, el número de grupos de M/F bloques cíclicos es floor(N/(M/F)), y el número de bloques cíclicos excluidos es rem(N, M/F). Se proporciona el ejemplo específico de estos números en la Tabla 3, para los códigos de LDPC usados en la norma de DVB-T2.
30 [Tabla 3]
- Longitud de palabra de código de LDPC
- Tamaño de constelación M Sin repliegue Con repliegue
- Nº de secciones
- Nº de bloques excluidos Nº de secciones Nº de bloques excluidos
- 16 K (N = 45, Q = 360)
- QPSK 16-QAM 64-QAM 256-QAM 4 6 8 8 22 11 7 5 1 1 3 5 44 22 15 11 1 1 0 1
- 64 K (N = 180, Q = 360)
- QPSK 16-QAM 64-QAM 256-QAM 2 4 6 8 90 45 30 22 0 0 0 4 180 90 60 45 0 0 0 0
El inventor descubrió que, para realizar repliegue (donde F es un entero igual a o mayor de dos), deben modificarse las condiciones 1 y 2 en las condiciones 1A y 2A, como se proporciona a continuación.
35 (Condición 1A)
Los M bits de cada palabra de constelación se mapean cada uno a uno de M/F diferentes bloques cíclicos de la palabra de código de LDPC. Esto es equivalente a mapear un bit desde M/F diferentes bloques cíclicos de la palabra de código de LDPC a una palabra de constelación. Esto se ilustra esquemáticamente en la Figura 31A.
40 (Condición 2A)
Todas las palabras de constelación mapeadas a los M/F bloques cíclicos se mapean únicamente a ese bloque cíclico particular. Esto es equivalente a mapear todos los M×Q/F bits de los M/F diferentes bloques cíclicos cada uno
45 compuesto de Q bits a exactamente Q/F constelaciones. Esto se ilustra esquemáticamente en la Figura 31B.
Cuando F = 1, no se implica repliegue, y por lo tanto las condiciones 1A y 2A son equivalentes a las condiciones 1 y
2.
50
E12785728
08-09-2015
(Realización 2)
Lo siguiente describe los detalles de un intercalador de bits (es decir, un intercalador de bits paralelo) que satisface las condiciones 1A y 2A, proporcionadas anteriormente. En la siguiente descripción, se etiqueta el procesamiento y 5 las unidades que realizan tal procesamiento con los mismos números de referencia siempre que sea aplicable.
En el presente documento, cada uno de los M/F bloques cíclicos de las Q/F palabras de constelación se denomina como una sección de repliegue (o como una sección de intercalador de repliegue).
10 Cuando F = 1 (es decir, no repliegue), las secciones de intercalador de repliegue coinciden con las secciones de intercalador y el intercalador de bits está configurado idénticamente al intercalador de bits de la realización 1.
La Figura 32 es un diagrama de bloques que ilustra la configuración de un intercalador de bits que satisface las condiciones 1A y 2A, cuando Q = 8, M = 4, N = 12y F = 2, como otra realización de la divulgación.
15 En la Figura 32, las palabras de código de QC-LDPC se componen de N = 12 bloques cíclicos QB1 a QB12, cada uno a su vez compuesto de Q = 8 bits. Cada una de las 24 palabras de constelación se compone de M = 4 bits. Cada palabra de constelación indica uno de 2M = 16 puntos de constelación. El intercalador de bits se divide en F×N/M = 6 secciones de repliegue, y cada una de las 24 palabras de constelación están asociadas con una de las
20 F×N/M = 6 secciones de repliegue.
El intercalador de bits 2000A incluye un permutador de bits 2010A. El permutador de bits 2010A incluye F×N/M =6 permutadores de sección de repliegue 2021A-2026A operando cada uno independientemente. En lugar de proporcionar seis permutadores de sección de repliegue, puede proporcionarse un único permutador de sección de
25 repliegue para realizar seis procesos de permutación de sección de repliegue (descrito más adelante), cambiando entre ellos con el tiempo.
Los permutadores de sección de repliegue (2021A, 2022A, 2023A, 2024A, 2025A, 2026A) son independientes y aplican cada uno un proceso de permutación de sección de repliegue a los 16 bits de dos bloques cíclicos de
30 manera que F = 2 bits de cada uno de los M/F = 2 bloques cíclicos (QB1-QB2, QB3-QB4, QB5-QB6, QB7-QB8, QB9-QB10, QB11-QB12) se mapean a un conjunto dado de cuatro palabras de constelación (C1-C4, C5-C8, C9-C12, C13-C16, C17-C20, C21-C24).
Las condiciones 1A y 2A, anteriormente descritas, aseguran de manera sencilla que el intercalador de bits es
35 divisible en F×N/M secciones de repliegue paralelas. Las permutaciones de sección de repliegue aplicadas a las secciones de repliegue paralelas pueden aplicar las mismas reglas de permutación, pueden aplicar cada una diferentes reglas de permutación o puede implicar que un subconjunto de las secciones aplique idénticas reglas de permutación mientras que otro diferentes.
40 Por ejemplo, los permutadores de sección de repliegue pueden mapear Q bits de cada bloque cíclico a bits de Q/F palabras de constelación que tienen el mismo nivel de robustez. Esto se ilustra en las Figuras 33A, 33B, 34A y 34B para una situación donde Q =8y M = 4.
La Figura 34A es un diagrama de bloques de un permutador de sección (repliegue) cuando F = I (es decir, sin 45 repliegue), y es similar a la Figura 22A.
La Figura 34B es un diagrama de bloques de dos permutadores de sección de repliegue de la Figura 32 donde F =2 (es decir, con repliegue).
50 Sin embargo, en el ejemplo de la Figura 34B, las constelaciones son constelaciones 16-QAM. Por lo tanto, los bits de las constelaciones tienen dos niveles de robustez. Los bits b1 y b3 tienen el mismo nivel de robustez, y los bits b2 y b4 tienen el mismo nivel de robustez, siendo el primer nivel de robustez diferente del último nivel de robustez.
Los permutadores de sección de repliegue 2201A (y 2202A) incluyen cada uno un permutador de columna-fila 55 2131A (o 2132A).
Los permutadores de columna-fila 2131A (y 2132A) cada uno realizan un proceso de permutación de columna-fila en Q×M/F = 16 bloques cíclicos QB1 y QB2 (o QB3 y QB4). Para ser exactos, los permutadores de columna-fila 2131A (y 2132A) escriben Q×M/F= 16 bits a nivel de filas en una matriz Q×M/F (8×2), a continuación leen los 16 bits así
60 escritos a nivel de columnas para realizar el proceso de permutación de columna-fila. La permutación de columnafila aplicada mediante los permutadores de columna-fila 2131A y 2132A se asemeja a la permutación aplicada a la matriz 12×1350 mostrada en las Figuras 9A y 9B, donde se usan Q columnas y M/F filas, el proceso de escritura tiene lugar a nivel de filas y el proceso de lectura tiene lugar a nivel de columnas.
65 El repliegue con un factor de repliegue de F reduce el número de bloques cíclicos mapeados a una única palabra de
15
25
35
45
55
65
E12785728
08-09-2015
constelación. Por lo tanto, la matriz usada en la permutación de columna-fila se reduce en tamaño, de M filas a M/F filas.
La Figura 33A ilustra la función de mapeo realizada mediante el permutador de sección (repliegue) de la Figura 34A. La Figura 33B ilustra la función de mapeo realizada mediante los dos permutadores de sección de repliegue de la Figura 34B. En las Figuras 33A y 33B, cada palabra de constelación de M = 4 bits se indica b1 a b4. Las porciones indicadas en líneas más gruesas representan las porciones mapeadas a la constelación C1.
Como se muestra en las Figuras 33A y 34A, los ocho bits de un bloque cíclico (que son de igual importancia) se mapean cada uno a los bits de ocho palabras de constelación que tienen el mismo índice de bit (es decir, que tienen el mismo nivel de robustez). También, en las Figuras 33B y 34B, los ocho bits de un bloque cíclico (que son de igual importancia) se mapean a los bits de cuatro palabras de constelación que tienen el mismo nivel de robustez.
La permutación de sección de repliegue descrita en la Figura 34B puede aplicarse a los bloques cíclicos QB5-QB6, QB7-QB8, QB9-QB10 y QB11-QB12.
Los permutadores de sección de repliegue de las Figuras 34A y 34B pueden incluir también una subunidad que realiza una permutación de bloques intra-cíclica en los bits de los bloques cíclicos QB1-QB4 antes de la permutación de columna-fila.
Ventajosamente, puede aplicarse una permutación de bloques cíclica adicional a los N bloques cíclicos antes de que el intercalador de bits realice la permutación de sección de repliegue. La Figura 35 es un diagrama estructural de la permutación de bloques cíclica adicional aplicada mediante el intercalador de bits.
El intercalador de bits 2300A mostrado en la Figura 35 incluye el permutador de bloques cíclico 2310 y un permutador de bits 2010A (que a su vez incluye los permutadores de sección de repliegue 2021A-2026A).
La Figura 36 es un diagrama de bloques esquemático del intercalador de bits 3500 mostrado en la Figura 35.
El intercalador de bits 2400A mostrado en la Figura 36 incluye el permutador de bloques cíclico 2310 y un permutador de bits 2200A (que a su vez incluye los permutadores de sección de repliegue 2201A-2206A).
Los permutadores de sección de repliegue 2201A-2206A incluyen cada uno un permutador de columna-fila 2131A2136A. Los permutadores de sección de repliegue 2133A-2136A realizan cada uno sustancialmente idénticas permutaciones con los permutadores de columna-fila 2131A-2132A.
Los intercaladores de bits mostrados en las Figuras 35 y 36 pueden cada uno incluir una subunidad adicional que realiza una permutación de bloques intra-cíclica en los bits de bloques cíclicos QB1-QB12 antes o después de la permutación de bloques cíclica.
Lo siguiente describe un transmisor que incluye el intercalador de bits que realiza un proceso de intercalación de bits que satisface las condiciones 1A y 2A, con referencia a la Figura 37.
La Figura 37 es un diagrama de bloques de un transmisor que pertenece a una realización adicional de la presente divulgación. El transmisor 2500A mostrado en la Figura 37 está configurado de manera similar al transmisor 2500 de la Figura 25, que se diferencia en que el intercalador de bits 2520 se sustituye con un intercalador de bits 2520A.
El intercalador de bits 2520A recibe la palabra de código en código QC-LDPC desde el codificador de LDPC 2510. La palabra de código se compone de N = 12 bloques cíclicos, incluyendo cada bloque cíclico Q = 8 bits. El intercalador de bits 2520A realiza intercalación en los bits de las palabras de código. El intercalador de bits 2520A divide la palabra de código intercalada en una pluralidad de palabras de constelación, cada una compuesta de M =4 bits e indicando uno de 2M = 16 puntos de constelación, a continuación emite las palabras de constelación al mapeador de constelación 2530. El intercalador de bits 2520A puede aplicar el proceso de intercalación de bits analizado con referencia a las Figuras 32 a 34, o puede aplicar un proceso de permutación de bits variante (excluyendo los casos donde F = 1). También, el intercalador de bits 2520A puede aplicar un proceso de permutación de bloques cíclica adicional (excluyendo los casos donde F = 1), tal como el proceso analizado con referencia a las Figuras 35 y 36 o una variación del mismo.
Lo siguiente describe un receptor que recibe señales desde un transmisor que incluye el intercalador de bits que realiza un proceso de intercalación de bits que satisface las condiciones 1A y 2A.
La Figura 38 es un diagrama de bloques de un receptor de ejemplo, que incluye un decodificador de BICM no iterativo, que pertenece a una realización adicional de la divulgación. El receptor realiza las operaciones del transmisor a la inversa. El receptor 2700A mostrado en la Figura 38 está configurado de manera similar al receptor 2700 de la Figura 27, que se diferencia en que el desintercalador de bits 2730 se sustituye mediante un desintercalador de bits 2730A.
15
25
35
45
55
65
E12785728
08-09-2015
El desintercalador de bits 2730A realiza un proceso de intercalación en la secuencia de bits flexible emitida desde el desmapeador de constelación 2720 para cancelar el proceso de intercalación de bits aplicado a la secuencia de bits mediante el intercalador de bits 2520A en el transmisor 2500A.
La Figura 39 es un diagrama de bloques de un receptor de ejemplo, que incluye un decodificador de BICM no iterativo, que pertenece a una realización adicional de la divulgación. El receptor realiza las operaciones del transmisor a la inversa. El receptor 2800A mostrado en la Figura 39 está configurado de manera similar al receptor 2800 de la Figura 28, que se diferencia en que el desintercalador de bits 2730 y el intercalador de bits 2750 se sustituyen mediante un desintercalador de bits 2730A y un desintercalador de bits 2750A.
El intercalador de bits 2750A realiza un proceso de intercalación en la información extrínseca usando las mismas reglas de intercalación que el proceso de intercalación aplicadas a la secuencia de bits mediante el intercalador de bits 2520A en el transmisor 2500A.
Desde una perspectiva de implementación en hardware, el repliegue es deseable en que, por ejemplo, los bits de una constelación se localizan de esta manera en menos localizaciones de memoria de LLR. Normalmente, la memoria de LLR en el decodificador incluye G×N localizaciones de memoria direccionables, pudiendo almacenar cada localización Q/G valores de LLR. En este punto, G es un parámetro de implementación que es un divisor de Q y se denomina en lo sucesivo como granularidad de memoria. Las localizaciones de memoria de LLR en el decodificador y los valores de LLR de la primera constelación se muestran en la Figura 40, donde M = 4, F = 2, Q = 12 y G = 1-12.
El número de valores de LLR por localización de memoria, es decir, el valor de Q/G, es necesariamente un múltiplo de F. Los valores de LLR de cada constelación se almacenan por lo tanto en la misma posición en todas las localizaciones de memoria. Esto asegura, que los valores LLR de cualquier palabra de constelación se almacenan en M/F localizaciones de memoria. Se proporciona un ejemplo contrario en la Figura 40 donde G = 4 y 12/4 = 3 valores de LLR se almacenan en cada localización de memoria. Los valores de LLR de la segunda y quinta palabras de constelación se almacenan cada uno en cuatro localizaciones de memoria en lugar de en dos localizaciones de memoria.
Además de las constelaciones de QAM sencillas donde es aplicable el repliegue con F = 2, el repliegue es incluso más útil cuando se decodifican conjuntamente dos o más símbolos de constelación. La decodificación conjunta es necesaria, por ejemplo, para la máxima probabilidad de decodificación de códigos de bloques (por ejemplo, códigos de espacio-tiempo, códigos de espacio-frecuencia y similares) y para constelaciones rotadas en dos o más dimensiones.
En general, un código de bloques codifica dos o más símbolos de entrada (por ejemplo, X1, .... Xk) en dos o más símbolos de salida (por ejemplo, y1, ..., yL). En este punto, L es al menos igual a K. Los códigos de bloques se modelan en una matriz generadora L×K. En este punto, el vector de señal de salida Y se obtiene como resultado de multiplicar a la izquierda el vector de señal de entrada X por la matriz generadora G (es decir, Y = GX).
Los elementos del vector de señal de entrada X y del vector de señal de salida Y, así como los elementos de la matriz generadora G, pueden ser reales o complejos. Dependiendo del tipo de código, el vector de señal de salida Y puede transmitirse en diferentes intervalos de tiempo o en diferentes intervalos de frecuencia, puede transmitirse a través de diferentes antenas o puede transmitirse usando diversos intervalos de tiempo, intervalos de frecuencia y antenas diferentes.
En el receptor, se requiere la máxima probabilidad de decodificación para decodificar todos los elementos del vector de señal de entrada X. Ejemplos de códigos de bloques para sistemas de múltiple entrada múltiple salida (en lo sucesivo, MIMO) incluyen códigos de Alamouti, códigos de Golden y multiplexación espacial.
Cuando se codifican K símbolos en el mismo bloque, puede usarse evidentemente un factor de repliegue de hasta
K. Además, con la condición de que los símbolos sean símbolos de QAM (incluyendo dos símbolos de PAM divisibles), entonces el factor de repliegue puede aumentarse hasta 2K.
De acuerdo con un aspecto adicional de la presente divulgación, cuando se codifican conjuntamente constelaciones de diferentes tamaños, es decir, constelaciones híbridas, las dos constelaciones tienen diferentes niveles de robustez. Por lo tanto, por ejemplo, el bloque cíclico al que se mapean los bits de una palabra de constelación es distinto del bloque cíclico al que se mapean los bits de la otra palabra de constelación.
Lo siguiente describe un ejemplo de un sistema de MIMO de multiplexación espacial codificada que usa dos antenas de transmisión. La señal compleja antes de codificar es X = [x1 x2]. En este punto, x1 es una señal a la que se ha aplicado QPSK, y x2 es una señal a la que se ha aplicado 16-QAM. La señal compleja después de decodificar es Y = [y1 y2]. En este punto, y1 e y2 son señales transmitidas respectivamente mediante una primera antena y una segunda antena. Y se obtiene a través de una multiplicación a la izquierda de X con una matriz generadora G de 2×2 (donde los elementos de G pueden ser reales o complejos) (es decir, Y = GX).
E12785728
08-09-2015
La Figura 41 ilustra un ejemplo para mapear con un factor de repliegue de F= 2, cuando se multiplexa los símbolos de QPSK con símbolos 16-QAM en un único código de bloque. La Figura 41 indica únicamente los primeros siete bits de los bloques cíclicos. Los dos símbolos complejos x1 y x2 se configuran como sigue.
5 x1 es un símbolo de QPSK que tiene una parte real b1 y una parte imaginaria b2.
x2 es un símbolo 16-QAM que tiene la parte real b3 y b4 y que tiene las partes imaginarias b5 y b6.
Los dos símbolos se decodifican conjuntamente mediante el receptor y por lo tanto forman un bloque de 10 constelación o bloque generado.
Todo el bloque de constelación de 6 bits tiene tres niveles de robustez.
Nivel 1: 1: los bits de QPSK b1 y b2 se mapean a QB1 15 Nivel 2: los bits de 16-QAM b3 y b5 se mapean a QB2
Nivel 3: los bits de 16-QAM b4 y b6 se mapean a QB3
20 Cuando una de las constelaciones tiene M1 bits y la otra constelación tiene M2 bits, los N grupos cíclicos se dividen en uno o más grupos de M1 bloques cíclicos y uno o más grupos de M2 bloques cíclicos para realizar el proceso de intercalación de bits.
(Realización 3)
25 Lo siguiente describe un ejemplo de un intercalador que realiza repliegue en una situación donde N no es un múltiplo de M.
La Figura 42 ilustra un bloque cíclico sometido a y un bloque cíclico excluido (es decir, un bloque excluido) del
30 proceso de intercalación donde F = 2, anteriormente descrito. En la Figura 42, el código es código de LDPC de 16 K que se ajusta a la norma de DVB-T2, y la constelación es una constelación 16-QAM. Como se muestra, 44 de los bloques cíclicos se someten a intercalación (es decir, los bloques 1 a 44), y el bloque cíclico 45, en la última fila, es el bloque cíclico que no se somete a intercalación (es decir, el bloque excluido). Los cuatro cuadrados en negro representan los cuatro bits de la primera constelación.
35 La Figura 43 es un diagrama de bloques esquemático de un intercalador de bits que realiza repliegue cuando N no es un múltiplo de M. Por simplicidad, se mantienen los siguientes valores: N= 13, Q = 8, M =4y F = 2.
El número de secciones de repliegue es floor(N/(M/F)) = 6, y el número de bloques cíclicos excluidos es rem(N, M/F) 40 =1.
El intercalador de bits 2000B selecciona 13-1 = 12 bloques cíclicos de entre los bloques cíclicos QB1-QB13, de manera que los bloques cíclicos QB1-QB12 seleccionados satisfacen las condiciones A1 y A2 y se someten a intercalación. El permutador de bits 2010A en el intercalador de bits 2000B realiza el proceso de permutación
45 descrito con referencia a la Figura 32 en los doce bloques cíclicos seleccionados. Aunque los bits del bloque cíclico QB13 se mapean en este punto a una palabra de constelación sin intercalación, puede aplicarse también intercalación antes de mapear a la palabra de constelación.
Como un ejemplo de un intercalador que no realiza repliegue cuando N no es un múltiplo de M, el permutador de bits 50 2010A mostrado en la Figura 43 puede sustituirse por el permutador 2010 mostrado en la Figura 20.
Lo siguiente describe un ejemplo específico de una permutación de sección realizada en códigos de LDPC usando la norma de DVB-T2 como se describe en la Tabla 3.
55 (Ej. 1A) Cuando N = 45, Q = 360, M = 4 y sin repliegue (es decir, F = 1)
La Figura 44A es un diagrama de configuración de una permutación de sección para una situación donde N = 45, Q = 360, M = 4 y sin repliegue (es decir, F = 1).
60 El intercalador de bits 4400A selecciona un subconjunto de 44 bloques cíclicos QB1-QB44 de entre 45 bloques cíclicos QB1-QB45.
El subconjunto se divide a continuación en once secciones 1-11 incluyendo cada una cuatro bloques cíclicos. Por ejemplo, la sección 1 incluye los bloques cíclicos QB1-QB4 y la sección 11 incluye los bloques cíclicos QB41-QB44. 65
E12785728
08-09-2015
Once permutadores de sección (4401-4411) en el intercalador de bits 4400A cada uno realiza un proceso de permutación en los cuatro bloques cíclicos respectivos, como se ha descrito con referencia a la Figura 32.
Los bits del bloque cíclico QB45 se mapean en este punto a una palabra de constelación sin intercalación. 5 (Ej. 1B) Cuando N = 45, Q = 360, M = 4 y con repliegue (es decir, F = 2)
La Figura 44B es un diagrama de configuración de una permutación de sección para una situación donde N = 45, Q = 360, M = 4 y con repliegue (es decir, F = 2).
10 El intercalador de bits 4400B selecciona un subconjunto de 44 bloques cíclicos QB1-QB44 de entre 45 bloques cíclicos QB1-QB45.
El subconjunto se divide a continuación en once secciones 1-11 incluyendo cada una dos bloques cíclicos.
15 En este punto, 22 permutadores de sección (4421, 4422, ..., 4442) en el intercalador de bits 4400B cada uno realiza un proceso de permutación en los dos bloques cíclicos respectivos, como se describe con referencia a la Figura 32.
Los bits del bloque cíclico QB45 se mapean en este punto a una palabra de constelación sin intercalación. 20 (Ej. 2A) Cuando N = 45, Q = 360, M = 6 y sin repliegue (es decir, F = 1)
La Figura 45A es un diagrama de configuración de una permutación de sección para una situación donde N = 45, Q = 360, M = 6 y sin repliegue (es decir, F = 1).
25 El intercalador de bits 4500A selecciona un subconjunto de 42 bloques cíclicos QB1-QB42 de entre 45 bloques cíclicos QB1-QB45.
El subconjunto se divide a continuación en siete secciones 1-7 incluyendo cada una seis bloques cíclicos. Por 30 ejemplo, la sección 1 incluye los bloques cíclicos QB1-QB6 y la sección 7 incluye los bloques cíclicos QB37-QB42.
Siete permutadores de sección (4501 a 4507) en el intercalador de bits 4500A cada uno realiza un proceso de permutación en los seis bloques cíclicos respectivos, como se describe con referencia a la Figura 32.
35 En este punto, los bloques cíclicos QB43-QB45 no se incluyen en ningún subconjunto.
Los bits de bloques cíclicos QB43 y QB44 se mapean en este punto a palabras de constelación sin intercalación.
En contraste, los bits del bloque cíclico QB45 se someten a permutación de bloques intra-cíclica mediante el 40 permutador de bloques intra-cíclico 4545.
Es decir, los bits de bloques cíclicos QB43 y QB44 que no se incluyen en ningún subconjunto y que no se someten a permutación. Sin embargo, aunque los bits del bloque cíclico QB45 no se incluyen de manera similar en ningún subconjunto, estos bits se someten a permutación mediante un permutador de bloques intra-cíclico 4545 que está
45 separado de los permutadores de sección (4501 a 4507).
En el ejemplo de la Figura 45A, el bloque cíclico QB45 en solitario de entre los bloques cíclicos QB43 a QB45 se somete a permutación. Sin embargo, los tres bloques cíclicos QB43 a QB45 pueden someterse también a permutación. Como alternativa, puede aplicarse una permutación de bloques intra-cíclica a los bloques cíclicos
50 QB43 a QB45.
(Ej. 2B) Cuando N = 45, Q = 360, M = 6 y con repliegue (es decir, F = 2)
La Figura 45B es un diagrama de configuración de una permutación de sección para una situación donde N = 45, Q 55 = 360, M = 6 y con repliegue (es decir, F = 2).
El intercalador de bits 4500B selecciona todos los 45 bloques cíclicos QB1-QB45 de entre los 45 bloques cíclicos QB1-QB45.
60 El subconjunto se divide a continuación en quince secciones 1-15 incluyendo cada una tres bloques cíclicos.
En este punto, 15 permutadores de sección (4511, ..., 4526) en el intercalador de bits 4500B cada uno realiza un proceso de permutación en los tres bloques cíclicos respectivos, como se describe con referencia a la Figura 32.
65
15
25
35
45
55
65
E12785728
08-09-2015
(Realización 4)
Lo siguiente describe un método de intercalación de bits eficaz. En el proceso de decodificación de LDPC, la capacidad de corrección de errores puede reducirse por la presencia de nodos de comprobación ineficaces. Los inventores han descubierto un método adicional para evitar la aparición de nodos de comprobación ineficaces, usando el método anteriormente mencionado. Lo siguiente analiza los medios por los que aparecen nodos de comprobación ineficaces y los medios para cancelar tales nodos.
Los nodos de comprobación ineficaces aparecen cuando dos o más nodos variables de LDPC que están conectados al mismo nodo de comprobación tienen bits desde la misma constelación mapeados a los mismos. Suponiendo que una constelación de este tipo experimenta desvanecimiento profundo, los correspondientes valores de LLR emitidos mediante el desmapeador de constelación son entonces muy pequeños o son cero.
Hipotéticamente, cuando dos o más nodos variables están conectados al mismo nodo de comprobación, y el nodo de comprobación tiene valores de LLR que son cero o extremadamente pequeños, entonces el nodo de comprobación no puede emplear el proceso de corrección de errores. Por lo tanto, como resultado, se ralentiza la convergencia del valor del proceso iterativo para una primera iteración mediante un decodificador de LDPC. Tales nodos de comprobación se denominan nodos de comprobación ineficaces.
Lo siguiente describe la manera en la que aparecen los nodos de comprobación ineficaces, usando un ejemplo específico. Considérese el tercer bloque cíclico de los nodos de comprobación mostrados en la Figura 5 (es decir, los nodos de comprobación CN17 a CN24) del código de LDPC como se define mediante la matriz de comprobación de paridad. La Figura 46 destaca los nodos variables conectados a los nodos de comprobación de paridad 17 a 24. Es decir, los cuadrados en negro representan únicamente las porciones asociadas con los nodos de comprobación y los nodos variables.
Estas conexiones se describen también como se muestra en la Figura 47, para claridad añadida de entendimiento con referencia a la estructura en paralelo y las permutaciones cíclicas. Cada uno de los ocho nodos de comprobación se conecta a ocho nodos variables a través de la permutación cíclica. En este punto, la permutación cíclica corresponde a un logaritmo de desplazamiento de manera cíclica de la matriz de comprobación de paridad. Por ejemplo, en la Figura 47, los bits del tercer bloque cíclico (es decir, QB3), están conectados a los nodos de comprobación dos veces. Esto se muestra destacando (en líneas negras gruesas) la conexión entre el primer nodo de comprobación (CN17) y el nodo variable. Este destaque existe únicamente para el fin de ilustrar la conexión entre el nodo de comprobación 17 y el nodo variable, y no tiene significado particular en relación con el nodo de comprobación 17.
Como se ha descrito anteriormente, existe una relación de correspondencia entre las Figuras 46 y 47. En la Figura 46, los nodos variables del nodo de comprobación 17 (CN17, la decimoséptima fila de la matriz en la Figura 46) y el segundo bloque cíclico (QB2, que corresponde a las columnas 9 a 16 de la matriz en la Figura 46) están asociados claramente con el nodo variable más a la derecha de QB2 (la decimosexta fila de la matriz en la Figura 46) y al nodo de comprobación 17 (la decimoséptima fila y los cuadrados en negro de la decimosexta fila de la matriz en la Figura 46). De manera similar, en la Figura 47, el nodo de comprobación 17 (los cuadrados en negro más a la izquierda) están asociados con los nodos variables más a la derecha (los círculos en negro) del segundo bloque cíclico (es decir, QB2).
Como para los ocho bloques cíclicos conectados a los nodos de comprobación 17 a 24, las Figuras 48A a 48H indican cada una la vista del mapeo. En cada una de las Figuras 48A a 48H, se destacan los nodos variables conectados a los nodos de comprobación 17 a 24. Cada cuadrado representa un nodo variable de un bloque cíclico, y los nodos variables asociados con los nodos de comprobación están en negro. También, la Figura 47 destaca la conexión entre el nodo de comprobación 17 y los nodos variables, y la Figura 48A representa también esta conexión. Las relaciones destacadas mediante las Figuras 48A y 47 por lo tanto corresponden entre sí.
Lo siguiente describe dos ejemplos en que aparecen nodos de comprobación ineficaces. Estos ejemplos son una muestra seleccionada.
Las Figuras 49A a 49H ilustran el primer ejemplo. Las Figuras 49A a 49H ilustran constelaciones 16-QAM mapeadas en QB 14 y QB15, basándose en el mapeo mostrado en las Figuras 48A a 48H y en un factor de repliegue F de 2. En las Figuras 49A a 49H, cada grupo de cuatro cuadrados redondeados por una silueta gruesa representa una constelación. Como se muestra, cada constelación experimenta desvanecimiento profundo y por lo tanto produce que dos nodos de comprobación sean ineficaces. Los nodos de comprobación que se representan ineficaces mediante las constelaciones que experimentan el desvanecimiento son como sigue.
- –
- Cuando C1 experimenta desvanecimiento: nodos de comprobación 17 y 18 (véanse las Figuras 49A y 49B)
- –
- Cuando C2 experimenta desvanecimiento: nodos de comprobación 19 y 20 (véanse las Figuras 49C y 49D)
- –
- Cuando C3 experimenta desvanecimiento: nodos de comprobación 21 y 22 (véanse las Figuras 49E y 49F)
- –
- Cuando C4 experimenta desvanecimiento: nodos de comprobación 23 y 24 (véanse las Figuras 49G y 49H)
15
25
35
45
55
65
E12785728
08-09-2015
Las Figuras 50A a 50H ilustran el segundo ejemplo. Las Figuras 50A a 50H ilustran las constelaciones 16-QAM mapeadas en QB4 y QB5, basándose en el mapeo mostrado en las Figuras 48A a 48H y en un factor de repliegue F de 2. En las Figuras 50A a 50H, cada grupo de cuatro cuadrados redondeados por una silueta gruesa representa una constelación. Como se muestra, cada constelación experimenta desvanecimiento profundo y por lo tanto produce que uno de los nodos de comprobación sea ineficaz. Los nodos de comprobación que se representan ineficaces mediante las constelaciones que experimentan el desvanecimiento son como sigue.
- –
- Cuando C1 experimenta desvanecimiento: nodo de comprobación 21 (véase la Figura 50E)
- –
- Cuando C2 experimenta desvanecimiento: nodo de comprobación 23 (véase la Figura 50G)
- –
- Cuando C3 experimenta desvanecimiento: nodo de comprobación 17 (véase la Figura 50A)
- –
- Cuando C4 experimenta desvanecimiento: nodo de comprobación 19 (véase la Figura 50C)
La aparición de nodos de comprobación ineficaces puede prevenirse evitando mapear un nodo variable en una constelación conectada al mismo nodo de comprobación. Para el intercalador de bits paralelo, esto se realiza realizando una permutación adicional en los bits de cada bloque cíclico. Esta permutación adicional se denomina a continuación una permutación de bloques intra-cíclica. La permutación de bloques intra-cíclica se aplica normalmente de manera diferente de acuerdo con el bloque cíclico en cuestión.
La implementación se simplifica teniendo la permutación de bloques intra-cíclica usando uno o más desplazamientos cíclicos. Cuando existe únicamente un desplazamiento cíclico, un rotador (reconfigurable) y des-rotador incluidos en el decodificador de LDPC son reutilizables, reduciendo por lo tanto la complejidad de implementación en el circuito. Las Figuras 51A y 51B ilustran respectivamente la estructura del intercalador de bloques intra-cíclico que realiza un desplazamiento y dos desplazamientos por bloque cíclico cuando Q = 8. Como se muestra, el intercalador de bloques intra-cíclico (5100A o 5100B) incluye la tabla B (5101A o 5101B) que almacena los valores de desplazamiento para realizar los desplazamientos de cada bloque cíclico, y uno o dos rotadores reconfigurables (5102A, 5102B y 5103B). El intercalador de bloques intra-cíclico (5100A o 5100B) recibe un índice de bloque cíclico que indica el bloque cíclico objetivo como entrada, especifica un valor de desplazamiento que corresponde al bloque cíclico como se indica en la tabla B (5101A o 5101B), y configura el rotador con el valor de desplazamiento. El rotador (5102A, 5102B o 5103B) desplaza cíclicamente los bits del bloque cíclico introducidos al mismo mediante el valor de desplazamiento y emite una secuencia de bits desplazada (es decir, un bloque cíclico que ha experimentado una permutación de bloques intra-cíclica). El intercalador de bloques intra-cíclicos corresponde al permutador de bloques intra-cíclicos de las Figuras 21B y 24. Los valores de desplazamiento hacia la derecha indicados mediante la tabla B (5101A o 5101B) son valores almacenados que posibilitan la prevención de una situación donde los nodos de comprobación asociados con los nodos variables se mapean a la misma constelación.
La referencia a las Figuras 49A a 49H y 50A a 50H posibilita que se evite la aparición de nodos de comprobación ineficaces estableciendo los valores de desplazamiento como se describe a continuación. Específicamente, para las Figuras 49A a 49B, el valor de desplazamiento es dos para QB14, de manera que se usan dos desplazamientos cíclicos hacia la derecha. También, para las Figuras 50A a 50H, el valor de desplazamiento es tres para QB4, de manera que se usan tres desplazamientos cíclicos hacia la derecha. Los resultados de aplicar este desplazamiento cíclico a las Figuras 49A a 49H y a las Figuras 50A a 50H se muestran en las Figuras 52A a 52H y en las Figuras 53A a 53H, respectivamente. Por simplicidad en los ejemplos, las Figuras 50A a 50H indican que se aplica un desplazamiento de 3 bits a la derecha a la totalidad de QB4. Sin embargo, para las Figuras 50B, 50D, 50F y 50H, la permutación de bloques intra-cíclica no es necesaria puesto que las constelaciones mapeadas en la misma implican diferentes nodos variables asociados con los nodos de comprobación.
Cuando se introduce un bloque cíclico que no requiere desplazamiento cíclico, el valor de desplazamiento se establece a cero y la secuencia de bits se emite como está, sin desplazamiento cíclico.
Por lo tanto, se minimiza el número de nodos de comprobación ineficaces en los códigos de LDPC seleccionando una permutación apropiada para cada bloque cíclico. Por supuesto, las permutaciones de bloques intra-cíclicas deben adaptarse siempre que se cambien los códigos de LDPC, tal como cuando se cambia la PCM del código empleado. La permutación de bloques intra-cíclica puede realizarse de manera óptima usando un conjunto (limitado) de PCM que incluye una pluralidad de PCM predeterminadas, almacenándose el conjunto con antelación (como alternativa, pueden almacenarse valores de desplazamiento u otros parámetros, definiendo los parámetros el método de permutación real). La Tabla B para la Figura 51A, analizada anteriormente, se almacena según sea apropiado para el método de permutación. Por consiguiente, cuando se cambia la tasa de codificación o similar, cambiando por lo tanto la PCM, pueden seleccionarse los parámetros apropiados desde un conjunto, permitiendo que se cambie el método de permutación óptima. La permutación de bloques intra-cíclica óptima para una PCM dada o un conjunto dado de PCM puede determinarse mediante cualquier proceso de optimización conocido, incluyendo fuerza bruta, recocido simulado, Monte-Carlo y similares.
La Figura 54 es un diagrama global que indica la configuración de una permutación de bloques intra-cíclica 5410 en el intercalador de bits paralelo 5400 usada para un factor de repliegue de dos, similar al de la Figura 24. Las operaciones de las Figuras 54 y 24 se diferencian únicamente en que el factor de repliegue se cambia de cuatro a dos, y que la permutación de sección se realiza en dos bloques cíclicos. Se omiten explicaciones ya que los detalles
E12785728
08-09-2015
son idénticos de otra manera. Como para el receptor, se omite una explicación detallada puesto que las operaciones del mismo son idénticas a aquellas de las transmitidas en todos los aspectos, excepto que la dirección de las flechas en la Figura 54 se invierte.
5 La Figura 55 es un diagrama de bloques de un codificador de BICM que pertenece a la realización 4, donde Q = 8, M =4y F = 2.
Como se muestra en la Figura 55, el codificador de BICM 5500 incluye una memoria principal 5501, un controlador de LDPC 5511, un rotador 5512, un grupo de procesadores de nodo de comprobación 5513, un des-rotador 5514,
10 un contador de QB 5531, una tabla de permutación de QB 5532, el intercalador B 5533, un grupo de registros 5534, el intercalador C 5535, una tabla de desplazamiento de QB 5536, y un grupo de mapeadores 5551.
En contraste a la Figura 26, el codificador de BICM mostrado en la Figura 55 usa un factor de repliegue de dos, y por lo tanto el número de registros en el grupo de registros 5534 y los mapeadores en el grupo de mapeadores 5551 se
15 reduce de cuatro a dos. También, la tabla A se sustituye mediante la tabla de permutación de QB 5532 y la tabla de desplazamiento de QB 5536. Lo siguiente describe los puntos de diferencia de la Figura 26. Se omiten otros aspectos de la configuración como que son idénticos a la Figura 26.
El contador de QB 5531 notifica la tabla de permutación de QB 5532 del número del bloque cíclico objetivo.
20 La tabla de permutación de QB 5532 es una tabla de consulta similar a la tabla A 2632 de la Figura 26.
La tabla de desplazamiento de QB 5536 almacena valores de desplazamiento para realizar un desplazamiento cíclico en una secuencia de bits para cada uno de los bloques cíclicos. La tabla de desplazamiento de QB 5536
25 determina el valor de desplazamiento de acuerdo con el número del bloque cíclico en la notificación desde la tabla de permutación de QB 5532, a continuación notifica al rotador (intercalador B) 5533 de lo mismo. La tabla de desplazamiento de QB 5536 es equivalente a la tabla B (5101A, 5101B) en la Figura 51.
El rotador (intercalador B) 5533 realiza un desplazamiento cíclico hacia la derecha mediante el valor de
30 desplazamiento en la secuencia de bits introducida al mismo de acuerdo con el valor de desplazamiento en la notificación, a continuación emite los resultados al grupo de registros 5534. El rotador (intercalador B) 5533 realiza una permutación de bloques intra-cíclica en el codificador de BICM, es decir, corresponde a la permutación de bloques intra-cíclica 5410 de la Figura 54. También, el intercalador de columna-fila (intercalador C) 5535 realiza una permutación de columna-fila como se muestra en la Figura 54. En este punto, esto implica escribir 8 (Q) × 2(M/F)
35 bits a nivel de filas en una matriz de 2 (M/F) × 8(Q), a continuación leer a nivel de columnas.
La Figura 56 es un diagrama de bloques de un decodificador de BICM iterativo que pertenece a la realización 4, donde Q = 8, M =4y F = 2.
40 Como se muestra, el decodificador de BICM iterativo 5600 incluye una memoria de LLR principal 5601, una memoria de LLR de memoria intermedia 5602, un controlador de LDPC 5611, un rotador 5612, un grupo de procesadores de nodo de comprobación 5613, un des-rotador 5614, un contador de QB 5631, una tabla 5632, un grupo de restadores 5633, el intercalador B 5634, el grupo de registros 5635, el intercalador C 5636, un grupo desmapeadores 5637, el desintercalador C 5638, el grupo de registros 5639, el desintercalador B 5640, un retardador 5641 y una tabla de
45 desplazamiento de QB 5642.
Como la comparación con la Figura 29 se hace evidente, el decodificador de BICM iterativo 5600 mostrado en la Figura 56 usa un factor de repliegue de dos y por lo tanto, el número de registros en los grupos de registros 5535 y 5539 así como el número de desmapeadores en el grupo de desmapeadores 5637 se reduce de cuatro a dos.
50 También, la tabla A se sustituye por una tabla de permutación de QB 5632 y por una tabla de desplazamiento de QB 5642. Lo siguiente describe los puntos de diferencia de la Figura 29. Se omiten otros aspectos de la configuración ya que son idénticos a la Figura 29.
El contador de QB 5631 notifica la tabla de permutación de QB 5632 del número del bloque cíclico objetivo.
55 La tabla de permutación de QB 5632 es una tabla de consulta similar a la tabla A 2932 de la Figura 29.
La tabla de desplazamiento de QB 5642 almacena valores de desplazamiento para realizar un desplazamiento cíclico en una secuencia de bits para cada uno de los bloques cíclicos. La tabla de desplazamiento de QB 5642
60 determina el valor de desplazamiento de acuerdo con el número del bloque cíclico en la notificación desde la tabla de permutación de QB 5632, a continuación notifica al rotador (intercalador B) 5634 en consecuencia. También, el des-rotador (desintercalador B) 5640 se notifica del valor de desplazamiento mediante uno de los retardadores 5641, para poder deshacer el proceso de intercalación para la permutación de bloques intra-cíclica. La tabla de desplazamiento de QB 5542 es equivalente a la tabla B (5101A, 5101B) en la Figura 51.
65
E12785728
08-09-2015
El rotador (intercalador B) 5634 realiza un desplazamiento cíclico en la secuencia de bits introducida al mismo de acuerdo con el valor de desplazamiento en la notificación desde la tabla de desplazamiento de QB 5642, a continuación emite los resultados al grupo de registros 5635. El rotador (intercalador B) 5634 realiza una permutación de bloques intra-cíclica en el decodificador de BICM iterativo 5600.
5 También, de acuerdo con el valor de desplazamiento en la notificación desde la tabla de desplazamiento de QB 5642, el des-rotador (desintercalador B) 5640 realiza un desplazamiento cíclico en la secuencia de bits introducida al mismo desde el grupo de registros 5639 es decir la inversa del desplazamiento aplicado mediante el rotador (intercalador B) 5634, a continuación emite los resultados a la memoria de LLR principal 5601.
10 El intercalador de columna-fila (intercalador C) 5636 corresponde al intercalador C de la Figura 29. El desintercalador de columna-fila (desintercalador C) 5638 corresponde al intercalador C 2938 de la Figura 29.
De acuerdo con la configuración anterior, el codificador de BICM puede ejecutar de manera sencilla una permutación
15 de bloques intra-cíclica, y se evitan por lo tanto situaciones donde los nodos variables asociados con un nodo de comprobación se mapean a la misma constelación en pluralidad. Por consiguiente, se reduce la probabilidad de aparición de los nodos de comprobación ineficaces, que no pueden usarse en corrección de errores.
(Complemento 1)
20 La presente divulgación no está limitada a las realizaciones anteriormente descritas. Con la condición de que se consigan los objetivos de la invención y los objetivos adjuntos, son posibles también otras variaciones, tales como las siguientes.
25 (1) La realización se ha descrito anteriormente usando los parámetros N = 12, Q = 8 y M = 4. Sin embargo, no se pretende limitación a los parámetros N, M y Q. En este punto, N puede ser cualquier múltiplo de M. Cuando N es dos o más veces M. el procesamiento mediante el intercalador de bits es divisible en una pluralidad de secciones.
(2) En la realización 2, cuando se usa repliegue, es decir, cuando F es dos o mayor, los parámetros dados para
30 el ejemplo son N= 12, Q= 8, M= 4 y un factor de repliegue de F = 2. Sin embargo, no se pretende limitación a los parámetros N, M, Q y F. En este punto, F es un divisor de M y de Q,y N es un múltiplo de M/F.
(3) En la realización 2, cuando se usa repliegue, el valor de F se da como dos, que es el número de bits que tienen el mismo nivel de robustez en una única constelación 16-QAM. Sin embargo, no se pretende limitación. El valor de F no necesita ser igual al número de bits que tienen el mismo nivel de robustez en una constelación, y
35 puede de hecho ser distinto al número de bits que tienen el mismo nivel de robustez en una constelación.
(4) En la realización 2, cuando se usa repliegue, el ejemplo describe un factor de repliegue de F = 2, y siendo las constelaciones de QAM constelaciones 16-QAM. Sin embargo, no se pretende limitación. Cuando F = 2, las constelaciones de QAM pueden ser distintas de las constelaciones 16-QAM (por ejemplo, constelaciones 64-QAM o constelaciones 265-QAM).
40 (5) En la realización 4, la tabla B y la tabla de desplazamiento de QB almacenan valores de desplazamiento cíclico para un desplazamiento hacia la derecha de una secuencia de bits. Sin embargo, estas tablas pueden almacenar también valores para un desplazamiento hacia la izquierda, y los valores de desplazamiento no necesitan ser mínimos absolutos. No se pretende limitación con la condición de que las tablas posibiliten la prevención de una situación donde los nodos variables asociados con un nodo de comprobación se mapean en
45 pluralidad a la misma constelación.
También, el desplazamiento cíclico puede sustituirse mediante una permutación de bloques intra-cíclica sin regularidad de manera que, en una constelación dada, ningún nodo de comprobación se asocia con una pluralidad de nodos variables. Sin embargo, cuando se usa una permutación de bloques intra-cíclica sin regularidad, entonces
50 el transmisor debe comunicar el método de permutación de bloques intra-cíclica al receptor, o el método para implementar la permutación debe determinarse con antelación entre el transmisor y el receptor.
(6) En las realizaciones anteriormente descritas, las constelaciones se describen como 16-QAM (es decir, M = 4). Sin embargo, la constelación puede especificarse mediante otros métodos de modulación tales como QPSK y QAM,
55 tal como las constelaciones circulares empleadas en la norma de DVB-S2, constelaciones de dimensiones superiores y así sucesivamente.
(7) Los métodos y dispositivos analizados en las realizaciones anteriores pueden implementarse como software o como hardware. No se pretende limitación particular en este sentido. Específicamente, las realizaciones
60 anteriormente descritas pueden implementarse como un medio legible por ordenador que tiene realizado en el mismo instrucciones ejecutables por ordenador que están adaptadas para permitir a un ordenador, un microprocesador, un microcontrolador y similares ejecutar los métodos anteriormente descritos. También, las realizaciones anteriormente descritas pueden implementarse como un Circuito Integrado Específico de la Aplicación (ASIC) o como un Campo de Matriz de Puertas Programables (FPGA).
65
15
25
35
45
55
65
E12785728
08-09-2015
(Complemento 2)
El método de intercalación, el intercalador, el método de desintercalación, el desintercalador y el decodificador de la presente divulgación, y los efectos de los mismos se describen a continuación.
En un aspecto, un primer método de intercalación de bits para un sistema de comunicación que usa códigos de comprobación de paridad de baja densidad cuasi cíclicos comprende: una etapa de recepción para recibir una palabra de código de los códigos de comprobación de paridad de baja densidad cuasi cíclicos compuestos de N bloques cíclicos incluyendo cada uno Q bits; una etapa de permutación de bits para aplicar un proceso de permutación de bits a la palabra de código para permutar los bits en la palabra de código; una etapa de división para dividir la palabra de código, después del proceso de permutación de bits, en una pluralidad de palabras de constelación, estando compuesta cada una de las palabras de constelación de M bits e indicando uno de 2M puntos de constelación predeterminados, y una etapa de permutación de bloques intra-cíclica para aplicar un proceso de permutación de bloques intra-cíclica a cada uno de los bloques cíclicos para permutar los bits en cada uno de los bloques cíclicos, en el que la etapa de división implica dividir la palabra de código, después del proceso de permutación de bits, en F×N/M secciones, incluyendo cada una MlF de los bloques cíclicos (siendo F un entero positivo), y a continuación dividir la palabra de código en las palabras de constelación de manera que cada una de las palabras de constelación se asocie con una de las secciones, y el proceso de permutación de bits se aplica de manera que cada una de las palabras de constelación incluye F bits extraídos de cada uno de los M/F diferentes bloques cíclicos sometidos al proceso de permutación, en una sección dada asociada con una dada de las palabras de constelación.
En otro aspecto, un primer intercalador de bits para un sistema de comunicación que usa códigos de comprobación de paridad de baja densidad cuasi cíclicos comprende: una unidad de permutación de bits que recibe una palabra de código de los códigos de comprobación de paridad de baja densidad cuasi cíclicos compuestos de N bloques cíclicos incluyendo cada uno Q bits, y aplicar un proceso de permutación de bits a la palabra de código para permutar los bits en la palabra de código; una unidad de división que divide la palabra de código, después del proceso de permutación de bits, en una pluralidad de palabras de constelación, estando compuesta cada una de las palabras de constelación de M bits e indicando uno de 2M puntos de constelación predeterminados; y una unidad de permutación de bloques intra-cíclica que aplica un proceso de permutación de bloques intra-cíclica a cada uno de los bloques cíclicos para permutar los bits en cada uno de los bloques cíclicos, en el que la unidad de división divide la palabra de código, después del proceso de permutación de bits, en F×N/M secciones, incluyendo cada una M/F de los bloques cíclicos (siendo F un entero positivo), y a continuación dividir la palabra de código en las palabras de constelación de manera que cada una de las palabras de constelación se asocie con una de las secciones, y el proceso de permutación de bits se aplica de manera que cada una de las palabras de constelación incluye F bits extraídos de cada uno de los M/F diferentes bloques cíclicos sometidos al proceso de permutación, en una sección dada asociada con una dada de las palabras de constelación.
En este punto, la división corresponde a la realizada mediante el codificador de BICM y el decodificador de BICM en las realizaciones anteriormente descritas, y a leer la secuencia de bits de bloques cíclicos desde la memoria principal y la memoria de LLR principal.
Por consiguiente, se consiguen reducciones en el área de superficie del circuito y en consumo de energía eléctrica, además de posibilitar la realización de un proceso de intercalación de bits que tiene alto paralelismo. Además, ejecutando la permutación de bloques intra-cíclica, es más probable que los nodos de comprobación puedan reducir la probabilidad de que aparezcan nodos de comprobación ineficaces y que no sean usables por el receptor.
En un segundo aspecto de un método de intercalación de bits, el proceso de permutación de bloques intra-cíclica se realiza de manera que los bits en la palabra de código que están vinculados a un nodo de comprobación común de los códigos QC-LDPC se mapean cada uno a una diferente de las palabras de constelación.
También, en un segundo aspecto de un intercalador de bits, la unidad de permutación de bloques intra-cíclica realiza el proceso de permutación de bloques intra-cíclica de manera que los bits en la palabra de código que están vinculados a un nodo de comprobación común de los códigos QC-LDPC se mapean cada uno a una diferente de las palabras de constelación.
Esto asegura que los nodos de comprobación pueden reducir la probabilidad de que aparezcan nodos de comprobación ineficaces y que no sean usables por el receptor.
En un tercer aspecto de un método de intercalación de bits, al menos un caso del proceso de permutación de bloques intra-cíclica aplicado a cada uno de los bloques cíclicos es un desplazamiento cíclico realizado en al menos un subconjunto de una secuencia de bits en cada uno de los bloques cíclicos.
También, en un tercer aspecto de un intercalador de bits, al menos un caso del proceso de permutación de bloques intra-cíclica aplicado a cada uno de los bloques cíclicos es un desplazamiento cíclico realizado en al menos un subconjunto de una secuencia de bits en cada uno de los bloques cíclicos.
E12785728
08-09-2015
Por consiguiente, el desplazamiento cíclico tiene una configuración sencilla que posibilita la realización del proceso de permutación de bloques intra-cíclica.
En un cuarto aspecto de un método de intercalación de bits, una etapa de permutación de columna-fila para aplicar
5 un proceso de permutación de columna-fila a cada una de una pluralidad de secciones de Q×M/F bits, realizándose el proceso de permutación de columna-fila escribiendo los Q×MlF bits a nivel de filas en una matriz que tiene M/F filas y Q columnas, a continuación leyendo los Q×M/F bits desde la matriz a nivel de columnas.
También, en un cuarto aspecto de un intercalador de bits, una unidad de permutación de columna-fila que aplica un
10 proceso de permutación de columna-fila a cada una de la pluralidad de secciones de Q×M/F bits, realizándose el proceso de permutación de columna-fila escribiendo los Q×M/F bits a nivel de filas en una matriz que tiene M/F filas y Q columnas, a continuación leyendo los Q×M/F bits desde la matriz a nivel de columnas.
En un quinto aspecto de un método de intercalación de bits, el método de intercalación de bits comprende
15 adicionalmente una etapa de selección para seleccionar un método de permutación de bloques intra-cíclica para aplicarse a los bloques cíclicos de entre un número predeterminado de métodos de permutación de bloques intracíclica, realizándose la selección de acuerdo con los códigos QC-LDPC especificados para uso en el sistema de comunicación.
20 También, en un quinto aspecto de un intercalador de bits, el intercalador de bits del primer aspecto comprende adicionalmente una unidad de selección que selecciona un método de permutación de bloques intra-cíclica para aplicarse a los bloques cíclicos de entre un número predeterminado de métodos de permutación de bloques intracíclica, realizándose la selección de acuerdo con los códigos QC-LDPC especificados para uso en el sistema de comunicación.
25 Por consiguiente, el método de permutación de bloques intra-cíclica definido de acuerdo con la PCM se especifica deliberadamente y es usable para codificación.
En un aspecto adicional, un método de desintercalación de bits para un flujo de bits en un sistema de comunicación
30 que usa códigos QC-LDPC comprende: una etapa de recepción para recibir una secuencia de bits compuesta de N×Q bits; y una etapa de permutación de bits inversa para aplicar el método de intercalación de bits del primer aspecto en un orden inverso a la secuencia de bits recibida, para restaurar una palabra de código de los códigos QC-LDPC.
35 También, en otro aspecto más, un desintercalador de bits para un flujo de bits en un sistema de comunicación que usa códigos QC-LDPC comprende una unidad de permutación de bits inversa que recibe una secuencia de bits compuesta de N×Q bits y aplica el proceso de permutación de bits aplicado mediante el intercalador de bits del primer aspecto en un orden inverso a la secuencia de bits recibida para restaurar una palabra de código de los códigos QC-LDPC.
40 En otro aspecto, un decodificador para un sistema de intercalación y demodulación de bits que usa códigos de comprobación de paridad de baja densidad cuasi cíclicos, que comprende: un desmapeador de constelación que genera una secuencia de bits flexible que indica una probabilidad de un bit correspondiente que es uno de un bit cero y un bit uno; desintercalando el desintercalador de bits del otro aspecto la secuencia de bits flexible; y un
45 decodificador de comprobación de paridad de comprobación de baja densidad que decodifica la secuencia de bits flexible desintercalada.
En un segundo aspecto, un decodificador del otro aspecto comprende adicionalmente: una unidad de resta que calcula una diferencia entre la entrada y salida del decodificador de comprobación de paridad de baja densidad; y el
50 intercalador de bits del primer aspecto, que proporciona la diferencia al desmapeador de constelación como realimentación.
Por consiguiente, es realizable un proceso de intercalación de bits que tiene alto paralelismo.
55 [Aplicabilidad industrial]
La presente invención es aplicable a un intercalador de bits en un sistema de codificación y modulación de bits intercalados usado para códigos de paridad de baja densidad cuasi cíclicos, y a un desintercalador de bits que corresponde a un intercalador de bits de este tipo.
60
[Lista de signos de referencia]
2000A intercalador de bits 2010A permutador de bits
65 2021A permutador de sección de repliegue
E12785728
08-09-2015
- 2131A, 2132A
- permutador de columna-fila
- 2500A
- transmisor
- 2510
- codificador de LDPC
- 2520A
- intercalador de bits
- 5
- 2530 mapeador de constelación
- 2700A, 2800A
- receptor
- 2710
- desmapeador de constelación
- 2720A
- desintercalador de bits
- 2730
- decodificador de LDPC
- 10
- 2740 restador
- 2750A
- intercalador de bits
- 5410
- permutador de bloques intra-cíclico
Claims (6)
- 5101520253035404550556065REIVINDICACIONES
- 1.
- Un método de intercalación de bits para intercalar una palabra de código generada mediante una codificación de comprobación de paridad de baja densidad cuasi cíclica, QC LDPC, que emplea Q × Q matrices circulantes, incluyendo codificación QC LDPC de repetir-acumular, comprendiendo el método de intercalación de bits:
una etapa de permutación de bits para aplicar un proceso de permutación de bits a la palabra de código para redisponer bits de palabra de código, estando compuesta la palabra de código de N bloques cíclicos consistiendo cada uno en Q bits de bloques cíclicos; y una etapa de división para dividir la palabra de código, después del proceso de permutación de bits, en una pluralidad de palabras de constelación, estando compuesta cada una de las palabras de constelación de M bits, en donde F es un entero mayor de 1 y es un divisor de M y de Q, N no es un múltiplo de M/F, N’ es igual a (M/F)×floor(N/(M/F)), antes del proceso de permutación de bits, se dividen N’ bloques cíclicos entre los N bloques cíclicos en F×N’/M secciones de repliegue, consistiendo cada una de las secciones de repliegue en M/F de los bloques cíclicos, y en la etapa de permutación de bits, para cada sección de repliegue, el proceso de permutación de bits se aplica a los Q×(M/F) bits de una sección de repliegue dada de manera que M bits, incluyendo F bits de bloques cíclicos de cada uno de los M/F bloques cíclicos diferentes, se asignan a una de las Q/F palabras de constelación asociadas a la sección de repliegue dada. -
- 2.
- El método de intercalación de bits de la reivindicación 1, en el que la etapa de permutación de bits incluye adicionalmente aplicar un proceso de redisposición a un subconjunto de, o a la totalidad de, Q×(N-N’) bits de bloques cíclicos, entre los Q×N bits de los N bloques cíclicos, que se excluyen de las secciones de repliegue.
-
- 3.
- El método de intercalación de bits de la reivindicación 1, en el que no se aplica un proceso de redisposición a Q×(N-N’) bits de bloques cíclicos, entre los Q×N bits de los N bloques cíclicos, que se excluyen de las secciones de repliegue.
-
- 4.
- Un intercalador de bits (2000B) J para intercalar una palabra de código generada mediante codificación de comprobación de paridad de baja densidad cuasi cíclica, QC LDPC, que emplea Q × Q matrices circulantes, incluyendo codificación QC LDPC de repetir-acumular, comprendiendo el intercalador de bits:
una permutación de bits (2010A) para aplicar un proceso de permutación de bits a la palabra de código, para redisponer bits de la palabra de código, estando compuesta la palabra de código de N bloques cíclicos consistiendo cada uno en Q bits de bloques cíclicos, y emitir la palabra de código, después del proceso de permutación de bits, para división en una pluralidad de palabras de constelación, estando compuesta cada una de las palabras de constelación de M bits, en donde F es un entero mayor de 1, y es un divisor de M y de Q, N no es un múltiplo de M/F, N’ es igual a (M/F)×floor(N/(M/F)), antes del proceso de permutación de bits, N’ bloques cíclicos entre los N bloques cíclicos se dividen en F×N’/M secciones de repliegue, incluyendo cada una de las secciones de repliegue M/F de los bloques cíclicos, y el proceso de permutación de bits se aplica, para cada sección de repliegue, a los Q×(M/F) bits de una sección de repliegue dada de manera que M bits, incluyendo F bits de bloques cíclicos de cada uno de los M/F bloques cíclicos diferentes, se asignan a una de las Q/F palabras de constelación asociadas a la sección de repliegue dada. -
- 5.
- Un método para recibir una palabra de código generada mediante codificación de comprobación de paridad de baja densidad cuasi cíclica, QC LDPC, que emplea Q × Q matrices circulantes, incluyendo codificación QC LDPC de repetir-acumular, estando compuesta la palabra de código de N bloques cíclicos consistiendo cada uno en Q bits de bloques cíclicos, comprendiendo dicho método:
una etapa de demodulación para generar una señal demodulada demodulando una señal transmitida modulando M bits asignados a cada una de una pluralidad de palabras de constelación usando el método de intercalación de bits de la reivindicación 1; y una etapa de decodificación para realizar, en la señal demodulada, un proceso de inversión que cancela la permutación de bits de la reivindicación 1 y realizar un proceso de decodificación de LDPC, generando por lo tanto datos originales de acuerdo con la codificación QC LDPC. -
- 6.
- Un aparato para recibir (2700A, 2800A) una palabra de código generada mediante codificación de comprobación de paridad de baja densidad cuasi cíclica, QC LDPC, que emplea Q × Q matrices circulantes, incluyendo codificación QC LDPC de repetir-acumular, estando compuesta la palabra de código de N bloques cíclicos consistiendo cada uno
31en Q bits de bloques cíclicos, comprendiendo dicho aparato:una unidad de demodulación (2710) para generar una señal demodulada demodulando una señal transmitida modulando M bits asignados a cada una de una pluralidad de palabras de constelación usando el intercalador de bits de la reivindicación 4; y una unidad de decodificación (2720, 2730A, 2740) para realizar, en la señal demodulada, un proceso de inversión que cancela la permutación de bits del intercalador de bits de la reivindicación 4, y realizar un proceso de decodificación de LDPC, generando por lo tanto datos originales de acuerdo con la codificación QC LDPC.32
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11004125 | 2011-05-18 | ||
EP11004125A EP2525496A1 (en) | 2011-05-18 | 2011-05-18 | Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes |
PCT/JP2012/003272 WO2012157286A1 (ja) | 2011-05-18 | 2012-05-18 | 並列ビットインターリーバ |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2546912T3 true ES2546912T3 (es) | 2015-09-29 |
Family
ID=44720328
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES12785728.2T Active ES2546912T3 (es) | 2011-05-18 | 2012-05-18 | Intercalador de bits para un sistema de BICM con códigos QC LDPC |
ES15172086T Active ES2728100T3 (es) | 2011-05-18 | 2012-05-18 | Intercalador de bits para un sistema de BICM con códigos QC LDPC |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES15172086T Active ES2728100T3 (es) | 2011-05-18 | 2012-05-18 | Intercalador de bits para un sistema de BICM con códigos QC LDPC |
Country Status (9)
Country | Link |
---|---|
US (9) | US20140129895A1 (es) |
EP (4) | EP2525496A1 (es) |
JP (8) | JP5719929B2 (es) |
CN (5) | CN107733567B (es) |
ES (2) | ES2546912T3 (es) |
HU (1) | HUE025354T2 (es) |
PL (1) | PL2566054T3 (es) |
TW (5) | TWI575885B (es) |
WO (1) | WO2012157286A1 (es) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102010039477A1 (de) * | 2010-08-18 | 2012-02-23 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Bestimmung einer Hubhöhe einer Arbeitsmaschine |
US9362955B2 (en) * | 2010-09-10 | 2016-06-07 | Trellis Phase Communications, Lp | Encoding and decoding using constrained interleaving |
US9240808B2 (en) * | 2010-09-10 | 2016-01-19 | Trellis Phase Communications, Lp | Methods, apparatus, and systems for coding with constrained interleaving |
EP2525496A1 (en) * | 2011-05-18 | 2012-11-21 | Panasonic Corporation | Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes |
EP2525495A1 (en) | 2011-05-18 | 2012-11-21 | Panasonic Corporation | Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes |
EP2525497A1 (en) | 2011-05-18 | 2012-11-21 | Panasonic Corporation | Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes |
EP2525498A1 (en) * | 2011-05-18 | 2012-11-21 | Panasonic Corporation | Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes |
EP2552043A1 (en) * | 2011-07-25 | 2013-01-30 | Panasonic Corporation | Spatial multiplexing for bit-interleaved coding and modulation with quasi-cyclic LDPC codes |
EP2560311A1 (en) * | 2011-08-17 | 2013-02-20 | Panasonic Corporation | Cyclic-block permutations for spatial multiplexing with quasi-cyclic LDPC codes |
US9094125B2 (en) * | 2012-05-24 | 2015-07-28 | Nec Laboratories America, Inc. | Multidimensional coded-modulation for high-speed optical transport over few-mode fibers |
US9619317B1 (en) * | 2012-12-18 | 2017-04-11 | Western Digital Technologies, Inc. | Decoder having early decoding termination detection |
GB2509073B (en) * | 2012-12-19 | 2015-05-20 | Broadcom Corp | Methods and apparatus for error coding |
US9608851B2 (en) | 2013-03-15 | 2017-03-28 | Jonathan Kanter | Turbo decoding techniques |
US9191246B2 (en) * | 2013-03-15 | 2015-11-17 | Jonathan Kanter | Combined turbo decoding and turbo equalization techniques |
KR102046343B1 (ko) * | 2013-04-18 | 2019-11-19 | 삼성전자주식회사 | 디지털 영상 방송 시스템에서의 송신 장치 및 방법 |
US9112653B2 (en) * | 2013-06-19 | 2015-08-18 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for modulating optical signals as high-dimensional lattice constellation points to increase tolerance to noise |
KR20160074671A (ko) * | 2013-12-19 | 2016-06-28 | 엘지전자 주식회사 | 방송 전송 장치, 방송 전송 장치의 동작 방법. 방송 수신 장치 및 방송 수신 장치의 동작 방법 |
EP2890016A1 (en) * | 2013-12-30 | 2015-07-01 | Alcatel Lucent | Ldpc encoder and decoder |
US9602137B2 (en) * | 2014-02-19 | 2017-03-21 | Samsung Electronics Co., Ltd. | Transmitting apparatus and interleaving method thereof |
KR101800409B1 (ko) * | 2014-02-19 | 2017-11-23 | 삼성전자주식회사 | 송신 장치 및 그의 인터리빙 방법 |
US10425110B2 (en) | 2014-02-19 | 2019-09-24 | Samsung Electronics Co., Ltd. | Transmitting apparatus and interleaving method thereof |
KR101884257B1 (ko) * | 2014-02-20 | 2018-08-02 | 상하이 내셔널 엔지니어링 리서치 센터 오브 디지털 텔레비전 컴퍼니, 리미티드 | Ldpc 코드워드 인터리빙 매핑 방법 및 디인터리빙 디매핑 방법 |
CN105099615B (zh) * | 2014-05-22 | 2020-08-07 | 上海数字电视国家工程研究中心有限公司 | Ldpc码字的交织映射方法及解交织解映射方法 |
KR101776272B1 (ko) | 2014-03-19 | 2017-09-07 | 삼성전자주식회사 | 송신 장치 및 그의 인터리빙 방법 |
WO2015142076A1 (en) | 2014-03-19 | 2015-09-24 | Samsung Electronics Co., Ltd. | Transmitting apparatus and interleaving method thereof |
KR102159242B1 (ko) * | 2014-05-21 | 2020-09-24 | 삼성전자주식회사 | 송신 장치 및 그의 신호 처리 방법 |
US9369151B2 (en) * | 2014-09-25 | 2016-06-14 | Ali Misfer ALKATHAMI | Apparatus and method for resource allocation |
US20160204804A1 (en) | 2015-01-13 | 2016-07-14 | Sony Corporation | Data processing apparatus and method |
KR102287623B1 (ko) * | 2015-02-16 | 2021-08-10 | 한국전자통신연구원 | 길이가 64800이며, 부호율이 4/15인 ldpc 부호어 및 1024-심볼 맵핑을 위한 비트 인터리버 및 이를 이용한 비트 인터리빙 방법 |
CN111917518B (zh) * | 2015-03-02 | 2023-04-14 | 三星电子株式会社 | 发送方法 |
KR102397896B1 (ko) * | 2015-05-29 | 2022-05-13 | 삼성전자주식회사 | 수신 장치 및 그의 신호 처리 방법 |
US10484017B2 (en) * | 2015-06-01 | 2019-11-19 | Sony Corporation | Data processing apparatus, and data processing method |
CN108011691B (zh) | 2016-10-27 | 2021-04-06 | 电信科学技术研究院 | 一种低密度奇偶校验码的传输方法及装置 |
WO2018093286A1 (en) * | 2016-11-21 | 2018-05-24 | Huawei Technologies Co., Ltd. | Generation of spatially-coupled quasi-cyclic ldpc codes |
US10778366B2 (en) * | 2017-03-31 | 2020-09-15 | Qualcomm Incorporated | Techniques for rate matching and interleaving in wireless communications |
CN109474373B (zh) * | 2017-09-08 | 2021-01-29 | 华为技术有限公司 | 交织方法和交织装置 |
US11003375B2 (en) * | 2018-05-15 | 2021-05-11 | Micron Technology, Inc. | Code word format and structure |
US10831653B2 (en) | 2018-05-15 | 2020-11-10 | Micron Technology, Inc. | Forwarding code word address |
TWI685217B (zh) * | 2018-07-23 | 2020-02-11 | 朱盈宇 | 可辨封包次序更正碼 |
US10505676B1 (en) * | 2018-08-10 | 2019-12-10 | Acacia Communications, Inc. | System, method, and apparatus for interleaving data |
TWI707231B (zh) * | 2018-09-28 | 2020-10-11 | 大陸商深圳大心電子科技有限公司 | 解碼器設計方法與儲存控制器 |
CN113839738B (zh) * | 2020-06-23 | 2023-06-20 | 中国科学院上海高等研究院 | 一种跨越读取块交织处理方法及系统 |
CN112636767B (zh) * | 2020-12-03 | 2023-04-07 | 重庆邮电大学 | 一种具有单置换网络的分层半并行ldpc译码器系统 |
CN114422315B (zh) * | 2022-03-29 | 2022-07-29 | 中山大学 | 一种超高吞吐量ifft/fft调制解调方法 |
CN115425988B (zh) * | 2022-07-29 | 2024-02-09 | 北京融为科技有限公司 | 一种高速ldpc全模式列变换方法 |
Family Cites Families (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602875A (en) | 1995-01-13 | 1997-02-11 | Motorola, Inc. | Method and apparatus for encoding and decoding information in a digtial communication system |
TW324872B (en) * | 1995-01-13 | 1998-01-11 | Motorola Inc | Apparatus for encoding and decoding information in a digital communication system |
JP3963737B2 (ja) * | 2002-02-28 | 2007-08-22 | 松下電器産業株式会社 | マルチキャリア信号生成方法、無線送信装置および無線受信装置 |
CN1252935C (zh) * | 2002-12-13 | 2006-04-19 | 清华大学 | 基于低密度奇偶检验编码的信源信道联合编码方法 |
US7016690B2 (en) | 2003-02-10 | 2006-03-21 | Flarion Technologies, Inc. | Methods and apparatus for updating mobile node location information |
US8179954B2 (en) | 2007-10-30 | 2012-05-15 | Sony Corporation | Odd interleaving only of an odd-even interleaver when half or less data subcarriers are active in a digital video broadcasting (DVB) standard |
EP1463255A1 (en) * | 2003-03-25 | 2004-09-29 | Sony United Kingdom Limited | Interleaver for mapping symbols on the carriers of an OFDM system |
GB2454195A (en) * | 2007-10-30 | 2009-05-06 | Sony Corp | Address generation polynomial and permutation matrix for DVB-T2 16k OFDM sub-carrier mode interleaver |
CN100483952C (zh) * | 2003-04-02 | 2009-04-29 | 高通股份有限公司 | 块相干通信系统中的低复杂性解调方法和装置 |
US7334181B2 (en) * | 2003-09-04 | 2008-02-19 | The Directv Group, Inc. | Method and system for providing short block length low density parity check (LDPC) codes |
KR100918763B1 (ko) * | 2003-11-14 | 2009-09-24 | 삼성전자주식회사 | 병렬 연접 저밀도 패리티 검사 부호를 사용하는 채널 부호화/복호 장치 및 방법 |
JP4534128B2 (ja) * | 2004-03-05 | 2010-09-01 | ソニー株式会社 | 符号化方法および装置 |
WO2005096510A1 (en) * | 2004-04-02 | 2005-10-13 | Nortel Networks Limited | Ldpc encoders, decoders, systems and methods |
US7281192B2 (en) * | 2004-04-05 | 2007-10-09 | Broadcom Corporation | LDPC (Low Density Parity Check) coded signal decoding using parallel and simultaneous bit node and check node processing |
KR20060097503A (ko) * | 2005-03-11 | 2006-09-14 | 삼성전자주식회사 | 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널인터리빙/디인터리빙 장치 및 그 제어 방법 |
WO2006113486A1 (en) * | 2005-04-15 | 2006-10-26 | Trellisware Technologies, Inc. | Clash-free irregular-repeat-accumulate code |
KR100946884B1 (ko) * | 2005-07-15 | 2010-03-09 | 삼성전자주식회사 | 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널인터리빙/디인터리빙 장치 및 그 제어 방법 |
US7793190B1 (en) * | 2005-08-10 | 2010-09-07 | Trellisware Technologies, Inc. | Reduced clash GRA interleavers |
JP4602418B2 (ja) * | 2006-02-02 | 2010-12-22 | 三菱電機株式会社 | 検査行列生成方法、符号化方法、復号方法、通信装置、符号化器および復号器 |
CN101043483A (zh) * | 2006-03-20 | 2007-09-26 | 松下电器产业株式会社 | 一种基于低密度校验码的高阶编码调制方法 |
US7971130B2 (en) * | 2006-03-31 | 2011-06-28 | Marvell International Ltd. | Multi-level signal memory with LDPC and interleaving |
CN100589564C (zh) * | 2006-04-18 | 2010-02-10 | 华为技术有限公司 | 一种手持电视系统中的信道交织方法及系统 |
US7830957B2 (en) * | 2006-05-02 | 2010-11-09 | Qualcomm Incorporated | Parallel bit interleaver for a wireless system |
JP4856605B2 (ja) * | 2006-08-31 | 2012-01-18 | パナソニック株式会社 | 符号化方法、符号化装置、及び送信装置 |
CN1917414A (zh) * | 2006-09-01 | 2007-02-21 | 华为技术有限公司 | 移动通信中物理层第二次交织与解交织的实现方法及系统 |
US7783952B2 (en) * | 2006-09-08 | 2010-08-24 | Motorola, Inc. | Method and apparatus for decoding data |
US7934139B2 (en) * | 2006-12-01 | 2011-04-26 | Lsi Corporation | Parallel LDPC decoder |
KR101119302B1 (ko) * | 2007-04-20 | 2012-03-19 | 재단법인서울대학교산학협력재단 | 통신 시스템에서 저밀도 패리티 검사 부호 부호화 장치 및방법 |
JP4788650B2 (ja) * | 2007-04-27 | 2011-10-05 | ソニー株式会社 | Ldpc復号装置およびその復号方法、並びにプログラム |
CN101325474B (zh) * | 2007-06-12 | 2012-05-09 | 中兴通讯股份有限公司 | Ldpc码的混合自动请求重传的信道编码及调制映射方法 |
US7873897B2 (en) * | 2007-09-17 | 2011-01-18 | Industrial Technology Research Institute | Devices and methods for bit-level coding and decoding of turbo codes |
DK2056549T3 (da) * | 2007-10-30 | 2013-02-04 | Sony Corp | Databehandlingsanordning og -fremgangsmåde |
JP4583431B2 (ja) * | 2007-11-13 | 2010-11-17 | パナソニック株式会社 | 変調器及び変調方法 |
TWI538415B (zh) | 2007-11-26 | 2016-06-11 | Sony Corp | Data processing device and data processing method |
TWI410055B (zh) * | 2007-11-26 | 2013-09-21 | Sony Corp | Data processing device, data processing method and program product for performing data processing method on computer |
TWI459724B (zh) | 2007-11-26 | 2014-11-01 | Sony Corp | Data processing device and data processing method |
TWI497920B (zh) | 2007-11-26 | 2015-08-21 | Sony Corp | Data processing device and data processing method |
EP2248265B1 (en) | 2008-03-03 | 2015-05-27 | RAI RADIOTELEVISIONE ITALIANA S.p.A. | Bit permutation patterns for ldpc coded modulation and qam constellations |
WO2009116204A1 (ja) * | 2008-03-18 | 2009-09-24 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
ITTO20080472A1 (it) * | 2008-06-16 | 2009-12-17 | Rai Radiotelevisione Italiana Spa | Metodo di elaborazione di segnali digitali e sistema di trasmissione e ricezione che implementa detto metodo |
WO2010024914A1 (en) * | 2008-08-29 | 2010-03-04 | Thomson Licensing | System and method for reusing dvb-s2 ldpc codes in dvb-c2 |
KR101630442B1 (ko) * | 2008-10-03 | 2016-06-24 | 톰슨 라이센싱 | 이진 소거 서로게이트 채널을 이용하여 awgn 채널 조건 하에서 비트 인터리버를 ldpc 코드와 변조에 적용하기 위한 방법 및 장치 |
CN102349257B (zh) * | 2009-01-14 | 2015-02-25 | 汤姆森特许公司 | 设计用于多边型低密度奇偶校验编码调制的多路分用器的方法和装置 |
US8219874B2 (en) * | 2009-02-19 | 2012-07-10 | Nec Laboratories America, Inc. | Multi-dimensional LDPC coded modulation for high-speed optical transmission systems |
JP5440836B2 (ja) * | 2009-03-24 | 2014-03-12 | ソニー株式会社 | 受信装置及び方法、プログラム、並びに受信システム |
US9362955B2 (en) * | 2010-09-10 | 2016-06-07 | Trellis Phase Communications, Lp | Encoding and decoding using constrained interleaving |
CN102055485A (zh) * | 2010-12-24 | 2011-05-11 | 中国人民解放军理工大学 | 准循环低密度奇偶校验码及其修正和线性编码方法 |
US8656245B2 (en) * | 2011-04-13 | 2014-02-18 | California Institute Of Technology | Method of error floor mitigation in low-density parity-check codes |
US8743984B2 (en) * | 2011-04-18 | 2014-06-03 | Nec Laboratories America, Inc. | Multidimensional hybrid modulations for ultra-high-speed optical transport |
EP2525496A1 (en) * | 2011-05-18 | 2012-11-21 | Panasonic Corporation | Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes |
EP2525495A1 (en) * | 2011-05-18 | 2012-11-21 | Panasonic Corporation | Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes |
EP2525497A1 (en) | 2011-05-18 | 2012-11-21 | Panasonic Corporation | Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes |
US8874987B2 (en) * | 2011-10-06 | 2014-10-28 | Nec Laboratories America, Inc. | Optimum signal constellation design for high-speed optical transmission |
US8930789B1 (en) * | 2013-01-23 | 2015-01-06 | Viasat, Inc. | High-speed LDPC decoder |
US9367387B2 (en) * | 2013-01-24 | 2016-06-14 | Nec Corporation | Rate adaptive irregular QC-LDPC codes from pairwise balanced designs for ultra-high-speed optical transports |
US9184873B2 (en) * | 2013-03-18 | 2015-11-10 | Nec Laboratories America, Inc. | Ultra-high-speed optical transport based on adaptive LDPC-coded multidimensional spatial-spectral scheme and orthogonal prolate spheroidal wave functions |
KR101783619B1 (ko) * | 2013-11-29 | 2017-10-10 | 엘지전자 주식회사 | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법 및 방송 신호 수신 방법 |
US9203555B2 (en) * | 2014-02-13 | 2015-12-01 | Nec Laboratories America, Inc. | Optimum signal constellation design and mapping for few-mode fiber based LDPC-coded CO-OFDM |
EP2947836A1 (en) * | 2014-05-22 | 2015-11-25 | Panasonic Corporation | Cyclic-block permutations for 1D-4096-QAM with quasi-cyclic LDPC codes and code rates 6/15, 7/15, and 8/15 |
KR102260767B1 (ko) * | 2014-05-22 | 2021-06-07 | 한국전자통신연구원 | 길이가 16200이며, 부호율이 3/15인 ldpc 부호어 및 64-심볼 맵핑을 위한 비트 인터리버 및 이를 이용한 비트 인터리빙 방법 |
US10078540B2 (en) * | 2014-06-13 | 2018-09-18 | Cisco Technology, Inc. | Accurate and fast in-service estimation of input bit error ratio of low density parity check decoders |
KR102287614B1 (ko) * | 2015-02-12 | 2021-08-10 | 한국전자통신연구원 | 길이가 64800이며, 부호율이 2/15인 ldpc 부호어 및 16-심볼 맵핑을 위한 비트 인터리버 및 이를 이용한 비트 인터리빙 방법 |
WO2016140515A1 (en) * | 2015-03-02 | 2016-09-09 | Samsung Electronics Co., Ltd. | Transmitter and parity permutation method thereof |
US9692453B2 (en) * | 2015-05-19 | 2017-06-27 | Samsung Electronics Co., Ltd. | Transmitting apparatus and interleaving method thereof |
CN113949389A (zh) * | 2017-05-05 | 2022-01-18 | 联发科技股份有限公司 | Qc-ldpc编码方法、装置及非暂时性计算机可读介质 |
CN109391360B (zh) * | 2017-08-11 | 2022-04-12 | 中兴通讯股份有限公司 | 数据编码方法及装置 |
-
2011
- 2011-05-18 EP EP11004125A patent/EP2525496A1/en not_active Withdrawn
-
2012
- 2012-05-18 TW TW101117769A patent/TWI575885B/zh active
- 2012-05-18 ES ES12785728.2T patent/ES2546912T3/es active Active
- 2012-05-18 CN CN201710826176.6A patent/CN107733567B/zh active Active
- 2012-05-18 JP JP2013515009A patent/JP5719929B2/ja active Active
- 2012-05-18 US US14/116,632 patent/US20140129895A1/en not_active Abandoned
- 2012-05-18 TW TW107113058A patent/TWI684330B/zh active
- 2012-05-18 CN CN201710826052.8A patent/CN107707262B/zh active Active
- 2012-05-18 EP EP18185731.9A patent/EP3413469B1/en active Active
- 2012-05-18 TW TW105141436A patent/TWI625944B/zh active
- 2012-05-18 EP EP15172086.9A patent/EP2940879B1/en active Active
- 2012-05-18 CN CN201710826149.9A patent/CN107707332B/zh active Active
- 2012-05-18 TW TW108146454A patent/TWI721717B/zh active
- 2012-05-18 PL PL12785728T patent/PL2566054T3/pl unknown
- 2012-05-18 TW TW110106596A patent/TWI780603B/zh active
- 2012-05-18 WO PCT/JP2012/003272 patent/WO2012157286A1/ja active Application Filing
- 2012-05-18 EP EP12785728.2A patent/EP2566054B1/en active Active
- 2012-05-18 CN CN201280022664.7A patent/CN103636131B/zh active Active
- 2012-05-18 ES ES15172086T patent/ES2728100T3/es active Active
- 2012-05-18 CN CN201710826271.6A patent/CN107733438B/zh active Active
- 2012-05-18 HU HUE12785728A patent/HUE025354T2/en unknown
-
2015
- 2015-03-19 JP JP2015056277A patent/JP5876603B2/ja active Active
- 2015-07-21 US US14/804,466 patent/US9319072B2/en active Active
-
2016
- 2016-01-20 JP JP2016008440A patent/JP6072944B2/ja active Active
- 2016-03-15 US US15/070,290 patent/US9515681B2/en active Active
- 2016-10-27 US US15/335,501 patent/US9673838B2/en active Active
- 2016-12-28 JP JP2016256058A patent/JP6254671B2/ja active Active
-
2017
- 2017-04-28 US US15/581,148 patent/US10097210B2/en active Active
- 2017-11-15 JP JP2017219557A patent/JP6430611B2/ja active Active
-
2018
- 2018-08-30 US US16/117,625 patent/US10361726B2/en active Active
- 2018-10-29 JP JP2018202754A patent/JP6567154B2/ja active Active
-
2019
- 2019-06-11 US US16/437,307 patent/US10886946B2/en active Active
- 2019-07-29 JP JP2019138904A patent/JP6784812B2/ja active Active
-
2020
- 2020-10-23 JP JP2020177706A patent/JP6975303B2/ja active Active
- 2020-11-24 US US17/102,739 patent/US11362680B2/en active Active
-
2022
- 2022-05-09 US US17/739,465 patent/US20220263523A1/en not_active Abandoned
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2546912T3 (es) | Intercalador de bits para un sistema de BICM con códigos QC LDPC | |
JP7011014B2 (ja) | 並列ビットインターリーバ | |
US11115060B2 (en) | Parallel bit interleaver | |
ES2745550T3 (es) | Intercalador de bits para un sistema de BICM con códigos de QC-LDPC | |
EP2879295B1 (en) | Transmission method, reception method, transmitter, and receiver |