US20160204800A1 - Data processing device and data processing method - Google Patents

Data processing device and data processing method Download PDF

Info

Publication number
US20160204800A1
US20160204800A1 US14/913,727 US201414913727A US2016204800A1 US 20160204800 A1 US20160204800 A1 US 20160204800A1 US 201414913727 A US201414913727 A US 201414913727A US 2016204800 A1 US2016204800 A1 US 2016204800A1
Authority
US
United States
Prior art keywords
column
parity check
check matrix
bits
code
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.)
Abandoned
Application number
US14/913,727
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
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Assigned to SONY CORPORATION reassignment SONY CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SHINOHARA, YUJI, YAMAMOTO, MAKIKO
Publication of US20160204800A1 publication Critical patent/US20160204800A1/en
Assigned to SATURN LICENSING LLC reassignment SATURN LICENSING LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SONY CORPORATION
Abandoned legal-status Critical Current

Links

Images

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
    • 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/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/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
    • 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/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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received

Definitions

  • the present technology relates to a data processing device and a data processing method.
  • the present technology relates to a data processing device and a data processing method capable of providing an excellent communication quality in data transmission using an LDPC code.
  • An LDPC (low density parity check) code has high error correcting capability and is used widely as a transmission scheme including digital broadcasting such as DVB (digital video broadcasting)-S.2, DVB-T.2,DVB-C.2, ATSC (Advanced Television Systems Committee) 3.0 used in Europe, for example (for example, see Non-Patent Document 1) in recent years.
  • digital broadcasting such as DVB (digital video broadcasting)-S.2, DVB-T.2,DVB-C.2, ATSC (Advanced Television Systems Committee) 3.0 used in Europe, for example (for example, see Non-Patent Document 1) in recent years.
  • the LDPC code may obtain performance close to Shannon limit as a code length thereof is made longer as well as a turbo code and the like.
  • the LDPC code characteristic ally has an advantage that a block error probability characteristic thereof is excellent and that a so-called error floor phenomenon observed in a decoding characteristic of the turbo code and the like scarcely occurs by its feature that a minimum distance is proportional to the code length.
  • the LDPC code is made a symbol of orthogonal modulation (digital modulation) such as QPSK (quadrature phase shift keying) (symbolized), and the symbol is mapped onto a signal point of the orthogonal modulation to be transmitted.
  • orthogonal modulation digital modulation
  • QPSK quadrature phase shift keying
  • the data transmission using the LDPC code as described above is spreading worldwide. It urges to provide an excellent communication quality.
  • the present technology is made in view of such a condition and for providing an excellent communication quality in data transmission using an LDPC code.
  • First data processing device/data processing method includes an encoder/a step of encoding, which encodes information bits into an LDPC (low density parity check) code whose code length is 16200 bits and code rate is 8/15 based on a parity check matrix of the LDPC code, the LDPC code including information bits and parity bits, the parity check matrix including an information matrix part corresponding to the information bits and a parity matrix part corresponding to the parity bits, the information matrix part being represented by a parity check matrix initial value table, and the parity check matrix initial value table being a table indicating a position of an element 1 of the information matrix part for each 360 columns as
  • LDPC low density parity check
  • information bits are encoded into an LDPC (low density parity check) code whose code length is 12600 bits and code rate is 8/15 based on a parity check matrix of the LDPC code.
  • the LDPC code includes information bits and parity bits.
  • the parity check matrix includes an information matrix part corresponding to the information bits and a parity matrix part corresponding to the parity bits.
  • the information matrix part is represented by a parity check matrix initial value table.
  • the parity check matrix initial value table is a table indicating a position of an element 1 of the information matrix part for each 360 columns as
  • Second data processing device/data processing method includes an decoder/a step of decoding, which decodes an LDPC (low density parity check) code provided from data transmitted from a transmitting device, which includes an encoder, which encodes information bits into an LDPC (low density parity check) code whose code length is 16200 bits and code rate is 8/15 based on a parity check matrix of the LDPC code, the LDPC code including information bits and parity bits, the parity check matrix including an information matrix part corresponding to the information bits and a parity matrix part corresponding to the parity bits, the information matrix part being represented by a parity check matrix initial value table, and the parity check matrix initial value table being a table indicating a position of an element 1 of the information matrix part for each 360 columns as
  • LDPC low density parity check
  • an LDPC (low density parity check) code provided from data transmitted from a transmitting device being decoded, includes an encoder, which encodes information bits into the LDPC code whose code length is 16200 bits and code rate is 8/15 based on a parity check matrix of the LDPC code.
  • the LDPC code includes information bits and parity bits.
  • the parity check matrix includes an information matrix part corresponding to the information bits and a parity matrix part corresponding to the parity bits.
  • the information matrix part is represented by a parity check matrix initial value table.
  • the parity check matrix initial value table is a table indicating a position of an element 1 of the information matrix part for each 360 columns as
  • the data processing device may be an independent device or an internal block configuring one device.
  • FIG. 1 A view illustrating a parity check matrix H of an LDPC code.
  • FIG. 2 A flowchart illustrating a decoding procedure of the LDPC code.
  • FIG. 3 A view showing an example of a parity check matrix of the LDPC code.
  • FIG. 4 A view showing a Tanner graph of the parity check matrix.
  • FIG. 5 A view showing a variable node.
  • FIG. 6 A view showing a check node.
  • FIG. 7 A view showing a configuration example of one embodiment of a transmission system to which the present technology is applied.
  • FIG. 8 A block diagram showing a configuration example of a transmitting device 11 .
  • FIG. 9 A block diagram showing a configuration example of a bit interleaver 116 .
  • FIG. 10 A view showing the parity check matrix.
  • FIG. 11 A view showing a parity matrix.
  • FIG. 12 A view illustrating the parity check matrix of the LDPC code specified in a DVB-S.2 standard.
  • FIG. 13 A view illustrating the parity check matrix of the LDPC code specified in the DVB-S.2 standard.
  • FIG. 14 A view showing a signal point constellation of 16QAM.
  • FIG. 15 A view showing the signal point constellation of 64QAM.
  • FIG. 16 A view showing the signal point constellation of the 64QAM.
  • FIG. 17 A view showing the signal point constellation of the 64QAM.
  • FIG. 18 A view showing the signal point constellation specified in the DVB-S.2 standard.
  • FIG. 19 A view showing the signal point constellation specified in the DVB-S.2 standard.
  • FIG. 20 A view showing the signal point constellation specified in the DVB-S.2 standard.
  • FIG. 21 A view showing the signal point constellation specified in the DVB-S.2 standard.
  • FIG. 22 A view showing a process of a demultiplexer 25 .
  • FIG. 23 A view showing a process of a demultiplexer 25 .
  • FIG. 24 A view showing the Tanner graph for decoding of the LDPC code.
  • FIG. 25 A view showing a parity matrix H T having a stepwise structure and the Tanner graph corresponding to the parity matrix H T .
  • FIG. 26 A view showing the parity matrix H T of the parity check matrix H corresponding to the LDPC code after parity interleave.
  • FIG. 27 A view showing a conversion parity check matrix.
  • FIG. 28 A view illustrating a process of a column twist interleaver 24 .
  • FIG. 29 A view showing the number of columns of a memory 31 required for column twist interleave and an address of a writing start position.
  • FIG. 30 A view showing the number of columns of the memory 31 required for the column twist interleave and the address of the writing start position.
  • FIG. 31 A flowchart illustrating processes performed by the bit interleaver 116 and a mapper 117 .
  • FIG. 32 A view showing a model of a communication channel adopted in simulation.
  • FIG. 33 A view showing relationship between a bit error rate obtained by the simulation and a Doppler frequency f d of a flutter.
  • FIG. 34 A view showing the relationship between the bit error rate obtained by the simulation and the Doppler frequency f d of the flutter.
  • FIG. 35 A block diagram showing a configuration example of an LDPC encoder 115 .
  • FIG. 36 A flowchart illustrating a process of the LDPC encoder 115 .
  • FIG. 37 A view showing an example of a parity check matrix initial value table in which a code rate is 1/4 and a code length is 16200.
  • FIG. 38 A view illustrating a method of obtaining the parity check matrix H from the parity check matrix initial value table.
  • FIG. 40 A view showing an example of the Tanner graph of an ensemble of a degree sequence in which a column weight is 3 and a row weight is 6.
  • FIG. 41 A view showing an example of the Tanner graph of a multi-edge type ensemble.
  • FIG. 45 A view showing a simulation result of measurement of BER/FER.
  • FIG. 46 A block diagram showing a configuration example of a receiving device 12 .
  • FIG. 47 A block diagram showing a configuration example of a bit deinterleaver 165 .
  • FIG. 48 A flowchart illustrating processes performed by a demapper 164 , the bit deinterleaver 165 , and an LDPC decoder 166 .
  • FIG. 49 A view showing an example of the parity check matrix of the LDPC code.
  • FIG. 50 A view illustrating a matrix (conversion parity check matrix) obtained by applying row permutation and column permutation to the parity check matrix.
  • FIG. 51 A view illustrating the conversion parity check matrix divided into 5 ⁇ 5 units.
  • FIG. 52 A block diagram showing a configuration example of a decoding device, which collectively performs P node operations.
  • FIG. 53 A block diagram showing a configuration example of the LDPC decoder 166 .
  • FIG. 54 A view illustrating a process of a multiplexer 54 configuring the bit deinterleaver 165 .
  • FIG. 55 A view illustrating a process of a column twist deinterleaver 55 .
  • FIG. 56 A block diagram showing another configuration example of the bit deinterleaver 165 .
  • FIG. 57 A block diagram showing a first configuration example of a receiving system to which the receiving device 12 may be applied.
  • FIG. 58 A block diagram showing a second configuration example of the receiving system to which the receiving device 12 may be applied.
  • FIG. 59 A block diagram showing a third configuration example of the receiving system to which the receiving device 12 may be applied.
  • FIG. 60 A block diagram showing a configuration example of one embodiment of a computer to which the present technology is applied.
  • the LDPC code is a linear code and is not necessarily required to be a binary code; however, it is herein described supposing that this is the binary code.
  • a parity check matrix defining the LDPC code is sparse.
  • the sparse matrix is the matrix in which the number of elements “1” of the matrix is very small (most of elements are 0).
  • FIG. 1 is a view showing an example of a parity check matrix H of the LDPC code.
  • a weight of each column (column weight) (the number of “1”) is “3” and the weight of each row (row weight) is “6”.
  • a codeword (LDPC code) is generated by generation of a generator matrix G based on the parity check matrix H and multiplication of the generator matrix G by a binary information bit, for example.
  • the generator matrix G is a K ⁇ N matrix
  • the codeword (LDPC code) generated by the encoding device is received on a receiving side through a predetermined communication channel.
  • Decoding of the LDPC code may be performed by an algorithm suggested by Gallager as probabilistic decoding being a message passing algorithm by belief propagation on a so-called Tanner graph configured of a variable node (also referred to as a message node) and a check node.
  • a variable node also referred to as a message node
  • a check node the variable node and the check node are appropriately and simply referred to as a node.
  • FIG. 2 is a flowchart showing a procedure of the decoding of the LDPC code.
  • a real value (received LLR) representing likelihood of a value to be “0” of an i-th code bit of the LDPC code (one codeword) received on the receiving side by a log likelihood ratio is hereinafter appropriately referred to as a received value u 0i .
  • a message output from the check node is set to u j and the message output from the variable node is set to v i .
  • the LDPC code is received, the message (check node message) u j is initialized to “0”, and a variable k being an integer as a counter of a repetitive process is initialized to “0” at step S 11 and the procedure shifts to step S 12 .
  • the message (variable node message) v i is obtained by an operation (variable node operation) represented in equation (1) based on the received value u 0i obtained by receiving the LDPC code and the message u is obtained by an operation (check node operation) represented in equation (2) based on the message v i .
  • the message input from an edge (line connecting the variable node and the check node to each other) from which the message is to be output is not a target of the operation, so that a range of the operation is 1 to d v ⁇ 1 or 1 to d c ⁇ 1.
  • a table of a function R(v 1 , v 2 ) represented in equation (3) defined by one output with respect to two inputs v 1 and v 2 is created in advance and this is continuously (recursively) used as represented in equation (4) for actually performing the check node operation in equation (2).
  • step S 12 the variable k is incremented by 1 and the procedure shifts to step S 13 .
  • step S 13 it is judged whether the variable k is larger than a predetermined number of times of repetitive decoding C. When it is judged that the variable k is not larger than C at step S 13 , the procedure returns to step S 12 and a similar process is hereinafter repeatedly performed.
  • step S 13 when it is judged that the variable k is larger than C at step S 13 , the procedure shifts to step S 14 to perform an operation represented in equation (5), so that the message v i as a decoding result to be finally output is obtained to be output and a decoding process of the LDPC code is finished.
  • the operation in equation (5) is performed using the messages u j from all the edges connected to the variable node.
  • FIG. 3 is a view showing an example of the parity check matrix H of the (3, 6) LDPC code (code rate 1/2 and code length 12).
  • the weight of the column is 3 and the weight of the row is 6 as in FIG. 1 .
  • FIG. 4 is a view showing the Tanner graph of the parity check matrix H in FIG. 3 .
  • the check node and the variable node correspond to the row and the column of the parity check matrix H, respectively.
  • a connection between the check node and the variable node is the edge, which corresponds to the element “1” of the parity check matrix.
  • the edge indicates that the code bit corresponding to the variable node has a constraint condition corresponding to the check node.
  • variable node operation and the check node operation are repeatedly performed.
  • FIG. 5 is a view showing the variable node operation performed in the variable node.
  • the message v i corresponding to the edge to be calculated is obtained by the variable node operation in equation (1) using the messages u 1 and u 2 from other edges connected to the variable node and the received value u 01 .
  • the message corresponding to another edge is similarly obtained.
  • FIG. 6 illustrates the check node operation performed in the check node.
  • ) ⁇ sign(a) ⁇ sign(b). Sign(x) is 1 when x >0 is satisfied and ⁇ 1 when x ⁇ 0 is satisfied.
  • the message u j corresponding to the edge to be calculated is obtained by the check node operation in equation (7) using messages v 1 , v 2 , v 3 , v 4 , and v 5 from other edges connected to the check node as illustrated in FIG. 6 .
  • the message corresponding to another edge is similarly obtained.
  • ⁇ (x) and ⁇ ⁇ 1 (x) are implemented in hardware, there is a case in which they are implemented using LUT (look up table), and the same LUT is used for both of them.
  • FIG. 7 illustrates a configuration example of one embodiment of a transmission system (the term “system” is intended to mean a logical assembly of a plurality of devices and it does not matter whether the devices of each configuration are in the same housing) to which the present technology is applied.
  • the transmission system is configured of a transmitting device 11 and a receiving device 12 .
  • the transmitting device 11 transmits (broadcasts) (transmits) a program of television broadcasting. That is to say, the transmitting device 11 encodes target data to be transmitted such as image data and audio data as the program, for example, into an LDPC code and transmits the same through a communication channel 13 such as a satellite circuit, a terrestrial wave, and a cable (wire circuit).
  • a communication channel 13 such as a satellite circuit, a terrestrial wave, and a cable (wire circuit).
  • the receiving device 12 receives the LDPC code transmitted from the transmitting device 11 through the communication channel 13 and decodes the same to the target data to output.
  • the LDPC code used in the transmission system in FIG. 7 exhibits an extremely high ability in an AWGN (additive white Gaussian noise) communication channel.
  • AWGN additive white Gaussian noise
  • a burst error and erasure might occur in the communication channel 13 such as the terrestrial wave.
  • the communication channel 13 is a terrestrial wave
  • OFDM orthogonal frequency division multiplexing
  • the burst error might occur due to a wiring status from a receiver (not shown) such as an antenna, which receives a signal from the transmitting device 11 , to the receiving device 12 and instability of a power supply of the receiving device 12 on a side of the receiving device 12 .
  • a receiver such as an antenna
  • a variable node operation in equation (1) including addition of (a received value u 0i of) a code bit of the LDPC code is performed as illustrated above in FIG. 5 in a variable node corresponding to a column of a parity check matrix H and eventually the code bit of the LDPC code, so that, when the error occurs in the code bit used in the variable node operation, accuracy of an obtained message is deteriorated.
  • a check node operation in equation (7) is performed in the check node using the message obtained in the variable node connected to the check node, so that decoding performance is deteriorated when the number of check nodes, in which (the code bits of the LDPC code corresponding to) a plurality of variable nodes connected thereto have the error (including the erasure) at the same time, increases.
  • the check node when the erasure occurs in two or more of the variable nodes connected to the check node at the same time, the check node returns the message indicating that probability that the value is 0 and the probability that the value is 1 are equal to all the variable nodes, for example.
  • the check node which returns the message of the equal probability, does not contribute to a single decoding process (one set of the variable node operation and the check node operation), and as a result, this requires a large number of repetitions of the decoding process, so that the decoding performance is deteriorated and further, power consumption of the receiving device 12 , which decodes the LDPC code, increases.
  • the transmission system in FIG. 7 is configured to improve resistance to burst error and erasure while maintaining performance in the AWGN communication channel (AWGN channel).
  • FIG. 8 is a block diagram showing a configuration example of the transmitting device 11 in FIG. 7 .
  • one or more input streams as the target data are supplied to a mode adaptation/multiplexer 111 .
  • the mode adaptation/multiplexer 111 selects a mode, multiplexes the one or more input streams supplied thereto, and supplies the data obtained as a result to a padder 112 .
  • the padder 112 performs necessary zero padding (null insertion) to the data from the mode adaptation/multiplexer 111 and supplies the data obtained as a result to a BB scrambler 113 .
  • the BB scrambler 113 applies BB scramble (Base-Band Scrambling) to the data from the padder 112 and supplies the data obtained as a result to a BCH encoder 114 .
  • BB scramble Base-Band Scrambling
  • the BCH encoder 114 performs BCH encoding of the data from the BB scrambler 113 and supplies the data obtained as a result to an LDPC encoder 115 as LDPC target data being a target of LDPC encoding.
  • the LDPC encoder 115 performs the LDPC encoding of the LDPC target data from the BCH encoder 114 according to a parity check matrix in which a parity matrix being a part corresponding to the parity bits of the LDPC code has a stepwise structure and outputs the LDPC code in which the information bits are the LDPC target data.
  • the LDPC encoder 115 performs the LDPC encoding to encode the LDPC target data into the LDPC code (corresponding to the parity check matrix) such as the LDPC code specified in a predetermined standard such as a DVB-S.2 standard, a DVB-T.2 standard and a DVB-C.2 standard or the predetermined LDPC code (corresponding to the parity check matrix), for example, and outputs the LDPC code obtained as a result.
  • a predetermined standard such as a DVB-S.2 standard, a DVB-T.2 standard and a DVB-C.2 standard
  • the predetermined LDPC code corresponding to the parity check matrix
  • the DVB-T.2 standard, or the DVB-C.2 standard is an IRA (irregular repeat-accumulate) code and the parity matrix in the parity check matrix of the LDPC code has the stepwise structure.
  • the parity matrix and the stepwise structure are described later.
  • the IRA code is described in “Irregular Repeat-Accumulate Codes,” H. Jin, A. Khandekar, and R. J. McEliece, in Proceedings of 2nd International Symposium on Turbo Codes and Related Topics, pp. 1-8, September 2000, for example.
  • the LDPC code output by the LDPC encoder 115 is supplied to a bit interleaver 116 .
  • the bit interleaver 116 performs bit interleave to be described later of the LDPC code from the LDPC encoder 115 and supplies the LDPC code after the bit interleave to a mapper 117 .
  • the mapper 117 maps the LDPC code from the bit interleaver 116 onto a signal point indicating one symbol of orthogonal modulation in units of one or more code bits of the LDPC code (symbol unit) to perform the orthogonal modulation (multilevel modulation).
  • the mapper 117 maps the LDPC code from the bit interleaver 116 onto the signal point defined by a modulation scheme for performing the orthogonal modulation of the LDPC code on an IQ plane (IQ constellation) defined by an I axis representing an I component in phase with a carrier wave and a Q axis representing a Q component orthogonal to the carrier wave and performs the orthogonal modulation.
  • IQ plane IQ constellation
  • the modulation scheme of the orthogonal modulation performed by the mapper 117 includes the modulation scheme including the modulation scheme specified in the DVB-S.2, DVB-T.2 and DVB-C.2 standards, for example, and other modulation schemes, that is to say, BPSK (Binary Phase Shift Keying), QPSK (quadrature phase shift keying), 8PSK (Phase-Shift Keying), 16APSK (Amplitude Phase-Shift Keying), 32APSK, 16QAM (quadrature amplitude modulation), 64QAM, 256QAM, 1024QAM, 4096QAM, 4PAM (Pulse Amplitude Modulation) and the like, for example.
  • the modulation scheme with which the orthogonal modulation is performed by the mapper 117 is set in advance according to operation of an operator of the transmitting device 11 , for example.
  • the data (symbol mapped onto the signal point) obtained by the process by the mapper 117 is supplied to a time interleaver 118 .
  • the time interleaver 118 performs time interleave (interleave in a time direction) in the symbol unit of the data (symbol) from the mapper 117 and supplies the data obtained as a result to a SISO/MISO (Single Input Single Output/Multiple Input Single Output) encoder 119 .
  • SISO/MISO Single Input Single Output/Multiple Input Single Output
  • the SISO/MISO encoder 119 applies time-space encoding to the data (symbol) from the time interleaver 118 to supply to a frequency interleaver 120 .
  • the frequency interleaver 120 performs frequency interleave (interleave in a frequency direction) in the unit of the data (symbol) from the SISO/MISO encoder 119 to supply to a frame builder & resource allocation 131 .
  • control data for transmission control such as Base Band Signaling, BB Header and the like is supplied to the BCH encoder 121 , for example.
  • the BCH encoder 121 performs the BCH encoding of the control data supplied thereto in the same manner as the BCH encoder 114 and supplies the data obtained as a result to an LDPC encoder 122 .
  • the LDPC encoder 122 performs the LDPC encoding of the data from the BCH encoder 121 as the LDPC target data in the same manner as the LDPC encoder 115 and supplies the LDPC code obtained as a result to a mapper 123 .
  • the mapper 123 maps the LDPC code from the LDPC encoder 122 onto the signal point indicating one symbol of the orthogonal modulation in units of one or more code bits of the LDPC code (symbol unit) to perform the orthogonal modulation and supplies the data (symbol) obtained as a result to a frequency interleaver 124 in the same manner as the mapper 117 .
  • the frequency interleaver 124 performs the frequency interleave of the data (symbol) from the mapper 123 in the symbol unit to supply to the frame builder & resource allocation 131 in the same manner as the frequency interleaver 120 .
  • the frame builder & resource allocation 131 inserts a pilot symbol into a required position of the data (symbol) from the frequency interleavers 120 and 124 and constitutes a frame configured of a predetermined number of symbols (for example, a PL (Physical Layer) frame, a T2 frame, a C2 frame and the like) from the data (symbol) obtained as a result to supply to an OFDM generation 132 .
  • a PL Physical Layer
  • the OFDM generation 132 generates an OFDM signal corresponding to the frame from the frame from the frame builder & resource allocation 131 and transmits the same through the communication channel 13 ( FIG. 7 ).
  • the transmitting device 11 may be configured without including some of the blocks shown in FIG. 8 , e.g., the time interleaver 118 , the SISO/MISO encoder 119 , the frequency interleaver 120 , and frequency interleaver 124 .
  • FIG. 9 shows a configuration example of the bit interleaver 116 in FIG. 8 .
  • the bit interleaver 116 has a function to interleave the data, and is configured of a parity interleaver 23 , a column twist interleaver 24 , and a demultiplexer (DEMUR) 25 .
  • the bit interleaver 116 may be configured without one or both of the parity interleaver 23 and the column twist interleaver 24 .
  • the parity interleaver 23 performs parity interleave to interleave the parity bit of the LDPC code from the LDPC encoder 115 to a position of another parity bit and supplies the LDPC code after the parity interleave to the column twist interleaver 24 .
  • the column twist interleaver 24 performs column twist interleave of the LDPC code from the parity interleaver 23 and supplies the LDPC code after the column twist interleave to the demultiplexer 25 .
  • the mapper 117 in FIG. 8 maps one or more code bits of the LDPC code onto the signal point indicating one symbol of the orthogonal modulation to transmit the LDPC code.
  • the column twist interleaver 24 performs the column twist interleave to be described later, for example, as a rearranging process to rearrange the code bits of the LDPC code from the parity interleaver 23 such that a plurality of code bits of the LDPC code corresponding to 1 in an optional row of the parity check matrix used by the LDPC encoder 115 is not included in one symbol.
  • the demultiplexer 25 obtains the LDPC code whose resistance to AWGN is reinforced by performing an interchanging process to interchange positions of two or more code bits of the LDPC code being the symbol for the LDPC code from the column twist interleaver 24 . Then, the demultiplexer 25 supplies the two or more code bits of the LDPC code obtained by the interchanging process to the mapper 117 ( FIG. 8 ) as the symbol.
  • FIG. 10 shows the parity check matrix H used by the LDPC encoder 115 in FIG. 8 in the LDPC encoding.
  • the information length K and the parity length M of the LDPC code of a certain code length N are determined according to the code rate.
  • the parity check matrix H is an M ⁇ N (row ⁇ column) matrix.
  • the information matrix H A is an M ⁇ K matrix and the parity matrix H T is an M ⁇ M matrix.
  • FIG. 11 shows the parity matrix H T of the parity check matrix H of the LDPC code specified in the DVB-S.2, DVB-T.2 and DVB-C.2 standards.
  • the parity matrix H T of the parity check matrix H of the LDPC code specified in the DVB-T.2 standard has a lower bidiagonal matrix in which elements of 1 are arranged in a so-called stepwise manner as shown in FIG. 11 .
  • a row weight of the parity matrix H T is 1 for a first row and 2 for all other rows.
  • a column weight is 1 for a last column and 2 for all other columns.
  • the LDPC code of the parity check matrix H in which the parity matrix H T has the stepwise structure may be easily generated using the parity check matrix H.
  • the LDPC code (one codeword) is represented by a row vector c and a column vector obtained by transposing the row vector is represented as c T .
  • the parity check matrix H and the row vector c [A
  • FIG. 12 is a view illustrating the parity check matrix H of the LDPC code specified in the DVB-T.2 standard.
  • the column weight is X for first to KX-th columns, the column weight is 3 for next K 3 columns, the column weight is 2 for next M ⁇ 1 columns, and the column weight is 1 for a last column in the parity check matrix H of the LDPC code specified in the DVB-T.2 standard.
  • KX+K 3 +M ⁇ 1+1 equals to the code length N.
  • FIG. 13 is a view showing the numbers of columns KX, K 3 , and M and the column weight X for each code rate r of the LDPC code specified in the DVB-T.2 standard.
  • the LDPC codes whose code lengths N are 64800 bits and 16200 bits are specified in the DVB-T.2 standard.
  • the code length N of 64800 bits is hereinafter also referred to as 64 k bits and the code length of 16200 bits is also referred to as 16 k bits.
  • the column weight of the column closer to a top (leftmost) column tends to be larger, therefore, as for the LDPC code corresponding to the parity check matrix H, the code bit closer to a top code bit tends to be more tolerant to error (resistant to error) and the code bit closer to a last code bit tends to be less tolerant to error.
  • FIG. 14 illustrates arrangement on the IQ plane of (the signal points corresponding to) 16 symbols in a case in which the 16QAM is performed by the mapper 117 in FIG. 8 .
  • FIG. 14A shows the symbols of the 16QAM of DVB-T.2.
  • the 16 symbols are arranged in a 4 ⁇ 4 square shape in I direction ⁇ Q direction around an origin of the IQ plane.
  • the four bits represented by the one symbol of the 16QAM may be sequentially represented as bits y 0 , y 1 , y 2 , and y 3 in order from the highest-order bit.
  • the modulation scheme is the 16QAM
  • four code bits of the LDPC code are made the symbol (symbol value) of the four bits y 0 to y 3 (symbolized).
  • FIG. 14B illustrates a bit boundary of each of the four bits (hereinafter, also referred to as symbol bits) y 0 to y 3 represented by the symbol of the 16QAM.
  • the bit boundaries are located on two portions, which are a portion between first and second columns from left and a portion between third and fourth columns from left of the 4 ⁇ 4 symbols.
  • the bit boundaries are located on two portions, which are a portion between first and second rows from the top and a portion between third and fourth rows from the top of the 4 ⁇ 4 symbols.
  • the symbol bit y 1 represented by the symbol is less likely to have an error (error probability is lower), and as the number of symbols closer to the bit boundary is larger, this is likely to have an error (error probability is high).
  • the bit, which is less likely to have an error (tolerant to error) is referred to as a “strong bit” and the bit, which is likely to have an error (less tolerant to error), is referred to as a “weak bit”, as for the four symbol bits y 0 to y 3 of the symbol of the 16QAM, the highest-order symbol bit y 0 and the second symbol bit y 1 are the strong bits and the third symbol bit y 2 and the fourth symbol bit y 3 are the weak bits.
  • FIGS. 15 to 17 illustrate the arrangement on the IQ plane of (the signal points corresponding to) 64 symbols when the 64QAM is performed by the mapper 117 in FIG. 8 , that is to say, the symbols of the 16QAM in DVB-T.2.
  • the 64 symbols are arranged in an 8 ⁇ 8 square shape in I direction ⁇ Q direction around the origin of the IQ plane.
  • the symbol bits of one symbol of the 64QAM may be represented as bits y 0 , y 1 , y 2 , y 3 , y 4 , and y 5 in order from the highest-order bit.
  • the modulation scheme is the 64QAM
  • six code bits of the LDPC code are made the symbol of the six symbol bits y 0 to y 5 .
  • FIG. 15 illustrates the bit boundary of each of the highest-order symbol bit y 0 and the second symbol bit y 1 out of the symbol bits y 0 to y 5 of the symbol of the 64QAM
  • FIG. 16 illustrates the bit boundary of each of the third symbol bit y 2 and the fourth symbol bit y 3
  • FIG. 17 illustrates the bit boundary of each of the fifth symbol bit y 4 and the sixth symbol bit y 5 , respectively.
  • the bit boundary is located on one portion for the highest-order symbol bit y 0 and the second symbol bit y 1 . Also, as illustrated in FIG. 16 , the bit boundaries are located on two portions for the third symbol bit y 2 and the fourth symbol bit y 3 , and as illustrated in FIG. 17 , the bit boundaries are located on four portions for the fifth symbol bit y 4 and the sixth symbol bit y 5 .
  • the highest-order symbol bit y 0 and the second symbol bit y 1 are the strong bits and the third symbol bit y 2 and the fourth symbol bit y 3 are next strongest bits.
  • the fifth symbol bit y 4 and the sixth symbol bit y 5 are the weak bits.
  • FIG. 18 is a view showing an example that four symbols (corresponding to signal points) are arranged on the IQ plane, i.e., the signal point constellation specified in the DVB-S.2, when a satellite circuit is adopted as the communication channel 13 ( FIG. 7 ), and the QPSK is performed at the mapper 117 in FIG. 8 .
  • the symbols are mapped to any of four signal points on a circumference of a circle where a radius ⁇ is 1 centered at an original point on the IQ plane.
  • FIG. 19 is a view showing an example that eight symbols are arranged on the IQ plane, i.e., the signal point constellation of 8PSK by the DVB-S.2, when a satellite circuit is adopted as the communication channel 13 ( FIG. 7 ), and the 8PSK is performed at the mapper 117 in FIG. 8 .
  • the symbols are mapped to any of eight signal points on a circumference of a circle where a radius p is 1 centered at an original point on the IQ plane.
  • FIG. 20 is a view showing an example that 16 symbols are arranged on the IQ plane, i.e., the signal point constellation of 16APSK by the DVB-S.2, when a satellite circuit is adopted as the communication channel 13 ( FIG. 7 ), and the 16APSK is performed at the mapper 117 in FIG. 8 .
  • FIG. 20A shows constellation of 16APSK by the DVB-S.2.
  • symbols are mapped to any of 16 signal points in total, i.e., four signal points on a circumference of a circle where a radius R 1 is centered at an original point on the IQ plane, and 12 signal points on a circumference of a circle where a radius is R 2 (>R 1 ).
  • the radius ratio ⁇ of the radius R 2 to the radius R 1 is different for the code rate.
  • FIG. 21 is a view showing an example that 32 symbols are arranged on the IQ plane, i.e., the signal point constellation of 32APSK by the DVB-S.2, when a satellite circuit is adopted as the communication channel 13 ( FIG. 7 ), and the 32APSK is performed at the mapper 117 in FIG. 8 .
  • FIG. 21A shows constellation of 32APSK in the DVB-S.2.
  • symbols are mapped to any of 32 signal points in total, i.e., four signal points on a circumference of a circle where a radius R 1 is centered at an original point on the IQ plane, 12 signal points on a circumference of a circle where a radius is R 2 (>R 1 ), and 16 signal points on a circumference of a circle where a radius is R 3 (>R 2 ).
  • the radius ratio ⁇ 1 of the radius R 2 to the radius R 1 and the radius ratio ⁇ 2 of the radius R 3 to the radius R 1 are different for the code rate.
  • the LDPC code output from the LDPC encoder 115 includes the code bit tolerant to error and the code bit less tolerant to error.
  • the interleaver which interleaves the code bit of the LDPC code so as to allocate the code bit less tolerant to error of the LDPC code to the strong bit (symbol bit) of the symbol of the orthogonal modulation.
  • the demultiplexer 25 in FIG. 9 may perform the process of the interleaver.
  • FIG. 22 is a view illustrating the process of the demultiplexer 25 in FIG. 9 .
  • FIG. 22A shows a functional configuration example of the demultiplexer 25 .
  • the demultiplexer 25 is configured of a memory 31 and an interchange unit 32 .
  • the LDPC code from the LDPC encoder 115 is supplied to the memory 31 .
  • the memory 31 has a storage capacity to store mb bits in a row (horizontal) direction and store N/(mb) bits in a column (vertical) direction and writes the code bits of the LDPC code supplied thereto in the column direction and reads the same in the row direction to supply to the interchange unit 32 .
  • N information length K+parity length M
  • m represents the number of code bits of the LDPC code to be made one symbol and b being a predetermined positive integer is a multiple number used for obtaining an integral multiple of m.
  • the demultiplexer 25 makes the code bit of the LDPC code the symbol (symbolizes) as described above; the multiple number b represents the number of symbols obtained by so-called single symbolization by the demultiplexer 25 .
  • FIG. 22A shows the configuration example of the demultiplexer 25 in a case in which the modulation scheme is the 64QAM that maps the symbol to any of 64 signal points, so that the number of code bits m of the LDPC code to be made one symbol is six.
  • the modulation scheme is the 64QAM that maps the symbol to any of 64 signal points, so that the number of code bits m of the LDPC code to be made one symbol is six.
  • the multiple number b is set to 1, so that the memory 31 has the storage capacity of N/(6 ⁇ 1) ⁇ (6 ⁇ 1) bits (in column direction ⁇ row direction).
  • a storage region extending in the column direction with one bit in the row direction of the memory 31 is hereinafter appropriately referred to as a column.
  • the demultiplexer 25 writes the code bits of the LDPC code from the top of the column configuring the memory 31 downward (in the column direction) from a left column to a right column.
  • the code bits are read in units of six bits (mb bits) in the row direction from a first row of all the columns configuring the memory 31 to be supplied to the interchange unit 32 .
  • the interchange unit 32 performs the interchanging process to interchange the positions of the six code bits from the memory 31 and outputs the six bits obtained as a result as the six symbol bits y 0 , y 1 , y 2 , y 3 , y 4 , and y 5 representing one symbol of the 64QAM.
  • the code bit in a direction of the bit b 0 is the code bit tolerant to error and the code bit in a direction of the bit b 5 is the code bit less tolerant to error.
  • the interchange unit 32 may perform the interchanging process to interchange positions of the six code bits b 0 to b 5 from the memory 31 such that the code bit less tolerant to error out of the six code bits b 0 to b 5 from the memory 31 is allocated to the strong bit out of the symbol bits y 0 to y 5 of one symbol of the 64QAM.
  • FIG. 22B shows a first interchanging scheme
  • FIG. 22C shows a second interchanging scheme
  • FIG. 22D shows a third interchanging scheme, respectively.
  • a line segment connecting the bits b i and y j indicates that the code bit b i is allocated to the symbol bit y j of the symbol (interchanged to a position of the symbol bit y j ).
  • FIG. 23 shows the configuration example of the demultiplexer 25 in a case in which the modulation scheme is the 64QAM that maps the symbol to any of 64 signal points (therefore, the number of code bits m of the LDPC code mapped onto one symbol is six as in FIG. 22 ) and the multiple number b is set to 2, and a fourth interchanging scheme.
  • the modulation scheme is the 64QAM that maps the symbol to any of 64 signal points (therefore, the number of code bits m of the LDPC code mapped onto one symbol is six as in FIG. 22 ) and the multiple number b is set to 2, and a fourth interchanging scheme.
  • FIG. 23A shows the order of writing of the LDPC code to the memory 31 .
  • the demultiplexer 25 writes the code bits of the LDPC code from the top of the column configuring the memory 31 downward (in the column direction) from the left column to the right column as illustrated in FIG. 22 .
  • the code bits are read in units of 12 bits (mb bits) in the row direction from the first row of all the columns configuring the memory 31 to be supplied to the interchange unit 32 .
  • the interchange unit 32 performs the interchanging process to interchange the positions of the 12 code bits from the memory 31 by the fourth interchanging scheme and outputs the 12 bits obtained as a result as the 12 bits representing two symbols (b symbols) of the 64QAM, that is to say, the six symbol bits y 0 , y 1 , y 2 , y 3 , y 4 , and y 5 representing one symbol of the 64QAM and the six symbol bits y 0 , y 1 , y 2 , y 3 , y 4 , and y 5 representing next one symbol.
  • FIG. 23B shows the fourth interchanging scheme of the interchanging process by the interchange unit 32 in FIG. 23A .
  • the mb code bits are allocated to mb symbol bits of successive b symbols in the interchanging process.
  • the i+1-th bit from the highest-order bit of the mb symbol bits of the successive b symbols is represented as the bit (symbol bit) y i for convenience of description.
  • An appropriate interchanging method that is to say, the method of further improving the bit error rate in the AWGN communication channel is different according to the code rate, the code length, the modulation scheme and the like of the LDPC code.
  • FIG. 24 shows (a part of) a Tanner graph of the parity check matrix of the LDPC code.
  • the check node returns the message indicating that the probability that the value is 0 and the probability that the value is 1 are equal to all the variable nodes connected to the check node when the error such as the erasure occurs in a plurality (for example, two) of (code bits corresponding to the) variable nodes connected to the check node at the same time as illustrated in FIG. 24 . Therefore, when the erasure and the like occur at the same time in a plurality of variable nodes connected to the same check node, the decoding performance is deteriorated.
  • the LDPC code specified in the DVB-S.2 standard output by the LDPC encoder 115 in FIG. 8 is the IRA code and the parity matrix H T of the parity check matrix H has the stepwise structure as illustrated in FIG. 11 .
  • FIG. 25 shows the parity matrix H T having the stepwise structure and the Tanner graph corresponding to the parity matrix H T .
  • FIG. 25A shows the parity matrix H T having the stepwise structure and FIG. 25B shows the Tanner graph corresponding to the parity matrix H T in FIG. 25A .
  • the elements of 1 are adjacent to each other in each row (except the first row). Therefore, in the Tanner graph of the parity matrix H T , two adjacent variable nodes corresponding to the columns of the two adjacent elements whose value is 1 of the parity matrix H T are connected to the same check node.
  • the check node connected to the two variable nodes (the variable nodes, which obtain the message using the parity bits) corresponding to the two parity bits in which the error occurs returns the message indicating that the probability that the value is 0 and the probability that the value is 1 are equal to the variable nodes connected to the check node, whereby the decoding performance is deteriorated.
  • a burst length the number of parity bits in which the error is successively occurs
  • the number of check nodes, which return the message of the equal probability increases and the decoding performance is further deteriorated.
  • the parity interleaver 23 ( FIG. 9 ) performs the parity interleave to interleave the parity bit of the LDPC code from the LDPC encoder 115 to the position of another parity bit in order to prevent the above-described deterioration in decoding performance.
  • FIG. 26 shows the parity matrix H T of the parity check matrix H corresponding to the LDPC code after the parity interleave performed by the parity interleaver 23 in FIG. 9 .
  • the information matrix H A corresponding to the LDPC code specified in the DVB-S.2 standard output by the LDPC encoder 115 has a cyclic structure.
  • cyclic structure is intended to mean a structure in which a certain column is identical to a column obtained by a cyclic shift of another column including a structure in which a position of 1 in each row of P columns is set to a position obtained by the cyclic shift of a first column of the P columns in the column direction by a value proportional to a value q obtained by dividing the parity length M for each P columns, for example.
  • P in the cyclic structure is appropriately referred to as the number of columns being a unit of the cyclic structure.
  • LDPC codes There are two types of LDPC codes whose code lengths N are 64800 bits and 16200 bits as the LDPC code specified in the DVB-S.2 standard as illustrated in FIGS. 12 and 13 , and the number of columns P being the unit of the cyclic structure is set to 360, which is one of submultiples other than 1 and M out of the submultiples of the parity length M for both of the two LDPC codes.
  • the parity interleaver 23 interleaves a K+qx+y+1-th code bit out of the code bits of the N-bit LDPC code to a position of a K+Py+x+1-th code bit as the parity interleave as described above.
  • Both the K+qx+y+1-th code bit and the K+Py+x+1-th code bit are the code bits after a K+1-th code bit, so that they are the parity bits, therefore, the positions of the parity bits of the LDPC code is moved by the parity interleave.
  • the parity bits corresponding to) the variable nodes connected to the same check node are apart from each other by the number of columns P being the unit of the cyclic structure, that is to say, herein 360 bits, so that a situation in which the error occurs in a plurality of variable nodes connected to the same check node at the same time may be avoided in a case in which the burst length is shorter than 360 bits, and as a result, the resistance to burst error may be improved.
  • the LDPC code after the parity interleave to interleave the K+qx+y+1-th code bit to the position of the K+Py+x+1-th code bit is identical to the LDPC code of the parity check matrix obtained by performing column permutation to change the K+qx+y+1-th column of the original parity check matrix H to the K+qx+x+1-th column (hereinafter, also referred to as a conversion parity check matrix).
  • the term “quasi-cyclic structure” is intended to mean a structure in which a portion except a part has the cyclic structure.
  • the conversion parity check matrix obtained by applying the column permutation corresponding to the parity interleave to the parity check matrix of the LDPC code specified in the DVB-S.2 standard, one element 1 is lacking (there is an element 0) in a portion of 360 rows ⁇ 360 columns in a right corner thereof (a shift matrix to be described later), so that this does not have the (complete) cyclic structure and has the so-called quasi-cyclic structure in this point.
  • the conversion parity check matrix in FIG. 26 is the matrix obtained by applying permutation of the row (row permutation) for allowing the conversion parity check matrix to be configured of a constitutive matrix to be described later to the original parity check matrix H in addition to the column permutation corresponding to the parity interleave.
  • the transmitting device 11 in FIG. 8 transmits one or more code bits of the LDPC code as one symbol. That is to say, when two code bits are made one symbol, for example, the QPSK is used as the modulation scheme, for example, and when four code bits are made one symbol, the 16APSK or the 16QAM is used as the modulation scheme, for example.
  • variable nodes corresponding to the code bits of one symbol are connected to the same check node in order to decrease the probability that the erasure occurs in a plurality of (code bits corresponding to the) variable nodes connected to the same check node at the same time in order to improve the decoding performance.
  • the information matrix H A has the cyclic structure and the parity matrix H T has the stepwise structure.
  • the cyclic structure in the conversion parity check matrix being the parity check matrix of the LDPC code after the parity interleave, the cyclic structure (correctly, the quasi-cyclic structure as described above) also appears in the parity matrix.
  • FIG. 27 shows the conversion parity check matrix
  • FIG. 27A shows the conversion parity check matrix of the parity check matrix H of the LDPC code whose code length N is 64800 bits and code rate (r) is 3/4.
  • FIG. 27B shows the process performed by the demultiplexer 25 ( FIG. 9 ) to the LDPC code of the conversion parity check matrix in FIG. 27A , that is to say, the LDPC code after the parity interleave.
  • the code bits of the LDPC code after the parity interleave are written in the column direction to four columns configuring the memory 31 of the demultiplexer 25 with the 16APSK or the 16QAM as the modulation scheme that maps the symbol to any of 14 signal points.
  • the code bits written in the column direction to the four columns configuring the memory 31 are read in units of four bits in the row direction to be made one symbol.
  • code bits B 0 , B 1 , B 2 , and B 3 which are made one symbol, might be the code bits corresponding to 1 in an optional row of the conversion parity check matrix in FIG. 23A , and in this case, the variable nodes corresponding to the code bits B 0 , B 1 , B 2 , and B 3 are connected to the same check node.
  • the column twist interleaver 24 performs the column twist interleave to interleave the code bit of the LDPC code after the parity interleave from the parity interleaver 23 such that a plurality of code bits corresponding to 1 in an optional row of the conversion parity check matrix is not included in one symbol.
  • FIG. 28 is a view illustrating the column twist interleave.
  • FIG. 28 illustrates the memory 31 of the demultiplexer 25 ( FIGS. 22 and 23 ).
  • the memory 31 has the storage capacity to store the mb bits in the column (vertical) direction and the N/(mb) bits in the row (horizontal) direction and is configured of mb columns as illustrated in FIG. 22 . Then, the column twist interleaver 24 performs the column twist interleave by controlling a writing start position when the code bits of the LDPC code are written in the column direction and read in the row direction to/from the memory 31 .
  • the column twist interleaver 24 prevents a plurality of code bits, which is made one symbol, read in the row direction from being the code bits corresponding to 1 in an optional row of the conversion parity check matrix (rearranges the code bits of the LDPC code such that a plurality of code bits corresponding to 1 in an optional row of the parity check matrix is not included in the same symbol) by appropriately changing the writing start position at which the writing of the code bits is started for each of a plurality of columns.
  • the column twist interleaver 24 writes the code bits of the LDPC code (in place of the demultiplexer 25 in FIG. 22 ) from the top of the four columns configuring the memory 31 downward (in the column direction) from a left column to a right column.
  • the column twist interleaver 24 reads the code bits in units of four bits (mb bits) in the row direction from a first row of all the columns configuring the memory 31 and outputs the same to the interchange unit 32 of the demultiplexer 25 ( FIGS. 22 and 23 ) as the LDPC code after the column twist interleave.
  • the writing start position when an address of each position in the column direction is represented by an integer in ascending order while setting the address of a top (uppermost) position of each column to 0, the writing start position is set to a position whose address is 0 for a leftmost column, the writing start position is set to a position whose address is 2 for a second column (from left), the writing start position is set to a position whose address is 4 for a third column, and the writing start position is set to a position whose address is 7 for a fourth column.
  • the writing start position As for the column in which the writing start position is located on a position other than the position whose address is 0, when the code bits are written up to the undermost position, it is returned to the top (position whose address is 0) and the writing is performed up to a position just before the writing start position. Thereafter, the writing to the next (right) column is performed.
  • FIG. 29 shows the number of columns of the memory 31 required for the column twist interleave and the address of the writing start position for each modulation scheme for the LDPC code of each of 11 code rates whose code length N is 64800 specified in the DVB-T.2 standard.
  • the writing start position of a first column out of the two columns of the memory 31 is set to the position whose address is 0 and the writing start position of a second column is set to the position whose address is 2.
  • the multiple number b is set to 1.
  • the memory 31 has the four columns, which store 2 ⁇ 2 bits in the row direction, and stores 64800/(2 ⁇ 2) bits in the column direction.
  • the writing start position of the first column out of the four columns of the memory 31 is set to the position whose address is 0, the writing start position of the second column is set to the position whose address is 2, the writing start position of the third column is set to the position whose address is 4, and the writing start position of the fourth column is set to the position whose address is 7.
  • the multiple number b is set to 2.
  • the memory 31 has the four columns, which store 4 ⁇ 1 bits in the row direction, and stores 64800/(4 ⁇ 1) bits in the column direction.
  • the writing start position of the first column out of the four columns of the memory 31 is set to the position whose address is 0, the writing start position of the second column is set to the position whose address is 2, the writing start position of the third column is set to the position whose address is 4, and the writing start position of the fourth column is set to the position whose address is 7.
  • the memory 31 has eight columns, which store 4 ⁇ 2 bits in the row direction, and stores 64800/(4 ⁇ 2) bits in the column direction.
  • the writing start position of a first column out of the eight columns of the memory 31 is set to the position whose address is 0, the writing start position of a second column is set to the position whose address is 0, the writing start position of a third column is set to the position whose address is 2, the writing start position of a fourth column is set to the position whose address is 4, the writing start position of a fifth column is set to the position whose address is 4, the writing start position of a sixth column is set to a position whose address is 5, the writing start position of a seventh column is set to the position whose address is 7, and the writing start position of an eighth column is set to the position whose address is 7.
  • the memory 31 has six columns, which store 6 ⁇ 1 bits in the row direction, and stores 64800/(6 ⁇ 1) bits in the column direction.
  • the writing start position of a first column out of the six columns of the memory 31 is set to the position whose address is 0, the writing start position of a second column is set to the position whose address is 2, the writing start position of a third column is set to the position whose address is 5, the writing start position of a fourth column is set to a position whose address is 9, the writing start position of a fifth column is set to a position whose address is 10, and the writing start position of a sixth column is set to a position whose address is 13.
  • the memory 31 has 12 columns, which store 6 ⁇ 2 bits in the row direction, and stores 64800/(6 ⁇ 2) bits in the column direction.
  • the writing start position of a 1st column out of the 12 columns of the memory 31 is set to the position whose address is 0, the writing start position of a 2nd column is set to the position whose address is 0, the writing start position of a 3rd column is set to the position whose address is 2, the writing start position of a 4th column is set to the position whose address is 2, the writing start position of a 5th column is set to a position whose address is 3, the writing start position of a 6th column is set to the position whose address is 4, the writing start position of a 7th column is set to the position whose address is 4, the writing start position of an 8th column is set to the position whose address is 5, the writing start position of a 9th column is set to the position whose address is 5, the writing start position of a 10th column is set to the position whose address is 7, the writing start position of an 11th column is set to a position whose address is 8, and the writing start position of a 12th column is set to the position whose address is 9.
  • the memory 31 has the eight columns, which store 8 ⁇ 1 bits in the row direction, and stores 64800/(8 ⁇ 1) bits in the column direction.
  • the writing start position of the first column out of the eight columns of the memory 31 is set to the position whose address is 0, the writing start position of the second column is set to the position whose address is 0, the writing start position of the third column is set to the position whose address is 2, the writing start position of the fourth column is set to the position whose address is 4, the writing start position of the fifth column is set to the position whose address is 4, the writing start position of the sixth column is set to the position whose address is 5, the writing start position of the seventh column is set to the position whose address is 7, and the writing start position of the eighth column is set to the position whose address is 7.
  • the memory 31 has 16 columns, which store 8 ⁇ 2 bits in the row direction, and stores 64800/(8 ⁇ 2) bits in the column direction.
  • the writing start position of a 1st column out of the 16 columns of the memory 31 is set to the position whose address is 0, the writing start position of a 2nd column is set to the position whose address is 2, the writing start position of a 3rd column is set to the position whose address is 2, the writing start position of a 4th column is set to the position whose address is 2, the writing start position of a 5th column is set to the position whose address is 2, the writing start position of a 6th column is set to a position whose address is 3, the writing start position of a 7th column is set to the position whose address is 7, the writing start position of an 8th column is set to a position whose address is 15, the writing start position of a 9th column is set to a position whose address is 16, the writing start position of a 10th column is set to a position whose address is 20, the writing start position of an 11th column is set to a position whose address is 22, the writing start position of a 12th column is set to the position whose address is 22,
  • the memory 31 has 10 columns, which store 10 ⁇ 1 bits in the row direction, and stores 64800/(10 ⁇ 1) bits in the column direction.
  • the writing start position of a 1st column out of the 10 columns of the memory 31 is set to the position whose address is 0, the writing start position of a 2nd column is set to the position whose address is 3, the writing start position of a 3rd column is set to a position whose address is 6, the writing start position of a 4th column is set to the position whose address is 8, the writing start position of a 5th column is set to a position whose address is 11, the writing start position of a 6th column is set to a position whose address is 13, the writing start position of a 7th column is set to the position whose address is 15, the writing start position of an 8th column is set to a position whose address is 17, the writing start position of a 9th column is set to a position whose address is 18, and the writing start position of a 10th column is set to the position whose address is 20.
  • the memory 31 has 20 columns, which store 10 ⁇ 2 bits in the row direction, and stores 64800/(10 ⁇ 2) bits in the column direction.
  • the writing start position of a 1st column out of the 20 columns of the memory 31 is set to the position whose address is 0, the writing start position of a 2nd column is set to a position whose address is 1, the writing start position of a 3rd column is set to the position whose address is 3, the writing start position of a 4th column is set to the position whose address is 4, the writing start position of a 5th column is set to the position whose address is 5, the writing start position of a 6th column is set to the position whose address is 6, the writing start position of a 7th column is set to the position whose address is 6, the writing start position of an 8th column is set to the position whose address is 9, the writing start position of a 9th column is set to the position whose address is 13, the writing start position of a 10th column is set to a position whose address is 14, the writing start position of an 11th column is set to the position whose address is 14, the writing start position of a 12th column is set to the position whose address is 16, the writing start
  • the memory 31 has the 12 columns, which store 12 ⁇ 1 bits in the row direction, and stores 64800/(12 ⁇ 1) bits in the column direction.
  • the writing start position of the 1st column out of the 12 columns of the memory 31 is set to the position whose address is 0, the writing start position of the end column is set to the position whose address is 0, the writing start position of the 3rd column is set to the position whose address is 2, the writing start position of the 4th column is set to the position whose address is 2, the writing start position of the 5th column is set to the position whose address is 3, the writing start position of the 6th column is set to the position whose address is 4, the writing start position of the 7th column is set to the position whose address is 4, the writing start position of the 8th column is set to the position whose address is 5, the writing start position of the 9th column is set to the position whose address is 5, the writing start position of the 10th column is set to the position whose address is 7, the writing start position of the 11th column is set to the position whose address is 8, and the writing start position of the 12th column is set to the position whose address is 9.
  • the memory 31 has 24 columns, which store 12 ⁇ 2 bits in the row direction, and stores 64800/(12 ⁇ 2) bits in the column direction.
  • the writing start position of a 1st column out of the 24 columns of the memory 31 is set to the position whose address is 0, the writing start position of a 2nd column is set to the position whose address is 5, the writing start position of a 3rd column is set to the position whose address is 8, the writing start position of a 4th column is set to the position whose address is 8, the writing start position of a 5th column is set to the position whose address is 8, the writing start position of a 6th column is set to the position whose address is 8, the writing start position of a 7th column is set to the position whose address is 10, the writing start position of an 8th column is set to the position whose address is 10, the writing start position of a 9th column is set to the position whose address is 10, the writing start position of a 10th column is set to a position whose address is 12, the writing start position of an 11th column is set to the position whose address is 13, the writing start position of a 12th column is set to the position whose address is 16, the writing start position
  • FIG. 30 shows the number of columns of the memory 31 required for the column twist interleave and the address of the writing start position for each modulation scheme for the LDPC code of each of 10 code rates whose code length N is 16200 specified in the DVB-T.2 standard.
  • the memory 31 has the two columns, which store 2 ⁇ 1 bits in the row direction, and stores 16200/(2 ⁇ 1) bits in the column direction.
  • the writing start position of the first column out of the two columns of the memory 31 is set to the position whose address is 0 and the writing start position of the second column is set to the position whose address is 0.
  • the memory 31 has the four columns, which store 2 ⁇ 2 bits in the row direction, and stores 16200/(2 ⁇ 2) bits in the column direction.
  • the writing start position of the first column out of the four columns of the memory 31 is set to the position whose address is 0, the writing start position of the second column is set to the position whose address is 2, the writing start position of the third column is set to the position whose address is 3 and the writing start position of the fourth column is set to the position whose address is 3.
  • the memory 31 has the four columns, which store 4 ⁇ 1 bits in the row direction, and stores 16200/(4 ⁇ 1) bits in the column direction.
  • the writing start position of the first column out of the four columns of the memory 31 is set to the position whose address is 0, the writing start position of the second column is set to the position whose address is 2, the writing start position of the third column is set to the position whose address is 3, and the writing start position of the fourth column is set to the position whose address is 3.
  • the memory 31 has the eight columns, which store 4 ⁇ 2 bits in the row direction, and stores 16200/(4 ⁇ 2) bits in the column direction.
  • the writing start position of the first column out of the eight columns of the memory 31 is set to the position whose address is 0, the writing start position of the second column is set to the position whose address is 0, the writing start position of the third column is set to the position whose address is 0, the writing start position of the fourth column is set to the position whose address is 1, the writing start position of the fifth column is set to the position whose address is 7, the writing start position of the sixth column is set to the position whose address is 20, the writing start position of the seventh column is set to the position whose address is 20, and the writing start position of the eighth column is set to the position whose address is 21.
  • the memory 31 has the six columns, which store 6 ⁇ 1 bits in the row direction, and stores 16200/(6 ⁇ 1) bits in the column direction.
  • the writing start position of the first column out of the six columns of the memory 31 is set to the position whose address is 0, the writing start position of the second column is set to the position whose address is 0, the writing start position of the third column is set to the position whose address is 2, the writing start position of the fourth column is set to the position whose address is 3, the writing start position of the fifth column is set to the position whose address is 7, and the writing start position of the sixth column is set to the position whose address is 7.
  • the memory 31 has the 12 columns, which store 6 ⁇ 2 bits in the row direction, and stores 16200/(6 ⁇ 2) bits in the column direction.
  • the writing start position of the 1st column out of the 12 columns of the memory 31 is set to the position whose address is 0, the writing start position of the 2nd column is set to the position whose address is 0, the writing start position of the 3rd column is set to the position whose address is 0, the writing start position of the 4th column is set to the position whose address is 2, the writing start position of the 5th column is set to the position whose address is 2, the writing start position of the 6th column is set to the position whose address is 2, the writing start position of the 7th column is set to the position whose address is 3, the writing start position of the 8th column is set to the position whose address is 3, the writing start position of the 9th column is set to the position whose address is 3, the writing start position of the 10th column is set to the position whose address is 6, the writing start position of the 11th column is set to the position whose address is 7, and the writing start position of the 12th column is set to the position whose address is 7.
  • the memory 31 has the eight columns, which store 8 ⁇ 1 bits in the row direction, and stores 16200/(8 ⁇ 1) bits in the column direction.
  • the writing start position of the first column out of the eight columns of the memory 31 is set to the position whose address is 0, the writing start position of the second column is set to the position whose address is 0, the writing start position of the third column is set to the position whose address is 0, the writing start position of the fourth column is set to the position whose address is 1, the writing start position of the fifth column is set to the position whose address is 7, the writing start position of the sixth column is set to the position whose address is 20, the writing start position of the seventh column is set to the position whose address is 20, and the writing start position of the eighth column is set to the position whose address is 21.
  • the memory 31 has the 10 columns, which store 10 ⁇ 1 bits in the row direction, and stores 16200/(10 ⁇ 1) bits in the column direction.
  • the writing start position of the 1st column out of the 10 columns of the memory 31 is set to the position whose address is 0, the writing start position of the 2nd column is set to the position whose address is 1, the writing start position of the 3rd column is set to the position whose address is 2, the writing start position of the 4th column is set to the position whose address is 2, the writing start position of the 5th column is set to the position whose address is 3, the writing start position of the 6th column is set to the position whose address is 3, the writing start position of the 7th column is set to the position whose address is 4, the writing start position of the 8th column is set to the position whose address is 4, the writing start position of the 9th column is set to the position whose address is 5, and the writing start position of the 10th column is set to the position whose address is 7.
  • the memory 31 has the 20 columns, which store 10 ⁇ 2 bits in the row direction, and stores 16200/(10 ⁇ 2) bits in the column direction.
  • the writing start position of the 1st column out of the 20 columns of the memory 31 is set to the position whose address is 0, the writing start position of the 2nd column is set to the position whose address is 0, the writing start position of the 3rd column is set to the position whose address is 0, the writing start position of the 4th column is set to the position whose address is 2, the writing start position of the 5th column is set to the position whose address is 2, the writing start position of the 6th column is set to the position whose address is 2, the writing start position of the 7th column is set to the position whose address is 2, the writing start position of the 8th column is set to the position whose address is 2, the writing start position of the 9th column is set to the position whose address is 5, the writing start position of the 10th column is set to the position whose address is 5, the writing start position of the 11th column is set to the position whose address is 5, the writing start position of the 12th column is set to the position whose address is 5, the writing start position of the 13th column is set to the position
  • the memory 31 has the 12 columns, which store 12 ⁇ 1 bits in the row direction, and stores 16200/(12 ⁇ 1) bits in the column direction.
  • the writing start position of the 1st column out of the 12 columns of the memory 31 is set to the position whose address is 0, the writing start position of the 2nd column is set to the position whose address is 0, the writing start position of the 3rd column is set to the position whose address is 0, the writing start position of the 4th column is set to the position whose address is 2, the writing start position of the 5th column is set to the position whose address is 2, the writing start position of the sixth column is set to the position whose address is 2, the writing start position of the seventh column is set to the position whose address is 3, the writing start position of the eighth column is set to the position whose address is 3, the writing start position of the ninth column is set to the position whose address is 3, the writing start position of the tenth column is set to a position whose address is 6, the writing start position of the 11th column is set to the position whose address is 7, and the writing start position of the 12th column is set to the position whose address is 7.
  • the memory 31 has the 24 columns, which store 12 ⁇ 2 bits in the row direction, and stores 16200/(12 ⁇ 2) bits in the column direction.
  • the writing start position of the 1st column out of the 24 columns of the memory 31 is set to the position whose address is 0, the writing start position of the 2nd column is set to the position whose address is 0, the writing start position of the 3rd column is set to the position whose address is 0, the writing start position of the 4th column is set to the position whose address is 0, the writing start position of the 5th column is set to the position whose address is 0, the writing start position of the 6th column is set to the position whose address is 0, the writing start position of the 7th column is set to the position whose address is 0, the writing start position of the 8th column is set to the position whose address is 1, the writing start position of the 9th column is set to the position whose address is 1, the writing start position of the 10th column is set to the position whose address is 1, the writing start position of the 11th column is set to the position whose address is 2, the writing start position of the 12th column is set to the position whose address is 2, the writing start position of the 13th column is set to the position
  • FIG. 31 is a flowchart illustrating processes performed by the LDPC encoder 115 , the bit interleaver 116 , and the mapper 117 in FIG. 8 .
  • the LDPC encoder 115 encodes the LDPC target data into the LDPC code at step S 101 after waiting for supply of the LDPC target data from the BCH encoder 114 and supplies the LDPC code to the bit interleaver 116 , then the process shifts to step S 102 .
  • the bit interleaver 116 performs the bit interleave of the LDPC code from the LDPC encoder 115 and supplies the symbol obtained by symbolizing the LDPC code after the bit interleave to the mapper 117 at step S 102 , then the process shifts to step S 103 .
  • the parity interleaver 23 performs the parity interleave of the LDPC code from the LDPC encoder 115 and supplies the LDPC code after the parity interleave to the column twist interleaver 24 .
  • the column twist interleaver 24 performs the column twist interleave of the LDPC code from the parity interleaver 23 to supply to the demultiplexer 25 .
  • the demultiplexer 25 performs the interchanging process to interchange the code bits of the LDPC code after the column twist interleave by the column twist interleaver 24 and make the code bits after the interchange the symbol bits of the symbol (bits representing the symbol).
  • the interchanging process by the demultiplexer 25 may be performed according to the first to fourth interchanging schemes illustrated in FIGS. 22 and 23 and may be performed according to an allocation rule.
  • the symbol obtained by the interchanging process by the demultiplexer 25 is supplied from the demultiplexer 25 to the mapper 117 .
  • the mapper 117 maps the symbol from the demultiplexer 25 onto the signal point defined by the modulation scheme of the orthogonal modulation performed by the mapper 117 to perform the orthogonal modulation and supplies the data obtained as a result to the time interleaver 118 at step S 103 .
  • the parity interleaver 23 which is a block to perform the parity interleave
  • the column twist interleaver 24 which is a block to perform the column twist interleave
  • the parity interleaver 23 and the column twist interleaver 24 may be integrally formed.
  • the parity interleave and the column twist interleave may be performed by the writing and the reading of the code bits to and from the memory and may be represented by a matrix to convert the address at which the code bits are written (write address) to the address at which the code bits are read (read address).
  • demultiplexer 25 it is also possible to integrally form the demultiplexer 25 in addition to the parity interleaver 23 and the column twist interleaver 24 .
  • the interchanging process performed by the demultiplexer 25 may also be represented by the matrix to convert the write address of the memory 31 , which stores the LDPC code, to the read address.
  • the parity interleave and the column twist interleave it is possible to perform any one of them or to perform none of them.
  • the communication channel 13 FIG. 7
  • the satellite circuit such as the DVB-S.2 other than the AWGN where the burst error, the flutter, and the like are not necessarily taken into consideration
  • the parity interleave and the column twist interleave may not be performed.
  • the simulation is performed by adopting the communication channel with the flutter in which the D/U is 0 dB.
  • FIG. 32 illustrates a model of the communication channel adopted in the simulation.
  • FIG. 32A shows a model of the flutter adopted in the simulation.
  • FIG. 32B shows a model of the communication channel with the flutter illustrated by the model in FIG. 32A .
  • H represents the model of the flutter in FIG. 32A .
  • N represents ICI (inter carrier interference) and an expected value E [N 2 ] of power thereof is approximated by the AWGN in the simulation.
  • FIGS. 33 and 34 show relationship between the bit error rate obtained by the simulation and a Doppler frequency f d of the flutter.
  • FIG. 33 shows the relationship between the bit error rate and the Doppler frequency f d when the modulation scheme is the 16QAM, the code rate (r) is (3/4), and the interchanging scheme is the first interchanging scheme.
  • FIG. 34 shows the relationship between the bit error rate and the Doppler frequency f d when the modulation scheme is the 64QAM, the code rate (r) is (5/6), and the interchanging scheme is the first interchanging scheme.
  • a thick line indicates the relationship between the bit error rate and the Doppler frequency f d when all of the parity interleave, the column twist interleave, and the interchanging process are performed
  • a thin line indicates the relationship between the bit error rate and the Doppler frequency f d when only the interchanging process out of the parity interleave, the column twist interleave, and the interchanging process is performed.
  • bit error rate is improved (becomes lower) when all of the parity interleave, the column twist interleave, and the interchanging process are performed as compared to a case in which only the interchanging process is performed.
  • FIG. 35 is a block diagram illustrating a configuration example of the LDPC encoder 115 in FIG. 8 .
  • the LDPC encoder 122 in FIG. 8 also is configured in the same manner.
  • the LDPC codes of the two code lengths N of 64800 bits and 16200 bits are specified in the DVB-S.2 standard.
  • the LDPC encoder 115 may perform the encoding (error correction encoding) by such LDPC code of each code rate whose code lengths N are 64800 bits or 16200 bits according to the parity check matrix H prepared for each code length N and each code rate, for example.
  • the LDPC encoder 115 is configured of an encoding processor 601 and a storage unit 602 .
  • the encoding processor 601 is configured of a code rate set unit 611 , an initial value table read unit 612 , a parity check matrix generation unit 613 , an information bit read unit 614 , an encoding parity operation unit 615 , and a controller 616 , and this performs the LDPC encoding of the LDPC target data supplied to the LDPC encoder 115 and supplies the LDPC code obtained as a result to the bit interleaver 116 ( FIG. 8 ).
  • the code rate set unit 611 sets the code length N and the code rate of the LDPC code according to the operation of the operator and the like, for example.
  • the initial value table read unit 612 reads a parity check matrix initial value table to be described later corresponding to the code length N and the code rate set by the code rate set unit 611 from the storage unit 602 .
  • the information bit read unit 614 reads (extracts) the information bits as many as the information length K from the LDPC target data supplied to the LDPC encoder 115 .
  • the encoding parity operation unit 615 reads the parity check matrix H generated by the parity check matrix generation unit 613 from the storage unit 602 and calculates the parity bits for the information bits read by the information bit read unit 614 based on a predetermined equation using the parity check matrix H, thereby generating the codeword (LDPC code).
  • the controller 616 controls each block configuring the encoding processor 601 .
  • a plurality of parity check matrix initial value tables and the like corresponding to a plurality of code rates and the like illustrated in FIGS. 12 and 13 for each of the code lengths N such as 64800 bits and 16200 bits is stored in the storage unit 602 , for example.
  • the storage unit 602 temporarily stores the data required in the process of the encoding processor 601 .
  • FIG. 36 is a flowchart illustrating the process of the LDPC encoder 115 in FIG. 35 .
  • the code rate set unit 611 determines (sets) the code length N and the code rate r with which the LDPC encoding is performed.
  • the initial value table read unit 612 reads the parity check matrix initial value table determined in advance corresponding to the code length N and the code rate r determined by the code rate set unit 611 from the storage unit 602 .
  • the parity check matrix generation unit 613 obtains (generates) the parity check matrix H of the LDPC code with the code length N and the code rate r determined by the code rate set unit 611 using the parity check matrix initial value table read by the initial value table read unit 612 from the storage unit 602 and supplies the same to the storage unit 602 to store.
  • the encoding parity operation unit 615 sequentially calculates the parity bits of the codeword c satisfying equation (8) using the information bits from the information bit read unit 614 and the parity check matrix H.
  • c represents the row vector as the codeword (LDPC code) and c T represents transposition of the row vector c.
  • the parity check matrix H and the row vector c [A
  • step S 206 the controller 616 judges whether to finish the LDPC encoding.
  • step S 206 when it is judged that the LDPC encoding is not finished, that is to say, when there still is the LDPC target data to be LDPC encoded, for example, the process returns to step S 201 (or step S 204 ) and the processes at steps S 201 (or step S 204 ) to S 206 are hereinafter repeated.
  • the LDPC encoder 115 finishes the process.
  • the parity check matrix initial value table corresponding to each code length N and each code rate r is prepared, and the LDPC encoder 115 performs the LDPC encoding with a predetermined code length N and a predetermined code rate r using the parity check matrix H generated from the parity check matrix initial value table corresponding to the predetermined code length N and the predetermined code rate r.
  • the parity check matrix initial value table is the table indicating the position of the element 1 of the information matrix H A ( FIG. 10 ) corresponding to the information length K according to the code length N and the code rate r of the LDPC code (LDPC code defined by the parity check matrix H) of the parity check matrix for each 360 columns (the number of columns P being the unit of the cyclic structure) and is created in advance for each parity check matrix H of each code length N and each code rate r.
  • FIG. 37 is a view illustrating an example of the parity check matrix initial value table.
  • FIG. 37 illustrates the parity check matrix initial value table for the parity check matrix H whose code length N is 16200 bits and code rate (code rate in notation of DVB-T.2) r is 1/4 specified in the DVB.T-2 standard.
  • the parity check matrix generation unit 613 obtains the parity check matrix H in a following manner using the parity check matrix initial value table.
  • FIG. 38 illustrates a method of obtaining the parity check matrix H from the parity check matrix initial value table.
  • the parity check matrix initial value table in FIG. 38 illustrates the parity check matrix initial value table for the parity check matrix H whose code length N is 16200 bits and code rate r is 2/3 specified in the DVB.T-2 standard.
  • the parity check matrix initial value table is the table indicating the position of the element 1 of the information matrix H A ( FIG. 10 ) corresponding to the information length K according to the code length N and the code rate r of the LDPC code for each 360 columns (the number of columns P being the unit of the cyclic structure) as described above in which row numbers (the row number of the first row of the parity check matrix H is 0) of the elements of 1 of a 1+360 ⁇ (i ⁇ 1)-th column of the parity check matrix H as many as the number of column weights of the 1+360 ⁇ (i ⁇ 1)-th column are arranged in an i-th row.
  • the parity matrix H T ( FIG. 10 ) corresponding to the parity length M of the parity check matrix H is determined as illustrated in FIG. 21 , so that the information matrix H A ( FIG. 10 ) corresponding to the information length K of the parity check matrix H is obtained according to the parity check matrix initial value table.
  • the number of rows k+1 of the parity check matrix initial value table differs according to the information length K.
  • 360 in equation (9) is the number of columns P being the unit of the cyclic structure illustrated in FIG. 26 .
  • 13 values are arranged in each of first to third rows and 3 values are arranged in each of fourth to k+1-th rows (30th row in FIG. 38 ).
  • the column weights of the parity check matrix H obtained from the parity check matrix initial value table in FIG. 34 are 13 from the first column to 1+360 ⁇ (3 ⁇ 1) ⁇ 1-th column and 3 from the 1+360 ⁇ (3 ⁇ 1)-th column to a K-th column.
  • the first row of the parity check matrix initial value table in FIG. 38 is 0, 2084, 1613, 1548, 1286, 1460, 3196, 4297, 2481, 3369, 3451, 4620, and 2622 and this indicates that the element of the rows whose row numbers are 0, 2084, 1613, 1548, 1286, 1460, 3196, 4297, 2481, 3369, 3451, 4620, and 2622 is 1 (and other elements are 0) in the first column of the parity check matrix H.
  • the parity check matrix initial value table indicates the position of the element 1 of the information matrix H A of the parity check matrix H for each 360 columns.
  • each column from a 2+360 ⁇ (i ⁇ 1)-th column to a 360 ⁇ i-th column is obtained by periodically performing the cyclic shift to the element 1 of the 1+360 ⁇ (i ⁇ 1)-th column determined by the parity check matrix initial value table downward (in a direction toward a lower part of the column) according to the parity length M to arrange.
  • H w-j mod ⁇ h i,j +mod(( w ⁇ 1), P ) ⁇ q,M ) (10)
  • mod (x, y) represents a remainder obtained when x is divided by y.
  • P represents the above-described number of columns being the unit of the cyclic structure, which is set to 360 as described above in the DVB-S.2 standard, the DVB-T.2 standard and the DVB-C.2 standard, for example.
  • the parity check matrix generation unit 613 ( FIG. 35 ) specifies the row number of the element 1 of the 1+360 ⁇ (i ⁇ 1)-th column of the parity check matrix by the parity check matrix initial value table.
  • the parity check matrix generation unit 613 obtains the row number H w-j of the element 1 of the w-th column being the column other than the 1+360 ⁇ (i ⁇ 1)-th column of the parity check matrix H according to equation (10) and generates the parity check matrix H in which an element of the row number obtained from above is 1.
  • an LDPC code (hereinafter also referred to as a “new LDPC code”) having the code rate r of 6/15 and the code length N of 16 k bits will be described.
  • the parity matrix H T of the parity check matrix H has the stepwise structure ( FIG. 11 ) as is the case with the LDPC code specified in DVB-S.2 from a viewpoint of maintaining compatibility with DVB-S.2 as far as possible.
  • the information matrix H A of the parity check matrix H has the cyclic structure and the number of columns P being the unit of the cyclic structure is set to 360.
  • FIG. 39 , FIG. 40 and FIG. 41 are views showing examples of the parity check matrix initial value table of the new LDPC code.
  • the LDPC encoder 115 ( FIG. 8 , FIG. 35 ) performs the LDPC encoding to provide the new LDPC code using the parity check matrix H obtained from the parity check matrix initial value table shown in FIG. 39 .
  • the parity check matrix initial value table shown in FIG. 39 is stored in the storage unit 602 of the LDPC encoder 115 ( FIG. 8 ).
  • the new LDPC code obtained using the parity check matrix H obtained from the parity check matrix initial value table in FIG. 39 is a high-performance LDPC code.
  • high-performance LDPC code is intended to mean the LDPC code obtained from an appropriate parity check matrix H.
  • appropriate parity check matrix H is intended to mean the parity check matrix, which satisfies a predetermined condition to make the BER (bit error rate) lower when the LDPC code obtained from the parity check matrix H is transmitted with low Es/No or Eb/No (signal power to noise power ratio per bit).
  • the appropriate parity check matrix H may be obtained by the simulation of the measurement of the BER at the time when the LDPC code obtained from the various parity check matrices satisfying the predetermined condition is transmitted with the low Es/No, for example.
  • the predetermined condition which the appropriate parity check matrix H should satisfy, includes an excellent analysis result obtained by an analyzing method of performance of the code referred to as density evolution, absence of a loop of the elements of 1 referred to as cycle-4 and the like, for example.
  • the predetermined condition, which the appropriate parity check matrix H should satisfy, may be appropriately determined from a viewpoint of improvement in the decoding performance of the LDPC code, facilitation (simplification) of the decoding process of the LDPC code and the like.
  • FIG. 40 and FIG. 41 are views illustrating the density evolution with which the analysis result as the predetermined condition, which the appropriate parity check matrix H should satisfy, is obtained.
  • the density evolution is the analyzing method of the code, which calculates an expected value of the error probability for an entire LDPC code (ensemble) whose code length N is ⁇ characterized by a degree sequence to be described later.
  • the expected value of the error probability of a certain ensemble which is initially 0, is no longer 0 when the variance value of the noise becomes a certain threshold or larger.
  • the density evolution it is possible to determine whether performance of the ensemble (appropriateness of the parity check matrix) is excellent by comparing the threshold of the variance value of the noise (hereinafter, also referred to as a performance threshold) at which the expected value of the error probability is no longer 0.
  • a performance threshold the threshold of the variance value of the noise
  • the high-performance LDPC code may be found from the LDPC codes belonging to the ensemble.
  • the above-described degree sequence indicates a ratio of the variable node and the check node having the weight of each value to the code length N of the LDPC code.
  • a regular (3, 6) LDPC code whose code rate is 1/2 belongs to the ensemble characterized by the degree sequence in which the weight (column weight) of all the variable nodes is 3 and the weight (row weight) of all the check nodes is 6.
  • FIG. 40 shows the Tanner graph of such ensemble.
  • edges the number of which is equal to the row weight, are connected to each check node, so that there are a total of 3N edges connected to the N/2 check nodes.
  • the interleaver randomly rearranges the 3N edges connected to the N variable nodes and connects the rearranged edges to any of the 3N edges connected to the N/2 check nodes.
  • the interleaver through which the edge connected to the variable node and the edge connected to the check node pass is divided into a multi-edge one, so that the ensemble is more strictly characterized.
  • FIG. 41 shows an example of the Tanner graph of the multi-edge type ensemble.
  • v 1 variable nodes with one edge connected to the first interleaver and no edge connected to the second interleaver
  • v 2 variable nodes with one edge connected to the first interleaver and two edges connected to the second interleaver
  • v 3 variable nodes with no edge connected to the first interleaver and two edges connected to the second interleaver.
  • the ensemble in which the performance threshold being Eb/No (signal power to noise power ratio per bit) at which the BER starts to decrease (to be lower) is a predetermined value or smaller is found by multi-edge type density evolution and the LDPC code to decrease the BER is selected as the high-performance LDPC code out of the LDPC codes belonging to the ensemble.
  • the above-described parity check matrix initial value table of the new LDPC code is the parity check matrix initial value table of the LDPC code having the code rate r of 8/15 and the code length N of 16 k bits determined by the above simulation.
  • the new LDPC code obtained from the parity check matrix initial value table it can confirm that a good communication quality is provided in the data transmission.
  • FIG. 42 is a view showing a minimum cycle length and a performance threshold of the parity check matrix H obtained from the parity check matrix initial value table of the new LDPC code shown in FIG. 39 .
  • the minimum cycle length (girth) means a minimum value of a length of a loop (loop length) configured of the elements of 1 in the parity check matrix H.
  • the parity check matrix H obtained from the parity check matrix initial value table of the new LDPC code has the minimum cycle length of six, and there is no cycle-4 (the loop length of four, a loop of the elements of 1).
  • the performance threshold of the new LDPC code is 0.805765.
  • FIG. 43 is a view illustrating the parity check matrix H (the parity check matrix H of the new LDPC code) (obtained from the parity check matrix initial value table) in FIG. 39 .
  • the column weight is X 1 for first to KX 1 -th columns of the parity check matrix H of the new LDPC code, the column weight is X 2 for next KY 2 columns, the column weight is Y 1 for next KY 2 columns, the column weight is 2 for next M ⁇ 1 columns, and the column weight is 1 for a last column.
  • the column weight of the column closer to the top (left) column tends to be larger, so that the code bit closer to the top code bit of the new LDPC code tends to be more tolerant to error (have resistance to error).
  • the AWGN communication channel (channel) is supposed, the BPSK is adopted as the modulation scheme and 50 times is adopted as the number of times of repetitive decoding C(it).
  • Es/No is plotted along the abscissa and the BER/FER is plotted along the ordinate.
  • a solid line represents the BER, and a dotted line represents the FER.
  • the new LDPC code excellent BER/FER are obtained. Accordingly, it can confirm that a good communication quality is provided in the data transmission using the new LDPC code.
  • FIG. 46 is a block diagram illustrating a configuration example of the receiving device 12 in FIG. 7 .
  • An OFDM operation 151 receives the OFDM signal from the transmitting device 11 ( FIG. 7 ) and performs signal processing of the OFDM signal.
  • the data obtained by the signal processing by the OFDM operation 151 is supplied to a frame management 152 .
  • the frequency deinterleaver 153 performs frequency deinterleave in the symbol unit for the data from the frame management 152 to supply to a demapper 154 .
  • the demapper 154 demaps (performs signal point constellation decoding) the data (data on the constellation) from the frequency deinterleaver 153 based on the symbol arrangement (constellation) determined by the orthogonal modulation performed at the transmitting device 11 to perform the orthogonal demodulation thereof and supplies the data ((likelihood) of the LDPC code) obtained as a result to a LDPC decoder 155 .
  • the LDPC decoder 155 performs LDPC decoding of the LDPC code from the demapper 154 and supplies the LDPC target data (herein, a BCH code) obtained as a result to a BCH decoder 156 .
  • the BCH decoder 156 performs BCH decoding of the LDPC target data from the LDPC decoder 155 and outputs the control data (signaling) obtained as a result.
  • the SISO/MISO decoder 162 performs time-space decoding of the data from the frequency deinterleaver 161 to supply to a time deinterleaver 163 .
  • the time deinterleaver 163 performs time deinterleave of the data from the SISO/MISO decoder 162 in the symbol unit to supply to a demapper 164 .
  • the demapper 164 demaps (performs signal point constellation decoding) the data (data on the constellation) from the time deinterleaver 163 based on the symbol point arrangement (constellation) determined by the orthogonal modulation performed at the transmitting device 11 to perform the orthogonal demodulation thereof and supplies the data obtained as a result to a bit deinterleaver 165 .
  • the bit deinterleaver 165 performs bit deinterleave of the data from the demapper 164 and supplies (the likelihood of) the LDPC code obtained as a result to an LDPC decoder 166 .
  • the LDPC decoder 166 performs the LDPC decoding of the LDPC code from the bit deinterleaver 165 and supplies the LDPC target data (herein, the BCH code) obtained as a result to a BCH decoder 167 .
  • the BCH decoder 167 performs the BCH decoding of the LDPC target data from the LDPC decoder 155 and supplies the data obtained as a result to a BB descrambler 168 .
  • the BB descrambler 168 applies a BB descramble to the data from the BCH decoder 167 and supplies the data obtained as a result to a null deletion 169 .
  • the null deletion 169 deletes the null inserted by the padder 112 in FIG. 8 from the data from the BB descrambler 168 and supplies the same to a demultiplexer 170 .
  • the demultiplexer 170 separates one or more streams (target data) multiplexed into the data from the null deletion 169 and outputs the same as output streams.
  • the receiving device 12 may be configured without including some of the blocks shown in FIG. 46 .
  • the transmitting device 11 FIG. 8
  • the receiving device 12 may be configured without including the time deinterleaver 163 , the SISO/MISO decoder 162 , the frequency deinterleaver 161 , and frequency deinterleaver 153 that are the blocks corresponding to the time interleaver 118 , the SISO/MISO encoder 119 , the frequency interleaver 120 , and frequency interleaver 124 of the transmitting device 11 , respectively.
  • FIG. 47 is a block diagram showing a configuration example of the bit deinterleaver 165 in FIG. 46 .
  • the bit deinterleaver 165 configured of a multiplexer (MUX) 54 and a column twist deinterleaver 55 and performs the (bit) deinterleave of the symbol bits of the data from the demapper 164 ( FIG. 46 ).
  • the multiplexer 54 performs an inverse interchanging process corresponding to the interchanging process performed by the demultiplexer 25 in FIG. 9 (an inverse process of the interchanging process), that is to say, the inverse interchanging process to return the positions of (the likelihood of) the code bits of the LDPC code interchanged by the interchanging process to the original positions to the symbol bits of the symbol from the demapper 164 and supplies the LDPC code obtained as a result to the column twist deinterleaver 55 .
  • an inverse interchanging process corresponding to the interchanging process performed by the demultiplexer 25 in FIG. 9
  • the inverse interchanging process to return the positions of (the likelihood of) the code bits of the LDPC code interchanged by the interchanging process to the original positions to the symbol bits of the symbol from the demapper 164 and supplies the LDPC code obtained as a result to the column twist deinterleaver 55 .
  • the column twist deinterleaver 55 performs column twist deinterleave (inverse process of the column twist interleave) corresponding to the column twist interleave as the rearranging process performed by the column twist interleaver 24 in FIG. 9 to the LDPC code from the multiplexer 54 , that is to say, the column twist deinterleave, for example, as an inverse rearranging process to return the code bits of the LDPC code, the arrangement of which is changed by the column twist interleave as the rearranging process, to the original arrangement.
  • the column twist deinterleaver 55 writes/reads the code bits of the LDPC code to/from the memory for the deinterleave configured in the same manner as the memory 31 illustrated in FIG. 28 and the like, thereby performing the column twist deinterleave.
  • the writing of the code bits is performed in the row direction of the memory for the deinterleave using the read address at the time of the reading of the code bits from the memory 31 as the write address. Also, the reading of the code bits is performed in the column direction of the memory for the deinterleave using the write address at the time of the writing of the code bits to the memory 31 as the read address.
  • the LDPC code obtained as a result of the column twist deinterleave is supplied from the column twist deinterleaver 55 to the LDPC decoder 166 .
  • the bit deinterleaver 165 may perform all of parity deinterleave (inverse process of the parity interleave, that is to say, the parity deinterleave to return the code bits of the LDPC code, the arrangement of which is changed by the parity interleave, to the original arrangement is not performed) corresponding to the parity interleave, the inverse interchanging corresponding to the interchanging process, and the column twist deinterleave corresponding to the column twist interleave.
  • parity deinterleave inverse process of the parity interleave, that is to say, the parity deinterleave to return the code bits of the LDPC code, the arrangement of which is changed by the parity interleave, to the original arrangement is not performed
  • bit deinterleaver 165 in FIG. 47 includes the multiplexer 54 that performs the inverse interchanging process corresponding to the interchanging process, and the column twist deinterleaver 55 that performs the column twist deinterleave corresponding to the column twist interleave, but includes no block for performing parity deinterleave corresponding to the parity interleave, and the parity deinterleave is not performed.
  • the LDPC code to which the inverse interchanging process and the column twist deinterleave are applied and the parity deinterleave is not applied, is supplied from (the column twist deinterleaver 55 of) the bit deinterleaver 165 to the LDPC decoder 166 .
  • the LDPC decoder 166 performs the LDPC decoding of the LDPC code from the bit deinterleaver 165 using the conversion parity check matrix obtained by at least applying the column permutation corresponding to the parity interleave to the parity check matrix H used by the LDPC encoder 115 in FIG. 8 in the LDPC encoding and outputs the data obtained as a result as a decoding result of the LDPC target data.
  • FIG. 48 is a flowchart illustrating processes performed by the demapper 164 , the bit deinterleaver 165 , and the LDPC decoder 166 in FIG. 47 .
  • the demapper 164 demaps the data from the time deinterleaver 163 (data mapped onto the signal point on the constellation) to perform the orthogonal demodulation and supplies the same to the bit deinterleaver 165 , then the process shifts to S 112 .
  • bit deinterleaver 165 performs the deinterleave (bit deinterleave) from the demapper 164 and the process shifts to step S 113 .
  • the multiplexer 54 performs the inverse interchanging process of the data (corresponding to the symbol bits of the symbol) from the demapper 164 and supplies the code bits of the LDPC code obtained as a result to the column twist deinterleaver 55 .
  • the column twist deinterleaver 55 performs the column twist deinterleave to the LDPC code from the multiplexer 54 and supplies (the likelihood of) the LDPC code obtained as a result to the LDPC decoder 166 .
  • the LDPC decoder 166 performs the LDPC decoding of the LDPC code from the column twist deinterleaver 55 using the conversion parity check matrix H used by the LDPC encoder 115 in FIG. 8 in the LDPC encoding, i.e., using the conversion parity check matrix obtained by at least applying the column permutation corresponding to the parity interleave to the parity check matrix H and outputs the data obtained as a result to the BCH decoder 167 as the decoding result of the LDPC target data.
  • the multiplexer 54 which performs the inverse interchanging process
  • the column twist deinterleaver 55 which performs the column twist deinterleave
  • the multiplexer 54 and the column twist deinterleaver 55 may be integrally formed.
  • the LDPC decoder 166 in FIG. 46 performs the LDPC decoding of the LDPC code to which the inverse interchanging process and the column twist deinterleave are applied and the parity interleave is not applied from the column twist deinterleaver 55 using the conversion parity check matrix obtained by at least applying the column permutation corresponding to the parity interleave to the parity check matrix H used by the LDPC encoder 115 in FIG. 8 in the LDPC encoding as described above.
  • the LDPC decoding capable of limiting an operation frequency within a sufficiently feasible range while limiting a circuit size by performing the LDPC decoding using the conversion parity check matrix is conventionally suggested (refer to U.S. Pat. No. 4,224,777, for example).
  • FIG. 49 illustrates an example of the parity check matrix H of the LDPC code whose code length N is 90 and code rate is 2/3.
  • 0 is represented by a period (.).
  • the parity matrix has the stepwise structure.
  • FIG. 50 illustrates a parity check matrix HT obtained by applying the row permutation in equation (11) and the column permutation in equation (12) to the parity check matrix H in FIG. 49 .
  • s, t, x, and y are integers within a range satisfying 0 ⁇ s ⁇ 5, 0 ⁇ t ⁇ 6, 0 ⁇ x ⁇ 5, and 0 ⁇ t ⁇ 6, respectively.
  • Equation (12) it is permutated such that 61st, 67th, 73rd, 79th, and 85th columns, which leave a remainder of 1 when divided by 6, are made 61st, 62nd, 63rd, 64th, and 65th columns, and 62nd, 68th, 74th, 80th, and 86th columns, which leave a remainder of 2 when divided by 6, are made 66th, 67th, 68th, 69th, and 70th columns, respectively, for the 61st and subsequent columns (parity matrix).
  • the matrix obtained by performing the row permutation and the column permutation of the parity check matrix H in FIG. 49 in this manner is the parity check matrix H′ in FIG. 50 .
  • the row permutation of the parity check matrix H does not affect the arrangement of the code bits of the LDPC code.
  • the parity check matrix H′ in FIG. 50 is the conversion parity check matrix obtained by at least applying the column permutation that the K+qx+y+1-th column is permutated with the K+Py+x+1-th column of the parity check matrix H in FIG. 49 (hereinafter, appropriately referred to as the original parity check matrix).
  • the conversion parity check matrix H′ in FIG. 50 is the parity check matrix of the LDPC code c′ obtained by applying the column permutation in equation (12) to the LDPC code c of the original parity check matrix H.
  • FIG. 51 shows the conversion parity check matrix H′ in FIG. 50 with an interval between the units of 5 ⁇ 5 matrix.
  • the conversion parity check matrix H′ in FIG. 51 is configured of the 5 ⁇ 5 unit matrix, quasi-unit matrix, shift matrix, sum matrix, and 0 matrix. Therefore, the 5 ⁇ 5 matrices (the unit matrix, the quasi-unit matrix, the shift matrix, the sum matrix, and the 0 matrix) constitute the conversion parity check matrix H′ are hereinafter appropriately referred to as constitutive matrices.
  • An architecture to simultaneously perform P check node operations and P variable node operations may be used to decode the LDPC code of the parity check matrix represented by a P ⁇ P constitutive matrix.
  • FIG. 52 is a block diagram showing a configuration example of the decoding device, which performs such decoding.
  • FIG. 52 shows the configuration example of the decoding device, which decodes the LDPC code using the conversion parity check matrix H′ in FIG. 51 obtained by at least applying the column permutation in equation (12) to the original parity check matrix H in FIG. 49 .
  • the decoding device in FIG. 52 is configured of an edge data storage memory 300 configured of 6 FIFOs 300 1 to 300 6 , a selector 301 , which selects from the FIFOs 300 1 to 300 6 , a check node calculation unit 302 , two cyclic shift circuits 303 and 308 , an edge data storage memory 304 configured of 18 FIFOs 304 1 to 304 18 , a selector 305 , which selects from the FIFOs 304 1 to 304 18 , a received data memory 306 , which stores received data, a variable node calculation unit 307 , a decoded word calculation unit 309 , a received data rearrangement unit 310 , and a decoded data rearrangement unit 311 .
  • a method of storing the data in the edge data storage memories 300 and 304 is first described.
  • the edge data storage memory 300 is configured of six FIFOs 300 1 to 300 6 , the number of which is obtained by dividing the number of rows 30 of the conversion parity check matrix H′ in FIG. 51 by the number of rows (the number of columns P being the unit of the cyclic structure) 5 of the constitutive matrix.
  • the data corresponding to the position of 1 from first to fifth rows of the conversion parity check matrix H′ in FIG. 51 (a message v i from the variable node) is stored in the FIFO 300 1 in a form closed up in a horizontal direction for each row (ignoring 0). That is to say, when the j-th row i-th column is represented as (j, i), the data corresponding to the position of 1 of the 5 ⁇ 5 unit matrix from (1, 1) to (5, 5) of the conversion parity check matrix H′ is stored in the storage region of a first stage of the FIFO 300 1 .
  • the data corresponding to the position of 1 of the shift matrix from (1, 21) to (5, 25) of the conversion parity check matrix H′ (shift matrix obtained by the cyclic shift of the 5 ⁇ 5 unit matrix by three rightward) is stored in the storage region of a second stage.
  • the data is similarly stored in the storage regions of third to eighth stages in association with the conversion parity check matrix H′.
  • the data corresponding to the position of 1 of the shift matrix (shift matrix obtained by replacement of 1 in the first row of the 5 ⁇ 5 unit matrix with 0 and the cyclic shift thereof by one leftward) from (1, 86) to (5, 90) of the conversion parity check matrix H′ is stored in the storage region of a ninth stage.
  • the data corresponding to the position of 1 from 6th to 10th rows of the conversion parity check matrix H′ in FIG. 51 is stored in the FIFO 300 2 . That is to say, the data corresponding to the position of 1 of a first shift matrix configuring the sum matrix from (6, 1) to (10, 5) of the conversion parity check matrix H′ (the sum matrix obtained by summing the first shift matrix obtained by the cyclic shift of the 5 ⁇ 5 unit matrix by one rightward and a second shift matrix obtained by the cyclic shift thereof by two rightward) is stored in the storage region of a first stage of the FIFO 300 2 .
  • the data corresponding to the position of 1 of the second shift matrix configuring the sum matrix from (6, 1) to (10, 5) of the conversion parity check matrix H′ is stored in the storage region of a second stage.
  • the constitutive matrix whose weight is 2 or larger the data corresponding to the position of 1 of the unit matrix, the quasi-unit matrix, and the shift matrix whose weight is 1 (message corresponding to the edge belonging to the unit matrix, the quasi-unit matrix, or the shift matrix) when the constitutive matrix is represented as the sum of a plurality of the P ⁇ P unit matrix whose weight is 1, the quasi-unit matrix in which one or more of the elements 1 of the unit matrix is set to 0, and the shift matrix obtained by the cyclic shift of the unit matrix or the quasi-unit matrix is stored in the same address (same FIFO out of the FIFOs 300 1 to 300 6 ).
  • the data is hereinafter stored in association with the conversion parity check matrix H′ also in the storage regions of third to ninth stages.
  • the data is stored in association with the conversion parity check matrix H′ also in the FIFOs 300 3 to 300 6 .
  • the edge data storage memory 304 is configured of 18 FIFOs 304 1 to 304 18 , the number of which is obtained by dividing the number of columns 90 of the conversion parity check matrix H′ by the number of columns 5 of the constitutive matrix (the number of columns P being the unit of the cyclic structure).
  • the data corresponding to the position of 1 from first to fifth columns of the conversion parity check matrix H′ in FIG. 51 (message u j from the check node) is stored in a form closed up in a vertical direction for each column (ignoring 0). That is to say, the data corresponding to the position of 1 of the 5 ⁇ 5 unit matrix from (1, 1) to (5, 5) of the conversion parity check matrix H′ is stored in the storage region of a first stage of the FIFO 304 1 .
  • the data corresponding to the position of 1 of the first shift matrix configuring the sum matrix from (6, 1) to (10, 5) of the conversion parity check matrix H′ (the sum matrix obtained by summing the first shift matrix obtained by the cyclic shift of the 5 ⁇ 5 unit matrix by one rightward and the second shift matrix obtained by the cyclic shift thereof by two rightward) is stored in the storage region of the second stage.
  • the data corresponding to the position of 1 of a second shift matrix configuring the sum matrix from (6, 1) to (10, 5) of the conversion parity check matrix H′ is stored in the storage region of a third stage.
  • the constitutive matrix whose weight is 2 or larger the data corresponding to the position of 1 of the unit matrix, the quasi-unit matrix, and the shift matrix whose weight is 1 (the message corresponding to the edge belonging to the unit matrix, the quasi-unit matrix, or the shift matrix) when the constitutive matrix is represented as the sum of a plurality of the P ⁇ P unit matrix whose weight is 1, the quasi-unit matrix in which one or more of the elements 1 of the unit matrix is set to 0, and the shift matrix obtained by the cyclic shift of the unit matrix or the quasi-unit matrix is stored in the same address (same FIFO out of the FIFOs 304 1 to 304 18 ).
  • the data is stored in the storage regions of fourth and fifth stages in association with the conversion parity check matrix H′.
  • the number of stages of the storage regions of the FIFO 304 1 is five being the maximum number of the number of 1 in the row direction from the first to fifth columns of the conversion parity check matrix H′ (Hamming weight).
  • the data is similarly stored in association with the conversion parity check matrix H′ in the FIFOs 304 2 and 304 3 , the length (the number of stages) of which is five.
  • the data is similarly stored in association with the conversion parity check matrix H′ in the FIFOs 304 4 to 304 12 , the length of which is three.
  • the data is similarly stored in association with the conversion parity check matrix H′ in the FIFOs 304 13 to 304 18 , the length of which is two.
  • the edge data storage memory 300 configured of the six FIFOs 300 1 to 300 6 selects the FIFO in which the data is stored from the FIFOs 300 1 to 300 6 according to information (matrix data) D 312 indicating the row of the conversion parity check matrix H′ in FIG. 51 to which five messages D 311 supplied from the cyclic shift circuit 308 in a preceding stage belong and collectively stores the five messages D 311 in the selected FIFO in sequence.
  • the edge data storage memory 300 reads five messages D 300 1 from the FIFO 300 1 in sequence to supply to the selector 301 in a subsequent stage.
  • the edge data storage memory 300 reads the message also from the FIFOs 300 2 to 300 6 in sequence after finishing reading the message from the FIFO 300 1 to supply to the selector 301 .
  • the selector 301 selects the five messages from the FIFO from which the data is currently read out of the FIFOs 300 1 to 300 6 according to a select signal D 301 and supplies the same as a message D 302 to the check node calculation unit 302 .
  • the check node calculation unit 302 configured of five check node calculators 302 1 to 302 5 performs the check node operation according to equation (7) using the messages D 302 (D 302 1 to D 302 5 ) supplied through the selector 301 (message v i in equation (7)) and supplies five messages D 303 (D 303 1 to D 303 5 ) obtained as a result of the check node operation (message u j in equation (7)) to the cyclic shift circuit 303 .
  • the cyclic shift circuit 303 performs the cyclic shift of the five messages D 303 1 to D 303 5 obtained by the check node calculation unit 302 based on information (matrix data) D 305 indicating a value by which the cyclic shift of the original unit matrix in the conversion parity check matrix H′ is performed to obtain the corresponding edge and supplies a result to the edge data storage memory 304 as a message D 304 .
  • the edge data storage memory 304 configured of 18 FIFOs 304 1 to 304 18 selects the FIFO in which the data is stored from the FIFOs 304 1 to 304 18 according to the information D 305 indicating the row of the conversion parity check matrix H′ to which the five messages D 304 supplied from the cyclic shift circuit 303 in the preceding stage belongs and collectively stores the five messages D 304 in the selected FIFO in sequence.
  • the edge data storage memory 304 reads the five messages D 306 1 in sequence from the FIFO 304 1 to supply to the selector 305 in the subsequent stage.
  • the edge data storage memory 304 reads the message in sequence also from the FIFOs 304 2 to 304 18 after finishing reading the data from the FIFO 304 1 to supply to the selector 305 .
  • the selector 305 selects the five messages from the FIFO from which the data is currently read out of the FIFOs 304 1 to 304 18 according to a select signal D 307 and supplies the same to the variable node calculation unit 307 and the decoded word calculation unit 309 as a message D 308 .
  • the received data rearrangement unit 310 rearranges an LDPC code D 313 received through the communication channel 13 corresponding to the parity check matrix H in FIG. 49 by the column permutation in equation (12) and supplies the same to the received data memory 306 as received data D 314 .
  • the received data memory 306 calculates a received LLR (log likelihood ratio) from the received data D 314 supplied from the received data rearrangement unit 310 to store and collectively supplies the five received LLRs to the variable node calculation unit 307 and the decoded word calculation unit 309 as received value D 309 .
  • a received LLR log likelihood ratio
  • the variable node calculation unit 307 configured of five variable node calculators 307 1 to 307 5 performs the variable node operation according to equation (1) using the messages D 308 (D 308 1 to D 308 5 ) supplied through the selector 305 (message u j in equation (1) and the five received values D 309 supplied from the received data memory 306 (received value u 0i in equation (1)) and supplies messages D 310 (D 310 1 to D 310 5 ) obtained as a result of the operation (message v i in equation (1)) to the cyclic shift circuit 308 .
  • the cyclic shift circuit 308 performs the cyclic shift of the messages D 310 1 to D 310 5 calculated by the variable node calculation unit 307 based on the information indicating the value by which the cyclic shift of the original unit matrix in the conversion parity check matrix H′ is performed to obtain the corresponding edge and supplies a result to the edge data storage memory 300 as a message D 311 .
  • Single decoding of the LDPC code may be performed by single round of the above-described operation.
  • the decoding device in FIG. 52 decodes the LDPC code a predetermined number of times, and then obtains a final decoding result by the decoded word calculation unit 309 and the decoded data rearrangement unit 311 to output.
  • the decoded word calculation unit 309 configured of five decoded word calculators 309 1 to 309 5 calculates the decoding result (decoded word) based on equation (5) as a final stage of a plurality of times of decoding using the five messages D 308 (D 308 1 to D 308 5 ) (message u j in equation (5)) output by the selector 305 and the five received values D 309 (received value u 0i in equation (5)) supplied from the received data memory 306 and supplies decoded data D 315 obtained as a result to the decoded data rearrangement unit 311 .
  • the decoded data rearrangement unit 311 applies the inverse permutation of the column permutation in equation (12) to the decoded data D 315 supplied from the decoded word calculation unit 309 , thereby rearranging an order thereof and outputs the same as a final decoded result D 316 .
  • the parity check matrix original parity check matrix
  • conversion parity check matrix parity check matrix represented by the combination of the P ⁇ P unit matrix, the quasi-unit matrix in which one or more of the elements of 1 of the unit matrix is set to 0, the shift matrix obtained by the cyclic shift of the unit matrix or the quasi-unit matrix, the sum matrix obtained by summing a plurality of the unit matrix, the quasi-unit matrix, and the shift matrix, and the P ⁇ P 0 matrix, that is to say, the combination of the constitutive matrices, it becomes possible to adopt the architecture to simultaneously perform the P check node operations and the P variable node operations as the decoding of the LDPC code where P is fewer than the numbers of the columns and rows in the parity.
  • the operation frequency may be limited within the feasible range to perform a great number of times of repetitive decoding, as compared to a case that the node operations are performed at the same time for the same numbers of the numbers of the columns and rows in the parity check matrix.
  • the LDPC decoder 166 which configures the receiving device 12 in FIG. 46 , performs the LDPC decoding by simultaneously performing the P check node operations and the P variable node operations as is the case with the decoding device in FIG. 52 .
  • the parity interleave corresponds to the column permutation in equation (12) as described above, so that the LDPC decoder 166 is not required to perform the column permutation in equation (12).
  • the LDPC code to which the parity deinterleave is not applied is supplied from the column twist deinterleaver 55 to the LDPC decoder 166 , and the LDPC decoder 166 performs the process similar to that of the decoding device in FIG. 52 except that this does not perform the column permutation in equation (12).
  • FIG. 53 shows a configuration example of the LDPC decoder 166 in FIG. 46 .
  • the LDPC decoder 166 is configured as the decoding device in FIG. 52 except that the received data rearrangement unit 310 in FIG. 52 is not provided, and this performs the process similar to that of the decoding device in FIG. 52 except that the column permutation in equation (12) is not performed, so that the description thereof is omitted.
  • the LDPC decoder 166 may be configured without the received data rearrangement unit 310 , so that a scale thereof may be made smaller than that of the decoding device in FIG. 52 .
  • FIG. 54 is a view illustrating the process of the multiplexer 54 configuring the bit deinterleaver 165 in FIG. 47 .
  • FIG. 54A shows a functional configuration example of the multiplexer 54 .
  • the multiplexer 54 is configured of an inverse interchange unit 1001 and a memory 1002 .
  • the multiplexer 54 performs the inverse interchanging process (inverse process of the interchanging process) corresponding to the interchanging process performed by the demultiplexer 25 of the transmitting device 11 , that is to say, the inverse interchanging process to return the positions of the code bits (symbol bits) of the LDPC code interchanged by the interchanging process to the original position of the symbol bits of the symbol supplied from the demapper 164 in the preceding stage and supplies the LDPC code obtained as a result to the column twist deinterleaver 55 in the subsequent stage.
  • the inverse interchanging process inverse process of the interchanging process
  • mb symbol bits y 0 , y 1 , . . . , y mb-1 of the b symbols are supplied to the inverse interchange unit 1001 in units of (consecutive) b symbols.
  • the inverse interchange unit 1001 performs the inverse interchanging to return the mb symbol bits y 0 to y mb-1 to the original arrangement of the mb code bits b 0 , b 1 , . . . , b mb-1 (arrangement of the code bits b 0 to b mb-1 before the interchanging by the interchange unit 32 configuring the demultiplexer 25 on the transmitting device 11 side is performed) and outputs the mb code bits b 0 to b mb-1 obtained as a result.
  • the memory 1002 has the storage capacity to store the mb bits in the row (horizontal) direction and store the N/(mb) bits in the column (vertical) direction as the memory 31 configuring the demultiplexer 25 on the transmitting device 11 side. That is to say, the memory 1002 is configured of the mb columns, which store the N/(mb) bits.
  • the code bits of the LDPC code output by the inverse interchange unit 1001 are written to the memory 1002 in a direction in which the code bits are read from the memory 31 of the demultiplexer 25 of the transmitting device 11 and the code bits written to the memory 1002 are read in a direction in which the code bits are written to the memory 31 .
  • the code bits of the LDPC code output by the inverse interchange unit 1001 are sequentially written in the row direction in units of mb bits from a first row downward in the memory 1002 .
  • the multiplexer 54 reads the code bits in the column direction from the memory 1002 to supply to the column twist deinterleaver 55 in the subsequent stage.
  • FIG. 54B is a view illustrating the reading of the code bits from the memory 1002 .
  • the multiplexer 54 reads the code bits of the LDPC code from the top of the column configuring the memory 1002 downward (in the column direction) from a left column to a right column.
  • FIG. 55 is a view illustrating the process of the column twist deinterleaver 55 configuring the bit deinterleaver 165 in FIG. 47 .
  • FIG. 55 shows a configuration example of the memory 1002 of the multiplexer 54 .
  • the memory 1002 has the storage capacity to store the mb bits in the column (vertical) direction and the N/(mb) bits in the row (horizontal) direction and is configured of the mb columns.
  • the column twist deinterleaver 55 controls a reading start position when the code bits of the LDPC code are written in the row direction and read in the column direction to/from the memory 1002 , thereby performing the column twist deinterleave.
  • the column twist deinterleaver 55 performs the inverse rearranging process to return the arrangement of the code bits rearranged by the column twist interleave to the original arrangement by appropriately changing the reading start position at which the reading of the code bits is started for each of a plurality of columns.
  • the column twist deinterleaver 55 sequentially writes the code bits of the LDPC code output by the interchange unit 1001 in the row direction from the first row of the memory 1002 downward in place of the multiplexer 54 .
  • the column twist deinterleaver 55 reads the code bits from the top of the memory 1002 downward (in the column direction) from the left column to the right column.
  • the column twist deinterleaver 55 reads the code bits from the memory 1002 while making the writing start position at which the column twist interleaver 24 on the transmitting device 11 side writes the code bits as the reading start position of the code bits.
  • the reading start position is set to a position whose address is 0 for a leftmost column
  • the reading start position is set to a position whose address is 2 for a second column (from left)
  • the reading start position is set to a position whose address is 4 for a third column
  • the reading start position is set to a position whose address is 7 for a fourth column when the modulation scheme is the 16APSK or the 16QAM and the multiple number b is set to 1.
  • the reading start position is located on a position other than the position whose address is 0, when the code bits are read up to an undermost position, it is returned to the top (position whose address is 0) and the reading is performed up to a position just before the reading start position. Then, the reading from the next (right) column is performed.
  • FIG. 56 is a block diagram illustrating another configuration example of the bit deinterleaver 165 in FIG. 46 .
  • bit deinterleaver 165 in FIG. 56 is configured in the same manner as that in FIG. 47 except that a parity deinterleaver 1011 is newly provided.
  • bit deinterleaver 165 configured of the multiplexer (MUX) 54 , the column twist deinterleaver 55 , and the parity deinterleaver 1011 performs the bit deinterleave of the code bits of the LDPC code from the demapper 164 .
  • the multiplexer 54 performs the inverse interchanging process corresponding to the interchanging process performed by the demultiplexer 25 of the transmitting device 11 (inverse process of the interchanging process) of the LDPC code from the demapper 164 , that is to say, the inverse interchanging process to return the positions of the code bits interchanged by the interchanging process to the original position and supplies the LDPC code obtained as a result to the column twist deinterleaver 55 .
  • the column twist deinterleaver 55 applies the column twist deinterleave corresponding to the column twist interleave as the rearranging process performed by the column twist interleaver 24 of the transmitting device 11 to the LDPC code from the multiplexer 54 .
  • the LDPC code obtained as a result of the column twist deinterleave is supplied from the column twist deinterleaver 55 to the parity deinterleaver 1011 .
  • the parity deinterleaver 1011 applies the parity deinterleave (inverse process of the parity interleave) corresponding to the parity interleave performed by the parity interleaver 23 of the transmitting device 11 , that is to say, the parity deinterleave to return the code bits of the LDPC code, the arrangement of which is changed by the parity interleave, to the original arrangement to the code bits after the column twist deinterleave by the column twist deinterleaver 55 .
  • the parity deinterleave inverse process of the parity interleave
  • the LDPC code obtained as a result of the parity deinterleave is supplied from the parity deinterleaver 1011 to the LDPC decoder 166 .
  • the LDPC code to which the inverse interchanging process, the column twist deinterleave, and the parity deinterleave are applied that is to say, the LDPC code obtained by the LDPC encoding according to the parity check matrix H is supplied to the LDPC decoder 166 .
  • the LDPC decoder 166 performs the LDPC decoding of the LDPC code from the bit deinterleaver 165 using the parity check matrix H used by the LDPC encoder 115 of the transmitting device 11 . That is to say, the LDPC decoder 166 performs the LDPC decoding of the LDPC code from the bit deinterleaver 165 using the parity check matrix H itself used by the LDPC encoder 115 of the transmitting device 11 in the LDPC encoding or the conversion parity check matrix obtained by at least applying the column permutation corresponding to the parity interleave to the parity check matrix H.
  • the LDPC decoder 166 may be configured of the decoding device, which performs the LDPC decoding by a full serial decoding scheme to sequentially perform the operation of the message (check node message and the variable node message) one node after another, and the decoding device, which performs the LDPC decoding by a full parallel decoding scheme to simultaneously perform the operation of the message (in parallel) for all the nodes, for example, when the LDPC decoding of the LDPC code is performed using the parity check matrix H itself used by the LDPC encoder 115 of the transmitting device 11 in the LDPC encoding.
  • the LDPC decoder 166 when the LDPC decoder 166 performs the LDPC decoding of the LDPC code using the conversion parity check matrix obtained by at least performing the column permutation corresponding to the parity interleave of the parity check matrix H used by the LDPC encoder 115 of the transmitting device 11 in the LDPC encoding, the LDPC decoder 166 may be configured of the decoding device of the architecture to simultaneously perform the P (or submultiple of P other than 1) check node operations and variable node operations being the decoding device ( FIG. 52 ) including the received data rearrangement unit 310 to rearrange the code bits of the LDPC code by applying the column permutation similar to the column permutation for obtaining the conversion parity check matrix to the LDPC code.
  • the multiplexer 54 which performs the inverse interchanging process
  • the column twist deinterleaver 55 which performs the column twist deinterleave
  • the parity deinterleaver 1011 which performs the parity deinterleave
  • two or more of the multiplexer 54 , the column twist deinterleaver 55 , and the parity deinterleaver 1011 may be integrally formed as the parity interleaver 23 , the column twist interleaver 24 , and the demultiplexer 25 of the transmitting device 11 .
  • the bit deinterleaver 165 may be configured without including the column twist deinterleaver 55 and the parity deinterleaver 1011 , in FIG. 56 .
  • the LDPC decoder 166 may be configured of the decoding device, which performs the LDPC decoding by a full serial decoding scheme using the parity check matrix H itself, the decoding device, which performs the LDPC decoding by a full parallel decoding scheme using the parity check matrix H itself, and the decoding device having the received data rearrangement unit 310 that simultaneously performs the P check node operations and the P variable node operations, which performs the LDPC decoding using the parity check matrix H′ ( FIG. 52 ).
  • the bit interleaver 116 ( FIG. 8 ) of the transmitting device 11 performs other bit interleave (including interleave per block, when a predetermined number of bits of the LDPC code is the block) instead of the column twist interleave and the interchanging process.
  • bit deinterleaver 165 FIG. 47
  • the bit deinterleaver 165 FIG. 47
  • FIG. 57 is a block diagram showing a first configuration example of a receiving system to which the receiving device 12 may be applied.
  • the receiving system is configured of an obtaining unit 1101 , a transmission channel decoding processor 1102 , and an information source decoding processor 1103 .
  • the obtaining unit 1101 obtains a signal including the LDPC code obtained by at least the LDPC encoding of the LDPC target data such as the image data and the audio data of the program through a transmission channel (communication channel) (not shown) such as digital terrestrial broadcasting, digital satellite broadcasting, and a network such as a CATV network, the Internet and the like, for example, to supply to the transmission channel decoding processor 1102 .
  • a transmission channel such as digital terrestrial broadcasting, digital satellite broadcasting, and a network such as a CATV network, the Internet and the like, for example, to supply to the transmission channel decoding processor 1102 .
  • the obtaining unit 1101 is configured of a tuner, an STB (set top box) and the like.
  • the obtaining unit 1101 is configured of a network I/F (interface) such as an NIC (network interface card), for example.
  • the transmission channel decoding processor 1102 corresponds to the receiving device 12 .
  • the transmission channel decoding processor 1102 applies a transmission channel decoding process at least including a process to correct the error occurring in the transmission channel to the signal obtained by the obtaining unit 1101 through the transmission channel and supplies the signal obtained as a result to the information source decoding processor 1103 .
  • the signal obtained by the obtaining unit 1101 through the transmission channel is the signal obtained by at least the error correction encoding for correcting the error occurring in the transmission channel and the transmission channel decoding processor 1102 applies the transmission channel decoding process such as an error correction process, for example, to such signal.
  • the error correction encoding includes the LDPC encoding, BCH encoding and the like, for example.
  • the LDPC encoding is at least performed as the error correction encoding.
  • the transmission channel decoding process may include demodulation of a modulated signal and the like.
  • the information source decoding processor 1103 applies an information source decoding process at least including a process to expand compressed information to original information to the signal to which the transmission channel decoding process is applied.
  • the information source decoding processor 1103 applies the information source decoding process such as the process to expand the compressed information to the original information (expanding process) to the signal to which the transmission channel decoding process is applied.
  • the information source decoding processor 1103 does not perform the process to expand the compressed information to the original information.
  • the expanding process includes MPEG decoding and the like, for example.
  • the transmission channel decoding process might include descrambling and the like in addition to the expanding process.
  • the obtaining unit 1101 applies the compression encoding such as MPEG encoding to the data of the image and the audio, for example, and obtains the signal to which the error correction encoding such as the LDPC encoding is applied through the transmission channel to supply to the transmission channel decoding processor 1102 .
  • the compression encoding such as MPEG encoding
  • the error correction encoding such as the LDPC encoding
  • the transmission channel decoding processor 1102 applies the process similar to that performed by the receiving device 12 and the like to the signal from the obtaining unit 1101 as the transmission channel decoding process, for example, and the signal obtained as a result is supplied to the information source decoding processor 1103 .
  • the information source decoding processor 1103 applies the information source decoding process such as the MPEG decoding to the signal from the transmission channel decoding processor 1102 and outputs the image or the audio obtained as a result.
  • the receiving system in FIG. 57 as described above may be applied to a television tuner and the like, which receives television broadcasting as the digital broadcasting, for example.
  • each of the obtaining unit 1101 , the transmission channel decoding processor 1102 , and the information source decoding processor 1103 are independent devices (hardware (IC (integrated circuit) and the like) or a software module).
  • the obtaining unit 1101 , the transmission channel decoding processor 1102 , and the information source decoding processor 1103 it is possible to form a set of the obtaining unit 1101 and the transmission channel decoding processor 1102 , a set of the transmission channel decoding processor 1102 and the information source decoding processor 1103 , and a set of the obtaining unit 1101 , the transmission channel decoding processor 1102 , and the information source decoding processor 1103 as one independent device.
  • FIG. 58 is a block diagram illustrating a second configuration example of the receiving system to which the receiving device 12 may be applied.
  • the receiving system in FIG. 58 is the same as that in FIG. 57 in that this includes the obtaining unit 1101 , the transmission channel decoding processor 1102 , and the information source decoding processor 1103 and is different from that in FIG. 57 in that an output unit 1111 is newly provided.
  • the output unit 1111 is a display device, which displays the image, and a speaker, which outputs the audio, for example, and this outputs the image, the audio and the like as the signal output from the information source decoding processor 1103 . That is to say, the output unit 1111 displays the image or outputs the audio.
  • the receiving system in FIG. 58 as described above may be applied to a TV (television receiver), which receives the television broadcasting as the digital broadcasting, a radio receiver, which receives radio broadcasting, and the like, for example.
  • a TV television receiver
  • radio receiver which receives radio broadcasting
  • the signal output by the transmission channel decoding processor 1102 is supplied to the output unit 1111 .
  • FIG. 59 is a block diagram showing a third configuration example of the receiving system to which the receiving device 12 may be applied.
  • the receiving system in FIG. 59 is the same as that in FIG. 57 in that this includes the obtaining unit 1101 and the transmission channel decoding processor 1102 .
  • the receiving system in FIG. 59 is different from that in FIG. 57 in that the information source decoding processor 1103 is not provided and a record unit 1121 is newly provided.
  • the record unit 1121 records (stores) the signal output from the transmission channel decoding processor 1102 (for example, a TS packet of MPEG TS) in a recording (storage) medium such as an optical disk, a hard disk (magnetic disk), and a flash memory.
  • a recording (storage) medium such as an optical disk, a hard disk (magnetic disk), and a flash memory.
  • the receiving system in FIG. 59 as described above may be applied to a recorder and the like, which records the television broadcasting.
  • the receiving system may be provided with the information source decoding processor 1103 and the information source decoding processor 1103 may record the signal to which the information source decoding process is applied, that is to say, the image and the audio obtained by the decoding in the record unit 1121 .
  • a series of processes described above may be performed by hardware or by software.
  • a program, which configures the software is installed on a multi-purpose computer and the like.
  • FIG. 60 shows a configuration example of one embodiment of the computer on which the program, which executes a series of processes described above, is installed.
  • the program may be recorded in advance in a hard disk 705 and a ROM 703 as a recording medium stored in the computer.
  • the program may be temporarily or permanently stored (recorded) in a removable recording medium 711 such as a flexible disk, a CD-ROM (compact disc read only memory), an MO (magnetooptical) disk, a DVD (digital versatile disc), the magnetic disk, and a semiconductor memory.
  • a removable recording medium 711 such as a flexible disk, a CD-ROM (compact disc read only memory), an MO (magnetooptical) disk, a DVD (digital versatile disc), the magnetic disk, and a semiconductor memory.
  • a removable recording medium 711 such as a flexible disk, a CD-ROM (compact disc read only memory), an MO (magnetooptical) disk, a DVD (digital versatile disc), the magnetic disk, and a semiconductor memory.
  • Such removable recording medium 711 may be provided as so-called packaged software.
  • the program may be transferred from a downloading site to the computer by wireless through a satellite for the digital satellite broadcasting or transferred to the computer by wire through the network such as a LAN (local area network) and the Internet, and the computer may receive the program transferred in this manner by a communication unit 708 to install on an internal hard disk 705 .
  • a communication unit 708 local area network
  • the computer has a CPU (central processing unit) 702 built-in.
  • An input/output interface 710 is connected to the CPU 702 through a bus 701 and, when an instruction is input through the input/output interface 710 by operation and the like of the input unit 707 configured of a keyboard, a mouse, a microphone and the like by a user, the CPU 702 executes the program stored in the ROM (read only memory) 703 according to the same.
  • the CPU 702 loads the program stored in the hard disk 705 , the program transferred from the satellite or the network to be received by the communication unit 708 and installed on the hard disk 705 , or the program read from the removable recording medium 711 mounted on a drive 709 to be installed on the hard disk 705 on a RAM (random access memory) 704 to execute. According to this, the CPU 702 performs the process according to the above-described flowchart or the process performed by the configuration of the above-described block diagram.
  • the CPU 702 outputs a processing result from an output unit 706 configured of an LCD (liquid crystal display), a speaker and the like, or transmits the same from a communication unit 708 , or records the same in the hard disk 705 through the input/output interface 710 , for example, as needed.
  • an output unit 706 configured of an LCD (liquid crystal display), a speaker and the like
  • transmits the same from a communication unit 708 or records the same in the hard disk 705 through the input/output interface 710 , for example, as needed.
  • a processing step to write the program to allow the computer to perform various processes is not necessarily required to be processed in chronological order along order described in the flowchart and this also includes the process executed in parallel or individually executed (for example, a parallel process or a process by an object).
  • the program may be processed by one computer or distributedly processed by a plurality of computers. Further, the program may be transferred to a remote computer to be executed.
  • the system means an assembly of a plurality of constituents (devices, modules (components) and the like), and all constituents may or may not be within the same housing. Accordingly, the system is any of a plurality of devices housed in separate housings and connected via a network, and one device including a plurality of modules housed in one housing.
  • the present technology may take a cloud computing configuration that one function is shared by a plurality of devices via a network, and is processed collaboratively.
  • Each step described in the above-described flow charts may be executed in one device, or may be shared by and executed on a plurality of devices.
  • one step includes a plurality of processes
  • a plurality of processes included in one step may be executed in one device, or may be shared by and executed on a plurality of devices.
  • the parity check matrix initial value table of) the above-described new LDPC code may be through the communication channel 13 ( FIG. 7 ), any of which is a satellite circuit, a terrestrial wave, and a cable (wire circuit). Furthermore, the new LDPC code may be used for data transmission other than the digital broadcasting.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Multimedia (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)
