ES2697695T3 - Codificación y descodificación de un código LDPC con tasa 18/30 (3/5) de longitud 64.800 - Google Patents

Codificación y descodificación de un código LDPC con tasa 18/30 (3/5) de longitud 64.800 Download PDF

Info

Publication number
ES2697695T3
ES2697695T3 ES14748988T ES14748988T ES2697695T3 ES 2697695 T3 ES2697695 T3 ES 2697695T3 ES 14748988 T ES14748988 T ES 14748988T ES 14748988 T ES14748988 T ES 14748988T ES 2697695 T3 ES2697695 T3 ES 2697695T3
Authority
ES
Spain
Prior art keywords
column
bits
code
parity check
check matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES14748988T
Other languages
English (en)
Inventor
Yuji Shinohara
Makiko Yamamoto
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Saturn Licensing LLC
Original Assignee
Saturn Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Saturn Licensing LLC filed Critical Saturn Licensing LLC
Application granted granted Critical
Publication of ES2697695T3 publication Critical patent/ES2697695T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/033Theoretical methods to calculate these checking codes
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1177Regular LDPC codes with parity-check matrices wherein all rows and columns have the same row weight and column weight, respectively
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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/2703Coding, 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/2707Simple row-column interleaver, i.e. pure block interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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/2703Coding, 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/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, 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/2906Coding, 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 using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal 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/356Unequal error protection [UEP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes

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)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Aparato de procesamiento de datos que comprende: una unidad (115) de codificación configurada para codificar bits de información a un código comprobación de paridad de baja densidad, LDPC (Low Density Parity Check), que tiene una longitud de código de 64.800 bits y una tasa de codificación de 18/30 en base a una matriz de comprobación de paridad del código LDPC, en el que el código LDPC incluye bits de información y bits de paridad, la matriz de comprobación de paridad incluye una parte de matriz de información de dimensión MxK correspondiente a los bits de información y una parte de matriz de paridad de dimensión MxM correspondiente a los bits de paridad, y en el que K = 38.880 y M = 25.920, y dicha parte de la matriz de paridad tiene una estructura escalonada, en la que los elementos "1" están dispuestos de manera escalonada, en el que la ponderación de fila es 1 en una primera fila y 2 en las filas restantes y en el que la ponderación de columna es 1 en la última columna y 2 en las columnas restantes, la parte de la matriz de información está representada por una tabla de valores iniciales de la matriz de comprobación de paridad, y en el que la tabla de valores iniciales de la matriz de comprobación de paridad es una tabla que muestra en su i-ésima fila, 1 <= i <= 108, las posiciones de los elementos "1" en la (1+360x(i-1))-ésima columna de la parte de la matriz de información, y en el que, en base a cada (1+360x(i-1))-ésima columna, 1 <= i <= 108, las columnas (2+360x(i-1)) a (360xi) de la parte de la matriz de información se determinan desplazando hacia abajo cíclicamente la columna anterior respectiva M/360 posiciones, y es para una tasa de codificación de 18/30: 113 1557 3316 5680 6241 10407 13404 13947 14040 14353 15522 15698 16079 17363 19374 19543 20530 22833 24339 271 1361 6236 7006 7307 7333 12768 15441 15568 17923 18341 20321 21502 22023 23938 25351 25590 25876 25910 73 605 872 4008 6279 7653 10346 10799 12482 12935 13604 15909 16526 19782 20506 22804 23629 24859 225600 1445 1690 4304 4851 8919 9176 9252 13783 16076 16675 17274 18806 18882 20819 21958 22451 23869 23999 24177 1290 2337 5661 6371 8996 10102 10941 11360 12242 14918 16808 20571 23374 24046 25045 25060 25662 25783 25913 28 42 1926 3421 3503 8558 9453 10168 15820 17473 19571 19685 22790 23336 23367 23890 24061 25657 25680 0 1709 4041 4932 5968 7123 8430 9564 10596 11026 14761 19484 20762 20858 23803 24016 24795 25853 25863 29 1625 6500 6609 16831 18517 18568 18738 19387 20159 20544 21603 21941 24137 24269 24416 24803 25154 25395 55 66 871 3700 11426 13221 15001 16367 17601 18380 22796 23488 23938 25476 25635 25678 25807 25857 25872 1 19 5958 8548 8860 11489 16845 18450 18469 19496 20190 23173 25262 25566 25668 25679 25858 25888 25915 7520 7690 8855 9183 14654 16695 17121 17854 18083 18428 19633 20470 20736 21720 22335 23273 25083 25293 25403 48 58 410 1299 3786 10668 18523 18963 20864 22106 22308 23033 23107 23128 23990 24286 24409 24595 25802 12 51 3894 6539 8276 10885 11644 12777 13427 14039 15954 17078 19053 20537 22863 24521 25087 25463 25838 3509 8748 9581 11509 15884 16230 17583 19264 20900 21001 21310 22547 22756 22959 24768 24814 25594 25626 25880 21 29 69 1448 2386 4601 6626 6667 10242 13141 13852 14137 18640 19951 22449 23454 24431 25512 25814 18 53 7890 9934 10063 16728 19040 19809 20825 21522 21800 23582 24556 25031 25547 25562 25733 5 25789 25906 4096 4582 5766 5894 6517 10027 12182 13247 15207 17041 18958 20133 20503 22228 24332 24613 25689 25855 25883 0 25 819 5539 7076 7536 7695 9532 13668 15051 17683 19665 20253 21996 24136 24890 25758 25784 25807 34 40 44 4215 6076 7427 7965 8777 11017 15593 19542 22202 22973 23397 23423 24418 24873 25107 25644 1595 6216 22850 25439 1562 15172 19517 22362 7508 12879 24324 24496 6298 15819 16757 18721 11173 15175 19966 21195 59 13505 16941 23793 2267 4830 12023 20587 8827 9278 13072 16664 14419 17463 23398 25348 6112 16534 20423 22698 493 8914 21103 24799 6896 12761 13206 25873 2 1380 12322 21701 11600 21306 25753 25790 8421 13076 14271 15401 9630 14112 19017 20955 212 13932 21781 25824 5961 9110 16654 19636 58 5434 9936 12770 6575 11433 19798 2731 7338 20926 14253 18463 25404 21791 24805 25869 2 11646 15850 6075 8586 23819 18435 22093 24852 2103 2368 11704 10925 17402 18232 9062 25061 25674 18497 20853 23404 18606 19364 19551 7 1022 25543 6744 15481 25868 9081 17305 25164 8 23701 25883 9680 19955 22848 56 4564 19121 5595 15086 25892 3174 17127 23183 19397 19817 20275 12561 24571 25825 7111 9889 25865 19104 20189 21851 549 9686 25548 6586 20325 25906 3224 20710 21637 641 15215 25754 13484 23729 25818 2043 7493 24246 16860 25230 25768 22047 24200 24902 9391 18040 19499 7855 24336 25069 23834 25570 25852 1977 8800 25756 6671 21772 25859 3279 6710 24444 24099 25117 25820 5553 12306 25915 48 11107 23907 10832 11974 25773 2223 17905 25484 16782 17135 20446 475 2861 3457 16218 22449 24362 11716 22200 25897 8315 15009 22633 13 20480 25852 12352 18658 25687 3681 14794 23703 30 24531 25846 4103 22077 24107 23837 25622 25812 3627 13387 25839 908 5367 19388 0 6894 25795 20322 23546 25181 8178 25260 25437 2449 13244 22565 31 18928 22741 1312 5134 14838 6085 13937 24220 66 14633 25670 47 22512 25472 8867 24704 25279 6742 21623 22745 147 9948 24178 8522 24261 24307 19202 22406 24609.

Description