US14/913,727 2013-09-20 2014-09-05 Data processing device and data processing method Abandoned US20160204800A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013196141 2013-09-20
JP2013-196141 2013-09-20
PCT/JP2014/073468 WO2015041073A1 (ja) 2013-09-20 2014-09-05 データ処理装置、及びデータ処理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/073468 A-371-Of-International WO2015041073A1 (ja) 2013-09-20 2014-09-05 データ処理装置、及びデータ処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/935,951 Continuation US10320416B2 (en) 2013-09-20 2018-03-26 Data processing device and data processing method

Publications (1)

Publication Number Publication Date
US20160204800A1 true US20160204800A1 (en) 2016-07-14

Family

ID=52688724

Family Applications (3)

Application Number Title Priority Date Filing Date
US14/913,727 Abandoned US20160204800A1 (en) 2013-09-20 2014-09-05 Data processing device and data processing method
US15/935,951 Active US10320416B2 (en) 2013-09-20 2018-03-26 Data processing device and data processing method
US16/397,233 Active US10972128B2 (en) 2013-09-20 2019-04-29 Data processing device and data processing method

Family Applications After (2)

Application Number Title Priority Date Filing Date
US15/935,951 Active US10320416B2 (en) 2013-09-20 2018-03-26 Data processing device and data processing method
US16/397,233 Active US10972128B2 (en) 2013-09-20 2019-04-29 Data processing device and data processing method

Country Status (8)

Country Link
US (3) US20160204800A1 (ko)
EP (1) EP3048735B1 (ko)
JP (1) JP6364416B2 (ko)
KR (3) KR102113942B1 (ko)
CN (1) CN105531936B (ko)
CA (1) CA2923594C (ko)
MX (2) MX2019015244A (ko)
WO (1) WO2015041073A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160134304A1 (en) * 2013-05-02 2016-05-12 Sony Corporation Data processing device and data processing method
JP2019193306A (ja) * 2017-03-13 2019-10-31 ソニーセミコンダクタソリューションズ株式会社 送信装置及び送信方法、受信装置及び受信方法、並びに、プログラム
US11218167B2 (en) * 2017-10-31 2022-01-04 Sony Corporation Transmission device, transmission method, reception device, and reception method
US20220006474A1 (en) * 2015-02-16 2022-01-06 Electronics And Telecommunications Research Institute Bit interleaver for low-density parity check codeword having length of 64800 and code rate of 4/15 and 4096-symbol mapping, and bit interleaving method using same

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2923594C (en) * 2013-09-20 2022-12-06 Sony Corporation Data processing device and data processing method
EP3148091B1 (en) 2014-05-21 2021-03-10 Sony Corporation Bit interleaved coded modulation with a group-wise interleaver adapted to a rate 8/15 ldpc code of length 16200
JP6930376B2 (ja) * 2017-10-31 2021-09-01 ソニーグループ株式会社 送信装置及び送信方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150039973A1 (en) * 2013-07-05 2015-02-05 Samsung Electronics Co., Ltd. Transmitter apparatus and signal processing method thereof
US20150082131A1 (en) * 2013-09-17 2015-03-19 Samsung Electronics Co., Ltd. Transmitting apparatus and signal processing method thereof
US20160149589A1 (en) * 2014-05-21 2016-05-26 Sony Corporation Data processing device and data processing method
US20160261288A1 (en) * 2013-09-26 2016-09-08 Sony Corporation Data processing device and data processing method
US20160315636A1 (en) * 2013-09-26 2016-10-27 Sony Corporation Data processing device and data processing method
US20170093430A1 (en) * 2014-05-21 2017-03-30 Sony Corporation Data processing device and data processing method

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1463255A1 (en) 2003-03-25 2004-09-29 Sony United Kingdom Limited Interleaver for mapping symbols on the carriers of an OFDM system
JP4224777B2 (ja) 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
CN1902828B (zh) * 2003-08-08 2012-02-29 英特尔公司 用于改变低密度奇偶校验码字长度的方法和装置
DE102004001212A1 (de) 2004-01-06 2005-07-28 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zum Durchsuchen einer Datenbank in zwei Suchschritten
JP4688841B2 (ja) * 2007-03-20 2011-05-25 日本放送協会 符号化器及び復号器、並びに送信装置及び受信装置
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
TWI497920B (zh) * 2007-11-26 2015-08-21 Sony Corp Data processing device and data processing method
JP2011176645A (ja) 2010-02-24 2011-09-08 Sony Corp データ処理装置、及びデータ処理方法
JP2011176783A (ja) 2010-02-26 2011-09-08 Sony Corp データ処理装置、及びデータ処理方法
JP5630278B2 (ja) * 2010-12-28 2014-11-26 ソニー株式会社 データ処理装置、及びデータ処理方法
JP2012235269A (ja) * 2011-04-28 2012-11-29 Sony Corp データ処理装置、及び、データ処理方法
JP5664919B2 (ja) 2011-06-15 2015-02-04 ソニー株式会社 データ処理装置、及び、データ処理方法
EP2536030A1 (en) * 2011-06-16 2012-12-19 Panasonic Corporation Bit permutation patterns for BICM with LDPC codes and QAM constellations
EP2560311A1 (en) 2011-08-17 2013-02-20 Panasonic Corporation Cyclic-block permutations for spatial multiplexing with quasi-cyclic LDPC codes
CA2923594C (en) * 2013-09-20 2022-12-06 Sony Corporation Data processing device and data processing method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150039973A1 (en) * 2013-07-05 2015-02-05 Samsung Electronics Co., Ltd. Transmitter apparatus and signal processing method thereof
US20150082131A1 (en) * 2013-09-17 2015-03-19 Samsung Electronics Co., Ltd. Transmitting apparatus and signal processing method thereof
US20160261288A1 (en) * 2013-09-26 2016-09-08 Sony Corporation Data processing device and data processing method
US20160315636A1 (en) * 2013-09-26 2016-10-27 Sony Corporation Data processing device and data processing method
US20160149589A1 (en) * 2014-05-21 2016-05-26 Sony Corporation Data processing device and data processing method
US20170093430A1 (en) * 2014-05-21 2017-03-30 Sony Corporation Data processing device and data processing method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160134304A1 (en) * 2013-05-02 2016-05-12 Sony Corporation Data processing device and data processing method
US9838037B2 (en) * 2013-05-02 2017-12-05 Sony Corporation Data processing device and data processing method
US20220006474A1 (en) * 2015-02-16 2022-01-06 Electronics And Telecommunications Research Institute Bit interleaver for low-density parity check codeword having length of 64800 and code rate of 4/15 and 4096-symbol mapping, and bit interleaving method using same
US11646752B2 (en) * 2015-02-16 2023-05-09 Electronics And Telecommunications Research Institute Bit interleaver for low-density parity check codeword having length of 64800 and code rate of 4/15 and 4096-symbol mapping, and bit interleaving method using same
JP2019193306A (ja) * 2017-03-13 2019-10-31 ソニーセミコンダクタソリューションズ株式会社 送信装置及び送信方法、受信装置及び受信方法、並びに、プログラム
JP7077276B2 (ja) 2017-03-13 2022-05-30 ソニーセミコンダクタソリューションズ株式会社 送信装置及び送信方法、受信装置及び受信方法、並びに、プログラム
US11218167B2 (en) * 2017-10-31 2022-01-04 Sony Corporation Transmission device, transmission method, reception device, and reception method