DESCRIPCIÓN
Codificación y descodificación de un código LDPC con tasa 18/30 (3/5) de longitud 64.800
Aparato de procesamiento de datos y procedimiento de procesamiento de datos
Campo técnico
La tecnología de la presente memoria se refiere a aparatos de procesamiento de datos y a procedimientos de procesamiento de datos y, más específicamente, a aparatos de procesamiento de datos y a procedimientos de procesamiento de datos que permiten la provisión, por ejemplo, de códigos LDPC que consiguen un buen rendimiento de tasa de errores.
Técnica antecedente
En los últimos años, los códigos LDPC (Low Density Parity Check, comprobación de paridad de baja densidad), que tienen una alta capacidad de corrección de errores, han sido empleados ampliamente en esquemas de transmisión, incluyendo tecnologías de difusión digital por satélite, tales como DVB (Digital Video Broadcasting, difusión de vídeo digital) - S.2, que es usado en Europa (véase, por ejemplo, la literatura no de patentes 1). Los códigos LDPC se emplean también en tecnologías de difusión digital terrestre de próxima generación, tales como DVB-T.2.
Estudios recientes han encontrado que, al igual que los códigos turbo, los códigos LDPC tienen un rendimiento más cercano al límite de Shannon para longitudes de código más grandes. Además, debido a su característica de tener distancias mínimas proporcionales a las longitudes de los códigos, los códigos LDPC tienen la característica de un alto rendimiento de probabilidad de errores de bloque, y tienen una ventaja adicional en el sentido de que no muestran prácticamente ningún fenómeno de suelo de error, que se observa en las características de decodificación de turbo códigos y similares.
A continuación, se describirán los códigos LDPC con más detalle. Los códigos LDPC son códigos lineales, y pueden ser binarios o no. La descripción siguiente se proporcionará en el contexto de los códigos LDPC binarios.
Un código LDPC tiene la llamativa característica de que está definida por una matriz de comprobación de paridad dispersa. En la presente memoria, la expresión "matriz dispersa" se refiere a una matriz que tiene un número muy pequeño de elementos 1 (o una matriz cuyos elementos son casi todos ceros).
La Fig. 1 ilustra un ejemplo de una matriz H de comprobación de paridad de un código LDPC.
En la matriz H de comprobación de paridad ilustrada en la Fig. 1, la ponderación de cada columna (ponderación de columna) (es decir, el número de 1s) es 3 y la ponderación de cada fila (ponderación de fila) es 6.
En una operación de codificación usando un código LDPC (codificación LDPC), por ejemplo, se genera una matriz G generadora en base a una matriz H de comprobación de paridad. Multiplicando la matriz G generadora por bits de información binarios, se genera una palabra de código (es decir, un código LDPC).
Específicamente, un dispositivo de codificación que realiza una codificación LDPC primero calcula una matriz G generadora, donde se establece la ecuación GHT = 0 entre la matriz traspuesta HT de la matriz H de comprobación de paridad y la matriz G generadora. Aquí, si la matriz G generadora es una matriz K * N, el dispositivo de codificación multiplica la matriz G generadora por una secuencia de bits (es decir, un vector u) de K bits de información para generar una palabra de código c (= uG) que tiene N bits. La palabra de código (o código LDPC) generada por el dispositivo de codificación es recibida en el lado del receptor a través de una ruta de comunicación determinada.
Un código LDPC puede ser decodificado usando el algoritmo de paso de mensajes, que es un algoritmo denominado decodificación probabilística propuesto por Gallager y que se basa en la propagación de creencias en un denominado gráfico de Tanner con nodos variables (a los que se hace referencia también como "nodos de mensaje") y nodos de comprobación. En adelante, en la presente memoria, se hará referencia también a los nodos variables y a los nodos de comprobación simplemente como "nodos", según sea apropiado.
La Fig. 2 ilustra un procedimiento de decodificación de código LDPC.
Cabe señalar que, en la descripción siguiente, se hace referencia también a un valor de número real que representa la probabilidad de que el i-ésimo bit de un código LDPC (es decir, una palabra de código) recibido en el lado del receptor tenga el valor "0", que se expresa en una relación de probabilidad logarítmica (es decir, una LLR (Log Likelihood Ratio, relación de probabilidad logarítmica) de recepción), como un "valor u0i de recepción", según sea apropiado. Además, una salida de mensaje desde un nodo de comprobación se representa mediante uj, y una salida de mensaje desde un nodo variable se representa mediante vi.
En un procedimiento de decodificación de código LDPC, primero, tal como se ilustra en la Fig. 2, en la etapa S11, se recibe un código LDPC, y se inicializa un mensaje uj (mensaje de nodo de comprobación) a "0". Además, una variable k de un contador para un procesamiento repetitivo, que toma un valor entero, es inicializada a "0". A continuación, el procedimiento pasa a la etapa S12. En la etapa S12, se determina un mensaje vi (mensaje de nodo variable) realizando un cálculo según la Expresión (1) (cálculo de nodo variable) en base a un valor v0i de recepción obtenido a través de la recepción del código LDPC. Un mensaje uj se determina adicionalmente realizando un cálculo según la Expresión (2) (cálculo de nodo de comprobación) en base al mensaje vi.
[Fórmula matemática 1]
dy-1
V j = u 0 i X Uj
j=1
■ ■ ( D
[Fórmula matemática 2]
dc-1
tanh
Figure imgf000003_0001
TT
Figure imgf000003_0002
i=1
• * ( 2 )
Aquí, dv y dc en las expresiones (1) y (2) son parámetros seleccionables de manera arbitraria que indican el número de 1s en la dirección vertical (columnas) y en la dirección horizontal (filas) de la matriz H de comprobación de paridad, respectivamente. Por ejemplo, para un código LDPC en una matriz H de comprobación de paridad con una ponderación de columna de 3 y una ponderación de fila de 6 (es decir, un código LDPC (3, 6)) ilustrado en la Fig. 1, dv = 3 y dc = 6.
Cabe señalar que, en cada uno de entre el cálculo de nodo variable de la Expresión (1) y el cálculo de nodo de comprobación de la Expresión (2), una entrada de mensaje desde un borde (o una línea que se conecta entre un nodo variable y un nodo de comprobación) desde el cual se emite un mensaje no es el objetivo del cálculo. De esta manera, el intervalo de cálculo es de 1 a dv - 1 o de 1 a dc - 1. Además, el cálculo del nodo de comprobación de la Expresión (2) es realizado en realidad creando por adelantado una tabla de una función R (v1, v2) según la Expresión (3), que está definida por una salida para dos entradas v1 y v2 , y usando secuencialmente (o recursivamente) la tabla de la manera indicada por la Expresión (4).
[Fórmula matemática 3]
x=2tanh“1 {tanh(vi/2) tanh(v2/2)} =R(v1, v2)
■ ■ ■ ( 3 )
[Fórmula matemática 4]
U j= R (V i, R (v2) R(V3, ” *R (Vd0-—2» Vdc- i ) ) ) )
. . . ( 4 )
En la etapa S12, además, la variable k es incrementada en "1". A continuación, el procedimiento pasa a la etapa S13. En la etapa S13, se determina si la variable k es mayor o no que un cierto número de veces de decodificación C repetitiva. Si en la etapa S13 se determina que la variable k no es mayor que C, el procedimiento vuelve a la etapa S12 y, posteriormente, se realiza repetidamente un procesamiento similar.
Si en la etapa S13 se determina que la variable k es mayor que C, el procedimiento pasa a la etapa S14. En la etapa S14, se determina un mensaje vi como un resultado de salida final de la decodificación mediante la realización del cálculo según la Expresión (5), y se emite. A continuación, el procedimiento de decodificación del código LDPC termina.
[Fórmula matemática 5]
Figure imgf000004_0001
Aquí, el cálculo de la Expresión (5) se realiza usando, a diferencia del cálculo del nodo variable de la Expresión (1), los mensajes uj desde todos los bordes conectados a un nodo variable.
La Fig. 3 ilustra un ejemplo de una matriz H de comprobación de paridad de un código LDPC (3, 6) (con una tasa de codificación de 1/2 y una longitud de código de 12).
En la matriz H de comprobación de paridad ilustrada en la Fig. 3, de manera similar a la Fig. 1, la ponderación de la columna es 3 y la ponderación de la fila es 6.
La Fig. 4 ilustra un gráfico de Tanner de la matriz H de comprobación de paridad ilustrada en la Fig. 3.
Aquí, en la Fig. 4, un nodo de comprobación está representado por un signo más "+", y un nodo variable está representado por un signo de igualdad "=". Un nodo de comprobación y un nodo variable corresponden a cada fila y columna de la matriz H de comprobación de paridad, respectivamente. Una conexión entre un nodo de comprobación y un nodo variable es un borde y corresponde a un elemento "1" en la matriz de comprobación de paridad.
Más específicamente, en un caso en el que el elemento en la j-ésima fila y la i-ésima columna de la matriz de comprobación de paridad es 1, en la Fig. 4, el i-ésimo nodo variable (nodo "=") desde arriba y el j-ésimo nodo de comprobación (nodo "+") desde arriba están conectados por un borde. Un borde indica que un bit de código correspondiente a un nodo variable tiene una restricción correspondiente a un nodo de comprobación.
En el algoritmo de producto suma, que es un procedimiento de decodificación de código LDPC, el cálculo del nodo variable y el cálculo del nodo de comprobación se realizan repetidamente.
La Fig. 5 ilustra el cálculo del nodo variable a ser realizado en un nodo variable.
En un nodo variable, un mensaje vi correspondiente a un borde para el cual debe realizarse un cálculo es determinado mediante el cálculo del nodo variable de la Expresión (1) usando los mensajes ui y u2 desde los bordes restantes conectados al nodo variable y usando también un valor u0i de recepción. Los mensajes correspondientes a los otros bordes se determinan también de manera similar.
La Fig. 6 ilustra el cálculo del nodo de comprobación a ser realizado en un nodo de comprobación.
Aquí, el cálculo del nodo de comprobación de la Expresión (2) puede reescribirse como la Expresión (6) usando la relación de la ecuación a x b = exp{ln(|a|) ln(|b|)} x sign (a) x sign (b), en la que sign (x) es 1 para x > 0 y -1 para x <0.
[Fórmula matemática 6]
Figure imgf000004_0002
dc- i dc- i
:2tanh~ expi - I - In tanh TT sign(Vi)
i — 1
Figure imgf000004_0003
i =1
■ ■ ( 6 )
Si la función ^ (x) se define como la ecuación ^ (x) = ln(tanh(x/2)) para x > 0, se establece la ecuación ^ -1(x) = 2tanh-1(e-x). De esta manera, la Expresión (6) puede transformarse en la Expresión (7).
[Fórmula matemática 7]
Figure imgf000005_0001
sign(Vi)
• ■ • ( 7 )
En un nodo de comprobación, el cálculo nodo de comprobación de la Expresión (2) se realiza según la Expresión (7).
Más específicamente, en un nodo de comprobación, tal como se ilustra en la Fig. 6, un mensaje uj que corresponde a un borde para el cual debe realizarse el cálculo se determina mediante el cálculo del nodo de comprobación de la Expresión (7) usando los mensajes v1 , v2 , v3 , v4 y v5 a desde los bordes restantes conectados al nodo de comprobación. Los mensajes correspondientes a los otros bordes se determinan también de una manera similar.
Cabe señalar que la función ^(x) en la Expresión (7) puede representarse con la ecuación ^(x) = ln((ex 1)/(ex - 1)), donde ^(x) = ^ -1(x) para x > 0. Las funciones ^ (x) y ^ -1(x) pueden implementarse en hardware usando una LUT (Look Up Table, tabla de consulta), donde la misma LUT es usada para ambas funciones.
Lista de citas
Literatura no de patentes
NPL 1: DVB-S.2: ETSI EN 302307 V1.2.1 (2009-08)
Sumario de la invención
Problema técnico
En los estándares que emplean códigos LDPC, tales como DVB-S.2, DVB-T.2 y DVB-C.2, un código LDPC es mapeado a símbolos (o es simbolizado) de modulación ortogonal (modulación digital) tal como QPSK (Quadrature Phase Shift Keying, modulación por desfase de fase en cuadratura). Los símbolos son mapeados a puntos de constelación y son transmitidos.
Mientras, recientemente ha existido una demanda de transmisión eficiente de una gran cantidad de datos, tal como una imagen tridimensional (3D) o una imagen 4k. Una imagen 4k tiene una resolución de 3.840 píxeles horizontalmente y 2.160 píxeles verticalmente, proporcionando aproximadamente cuatro veces la resolución de píxeles de alta definición completa.
Sin embargo, la priorización de la eficiencia de la transmisión de datos aumentaría la tasa de errores.
Por el contrario, puede existir también una demanda de que la eficiencia de la transmisión de datos pueda ser sacrificada en cierta medida por una transmisión de datos con un buen rendimiento de tasa de errores.
En el futuro, se espera que las demandas de transmisión de datos con varios niveles de eficiencia aumenten. Por ejemplo, una pluralidad de códigos LDPC que tienen tasas de codificación diferentes permiten una transmisión de datos con varios niveles de eficiencia.
En la transmisión de datos, por lo tanto, es deseable que se empleen códigos LDPC que tengan tasas de codificación que se establezcan fácilmente a un número en cierta medida grande de tasas de codificación, cuyo número, por ejemplo, es mayor que o igual al número de tasas de codificación demandas para la transmisión de datos.
También es deseable que los códigos LDPC tengan alta resistencia a errores (es decir, alta robustez), es decir, un buen rendimiento de tasa de errores, independientemente de la tasa de codificación del código LDPC a emplear.
El documento EP 2214319 A1 describe un aparato de procesamiento de datos y un procedimiento de procesamiento de datos que pueden mejorar la tolerancia a los errores de los bits de código de un código LDPC, tales como errores de ráfaga o de borrado. En los que un símbolo se forma a partir de dos o más bits de código de un código LDPC, un intercalador de torsión de columna realiza un procedimiento de reorganización para reorganizar los bits de código del código LDPC, de manera que una pluralidad de bits de código correspondientes al valor incluido en una fila arbitraria de una matriz de comprobación de paridad no sean mapeados a un símbolo.
El documento "Digital Video Broadcasting (DVB); Frame structure Channel coding and modulation for a second generation digital terrestrial television broadcasting System (DVB-T2)", EUROPEAN STANDARD, EUROPEAN TELECOMMUNICATIONS STANDARDS INSTITUTE (ETSI), 650, ROUTE DES LUCIOLES; F-06921 SOPHIA ANTIPOLIS; FRANCE, vol. BROADCAS, no. V1.3.1, 1 de Abril de 2012 describe un sistema de transmisión de línea base de segunda generación para la difusión de televisión digital terrestre. Especifica el sistema de codificación/modulación de canal destinado para servicios de televisión digital y flujos de datos genéricos.
La tecnología actual se ha desarrollado teniendo en cuenta la situación anterior y está destinada a proporcionar códigos LDPC que tengan un buen rendimiento de tasa de errores.
Solución al problema
La presente invención presenta un aparato de procesamiento de datos según se define en las reivindicaciones 1 o 2, un procedimiento de procesamiento de datos según se define en las reivindicaciones 11 o 12, un receptor de televisión según se define en la reivindicación 14 y un programa informático según se define en la reivindicación 15.
Cabe señalar que cada aparato de procesamiento de datos puede ser un aparato independiente o puede ser un bloque interno en un único aparato.
Efectos ventajosos de la invención
Según la tecnología actual, es posible proporcionar códigos LDPC que tengan un buen rendimiento de tasa de errores.
Breve descripción de los dibujos
[Fig. 1] La Fig. 1 es un diagrama que muestra una matriz H de comprobación de paridad de un código LDPC.
[Fig. 2] La Fig. 2 es un diagrama de flujo que representa un procedimiento de decodificación de un código LDPC.
[Fig. 3] La Fig. 3 es un diagrama que ilustra un ejemplo de una matriz de comprobación de paridad de un código LDPC.
[Fig. 4] La Fig. 4 es un diagrama que ilustra un gráfico de Tanner de una matriz de comprobación de paridad.
[Fig. 5] La Fig. 5 es un diagrama que ilustra un nodo variable.
[Fig. 6] La Fig. 6 es un diagrama que ilustra un nodo de comprobación.
[Fig. 7] La Fig. 7 es un diagrama que ilustra una configuración ejemplar de una realización de un sistema de transmisión al que se aplica la tecnología actual.
[Fig. 8] La Fig. 8 es un diagrama de bloques que ilustra una configuración ejemplar de un dispositivo 11 de transmisión.
[Fig. 9] La Fig. 9 es un diagrama de bloques que ilustra una configuración ejemplar de un intercalador 116 de bits.
[Fig. 10] La Fig. 10 es un diagrama que ilustra una matriz de comprobación de paridad.
[Fig. 11] La Fig. 11 es un diagrama que ilustra una matriz de paridad.
[Fig. 12] La Fig. 12 es un diagrama que muestra una matriz de comprobación de paridad de un código LDPC definido en el estándar DVB-S.2.
[Fig. 13] La Fig. 13 es un diagrama que representa una matriz de comprobación de paridad de un código LDPC definido en el estándar DVB-S.2.
[Fig. 14] La Fig. 14 incluye diagramas que ilustran una disposición de puntos de constelación de 16QAM.
M.
M.
Figure imgf000006_0001
M.
tándar DVB 5.2.
[Fig. 19] La Fig. 19 es un diagrama que ilustra una disposición de puntos de constelación definidos en el estándar DVB-5.2.
[Fig. 20] La Fig. 20 incluye diagramas que ilustran una disposición de puntos de constelación definidos en el estándar
DVB-S.2.
[Fig. 21] La Fig. 21 incluye diagramas que ilustran una disposición de puntos de constelación definidos en el estándar DVB-S.2.
[Fig. 22] La Fig. 22 incluye diagramas que representan el procesamiento de un demultiplexor 25.
[Fig. 23] La Fig. 23 incluye diagramas que representan el procesamiento del demultiplexor 25.
[Fig. 24] La Fig. 24 es un diagrama que ilustra un gráfico de Tanner para la decodificación de códigos LDPC.
[Fig. 25] La Fig. 25 incluye diagramas que ilustran una matriz HT de paridad que tiene una estructura escalonada, y un gráfico de Tanner correspondiente a la matriz Ht de paridad.
[Fig. 26] La Fig. 26 es un diagrama que ilustra un matriz Ht de paridad de una matriz H de comprobación de paridad correspondiente a un código LDPC que ha sido sometida a intercalado de paridad.
[Fig. 27] La Fig. 27 incluye diagramas que ilustran una matriz de comprobación de paridad transformada.
[Fig. 28] La Fig. 28 es un diagrama que representa el procesamiento de un intercalador 24 de torsión de columna. [Fig. 29] La Fig. 29 es un diagrama que ilustra los números de columnas de una memoria 31 que son necesarios para el intercalado de torsión de columna y las direcciones de las posiciones de inicio de escritura.
[Fig. 30] La Fig. 30 es un diagrama que ilustra los números de columnas de la memoria 31 que son necesarios para el intercalado de torsión de columna, y las direcciones de las posiciones de inicio de escritura.
[Fig. 31] La Fig. 31 es un diagrama de flujo que representa un procedimiento realizado por el intercalador 116 de bits y un codificador 117 QAM.
[Fig. 32] La Fig. 32 incluye diagramas que ilustran un modelo de una ruta de comunicación usada en simulaciones. [Fig. 33] La Fig. 33 es un diagrama que ilustra las relaciones entre las frecuencias fd Doppler de fluctuaciones y las tasas de errores obtenidas en simulaciones.
[Fig. 34] La Fig. 34 es un diagrama que ilustra las relaciones entre las frecuencias fd Doppler de fluctuaciones y las tasas de errores obtenidas en las simulaciones.
[Fig. 35] La Fig. 35 es un diagrama de bloques que ilustra una configuración ejemplar de un codificador 115 LDPC. [Fig. 36] La Fig. 36 es un diagrama de flujo que representa un procedimiento del codificador 115 LDPC.
[Fig. 37] La Fig. 37 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 1/4 y la longitud de código 16.200.
[Fig. 38] La Fig. 38 es un diagrama que muestra un procedimiento para determinar una matriz H de comprobación de paridad a partir de una tabla de valores iniciales de la matriz de comprobación de paridad.
[Fig. 39] La Fig. 39 es un diagrama que ilustra las características BER/FER de un código LDPC que tiene una longitud de código de 64.800 bits, definido en el estándar DVB-S.2.
[Fig. 40] La Fig. 40 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 2/30 y la longitud de código 64.800.
[Fig. 41] La Fig. 41 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 3/30 y la longitud de código 64.800.
[Fig. 42] La Fig. 42 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 4/30 y la longitud de código 64.800.
[Fig. 43] La Fig. 43 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 5/30 y la longitud de código 64.800.
[Fig. 44] La Fig. 44 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 6/30 y la longitud de código 64.800.
[Fig. 45] La Fig. 45 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 7/30 y la longitud de código 64.800.
[Fig. 46] La Fig. 46 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 8/30 y la longitud de código 64.800.
[Fig. 47] La Fig. 47 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 8/30 y la longitud de código 64.800.
[Fig. 48] La Fig. 48 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 9/30 y la longitud de código 64.800.
[Fig. 49] La Fig. 49 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 9/30 y la longitud de código 64.800.
[Fig. 50] La Fig. 50 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 10/30 y la longitud de código 64.800.
[Fig. 51] La Fig. 51 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 10/30 y la longitud de código 64.800.
[Fig. 52] La Fig. 52 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 11/30 y la longitud de código 64.800.
[Fig. 53] La Fig. 53 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 11/30 y la longitud de código 64.800.
[Fig. 54] La Fig. 54 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 12/30 y la longitud de código 64.800.
[Fig. 55] La Fig. 55 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 12/30 y la longitud de código 64.800.
[Fig. 56] La Fig. 56 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 13/30 y la longitud de código 64.800.
[Fig. 57] La Fig. 57 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 13/30 y la longitud de código 64.800.
[Fig. 58] La Fig. 58 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 14/30 y la longitud de código 64.800.
[Fig. 59] La Fig. 59 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 14/30 y la longitud de código 64.800.
[Fig. 60] La Fig. 60 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 15/30 y la longitud de código 64.800.
[Fig. 61] La Fig. 61 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 15/30 y la longitud de código 64.800.
[Fig. 62] La Fig. 62 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 16/30 y la longitud de código 64.800.
[Fig. 63] La Fig. 63 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 16/30 y la longitud de código 64.800.
[Fig. 64] La Fig. 64 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 16/30 y la longitud de código 64.800.
[Fig. 65] La Fig. 65 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 17/30 y la longitud de código 64.800.
[Fig. 66] La Fig. 66 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 17/30 y la longitud de código 64.800.
[Fig. 67] La Fig. 67 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 17/30 y la longitud de código 64.800.
[Fig. 68] La Fig. 68 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 18/30 y la longitud de código 64.800.
[Fig. 69] La Fig. 69 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 18/30 y la longitud de código 64.800.
[Fig. 70] La Fig. 70 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 18/30 y la longitud de código 64.800.
[Fig. 71] La Fig. 71 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 19/30 y la longitud de código 64.800.
[Fig. 72] La Fig. 72 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 19/30 y la longitud de código 64.800.
[Fig. 73] La Fig. 73 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 19/30 y la longitud de código 64.800.
[Fig. 74] La Fig. 74 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 20/30 y la longitud de código 64.800.
[Fig. 75] La Fig. 75 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 20/30 y la longitud de código 64.800.
[Fig. 76] La Fig. 76 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 20/30 y la longitud de código 64.800.
[Fig. 77] La Fig. 77 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 21/30 y la longitud de código 64.800.
[Fig. 78] La Fig. 78 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 21/30 y la longitud de código 64.800.
[Fig. 79] La Fig. 79 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 21/30 y la longitud de código 64.800.
[Fig. 80] La Fig. 80 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 22/30 y la longitud de código 64.800.
[Fig. 81] La Fig. 81 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 22/30 y la longitud de código 64.800.
[Fig. 82] La Fig. 82 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 22/30 y la longitud de código 64.800.
[Fig. 83] La Fig. 83 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 23/30 y la longitud de código 64.800.
[Fig. 84] La Fig. 84 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 23/30 y la longitud de código 64.800.
[Fig. 85] La Fig. 85 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 23/30 y la longitud de código 64.800.
[Fig. 86] La Fig. 86 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 24/30 y la longitud de código 64.800.
[Fig. 87] La Fig. 87 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 24/30 y la longitud de código 64.800.
[Fig. 88] La Fig. 88 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 24/30 y la longitud de código 64.800.
[Fig. 89] La Fig. 89 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 25/30 y la longitud de código 64.800.
[Fig. 90] La Fig. 90 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 25/30 y la longitud de código 64.800.
[Fig. 91] La Fig. 91 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 25/30 y la longitud de código 64.800.
[Fig. 92] La Fig. 92 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 26/30 y la longitud de código 64.800.
[Fig. 93] La Fig. 93 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 26/30 y la longitud de código 64.800.
[Fig. 94] La Fig. 94 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 26/30 y la longitud de código 64.800.
[Fig. 95] La Fig. 95 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 27/30 y la longitud de código 64.800.
[Fig. 96] La Fig. 96 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 27/30 y la longitud de código 64.800.
[Fig. 97] La Fig. 97 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 27/30 y la longitud de código 64.800.
[Fig. 98] La Fig. 98 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 27/30 y la longitud de código 64.800.
[Fig. 99] La Fig. 99 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 28/30 y la longitud de código 64.800.
[Fig. 100] La Fig. 100 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 28/30 y la longitud de código 64.800.
[Fig. 101] La Fig. 101 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 28/30 y la longitud de código 64.800.
[Fig. 102] La Fig. 102 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 28/30 y la longitud de código 64.800.
[Fig. 103] La Fig. 103 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 29/30 y la longitud de código 64.800.
[Fig. 104] La Fig. 104 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 29/30 y la longitud de código 64.800.
[Fig. 105] La Fig. 105 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 29/30 y la longitud de código 64.800.
[Fig. 106] La Fig. 106 es un diagrama que ilustra el ejemplo de la tabla de valores iniciales de la matriz de comprobación de paridad con la tasa de codificación 29/30 y la longitud de código 64.800.
[Fig. 107] La Fig. 107 es un diagrama que ilustra un ejemplo de un gráfico de Tanner de un conjunto definido por una secuencia de grados que indica una ponderación de columna de 3 y una ponderación de fila de 6.
[Fig. 108] La Fig. 108 es un diagrama que ilustra un ejemplo de un gráfico de Tanner de un conjunto de tipo multi-borde (“multi-edge”).
[Fig. 109] La Fig. 109 es un diagrama que ilustra las longitudes mínimas de los ciclos y los umbrales de rendimiento para las matrices de comprobación de paridad de los códigos LDPC con la longitud de código 64.800.
[Fig. 110] La Fig. 110 es un diagrama que representa una matriz de comprobación de paridad de un código LDPC con la longitud de código 64.800.
[Fig. 111] La Fig. 111 es un diagrama que representa las matrices de comprobación de paridad de los códigos LDPC con la longitud de código 64.800.
[Fig. 112] La Fig. 112 es un diagrama que ilustra los BERs/FERs simulados de códigos LDPC con la longitud de código 64.800.
[Fig. 113] La Fig. 113 es un diagrama que ilustra los BERs/FERs simulados de códigos LDPC con la longitud de código 64.800.
[Fig. 114] La Fig. 114 es un diagrama que ilustra los BERs/FERs simulados de códigos LDPC con la longitud de código 64.800.
[Fig. 115] La Fig. 115 incluye diagramas que ilustran los códigos BCH usados en las simulaciones de BERs/FERs de los códigos LDPC con la longitud de código 64.800.
[Fig. 116] La Fig. 116 es un diagrama de bloques que ilustra una configuración ejemplar de un dispositivo 12 de recepción.
[Fig. 117] La Fig. 117 es un diagrama de bloques que ilustra una configuración ejemplar de un desintercalador 165 de bits.
[Fig. 118] La Fig. 118 es un diagrama de flujo que representa un procedimiento realizado por un decodificador 164 QAM, el desintercalador 165 de bits y un decodificador 166 LDPC.
[Fig. 119] La Fig. 119 es un diagrama que ilustra un ejemplo de una matriz de comprobación de paridad de un código LDPC.
[Fig. 120] La Fig. 120 es un diagrama que ilustra una matriz (matriz de comprobación de paridad transformada) obtenida al realizar la permutación de fila y una permutación de columna en una matriz de comprobación de paridad.
[Fig. 121] La Fig. 121 es un diagrama que ilustra una matriz de comprobación de paridad transformada que está dividida en unidades 5 x 5.
[Fig. 122] La Fig. 122 es un diagrama de bloques que ilustra una configuración ejemplar de un dispositivo de decodificación que realiza colectivamente los cálculos de nodo para P nodos.
[Fig. 123] La Fig. 123 es un diagrama de bloques que ilustra una configuración ejemplar del decodificador 166 LDPC.
[Fig. 124] La Fig. 124 incluye diagramas que representan un procedimiento de un multiplexor 54 incluido en el desintercalador 165 de bits.
[Fig. 125] La Fig. 125 es un diagrama que representa el procesamiento de un desintercalador 55 de torsión de columna.
[Fig. 126] La Fig. 126 es un diagrama de bloques que ilustra otra configuración ejemplar del desintercalador 165 de bits.
[Fig. 127] La Fig. 127 es un diagrama de bloques que ilustra una primera configuración ejemplar de un sistema de recepción en el que puede usarse el dispositivo 12 de recepción.
[Fig. 128] La Fig. 128 es un diagrama de bloques que ilustra una segunda configuración ejemplar del sistema de recepción en el que puede usarse el dispositivo 12 de recepción.
[Fig. 129] La Fig. 129 es un diagrama de bloques que ilustra una tercera configuración ejemplar del sistema de recepción en el que puede usarse el dispositivo 12 de recepción.
[Fig. 130] La Fig. 130 es un diagrama de bloques que ilustra una configuración ejemplar de una realización de un ordenador al que se aplica la presente tecnología.
Descripción de las realizaciones
[Configuración ejemplar del sistema de transmisión al que se aplica la presente tecnología]
La Fig. 7 ilustra una configuración ejemplar de una realización de un sistema de transmisión (el término "sistema" se refiere a un conjunto lógico de dispositivos o aparatos, y los dispositivos o los aparatos pueden estar alojados o no en la misma carcasa) al que se aplica la presente tecnología.
Con referencia a la Fig. 7, el sistema de transmisión incluye un dispositivo 11 de transmisión y un dispositivo 12 de recepción.
El dispositivo 11 de transmisión está configurado para transmitir (o difundir) datos tales como un programa de difusión de televisión. Más específicamente, el dispositivo 11 de transmisión codifica los datos objetivo a ser transmitidos, tales como los datos de imagen y los datos de audio de un programa, en un código LDPC, y transmite el código LDPC a través de una ruta 13 de comunicación, tal como un enlace satelital, un enlace terrestre o un cable (línea cableada).
El dispositivo 12 de recepción recibe un código LDPC transmitido desde el dispositivo 11 de transmisión a través de la ruta 13 de comunicación, decodifica el código LDPC en datos objetivo y emite los datos objetivo.
Aquí, está bien establecido que un código LDPC usado en el sistema de transmisión ilustrado en la Fig. 7 exhibe un rendimiento muy alto en una ruta de comunicación AWGN (Additive White Gaussian Noise, ruido blanco gaussiano aditivo).
Sin embargo, pueden producirse errores o borrados de tipo ráfaga en la ruta 13 de comunicación. Por ejemplo, especialmente en un caso en el que la ruta 13 de comunicación es un enlace terrestre, en un sistema OFDM (multiplexación por división de frecuencia ortogonal), la potencia de un símbolo específico puede caer a cero (o puede ser borrado) según el retraso de un eco (que es una ruta distinta a la ruta principal) en un entorno multi-ruta donde una relación D/U (Desired to Undesired Ratio, relación deseada a no deseada) es de 0 dB (es decir, la potencia del eco como la potencia no deseada es igual a la potencia de la ruta principal como la potencia deseada).
Además, si la relación D/U es 0 dB, las potencias de todos los símbolos OFDM en un punto específico en el tiempo pueden caer también a cero (o borrarse) debido a una frecuencia Doppler (dopper) en una fluctuación (que es una ruta de comunicación a la que se añade un eco con una frecuencia Doppler aplicada y con un retraso de 0).
Además, pueden producirse errores de tipo ráfaga debido a una potencia inestable del dispositivo 12 de recepción o a condiciones de cableado no deseadas desde un receptor (no ilustrado) que recibe una señal desde el dispositivo 11 de transmisión, tal como una antena, en el lado del dispositivo 12 de recepción al dispositivo 12 de recepción.
En el procedimiento de decodificación de código LDPC, por otra parte, tal como se ha descrito anteriormente con referencia a la Fig. 5, el cálculo de nodo variable de la Expresión (1), que implica la adición de (los valores de recepción u0 i de) los bits de código del código LDPC, se realiza en las columnas respectivas de la matriz H de comprobación de paridad, es decir, los nodos variables correspondientes a los bits de código del código LDPC. De esta manera, un error que se produce en un bit de código usado para el cálculo del nodo variable reduciría la precisión de un mensaje determinado.
Además, en el procedimiento de decodificación del código LDPC, el cálculo del nodo de comprobación de la Expresión (7) se realiza en un nodo de comprobación, mediante el uso de mensajes determinados en los nodos variables conectados al nodo de comprobación. De esta manera, un aumento en el número de nodos de comprobación para los cuales se producen errores (incluidos borrados) simultáneamente en (los bits de código de un código LDPC correspondiente a) una pluralidad de nodos variables conectados reduciría el rendimiento de la decodificación.
Más específicamente, por ejemplo, si dos o más de los nodos variables conectados a un nodo de comprobación se convierten simultáneamente en borrados, el nodo de comprobación devuelve un mensaje con la probabilidad del valor 0 igual a la probabilidad del valor 1 para todos los nodos variables. En este caso, el nodo de comprobación que devuelve el mensaje con probabilidades iguales no contribuye al procesamiento de decodificación simple (un conjunto de cálculo de nodo variable y cálculo de nodo de comprobación), resultando en un mayor número de repeticiones de procesamiento de decodificación. De esta manera, el rendimiento de la decodificación puede deteriorarse y, además, puede aumentar el consumo de energía del dispositivo 12 de recepción que decodifica el código LDPC.
Para abordar los inconvenientes descritos anteriormente, el sistema de transmisión ilustrado en la Fig. 7 es capaz de aumentar la resistencia a los errores o borrados de tipo ráfaga mientras mantiene el rendimiento en una ruta de comunicación AWGN.
[Configuración ejemplar del dispositivo 11 de transmisión]
La Fig. 8 es un diagrama de bloques que ilustra una configuración ejemplar del dispositivo 11 de transmisión ilustrado en la Fig. 7.
En el dispositivo 11 de transmisión, una o más secuencias de entrada como datos objetivo se suministran a un elemento 111 de adaptación de modo/multiplexor.
El elemento 111 de adaptación de modo/multiplexor realiza el procesamiento, tal como la selección de modo y el multiplexado de las una o más secuencias de entrada suministradas, si es necesario, y suministra los datos resultantes a un elemento 112 rellenador (“padder”).
El elemento 112 rellenador rellena con ceros (o añade nulos) a los datos suministrados desde el elemento 111 de adaptación de modo/multiplexor, según sea necesario, y suministra los datos resultantes a un aleatorizador 113 BB.
El aleatorizador 113 BB aplica una aleatorización BB (Base-Band Scrambling, aleatorización de banda base) a los datos suministrados desde el elemento 112 rellenador, y suministra los datos resultantes a un codificador 114 BCH.
El codificador 114 BCH aplica una codificación BCH a los datos suministrados desde el aleatorizador 113 BB, y suministra los datos resultantes a un codificador 115 LDPC como datos LDPC objetivo para ser sometidos a codificación LDPC.
El codificador 115 LDPC aplica una codificación LDPC a los datos LDPC objetivo suministrados desde el codificador 114 BCH según una matriz de comprobación de paridad de un código LDPC, en el que una matriz de paridad que es una parte de los bits de paridad del código LDPC tiene una estructura escalonada, para obtener un código LDPC que tiene bits de información correspondientes a los datos LDPC objetivo. El codificador 115 LDPC emite el código LDPC.
Más específicamente, el codificador 115 LDPC realiza una codificación LDPC para codificar los datos LDPC objetivo, por ejemplo, a un código LDPC definido en un estándar determinado, tal como DVB-S.2, DVB-T.2 o DVB-C.2 (correspondiente a una matriz de comprobación de paridad) o un código LDPC predeterminado (correspondiente a una matriz de comprobación de paridad), y emite el código LDPC resultante.
Aquí, un código LDPC definido en el estándar DVB-S.2, DVB-T.2 o DVB-C.2 es un código IRA (Irregular Repeat Accumulate, acumulación irregular de repetición) y una matriz de paridad en una matriz de comprobación de paridad del código LDPC Tiene una estructura escalonada. A continuación, se describirán la matriz de paridad y la estructura escalonada. Un ejemplo del código IRA se describe, por ejemplo, en " Irregular Repeat-Accumulate Codes," H. Jin, A. Khandekar, y R. J. McEliece, en Proceedings of 2nd International Symposium on Turbo Codes and Related Topics, págs. 1-8, Sept. de 2000.
El código LDPC emitido desde el codificador 115 LDPC es suministrado a un intercalador 116 de bits.
El intercalador 116 de bits realiza un intercalado de bits, descrito a continuación, en el código LDPC suministrado desde el codificador 115 LDPC, y suministra el código LDPC que ha sido sometido a intercalado de bits a un codificador 117 QAM.
El codificador 117 QAM mapea el código LDPC suministrado desde el intercalador 116 de bits a los puntos de constelación, cada uno de los cuales representa un símbolo de modulación ortogonal en unidades de uno o más bits de código del código LDPC (o en unidades de símbolos), y realiza una modulación ortogonal (modulación multi-nivel).
Más específicamente, el codificador 117 QAM mapea el código LDPC suministrado desde el intercalador 116 de bits a los puntos de constelación definidos por el esquema de modulación en el que se basa la modulación ortogonal del código LDPC, en un plano IQ (constelación IQ) definido por un eje I que representa una componente I que está en la misma fase que la de la portadora y un eje Q que representa una componente Q ortogonal a la portadora, y realiza una modulación ortogonal.
Aquí, los ejemplos del esquema de modulación en el que se basa la modulación ortogonal realizada por el codificador 117 QAM incluyen esquemas de modulación definidos en los estándares DVB-S.2, DVB-T.2, DVB-C.2 y estándares similares, y otros esquemas de modulación, cuyos ejemplos incluyen BPSK (Binary Phase Shift Keying, modulación por desplazamiento de fase binaria), QPSK (Quadrature Phase Shift Keying, modulación por desplazamiento de fase en cuadratura), 16APSK (Amplitude Phase-Shift Keying, modulación por desplazamiento de fase en amplitud), 32APSK, 16QAM (Quadrature Amplitude Modulation, modulación de amplitud en cuadratura), 64QAM, 256QAM, 1024QAM, 4096QAM y 4PAM (Pulse Amplitud Modulation, modulación de amplitud de pulso). El establecimiento de cuál de los esquemas de modulación usa el codificador 117 QAM para realizar la modulación ortogonal se realiza de antemano, por ejemplo, mediante una operación o similar por parte de un operador del dispositivo 11 de transmisión.
Los datos obtenidos por el procesamiento del codificador 117 QAM (es decir, los símbolos asignados a los puntos de la constelación) son suministrados a un intercalador 118 de tiempo.
El intercalador 118 de tiempo realiza un intercalado de tiempo (que es un intercalado en el dominio del tiempo) sobre los datos (es decir, símbolos) suministrados desde el codificador 117 QAM en unidades de símbolos, y suministra los datos resultantes a un codificador 119 MISO/MIMO.
El codificador 119 MISO/MIMO realiza una codificación espacio-temporal sobre los datos (es decir, los símbolos) suministrados desde el intercalador 118 de tiempo, y suministra los datos resultantes a un intercalador 120 de frecuencia.
El intercalador 120 de frecuencia realiza el intercalado de frecuencia (que es un intercalado en el dominio de la frecuencia) sobre los datos (es decir, símbolos) suministrados desde el codificador 119 MISO/MIMO en unidades de símbolos, y suministra los datos resultantes a una unidad 131 generadora de tramas y de asignación de recursos.
Por otra parte, los datos de control (señalización) para el control de la transmisión, tales como la señalización BB (señalización de banda base) (cabecera BB), son suministrados a un codificador 121 BCH.
El codificador 121 BCH realiza una codificación BCH sobre los datos de control suministrados al mismo de una manera similar a la del codificador 114 BCH, y suministra los datos resultantes a un codificador 122 LDPC.
El codificador 122 LDPC realiza una codificación LDPC sobre los datos suministrados desde el codificador 121 BCH, como los datos LDPC objetivo, de una manera similar a la del codificador 115 LDPC, y suministra el código LDPC resultante a un codificador 123 QAM.
El codificador 123 QAM mapea el código LDPC suministrado desde el codificador 122 LDPC a puntos de constelación, cada uno de los cuales representa un símbolo de modulación ortogonal, en unidades de uno o más bits de código del código LDPC (es decir, en unidades de símbolos) de una manera similar a la del codificador 117 QAM, y realiza una modulación ortogonal. El codificador 123 QAM suministra los datos resultantes (es decir, los símbolos) a un intercalador 124 de frecuencia.
El intercalador 124 de frecuencia realiza un intercalado de frecuencia sobre los datos (es decir, los símbolos) suministrados desde el codificador 123 QAM en unidades de símbolos de una manera similar a la del intercalador 120 de frecuencia, y suministra los datos resultantes la unidad 131 generadora de tramas y de asignación de recursos.
La unidad 131 generadora de tramas y de asignación de recursos añade símbolos piloto en las posiciones deseadas de los datos (es decir, símbolos) suministrados desde los intercaladores de frecuencia 120 y 124, y configura una trama que incluye un cierto número de símbolos (por ejemplo, una trama PL (Physical Layer, capa física), una trama T2, una trama C2, etc.) a partir de los datos resultantes (es decir, los símbolos). La unidad 131 generadora de tramas y de asignación de recursos suministra la trama a una unidad 132 de generación OFDM.
La unidad 132 de generación OFDM genera una señal OFDM a partir de la trama suministrada desde la unidad 131 generadora de tramas y de asignación de recursos, correspondiente a la trama, y transmite la señal OFDM a través de la ruta 13 de comunicación (Fig. 7).
Cabe señalar que el dispositivo 11 de transmisión puede estar configurado de manera que no incluya algunos de los bloques ilustrados en la Fig. 8, tales como el intercalador 118 de tiempo, el codificador 119 MISO/MIMO, el intercalador 120 de frecuencia y el intercalador 124 de frecuencia.
La Fig. 9 ilustra una configuración ejemplar del intercalador 116 de bits ilustrado en la Fig. 8.
El intercalador 116 de bits es un dispositivo de procesamiento de datos para intercalar datos, e incluye un intercalador 23 de paridad, un intercalador 24 de torsión de columna y un demultiplexor 25 (DEMUX). Cabe señalar que el intercalador 116 de bits puede estar configurado de manera que no incluya uno o ambos de entre el intercalador 23 de paridad y el intercalador 24 de torsión de columna.
El intercalador 23 de paridad realiza el intercalado de paridad sobre el código LDPC suministrado desde el codificador 115 LDPC para intercalar bits de paridad del código LDPC a diferentes posiciones de bit de paridad, y suministra el código LDPC que ha sido sometido al intercalado de paridad al intercalador 24 de torsión de columna.
El intercalador 24 de torsión de columna realiza el intercalado de torsión de columna sobre el código LDPC suministrado desde el intercalador 23 de paridad, y suministra el código LDPC que ha sido sometido a intercalado de torsión de columna al demultiplexor 25.
Más específicamente, el código LDPC es transmitido después de que uno o más bits de código del código LDPC son asignados a un punto de constelación que representa un símbolo de modulación ortogonal usando el codificador 117 QAM ilustrado en la Fig. 8.
El intercalador 24 de torsión de columna realiza un procesamiento de reordenación, por ejemplo, el intercalado de torsión de columna, descrito a continuación, para reordenar los bits de código del código LDPC suministrado desde el intercalador 23 de paridad de manera que una pluralidad de bits de código del código LDPC correspondientes a 1s en una fila arbitraria de la matriz de comprobación de paridad usada en el codificador 115 LDPC no sean incluidos en un símbolo.
El demultiplexor 25 realiza un procesamiento de permutación sobre el código LDPC suministrado desde el intercalador 24 de torsión de columna para permutar las posiciones de dos o más bits de código del código LDPC a ser mapeados a símbolos, obteniendo de esta manera un código LDPC con mayor resistencia a AWGN. A continuación, el demultiplexor 25 suministra los dos o más bits de código del código LDPC, que se obtienen mediante el procesamiento de permutación, al codificador 117 QAM (Fig. 8) como un símbolo.
A continuación, la Fig. 10 ilustra la matriz H de comprobación de paridad que usa el codificador 115 LDPC ilustrado en la Fig. 8 para la codificación LDPC.
La matriz H de comprobación de paridad tiene una estructura LDGM (Low-Density Generation Matrix, matriz de generación de baja densidad), y puede ser expresada mediante la ecuación H = [Ha|Ht] (que es una matriz cuyos elementos de la izquierda son los elementos de una matriz HA de información y los elementos de la derecha son los elementos de una matriz Ht de paridad), donde la matriz Ha de información es una parte correspondiente a los bits de información y la matriz Ht de paridad es una parte correspondiente a los bits de paridad entre los bits de código del código LDPC.
Aquí, el número de bits de información y el número de bits de paridad entre los bits de código de un código LDPC (es decir, una palabra de código) están representados mediante una longitud K de información y una longitud M de paridad, respectivamente. Además, el número de bits de código de un código LDPC está representado mediante una longitud N (= K M) de código.
La longitud K de información y la longitud M de paridad de un código LDPC que tiene una cierta longitud N de código se determinan según la tasa de codificación. Además, la matriz H de comprobación de paridad es una matriz que tiene M filas y N columnas. De esta manera, la matriz Ha de información es una matriz M x K, y la matriz Ht de paridad es una matriz M x M.
La Fig. 11 ilustra una matriz Ht de paridad de una matriz H de comprobación de paridad de un código LDPC definido en los estándares DVB-S.2, DVB-T.2 y DVB-C.2.
Tal como se ilustra en la Fig. 11, la matriz Ht de paridad de la matriz H de comprobación de paridad del código LDPC definido en DVB-T.2 y en estándares similares es una matriz que tiene una estructura escalonada (es decir, una matriz bidiagonal inferior) en la que los elementos 1 están dispuestos de manera escalonada. La matriz Ht de paridad tiene una ponderación de fila de 1 para la primera fila y una ponderación de fila de 2 para todas las filas restantes. La matriz Ht de paridad tiene además una ponderación de columna de 1 para la última columna y una ponderación de columna de 2 para todas las columnas restantes.
De la manera descrita anteriormente, un código LDPC de una matriz H de comprobación de paridad que incluye una matriz Ht de paridad que tiene una estructura escalonada puede ser generado fácilmente usando la matriz H de comprobación de paridad
Más específicamente, un código LDPC (es decir, una palabra de código) está representado por un vector c de fila, y un vector de columna obtenido transponiendo el vector de fila está representado por cT En el vector c de fila, que es el código LDPC, además, una parte de bits de información está representada por un vector A de fila, y una parte de bits de paridad está representada por un vector T de fila.
En este caso, el vector c de fila puede ser expresado por la ecuación c = [A|T] (que es un vector de fila cuyos elementos de la izquierda son los elementos de un vector A de fila y los elementos de la derecha son los elementos de un vector T de fila), donde el vector A de fila corresponde a bits de información y el vector T de fila corresponde a bits de paridad.
Es necesario que la matriz H de comprobación de paridad y el vector de fila c = [A|T], que sirve como el código LDPC, satisfagan la ecuación HcT = 0. De esta manera, los valores de los elementos del vector T de fila correspondientes a los bits de paridad en el vector de fila c = [A|T] que satisfacen la ecuación HcT = 0 pueden ser determinados de manera secuencial (o sucesivamente) estableciendo los elementos en las filas respectivas del vector HcT de columna en la ecuación HcT = 0 a cero en orden, empezando desde el elemento en la primera fila, en un caso en el que la matriz Ht de paridad en la matriz H de comprobación de paridad = [Ha|Ht] tiene la estructura escalonada ilustrada en la Fig. 11.
La Fig. 12 es un diagrama que muestra una matriz H de comprobación de paridad de un código LDPC definido en el estándar DVB-T.2 y en estándares similares.
La matriz H de comprobación de paridad del código LDPC definido en el estándar DVB-T.2 y en estándares similares tiene una ponderación X de columna para KX columnas, empezando con la primera columna, una ponderación de columna de 3 para las columnas K3 posteriores, una ponderación de columna de 2 para las (M-1) columnas posteriores y una ponderación de columna de 1 para la última columna.
Aquí, la suma de columnas dada por KX+K3+M-1 1 es igual a la longitud N de código.
La Fig. 13 es un diagrama que ilustra los números de columnas KX, K3 y M y la ponderación X de columna para las tasas r de codificación respectivas de los códigos LDPC definidos en el estándar DVB-T.2 y en estándares similares.
En el estándar DVB-T.2 y en estándares similares, se definen códigos LDPC que tienen longitudes N de código de 64.800 bits y 16.200 bits.
Además, se definen 11 tasas de codificación (tasas nominales), 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9 y 9/10 para un código LDPC con una longitud N de código de 64.800 bits y se definen 10 tasas de codificación, 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6 y 8/9 para un código LDPC con una longitud N de código de 16.200 bits.
En adelante, se hará referencia también a la longitud N de código de 64.800 bits como "64k bits", y se hará referencia también a la longitud N de código de 16.200 bits como "16k bits".
Está bien establecido que un bit de código de un código LDPC correspondiente a una columna con una mayor ponderación de columna en una matriz H de comprobación de paridad tiene una tasa de errores más baja.
En una matriz H de comprobación de paridad definida en el estándar DVB-T.2 y en estándares similares ilustrados en las Figs. 12 y 13, la ponderación de la columna tiende a aumentar a medida que disminuye el número ordinal de las columnas de la matriz H de comprobación de paridad (es decir, a medida que la columna se acerca al extremo izquierdo de la matriz H de comprobación de paridad). Por consiguiente, la robustez frente a los errores (o la resistencia a los errores) tiende a aumentar a medida que disminuye el número ordinal de los bits de código de un código LDPC correspondiente a la matriz H de comprobación de paridad (es decir, el primer bit de código tiende a ser el más robusto frente a los errores), y tiende a disminuir a medida que aumenta el número ordinal de los bits de código (es decir, el último bit de código tiende a ser el menos robusto frente a los errores).
A continuación, la Fig. 14 ilustra disposiciones ejemplares de (puntos de constelación correspondientes a) 16 símbolos en un plano IQ en un caso en el que el codificador 117 QAM ilustrado en la Fig. 8 realiza una operación 16QAM.
Más específicamente, la parte A de la Fig. 14 ilustra los símbolos de DVB-T.2 16QAM.
En 16QAM, un símbolo se representa como 4 bits y se proporcionan 16 (= 24) símbolos. Además, los 16 símbolos están dispuestos en un cuadrado de 4 símbolos en la dirección I y 4 símbolos en la dirección Q, centrados en el origen del plano IQ.
Suponiendo ahora que el (i+1)-ésimo del bit desde el bit más significativo de una secuencia de bits representada por un símbolo está representado por el bit yi, entonces 4 bits representados por un símbolo 16QAM pueden ser representados por los bits y0 , y1 , y2 e y3 en orden, empezando desde el bit más significativo. En un caso en el que el esquema de modulación es 16QAM, 4 bits de código de un código LDPC están (simbolizados) a un símbolo (valores de símbolo) de 4 bits y0 a y3.
La Parte B de la Fig. 14 ilustra los límites de bit de los 4 bits (en adelante, denominados también "bits de símbolo") y0 a y3 representados por un símbolo 16QAM.
Aquí, un límite de bit de los bits yi de símbolo (en la Fig. 14, i = 0, 1, 2, 3) es un límite entre un símbolo que tiene un bit yi de símbolo de 0 y un símbolo que tiene un bit yi de símbolo de 1.
Tal como se ilustra en la parte B de la Fig. 14, para el bit y0 de símbolo más significativo de entre los 4 bits y0 a y3 de símbolo representados por el símbolo 16QAM, el único límite de bit se extiende a lo largo del eje Q en el plano IQ. Para el segundo bit y1 de símbolo (el segundo bit más significativo), el único límite de bit se extiende a lo largo del eje I en el plano IQ.
Además, se proporcionan dos límites de bit para el tercer bit y2 de símbolo, uno entre las columnas primera y segunda del cuadrado 4 * 4 de símbolos, contando desde la izquierda, y el otro entre las columnas tercera y cuarta.
Además, se proporcionan dos límites de bit para el cuarto bit y3 de símbolo, uno entre las filas primera y segunda del cuadrado 4 * 4 de símbolos, contando desde la parte superior, y el otro entre las filas tercera y cuarta.
Los bits yi de símbolos representados por símbolos son menos erróneos (es decir, menor probabilidad de error) a medida que aumenta el número de símbolos alejados desde un límite de bit, y son más erróneos (es decir, mayor probabilidad de error) a medida que aumenta el número de símbolos cercanos a un límite de bit.
Ahora, se supone que un bit menos erróneo (robusto frente a errores) se denomina "bit fuerte" y un bit más erróneo (sensible a errores) se denomina "bit débil". En los 4 bits y0 a y3 de símbolo del símbolo 16QAM, el bit y0 de símbolo más significativo y el segundo bit y1 de símbolo son bits fuertes, y el tercer bit y2 de símbolo y el cuarto bit y3 de símbolo son bits débiles.
Las Figs. 15 a 17 ilustran disposiciones ejemplares de (puntos de constelación correspondientes a) 64 símbolos en un plano IQ en un caso en el que el codificador 117 QAM ilustrado en la Fig. 8 realiza una operación 64QAM, es decir, símbolos de DVB-T.216QAM.
En 64QAM, un símbolo representa 6 bits y se proporcionan 64 (= 26) símbolos. Además, los 64 símbolos están dispuestos en un cuadrado de 8 símbolos en la dirección I y 8 símbolos en la dirección Q, centrados en el origen del plano IQ.
Los bits de símbolo de un símbolo 64QAM pueden ser representados por los bits y0 , yi, y2 , y3 , y4 e y5 en orden, empezando desde el bit más significativo. En un caso en el que el esquema de modulación es 64QAM, 6 bits de código de un código LDPC se mapean a los bits de símbolo y0 a y5 de un símbolo de 6 bits.
Aquí, la Fig. 15 ilustra los límites de bit del bit y0 de símbolo más significativo y el segundo bit y1 de símbolo de entre los bits y0 y y5 de símbolo del símbolo 64QAM, la Fig. 16 ilustra los límites de bits del tercer bit y2 de símbolo y el cuarto bit y3 de símbolo, y la Fig. 17 ilustra los límites de bit del quinto bit y4 de símbolo y el sexto bit y5 de símbolo.
Tal como se ilustra en la Fig. 15, se proporciona un límite de bit para cada uno entre el bit y0 de símbolo más significativo y el segundo bit y1 de símbolo. Además, tal como se ilustra en la Fig. 16, se proporcionan dos límites de bit para cada uno de entre el tercer bit y2 de símbolo y el cuarto bit y3 de símbolo. Tal como se ilustra en la Fig. 17, se proporcionan cuatro límites de bit para cada uno de entre el quinto bit y4 de símbolo y el sexto bit y5 de símbolo.
Por consiguiente, entre los bits y0 y y5 de símbolo del símbolo 64QAM, el bit y0 de símbolo más significativo y el segundo bit y1 de símbolo son los bits más fuertes, y el tercer bit y2 de símbolo y el cuarto bit y3 de símbolo son los segundos bits más fuertes. Entonces, el quinto bit y4 de símbolo y el sexto bit y5 de símbolo son bits débiles.
A partir de la Fig. 14 y, además, a partir de las Figs. 15 a 17, puede encontrarse que los bits de símbolo de un símbolo de modulación ortogonal tienen una tendencia a que los bits más significativos sean bits más fuertes y a que los bits menos significativos sean bits más débiles.
La Fig. 18 es un diagrama que ilustra una disposición ejemplar de (puntos de constelación correspondientes a) 4 símbolos en un plano IQ en un caso en el que se usa un enlace satelital como la ruta 13 de comunicación (Fig. 7) y el codificador 117 QAM ilustrado en la Fig.8 realiza una operación QPSK, es decir, un diagrama de, por ejemplo, símbolos DVB-S.2 QPSK.
En DVB-S.2 QPSK, cada símbolo es mapeado a uno de entre cuatro puntos de constelación en la circunferencia de un círculo que tiene un radio p de 1, centrado en el origen del plano IQ.
La Fig. 19 es un diagrama que ilustra una disposición ejemplar de 8 símbolos en un plano IQ en un caso en el que se usa un enlace satelital como la ruta 13 de comunicación (Fig. 7) y el codificador 117 QAM ilustrado en la Fig. 8 realiza una operación 8PSK, es decir, un diagrama de, por ejemplo, símbolos DVB-S.28PSK.
En DVB-S.2 8PSK, cada símbolo es mapeado a uno de entre ocho puntos de constelación en la circunferencia de un círculo que tiene un radio p de 1, centrado en el origen del plano IQ.
La Fig. 20 incluye diagramas que ilustran una disposición ejemplar de 16 símbolos en un plano IQ en un caso en el que se usa un enlace satelital como la ruta 13 de comunicación (Fig. 7) y el codificador 117 QAM ilustrado en la Fig. 8 realiza una operación 16APSK, es decir, diagramas de, por ejemplo, símbolos DVB-S.2 16APSK.
La parte A de la Fig. 20 ilustra una disposición de puntos de constelación de DVB-S.2 16APSK.
En DVB-S.2 16APSK, cada símbolo es mapeado a uno de entre 16 puntos de constelación en total, es decir, 4 puntos de constelación en la circunferencia de un círculo que tiene un radio R1 y 12 puntos de constelación en la circunferencia de un círculo que tiene un radio R2 (> R1), centrado en el origen del plano IQ.
La parte B de la Fig. 20 ilustra la relación y = R2/R1, que es la relación de los radios R2 y R1 en la disposición de los puntos de constelación de DVB-S.216APSK.
En la disposición de los puntos de constelación de DVB-S.2 16APSK, la relación y de los radios R2 y R1 difiere según la tasa de codificación.
La Fig. 21 incluye diagramas que ilustran una disposición ejemplar de 32 símbolos en un plano IQ en un caso en el que se usa un enlace satelital como la ruta 13 de comunicación (Fig. 7) y el codificador 117 QAM ilustrado en la Fig. 8 realiza una operación 32APSK, es decir, diagramas de, por ejemplo, símbolos DVB-S.232APSK.
La parte A de la Fig. 21 ilustra una disposición de puntos de constelación de DVB-S.232APSK.
En DVB-S.232APSK, cada símbolo es mapeado a uno de entre 32 puntos de constelación en total, es decir, 4 puntos de constelación en la circunferencia de un círculo que tiene un radio R1, 12 puntos de constelación en la circunferencia de un círculo que tiene un radio R2 (> R1), y 16 puntos de constelación en la circunferencia de un círculo que tiene un radio R3 (> R2 ), centrado en el origen del plano IQ.
La parte B de la Fig. 21 ilustra la relación Y1 = R2/R1, que es la relación de los radios R2 y R1, y la relación Y2 = R3/R1 que es la relación de los radios R3 y Ri, en la disposición de puntos de constelación de DVB-S.232APSK.
En la disposición de los puntos de constelación de DVB-S.232APSK, la relación Y1 de los radios R2 y R1 y la relación Y2 de los radios R3 y R1 difieren según la tasa de codificación.
Los bits de símbolo de los símbolos de los tipos de modulación ortogonal DVB-S.2 respectivos (QPSK, 8PSK, 16APSK y 32APSK) que tienen las disposiciones de los puntos de constelación ilustradas en las Figs. 18 a 21 incluyen también bits fuertes y bits débiles de manera similar a los ilustrados en las Figs. 14 a 17.
Aquí, tal como se ha descrito anteriormente con referencia a las Figs. 12 y 13, el código LDPC emitido desde el codificador 115 LDPC (Fig. 8) incluye bits de código robustos frente a los errores y bits de código sensibles a los errores.
Además, tal como se ha descrito anteriormente con referencia a las Figs. 14 a 21, los bits de símbolo de un símbolo de modulación ortogonal realizado por el codificador 117 QAM incluyen bits fuertes y bits débiles.
De esta manera, la asignación de los bits de código de un código LDPC que son sensibles a los errores a los bits de símbolo de un símbolo de modulación ortogonal que son sensibles a los errores reduciría la resistencia global frente a los errores.
Por consiguiente, se ha propuesto un intercalador que está configurado para intercalar bits de código de un código LDPC de manera que un bit de código del código LDPC que es sensible a los errores sea asignado a un bit fuerte (bit de símbolo) de un símbolo de modulación ortogonal.
El demultiplexor 25 ilustrado en la Fig. 9 es capaz de realizar el procesamiento del intercalador descrito anteriormente. La Fig. 22 incluye diagramas que representan el procesamiento del demultiplexor 25 ilustrado en la Fig. 9.
Más específicamente, la parte A de la Fig. 22 ilustra una configuración funcional ejemplar del demultiplexor 25.
El demultiplexor 25 incluye una memoria 31 y una unidad 32 de permutación.
Se suministra un código LDPC a la memoria 31 desde el codificador 115 LDPC.
La memoria 31 tiene una capacidad de almacenamiento para almacenar mb bits en su dirección de fila (horizontal) y N/(mb) bits en su dirección de columna (vertical). Los bits de código del código LDPC suministrado a la memoria 31 se escriben en la dirección de la columna y se leen en la dirección de la fila. Los bits de código leídos son suministrados a la unidad 32 de permutación.
Aquí, tal como se ha descrito anteriormente, N (= longitud K de información longitud M de paridad) representa la longitud de código del código LDPC.
Además, m representa el número de bits de código del código LDPC que son mapeados a un símbolo, y b es un cierto entero positivo y denota un múltiplo usado para obtener múltiplos enteros de m. Tal como se ha descrito anteriormente, el demultiplexor 25 mapea (o simboliza) los bits de código de un código LDPC a un símbolo, donde el b múltiple representa el número de símbolos obtenidos por el demultiplexor 25 mediante una simbolización única.
La parte A de la Fig. 22 ilustra una configuración ejemplar del demultiplexor 25 en un caso en el que el esquema de modulación es 64QAM, en el que cada símbolo es mapeado a uno de entre 64 puntos de constelación, o cualquier otro esquema de modulación adecuado. Por lo tanto, el número m de bits de código de un código LDPC a ser mapeado a un símbolo es 6.
Además, en la parte A de la Fig. 22, el múltiplo b es 1. Por lo tanto, la memoria 31 tiene una capacidad de almacenamiento de N/(6 x 1) bits en la dirección de la columna y (6 x 1 ) bits en la dirección de la fila.
Aquí, en adelante, un área de almacenamiento de la memoria 31, que tiene un bit en la dirección de la fila y que se extiende en la dirección de la columna, se denomina "columna" según sea apropiado. En la parte A de la Fig. 22, la memoria 31 incluye 6 (= 6 x 1) columnas.
El demultiplexor 25 escribe los bits de código del código LDPC en la memoria 31 (en la dirección de la columna) desde la parte superior a la parte inferior de cada columna de la memoria 31, donde la operación de escritura se mueve hacia la derecha, empezando desde la columna más a la izquierda.
Además, cuando se completa la escritura de bits de código hasta la parte inferior de la columna más a la derecha, los bits de código se leen desde la memoria 31 en la dirección de la fila, empezando desde la primera fila de todas las columnas de la memoria 31, en unidades de 6 bits (es decir, mb bits). Los bits de código leídos son suministrados a la unidad 32 de permutación.
La unidad 32 de permutación realiza un procesamiento de permutación para permutar las posiciones de los 6 bits de código suministrados desde la memoria 31, y genera los 6 bits resultantes como 6 bits y0 , y1, y2 , y3 , y4 , y5 de símbolo que representan un símbolo 64QAM.
Más específicamente, los mb bits de código (aquí, 6) son leídos desde la memoria 31 en la dirección de la fila. Si el iésimo bit desde el bit más significativo de los mb bits de código leídos desde la memoria 31 está representado por el bit bi (donde i = 0, 1,..., mb-1), los 6 bits de código leídos desde la memoria 31 en la dirección de la fila pueden ser representados por los bits b0 , b1, b2 , b3 , b4 y b5 en orden, empezando desde el bit más significativo.
En términos de las ponderaciones de columna descritos con referencia a las Figs. 12 y 13, los bits de código en la dirección del bit b0 son bits de código robustos frente a los errores, y los bits de código en la dirección del bit b5 son bits de código sensibles a los errores.
La unidad 32 de permutación está configurada para realizar el procesamiento de permutación para permutar las posiciones de los 6 bits de código b0 a b5 desde la memoria 31, de manera que los bits de código sensibles a los errores de entre los 6 bits de código b0 a b5 leídos desde la memoria 31 puedan ser asignados a bits fuertes de entre los bits y0 a y5 de símbolo que representan un símbolo 64QAM.
Aquí, muchas compañías han propuesto diversos procedimientos para permutar los 6 bits de código b0 a b5 leídos desde la memoria 31 y para asignarlos a los 6 bits de símbolo y0 a y5 que representan un símbolo 64QAM.
La parte B de la Fig. 22 ilustra un primer procedimiento de permutación, la parte C de la Fig. 22 ilustra un segundo procedimiento de permutación y la parte D de la Fig. 22 ilustra un tercer procedimiento de permutación.
En la parte B de la Fig. 22 a la parte D de la Fig. 22 (también en la Fig. 23, descrita a continuación), una línea que conecta los bits bi e y indica que el bit bi de código es asignado al bit y de símbolo del símbolo (es decir, la posición del bit bi de código es reemplazada con la del bit y de símbolo).
En el primer procedimiento de permutación ilustrado en la parte B de la Fig. 22, se propone el uso de uno de entre tres tipos de permutación. En el segundo procedimiento de permutación ilustrado en la parte C de la Fig. 22, se propone el uso de uno de entre dos tipos de permutación.
En el tercer procedimiento de permutación ilustrado en la parte D de la Fig. 22, se proponen la selección secuencial y el uso de seis tipos de permutación.
La Fig. 23 ilustra una configuración ejemplar del demultiplexor 25 en un caso en el que el esquema de modulación es 64QAM en el que cada símbolo es mapeado a uno de entre 64 puntos de constelación, o cualquier otro esquema de modulación adecuado (y, por lo tanto, el número m de bits de código de un código LDPC a ser asignados a un símbolo es 6, de manera similar al caso en la Fig. 22) y en un caso en el que el múltiplo b es 2, e ilustra también un cuarto procedimiento de permutación.
En un caso en el que el múltiplo b es 2, la memoria 31 tiene una capacidad de almacenamiento de N/(6 x 2) bits en la dirección de columna y de (6 x 2) bits en la dirección de la fila, e incluye 12 (= 6 x 2) columnas.
La parte A de la Fig. 23 ilustra el orden en el que los bits de código de un código LDPC se escriben en la memoria 31.
Tal como se ha descrito con referencia a la Fig. 22, el demultiplexor 25 escribe los bits de código del código LDPC a la memoria 31 (en la dirección de columna) desde la parte superior a la parte inferior de cada columna de la memoria 31, donde la operación de escritura se mueve hacia la derecha, empezando desde la columna más a la izquierda.
Además, cuando se completa la escritura de los bits de código hasta la parte inferior de la columna más a la derecha, los bits de código son leídos desde la memoria 31 en la dirección de la fila, empezando desde la primera fila de todas las columnas de la memoria 31, en unidades de 12 bits (es decir, mb bits). Los bits de código leídos son suministrados a la unidad 32 de permutación.
La unidad 32 de permutación realiza un procesamiento de permutación para permutar las posiciones de los 12 bits de código suministrados desde la memoria 31, usando el cuarto procedimiento de permutación, y emite los 12 bits resultantes como 12 bits que representan dos símbolos de 64QAM (es decir, b símbolos), es decir, 6 bits y0 , y1, y2 , y3 , y4 y y5 de símbolo que representan un símbolo 64QAM y 6 bits y0 , y1, y2 , y3, y4 e y5 de símbolo que representan el símbolo subsiguiente.
Aquí, la parte B de la Fig. 23 ilustra un cuarto procedimiento de permutación que es un procedimiento para realizar el procesamiento de permutación por parte de la unidad 32 de permutación ilustrada en la parte A de la Fig. 23.
Cabe señalar que, en el procesamiento de permutación, en un caso en el que el múltiplo b es 2 (también en un caso en el que el múltiplo b es 3 o más), mb bits de código son asignados a mb bits de símbolo de b símbolos consecutivos. En adelante, incluyendo la Fig. 23, el (i+1)-ésimo bit desde el bit más significativo de los mb bits de símbolo de los b símbolos consecutivos es representado mediante el bit (o bit de símbolo) yi, en aras de la conveniencia de la ilustración.
El tipo de permutación óptima de los bits de código, que aumenta el rendimiento de la tasa de errores en una ruta de comunicación AWGN, depende de la tasa de codificación o de la longitud de código de un código LDPC, del esquema de modulación, etc.
[Intercalado de paridad]
A continuación, el intercalado de paridad realizado por el intercalador 23 de paridad ilustrado en la Fig. 9 se describirá con referencia a las Figs. 24 a 26.
La Fig. 24 ilustra (parte de) un gráfico de Tanner de una matriz de comprobación de paridad de un código LDPC.
Tal como se ilustra en la Fig. 24, si errores tales como borrados se producen simultáneamente en múltiples, tal como dos, (bits de código correspondientes a) nodos variables conectados a un nodo de comprobación, el nodo de comprobación devuelve un mensaje con la probabilidad del valor 0 igual a la probabilidad del valor 1 a todos los nodos variables conectados al nodo de comprobación. Por lo tanto, el rendimiento de decodificación se deteriora si una pluralidad de nodos variables conectados al mismo nodo de comprobación se convierten simultáneamente en borrados o similares.
Mientras, el código LDPC emitido desde el codificador 115 LDPC ilustrado en la Fig. 8, que se define en el estándar DVB-S.2 y en estándares similares, es un código IRA, y una matriz Ht de paridad de la matriz H de comprobación de paridad tiene una estructura escalonada, tal como se ilustra en la Fig. 11.
La Fig. 25 ilustra una matriz Ht de paridad con una estructura escalonada y un gráfico de Tanner correspondiente a la matriz Ht de paridad.
Más específicamente, la parte A de la Fig. 25 ilustra una matriz Ht de paridad que tiene una estructura escalonada, y la parte B de la Fig. 25 ilustra un gráfico de Tanner correspondiente a la matriz Ht de paridad ilustrada en la parte A de la Fig. 25.
En la matriz Ht de paridad, que tiene una estructura escalonada, los elementos 1 son adyacentes en cada fila (excepto la primera fila). De esta manera, en el gráfico de Tanner de la matriz Ht de paridad, dos nodos variables adyacentes correspondientes a dos elementos adyacentes que tienen el valor 1 en la matriz Ht de paridad están conectados al mismo nodo de comprobación.
Por consiguiente, si se producen errores simultáneamente en los bits de paridad correspondientes a dos nodos variables adyacentes tal como se ha descrito anteriormente debido a errores de tipo ráfaga, borrados, etc., un nodo de comprobación conectado a los dos nodos variables (es decir, nodos variables cuyos mensajes se determinan usando los bits de paridad) correspondientes a los dos bits de paridad erróneos devuelve un mensaje con la probabilidad del valor 0 igual a la probabilidad del valor 1 a los nodos variables conectados al nodo de comprobación. De esta manera, el rendimiento de decodificación se deteriora. A continuación, si la longitud de la ráfaga (que es el número de bits de paridad erróneos consecutivos) aumenta, el número de nodos de comprobación que devuelven el mensaje con probabilidades iguales aumenta, resultando en un deterioro adicional del rendimiento de decodificación.
Por consiguiente, el intercalador 23 de paridad (Fig. 9) realiza un intercalado de paridad sobre el código LDPC suministrado desde el codificador 115 LDPC para intercalar bits de paridad a diferentes posiciones de bit de paridad con el fin de prevenir el deterioro del rendimiento de decodificación descrito anteriormente.
La Fig. 26 ilustra una matriz Ht de paridad de una matriz H de comprobación de paridad correspondiente a un código LDPC que ha sido sometido a intercalado de paridad por el intercalador 23 de paridad ilustrado en la Fig. 9.
Aquí, la matriz HA de información de la matriz H de comprobación de paridad correspondiente al código LDPC definido en el estándar DVB-S.2 y en estándares similares, que es emitida desde el codificador 115 LDPC, tiene una estructura cíclica.
La expresión "estructura cíclica" se refiere a una estructura en la que una determinada columna coincide con otra columna desplazada cíclicamente. Los ejemplos de la estructura cíclica incluyen una estructura en la que la posición de "1" en cada fila de cada P columnas corresponde a la posición a la que la posición de la primera columna de entre las P columnas ha sido desplazada cíclicamente en una dirección de columna en un valor proporcional al valor q obtenido al dividir la longitud m de paridad. En adelante, el número P de columnas en la estructura cíclica se denominará "número de columnas unidad de la estructura cíclica", según sea apropiado.
Tal como se ha descrito con referencia a las Figs. 12 y 13, los ejemplos de los códigos LDPC definidos en el estándar DVB-S.2 y en estándares similares incluyen dos tipos de códigos LDPC que tienen longitudes N de código de 64.800 bits y de 16.200 bits. Para cualquiera de los dos tipos de códigos LDPC, el número P de columnas unidad de la estructura cíclica se define como 360, que es uno de los divisores, excluyendo el 1 y M, de la longitud M de paridad.
Además, la longitud M de paridad tiene un valor distinto al número primo representado por la ecuación M = q * P = q * 360, usando un valor q que es diferente según la tasa de codificación. Por lo tanto, de manera similar al número P de columnas unidad de la estructura cíclica, el valor q es también uno de los divisores, excluyendo el 1 y M, de la longitud M de paridad, y se obtiene dividiendo la longitud M de paridad por el número de columnas P unidad de la estructura cíclica (es decir, la longitud M de paridad es el producto de los divisores P y q de la longitud M de paridad).
Tal como se ha descrito anteriormente, el intercalador 23 de paridad realiza un intercalado de paridad sobre un código LDPC de N bits para intercalar el (K+qx+y+1 )-ésimo bit de código de entre los bits de código del código LDPC de N bits a la (K+Py+x+1)-ésima posición del bit de código, donde K denota la longitud de la información, x es un número entero mayor o igual que 0 y menor que P, e y es un número entero mayor o igual que 0 y menor que q.
El (K+qx+y+1)-ésimo bit de código y el (K+Py+x+1)-ésimo bit de código son bits de código posicionados después del (K+1)-ésimo bit de código y, por lo tanto, son bits de paridad. Por consiguiente, la posición de un bit de paridad de un código LDPC es desplazada por el intercalado de paridad.
En esta operación de intercalado de paridad, (los bits de paridad correspondientes a) los nodos variables conectados al nodo de comprobación están separados entre sí por el número P de columnas de la estructura cíclica, es decir, en el ejemplo ilustrado, 360 bits, previniendo de esta manera la ocurrencia simultánea de errores en una pluralidad de nodos variables conectados al mismo nodo de comprobación para una longitud de ráfaga menor de 360 bits. Por lo tanto, puede mejorarse la resistencia a los errores de tipo ráfaga.
Cabe señalar que el código LDPC, que ha sido sometido a un intercalado de paridad de manera que el (K+qx+y+1)-ésimo bit de código es intercalado en la posición del (K+Py+x+1)-eximo bit de código, es idéntico a un código LDPC de una matriz de comprobación de paridad (en adelante, denominada también "matriz de comprobación de paridad transformada") que se obtiene mediante una permutación de columna para reemplazar la (K+qx+y+1)-ésima columna de la matriz H de comprobación de paridad original con la (K+Py+x+1)-ésima columna.
Además, tal como se ilustra en la Fig. 26, la matriz de paridad de la matriz de comprobación de paridad transformada tiene una estructura pseudo-cíclica cuyo número de columnas unidad es P (en la Fig. 26, 360).
La expresión "estructura pseudo-cíclica", tal como se usa en la presente memoria, se refiere a una estructura en la que una parte de una matriz tiene una estructura cíclica. Una matriz de comprobación de paridad transformada producida mediante la realización de una permutación de columnas, correspondiente al intercalado de paridad, sobre una matriz de comprobación de paridad de un código LDPC definido en el estándar DVB-S.2 y en estándares similares tiene una parte de 360 filas y 360 columnas en una parte de esquina derecha de la misma (que corresponde a una matriz de desplazamiento descrita a continuación) en la que solo falta un elemento "1" (es decir, aparece un elemento "0"). En este sentido, esta estructura cíclica no es una estructura cíclica completa, denominada estructura pseudo-cíclica.
Cabe señalar que la matriz de comprobación de paridad transformada ilustrada en la Fig. 26 es una matriz obtenida realizando una permutación de filas (permutación de filas), además de la permutación de columnas correspondiente al intercalado de paridad, sobre la matriz H de comprobación de paridad original de manera que la matriz de comprobación de paridad transformada incluya las matrices componentes descritas a continuación.
[Intercalado de torsión de columna]
A continuación, el intercalado de torsión de columna como un procesamiento de reordenación realizado por el intercalador 24 de torsión de columna ilustrado en la Fig. 9 se describirá con referencia a las Figs. 27 a 30.
El dispositivo 11 de transmisión ilustrado en la Fig. 8 transmite uno o más bits de código de un código LDPC como un símbolo. Más específicamente, por ejemplo, se usa QPSK como un esquema de modulación para la transmisión de 2 bits de código como un símbolo, y se usa 16APSK o 16QAM como un esquema de modulación para la transmisión de 4 bits de código como un símbolo.
En un caso en el que deben transmitirse 2 bits de código como un símbolo, un error tal como un borrado que ocurre en un símbolo determinado puede causar que todos los bits de código del símbolo sean erróneos (o se borren).
Por consiguiente, para reducir la probabilidad de que una pluralidad de (bits de código correspondientes a) nodos variables conectados al mismo nodo de comprobación se conviertan en borrados simultáneamente para mejorar el rendimiento de la decodificación, es necesario prevenir que los nodos variables correspondientes a los bits de código de un símbolo sean conectados al mismo nodo de comprobación.
Por el contrario, en la matriz H de comprobación de paridad del código LDPC definido en el estándar DVB-S.2 y en estándares similares, que es emitido desde el codificador 115 LDPC, tal como se ha descrito anteriormente, la matriz HA de información tiene una estructura cíclica y la matriz HT de paridad tiene una estructura escalonada. Además, tal como se describe con referencia a la Fig. 26, en una matriz de comprobación de paridad transformada, que es una matriz de comprobación de paridad de un código LDPC que ha sido sometido a intercalado de paridad, la matriz de paridad tiene también una estructura cíclica (más específicamente, tal como se ha descrito anteriormente, una estructura pseudo-cíclica).
La Fig. 27 ilustra una matriz de comprobación de paridad transformada.
Más específicamente, la parte A de la Fig. 27 ilustra una matriz de comprobación de paridad transformada de una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64.800 bits y una tasa (r) de codificación de 3/4.
En la matriz de comprobación de paridad transformada ilustrada en la parte A de la Fig. 27, las posiciones de los elementos que tienen el valor 1 se indican mediante puntos ("■").
La parte B de la Fig. 27 ilustra el procesamiento que el demultiplexor 25 (Fig. 9) realiza sobre un código LDPC de la matriz de comprobación de paridad transformada ilustrada en la parte A de la Fig. 27, es decir, un código LDPC que ha sido sometido a intercalado de paridad.
En la parte B de la Fig. 27, usando un esquema de modulación para mapear cada símbolo a uno de entre 16 puntos de constelación, tal como 16APSK o 16QAM, los bits de código del código LDPC que ha sido sometido a intercalado de paridad se escriben en cuatro columnas de la memoria 31 en el demultiplexor 25 en una dirección de columna.
Los bits de código escritos en las cuatro columnas de la memoria 31 en la dirección de la columna son leídos en una dirección de fila en unidades de 4 bits y son mapeados a un símbolo.
En este caso, 4 bits B0, B1, B2 y B3 de código, que deben ser mapeados a un símbolo, pueden ser bits de código correspondientes a 1 s en una fila arbitraria de la matriz de comprobación de paridad transformada ilustrada en la parte A de la Fig. 27. En este caso, los nodos variables correspondientes a los bits B0 , B1, B2 y B3 de código están conectados al mismo nodo de comprobación.
Por consiguiente, en el caso en el que 4 bits B0, B1, B2 y B3 de código de un símbolo son bits de código correspondientes a 1 s en una fila arbitraria de la matriz de comprobación de paridad transformada, la ocurrencia de un borrado en el símbolo dificultaría la determinación de un mensaje apropiado para el mismo nodo de comprobación al que están conectados los nodos variables correspondientes a los bits B0 , B1, B2 y B3 de código, resultando en un deterioro del rendimiento de la decodificación.
También para tasas de codificación distintas de una tasa de codificación de 3/4, una pluralidad de bits de código correspondientes a una pluralidad de nodos variables conectados al mismo nodo de comprobación pueden ser mapeados a un símbolo 16APSK o 16QAM.
Por consiguiente, el intercalador 24 de torsión de columna realiza un intercalado de torsión de columna sobre el código LDPC que ha sido sometido a intercalado de paridad, que ha sido suministrado desde el intercalador 23 de paridad, para intercalar bits de código del código LDPC de manera que una pluralidad de bits de código correspondientes a 1s en una fila arbitraria de la matriz de comprobación de paridad transformada no sean incluidos en un símbolo.
La Fig. 28 es un diagrama que representa el intercalado de torsión de columna.
Más específicamente, la Fig. 28 ilustra la memoria 31 (Figs. 22 y 23) del demultiplexor 25.
Tal como se ha descrito con referencia a la Fig. 22, la memoria 31 tiene una capacidad de almacenamiento para almacenar N/(mb) bits en su dirección de columna (vertical) y mb bits en su dirección de fila (horizontal), e incluye mb columnas. Entonces, el intercalador 24 de torsión de columna realiza el intercalado de torsión de columna controlando una posición de inicio de escritura desde la cual comienza la operación de escritura cuando se escribe un bit de código de un código LDPC en la memoria 31 en la dirección de columna y se lee desde la memoria 31 en la dirección de fila.
Más específicamente, el intercalador 24 de torsión de columna cambia de manera apropiada una posición de inicio de escritura con la que empieza la escritura de un bit de código en cada una de una pluralidad de columnas, de manera que una pluralidad de bits de código leídos en la dirección de la fila, que se mapearán a un símbolo no coincide con los bits de código correspondientes a 1 s en una fila arbitraria de la matriz de comprobación de paridad transformada (es decir, el intercalador 24 de torsión de columna reordena los bits de código del código LDPC de manera que una pluralidad de bits de código correspondientes a 1s en una fila arbitraria de la matriz de comprobación de paridad no se incluyan en el mismo símbolo).
Aquí, la Fig. 28 ilustra una configuración ejemplar de la memoria 31 en un caso en el que el esquema de modulación es 16APSK o 16QAM y el múltiplo b descrito con referencia a la Fig. 22 es 1. Por consiguiente, el número m de bits de los bits de código del código LDPC que deben mapearse a un símbolo es 4, y la memoria 31 incluye 4 (= mb) columnas.
El intercalador 24 de torsión de columna (en lugar del demultiplexor 25 ilustrado en la Fig. 22) escribe los bits de código del código LDPC en la memoria 31 (en la dirección de la columna) desde la parte superior a la parte inferior de cada una de las 4 columnas de la memoria 31, donde la operación de escritura se mueve hacia la derecha, empezando desde la columna más a la izquierda.
Además, cuando se completa la escritura de los bits de código hasta la columna más a la derecha, el intercalador 24 de torsión de columna lee los bits de código desde la memoria 31 en la dirección de la fila, empezando desde la primera fila de todas las columnas de la memoria 31, en unidades de 4 bits (es decir, mb bits), y emite los bits de código leídos como un código LDPC que ha sido sometido a intercalado de torsión de columna a la unidad 32 de permutación (Figs. 22 y 23) del demultiplexor 25.
En este sentido, en el intercalador 24 de torsión de columna, si la dirección de la primera posición (o superior) de cada columna está representada por 0 y las direcciones de las posiciones respectivas en la dirección de la columna están representadas por números enteros dispuestos en orden ascendente, la posición de inicio de escritura para la columna más a la izquierda se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna (desde la izquierda) se establece a la posición en la dirección 2, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 4 y la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 7.
Cabe señalar que, después de escribir los bits de código hasta la parte inferior de la columna para la cual la posición de inicio de escritura se establece a una posición distinta de la posición en la dirección 0, el intercalador 24 de torsión de columna vuelve a la primera posición (es decir, la posición en la dirección 0), y escribe bits de código hasta la posición inmediatamente anterior a la posición de inicio de escritura. A continuación, el intercalador 24 de torsión de columna realiza la escritura en la columna subsiguiente (derecha).
La operación de intercalado de torsión de columna descrita anteriormente puede prevenir que una pluralidad de bits de código correspondientes a una pluralidad de nodos variables conectados al mismo nodo de comprobación para un código LDPC definido en el estándar DVB-T.2 y en estándares similares sean mapeados a un símbolo de 16APSK o 16QAM (es decir, sean incluidos en el mismo símbolo). Por lo tanto, el rendimiento de decodificación puede mejorarse en una ruta de comunicación con un borrado.
La Fig. 29 ilustra el número de columnas de la memoria 31 que son necesarias para el intercalado de torsión de columnas, y las direcciones de las posiciones de inicio de escritura, en asociación con cada esquema de modulación, para un código LDPC que tiene una longitud N de código de 64.800 y cada una de las 11 tasas de codificación, que se definen en el estándar DVB-T.2.
El múltiplo b es 1, y el número m de bits de un símbolo es 2 cuando, por ejemplo, se emplea QPSK como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 29, la memoria 31 tiene 2 columnas para almacenar 2 * 1 (= mb) bits en su dirección de fila, y almacena 64.800/(2 * 1) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 2 columnas de la memoria 31 se establece a la posición en la dirección 0 y la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 2.
El múltiplo b es 1 cuando, por ejemplo, se emplea uno de los tipos de permutación primero a tercero ilustrados en la Fig. 22 como el tipo de permutación del procesamiento de permutación del demultiplexor 25 (Fig. 9).
El múltiplo b es 2, y el número m de bits de un símbolo es 2 cuando, por ejemplo, se emplea QPSK como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 29, la memoria 31 tiene 4 columnas para almacenar 2 * 2 bits en su dirección de fila, y almacena 64.800/(2 * 2) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 4 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 4 y la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 7.
Cabe señalar que el múltiplo b es 2 cuando, por ejemplo, se emplea el cuarto tipo de permutación ilustrado en la Fig.
23 como el tipo de permutación del procesamiento de permutación del demultiplexor 25 (Fig. 9).
El múltiplo b es 1, y el número m de bits de un símbolo es 4 cuando, por ejemplo, se emplea 16QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 29, la memoria 31 tiene 4 columnas para almacenar 4 x 1 bits en su dirección de fila y almacena 64.800/(4 x 1 ) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 4 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 4 y la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 7.
El múltiplo b es 2, y el número m de bits de un símbolo es 4 cuando, por ejemplo, se emplea 16QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 29, la memoria 31 tiene 8 columnas para almacenar 4 x 2 bits en su dirección de fila y almacena 64.800/(4 x 2) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 8 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 4, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 4, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 5, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 7 y la posición de inicio de escritura para la octava columna se establece en la posición en la dirección 7.
El múltiplo b es 1, y el número m de bits de un símbolo es 6 cuando, por ejemplo, se emplea 64QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 29, la memoria 31 tiene 6 columnas para almacenar 6 x 1 bits en su dirección de fila y almacena 64.800/(6 x 1 ) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 6 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 5, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 9, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 10 y la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 13.
El múltiplo b es 2, y el número m de bits de un símbolo es 6 cuando, por ejemplo, se emplea 64Q esquema de modulación. En este caso, tal como se ilustra en la Fig. 29, la memoria 31 tiene 12 columnas para almacenar 6 x 2 bits en su dirección de fila y almacena 64.800/(6 x 2) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 12 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 4, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 4, la posición de inicio de escritura para la octava columna se establece a la posición en la dirección 5, la posición de inicio de escritura para la novena columna se establece a la posición en la dirección 5, la posición de inicio de escritura para la décima columna se establece a la dirección 7, la posición de inicio de escritura para la decimoprimera columna se establece a la posición en la dirección
8 y la posición de inicio de escritura para la decimosegunda columna se establece a la posición en la dirección 9.
El múltiplo b es 1, y el número m de bits de un símbolo es 8 cuando, por ejemplo, se emplea 256QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 29, la memoria 31 tiene 8 columnas para almacenar 8 x 1 bits en su dirección de fila y almacena 64.800/(8 x 1 ) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 8 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la tercera columna se establece a la dirección 2, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 4, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 4, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 5, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 7 y la posición de inicio de escritura para la octava columna se establece a la posición en la dirección 7.
El múltiplo b es 2 y el número m de bits de un símbolo es 8 cuando, por ejemplo, se emplea 256QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 29, la memoria 31 tiene 16 columnas para almacenar 8 * 2 bits en su dirección de fila, y almacena 64.800/(8 * 2) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 16 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 7, la posición de inicio de escritura para la octava columna se establece a la posición en la dirección 15, la posición de inicio de escritura para la novena columna se establece a la posición en la dirección 16, la posición de inicio de escritura para la décima columna se establece a la posición en la dirección 20, la posición de inicio de escritura para la decimoprimera columna se establece a la posición en la dirección 22, la posición de inicio de escritura para la decimosegunda columna se establece a la posición en la dirección 22, la posición de inicio de escritura para la decimotercera columna se establece a la posición en la dirección 27, la posición de inicio de escritura para la decimocuarta columna se establece a la posición en la dirección 27, la posición de inicio de escritura para la decimoquinta columna se establece a la posición en la dirección 28 y la posición de inicio de escritura para la decimosexta columna se establece a la posición en la dirección 32.
El múltiplo b es 1, y el número m de bits de un símbolo es 10 cuando, por ejemplo, se emplea 1024QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 29, la memoria 31 tiene 10 columnas para almacenar 10 * 1 bits en su dirección de fila y almacena 64.800/(10 * 1) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 10 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 6, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 8, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 11, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 13, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 15, la posición de inicio de escritura para la octava columna se establece a la posición en la dirección 17, la posición de inicio de escritura para la novena columna se establece a la posición en la dirección 18 y la posición de inicio de escritura para la décima columna se establece a la posición en la dirección 20.
El múltiplo b es 2, y el número m de bits de un símbolo es 10 cuando, por ejemplo, se emplea 1024QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 29, la memoria 31 tiene 20 columnas para almacenar 10 * 2 bits en su dirección de fila y almacena 64.800/(10 * 2) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 20 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 1, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 4, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 5, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 6, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 6, la posición de inicio de escritura para la octava columna se establece a la posición en la dirección 9, la posición de inicio de escritura para la novena columna se establece a la posición en la dirección 13, la posición de inicio de escritura para la décima columna se establece a la posición en la dirección 14, la posición de inicio de escritura para la decimoprimera columna se establece a la posición en la dirección 14, la posición de inicio de escritura para la decimosegunda columna se establece a la posición en la dirección 16, la posición de inicio de escritura para la decimotercera columna se establece a la posición en la dirección 21, la posición de inicio de escritura para la decimocuarta columna se establece a la posición en la dirección 21, la posición de inicio de escritura para la decimoquinta columna se establece a la posición en la dirección 23, la posición de inicio de escritura para la decimosexta columna se establece a la posición en la dirección 25, la posición de inicio de escritura para la decimoséptima columna se establece a la posición en la dirección 25, la posición de inicio de escritura para la decimoctava columna se establece a la posición en la dirección 26, la posición de inicio de escritura para la decimonovena columna se establece a la posición en la dirección 28 y la posición de inicio de escritura para la vigésima columna se establece a la posición en la dirección 30.
El múltiplo b es 1, y el número m de bits de un símbolo es 12 cuando, por ejemplo, se emplea 4096QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 29, la memoria 31 tiene 12 columnas para almacenar 12 * 1 bits en su dirección de fila y almacena 64.800/(12 * 1) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 12 columnas de la memoria 31 se
establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la
posición en la dirección 0, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 2, la
posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 3, la posición de inicio
de escritura para la sexta columna se establece a la posición en la dirección 4, la posición de inicio de escritura para la
séptima columna se establece a la posición en la dirección 4, la posición de inicio de escritura para la octava columna
se establece a la posición en la dirección 5, la posición de inicio de escritura para la novena columna se establece a la
posición en la dirección 5, la posición de inicio de escritura para la décima columna se establece a la posición en la dirección 7, la posición de inicio de escritura para la decimoprimera columna se establece a la posición en la dirección
8 y la posición de inicio de escritura para la decimosegunda columna se establece a la posición en la dirección 9.
El múltiplo b es 2, y el número m de bits de un símbolo es 12 cuando, por ejemplo, se emplea 4096QAM como un
esquema de modulación. En este caso, tal como se ilustra en la Fig. 29, la memoria 31 tiene 24 columnas para
almacenar 12 * 2 bits en su dirección de fila, y almacena 64.800/(12 * 2) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 24 columnas de la memoria 31 se
establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la
posición en la dirección 5, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 8, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 8, la
posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 8, la posición de inicio
de escritura para la sexta columna se establece a la posición en la dirección 8, la posición de inicio de escritura para la
séptima columna se establece a la posición en la dirección 10, la posición de inicio de escritura para la octava columna
se establece a la posición en la dirección 10, la posición de inicio de escritura para la novena columna se establece a la
posición en la dirección 10, la posición de inicio de escritura para la décima columna se establece a la posición en la
dirección 12, la posición de inicio de escritura para la decimoprimera columna se establece a la posición en la dirección
13, la posición de inicio de escritura para la decimosegunda columna se establece a la posición en la dirección 16, la
posición de inicio de escritura para la decimotercera columna se establece a la posición en la dirección 17, la posición
de inicio de escritura para la decimocuarta columna se establece a la posición en la dirección 19, la posición de inicio
de escritura para la decimoquinta columna se establece a la posición en la dirección 21, la posición de inicio de
escritura para la decimosexta columna se establece a la posición en la dirección 22, la posición de inicio de escritura
para la decimoséptima columna se establece a la posición en la dirección 23, la posición de inicio de escritura para la
decimoctava columna se establece a la posición en la dirección 26, la posición de inicio de escritura para la
decimonovena columna se establece a la posición en la dirección 37, la posición de inicio de escritura para la vigésima
columna se establece a la posición en la dirección 39, la posición de inicio de escritura para la vigésimo primera
columna se establece a la posición en la dirección 40, la posición de inicio de escritura para la vigésima segunda
columna se establece a la posición en la dirección 41, la posición de inicio de escritura para la columna vigésimo
tercera se establece a la posición en la dirección 41 y la posición de inicio de escritura para la vigésimo cuarta columna
se establece a la posición en la dirección 41.
La Fig. 30 ilustra el número de columnas de la memoria 31 que son necesarias para el intercalado de torsión de
columnas, y las direcciones de las posiciones de inicio de escritura, en asociación con cada esquema de modulación,
para un código LDPC que tiene una longitud N de código de 16.200 y cada una de las 10 tasas de codificación, que se
definen en el estándar DVB-T.2.
El múltiplo b es 1, y el número m de bits de un símbolo es 2 cuando, por ejemplo, se emplea QPSK como un esquema
de modulación. En este caso, tal como se ilustra en la Fig. 30, la memoria 31 tiene 2 columnas para almacenar 2 * 1
bits en su dirección de fila y almacena 16.200/(2 * 1) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 2 columnas de la memoria 31 se
establece a la posición en la dirección 0 y la posición de inicio de escritura para la segunda columna se establece a la
posición en la dirección 0.
El múltiplo b es 2, y el número m de bits de un símbolo es 2 cuando, por ejemplo, se emplea QPSK como un esquema
de modulación. En este caso, tal como se ilustra en la Fig. 30, la memoria 31 tiene 4 columnas para almacenar 2 * 2
bits en su dirección de fila y almacena 16.200/(2 * 2) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 4 columnas de la memoria 31 se
establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la
posición en la dirección 2, la posición de inicio de escritura para la tercera columna se establece a la posición en la
dirección 3 y la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 3.
El múltiplo b es 1, y el número m de bits de un símbolo es 4 cuando, por ejemplo, se emplea 16QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 30, la memoria 31 tiene 4 columnas para almacenar 4 * 1 bits en su dirección de fila y almacena 16.200/(4 * 1) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 4 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 3 y la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 3.
El múltiplo b es 2, y el número m de bits de un símbolo es 4 cuando, por ejemplo, se emplea 16QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 30, la memoria 31 tiene 8 columnas para almacenar 4 * 2 bits en su dirección de fila y almacena 16.200/(4 * 2) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 8 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 1, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 7, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 20, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 20 y la posición de inicio de escritura para la octava columna se establece a la posición en la dirección 21.
El múltiplo b es 1, y el número m de bits de un símbolo es 6 cuando, por ejemplo, se emplea 64QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 30, la memoria 31 tiene 6 columnas para almacenar 6 * 1 bits en su dirección de fila y almacena 16.200/(6 * 1) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 6 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 7 y la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 7.
El múltiplo b es 2, y el número m de bits de un símbolo es 6 cuando, por ejemplo, se emplea 64QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 30, la memoria 31 tiene 12 columnas para almacenar 6 * 2 bits en su dirección de fila y almacena 16.200/(6 * 2) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 12 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la octava columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la novena columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la décima columna se establece a la posición en la dirección 6, la posición de inicio de escritura para la decimoprimera columna se establece a la posición en la dirección 7 y la posición de inicio de escritura para la decimosegunda columna se establece a la posición 7.
El múltiplo b es 1, y el número m de bits de un símbolo es 8 cuando, por ejemplo, se emplea 256QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 30, la memoria 31 tiene 8 columnas para almacenar 8 * 1 bits en su dirección de fila y almacena 16.200/(8 * 1) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 8 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 1, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 7, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 20, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 20 y la posición de inicio de escritura para la octava columna se establece a la posición en la dirección 21.
El múltiplo b es 1, y el número m de bits de un símbolo es 10 cuando, por ejemplo, se emplea 1024QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig.30, la memoria 31 tiene 10 columnas para almacenar 10 * 1 bits en su dirección de fila y almacena 16.200/(10 * 1) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 10 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 1, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 4, la posición de inicio de escritura para la octava columna se establece a la posición en la dirección 4, la posición de inicio de escritura para la novena columna se establece a la posición en la dirección 5 y la posición de inicio de escritura para la décima columna se establece a la posición en la dirección 7.
El múltiplo b es 2, y el número m de bits de un símbolo es 10 cuando, por ejemplo, se emplea 1024QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 30, la memoria 31 tiene 20 columnas para almacenar 10 x 2 bits en su dirección de fila y almacena 16.200/(10 x 2) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 20 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la octava columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la novena columna se establece a la posición en la dirección 5, la posición de inicio de escritura para la décima columna se establece a la posición en la dirección 5, la posición de inicio de escritura para la decimoprimera columna se establece a la posición en la dirección 5, la posición de inicio de escritura para la decimosegunda columna se establece a la posición en la dirección 5, la posición de inicio de escritura para la decimotercera columna se establece a la posición en la dirección 5, la posición de inicio de escritura para la decimocuarta columna se establece a la posición en la dirección 7, la posición de inicio de escritura para la decimoquinta columna se establece a la posición en la dirección 7, la posición de inicio de escritura para la decimosexta columna se establece a la posición en la dirección 7, la posición de inicio de escritura para la decimoséptima columna se establece a la posición en la dirección 7, la posición de inicio de escritura para la decimoctava columna se establece a la posición en la dirección 8, la posición de inicio de escritura para la decimonovena columna se establece a la posición en la dirección 8 y la posición de inicio de escritura para la vigésima columna se establece a la posición en la dirección 10.
El múltiplo b es 1, y el número m de bits de un símbolo es 12 cuando, por ejemplo, se emplea 4096QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 30, la memoria 31 tiene 12 columnas para almacenar 12 x 1 bits en su dirección de fila y almacena 16.200/(12 x 1 ) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 12 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la octava columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la novena columna se establece a la posición en la dirección 3, la posición de inicio de escritura para la décima columna se establece a la posición en la dirección 6, la posición de inicio de escritura para la decimoprimera columna se establece a la posición en la dirección 7 y la posición de inicio de escritura para la decimosegunda columna se establece a la posición 7.
El múltiplo b es 2, y el número m de bits de un símbolo es 12 cuando, por ejemplo, se emplea 4096QAM como un esquema de modulación. En este caso, tal como se ilustra en la Fig. 30, la memoria 31 tiene 24 columnas para almacenar 12 x 2 bits en su dirección de fila y almacena 16.200/(12 x 2) bits en su dirección de columna.
Además, la posición de inicio de escritura para la primera columna de entre las 24 columnas de la memoria 31 se establece a la posición en la dirección 0, la posición de inicio de escritura para la segunda columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la tercera columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la cuarta columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la quinta columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la sexta columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la séptima columna se establece a la posición en la dirección 0, la posición de inicio de escritura para la octava columna se establece a la posición en la dirección 1, la posición de inicio de escritura para la novena columna se establece a la posición en la dirección 1, la posición de inicio de escritura para la décima columna se establece a la posición en la dirección 1, la posición de inicio de escritura para la decimoprimera columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la decimosegunda columna se establece a la posición en la dirección 2, la posición de inicio de escritura para la decimotercera columna se establece a la posición en la dirección 2, se establece la posición de inicio de escritura para la decimocuarta columna a la posición en la dirección 3, la posición de inicio de escritura para la decimoquinta columna se establece a la posición en la dirección 7, la posición de inicio de escritura para la decimosexta columna se establece a la posición en la dirección 9, la posición de inicio de escritura para la decimoséptima columna se establece a la posición en la dirección 9, la posición de inicio de escritura para la decimoctava columna se establece a la posición en la dirección 9, la posición de inicio de escritura para la decimonovena columna se establece a la posición en la dirección 10, la posición de inicio de escritura para la vigésima columna se establece a la posición en la dirección 10, la posición de inicio de escritura para la vigésimo primera columna se establece a la posición en la dirección 10, la posición de inicio de escritura para la vigésimo segunda columna se establece a la posición en la dirección 10, la posición de inicio de escritura para la vigésima tercera columna se establece a la posición en la dirección 10 y la posición de inicio de escritura para la vigésimo cuarta columna se establece a la posición en la dirección 11.
La Fig. 31 es un diagrama de flujo que representa un procedimiento realizado en el codificador 115 LDPC, el intercalador 116 de bits y el codificador 117 QAM ilustrados en la Fig. 8.
El codificador 115 LDPC espera a que los datos LDPC objetivo sean suministrados desde el codificador 114 BCH. En la etapa S101, el codificador 115 LDPC codifica los datos LDPC objetivo en un código LDPC, y suministra el código LDPC al intercalador 116 de bits. A continuación, el procedimiento pasa a la etapa S102.
En la etapa S102, el intercalador 116 de bits realiza un intercalado de bits sobre el código LDPC suministrado desde el codificador 115 LDPC, y suministra un símbolo obtenido mediante la simbolización del código LDPC que ha sido sometido a intercalado de bits, al codificador 117 QAM. A continuación, el procedimiento pasa a la etapa S103.
Más específicamente, en la etapa S102, en el intercalador 116 de bits (Fig. 9), el intercalador 23 de paridad realiza un intercalado de paridad sobre el código LDPC suministrado desde el codificador 115 LDPC, y suministra el código LDPC que ha sido sometido a intercalado de paridad al Intercalador 24 de torsión de columna.
El intercalador 24 de torsión de columna realiza un intercalado de torsión de columna sobre el código LDPC suministrado desde el intercalador 23 de paridad, y suministra el código LDPC resultante al demultiplexor 25.
El demultiplexor 25 realiza un procesamiento de permutación para permutar los bits de código del código LDPC que ha sido sometido a intercalado de torsión de columna por el intercalador 24 de torsión de columna y para mapear los bits de código permutado a los bits de símbolo de un símbolo (es decir, bits que representan el símbolo).
Aquí, el procesamiento de permutación del demultiplexor 25 puede ser realizado según cualquiera de los tipos de permutación primero a cuarto ilustrados en las Figs. 22 y 23, y puede ser realizado también según una determinada regla de asignación predeterminada para asignar los bits de código de un código LDPC a los bits de símbolo que representan un símbolo.
Los símbolos obtenidos por el procesamiento de permutación realizado por el demultiplexor 25 son suministrados desde el demultiplexor 25 al codificador 117 QAM.
En la etapa S103, el codificador 117 QAM mapea los símbolos suministrados desde el demultiplexor 25 a los puntos de constelación definidos por el esquema de modulación para la modulación ortogonal a ser realizada por el codificador 117 QAM y, a continuación, realiza una modulación ortogonal. Los datos resultantes son suministrados al intercalador 118 de tiempo.
Tal como se ha descrito anteriormente, el intercalado de paridad y el intercalado de torsión de columna pueden mejorar la resistencia a borrados o a errores de tipo ráfaga en un caso en el que una pluralidad de bits de código de un código LDPC son transmitidos como un símbolo.
Aquí, en la Fig. 9, el intercalador 23 de paridad, que sirve como un bloque configurado para realizar un intercalado de paridad, y el intercalador 24 de torsión de columna, que sirve como un bloque configurado para realizar el intercalado de torsión de columna, están configurados como unidades separadas, en aras de la conveniencia de la ilustración. Sin embargo, el intercalador 23 de paridad y el intercalador 24 de torsión de columna pueden estar integrados en una única unidad.
Más específicamente, tanto el intercalado de paridad como el intercalado de torsión de columna pueden ser realizados escribiendo y leyendo bits de código a y desde una memoria, y pueden ser representados mediante una matriz que convierte una dirección en la que debe escribirse un bit de código (es decir, una dirección de escritura) en una dirección en la que debe leerse un bit de código (es decir, una dirección de lectura).
Por consiguiente, una vez determinada una matriz obtenida multiplicando una matriz que representa el intercalado de paridad y una matriz que representa el intercalado de torsión de columna, puede obtenerse un código LDPC que ha sido sometido a intercalado de paridad y a continuación a un intercalado de torsión de columna mediante la conversión de los bits de código usando la matriz determinada.
También, además del intercalador 23 de paridad y el intercalador 24 de torsión de columna, el demultiplexor 25 puede estar integrado también en una única unidad.
Más específicamente, el procesamiento de permutación realizado en el demultiplexor 25 puede ser representado también por una matriz que convierte una dirección de escritura en la memoria 31 en la que se almacena un código LDPC en una dirección de lectura.
Por consiguiente, una vez determinada una matriz obtenida multiplicando una matriz que representa el intercalado de paridad, una matriz que representa el intercalado de torsión de columna y una matriz que representa el procesamiento de permutación, el intercalado de paridad, el intercalado de torsión de columna y el procesamiento de permutación pueden realizarse en un lote usando la matriz determinada.
Cabe señalar que puede realizarse uno cualquiera de entre el intercalado de paridad o el intercalado de torsión de columna, o puede no realizarse ninguno de los mismos. Por ejemplo, como en el sistema DVB-S.2, si la ruta 13 de comunicación (Fig. 7) es un canal no AWGN que no tiene mucho en cuenta los errores de ráfaga, las fluctuaciones, etc., tal como un enlace satelital, no puede realizarse ninguno de entre el intercalado de paridad y el intercalado de torsión de columna.
A continuación, las simulaciones para medir las tasas de errores (tasas de errores de bits) que se realizaron en el dispositivo 11 de transmisión ilustrado en la Fig. 8 se describirán con referencia a las Figs. 32 a 34.
Las simulaciones se realizaron usando una ruta de comunicación con una fluctuación que tenía una relación D/U de 0 dB.
La Fig. 32 ilustra un modelo de una ruta de comunicación empleado en las simulaciones.
Más específicamente, la parte A de la Fig. 32 ilustra un modelo de una fluctuación empleado en las simulaciones. Además, la parte B de la Fig. 32 ilustra un modelo de una ruta de comunicación que tenía la fluctuación representada por el modelo ilustrado en la parte A de la Fig. 32.
Cabe señalar que, en la parte B de la Fig. 32, H representa el modelo de la fluctuación ilustrado en la parte A de la Fig. 32. En la parte B de la Fig. 32, además, N representa la ICI (Inter Carrier Interference, interferencia entre portadoras). En las simulaciones, un valor E[N2] esperado de la potencia de la ICI se aproximó mediante AWGN.
Las Figs. 33 y 34 ilustran las relaciones entre las frecuencias fd Doppler de las fluctuaciones y las tasas de errores obtenidas en las simulaciones.
Cabe señalar que la Fig. 33 ilustra las relaciones entre las tasas de errores y las frecuencias fd Doppler en un caso en el que el esquema de modulación es 16QAM, la tasa (r) de codificación es 3/4 y el tipo de permutación es el primer tipo de permutación. La Fig. 34 ilustra las relaciones entre las tasas de error y las frecuencias fd Doppler en un caso en el que el esquema de modulación es 64QAM, la tasa (r) de codificación es 5/6 y el tipo de permutación es el primer tipo de permutación.
En las Figs. 33 y 34, además, las líneas en negrita indican las relaciones entre las tasas de errores y las frecuencias fd Doppler en un caso en el que se realizaron el intercalado de paridad, el intercalado de torsión de columna y el procesamiento de permutación, y las líneas finas indican las relaciones entre las tasas de errores y las frecuencias fd Doppler en un caso en el que solo se realizó el procesamiento de permutación de entre el intercalado de paridad, el intercalado de torsión de columna y el procesamiento de permutación.
A partir de cualquiera de las Figs. 33 y 34, puede observarse que el rendimiento de la tasa de errores se mejora (es decir, se reducen las tasas de errores) en el caso en que se realizó el intercalado por paridad, el intercalado por torsión de la columna y el procesamiento de permutación, en comparación con el caso en que solo se realizó el procesamiento de permutación.
[Configuración ejemplar del codificador 115 LDPC]
La Fig. 35 es un diagrama de bloques que ilustra una configuración ejemplar del codificador 115 LDPC ilustrado en la Fig. 8.
Cabe señalar que el codificador 122 LDPC ilustrado en la Fig. 8 tiene también una configuración similar.
Tal como se ha descrito con referencia a las Figs. 12 y 13, los códigos LDPC que tienen dos tipos de longitudes N de código de 64.800 bits y 16.200 bits se definen en el estándar DVB-S.2 y en estándares similares.
Además, se definen 11 tasas de codificación, 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9 y 9/10, para códigos LDPC que tienen una longitud N de código de 64.800 bits y se definen 10 tasas de codificación, 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6 y 8/9, para códigos LDPC que tienen una longitud N de código de 16.200 bits (Figs. 12 y 13).
El codificador 115 LDPC es capaz de realizar una codificación (es decir, codificación de corrección de errores) usando, por ejemplo, códigos LDPC que tienen longitudes N de código de 64.800 bits y 16.200 bits y las tasas de codificación respectivas, según la matriz H de comprobación de paridad preparada para cada longitud N de código y cada tasa de codificación.
El codificador 115 LDPC incluye una unidad 601 de procesamiento de codificación y una unidad 602 de almacenamiento.
La unidad 601 de procesamiento de codificación incluye una unidad 611 de establecimiento de tasa de codificación, una unidad 612 de lectura de tabla de valores iniciales, una unidad 613 generadora de matrices de comprobación de paridad, una unidad 614 de lectura de bits de información, una unidad 615 de cálculo de paridad de codificación y una unidad 616 de control. La unidad 601 de procesamiento de codificación realiza una codificación LDPC sobre los datos LDPC objetivo suministrados al codificador 115 LDPC, y suministra el código LDPC resultante al intercalador 116 de bits (Fig. 8).
Más específicamente, la unidad 611 de establecimiento de tasa de codificación establece una longitud N de código y una tasa de codificación del código LDPC, por ejemplo, según una operación de un operador o similar.
La unidad 612 de lectura de tabla de valores iniciales lee una tabla de valores iniciales de la matriz de comprobación de paridad, descrita a continuación, correspondiente a la longitud N de código y la tasa de codificación establecida por la unidad 611 de establecimiento de tasa de codificación desde la unidad 602 de almacenamiento.
La unidad 613 generadora de matrices de comprobación de paridad genera una matriz H de comprobación de paridad en base a la tabla de valores iniciales de la matriz de comprobación de paridad leída por la unidad 612 de lectura de tabla de valores iniciales, mediante la disposición de elementos 1 en una matriz Ha de información que tiene una longitud K de información (= longitud N de código - longitud M de paridad) correspondiente a la longitud N de código y a la tasa de codificación establecida por la unidad 611 de establecimiento de tasa de codificación, en una dirección de columna a intervalos de 360 columnas (es decir, el número de columnas P unidad de la estructura cíclica). La matriz H de comprobación de paridad se almacena en la unidad 602 de almacenamiento.
La unidad 614 de lectura de bits de información lee (o extrae) los bits de información correspondientes a la longitud K de información desde los datos LDPC objetivo suministrados al codificador 115 LDPC.
La unidad 615 de cálculo de paridad de codificación lee la matriz H de comprobación de paridad generada por la unidad 613 generadora de matrices de comprobación de paridad desde la unidad 602 de almacenamiento, y genera una palabra de código (es decir, un código LDPC) calculando los bits de paridad correspondientes a los bits de información leídos por la unidad 614 de lectura de bits de información según una fórmula determinada usando la matriz H de comprobación de paridad.
La unidad 616 de control controla los bloques incluidos en la unidad 601 de procesamiento de codificación.
La unidad 602 de almacenamiento tiene, almacenadas en la misma, una pluralidad de tablas de valores iniciales de la matriz de comprobación de paridad y similares, que corresponden, respectivamente, a la pluralidad de tasas de codificación y similares ilustradas en las Figs. 12 y 13 para las longitudes N de código respectivas, tales como 64.800 bits y 16.200 bits. Además, la unidad 602 de almacenamiento almacena temporalmente los datos necesarios para el procesamiento de la unidad 601 de procesamiento de codificación.
La Fig. 36 es un diagrama de flujo que representa un procedimiento del codificador 115 LDPC ilustrado en la Fig. 35. En la etapa S201, la unidad 611 de establecimiento de tasa de codificación determina (o establece) una longitud N de código y una tasa r de codificación para la codificación LDPC.
En la etapa S202, la unidad 612 de lectura de tabla de valores iniciales lee una tabla de valores iniciales de la matriz de comprobación de paridad predeterminada correspondiente a la longitud N de código y la tasa r de codificación determinada por la unidad 611 de establecimiento de tasa de codificación desde la unidad 602 de almacenamiento.
En la etapa S203, la unidad 613 generadora de matrices de comprobación de paridad determina (o genera) una matriz H de comprobación de paridad de un código LDPC que tiene la longitud N de código y la tasa r de codificación determinadas por la unidad 611 de establecimiento de tasa de codificación usando la tabla de valores iniciales de a matriz de comprobación de paridad leída por la unidad 612 de lectura de tabla de valores iniciales desde la unidad 602 de almacenamiento, y suministra la matriz H de comprobación de paridad a la unidad 602 de almacenamiento para su almacenamiento.
En la etapa S204, la unidad 614 de lectura de bits de información lee los bits de información de la longitud K (= N x r) de información correspondiente a la longitud N de código y la tasa r de codificación determinada por la unidad 611 de establecimiento de tasa de codificación a partir de los datos LDPC objetivo suministrados al LDPC codificador 115, y también lee la matriz H de comprobación de paridad determinada por la unidad 613 generadora de matrices de comprobación de paridad desde la unidad 602 de almacenamiento. A continuación, la unidad 614 de lectura de bits de información suministra los bits de información leídos y la matriz H de comprobación de paridad a la unidad 615 de cálculo de paridad de codificación.
En la etapa S205, la unidad 615 de cálculo de paridad de codificación calcula secuencialmente los bits de paridad de una palabra c de código que satisface la Expresión (8) usando los bits de información y la matriz H de comprobación de paridad suministrada desde la unidad 614 de lectura de bits de información.
Hct = 0 . . . (8)
En la Expresión (8), c denota un vector de fila como una palabra de código (es decir, código LDPC), y cT denota la traspuesta del vector c de fila.
Aquí, tal como se ha descrito anteriormente, si una parte de bit de información del vector c de fila como el código LDPC (es decir, una palabra de código) está representada por un vector A de fila y una parte de bits de paridad está representada por un vector T de fila, el vector c de fila puede ser representado por la ecuación c = [A|T] usando el vector A de fila correspondiente a los bits de información y el vector T de fila correspondiente a los bits de paridad.
Es necesario que la matriz H de comprobación de paridad y el vector c = [A|T] de fila correspondientes al código LDPC satisfagan la ecuación HcT = 0. Los valores de los elementos del vector T de fila correspondientes a los bits de paridad en el vector c = [A|T] de fila que satisfacen la ecuación HcT = 0 pueden determinarse secuencialmente estableciendo los elementos en las filas respectivas del vector HcT de columna en la ecuación HcT = 0 a cero en orden, empezando desde el elemento en la primera fila, en un caso en el que la matriz HT de paridad en la matriz H = [HA|HT] de comprobación de paridad tiene la estructura escalonada ilustrada en la Fig. 11.
La unidad 615 de cálculo de paridad de codificación determina los bits T de paridad correspondientes a los bits A de información suministrados desde la unidad 614 de lectura de bits de información, y genera una palabra c = [A|T] de código, que está representada por los bits A de información y los bits T de paridad, como resultado de la codificación LDPC de los bits A de información.
A continuación, en la etapa S206, la unidad 616 de control determina si terminar o no la operación de codificación LDPC. Si en la etapa S206 se determina que la operación de codificación LDPC no debe ser terminada, por ejemplo, si hay algún dato LDPC objetivo a ser sometido a una codificación LDPC, el procedimiento vuelve a la etapa S201 (o a la etapa S204), y el procesamiento de las etapas S201 (o las etapas S204) a S206 se realiza posteriormente repetidamente.
Además, si en la etapa S206 se determina que la operación de codificación de LDPC debe ser terminada, por ejemplo, si no hay datos LDPC objetivo a ser sometidos a una codificación LDPC, el codificador 115 LDPC termina el procedimiento.
Tal como se ha descrito anteriormente, se preparan las tablas de valores iniciales de la matriz de comprobación de paridad correspondientes a las longitudes N de código respectivas y a las tasas r de codificación respectivas, y el codificador 115 LDPC realiza una codificación LDPC con una longitud N de código determinada y una tasa r de codificación determinada usando una matriz H de comprobación de paridad generada a partir de la tabla de valores iniciales de la matriz de comprobación de paridad correspondiente a la longitud N de código determinada y a la tasa r de codificación determinada.
[Ejemplo de tabla de valores iniciales de la matriz de comprobación de paridad]
Una tabla de valores iniciales de la matriz de comprobación de paridad es una tabla que muestra las posiciones de los elementos 1 en una matriz HA de información (Fig. 10) que tiene una longitud K de información correspondiente a una longitud N de código y una tasa r de codificación de un código LDPC (es decir, un código LDPC definido por la matriz H de comprobación de paridad) en la matriz H de comprobación de paridad, en unidades de 360 columnas (es decir, el número de columnas P unidad de la estructura cíclica). Se crea por adelantado una tabla de valores iniciales de la matriz de comprobación de paridad para cada una de las matrices H de comprobación de paridad que tienen las longitudes N de código respectivas y las tasas r de codificación respectivas.
La Fig. 37 es un diagrama que ilustra un ejemplo de una tabla de valores iniciales de la matriz de comprobación de paridad.
Más específicamente, la Fig. 37 ilustra una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad que tiene una longitud N de código de 16.200 bits y una tasa r de codificación (tasa de codificación nominal definida en DVB-T.2) de 1/4, que se define en el estándar DVB-T.2.
La unidad 613 generadora de matrices de comprobación de paridad (Fig. 35) determina una matriz H de comprobación de paridad de la manera siguiente usando la tabla de valores iniciales de la matriz de comprobación de paridad.
Más específicamente, la Fig. 38 ilustra un procedimiento para determinar una matriz H de comprobación de paridad a partir de una tabla de valores iniciales de la matriz de comprobación de paridad.
Cabe señalar que la tabla de valores iniciales de la matriz de comprobación de paridad ilustrada en la Fig. 38 es una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad que tiene una longitud N de código de 16.200 bits y una tasa r de codificación de 2/3, que se define en el estándar DVB-T.2.
Tal como se ha descrito anteriormente, una tabla de valores iniciales de la matriz de comprobación de paridad es una tabla que muestra las posiciones de los elementos 1 en una matriz HA de información (Fig. 10) que tiene una longitud K de información correspondiente a una longitud N de código y una tasa r de codificación de un código LDPC en unidades de 360 columnas (es decir, el número de columnas P unidad de la estructura cíclica). En la i-ésima fila de la tabla de valores iniciales de la matriz de comprobación de paridad, están dispuestos los números de fila de los elementos 1 en la {1+360x(i-1)}-ésima columna de la matriz H de comprobación de paridad (es decir, los números de fila en los que el número de fila de la primera fila de la matriz H de comprobación de paridad se establece a 0), cuyo número es igual al número de ponderaciones de columna asignadas a la {1+360x(i-1)}-ésima columna.
Aquí, debido a que la matriz Ht de paridad (Fig. 10) de la matriz H de comprobación de paridad, correspondiente a la longitud M de paridad, se determina de la manera ilustrada en la Fig. 25, la matriz Ha de información (Fig. 10) de la matriz H de comprobación de paridad, correspondiente a la longitud K de información, se determina usando la tabla de valores iniciales de la matriz de comprobación de paridad.
El número de filas k+1 de la tabla de valores iniciales de la matriz de comprobación de paridad difiere según la longitud K de información.
Se establece una relación determinada por la Expresión (9) entre la longitud K de información y el número de filas k+1 de la tabla de valores iniciales de la matriz de comprobación de paridad.
K = (k 1) x 360 .. . (9)
Aquí, en la Expresión (9), 360 es el número de columnas P unidad de la estructura cíclica descrita con referencia a la Fig. 26.
En la tabla de valores iniciales de la matriz de comprobación de paridad ilustrada en la Fig. 38, 13 valores están dispuestos en cada una de las filas primera a tercera, y tres valores están dispuestos en cada una de las filas cuarta a (k+1)-ésima (en la Fig. 38, la fila 30).
Por consiguiente, las ponderaciones de columna de la matriz H de comprobación de paridad determinadas a partir de la tabla de valores iniciales de la matriz de comprobación de paridad ilustrada en la Fig. 38 son 13 para las columnas primera a {1+360x(3-1)-1}-ésima, y 3 para las columnas {1+360x(3-1)}-ésima a K-ésima.
En la tabla de valores iniciales de la matriz de comprobación de paridad ilustrada en la Fig. 38, la primera fila muestra 0, 2084, 1613, 1548, 1286, 1460, 3196, 4297, 2481, 3369, 3451,4620 y 2622, indicando que los elementos de las filas con los números de fila 0, 2084, 1613, 1548, 1286, 1460, 3196, 4297, 2481, 3369, 3451, 4620 y 2622 en la primera columna de la matriz H de comprobación de paridad son 1 (y que los otros elementos son 0).
Además, en la tabla de valores iniciales de la matriz de comprobación de paridad ilustrada en la Fig. 38, la segunda fila muestra 1, 122, 1516, 3448, 2880, 1407, 1847, 3799, 3529, 373, 971, 4358 y 3108, indicando que elementos de las filas con los números de fila 1, 122, 1516, 3448, 2880, 1407, 1847, 3799, 3529, 373, 971,4358 y 3108 en la 361-ésima (= 1 360 x (2 - 1 )) columna de la matriz H de comprobación de paridad son 1.
De la manera descrita anteriormente, una tabla de valores iniciales de la matriz de comprobación de paridad muestra las posiciones de los elementos 1 en una matriz HA de información de una matriz H de comprobación de paridad en unidades de 360 columnas.
Los elementos en las columnas distintas de la {1+360x(i-1)}-ésima columna de la matriz H de comprobación de paridad, es decir, los elementos en la {2+360x(i-1)}-ésima a la (360xi)-ésima columnas se disponen desplazando cíclicamente los elementos 1 en la {1+360x(i-1)}-ésima columna, que se definen usando la tabla de valores iniciales de la matriz de comprobación de paridad, hacia abajo (es decir, hacia abajo a lo largo de las columnas) de una manera periódica según la longitud M de paridad.
Más específicamente, por ejemplo, los elementos en la {2+360x(i-1)}-ésima columna se obtienen desplazando cíclicamente los elementos en la {1+360x(i-1)}-ésima columna hacia abajo en M/360 (= q). Los elementos en la {3+360x(i-1)}-ésima columna siguiente se obtienen desplazando cíclicamente los elementos en la {1+360x(i-1)}-ésima columna hacia abajo en 2 x M/360 (= 2 x q) (es decir, desplazando cíclicamente los elementos en la {2+360x(i-1)}-ésima columna hacia abajo en M/360 (= q)).
Se supone ahora que el valor en la i-ésima fila (es decir, la i-ésima fila desde la parte superior) y la j-ésima columna (es decir, la j-ésima columna desde la izquierda) de una tabla de valores iniciales de la matriz de comprobación de paridad está representada por hij, y el número de fila del j-ésimo elemento 1 en la columna w-ésima de una matriz H de comprobación de paridad está representado por Hw-j. En este caso, el número de fila Hwj de un elemento 1 en la wésima columna, que es una columna distinta de la {1+360x(i-1)}-ésima columna de la matriz H de comprobación de paridad, puede ser determinado usando la Expresión (10).
H w _ j = m o d { h i , j m o d ( ( w - l ) , P ) x q , M )
. . . ( 10 )
Aquí, mod (x, y) representa el resto después de la división de x por y.
Además, P denota el número de columnas unidad de la estructura cíclica, descritas anteriormente, y es, por ejemplo, 360 en los estándares DVB-S.2, DVB-T.2 y DVB-C.2, tal como se ha descrito anteriormente. Además, q denota el valor M/360 que se obtiene al dividir la longitud M de paridad por el número de columnas P unidad de la estructura cíclica (= 360).
La unidad 613 generadora de matrices de comprobación de paridad (Fig. 35) especifica un número de fila de un elemento 1 en la {1+360x(i-1)}-ésima columna de la matriz H de comprobación de paridad usando la tabla de valores iniciales de la matriz de comprobación de paridad.
La unidad 613 generadora de matrices de comprobación de paridad (Fig. 35) determina además el número de fila Hw-j de un elemento 1 en la w-ésima columna, que es una columna distinta de la {1+360x(i-1)} columna de la matriz H de comprobación de paridad, según la Expresión (10), y genera una matriz H de comprobación de paridad cuyos elementos correspondientes a los números de fila obtenidos de la manera descrita anteriormente son 1.
[Nuevos códigos LDPC]
Incidentalmente, ha existido una demanda para proponer una versión mejorada (en adelante, denominada también "DVB-Sx") del estándar DVB-S.2.
En el documento CfT (Call for Technology), que se presentó en la reunión para la estandarización de DVB-Sx, se demanda un cierto número de ModCods (que son combinaciones de esquemas de modulación (Modulación) y códigos LDPC (Código)) para cada intervalo de C/N (Carrier to Noise Ratio, relación portadora a ruido) (SNR (Signal to Noise Ratio, relación señal a ruido)) según el caso de uso.
Más específicamente, en el documento CfT, la primera solicitud es preparar 20 ModCods para un intervalo de C/N de 7 dB desde 5 dB a 12 dB para uso DTH (Direct To Home, directo al hogar).
En el documento CfT, además, la segunda solicitud es preparar 22 ModCods para un intervalo de C/N de 12 dB desde 12 dB a 24 dB, la tercera solicitud es preparar 12 ModCods para un intervalo de C/N de 8 dB desde -3 dB a 5 dB, y la cuarta solicitud es preparar 5 ModCods para un intervalo de C/N de 7 dB desde -10 dB a -3 dB.
En el documento CfT, además, se solicita también que la FER (Frame Error Rate, tasa de errores de trama) para los ModCods en las solicitudes primera a cuarta sea aproximadamente de 10-5 (o menor).
Cabe señalar que, en el documento CfT, la primera solicitud tiene una prioridad de "1", que es la más alta, mientras que las solicitudes segunda a cuarta tienen una prioridad de "2 ", que es menor que la prioridad de la primera solicitud.
Por consiguiente, la presente tecnología proporciona (una matriz de comprobación de paridad de) un código LDPC capaz de satisfacer al menos la primera solicitud que tiene la prioridad más alta en el documento CfT, como un nuevo código LDPC.
La Fig. 39 ilustra curvas BER/FER para códigos LDPC que tienen una longitud N de código de 64k bits y 11 tasas de codificación, que se definen en el DVB-S.2, en el caso en el que se emplea QPSK como un esquema de modulación.
En la Fig. 39, el eje horizontal representa Es/N0 (la relación de la potencia de señal por símbolo a la potencia de ruido) correspondiente a la relación C/N, y el eje vertical representa FER/BER. Cabe señalar que, en la Fig. 39, las líneas continuas indican FERs y las líneas de puntos indican BERs (Bit Error Rates, tasas de errores de bits).
En la Fig. 39, las curvas FER (BER) para los códigos LDPC que tienen una longitud N de código de 64k bits y 11 tasas de codificación, que se definen en el estándar DVB-S.2, se han trazado para un intervalo Es/N0 de 10 dB en un caso en el que se emplea QPSK como esquema de modulación.
Más específicamente, en la Fig. 39, se han trazado 11 curvas FER para ModCods para las cuales el esquema de modulación se ha fijado a QPSK para un intervalo Es/N0 de aproximadamente 10 dB desde aproximadamente -3 dB a aproximadamente 7 dB.
Por consiguiente, para los códigos LDPC que tienen una longitud N de código de 64k bits y 11 tasas de codificación, que se definen en el estándar DVB-S.2, el intervalo entre las curvas FER para ModCods en promedio (en adelante, denominado también "intervalo promedio")) es aproximadamente 1 dB (= 10 dB/(10 - 1)).
Por el contrario, debido a que la primera solicitud en el documento CfT solicita que se preparen 20 ModCods para un intervalo de Es/Nü (C/N) de 7 dB, el intervalo promedio entre las curvas FER para las ModCods es de aproximadamente 0,3 dB (= 7 dB/(20 - 1)).
En el caso en el que el esquema de modulación está fijado a un tipo como QPSK, los códigos LDPC con tasas de codificación, cuyo número es aproximadamente tres veces (= 1 dB/0,3 dB), las 11 tasas de codificación, o aproximadamente 30 tasas de codificación, sería suficiente para asegurar espacio suficiente para obtener ModCods que tienen un intervalo promedio de 0,3 dB que cumpla con la primera solicitud en el documento CfT, en comparación con el caso de DVB-S.2 en el que las ModCods que tienen un intervalo promedio de aproximadamente 1 dB se obtienen usando Códigos LDPC con las 11 tasas de codificación.
Por consiguiente, en la presente tecnología, se preparan códigos LDPC que tienen una longitud de código de 64k y tasas de codificación de i/30 (donde i es un número entero positivo menor de 30) como códigos LDPC que tienen tasas de codificación para las cuales aproximadamente 30 tasas de codificación son fácilmente configurables y se proporcionan como nuevos códigos LDPC que cumplen al menos la primera solicitud con la prioridad más alta en el documento CfT.
Cabe señalar que las matrices Ht de paridad de las matrices H de comprobación de paridad de los nuevos códigos LDPC tienen una estructura escalonada (Fig. 11), de manera similar a un código LDPC definido en el estándar DVB-S.2, en términos de mantener la compatibilidad con DVB -S.2 tanto como sea posible.
Además, de manera similar a un código LDPC definido en el estándar DVB-S.2, las matrices Ha de información de las matrices H de comprobación de paridad de los nuevos códigos LDPC tienen una estructura cíclica, en la que el número de columnas P de la estructura cíclica es también 360.
Las Figs. 40 a 106 son diagramas que ilustran un ejemplo de tablas de valores iniciales de la matriz de comprobación de paridad para los nuevos códigos LDPC que tienen una longitud N de código de 64k bits y tasas de codificación de i/30, tal como se ha descrito anteriormente.
Aquí, los nuevos códigos LDPC son códigos LDPC cuyas tasas de codificación están representadas por i/30 y, por lo tanto, incluyen códigos LDPC que tienen hasta 29 tasas de codificación, 1/30, 2/30, 3/30,..., 28/30 y 29/30.
Sin embargo, un código LDPC con una tasa de codificación de 1/30 puede usarse de manera limitada en términos de eficiencia. Además, un código LDPC con una tasa de codificación de 29/30 puede usarse de manera limitada en términos de tasa de errores (BER/FER).
Por la razón descrita anteriormente, entre los códigos LDPC con 29 tasas de codificación, concretamente, tasas de codificación de 1/30 a 29/30, uno o ambos de entre un código LDPC con una tasa de codificación de 1/30 y un código LDPC con una tasa de codificación de 29/30 puede configurarse para que no sea usado como nuevos códigos LDPC.
Aquí, los códigos LDPC con 28 tasas de codificación, por ejemplo, los códigos LDPC con tasas de codificación de 2/30 a 29/30 de entre las tasas de codificación de 1/30 a 29/30, se usan como nuevos códigos LDPC, y a continuación se proporcionarán las tablas de valores iniciales de la matriz de comprobación de paridad para las matrices H de comprobación de paridad de los nuevos códigos LDPC.
La Fig. 40 ilustra una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 2/30.
La Fig. 41 ilustra una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 3/30.
La Fig. 42 ilustra una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 4/30.
La Fig. 43 ilustra una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 5/30.
La Fig. 44 ilustra una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 6/30.
La Fig. 45 ilustra una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 7/30.
Las Figs. 46 y 47 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 8/30.
Las Figs. 48 y 49 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 9/30.
Las Figs. 50 y 51 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 10/30.
Las Figs. 52 y 53 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 11/30.
Las Figs. 54 y 55 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 12/30.
Las Figs. 56 y 57 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 13/30.
Las Figs. 58 y 59 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 14/30.
Las Figs. 60 y 61 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 15/30.
Las Figs. 62, 63 y 64 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 16/30.
Las Figs. 65, 6 6 y 67 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 17/30.
Las Figs. 6 8 , 69 y 70 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 18/30.
Las Figs. 71, 72 y 73 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 19/30.
Las Figs. 74, 75 y 76 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 20/30.
Las Figs. 77, 78 y 79 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 21/30.
Las Figs. 80, 81 y 82 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 22/30.
Las Figs. 83, 84 y 85 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 23/30.
Las Figs. 8 6 , 87 y 88 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 24/30.
Las Figs. 89, 90 y 91 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 25/30.
Las Figs. 92, 93 y 94 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 26/30.
Las Figs. 95, 96, 97 y 98 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 27/30.
Las Figs. 99, 100, 101 y 102 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 28/30.
Las Figs. 103, 104, 105 y 106 ilustran una tabla de valores iniciales de la matriz de comprobación de paridad para una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 64k bits y una tasa r de codificación de 29/30.
El codificador 115 LDPC (Fig. 8 y 35) es capaz de realizar una codificación sobre un (nuevo) código LDPC que tiene una longitud N de código de 64k bits y cualquiera de las 28 tasas r de codificación de 2/30 a 29/30 usando una matriz H de comprobación de paridad determinada a partir de una de las tablas de valores iniciales de la matriz de comprobación de paridad ilustradas en las Figs. 40 a 106.
En el ejemplo ilustrado, la unidad 602 de almacenamiento del codificador 115 LDPC (Fig. 8 ) almacena las tablas de valores iniciales de la matriz de comprobación de paridad ilustradas en las Figs. 40 a 106.
Cabe señalar que no todos los códigos LDPC con 28 tasas r de codificación de 2/30 a 29/30 (que se determinan a partir de las tablas de valores iniciales de la matriz de comprobación de paridad) ilustradas en las Figs. 40 a 106 pueden usarse como nuevo LDPC. Es decir, un código o unos códigos LDPC con una o más tasas de codificación de entre los códigos LDPC con 28 tasas r de codificación de 2/30 a 29/30 ilustradas en las Figs. 40 a 106 pueden emplearse como un nuevo código o códigos LDPC.
Los códigos LDPC obtenidos usando matrices H de comprobación de paridad determinadas a partir de las tablas de valores iniciales de la matriz de comprobación de paridad ilustradas en las Figs. 40 a 106 pueden ser códigos LDPC de alto rendimiento.
La expresión "código LDPC de alto rendimiento", tal como se usa en la presente memoria, se refiere a un código LDPC obtenido a partir de una matriz H de comprobación de paridad apropiada.
Además, la expresión "matriz H de comprobación de paridad apropiada" se refiere a una matriz de comprobación de paridad que satisface una determinada condición en la que la BER (y la FER) se reduce (o se reducen) cuando un código LDPC obtenido a partir de una matriz H de comprobación de paridad es transmitido con una Es/Nü o Eb/No (que es la relación entre la potencia de señal por bit a la potencia de ruido) baja.
Una matriz H de comprobación de paridad apropiada puede determinarse mediante simulaciones para medir las BERs cuando, por ejemplo, los códigos LDPC obtenidos a partir de varias matrices de comprobación de paridad que satisfacen una determinada condición son transmitidos con una Es/No baja.
Los ejemplos de condición determinada que debe cumplir una matriz H de comprobación de paridad apropiada incluyen una condición de que los resultados de análisis obtenidos usando una técnica analítica para la evaluación del rendimiento de los códigos, denominada evolución de densidad, sean buenos, y una condición de que no exista un bucle de elementos 1, denominado ciclo 4.
Aquí, está bien establecido que una concentración de elementos 1, tal como el ciclo 4, en una matriz Ha de información, reducirá el rendimiento de decodificación de un código LDPC. De esta manera, se demanda la ausencia del ciclo 4 como una condición determinada que debe cumplir una matriz H de comprobación de paridad apropiada.
Cabe señalar que la condición determinada que debe cumplir una matriz H de comprobación de paridad puede determinarse, según se desee, en términos de diversos factores, tales como un rendimiento de decodificación mejorado de un código LDPC y un procesamiento de decodificación sencillo (o simplificado) de un código LDPC.
Las Figs. 107 y 108 son diagramas que muestran la evolución de la densidad mediante la cual se obtienen los resultados de análisis, como una condición determinada que debe cumplir una matriz H de comprobación de paridad apropiada.
La evolución de densidad es una técnica de análisis de código para calcular un valor esperado de probabilidad de error para el conjunto de todos los códigos LDPC ("conjunto") cuya longitud N de código, que está caracterizada por una secuencia de grados descrita a continuación, es infinita (~).
Por ejemplo, si una varianza del ruido aumenta desde cero en un canal AWGN, el valor esperado de probabilidad de error para un conjunto determinado es inicialmente cero, y pasa a ser distinto de cero si la varianza del ruido es mayor o igual que un determinado umbral.
En el procedimiento de evolución de densidad, puede determinarse si el rendimiento del conjunto (es decir, la idoneidad de una matriz de comprobación de paridad) es bueno o no, comparando los umbrales de varianza de ruido (en adelante, denominados también "umbrales de rendimiento") por encima de los cuales los valores esperados de probabilidad de error para los conjuntos pasan a ser distintos de cero.
Cabe señalar que el rendimiento general de un código LDPC específico puede predecirse determinando un conjunto que incluya el código LDPC y realizando una evolución de densidad en el conjunto.
Por consiguiente, una vez que se encuentra un conjunto con un buen rendimiento, puede encontrarse un código LDPC con buen rendimiento de entre los códigos LDPC incluidos en el conjunto.
Aquí, la secuencia de grados, descrita anteriormente, representa la proporción de nodos variables o nodos de comprobación con una ponderación de cada valor a la longitud N de código de un código LDPC.
Por ejemplo, un código LDPC (3,6) regular con una tasa de codificación de 1/2 pertenece a un conjunto caracterizado por una secuencia de grados que indica que la ponderación (ponderación de columna) para todos los nodos variables es 3 y la ponderación (ponderación de fila)) para todos los nodos de comprobación es 6.
La Fig. 107 ilustra un gráfico de Tanner del conjunto descrito anteriormente.
El gráfico de Tanner ilustrado en la Fig. 107 incluye N nodos variables indicados mediante círculos ("O") en la Fig. 107, cuyo número es igual a la longitud N de código, y N/2 nodos de comprobación indicados mediante cuadrados ("□") en la Fig. 107, cuyo número es igual a un valor obtenido multiplicando la longitud N de código por la tasa de codificación 1 /2.
Tres bordes, cuyo número es igual a la ponderación de la columna, están conectados a cada nodo variable. Por lo tanto, 3N bordes en total están conectados a los N nodos variables.
Además, seis bordes, cuyo número es igual a la ponderación de la fila, están conectados a cada nodo de comprobación. Por lo tanto, 3N bordes en total están conectados a los N/2 nodos de comprobación.
En el gráfico de Tanner ilustrado en la Fig. 107 hay incluido también un intercalador.
El intercalador reordena aleatoriamente los bordes 3N conectados a los N nodos variables, y conecta cada uno de los bordes reordenados a uno de los 3N bordes conectados a los N/2 nodos de comprobación.
Hay (3N)! (= (3N) * (3N-1) *... * 1) patrones de reordenación en los que el intercalador reordena los 3N bordes conectados a los N nodos variables. Por consiguiente, un conjunto caracterizado por una secuencia de grados que indica que la ponderación para todos los nodos variables es 3 y la ponderación para todos los nodos de comprobación es 6 es el conjunto de (3N)! códigos LDPC.
En una simulación para determinar un código LDPC con un buen rendimiento (es decir, una matriz de comprobación de paridad apropiada), se usó un conjunto de tipo multi-borde en la evolución de densidad.
En el tipo multi-borde, un intercalador a través del cual se extienden los bordes conectados a los nodos variables y los bordes conectados a los nodos de comprobación está dividido en una pluralidad de piezas (multi-borde), lo que puede permitir una caracterización más precisa de un conjunto.
La Fig. 108 ilustra un ejemplo de un gráfico de Tanner de un conjunto de tipo multi-edge.
En el gráfico de Tanner ilustrado en la Fig. 108, hay incluidos dos intercaladores, concretamente, un primer intercalador y un segundo intercalador.
Además, el gráfico de Tanner ilustrado en la Fig. 108 incluye v1 nodos variables, cada uno con un borde conectado al primer intercalador y cero bordes conectados al segundo intercalador, v2 nodos variables cada uno con un borde conectado al primer intercalador y dos bordes conectados al segundo intercalador y v3 nodos de la variable, cada uno con cero bordes conectados al primer intercalador y dos bordes conectados al segundo intercalador.
El gráfico de Tanner ilustrado en la Fig. 108 incluye además c1 nodos de comprobación que tienen dos bordes conectados al primer intercalador y cero bordes conectados al segundo intercalador, c2 nodos de comprobación que tienen dos bordes conectados al primer intercalador y dos bordes conectados al segundo intercalador y c3 nodos de comprobación que tienen cero bordes conectados al primer intercalador y tres bordes conectados al segundo intercalador.
Aquí, la evolución de densidad y una implementación de la misma se describen, por ejemplo, en " On the Design of Low-Density Parity-Check Codes within 0.0045 dB of the Shannon Limit", S.Y. Chung, G.D. Forney, T.J. Richardson, R. Urbanke, IEEE Communications Leggers, VOL. 5, NO. 2, Febrero de 2001.
En una simulación para determinar (una tabla de valores iniciales de paridad de la matriz de) un nuevo código LDPC, se encontró un conjunto para el cual el umbral de rendimiento, que es Eb/Nü (que es la relación de la potencia de señal por bit a la potencia de ruido) en el que una BER empieza a disminuir (es decir, disminuye), es menor o igual a un determinado valor, usando la evolución de densidad de tipo de multi-borde, y un código LDPC que reduce una BER en una pluralidad de esquemas de modulación usados en DVB-S.2 y similares, tales como QPSK, se seleccionó como un código LDPC con buen rendimiento de entre los códigos LDPC que pertenecen al conjunto.
Las tablas de valores iniciales de la matriz de comprobación de paridad de los nuevos códigos LDPC descritos anteriormente son tablas de valores iniciales de la matriz de comprobación de paridad de códigos LDPC que tienen una longitud N de código de 64k bits, que se determinan mediante las simulaciones descritas anteriormente.
La Fig. 109 es un diagrama que ilustra las longitudes de ciclo mínimas y los umbrales de rendimiento para las matrices H de comprobación de paridad que se determinan a partir de las tablas de valores iniciales de la matriz de comprobación de paridad de los nuevos códigos LDPC que tienen una longitud N de código de 64k bits y 28 tasas de codificación de 2/30 a 29/30 ilustradas en las Figs. 40 a 106.
Aquí, una longitud de ciclo mínima (o circunferencia) es un valor mínimo de la longitud (longitud de bucle) de un bucle compuesto de elementos 1 en una matriz H de comprobación de paridad.
El ciclo 4 (un bucle de elementos 1, con una longitud de bucle de 4) no existe en una matriz H de comprobación de paridad determinada a partir de una tabla de valores iniciales de la matriz de comprobación de paridad de un nuevo código LDPC.
Además, a medida que la tasa r de codificación disminuye, la redundancia de un código LDPC aumenta. De esta manera, el umbral de rendimiento tiende a mejorar (es decir, disminuir) a medida que la tasa r de codificación disminuye.
La Fig. 110 es un diagrama que representa una matriz H de comprobación de paridad (en adelante, denominada también "matriz H de comprobación de paridad de un nuevo código LDPC") (determinada a partir de cada una de las tablas de valores iniciales de la matriz de comprobación de paridad) ilustradas en las Figs. 40 a 106.
La matriz H de comprobación de paridad del nuevo código LDPC tiene una ponderación de columna X para KX columnas, empezando con la primera columna, una ponderación de columna Y1 para las KY1 columnas posteriores, una ponderación de columna Y2 para las KY2 columnas posteriores, una ponderación de columna de 2 para las (M-1) columnas posteriores y una ponderación de columna de 1 para la última columna.
Aquí, la suma de columnas dada por KX+KY1+KY2+M-1+1 es igual a la longitud N de código = 64.800 bits.
La Fig. 111 es un diagrama que ilustra los números de columnas KX, KY1, KY2 y M, y las ponderaciones de columna X, Y1 e Y2 ilustradas en la Fig. 110 para las tasas r de codificación respectivas de los nuevos códigos LDPC.
En una matriz H de comprobación de paridad de un nuevo código LDPC que tiene una longitud N de código de 64k, de manera similar a la matriz de comprobación de paridad descrita con referencia a las Figs. 12 y 13, la ponderación de la columna tiende a aumentar a medida que disminuye el número ordinal de las columnas de la matriz H de comprobación de paridad (es decir, a medida que la columna se acerca al extremo izquierdo de la matriz H de comprobación de paridad). Por consiguiente, la robustez frente a los errores (o la resistencia a los errores) tiende a aumentar a medida que disminuye el número ordinal de los bits de código de un nuevo código LDPC (es decir, el primer bit de código tiende a ser el más robusto frente a los errores).
Cabe señalar que la cantidad q de desplazamiento usada en el desplazamiento cíclico que se realiza para determinar una matriz de comprobación de paridad a partir de una tabla de valores iniciales de la matriz de comprobación de paridad de un nuevo código LDPC que tiene una longitud N de código de 64k de la manera descrita con referencia a la Fig. 38 se representa mediante la ecuación q = M/P = M/360.
Por consiguiente, las cantidades de desplazamiento para los nuevos códigos LDPC con tasas de codificación de 2/30, 3/30, 4/30, 5/30, 6/30, 7/30, 8/30, 9/30, 10/30, 11/30, 12/30, 13/30, 14/30, 15/30, 16/30, 17/30, 18/30, 19/30, 20/30, 21/30, 22/30, 23/30, 24/30, 25/30, 26/30, 27/30, 28/30 y 29/30 son 168, 162, 156, 150, 144, 138, 132, 126, 120, 114, 108, 102, 96, 90, 84, 78, 72, 6 6 , 60, 54, 48, 42, 36, 30, 24, 18, 12 y 6 , respectivamente.
Las Figs. 112, 113 y 114 son diagramas que ilustran las BERs/FERs simuladas para los nuevos códigos LDPC ilustrados en las Figs. 40 a 106.
Las simulaciones se basaron en el supuesto de una ruta de comunicación (o canal) AWGN, en la que se empleó BPSK como un esquema de modulación y el número de veces de decodificación C repetitiva (it) fue 50.
En las Figs. 112, 113 y 114, el eje horizontal representa Es/Nü, y el eje vertical representa BER/FER. Cabe señalar que las líneas continuas indican BERs y las líneas de puntos indican FERs.
En las Figs. 112 a 114, las curvas FER (BER) para los nuevos códigos LDPC respectivos con 28 tasas de codificación de 2/30 a 29/30 exhiben FERs menores o iguales a 10"5 para un intervalo Es/N0 de (aproximadamente) 15 dB desde (sustancialmente) -10 dB a 5 dB.
En las simulaciones, pueden configurarse 28 ModCods que tienen una FER menor o igual a 10"5 para un intervalo Es/N0 de 15 dB desde -10 dB a 5 dB. Por consiguiente, 20 o más ModCods que tienen una FER menor o igual a 10"5 para un intervalo de 7 dB desde 5 dB a 12 dB pueden predecirse de manera suficiente teniendo en cuenta varios esquemas de modulación distintos de BPSK usados en las simulaciones, tales como QPSK, 8 PSK, 16APSK, 32APSK, 16QAM, 32QAM y 64QAM.
De esta manera, es posible proporcionar un código LDPC que tenga un buen rendimiento de tasa de errores, que cumpla la primera solicitud en el documento CfT.
Además, con referencia a las Figs. 112 a 114, la mayoría de las curvas FER (BER) para los nuevos códigos LDPC se trazan a intervalos casi iguales de menos de 1 dB para cada uno de los grupos de tasa de codificación baja, intermedia y alta. Por consiguiente, los nuevos códigos LDPC pueden proporcionar difusores que difundan programas usando el dispositivo 11 de transmisión con una ventaja en la facilitación de la selección de las tasas de codificación a ser usadas para la difusión según el estado de los canales (es decir, la ruta 13 de comunicación).
Cabe señalar que, en las simulaciones para determinar las curvas BER/FER ilustradas en las Figs. 112 a 114, la codificación BCH se realizó sobre la información, y los códigos BCH resultantes fueron sometidos a codificación LDPC. La Fig. 115 incluye diagramas que representan la codificación BCH que se usó en las simulaciones.
Más específicamente, la parte A de la Fig. 115 es un diagrama que ilustra los parámetros de la codificación BCH que se realiza antes de la codificación LDPC en un código LDPC de 64k, que se define en el estándar DVB-S.2.
En DVB-S.2, se añaden 192, 160 o 128 bits de redundancia según la tasa de codificación de un código LDPC, proporcionando de esta manera una codificación BCH con capacidad de corrección de errores de 12, 10 u 8 bits. La parte B de la Fig. 115 es un diagrama que ilustra los parámetros de la codificación BCH que se usaron en las simulaciones.
En las simulaciones, de manera similar al caso de DVB-S.2, se realizó una codificación BCH con capacidad de corrección de errores de 12, 10 u 8 bits mediante la adición de 192, 160 o 128 bits de redundancia según la tasa de codificación de un código LDPC.
[Configuración ejemplar del dispositivo 12 de recepción]
La Fig. 116 es un diagrama de bloques que ilustra una configuración ejemplar del dispositivo 12 de recepción ilustrado en la Fig. 7.
Una unidad 151 de procesamiento OFDM (operación OFDM) recibe una señal OFDM desde el dispositivo 11 de transmisión (Fig. 7), y realiza un procesamiento de señal sobre la señal OFDM. Los datos (es decir, los símbolos) obtenidos mediante el procesamiento de la señal realizado por la unidad 151 de procesamiento OFDM son suministrados a una unidad 152 de gestión de tramas (gestión de tramas).
La unidad 152 de gestión de tramas realiza el procesamiento (interpretación de tramas) de una trama que incluye los símbolos suministrados desde la unidad 151 de procesamiento OFDM para obtener símbolos de datos objetivo y símbolos de datos de control, y suministra los símbolos de los datos objetivo y los símbolos de los datos de control a los desintercaladores 161 y 153 de frecuencia, respectivamente.
El desintercalador 153 de frecuencia realiza el desintercalado de frecuencia sobre los símbolos suministrados desde la unidad 152 de gestión de tramas en unidades de símbolos, y suministra los símbolos resultantes a un decodificador 154 QAM.
El decodificador 154 QAM desintercala los símbolos (es decir, los símbolos mapeados a los puntos de constelación) suministrados desde el desintercalador 153 de frecuencia (es decir, decodifica los puntos de constelación) para la demodulación ortogonal, y suministra los datos resultantes (es decir, un código LDPC) a un decodificador 155 LDPC. El decodificador 155 LDPC realiza la decodificación LDPC sobre el código LDPC suministrado desde el decodificador 154 QAM, y suministra los datos LDPC objetivo resultantes (en el ejemplo ilustrado, un código BCH) a un decodificador 156 BCH.
El decodificador 156 BCH realiza la decodificación BCH sobre los datos LDPC objetivo suministrados desde el decodificador 155 LDPC, y emite los datos de control resultantes (señalización).
Por otra parte, el desintercalador 161 de frecuencia realiza el desintercalado de frecuencia sobre los símbolos suministrados desde la unidad 152 de gestión de tramas en unidades de símbolos, y suministra los símbolos resultantes a un decodificador 162 MISO/MIMO.
El decodificador 162 MISO/MIMO realiza la decodificación espacio-temporal sobre los datos (es decir, los símbolos) suministrados desde el desintercalador 161 de frecuencia, y suministra los datos resultantes a un desintercalador 163 de tiempo.
El desintercalador 163 de tiempo realiza el desintercalado de tiempo sobre los datos (es decir, símbolos) suministrados desde el decodificador 162 MISO/MIMO en unidades de símbolos, y suministra los datos resultantes a un decodificador 164 QAM.
El decodificador 164 QAM desmapea los símbolos (es decir, los símbolos mapeados a puntos de constelación) suministrados desde el desintercalador 163 de tiempo (es decir, decodifica los puntos de constelación) para la demodulación ortogonal, y suministra los datos resultantes (es decir, los símbolos) a un desintercalador 165 de bits. El desintercalador 165 de bits realiza el desintercalado de bits sobre los datos (es decir, los símbolos) suministrados desde el decodificador 164 QAM, y suministra el código LDPC resultante a un decodificador 166 LDPC.
El decodificador 166 LDPC realiza una decodificación LDPC sobre el código LDPC suministrado desde el desintercalador 165 de bits, y suministra los datos LDPC objetivo resultantes (en el ejemplo ilustrado, un código BCH) a un decodificador 167 BCH.
El decodificador 167 BCH realiza una decodificación BCH sobre los datos LDPC objetivo suministrados desde el decodificador 155 de LDPC, y suministra los datos resultantes a un desaleatorizador 168 BB.
El desaleatorizador 168 BB realiza una desaleatorización BB sobre los datos suministrados desde el decodificador 167 BCH, y suministra los datos resultantes a una unidad 169 de eliminación de elementos nulos (eliminación de nulos).
La unidad 169 de eliminación de elementos nulos borra los elementos nulos añadidos por el elemento 112 rellenador ilustrado en la Fig. 8 , de los datos suministrados desde el desaleatorizador 168 BB, y suministra los datos resultantes a un demultiplexor 170.
El demultiplexor 170 separa una o más secuencias (datos objetivo) multiplexadas en los datos suministrados desde la unidad 169 de eliminación de elementos nulos, realiza el procesamiento necesario y emite los datos resultantes como secuencias de salida.
Cabe señalar que el dispositivo 12 de recepción puede ser configurado de manera que no incluya algunos de los bloques ilustrados en la Fig. 116. Más específicamente, por ejemplo, si el dispositivo 11 de transmisión (Fig. 8 ) está configurado de manear que no incluya el intercalador 118 de tiempo, el codificador 119 MISO/MIMO, el intercalador 120 de frecuencia y el intercalador 124 de frecuencia, el dispositivo 12 de recepción puede estar configurado de manera que no incluya el desintercalador 163 de tiempo, el decodificador 162 MISO/MIMO, el desintercalador 161 de frecuencia y el desintercalador 153 de frecuencia, que son los bloques correspondientes al intercalador 118 de tiempo, el codificador 119 MISO/MIMO, el intercalador 120 de frecuencia y el Intercalador 124 de frecuencia del dispositivo 11 de transmisión, respectivamente.
La Fig. 117 es un diagrama de bloques que ilustra una configuración ejemplar del desintercalador 165 de bits ilustrado en la Fig. 116.
El desintercalador 165 de bits incluye un multiplexor (MUX) 54 y un desintercalador 55 de torsión de columna, y realiza el desintercalado (de bits) sobre los bits de símbolo de los símbolos suministrados desde el decodificador 164 QAM (Fig. 116).
Más específicamente, el multiplexor 54 realiza un procesamiento de permutación inversa (que es el procedimiento de permutación inversa), correspondiente al procesamiento de permutación realizado por el demultiplexor 25 ilustrado en la Fig. 9, sobre los bits de símbolo de los símbolos suministrados desde el decodificador 164 QAM. Es decir, el multiplexor 54 realiza el procesamiento de permutación inversa para recuperar las posiciones de los bits de código (es decir, los bits de símbolo) del código LDPC permutado mediante el procesamiento de permutación a las posiciones originales, y suministra el código LDPC resultante al desintercalador 55 de torsión de columna.
El desintercalador 55 de torsión de columna realiza un desintercalado de torsión de columna (que es el inverso del intercalado de torsión de columna), correspondiente al intercalado de torsión de columna como el procesamiento de reordenación realizado por el intercalador 24 de torsión de columna ilustrado en la Fig. 9, sobre el código LDPC suministrado desde el multiplexor 54. Es decir, el desintercalador 55 de torsión de columna realiza un procesamiento de reordenación inversa, por ejemplo, un desintercalado de torsión de columna, para recuperar los bits de código del código LDPC cuyo orden ha sido cambiado mediante el intercalado de torsión de columna como procesamiento de reordenación al orden original.
Específicamente, el desintercalador 55 de torsión de columna realiza un desintercalado de torsión de columna mediante la escritura y la lectura de los bits de código del código LDPC en y desde una memoria para el desintercalado que tiene una configuración similar a la de la memoria 31 ilustrada, típicamente, en la Fig. 28.
Sin embargo, el desintercalador 55 de torsión de columna escribe bits de código en la memoria para el desintercalado en su dirección de fila usando, como dirección de escritura, la dirección de lectura en la que se ha leído un bit de código desde la memoria 31. Además, el desintercalador 55 de torsión de columna lee los bits de código desde la memoria para el desintercalado en su dirección de columna usando, como dirección de lectura, la dirección de escritura en la que se ha escrito un bit de código en la memoria 31.
El código LDPC obtenido como resultado del desintercalado de torsión de columna es suministrado desde el desintercalador 55 de torsión de columna al decodificador 166 LDPC.
Aquí, si el código LDPC suministrado desde el decodificador 164 QAM al desintercalador 165 de bits ha sido sometido a intercalado de paridad, intercalado de torsión de columna y procesamiento de permutación, el desintercalador 165 de bits puede realizar todas las operaciones inversas, es decir, el desintercalado de paridad correspondiente al intercalado de paridad (que es la inversa de la operación de intercalado de paridad, es decir, desintercalado de paridad para recuperar los bits de código del código LDPC cuyo orden ha sido cambiado mediante el intercalado de paridad al orden original), el procesamiento de permutación inversa correspondiente al procesamiento de permutación, y el desintercalado de torsión de columna correspondiente al intercalado de torsión de columna.
Sin embargo, en el desintercalador 165 de bits ilustrado en la Fig. 117, el desintercalado de paridad no se realiza debido a que el desintercalador 165 de bits no incluye un bloque configurado para realizar el desintercalado de paridad correspondiente al intercalado de paridad, aunque incluye el multiplexor 54 que realiza el procesamiento de permutación inversa correspondiente al procesamiento de permutación y el desintercalador 55 de torsión de columna que realiza el desintercalado de torsión de columna correspondiente al intercalado de torsión de columna.
Por consiguiente, el código LDPC sobre el que se ha realizado el procedimiento de permutación inversa y el desintercalado de torsión de columna, pero sobre el que no se ha realizado el desintercalado de paridad, es suministrado desde (el desintercalador 55 de torsión de columna) del desintercalador 165 de bits al decodificador 166 LDPC.
El decodificador 166 LDPC realiza una decodificación LDPC sobre el código LDPC suministrado desde el desintercalador 165 de bits usando una matriz de comprobación de paridad transformada obtenida realizando al menos una permutación de columna correspondiente al intercalado de paridad en la matriz H de comprobación de paridad que el codificador 115 LDPC ilustrado en la Fig. 8 ha usado para la codificación LDPC, y emite los datos resultantes como resultado de la decodificación de los datos LDPC objetivo.
La Fig. 118 es un diagrama de flujo que representa un procesamiento realizado por el decodificador 164 QAM, el desintercalador 165 de bits y el decodificador 166 LDPC ilustrados en la Fig. 117.
En la etapa S111, el decodificador 164 QAM desmapea los símbolos (es decir, los símbolos mapeados a puntos de constelación) suministrados desde el desintercalador 163 de tiempo para la demodulación ortogonal, y suministra los datos resultantes al desintercalador 165 de bits. A continuación, el procedimiento pasa a la etapa S112.
En la etapa S112, el desintercalador 165 de bits realiza un desintercalado (es decir, un desintercalado de bits) sobre los bits de símbolo de los símbolos suministrados desde el decodificador 164 QAM. A continuación, el procedimiento pasa a la etapa S113.
Más específicamente, en la etapa S112, el multiplexor 54 en el desintercalador 165 de bits realiza un procesamiento de permutación inversa sobre los bits de símbolo de los símbolos suministrados desde el decodificador 164 QAM, y suministra los bits de código del código LDPC resultante al desintercalador 55 de torsión de columna.
El desintercalador 55 de torsión de columna realiza un desintercalado de torsión de columna sobre el código LDPC suministrado desde el multiplexor 54, y suministra el código LDPC resultante al decodificador 166 LDPC.
En la etapa S113, el decodificador 166 LDPC realiza una decodificación LDPC sobre el código LDPC suministrado desde el desintercalador 55 de torsión de columna usando la matriz H de comprobación de paridad que el codificador 115 LDPC ilustrado en la Fig. 8 ha usado para la codificación LDPC, es decir, usando una matriz de comprobación de paridad transformada obtenida realizando al menos una permutación de columna correspondiente al intercalado de paridad en la matriz H de comprobación de paridad, y emite los datos resultantes al decodificador 167 BCH como resultado de la decodificación de los datos LDPC objetivo.
Cabe señalar que, también en la Fig. 117, de manera similar al caso ilustrado en la Fig. 9, el multiplexor 54 que realiza el procesamiento de permutación inversa y el desintercalador 55 de torsión de columna que realiza el desintercalado de torsión de columna están configurados como unidades separadas, en aras de la conveniencia de la ilustración. Sin embargo, el multiplexor 54 y el desintercalador 55 de torsión de columna pueden estar integrados en una única unidad.
Además, si el intercalador 116 de bits ilustrado en la Fig. 9 no realiza el intercalado de torsión de columna, no es necesario proporcionar el desintercalador 55 de torsión de columna al desintercalador 165 de bits ilustrado en la Fig. 117.
A continuación, se describirá más detalladamente la decodificación LDPC realizada por el decodificador 166 LDPC ilustrado en la Fig. 116.
Tal como se ha descrito anteriormente, el decodificador 166 LDPC ilustrado en la Fig. 116 realiza una decodificación LDPC sobre el código LDPC suministrado desde el desintercalador 55 de torsión de columna, sobre el que se ha realizado un procesamiento de permutación inversa y un desintercalado de torsión de columna, pero sobre el que no se ha realizado un desintercalado de paridad usando una matriz de comprobación de paridad transformada obtenida realizando al menos una permutación de columna correspondiente al intercalado de paridad en la matriz H de comprobación de paridad que el codificador 115 LDPC ilustrado en la Fig. 8 ha usado para la codificación de LDPC.
Aquí, la decodificación LDPC puede ser realizada usando una matriz de comprobación de paridad transformada con el fin de mantener la frecuencia de operación dentro de un intervalo suficientemente factible mientras se reduce el tamaño de la circuitería. Dicha decodificación LDPC ha sido propuesto anteriormente (véase, por ejemplo, la patente japonesa N° 4224777).
Por consiguiente, en primer lugar, se describirá, con referencia a las Figs. 119 a 122, la decodificación LDPC usando una matriz de comprobación de paridad transformada, que ha sido propuesta anteriormente.
La Fig. 119 ilustra un ejemplo de una matriz H de comprobación de paridad de un código LDPC que tiene una longitud N de código de 90 y una tasa de codificación de 2/3.
Cabe señalar que, en la Fig. 119 (también en las Figs. 120 y 121, descritas a continuación), el "0" está representado por un punto (".").
En la matriz H de comprobación de paridad ilustrada en la Fig. 119, una matriz de paridad tiene una estructura escalonada.
La Fig. 120 ilustra una matriz H' de comprobación de paridad obtenida realizando una permutación de fila de la Expresión (11) y una permutación de columna de la Expresión (12) en la matriz H de comprobación de paridad ilustrada en la Fig. 119.
Permutación de fila: [E¡s+-t+1 pésima fila [a*s+1)-és¡m aH a
... [ 11 )
Permutación de columna: ( 6 x+ y+ 61 ) -ésima columna-» (5 y x 61 ) -ésima columna
( 12 )
Cabe señalar que, en las Expresiones (11) y (12), s, t, x e y son números enteros en los intervalos de 0 < s < 5, 0 < t < 6, 0 < x < 5 y 0 < t < 6, respectivamente.
La permutación de la fila de la Expresión (11) permite una permutación de manera que las filas 1a, 7a, 13a, 19a y 25a, cuyos números se dividen por 6, dando un resto de 1, se reemplazan por las filas 1a, 2a, 3 a, 4 a y 5 a, respectivamente, y las filas 2a, 8a, 14 a, 20a y 2 6 a, cuyos números se dividen por 6 dando un resto de 2, se reemplazan por las filas 6a, 7 a, 8 a, 9 a y 10a, respectivamente.
Además, la permutación de columna de la Expresión (12) permite una permutación de manera que las columnas 61a, 6 7 a, 7 3 a, 7 9 a y 8 5 a, cuyos números se dividen por 6, dando un resto de 1, de entre las columnas posteriores a la columna 61a (matriz de paridad), se reemplazan con las columnas 61a, 6 2 a, 6 3 a, 6 4 a y 6 5 a, respectivamente, y las columnas 62a, 68a, 74a, 80a y 86a, cuyos números se dividen por 6, dando un resto de 2, se reemplazan con las columnas 66a, 67a, 68a, 69a y 70a, respectivamente.
Una matriz obtenida realizando permutaciones de fila y columna en la matriz H de comprobación de paridad ilustrada en la Fig. 119 de la manera descrita anteriormente es la matriz H' de comprobación de paridad ilustrada en la Fig. 120. Aquí, la permutación de fila de la matriz H de comprobación de paridad no afectaría al orden de los bits de código del código LDPC.
Además, la permutación de columna de la Expresión (12) corresponde al intercalado de paridad que se realiza para intercalar el (K+qx+y+1)-ésimo bit de código a la (K+Py+x+1)-ésima posición de bit de código tal como se ha descrito anteriormente, cuando la longitud K de información es 60, el número de columnas P unidad de la estructura cíclica es 5, y el divisor q (= M/P) de la longitud M de paridad (en el ejemplo ilustrado, 30) es 6.
Por consiguiente, la matriz H' de comprobación de paridad ilustrada en la Fig. 120 es una matriz de comprobación de paridad transformada obtenida realizando al menos una permutación de columna para reemplazar la (K+qx+y+1)-ésima columna de la matriz H de comprobación de paridad (en adelante, denominada "matriz de comprobación de paridad original", según sea apropiado) ilustrada en la Fig. 119 con la (K+Py+x+1)-ésima columna.
Multiplicando la matriz H' de comprobación de paridad transformada ilustrada en la Fig. 120 mediante un código LDPC obtenido realizando la misma permutación que la de la Expresión (12) sobre el código LDPC de la matriz H de comprobación de paridad original ilustrada en la Fig. 119, se obtiene un vector cero. Más específicamente, si un vector de fila obtenido realizando la permutación de columna de la expresión (12) en un vector c de fila como un código LDPC (es decir, una palabra de código) de la matriz H de comprobación de paridad original se representa mediante c', HcT es un vector cero debido a la naturaleza de la matriz de comprobación de paridad y, por lo tanto, H'c'T es también un vector cero.
De esta manera, la matriz H' de comprobación de paridad transformada ilustrada en la Fig. 120 es una matriz de comprobación de paridad de un código c' LDPC obtenido realizando una permutación de columna de la Expresión (12) en el código c LDPC de la matriz H de comprobación de paridad original.
Por consiguiente, puede obtenerse un resultado de decodificación similar al obtenido mediante la decodificación del código LDPC de la matriz H de comprobación de paridad original usando la matriz H de verificación de paridad obtenida mediante la decodificación (decodificación LDPC) del código c' LDPC, que se obtiene realizando una permutación de columna de la Expresión (12) en el código c LDPC de la matriz H de comprobación de paridad original, usando la matriz H' de comprobación de paridad transformada ilustrada en la Fig. 120 y a continuación realizando la inversa de la permutación de columna de la expresión (12) en el código c' LDPC decodificado.
La Fig. 121 ilustra la matriz H' de comprobación de paridad transformada ilustrada en la Fig. 120, cuyos elementos están separados entre sí en unidades de matrices 5 x 5.
En la Fig. 121, la matriz H' de comprobación de paridad transformada está representada por una combinación de matrices unidad 5 x 5 (= P x P), matrices que tienen cada una uno o más elementos 1 en una matriz unidad que se reemplazan por elementos 0 (en adelante denominadas "matrices cuasi-unidad", según sea apropiado), matrices producidas desplazando cíclicamente una matriz unidad o una matriz cuasi-unidad (en adelante denominadas "matrices de desplazamiento" según sea apropiado), matrices cada una de las cuales es la suma de dos o más de entre una matriz unidad, una matriz cuasi-unidad y una matriz de desplazamiento (en adelante denominadas "matrices suma" según sea apropiado), y matrices cero 5 x 5.
Puede decirse que la matriz H' de comprobación de paridad transformada ilustrada en la Fig. 121 está compuesta de matrices unidad, matrices cuasi-unidad, matrices de desplazamiento, matrices suma y matrices cero 5 x 5. Estas matrices 5 x 5 (matrices unidad, matrices cuasi-unidad, matrices de desplazamiento, matrices suma y matrices cero) que constituyen la matriz H' de comprobación de paridad transformada se denominan en adelante "matrices componentes" según sea apropiado.
Un código LDPC de una matriz de comprobación de paridad representada por matrices componentes P x P puede ser decodificado usando una arquitectura que realiza simultáneamente un cálculo de nodo de comprobación y un cálculo de nodo variable, cada uno para los nodos P.
La Fig. 122 es un diagrama de bloques que ilustra una configuración ejemplar de un dispositivo de decodificación que realiza la operación de decodificación descrita anteriormente.
Más específicamente, la Fig. 122 ilustra una configuración ejemplar de un dispositivo de decodificación configurado para decodificar un código LDPC usando la matriz H' de comprobación de paridad transformada ilustrada en la Fig. 121, que se obtiene realizando al menos una permutación de columna de la Expresión (12) en la matriz H de comprobación de paridad original ilustrada en la Fig. 119.
El dispositivo de decodificación ilustrado en la Fig. 122 incluye una memoria 300 de almacenamiento de datos de borde que tiene seis FIFOs 3001 a 3006, un selector 301 para seleccionar una de las FIFOs 3001 a 3006, una unidad 302 de cálculo de nodo de comprobación, dos circuitos 303 y 308 de desplazamiento cíclico, una memoria 304 de almacenamiento de datos de borde que tiene 18 FIFOs 3041 a 30418, un selector 305 para seleccionar una de las FIFOs 3041 a 30418, una memoria 306 de datos recibidos para almacenar los datos recibidos, una unidad 307 de cálculo de nodo variable, una unidad 309 de cálculo de palabras decodificadas, una unidad 310 de reordenación de los datos recibidos y una unidad 311 de reordenación de datos decodificados.
Primero, se proporcionará una descripción de un procedimiento para almacenar los datos en las memorias 300 y 304 de almacenamiento de datos de borde.
La memoria 300 de almacenamiento de datos de borde incluye los seis FIFOs 3001 a 3006, cuyo número es igual al valor obtenido al dividir el número de filas de la matriz H' de comprobación de paridad transformada ilustrada en la Fig. 121, es decir, 30, por el número de filas de cada matriz componente (es decir, el número de columnas P de la estructura cíclica), es decir, 5. Cada una de las FIFOs 300y (y = 1, 2,..., 6 ) incluye áreas de almacenamiento de múltiples etapas, y está configurada de manera que los mensajes correspondientes a cinco bordes, cuyo número es igual al número de filas y al número de columnas de cada matriz componente (es decir, el número de columnas P unidad de la estructura cíclica), pueden ser leída y escrita simultáneamente desde/en el área de almacenamiento de cada etapa. Además, el número de etapas de las áreas de almacenamiento de cada una de las FIFOs 300y es 9, que es el máximo de los números de 1s (ponderaciones de Hamming) en la dirección de la fila de la matriz de comprobación de paridad transformada ilustrada en la Fig. 121.
Los datos (es decir, los mensajes vi desde los nodos variables) correspondientes a las posiciones de 1s en las filas primera a quinta de la matriz H' de comprobación de paridad transformada ilustrada en la Fig. 121 se almacenan en la FIFO 3001 de manera que cada fila se llena con los elementos de datos en la dirección lateral (es decir, los 0s se ignoran). Más específicamente, si el elemento de la j-ésima fila y la i-ésima columna se representa mediante (j, i), los datos correspondientes a las posiciones de 1s en la matriz unidad de 5 x 5 de (1,1) a (5,5) de la matriz H' de comprobación de paridad transformada se almacenan en el área de almacenamiento de la primera etapa de la FIFO 3001. Los datos correspondientes a las posiciones de 1s en la matriz de desplazamiento (que es una matriz de desplazamiento obtenida desplazando cíclicamente la matriz unidad de 5 x 5 hacia la derecha en tres elementos) de (1,21) a (5,25) de la matriz H' de comprobación de paridad transformada se almacenan en el área de almacenamiento de la segunda etapa. De manera similar, los datos se almacenan en las áreas de almacenamiento de las etapas tercera a octava en asociación con la matriz H' de comprobación de paridad transformada. Además, los datos correspondientes a las posiciones de 1 s en la matriz de desplazamiento (que es una matriz de desplazamiento obtenida reemplazando los 1s en la primera fila con 0s en la matriz unidad de 5 x 5 y desplazando cíclicamente la matriz unidad de 5 x 5 hacia la izquierda en un elemento) de (1,86) a (5,90) de la matriz H' de comprobación de paridad transformada se almacenan en el área de almacenamiento de la novena etapa.
Los datos correspondientes a las posiciones de 1s en las filas sexta a décima de la matriz H' de comprobación de paridad transformada ilustrada en la Fig. 121 se almacenan en la FIFO 3002. Más específicamente, los datos correspondientes a las posiciones de 1 s en una primera matriz de desplazamiento incluida en una matriz suma (que es una matriz suma que representa la suma de una primera matriz de desplazamiento obtenida desplazando cíclicamente la matriz unidad de 5 x 5 hacia la derecha en un elemento) y una segunda matriz de desplazamiento obtenida desplazando cíclicamente la matriz unidad de 5 x 5 hacia la derecha en dos elementos) de (6,1) a (10,5) de la matriz H' de comprobación de paridad transformada se almacenan en el área de almacenamiento de la primera etapa de la FIFO 3002. Además, los datos correspondientes a las posiciones de 1s en la segunda matriz de desplazamiento incluidos en la matriz suma de (6,1) a (10,5) de la matriz H' de comprobación de paridad transformada se almacenan en el área de almacenamiento de la segunda etapa.
Más específicamente, en el caso de una matriz componente que tiene una ponderación de 2 o más, cuando la matriz componente está representada por la suma de dos o más de una matriz unidad P x P que tiene una ponderación de 1, una matriz cuasi-unidad producida reemplazando uno o más elementos 1 en la matriz unidad con elementos 0 , y una matriz de desplazamiento producida desplazando cíclicamente la matriz unidad o la matriz cuasi-unidad, los datos correspondientes a las posiciones de 1 s en la matriz unidad que tiene una ponderación de 1 , la matriz cuasi-unidad o la matriz de desplazamiento (es decir, los mensajes correspondientes a los bordes que pertenecen a la matriz unidad, la matriz cuasi-unidad o la matriz de desplazamiento) se almacenan en la misma dirección (es decir, la misma FIFO de entre las FIFOs 3001 a 3006).
Los datos se almacenan también en las áreas de almacenamiento de las etapas tercera a novena subsiguientes en asociación con la matriz H' de comprobación de paridad transformada.
De manera similar, los datos se almacenan en las FIFOs 3003 a 3006 en asociación con la matriz H' de comprobación de paridad transformada.
La memoria 304 de almacenamiento de datos de borde incluye 18 FIFOs 3041 a 30418 , cuyo número es igual a un valor obtenido dividiendo el número de columnas de la matriz H' de comprobación de paridad transformada, es decir, 90, por el número de columnas de cada matriz componente (es decir, el número de columnas P unidad de la estructura cíclica), es decir, 5. Cada una de las FIFOs 304x (x = 1,2,..., 18) incluye áreas de almacenamiento de múltiples etapas, y está configurada de manera que los mensajes correspondientes a cinco bordes, cuyo número es igual al número de filas y al número de columnas de cada matriz componente (es decir, el número P de columnas unidad de la estructura cíclica), puede ser leída y escrita simultáneamente desde/en el área de almacenamiento de cada etapa.
Los datos (es decir, los mensajes uj desde los nodos de comprobación) correspondientes a las posiciones de 1s en las columnas primera a quinta de la matriz H' de comprobación de paridad transformada ilustrada en la Fig. 121 se almacenan en la FIFO 3041 de manera que cada columna se llena con los elementos de datos en la dirección longitudinal (es decir, los 0 s se ignoran). Específicamente, los datos correspondientes a las posiciones de 1 s en la matriz unidad de 5 x 5 de (1,1) a (5,5) de la matriz H' de comprobación de paridad transformada se almacenan en el área de almacenamiento de la primera etapa de la FIFO 3041. Los datos correspondientes a las posiciones de 1s en una primera matriz de desplazamiento incluida en una matriz suma (que es una matriz suma que representa la suma de una primera matriz de desplazamiento obtenida desplazando cíclicamente la matriz unidad de 5 x 5 hacia la derecha un elemento y una segunda matriz de desplazamiento obtenida desplazando cíclicamente la matriz unidad de 5 x 5 hacia la derecha en dos elementos) de (6,1) a (10,5) de la matriz H' de comprobación de paridad transformada se almacena en el área de almacenamiento de la segunda etapa. Además, los datos correspondientes a las posiciones de 1s en la segunda matriz de desplazamiento incluidos en la matriz suma de (6,1) a (10,5) de la matriz H' de comprobación de paridad transformada se almacenan en el área de almacenamiento de la tercera etapa.
Más específicamente, en el caso de una matriz componente que tiene una ponderación de 2 o más, cuando la matriz componente está representada por la suma de dos o más de entre una matriz unidad P x P que tiene una ponderación de 1 , una matriz cuasi-unidad producida reemplazando uno o más elementos 1 en la matriz unidad con elementos 0 y una matriz de desplazamiento producida desplazando cíclicamente la matriz unidad o la matriz cuasi-unidad, los datos correspondientes a las posiciones de 1 s en la matriz unidad tienen una ponderación de 1 , la matriz cuasi-unidad o la matriz de desplazamiento (es decir, los mensajes correspondientes a los bordes que pertenecen a la matriz unidad, la matriz cuasi-unidad o la matriz de desplazamiento) se almacenan en la misma dirección (es decir, la misma FIFO de entre las FIFOs 3041 a 30418).
Los datos se almacenan también en las áreas de almacenamiento de las etapas cuarta y quinta posteriores en asociación con la matriz H' de comprobación de paridad transformada. El número de etapas de las áreas de almacenamiento de la FIFO 3041 es 5, que es el máximo de los números de 1s (ponderaciones de Hamming) en la dirección de la fila en las columnas primera a quinta de la matriz H' de comprobación de paridad transformada.
De manera similar, los datos se almacenan también en las FIFOs 3042 y 3043 en asociación con la matriz H' de comprobación de paridad transformada, siendo las longitudes respectivas (el número de etapas) 5. Los datos se almacenan también en las FIFOs 3044 a 30412 en asociación con la matriz H' de comprobación de paridad transformada, siendo las longitudes respectivas 3. Los datos se almacenan también en las FIFOs 30413 a 30418 en asociación con la matriz H' de comprobación de paridad transformada, siendo las longitudes respectivas 2.
Ahora, se proporcionará una descripción del funcionamiento del dispositivo de decodificación ilustrado en la Fig. 122.
La memoria 300 de almacenamiento de datos de borde, que incluye las seis FIFOs 3001 a 3006, selecciona una FIFO para almacenar datos de entre las FIFOs 3001 a 3006 según la información (datos de matriz) D312 que indica a qué fila en la matriz H' de comprobación de paridad transformada ilustrada en la Fig. 121 pertenecen los cinco mensajes D311 suministrados desde el circuito 308 de desplazamiento cíclico situado aguas arriba de la memoria 300 de almacenamiento de datos de borde, y almacena colectivamente los cinco mensajes D311 en la FIFO seleccionada en orden. Además, durante la lectura de datos, la memoria 300 de almacenamiento de datos de borde lee cinco mensajes D3001 de borde in orden desde la FIFO 3001, y suministra los mensajes D3001 leídos al selector 301 situado aguas abajo de la memoria 300 de almacenamiento de datos de borde. Una vez completada la lectura de mensajes desde la FIFO 3001, la memoria 300 de almacenamiento de datos de borde lee también los mensajes en orden desde las FIFOs 3002 a 3006, y suministra los mensajes leídos al selector 301.
El selector 301 selecciona cinco mensajes recibidos desde una FIFO desde la cual se están leyendo datos actualmente de entre las FIFOs 3001 a 3006 según una señal D301 de selección, y suministra los mensajes seleccionados como mensajes D302 a la unidad 302 de cálculo de nodo de comprobación.
La unidad 302 de cálculo de nodo de comprobación incluye cinco elementos 3021 a 3025 de cálculo de nodo de comprobación, y realiza el cálculo de nodo de comprobación según la Expresión (7) usando los mensajes D302 (D3021 a D3025) (correspondientes a los mensajes vi en Expresión (7)) suministrados mediante el selector 301. La unidad 302 de cálculo de nodo de comprobación suministra cinco mensajes D303 (D3031 a D303s) (correspondientes a los mensajes uj en la Expresión (7)) obtenidos como resultado del cálculo del nodo de comprobación al circuito 303 de desplazamiento cíclico.
El circuito 303 de desplazamiento cíclico desplaza cíclicamente los cinco mensajes D3031 a D3035 determinados por la unidad 302 de cálculo de nodo de comprobación en base a la información (datos matriciales) D305 que indica el número de matrices unidad originales (o matrices cuasi-unidad) que han sido desplazadas cíclicamente en la matriz H' de comprobación de paridad transformada para obtener el borde correspondiente, y suministra los resultados a la memoria 304 de almacenamiento de datos de borde como mensajes D304.
La memoria 304 de almacenamiento de datos de borde, que incluye las 18 FIFOs 3041 a 30418, selecciona una FIFO para almacenar datos de entre las FIFOs 3041 a 30418 según la información D305 que indica a qué fila en la matriz H' de comprobación de paridad transformada pertenecen los cinco mensajes D304 suministrados desde el circuito 303 de desplazamiento de ciclo situado aguas arriba de la memoria 304 de almacenamiento de datos de borde y almacena colectivamente los cinco mensajes D304 en la FIFO seleccionada en orden. Además, durante la lectura de datos, la memoria 304 de almacenamiento de datos de borde lee cinco mensajes D3061 en orden desde la FIFO 3041, y suministra los mensajes D3061 leídos al selector 305 situado aguas abajo de la memoria 304 de almacenamiento de datos de borde. Una vez completada la lectura de los datos desde la FIFO 3041, la memoria 304 de almacenamiento de datos de borde lee también mensajes en orden desde las FIFOs 3042 a 30418, y suministra los mensajes leídos al selector 305.
El selector 305 selecciona cinco mensajes desde una FIFO desde la que se están leyendo datos actualmente de entre las FIFOs 3041 a 30418 según una señal D307 de selección, y suministra los mensajes seleccionados como mensajes D308 a la unidad 307 de cálculo de nodo variable y a la unidad 309 de cálculo de palabras decodificadas.
Por otra parte, la unidad 310 de reordenación de datos recibidos reordena un código D313 LDPC correspondiente a la matriz H de comprobación de paridad ilustrada en la Fig. 119, que ha sido recibido a través de la ruta 13 de comunicación, realizando una permutación de columna de la Expresión (12), y suministra los datos resultantes como datos D314 recibidos a la memoria 306 de datos recibidos. La memoria 306 de datos recibidos calcula las LLRs (Log-Likelihood Ratios, relaciones de probabilidad logarítmica) de recepción a partir de datos D314 recibidos suministrados desde la unidad 310 de reordenación de datos recibidos, y almacena las LLRs de recepción. La unidad 310 de reordenación de datos recibidos suministra colectivamente además las LLR de recepción en unidades de cinco LLRs de recepción como valores D309 de recepción a la unidad 307 de cálculo de nodo variable y a la unidad 309 de cálculo de palabras decodificadas.
La unidad 307 de cálculo de nodo variable incluye cinco elementos 3071 a 3075 de cálculo de nodo variable, y realiza el cálculo de nodo variable según la Expresión (1) usando los mensajes D308 (D3081 a D308s) (es decir, los mensajes uj en la Expresión (1)) suministrados a través del selector 305 y los cinco valores D309 de recepción (valores u0i de recepción en la Expresión (1)) suministrados desde la memoria 306 de datos recibidos. La unidad 307 de cálculo de nodo variable suministra los mensajes D310 (D3101 a D310s) (es decir, los mensajes vi en la Expresión (1)) obtenidos como resultado del cálculo del circuito 308 de desplazamiento cíclico.
El circuito 308 de desplazamiento cíclico desplaza cíclicamente los mensajes D3101 a D3105 calculados por la unidad 307 de cálculo de nodo variable en base a información que indica el número de matrices unidad originales (o matrices cuasi-unidad) que han sido desplazadas cíclicamente en la matriz H' de comprobación de paridad transformada para obtener el borde correspondiente, y suministra los resultados a la memoria 300 de almacenamiento de datos de borde como mensajes D311.
La serie de operaciones descritas anteriormente pueden ser realizadas una vez para realizar una decodificación única de un código LDPC (cálculo de nodo variable y cálculo de nodo de comprobación). Después de decodificar un código LDPC un cierto número de veces, el dispositivo de decodificación ilustrado en la Fig. 122 determina y emite los datos decodificados finales a través de la unidad 309 de cálculo de palabras decodificadas y la unidad 311 de reordenación de datos decodificados.
Más específicamente, la unidad 309 de cálculo de palabras decodificadas incluye cinco elementos 3091 a 3095 de cálculo de palabras decodificadas, y sirve como etapa final de una pluralidad de operaciones de decodificación para calcular los datos decodificados (es decir, una palabra decodificada) según la Expresión (5) usando los cinco mensajes D308 (D3081 a D3085 ) (es decir, los mensajes uj en la Expresión (5)) emitidos desde el selector 305 y los cinco valores D309 de recepción (es decir, los valores u0 i de recepción en la Expresión (5)) suministrados desde la memoria 306 de datos recibidos. La unidad 309 de cálculo de palabras decodificadas suministra los datos D315 decodificados obtenidos como un resultado del cálculo a la unidad 311 de reordenación de datos decodificados.
La unidad 311 de reordenación de datos decodificados cambia el orden de los datos D315 decodificados suministrados desde la unidad 309 de cálculo de palabras decodificadas realizando la inversa de la permutación de columna de la Expresión (12), y emite los datos resultantes como datos D316 decodificados finales.
Tal como se ha descrito anteriormente, una o ambas de entre la permutación de fila y la permutación de columna se realizan en la matriz de comprobación de paridad (es decir, la matriz de comprobación de paridad original) para convertir la matriz de comprobación de paridad en una matriz de comprobación de paridad (es decir, una matriz de comprobación de paridad transformada) que puede ser representada mediante una combinación de matrices componentes, concretamente, una matriz unidad de P x P, una matriz cuasi-unidad producida reemplazando uno o más elementos 1 con elementos 0, una matriz de desplazamiento producida desplazando cíclicamente la matriz unidad o la matriz cuasi-unidad, una matriz suma que representa la suma de dos o más de entre la matriz unidad, la matriz cuasi-unidad y la matriz de desplazamiento, y una matriz cero de P x P. Esto permite la decodificación de un código LDPC usando una arquitectura que realiza simultáneamente el cálculo del nodo de comprobación y el cálculo del nodo variable, cada uno para P nodos, donde P es menor que el número de filas o el número de columnas de la matriz de comprobación de paridad. El uso de una arquitectura que realiza simultáneamente el cálculo de nodos (cálculo de nodos de comprobación y cálculo de nodos variables) para P nodos, donde P es menor que el número de filas o el número de columnas de una matriz de comprobación de paridad, hace posible realizar una decodificación repetitiva múltiple mientras se mantiene la frecuencia operativa dentro de un intervalo factible, en comparación con el caso en el que el cálculo de nodos se realiza simultáneamente para los nodos, cuyo número es igual al número de filas o al número de columnas de una matriz de comprobación de paridad.
De manera similar al dispositivo de decodificación ilustrado en la Fig. 122, el decodificador 166 LDPC incluido en el dispositivo 12 de recepción ilustrado en la Fig. 116 está configurado para realizar una decodificación LDPC, por ejemplo, realizando simultáneamente el cálculo del nodo de comprobación y el cálculo del nodo variable, cada uno para P nodos.
Más específicamente, se supone ahora que, en aras de facilitar la descripción, la matriz de comprobación de paridad del código LDPC emitido desde el codificador 115 LDPC incluida en el dispositivo 11 de transmisión ilustrado en la Fig. 8 es, por ejemplo, la matriz H de comprobación de paridad ilustrada en la Fig. 119 en la que una matriz de paridad tiene una estructura escalonada. En este caso, el intercalador 23 de paridad del dispositivo 11 de transmisión realiza un intercalado de paridad para intercalar el (K+qx+y+1)-ésimo bit del código en la posición del (K+Py+x+1)-ésimo bit de código, siendo la longitud K de información de 60, siendo el número de columnas P de la estructura cíclica 5 y siendo el divisor q (= M/P) de la longitud M de paridad 6.
Tal como se ha descrito anteriormente, esta operación de intercalado de paridad corresponde a la permutación de columna de la Expresión (12). De esta manera, no es necesario que el decodificador 166 LDPC realice la permutación de columna de la Expresión (12).
Por lo tanto, en el dispositivo 12 de recepción ilustrado en la Fig. 116, tal como se ha descrito anteriormente, un código LDPC sobre el que no se ha realizado un desintercalado de paridad, es decir, un código LDPC sobre el que se ha realizado la permutación de columna de la Expresión (12), es suministrado desde el desintercalador 55 de torsión de columna al decodificador 166 LDPC. El decodificador 166 LDPC realiza un procesamiento similar al del dispositivo de decodificación ilustrado en la Fig. 122, excepto que no se realiza la permutación de columna de la Expresión (12).
Más específicamente, la Fig. 123 ilustra una configuración ejemplar del decodificador 166 LDPC ilustrado en la Fig. 116.
En la Fig. 123, el decodificador 166 LDPC tiene una configuración similar a la del dispositivo de decodificación ilustrado en la Fig. 122, excepto que la unidad 310 de reordenación de datos recibidos ilustrada en la Fig. 122 no está incluida, y realiza un procesamiento similar al del dispositivo de decodificación ilustrado en la Fig. 122, excepto que no se realiza la permutación de columna de la Expresión (12), que no se describe aquí.
Tal como se ha descrito anteriormente, el decodificador 166 LDPC puede estar configurado de manera que no incluya la unidad 310 de reordenación de datos recibidos, y puede tener un tamaño más pequeño que el dispositivo de decodificación ilustrado en la Fig. 122.
Cabe señalar que, en las Figs. 119 a 123, en aras de facilitar la ilustración, la longitud N de código de un código LDPC es 90, la longitud K de información es 60, el número de columnas P de la estructura cíclica (es decir, el número de filas y el número de columnas de una matriz componente) es 5, y el divisor q (= M/P) de la longitud M de paridad es 6. Sin embargo, la longitud N de código, la longitud K de información, el número de columnas P de la estructura cíclica y el divisor q (= M/P) no están limitados a los valores descritos anteriormente.
Más específicamente, el codificador 115 LDPC en el dispositivo 11 de transmisión ilustrado en la Fig. 8 emite un código LDPC, por ejemplo, con la longitud N de código de 64.800, 16.200, o similar, estando la longitud K de información determinada por N - Pq (= N - M), el número de columnas P unidad de la estructura cíclica es 360 y el divisor q viene determinado por M/P. El decodificador 166 LDPC ilustrado en la Fig. 123 puede ser usado para realizar una decodificación LDPC sobre el código LDPC descrito anteriormente realizando simultáneamente el cálculo del nodo de comprobación y el cálculo del nodo variable, cada uno para los P nodos.
La Fig. 124 incluye diagramas que representan el procesamiento del multiplexor 54 incluido en el desintercalador 165 de bits ilustrado en la Fig. 117.
Más específicamente, la parte A de la Fig. 124 ilustra una configuración funcional ejemplar del multiplexor 54.
El multiplexor 54 incluye una unidad 1001 de permutación inversa y una memoria 1002.
El multiplexor 54 realiza un procesamiento de permutación inversa (que es el inverso del procedimiento de permutación), correspondiente al procesamiento de permutación realizado por el demultiplexor 25 del dispositivo 11 de transmisión, sobre los bits de símbolo de los símbolos suministrados por el decodificador 164 QAM situado aguas arriba del multiplexor 54. Es decir, el multiplexor 54 realiza un procesamiento de permutación inversa para recuperar las posiciones de los bits de código (bits de símbolo) del código LDPC que han sido permutados mediante el procesamiento de permutación a las posiciones originales, y suministra el código LDPC resultante al desintercalador 55 de torsión de columna situado aguas abajo del multiplexor 54.
Más específicamente, mb bits y0 , y1,..., ymb-1 de símbolo de b símbolos son suministrados a la unidad 1001 de permutación inversa en el multiplexor 54 en unidades de b símbolos (consecutivos).
La unidad 1001 de permutación inversa realiza una permutación inversa para recuperar los mb bits y0 a ymb-i del símbolo en el orden de los mb bits bü, b1,..., bmb-1 de código originales (es decir, el orden de los bits bü a bmb-1 de código antes de que la unidad 32 de permutación incluida en el demultiplexor 25 en el lado del dispositivo 11 de transmisión realizara la permutación), y emite los mb bits b0 a bmb-1 de código resultantes.
De manera similar a la memoria 31 incluida en el demultiplexor 25 en el lado del dispositivo 11 de transmisión, la memoria 10 02 tiene una capacidad de almacenamiento para almacenar mb bits en su dirección de fila (horizontal) y N/(mb) bits en su dirección de columna (vertical). En otras palabras, la memoria 1002 incluye mb columnas para almacenar N/(mb) bits.
Cabe señalar que los bits de código del código LDPC emitidos desde la unidad 1001 de permutación inversa se escriben en la memoria 1002 en la dirección en la que se lee un bit de código desde la memoria 31 en el demultiplexor 25 del dispositivo 11 de transmisión, y los bits de código escritos en la memoria 1002 se leen desde la memoria 1002 en la dirección en la que se escribe un bit de código en la memoria 31.
Por consiguiente, tal como se ilustra en la parte A de la Fig. 124, el multiplexor 54 del dispositivo 12 de recepción escribe los bits de código del código LDPC emitido desde la unidad 1001 de permutación inversa en la dirección de fila en unidades de mb bits, donde la operación de escritura se mueve desde la parte superior a la parte inferior de la memoria 1 0 0 2 , empezando desde la primera fila.
Además, cuando se completa la escritura de los bits de código correspondientes a una longitud de código, el multiplexor 54 lee los bits de código desde la memoria 1002 en la dirección de la columna, y suministra los bits de código leídos al desintercalador 55 de torsión de columna situado corriente abajo del multiplexor 54.
Aquí, la parte B de la Fig. 124 es un diagrama que ilustra la lectura de los bits de código desde la memoria 1002.
El multiplexor 54 lee los bits de código del código LDPC (en la dirección de la columna) desde la parte superior a la parte inferior de cada una de las columnas de la memoria 1 0 0 2 , donde la operación de lectura se mueve hacia la derecha, empezando desde la columna de la izquierda.
La Fig. 125 es un diagrama que representa el procesamiento del desintercalador 55 de torsión de columna incluido en el desintercalador 165 de bits ilustrado en la Fig. 117.
Más específicamente, la Fig. 125 ilustra una configuración ejemplar de la memoria 1002 del multiplexor 54.
La memoria 1002 tiene una capacidad de almacenamiento para almacenar mb bits en su dirección de columna (vertical) y N/(mb) bits en su dirección de fila (horizontal), e incluye mb columnas.
El desintercalador 55 de torsión de columna realiza un desintercalado de torsión de columna controlando una posición de inicio de lectura cuando los bits de código del código LDPC se escriben en la memoria 1002 en la dirección de la fila y se leen desde la memoria 100 2 en la dirección de la columna.
Más específicamente, el desintercalador 55 de torsión de columna realiza un procesamiento de reordenación inversa para recuperar los bits de código cuyo orden ha sido cambiado mediante el intercalado de torsión de columna al orden original, cambiando la posición de inicio de lectura con la que se inicia la lectura de un bit de código, según se desee, para cada una de entre una pluralidad de columnas.
Aquí, la Fig. 125 ilustra una configuración ejemplar de la memoria 1002 en un caso en el que, tal como se ha descrito con referencia a la Fig. 28, el esquema de modulación es 16APSK, 16QAM o similar y el múltiplo b es 1. En este caso, el número m de bits de un símbolo es 4, y la memoria 1002 incluye 4 columnas (= mb).
En lugar del multiplexor 54, el desintercalador 55 de torsión de columna escribe los bits de código del código LDPC emitido desde la unidad 1001 de permutación inversa en la dirección de la fila, donde la operación de escritura se mueve hacia abajo secuencialmente desde la primera fila de la memoria 1 0 0 2.
Además, cuando se completa la escritura de los bits de código correspondientes a una longitud de código, el desintercalador 55 de torsión de columna lee los bits de código desde la memoria 1002 (en la dirección de la columna) desde la parte superior a la parte inferior, donde la operación de lectura se mueve hacia la derecha, empezando desde la columna más a la izquierda.
Cabe señalar que el desintercalador 55 de torsión de columna lee los bits de código desde la memoria 1002, usando, como posición de inicio de lectura del bit de código, la posición de inicio de escritura desde la cual el intercalador 24 de torsión de columna en el lado del dispositivo 11 de transmisión escribe un bit de código.
Más específicamente, si la dirección de la posición de la primera (o parte superior) de cada columna está representada por 0 y las direcciones de las posiciones respectivas en la dirección de la columna están representadas por números enteros dispuestos en orden ascendente, el desintercalador 55 de torsión de columna establece la posición de inicio de lectura para la columna más a la izquierda a la posición en la dirección 0 , la posición de inicio de lectura para la segunda columna (desde la izquierda) a la posición en la dirección 2 , la posición de inicio de lectura para la tercera columna a la posición en la dirección 4 y la posición de inicio de lectura para la cuarta columna a la posición en la dirección 7 en un caso en el que el esquema de modulación es 16APSK o 16QAM y el múltiplo b es 1.
Cabe señalar que, después de leer los bits de código hasta la parte inferior de la columna para la que la posición de inicio de lectura se establece en una posición distinta de la posición en la dirección 0, el desintercalador 55 de torsión de columna vuelve a la primera posición (es decir, la posición en la dirección 0 ), y lee los bits de código hasta la posición inmediatamente anterior a la posición de inicio de lectura. A continuación, el desintercalador 55 de torsión de columna realiza la lectura desde la columna subsiguiente (derecha).
La operación de desintercalado de torsión de columna descrita anteriormente permite que el orden de los bits de código que han sido reordenados mediante el intercalado de torsión de columna vuelva al orden original.
La Fig. 126 es un diagrama de bloques que ilustra otra configuración ejemplar del desintercalador 165 de bits ilustrado en la Fig. 116.
Cabe señalar que, en la Fig. 126, a las partes correspondientes a las ilustradas en la Fig. 117 se les asignan los mismos números de referencia, y se omitirá una descripción posterior de las mismas, según sea apropiado.
Más específicamente, el desintercalador 165 de bits ilustrado en la Fig. 126 tiene una configuración similar a la ilustrada en la Fig. 117, excepto que se incluye además un desintercalador 1011 de paridad.
En la Fig. 126, el desintercalador 165 de bits incluye un multiplexor (MUX) 54, un desintercalador 55 de torsión de columna y un desintercalador 1011 de paridad, y realiza un desintercalado de bits en los bits de código del código LDPC suministrado desde el decodificador 164 QAM.
Más específicamente, el multiplexor 54 realiza un procesamiento de permutación inversa (que es el inverso del procedimiento de permutación), correspondiente al procesamiento de permutación realizado por el demultiplexor 25 del dispositivo 11 de transmisión, sobre el código LDPC suministrado desde el decodificador 164 QAM. Es decir, el multiplexor 54 realiza un procesamiento de permutación inversa para recuperar las posiciones de los bits de código permutados mediante el procesamiento de permutación a las posiciones originales, y suministra el código LDPC resultante al desintercalador 55 de torsión de columna.
El desintercalador 55 de torsión de columna realiza un desintercalado de torsión de columna, correspondiente al intercalado de torsión de columna como el procedimiento de reordenación realizado por el intercalador 24 de torsión de columna del dispositivo 11 de transmisión, sobre el código LDPC suministrado desde el multiplexor 54.
El código LDPC obtenido como resultado del desintercalado de torsión de columna es suministrado desde el desintercalador 55 de torsión de columna al desintercalador 1011 de paridad.
El desintercalador 1011 de paridad realiza un desintercalado de paridad (que es la inversa de la operación de intercalado de paridad), correspondiente al intercalado de paridad realizado por el intercalador 23 de paridad del dispositivo 11 de transmisión, sobre los bits de código sobre los que el desintercalador 55 de torsión de columna ha realizado el desintercalado de torsión de columna. Es decir, el desintercalador 1011 de paridad realiza un desintercalado de paridad para recuperar los bits de código del código LDPC cuyo orden ha sido cambiado mediante el intercalado de paridad al orden original.
El código LDPC obtenido como resultado del desintercalado de paridad es suministrado desde el desintercalador 1011 de paridad al decodificador 166 LDPC.
Por consiguiente, el desintercalador 165 de bits ilustrado en la Fig. 126 suministra un código LDPC sobre el que se ha realizado un procesamiento de permutación inversa, un desintercalado de torsión de columna y un desintercalado de paridad, es decir, un código LDPC obtenido mediante codificación LDPC según la matriz H de comprobación de paridad, al decodificador 166 LDPC.
El decodificador 166 LDPC realiza una decodificación LDPC sobre el código LDPC suministrado desde el desintercalador 165 de bits usando la matriz H de comprobación de paridad que el codificador 115 LDPC del dispositivo 11 de transmisión ha usado para la codificación LDPC. Más específicamente, el decodificador 166 LDPC realiza una decodificación LDPC sobre el código LDPC suministrado desde el desintercalador 165 de bits usando la matriz H de comprobación de paridad que el codificador 115 LDPC del dispositivo 11 de transmisión ha usado para la codificación LDPC, o usando una matriz de comprobación de paridad transformada obtenida realizando al menos una permutación de columna, correspondiente al intercalado de paridad, en la matriz H de comprobación de paridad.
Aquí, en la Fig. 126, un código LDPC obtenido mediante la codificación LDPC según la matriz H de comprobación de paridad es suministrado desde (el desintercalador 1011 de paridad de) el desintercalador 165 de bits al decodificador 166 LDPC. Por consiguiente, en un caso en el que la decodificación LDPC del código LDPC es realizada usando la matriz H de comprobación de paridad que el codificador 115 LDPC del dispositivo 11 de transmisión ha usado para la codificación LDPC, el decodificador 166 LDPC puede ser implementado, por ejemplo, como un dispositivo de decodificación configurado para realizar una decodificación LDPC usando un procedimiento de decodificación en serie completa para realizar secuencialmente el cálculo de los mensajes (es decir, los mensajes de nodos de comprobación y los mensajes de nodos variables) nodo por nodo, o un dispositivo de decodificación configurado para realizar una decodificación LDPC usando un procedimiento de decodificación paralelo completo para realizar simultáneamente (o en paralelo) el cálculo de los mensajes para todos los nodos.
Además, en un caso en el que el decodificador 166 LDPC realiza una decodificación LDPC sobre un código LDPC usando una matriz de comprobación de paridad transformada obtenida realizando al menos una permutación de columna, correspondiente al intercalado de paridad, en la matriz H de comprobación de paridad que el codificador 115 LDPC del transmisor el dispositivo 11 ha usado para la codificación LDPC, el decodificador 166 LDPC puede estar implementado como un dispositivo de decodificación que tiene una arquitectura que realiza simultáneamente el cálculo de los nodos de comprobación y el cálculo de los nodos variables, cada uno para P (o un divisor de P distinto de 1) nodos, que es el dispositivo de decodificación (Fig. 122) que incluye la unidad 310 de reordenación de datos recibidos configurada para realizar una permutación de columna similar a la permutación de columna para obtener una matriz de comprobación de paridad transformada sobre un código LDPC para reordenar los bits de código del código LDPC.
Cabe señalar que, en la Fig. 126, el multiplexor 54 que realiza el procesamiento de permutación inversa, el desintercalador 55 de torsión de columna que realiza el desintercalado de torsión de columna y el desintercalador 1011 de paridad que realiza el desintercalado de paridad están configurados como unidades separadas, en aras de la conveniencia de ilustración. Sin embargo, dos o más de entre el multiplexor 54, el desintercalador 55 de torsión de columna y el desintercalador 1011 de paridad pueden ser integrados en una única unidad, de manera similar al intercalador 23 de paridad, el intercalador 24 de torsión de columna y el demultiplexor 25 del dispositivo 11 de transmisión.
Además, si el intercalador 116 de bits (Fig. 8 ) del dispositivo 11 de transmisión está configurado de manera que no incluya el intercalador 23 de paridad o el intercalador 24 de torsión de columna, el desintercalador 165 de bits ilustrado en la Fig. 126 puede estar configurado de manera que no incluya el desintercalador 55 de torsión de columna o el desintercalador 1011 de paridad.
También en este caso, el decodificador 166 LDPC puede ser implementado como un dispositivo de decodificación del tipo de decodificación en serie completa que realiza una decodificación LDPC usando la matriz H de comprobación de paridad, un dispositivo de decodificación del tipo de decodificación paralela completa que realiza la decodificación LDPC usando la propia matriz H de comprobación de paridad, o el dispositivo de decodificación (Fig. 122) que incluye la unidad 310 de reordenación de datos recibidos configurada para realizar una decodificación LDPC realizando simultáneamente el cálculo de nodo de comprobación y el cálculo de nodo variable cada uno para los P nodos usando una matriz H' de comprobación de paridad transformada.
[Configuración ejemplar del sistema de recepción]
La Fig. 127 es un diagrama de bloques que ilustra una primera configuración ejemplar de un sistema de recepción al que puede aplicarse el dispositivo 12 de recepción.
En la Fig. 127, el sistema de recepción incluye una unidad 1101 de adquisición, una unidad 1102 de procesamiento de decodificación de ruta de transmisión y una unidad 1103 de procesamiento de decodificación de fuente de información.
La unidad 1101 de adquisición adquiere una señal que incluye un código LDPC obtenido realizando al menos una codificación LDPC sobre los datos LDPC objetivo, tales como datos de imagen y datos de audio de un programa, a través de una ruta de transmisión (o ruta de comunicación) (no ilustrada), tal como una difusión digital terrestre, una difusión digital satelital, una red CATV, Internet o cualquier otra red adecuada, y suministra la señal a la unidad 1102 de procesamiento de decodificación de ruta de transmisión.
Aquí, en un caso en el que la unidad 1101 de adquisición adquiere una señal transmitida, por ejemplo, desde una estación de difusión terrestre, satelital, CATV (Cable Television, televisión por cable) o cualquier otra red, la unidad 1101 de adquisición puede ser implementada como un sintonizador, un STB (Set Top Box, codificador) o similar. Además, en un caso en el que la unidad 1101 de adquisición adquiere una señal transmitida usando, por ejemplo, tecnología de multidifusión tal como IPTV (Internet Protocol Television, televisión bajo protocolo de internet) desde un servidor web, la unidad 1101 de adquisición puede ser implementada como una red I/F (Interfaz), tal como como NIC (Network Interface Card, tarjeta de interfaz de red).
La unidad 1102 de procesamiento de decodificación de ruta de transmisión corresponde al dispositivo 12 de recepción. La unidad 1102 de procesamiento de decodificación de ruta de transmisión realiza un procedimiento de decodificación de ruta de transmisión, que incluye al menos un procesamiento para corregir los errores causados en una ruta de transmisión, sobre la señal adquirida por la unidad 1101 de adquisición a través de una ruta de transmisión, y suministra la señal resultante a la unidad 1103 de procesamiento de decodificación de ruta de transmisión.
Más específicamente, la señal adquirida por la unidad 1101 de adquisición a través de una ruta de transmisión es una señal obtenida realizando al menos una codificación de corrección de errores para corregir los errores causados en una ruta de transmisión. La unidad 1102 de procesamiento de decodificación de ruta de transmisión realiza un procedimiento de decodificación de ruta de transmisión, tal como un procedimiento de corrección de errores sobre la señal descrita anteriormente.
Aquí, los ejemplos de la codificación de corrección de errores incluyen la codificación LDPC y la codificación BCH. Aquí, se realiza al menos la codificación LDPC como codificación de corrección de errores.
Además, el procedimiento de decodificación de ruta de transmisión puede incluir, por ejemplo, una demodulación de las señales de modulación.
La unidad 1103 de procesamiento de decodificación de fuente de información realiza un procedimiento de decodificación de fuente de información, que incluye al menos un procesamiento para expandir la información comprimida a la información original, sobre la señal sobre la que se ha realizado el procedimiento de decodificación de ruta de transmisión.
Más específicamente, la señal adquirida por la unidad 1101 de adquisición a través de una ruta de transmisión puede haber sido sometida a codificación de compresión para comprimir la información con el fin de reducir la cantidad de datos, tales como datos de imagen y datos de audio, como información. En este caso, la unidad 1103 de procesamiento de decodificación de fuente de información realiza un procedimiento de decodificación de fuente de información, tal como un procesamiento para expandir la información comprimida a la información original (es decir, el procesamiento de expansión), sobre la señal sobre la que se ha realizado el procedimiento de decodificación de ruta de transmisión.
Cabe señalar que, si la señal adquirida por la unidad 1101 de adquisición a través de una ruta de transmisión no ha sido sometida a codificación de compresión, la unidad 1103 de procesamiento de decodificación de fuente de información no realiza un procesamiento para expandir la información comprimida a la información original.
Aquí, los ejemplos del procedimiento de expansión incluyen la decodificación MPEG. Además, el procedimiento de decodificación de ruta de transmisión puede incluir una desaleatorización, etc. además del procesamiento de expansión.
En el sistema de recepción que tiene la configuración descrita anteriormente, la unidad 1101 de adquisición adquiere una señal obtenida realizando una codificación de compresión, tal como una codificación MPEG, y una codificación de corrección de errores, tal como la codificación LDPC sobre datos, tales como datos de imagen y datos de audio, a través de una ruta de transmisión, y suministra la señal adquirida a la unidad 11 02 de procesamiento de decodificación de ruta de transmisión.
La unidad 1102 de procesamiento de decodificación de ruta de transmisión realiza un procedimiento de decodificación de ruta de transmisión, por ejemplo, un procesamiento similar al realizado por el dispositivo 12 de recepción, sobre la señal suministrada desde la unidad 1101 de adquisición, y suministra la señal resultante a la unidad 1103 de procesamiento de decodificación de fuente de información.
La unidad 1103 de procesamiento de decodificación de fuente de información realiza un procedimiento de decodificación de fuente de información, tal como una decodificación de MPEG, sobre la señal suministrada desde la unidad 11 02 de procesamiento de decodificación de ruta de transmisión, y emite las imágenes o el audio resultantes.
El sistema de recepción ilustrado en la Fig. 127, tal como se describió anteriormente, puede ser aplicado, por ejemplo, a un sintonizador de televisión o un elemento similar que recibe la difusión de televisión como difusión digital.
Cabe señalar que la unidad 1101 de adquisición, la unidad 1102 de procesamiento de decodificación de ruta de transmisión y la unidad 1103 de procesamiento de decodificación de fuente de información pueden ser construidas como dispositivos independientes individuales (módulos de hardware (tales como circuitos integrados) o de software).
Además, la unidad 1101 de adquisición, la unidad 1102 de procesamiento de decodificación de ruta de transmisión y la unidad 1103 de procesamiento de decodificación de fuente de información pueden estar configuradas de manera que la combinación de la unidad 1101 de adquisición y la unidad 11 02 de procesamiento de decodificación de ruta de transmisión, la combinación de la unidad 11 02 de procesamiento de decodificación de ruta de transmisión y la unidad 1103 de procesamiento de decodificación de fuente de información, o la combinación de la unidad 1101 de adquisición, la unidad 1102 de procesamiento de decodificación de ruta de transmisión y la unidad 1103 de procesamiento de decodificación de fuente de información estén construidas como un único dispositivo independiente.
La Fig. 128 es un diagrama de bloques que ilustra una segunda configuración ejemplar del sistema de recepción al cual puede aplicarse el dispositivo 12 de recepción.
Cabe señalar que, en la Fig. 128, a las partes correspondientes a las ilustradas en la Fig. 127 se les asignan los mismos números de referencia, y su descripción se omitirá a continuación, según sea apropiado.
El sistema de recepción ilustrado en la Fig. 128 es común al ilustrado en la Fig. 127 en el sentido de que la unidad 1101 de adquisición, la unidad 1102 de procesamiento de decodificación de ruta de transmisión y la unidad 1103 de procesamiento de decodificación de fuente de información están incluidas, y es diferente de la ilustrada en la Fig. 127 en que está incluida además una unidad 1111 de salida.
La unidad 1111 de salida puede ser, por ejemplo, un dispositivo de visualización configurado para mostrar una imagen o un altavoz configurado para emitir audio, y emite imágenes, audio o similares como señales emitidas desde la unidad 1103 de procesamiento de decodificación de fuente de información. En otras palabras, la unidad 1111 de salida muestra imágenes o emite audio.
El sistema de recepción ilustrado en la Fig. 128, tal como se ha descrito anteriormente, puede ser aplicado, por ejemplo, a un conjunto de televisión (receptor de televisión) que recibe una difusión de televisión como una difusión digital o un receptor de radio que recibe una difusión de radio.
Cabe señalar que, si la señal adquirida por la unidad 1101 de adquisición no ha sido sometida a codificación de compresión, una señal emitida desde la unidad 11 02 de procesamiento de decodificación de ruta de transmisión es suministrada a la unidad 1111 de salida.
La Fig. 129 es un diagrama de bloques que ilustra una tercera configuración ejemplar del sistema de recepción al cual puede aplicarse el dispositivo 12 de recepción.
Cabe señalar que, en la Fig. 129, a las partes correspondientes a las ilustradas en la Fig. 127 se les asigna los mismos números de referencia, y su descripción se omitirá más adelante, según sea apropiado.
El sistema de recepción ilustrado en la Fig. 129 es común al ilustrado en la Fig. 127 en el sentido de que se incluyen la unidad 1101 de adquisición y la unidad 11 0 2 de procesamiento de decodificación de ruta de transmisión.
Sin embargo, el sistema de recepción ilustrado en la Fig. 129 es diferente del ilustrado en la Fig. 127 en que la unidad 1103 de procesamiento de decodificación de fuente de información no está incluida y en que se incluye además una unidad 1121 de grabación.
La unidad 1121 de grabación graba (o almacena) la señal (por ejemplo, paquetes TS de una secuencia MPEG TS) emitida desde la unidad 11 02 de procesamiento de decodificación de ruta de transmisión sobre (o en) un medio de grabación (o almacenamiento) tal como un disco óptico, un disco duro (disco magnético) o una memoria flash.
El sistema de recepción ilustrado en la Fig. 129, tal como se ha descrito anteriormente, puede ser aplicado, por ejemplo, a una grabadora que graba difusiones de televisión.
Cabe señalar que, en la Fig. 129, el sistema de recepción puede incluir la unidad 1103 de procesamiento de decodificación de fuente de información, y la unidad 1121 de grabación es capaz de grabar una señal que ha sido sometida a un procedimiento de decodificación de fuente de información por la unidad 1103 de procesamiento de decodificación de fuente de información, es decir, una imagen o audio obtenidos mediante decodificación.
[Realización de ordenador]
A continuación, la serie de procedimientos descritos anteriormente puede ser realizada mediante hardware o software. Si la serie de procedimientos es realizada mediante software, un programa que constituye el software es instalado en un ordenador de propósito general o similar.
De esta manera, la Fig. 130 ilustra una configuración ejemplar de una realización de un ordenador en el que hay instalado un programa para ejecutar la serie de procedimientos descritos anteriormente.
El programa puede ser grabado por adelantado en un disco 705 duro o en una ROM 703 que sirve como un medio de grabación incorporado en el ordenador.
De manera alternativa, el programa puede ser almacenado de manera temporal o persistente (o puede ser grabado) en un medio 711 de grabación extraíble, tal como un disco flexible, un CD-ROM (Compact Disc Read Only Memory, memoria de disco compacto de solo lectura), un disco MO (Magneto Optical, magneto óptico), un DVD (Digital Versatile Disc, disco versátil digital), un disco magnético o una memoria semiconductora. El medio 711 de grabación extraíble puede ser proporcionado como un paquete de software.
El programa puede ser instalado en el ordenador desde el medio 711 de grabación extraíble descrito anteriormente, o puede ser transferido de manera inalámbrica al ordenador desde un sitio de descarga a través de un satélite artificial para difusión digital por satélite o puede ser transferido al ordenador a través de una red, tal como una LAN (Red de área local) o Internet mediante conexión por cable. En el ordenador, el programa transferido de la manera descrita anteriormente puede ser recibido por una unidad 708 de comunicación y puede ser instalado en el disco 705 duro incorporado en el ordenador.
El ordenador tiene una CPU (Central Processing Unit, unidad central de procesamiento) 702 incorporada en el mismo. Una interfaz 710 de entradas/salidas está conectada a la CPU 702 a través de un bus 701. Cuando un usuario introduce una instrucción, por ejemplo, operando una unidad 707 de entrada que incluye un teclado, un ratón, un micrófono, etc., a través de la interfaz 710 de entradas/salidas, la CPU 702 ejecuta un programa almacenado en la ROM (Read Only Memory, memoria de solo lectura) 703 según las instrucciones. De manera alternativa, la CPU 702 carga un programa almacenado en el disco 705 duro, un programa transferido desde un satélite o una red, recibido por la unidad 708 de comunicación e instalado en el disco 705 duro, o un programa leído desde el medio 711 de grabación extraíble colocado en una unidad 709 es instalado en el disco 705 duro en una RAM (Random Access Memory, memoria de acceso aleatorio) 704, y ejecuta el programa cargado. Por consiguiente, la CPU 702 realiza el procesamiento según los diagramas de flujo descritos anteriormente o el procesamiento realizado con las configuraciones en los diagramas de bloques descritos anteriormente. A continuación, la CPU 702 emite un resultado del procesamiento, si es necesario, por ejemplo, desde una unidad 706 de salida que incluye una pantalla LCD (Liquid Crystal Display, pantalla de cristal líquido), un altavoz, etc., a través de la interfaz 710 de entradas/salidas, transmite el resultado desde la unidad 708 de comunicación o graba el resultado en el disco 705 duro.
Cabe señalar en la presente memoria, que es posible que las etapas de procesamiento, que describen un programa para causar que un ordenador realice diversos tipos de procesamiento, no sean procesadas necesariamente en serie en el tiempo según el orden descrito en la presente memoria en los diagramas de flujo, y pueden incluir también procedimientos ejecutados en paralelo o individualmente (por ejemplo, procesamiento paralelo o procesamiento basado en objetos).
Además, un programa puede ser procesado por un único ordenador, o puede ser procesado por una pluralidad de ordenadores de manera distribuida. Además, un programa puede ser transferido y ejecutado también por un ordenador remoto.
Cabe señalar que las realizaciones de la tecnología actual no están limitadas a las realizaciones descritas anteriormente, y que pueden realizarse una diversidad de cambios sin apartarse del alcance de la presente tecnología.
Más específicamente, por ejemplo, (las tablas de valores iniciales de la matriz de comprobación de paridad de) los nuevos códigos LDPC descritos anteriormente pueden usarse independientemente de si la ruta 13 de comunicación (Fig. 7) es un enlace satelital, un enlace terrestre, un cable (línea cableada) o cualquier otra unidad. Además, los nuevos códigos LDPC pueden usarse también para una transmisión de datos distinta de una difusión digital.
Lista de signos de referencia
11 dispositivo de transmisión, 12 dispositivo de recepción, 23 intercalador de paridad, 24 intercalador de torsión de columna, 25 demultiplexor, 31 memoria, 32 unidad de permutación, 54 multiplexor, 55 intercalador de torsión de columna, 111 elemento de adaptación de modo/multiplexor, 112 elemento rellenador (“padder”), 113 codificador BB, 114 codificador BCH, 115 codificador LDPC, 116 intercalador de bits, 117 codificador QAM, 118 intercalador de tiempo, 119 codificador MISO/MIMO, 120 intercalador de frecuencia, 121 codificador BCH, 122 codificador LDPC, 123 codificador QAM, 124 intercalador de frecuencia, 131 unidad generadora de tramas y de asignación de recursos, 132 unidad de generación OFDM, 151 unidad de procesamiento OFDM, 152 unidad de gestión de tramas, 153 desintercalador de frecuencia, 154 decodificador QAM, 155 decodificador LDPC, 156 decodificador BCH, 161 desintercalador de frecuencias, 162 decodificador MISO/MIMO, 163 desintercalador de tiempo, 164 decodificador QAM, 165 desintercalador de bits, 166 decodificador LDPC, 167 decodificador BCH, 168 desaleatorizador BB, 169 unidad de eliminación de elementos nulos, 170 demultiplexor, 300 memoria de almacenamiento de datos de borde, 301 selector, 302 unidad de cálculo de nodo de comprobación, 303 circuito de desplazamiento cíclico, 304 memoria de almacenamiento de datos de borde, 305 selector, 306 memoria de datos recibidos, 307 unidad de cálculo de nodo variable, 308 circuito de desplazamiento cíclico, 309 unidad de cálculo de palabra decodificada, 310 unidad de reordenación de datos recibidos, 311 unidad de reordenación de datos decodificados, 601 unidad de procesamiento de codificación, 602 almacenamiento unidad, 611 unidad de establecimiento de tasa de codificación, 612 unidad de lectura de tabla de valores iniciales, 613 unidad generadora de matrices de comprobación de paridad, 614 unidad de lectura de bits de información, 615 unidad de cálculo de paridad de codificación, 616 unidad de control, 701 bus, 702 CPU, 703 ROM, 704 RAM, 705 disco duro, 706 unidad de salida, 707 unidad de entrada, 708 unidad de comunicación, 709 unidad, 710 interfaz de entradas/salidas, 711 medio de grabación extraíble, 1001 unidad de permutación inversa, 1002 memoria, 1011 desintercalador de paridad, 1101 unidad de adquisición, 1101 unidad de procesamiento decodificación de ruta de transmisión, 1103 unidad de procesamiento de decodificación de fuente de información, 1111 unidad de salida, 1121 unidad de grabación.

Claims (1)

  1. REIVINDICACIONES
    1. Aparato de procesamiento de datos que comprende:
    una unidad (115) de codificación configurada para codificar bits de información a un código comprobación de paridad de baja densidad, LDPC (Low Density Parity Check), que tiene una longitud de código de 64.800 bits y una tasa de codificación de 18/30 en base a una matriz de comprobación de paridad del código LDPC, en el que el código LDPC incluye bits de información y bits de paridad,
    la matriz de comprobación de paridad incluye una parte de matriz de información de dimensión MxK correspondiente a los bits de información y una parte de matriz de paridad de dimensión MxM correspondiente a los bits de paridad, y
    en el que K = 38.880 y M = 25.920, y
    dicha parte de la matriz de paridad tiene una estructura escalonada, en la que los elementos "1 " están dispuestos de manera escalonada, en el que la ponderación de fila es 1 en una primera fila y 2 en las filas restantes y en el que la ponderación de columna es 1 en la última columna y 2 en las columnas restantes, la parte de la matriz de información está representada por una tabla de valores iniciales de la matriz de comprobación de paridad, y
    en el que la tabla de valores iniciales de la matriz de comprobación de paridad es una tabla que muestra en su iésima fila, 1 < i < 108, las posiciones de los elementos "1" en la (1+360x(i-1))-ésima columna de la parte de la matriz de información, y en el que, en base a cada (1+360x(i-1))-ésima columna, 1 < i < 108, las columnas (2+360x(i-1)) a (360xi) de la parte de la matriz de información se determinan desplazando hacia abajo cíclicamente la columna anterior respectiva M/360 posiciones, y es para una tasa de codificación de 18/30: 113 1557 3316 5680 6241 10407 13404 13947 14040 14353 15522 15698 16079 17363 19374 19543 20530 2283324339
    271 1361 6236 7006 7307 7333 12768 15441 15568 17923 18341 20321 21502 22023 23938 25351 25590 2587625910
    73605 872 4008 6279 7653 10346 10799 12482 12935 13604 15909 16526 197822050622804 23629 24859 25600
    1445 1690 4304 4851 8919 9176 9252 13783 16076 16675 17274 18806 18882 20819 21958 22451 23869 2399924177
    1290 2337 5661 6371 8996 10102 10941 11360 12242 14918 16808 20571 23374 24046 25045 25060 25662 2578325913
    28 42 1926 3421 3503 8558 9453 10168 15820 17473 19571 19685 22790 23336 23367 23890 24061 25657 25680
    0 1709 4041 4932 5968 7123 8430 9564 10596 11026 14761 19484 20762 20858 23803 24016 24795 25853 25863
    29 1625 6500 6609 16831 18517 18568 18738 19387 20159 20544 21603 21941 24137 24269 24416 24803 2515425395
    55 6 6 871 3700 11426 13221 15001 16367 17601 183802279623488239382547625635256782580725857 25872
    1 195958 8548 8860 11489 16845 18450 18469 19496 20190 23173 25262 25566 25668256792585825888 25915
    7520 7690 8855 9183 14654 16695 17121 17854 18083 18428 19633204702073621720 22335 2327325083 2529325403
    48 58410 1299 3786 10668 18523 1896320864 22106 22308 23033 23107 23128 23990 24286 24409 24595 25802
    1251 38946539 8276 10885 11644 12777 13427 14039 15954 17078 19053205372286324521 2508725463 25838
    350987489581 11509 15884 16230 17583 192642090021001 21310225472275622959247682481425594 2562625880
    21 2969 144823864601 66266667 10242 13141 13852 14137 18640 19951 224492345424431 2551225814 18 53 7890 9934 10063 16728 19040 19809 20825 21522 21800 23582 24556 25031 25547 25562 25733 2578925906
    4096 4582 5766 5894 6517 10027 12182 13247 15207 17041 18958 20133 20503 22228 24332 24613 25689 2585525883
    0 25819 55397076753676959532 13668 15051 17683 1966520253219962413624890257582578425807
    34 4 0 4442156076742779658777 11017 15593 195422220222973233972342324418248732510725644 159562162285025439
    1562 15172 1951722362
    7508 128792432424496
    6298 15819 16757 18721
    11173 15175 1996621195
    59 13505 16941 23793
    22674830 1202320587
    88279278 13072 16664
    14419 174632339825348
    6112 165342042322698
    49389142110324799
    6896 12761 1320625873
    2 1380 1232221701
    11600213062575325790
    8421 13076 14271 15401
    9630 14112 1901720955
    212 1393221781 25824
    5961 9110 16654 19636
    58 54349936 12770
    6575 11433 19798
    2731 733820926
    14253 1846325404
    21791 2480525869
    2 11646 15850
    6075858623819
    184352209324852
    21032368 11704 10925 17402 18232 906225061 25674 184972085323404 18606 19364 19551 7 102225543 6744 15481 25868 9081 1730525164
    8 23701 25883 9680 1995522848 56 4564 19121 5595 1508625892 3174 1712723183 19397 1981720275 12561 24571 25825 7111 988925865 191042018921851 549968625548 65862032525906 32242071021637 641 1521525754 134842372925818 2043749324246 168602523025768 220472420024902 9391 18040 19499 78552433625069 238342557025852 1977880025756 6671 2177225859 3279671024444 240992511725820 5553 1230625915 48 1110723907 10832 1197425773 2223 1790525484
    16782 1713520446
    4752861 3457
    162182244924362
    117162220025897
    8315 1500922633
    13 2048025852
    12352 1865825687
    3681 1479423703
    30 24531 25846
    41032207724107
    238372562225812
    3627 1338725839
    9085367 19388
    0 689425795
    203222354625181
    81782526025437
    2449 1324422565
    31 1892822741
    13125134 14838
    6085 1393724220
    6 6 1463325670
    47 2251225472
    88672470425279
    67422162322745
    147994824178
    852224261 24307
    192022240624609.
    2. Aparato de procesamiento de datos que comprende:
    una unidad (155) de decodificación configurada para decodificar un código de verificación de paridad de baja densidad, LDPC, que tiene una longitud de código de 64.800 bits y una tasa de codificación de 18/30 en base a una matriz de comprobación de paridad del código LDPC, en el que
    el código LDPC incluye bits de información y bits de paridad,
    la matriz de comprobación de paridad incluye una parte de matriz de información de dimensión MxK correspondiente a los bits de información y una parte de matriz de paridad de dimensión MxM correspondiente a los bits de paridad, y
    en el que K = 38.880 y M = 25.920, y
    dicha parte de la matriz de paridad tiene una estructura escalonada, en la que los elementos "1 " están dispuestos de manera escalonada, en el que la ponderación de fila es 1 en una primera fila y 2 en las filas restantes y en el que la ponderación de columna es 1 en la última columna y 2 en las columnas restantes, la parte de la matriz de información está representada por una tabla de valores iniciales de la matriz de comprobación de paridad, y
    en el que la tabla de valores iniciales de la matriz de comprobación de paridad es una tabla que muestra en su iésima fila, 1 < i < 108, las posiciones de los elementos "1" en la (1+360x(i-1))-ésima columna de la parte de matriz de información, y en el que, en base a cada (1+360x(i-1))-ésima columna, 1 < i < 108, las columnas (2+360x(i-1)) a (360xi) de la parte de matriz de información se determinan desplazando hacia abajo cíclicamente la columna anterior respectiva en M/360 posiciones, y es
    113 1557 3316 5680 6241 10407 13404 13947 14040 14353 15522 15698 16079 17363 19374 19543 20530 2283324339
    271 1361 6236 7006 7307 7333 12768 15441 15568 17923 18341 20321 21502 22023 23938 25351 25590 2587625910
    73 605 872 4008 6279 7653 10346 10799 12482 12935 13604 15909 16526 197822050622804 23629 24859 25600
    1445 1690 4304 4851 8919 9176 9252 13783 16076 16675 17274 18806 18882 20819 21958 22451 23869 2399924177
    1290 2337 5661 6371 8996 10102 10941 11360 12242 14918 16808 20571 23374 24046 25045 25060 25662 2578325913
    28 42 1926 3421 3503 8558 9453 10168 15820 17473 19571 19685 22790 23336 23367 23890 24061 25657 25680
    0 1709 4041 4932 5968 7123 8430 9564 10596 11026 14761 19484 20762 20858 23803 24016 24795 25853 25863
    29 1625 6500 6609 16831 18517 18568 18738 19387 20159 20544 21603 21941 24137 24269 24416 24803 2515425395
    55 6 6 871 3700 11426 13221 15001 16367 17601 183802279623488239382547625635256782580725857 25872
    1 19 5958 8548 8860 11489 16845 18450 18469 19496 20190 23173 25262 25566 25668256792585825888 25915
    7520 7690 8855 9183 14654 16695 17121 17854 18083 18428 19633204702073621720 22335 2327325083 2529325403
    48 58410 1299 3786 10668 18523 1896320864 22106 22308 23033 23107 23128 239902428624409 24595 25802
    12 51 38946539 8276 10885 11644 12777 13427 14039 15954 17078 19053205372286324521 2508725463 25838
    350987489581 11509 15884 16230 17583 192642090021001 21310225472275622959247682481425594 2562625880
    21 2969 144823864601 66266667 10242 13141 13852 14137 18640 19951 224492345424431 2551225814 18 53 7890 9934 10063 16728 19040 19809 20825 21522 21800 23582 24556 25031 25547 25562 25733 2578925906
    4096 4582 5766 5894 6517 10027 12182 13247 15207 17041 18958 20133 20503 22228 24332 24613 25689 2585525883
    0 25819 55397076753676959532 13668 15051 17683 1966520253219962413624890257582578425807
    34 4 0 4442156076742779658777 11017 15593 195422220222973233972342324418248732510725644 159562162285025439 1562 15172 1951722362 7508 128792432424496 6298 15819 16757 18721 11173 15175 1996621195 59 13505 16941 23793 22674830 1202320587 88279278 13072 16664 14419 174632339825348 6112 165342042322698 49389142110324799 6896 12761 1320625873 2 1380 1232221701 11600213062575325790 8421 13076 14271 15401 9630 14112 1901720955 212 1393221781 25824 5961 9110 16654 19636 58 54349936 12770 6575 11433 19798 2731 733820926 14253 1846325404 21791 2480525869
    2 11646 15850
    6075858623819 184352209324852 21032368 11704 10925 17402 18232 906225061 25674 184972085323404 18606 19364 19551
    7 102225543
    6744 15481 25868 9081 1730525164
    8 23701 25883 9680 1995522848 56 4564 19121 5595 1508625892 3174 1712723183 19397 1981720275 12561 24571 25825 7111 988925865 191042018921851 549968625548 65862032525906 32242071021637 641 1521525754 134842372925818 2043749324246 168602523025768 220472420024902 9391 18040 19499 78552433625069 238342557025852 1977880025756 6671 2177225859 3279671024444 240992511725820 5553 1230625915 48 1110723907 10832 1197425773 2223 1790525484 16782 1713520446 4752861 3457 162182244924362 117162220025897 8315 1500922633 13 2048025852 12352 1865825687 3681 1479423703 30 24531 25846
    41032207724107
    238372562225812
    3627 1338725839
    9085367 19388
    0 689425795
    203222354625181
    81782526025437
    2449 1324422565
    31 1892822741
    13125134 14838
    6085 1393724220
    6 6 1463325670
    47 2251225472
    88672470425279
    67422162322745
    147994824178
    852224261 24307
    192022240624609.
    3. Aparato de procesamiento de datos según la reivindicación 1 o 2, en el que
    para la {1+360x(i-1)}-ésima columna de la matriz de comprobación de paridad,
    una i-ésima fila de la tabla de valores iniciales de la matriz de comprobación de paridad representa un número de fila de un elemento 1 en la {1+360x(i-1)}-ésima columna de la matriz de comprobación de paridad, y para cada una de las columnas {2+360x(i-1)}-ésima a (360xi)-ésima, que son columnas distintas de la {1+360x(i-1)}-ésima columna de la matriz de comprobación de paridad,
    un número Hw-j de fila de un elemento 1 en una w-ésima columna de la matriz de comprobación de paridad, que es una columna distinta de la {1+360x(i-1)}-ésima columna de la matriz de comprobación de paridad, se representa mediante la ecuación Hw-j = mod {hi,j mod ((w-1), 360) x M/360, M),
    donde hi,j denota un valor en la i-ésima fila y una j-ésima columna de la tabla de valores iniciales de la matriz de comprobación de paridad, y Hw-j denota un número de fila de un j-ésimo elemento 1 en la w-ésima columna de la matriz H de comprobación de paridad.
    4. Aparato de procesamiento de datos según la reivindicación 1, que comprende, además:
    una unidad (23) de intercalado de paridad configurada para intercalar solo los bits de paridad del código LDPC.
    5. Aparato de procesamiento de datos según la reivindicación 1 o 4, que comprende, además:
    una unidad (24) de intercalado de torsión de columna configurada para realizar un intercalado de torsión de columna de los bits de código del código LDPC.
    6. Aparato de procesamiento de datos según la reivindicación 1 o 4, que comprende, además:
    una unidad (32) de permutación configurada para permutar bits de código del código LDPC y para emitir los bits de código permutados como bits de símbolo de un símbolo correspondiente a uno de un determinado número de puntos de constelación definidos por un determinado esquema de modulación digital.
    7. Aparato de procesamiento de datos según la reivindicación 6 , en el que
    la unidad (32) de permutación permuta los bits de código que se almacenan en una memoria (31) en la dirección de columna y que se leen desde la memoria (31) en una dirección de fila.
    8. Aparato de procesamiento de datos según la reivindicación 2, que comprende, además:
    una unidad (55) de desintercalado de torsión de columna configurada para realizar un desintercalado de torsión de columna de los bits de código del código LDPC.
    9. Aparato de procesamiento de datos según la reivindicación 2 u 8 , que comprende, además:
    una unidad (1 0 0 1 ) de permutación inversa configurada para realizar un procesamiento de permutación inversa sobre el código LDPC, en un caso en el que se ha realizado un procesamiento de permutación sobre el código LDPC para emitir bits de código permutados del código LDPC como bits de símbolo de un símbolo correspondiente a uno de un determinado número de puntos de constelación definidos por un determinado esquema de modulación digital, para recuperar los bits de código que han sido permutados y emitidos como los bits de símbolo a las posiciones originales.
    10. Aparato de procesamiento de datos según la reivindicación 9, en el que
    la unidad (1 0 0 1 ) de permutación inversa está configurada para realizar un procesamiento de permutación inversa para recuperar los bits de código que se almacenan en una memoria (1 0 0 2 ) en una dirección de fila y que se leen desde la memoria (1 0 0 2 ) en una dirección de columna a las posiciones originales.
    11. Procedimiento de procesamiento de datos que comprende:
    una etapa de codificación de los bits de información de codificación a un código de verificación de paridad de baja densidad, LDPC, que tiene una longitud de código de 64.800 bits y una tasa de codificación de 18/30 en base a una matriz de comprobación de paridad del código LDPC, en el que
    el código LDPC incluye bits de información y bits de paridad,
    la matriz de comprobación de paridad incluye una parte de matriz de información de dimensión MxK correspondiente a los bits de información y una parte de matriz de paridad de dimensión MxM correspondiente a los bits de paridad, y
    en el que K = 38.880 y M = 25.920, y
    dicha parte de matriz de paridad tiene una estructura escalonada, en la que los elementos "1 " están dispuestos de manera escalonada, en el que la ponderación de la fila es 1 en una primera fila y 2 en las filas restantes y en el que la ponderación de la columna es 1 en la última columna y 2 en las columnas restantes,
    la parte de matriz de información está representada por una tabla de valores iniciales de la matriz de comprobación de paridad, y
    en el que la tabla de valores iniciales de la matriz de comprobación de paridad es una tabla que muestra en su iésima fila, 1 < i < 108, las posiciones de los elementos "1" en la (1+360x(i-1))-ésima columna de la parte de matriz de información, y en el que, en base a cada (1+360x(i-1))-ésima columna, 1 < i < 108, las columnas (2+360x(i-1)) a (360xi) de la parte de matriz de información se determinan desplazando hacia abajo cíclicamente la columna precedente respectiva en M/360 posiciones, y es
    113 1557 3316 5680 6241 10407 13404 13947 14040 14353 15522 15698 16079 17363 19374 19543 20530 2283324339
    271 1361 6236 7006 7307 7333 12768 15441 15568 17923 18341 20321 21502 22023 23938 25351 25590 2587625910
    73 605 872 4008 6279 7653 10346 10799 12482 12935 13604 15909 16526 197822050622804 23629 24859 25600
    1445 1690 4304 4851 8919 9176 9252 13783 16076 16675 17274 18806 18882 20819 21958 22451 23869 2399924177
    1290 2337 5661 6371 8996 10102 10941 11360 12242 14918 16808 20571 23374 24046 25045 25060 25662 2578325913
    28 42 1926 3421 3503 8558 9453 10168 15820 17473 19571 19685 22790 23336 23367 23890 24061 25657 25680
    0 1709 4041 4932 5968 7123 8430 9564 10596 11026 14761 19484 20762 20858 23803 24016 24795 25853 25863
    29 1625 6500 6609 16831 18517 18568 18738 19387 20159 20544 21603 21941 24137 24269 24416 24803 2515425395
    55 6 6 871 3700 11426 13221 15001 16367 17601 18380227962348823938 2547625635256782580725857 25872
    1 19 5958 8548 8860 11489 16845 18450 18469 19496 20190 23173 25262 25566 25668256792585825888 25915
    7520 7690 8855 9183 14654 16695 17121 17854 18083 18428 19633204702073621720 22335 2327325083 2529325403
    48 58410 1299 3786 10668 18523 1896320864 22106 22308 23033 23107 23128 23990 2428624409 24595 25802
    12 51 38946539 8276 10885 11644 12777 13427 14039 15954 17078 19053205372286324521 2508725463 25838
    350987489581 11509 15884 16230 17583 192642090021001 21310225472275622959247682481425594 2562625880
    21 2969 144823864601 66266667 10242 13141 13852 14137 18640 19951 224492345424431 2551225814 18 53 7890 9934 10063 16728 19040 19809 20825 21522 21800 23582 24556 25031 25547 25562 25733 2578925906
    4096 4582 5766 5894 6517 10027 12182 13247 15207 17041 18958 20133 20503 22228 24332 24613 25689 2585525883
    0 25819 55397076753676959532 13668 15051 17683 1966520253219962413624890257582578425807
    34 4 0 4442156076742779658777 11017 15593 195422220222973233972342324418248732510725644 159562162285025439
    1562 15172 1951722362
    7508 128792432424496
    6298 15819 16757 18721
    11173 15175 1996621195
    59 13505 16941 23793
    22674830 1202320587
    88279278 13072 16664
    14419 174632339825348
    6112 165342042322698
    49389142110324799
    6896 12761 1320625873
    2 1380 1232221701
    11600213062575325790 8421 13076 14271 15401 9630 14112 1901720955 212 1393221781 25824 5961 9110 16654 19636 58 54349936 12770 6575 11433 19798 2731 733820926 14253 1846325404 21791 2480525869
    2 11646 15850
    6075858623819 184352209324852 21032368 11704 10925 17402 18232 906225061 25674 184972085323404 18606 19364 19551
    7 102225543
    6744 15481 25868 9081 1730525164
    8 23701 25883
    9680 1995522848
    56 4564 19121
    5595 1508625892 3174 1712723183 19397 1981720275 12561 24571 25825 7111 988925865 191042018921851 549968625548
    65862032525906 32242071021637
    641 1521525754 134842372925818 2043749324246 168602523025768 220472420024902 9391 18040 19499 78552433625069 238342557025852 1977880025756 6671 2177225859 3279671024444 240992511725820 5553 1230625915 48 1110723907 10832 1197425773 2223 1790525484 16782 1713520446 4752861 3457 162182244924362 117162220025897 8315 1500922633 13 2048025852 12352 1865825687 3681 1479423703 30 24531 25846 41032207724107 238372562225812 3627 1338725839 9085367 19388 0 689425795 203222354625181 81782526025437 2449 1324422565 31 1892822741 13125134 14838 6085 1393724220
    6 6 1463325670 472251225472
    88672470425279
    67422162322745
    147994824178
    852224261 24307
    192022240624609.
    12. Procedimiento de procesamiento de datos que comprende:
    una etapa de decodificación de decodificación de un código de comprobación de paridad de baja densidad, LDPC, que tiene una longitud de código de 64.800 bits y una tasa de codificación de 18/30 en base a una matriz de comprobación de paridad del código LDPC, en el que
    el código LDPC incluye bits de información y bits de paridad,
    la matriz de comprobación de paridad incluye una parte de matriz de información de dimensión MxK correspondiente a los bits de información y una parte de matriz de paridad de dimensión MxM correspondiente a los bits de paridad, y
    en el que K = 38.880 y M = 25.920, y
    dicha parte de matriz de paridad tiene una estructura escalonada, en el que los elementos "1 " están dispuestos de manera escalonada, en el que la ponderación de la fila es 1 en una primera fila y 2 en las filas restantes y en el que la ponderación de la columna es 1 en la última columna y 2 en las columnas restantes,
    la parte de matriz de información está representada por una tabla de valores iniciales de la matriz de comprobación de paridad, y
    en el que la tabla de valores iniciales de la matriz de comprobación de paridad es una tabla que muestra en su iésima fila, 1 < i < 108, las posiciones de los elementos "1" en la (1+360x(i-1))-ésima columna de la parte de matriz de información, y en el que, en base a cada (1+360x(i-1))-ésima columna, 1 < i < 108, las columnas (2+360x(i-1)) a (360xi) de la parte de matriz de información se determinan desplazando hacia abajo cíclicamente la columna precedente respectiva en M/360 posiciones, y es
    113 1557 3316 5680 6241 10407 13404 13947 14040 14353 15522 15698 16079 17363 19374 19543 20530 2283324339
    271 1361 6236 7006 7307 7333 12768 15441 15568 17923 18341 20321 21502 22023 23938 25351 25590 2587625910
    73605 872 4008 6279 7653 10346 10799 12482 12935 13604 15909 16526 197822050622804 23629 24859 25600
    1445 1690 4304 4851 8919 9176 9252 13783 16076 16675 17274 18806 18882 20819 21958 22451 23869 2399924177
    1290 2337 5661 6371 8996 10102 10941 11360 12242 14918 16808 20571 23374 24046 25045 25060 25662 2578325913
    28 42 1926 3421 3503 8558 9453 10168 15820 17473 19571 19685 22790 23336 23367 23890 24061 25657 25680
    0 1709 4041 4932 5968 7123 8430 9564 10596 11026 14761 19484 20762 20858 23803 24016 24795 25853 25863
    29 1625 6500 6609 16831 18517 18568 18738 19387 20159 20544 21603 21941 24137 24269 24416 24803 2515425395
    556 6 871 3700 11426 13221 15001 16367 17601 183802279623488239382547625635256782580725857 25872
    1 195958 8548 8860 11489 16845 18450 18469 19496 20190 23173 25262 25566 25668256792585825888 25915
    7520 7690 8855 9183 14654 16695 17121 17854 18083 18428 19633204702073621720 223352327325083 2529325403
    48 58410 1299 3786 10668 18523 1896320864 22106 22308 23033 23107 23128 239902428624409 24595 25802
    12 51 38946539 8276 10885 11644 12777 13427 14039 15954 17078 19053205372286324521 2508725463 25838
    350987489581 11509 15884 16230 17583 192642090021001 21310225472275622959247682481425594 2562625880
    21 2969 144823864601 66266667 10242 13141 13852 14137 18640 19951 224492345424431 2551225814 18 53 7890 9934 10063 16728 19040 19809 20825 21522 21800 23582 24556 25031 25547 25562 25733 2578925906
    4096 4582 5766 5894 6517 10027 12182 13247 15207 17041 18958 20133 20503 22228 24332 24613 25689 2585525883
    0 25819 55397076753676959532 13668 15051 17683 1966520253219962413624890257582578425807
    34 4 0 4442156076742779658777 11017 15593 195422220222973233972342324418248732510725644 159562162285025439
    1562 15172 1951722362
    7508 128792432424496
    6298 15819 16757 18721
    11173 15175 1996621195
    59 13505 16941 23793
    22674830 1202320587
    88279278 13072 16664
    14419 174632339825348
    6112 165342042322698
    49389142110324799
    6896 12761 1320625873
    2 1380 1232221701
    11600213062575325790
    8421 13076 14271 15401
    9630 14112 1901720955
    212 1393221781 25824
    5961 9110 16654 19636
    58 54349936 12770
    6575 11433 19798
    2731 733820926
    14253 1846325404
    21791 2480525869 2 11646 15850 6075858623819 184352209324852 21032368 11704 10925 17402 18232 906225061 25674 184972085323404 18606 19364 19551 7 102225543 6744 15481 25868 9081 1730525164
    8 23701 25883 9680 1995522848 56 4564 19121 5595 1508625892 3174 1712723183 19397 1981720275 12561 24571 25825 7111 988925865 191042018921851 549968625548 65862032525906 32242071021637 641 1521525754 134842372925818 2043749324246 168602523025768 220472420024902 9391 18040 19499 78552433625069 238342557025852 1977880025756 6671 2177225859 3279671024444 240992511725820
    5553 1230625915
    48 1110723907
    10832 1197425773
    2223 1790525484
    16782 1713520446
    4752861 3457
    162182244924362
    117162220025897
    8315 1500922633
    132048025852
    12352 1865825687
    3681 1479423703
    3024531 25846
    41032207724107
    238372562225812
    3627 1338725839
    9085367 19388
    06894 25795
    203222354625181
    81782526025437
    2449 1324422565
    31 1892822741
    13125134 14838
    6085 1393724220
    6 6 1463325670
    472251225472
    88672470425279
    67422162322745
    147994824178
    852224261 24307
    192022240624609.
    13. Procedimiento de procesamiento de datos según la reivindicación 12, que comprende, además:
    una etapa de permutación inversa para realizar un procesamiento de permutación inversa sobre el código LDPC, en el caso en el que se ha realizado un procesamiento de permutación sobre el código LDPC para emitir los bits de código permutado del código LDPC como bits de símbolo de un símbolo correspondiente a uno de un determinado número de puntos de constelación definidos por un determinado esquema de modulación digital, para recuperar los bits de código que han sido permutados y emitidos como los bits de símbolo a las posiciones originales.
    14. Receptor de televisión que incluye un aparato de procesamiento de datos según una cualquiera de las reivindicaciones 2 u 8 a 10.
    15. Programa de ordenador que comprende medios de código de programa para causar que un ordenador lleve a cabo las etapas del procedimiento de procesamiento de datos según la reivindicación 11, 12 o 13 cuando dicho programa de ordenador es llevado a cabo en el ordenador.
ES14748988T 2013-02-08 2014-01-27 Codificación y descodificación de un código LDPC con tasa 18/30 (3/5) de longitud 64.800 Active ES2697695T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013023882 2013-02-08
PCT/JP2014/051623 WO2014123017A1 (ja) 2013-02-08 2014-01-27 データ処理装置、及びデータ処理方法

Publications (1)

Publication Number Publication Date
ES2697695T3 true ES2697695T3 (es) 2019-01-25

Family

ID=51299614

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14748988T Active ES2697695T3 (es) 2013-02-08 2014-01-27 Codificación y descodificación de un código LDPC con tasa 18/30 (3/5) de longitud 64.800

Country Status (13)

Country Link
US (3) US20150046766A1 (es)
EP (2) EP2958240B1 (es)
JP (1) JPWO2014123017A1 (es)
KR (2) KR102198121B1 (es)
CN (2) CN104205648B (es)
AR (1) AR095113A1 (es)
CA (1) CA2867660C (es)
ES (1) ES2697695T3 (es)
HU (2) HUE063345T2 (es)
MX (1) MX2014011899A (es)
PL (1) PL2958240T3 (es)
TR (1) TR201815788T4 (es)
WO (1) WO2014123017A1 (es)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5637393B2 (ja) * 2011-04-28 2014-12-10 ソニー株式会社 データ処理装置、及び、データ処理方法
US20150046766A1 (en) * 2013-02-08 2015-02-12 Sony Corporation Data processing apparatus and data processing method
US9491026B2 (en) * 2013-04-12 2016-11-08 Sun Patent Trust Transmission method
US20150318868A1 (en) 2013-06-12 2015-11-05 Sony Coporation Data processing apparatus and data processing method
KR102104937B1 (ko) * 2013-06-14 2020-04-27 삼성전자주식회사 Ldpc 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법
CN105556853A (zh) * 2013-09-20 2016-05-04 索尼公司 数据处理装置和数据处理方法
US10361720B2 (en) * 2014-05-22 2019-07-23 Electronics And Telecommunications Research Institute Bit interleaver for low-density parity check codeword having length of 16200 and code rate of 3/15 and 64-symbol mapping, and bit interleaving method using same
CA2864630C (en) * 2014-08-14 2017-05-30 Electronics And Telecommunications Research Institute Low density parity check encoder having length of 64800 and code rate of 4/15, and low density parity check encoding method using the same
KR102287625B1 (ko) * 2015-02-16 2021-08-10 한국전자통신연구원 길이가 64800이며, 부호율이 2/15인 ldpc 부호어 및 4096-심볼 맵핑을 위한 비트 인터리버 및 이를 이용한 비트 인터리빙 방법
KR102426380B1 (ko) 2015-02-25 2022-07-29 삼성전자주식회사 송신 장치 및 그의 부가 패리티 생성 방법
US10142055B2 (en) 2015-02-25 2018-11-27 Samsung Electronics Co., Ltd. Transmitter and method for generating additional parity thereof
KR101800415B1 (ko) * 2015-03-02 2017-11-23 삼성전자주식회사 송신 장치 및 그의 패리티 퍼뮤테이션 방법
JP6885027B2 (ja) * 2016-11-18 2021-06-09 ソニーグループ株式会社 送信装置、及び、送信方法
US11929762B2 (en) 2021-11-24 2024-03-12 Samsung Electronics Co., Ltd. Low density parity check decoder and storage device

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4224777B2 (ja) 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
US7234098B2 (en) 2003-10-27 2007-06-19 The Directv Group, Inc. Method and apparatus for providing reduced memory low density parity check (LDPC) codes
US7716553B2 (en) * 2005-07-13 2010-05-11 Leanics Corporation System and method for designing RS-based LDPC code decoder
US8209582B1 (en) * 2006-11-07 2012-06-26 Marvell International Ltd. Systems and methods for optimizing a product code structure
CN101047387B (zh) * 2007-03-23 2010-06-09 北京大学 一种多码率兼容ldpc码的构造方法及其译码器
PL2056549T3 (pl) 2007-10-30 2013-04-30 Sony Corp Urządzenie i sposób przetwarzania danych
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
BRPI0820163B1 (pt) 2007-11-26 2019-06-04 Sony Corporation Aparelho de codificação, método de codificação para um aparelho de codificação, aparelho de decodificação, e, método de decodificação para um aparelho de decodificação
EP2093887B1 (en) * 2008-02-18 2013-08-28 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding and decoding in a communication system using low-density parity-check codes
KR101503059B1 (ko) * 2008-02-26 2015-03-19 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치
JP5340286B2 (ja) * 2008-07-02 2013-11-13 パナソニック株式会社 消失訂正符号化装置及び消失訂正符号化方法
KR101027873B1 (ko) 2008-12-16 2011-04-07 윤일식 엘리베이터 도어의 유리판 고정장치
US8726137B2 (en) 2009-02-02 2014-05-13 Telefonaktiebolaget L M Ericsson (Publ) Encoding and decoding methods for expurgated convolutional codes and convolutional turbo codes
US8689093B2 (en) * 2009-12-07 2014-04-01 Samsung Electronics Co., Ltd Method and apparatus for channel encoding and decoding in a communication system using a low-density parity check code
US8402341B2 (en) * 2010-02-18 2013-03-19 Mustafa Eroz Method and system for providing low density parity check (LDPC) encoding and decoding
TWI581578B (zh) * 2010-02-26 2017-05-01 新力股份有限公司 編碼器及提供遞增冗餘之編碼方法
JP2011176782A (ja) * 2010-02-26 2011-09-08 Sony Corp データ処理装置、及びデータ処理方法
JP5500379B2 (ja) 2010-09-03 2014-05-21 ソニー株式会社 データ処理装置、及びデータ処理方法
JP5505725B2 (ja) 2010-09-16 2014-05-28 ソニー株式会社 データ処理装置、及びデータ処理方法
JP5601182B2 (ja) 2010-12-07 2014-10-08 ソニー株式会社 データ処理装置、及びデータ処理方法
JP5630278B2 (ja) 2010-12-28 2014-11-26 ソニー株式会社 データ処理装置、及びデータ処理方法
JP2012147197A (ja) 2011-01-11 2012-08-02 Panasonic Corp 通信装置、通信方法、及び通信プログラム
JP2012151655A (ja) * 2011-01-19 2012-08-09 Sony Corp データ処理装置、及び、データ処理方法
JP5630283B2 (ja) 2011-01-19 2014-11-26 ソニー株式会社 データ処理装置、及び、データ処理方法
JP5630282B2 (ja) 2011-01-19 2014-11-26 ソニー株式会社 データ処理装置、及び、データ処理方法
JP5637393B2 (ja) 2011-04-28 2014-12-10 ソニー株式会社 データ処理装置、及び、データ処理方法
JP5648852B2 (ja) 2011-05-27 2015-01-07 ソニー株式会社 データ処理装置、及び、データ処理方法
SG10201608508QA (en) 2012-01-20 2016-12-29 Samsung Electronics Co Ltd Video Encoding Method And Apparatus And Video Decoding Method And Apparatus Using Unified Syntax For Parallel Processing
CN102684707B (zh) * 2012-05-21 2015-02-25 电子科技大学 一种ldpc编码器
WO2014123014A1 (ja) * 2013-02-08 2014-08-14 ソニー株式会社 データ処理装置、及びデータ処理方法
US20150046766A1 (en) * 2013-02-08 2015-02-12 Sony Corporation Data processing apparatus and data processing method
JP2015156532A (ja) * 2014-02-19 2015-08-27 ソニー株式会社 データ処理装置、及び、データ処理方法
JP2015170912A (ja) * 2014-03-05 2015-09-28 ソニー株式会社 データ処理装置、及び、データ処理方法

Also Published As

Publication number Publication date
KR102198121B1 (ko) 2021-01-04
US20150046766A1 (en) 2015-02-12
CA2867660A1 (en) 2014-08-14
CN104205648B (zh) 2018-06-26
KR20200031705A (ko) 2020-03-24
US20180351578A1 (en) 2018-12-06
TR201815788T4 (tr) 2018-11-21
CN104205648A (zh) 2014-12-10
EP3442128B1 (en) 2023-08-02
CA2867660C (en) 2023-01-24
EP2958240A4 (en) 2016-08-17
PL2958240T3 (pl) 2019-01-31
MX2014011899A (es) 2014-11-20
JPWO2014123017A1 (ja) 2017-02-02
HUE047153T2 (hu) 2020-04-28
US20200099396A1 (en) 2020-03-26
KR20150116764A (ko) 2015-10-16
CN108900199A (zh) 2018-11-27
EP2958240A1 (en) 2015-12-23
KR102091889B1 (ko) 2020-04-14
US10530389B2 (en) 2020-01-07
CN108900199B (zh) 2022-08-09
HUE063345T2 (hu) 2024-01-28
US11177832B2 (en) 2021-11-16
EP2958240B1 (en) 2018-08-22
EP3442128A1 (en) 2019-02-13
AR095113A1 (es) 2015-09-30
WO2014123017A1 (ja) 2014-08-14

Similar Documents

Publication Publication Date Title
ES2697695T3 (es) Codificación y descodificación de un código LDPC con tasa 18/30 (3/5) de longitud 64.800
ES2649560T3 (es) Método y aparato para codificar y método y aparato para decodificar un código LDPC de 64K y tasa 2/3
KR102190357B1 (ko) 데이터 처리 장치, 및, 데이터 처리 방법
KR101474049B1 (ko) 데이터 처리 장치 및 데이터 처리 방법
EP2613443B1 (en) Data processing device and data processing method
CA2868419C (en) Data processing apparatus and data processing method
CN110890893B (zh) 数据处理装置以及数据处理方法
EP3110010A1 (en) Data processing device and data processing method
EP3148091B1 (en) Bit interleaved coded modulation with a group-wise interleaver adapted to a rate 8/15 ldpc code of length 16200
KR102190362B1 (ko) 데이터 처리 장치 및 데이터 처리 방법
EP2618491A1 (en) Data processing device and data processing method
CN104969478B (zh) 数据处理装置以及数据处理方法
KR102162907B1 (ko) 데이터 처리 장치, 및, 데이터 처리 방법
EP3148087B1 (en) Bit interleaved coded modulation with a group-wise interleaver adapted to a rate 12/15 ldpc code of length 16200
KR20200140397A (ko) 데이터 처리 장치, 및, 데이터 처리 방법
KR102474717B1 (ko) 송신 방법, 및 수신 장치
KR102474644B1 (ko) 송신 방법, 및 수신 장치
KR20200107952A (ko) 송신 방법 및 수신 장치
JP2019125949A (ja) 送信方法及び受信装置
KR20200108832A (ko) 송신 방법 및 수신 장치
JP2019126015A (ja) 送信方法及び受信装置
WO2019142685A1 (ja) 送信方法及び受信装置
JP2019125950A (ja) 送信方法及び受信装置
JP2019126016A (ja) 送信方法及び受信装置