Also Published As

Publication number Publication date
US10320416B2 (en) 2019-06-11
US10972128B2 (en) 2021-04-06
JP6364416B2 (ja) 2018-07-25
KR20170075816A (ko) 2017-07-03
JPWO2015041073A1 (ja) 2017-03-02
KR20160060629A (ko) 2016-05-30
CA2923594C (en) 2022-12-06
KR101752344B1 (ko) 2017-06-29
EP3048735B1 (en) 2019-12-04
KR101929298B1 (ko) 2018-12-17
KR20180133947A (ko) 2018-12-17
KR102113942B1 (ko) 2020-06-02
EP3048735A1 (en) 2016-07-27
WO2015041073A1 (ja) 2015-03-26
MX2016003220A (es) 2016-06-07
CN105531936B (zh) 2020-01-03
US20180287633A1 (en) 2018-10-04
CN105531936A (zh) 2016-04-27
US20190253074A1 (en) 2019-08-15
MX2019015244A (es) 2020-02-07
CA2923594A1 (en) 2015-03-26
EP3048735A4 (en) 2017-05-24

Similar Documents

Publication Publication Date Title
US10361724B2 (en) Data processing device and data processing method for improving resistance to error of data
US11082065B2 (en) Data processing apparatus and data processing method using low density parity check encoding for decreasing signal-to-noise power ratio
US20160233889A1 (en) Data processing device and data processing method
US10951241B2 (en) Data processing device and data processing method
US10972128B2 (en) Data processing device and data processing method
US20160211868A1 (en) Data processing device and data processing method
US20160261288A1 (en) Data processing device and data processing method
US20160233890A1 (en) Data processing device and data processing method
US20170093430A1 (en) Data processing device and data processing method
US20160315636A1 (en) Data processing device and data processing method
US20150358032A1 (en) Data processing device and data processing method
US20160149589A1 (en) Data processing device and data processing method
US20160197625A1 (en) Data processing device and data processing method
US20150349802A1 (en) Data processing device and data processing method
US20160211866A1 (en) Data processing device and data processing method
US20160204801A1 (en) Data processing device and data processing method
US20160126978A1 (en) Data processing device and data processing method
US20190363735A1 (en) Transmission method and reception device
US20190379401A1 (en) Transmission method and reception device

Legal Events

Date Code Title Description
AS Assignment

Owner name: SONY CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHINOHARA, YUJI;YAMAMOTO, MAKIKO;REEL/FRAME:037881/0254

Effective date: 20151210

AS Assignment

Owner name: SATURN LICENSING LLC, NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SONY CORPORATION;REEL/FRAME:044171/0491

Effective date: 20171004

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION