WO2009104319A1 - 符号化装置、及び符号化方法 - Google Patents

符号化装置、及び符号化方法 Download PDF

Info

Publication number
WO2009104319A1
WO2009104319A1 PCT/JP2008/071406 JP2008071406W WO2009104319A1 WO 2009104319 A1 WO2009104319 A1 WO 2009104319A1 JP 2008071406 W JP2008071406 W JP 2008071406W WO 2009104319 A1 WO2009104319 A1 WO 2009104319A1
Authority
WO
WIPO (PCT)
Prior art keywords
column
code
address
bits
symbol
Prior art date
Application number
PCT/JP2008/071406
Other languages
English (en)
French (fr)
Inventor
峰志 横川
真紀子 山本
諭志 岡田
塁 阪井
Original Assignee
ソニー株式会社
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 ソニー株式会社 filed Critical ソニー株式会社
Publication of WO2009104319A1 publication Critical patent/WO2009104319A1/ja

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

Definitions

  • the present invention relates to an encoding device and an encoding method, and more particularly, to an encoding device and an encoding method capable of providing, for example, a high-performance LDPC (Low Density Parity Check) code.
  • LDPC Low Density Parity Check
  • the LDPC code has a high error correction capability, and in recent years, it has begun to be widely adopted in transmission systems including satellite digital broadcasting such as DVB-S.2 performed in Europe (for example, Non-Patent Document 1). See). LDPC codes are also being considered for next-generation terrestrial digital broadcasting.
  • LDPC codes have been found to have performance close to the Shannon limit as the code length is increased, as is the case with turbo codes and the like.
  • the LDPC code has the property that the minimum distance is proportional to the code length, its characteristic is that the block error probability characteristic is good, and furthermore, the so-called error floor phenomenon observed in the decoding characteristic such as turbo code is observed.
  • An advantage is that it hardly occurs.
  • LDPC code is a linear code and does not necessarily need to be binary, but will be described here as being binary.
  • LDPC code is characterized by the fact that the parity check matrix that defines the LDPC code is sparse.
  • a sparse matrix is a matrix in which the number of “1” s in the matrix is very small (a matrix in which most elements are 0).
  • FIG. 1 shows an example of a parity check matrix H of an LDPC code.
  • the weight of each column (column weight) (the number of “1”) (weight) is “3”, and the weight of each row (row weight) is “6”. .
  • a generator matrix G is generated based on the check matrix H, and the generator matrix G is multiplied by binary information bits to generate a codeword (LDPC code). ) Is generated.
  • the generator matrix G is a K ⁇ N matrix
  • the encoding device multiplies the generator matrix G by a bit string (vector u) of information bits made up of K bits to generate a code made up of N bits.
  • Generate the word c ( uG).
  • the code word (LDPC code) generated by this encoding device is received on the receiving side via a predetermined communication path.
  • LDPC code decoding is an algorithm proposed by Gallager called probabilistic decoding (Probabilistic Decoding), which consists of a variable node (also called a message node) and a check node (check node). This can be done by a message passing algorithm based on belief propagation on a so-called Tanner graph.
  • the variable node and the check node are also simply referred to as nodes as appropriate.
  • FIG. 2 shows a procedure for decoding the LDPC code.
  • a real value representing the “0” likelihood of the value of the i-th code bit of the LDPC code (1 codeword) received on the receiving side as a log likelihood ratio will be received.
  • the value is u 0i .
  • a message output from the check node is u j and a message output from the variable node is v i .
  • step S11 the LDPC code is received, the message (check node message) u j is initialized to “0”, and the counter of the iterative process is used.
  • the variable k taking the integer of is initialized to “0”, and the process proceeds to step S12.
  • step S12 based on the received value u 0i obtained by receiving an LDPC code, the message (variable node message) v i is obtained by performing the calculation shown in Equation (1) (variable node calculation), further, Based on the message v i , the message u j is obtained by performing the calculation (check node calculation) shown in Expression (2).
  • variable node calculation of Expression (1) the message input from the edge (line connecting the variable node and the check node) to which the message is to be output, respectively.
  • the computation range is 1 to d v -1 or 1 to d c -1.
  • the check node calculation of equation (2) actually creates a table of function R (v 1 , v 2 ) shown in equation (3) defined by one output for two inputs v 1 and v 2 in advance. In addition, this is performed by using it continuously (recursively) as shown in Equation (4).
  • step S12 the variable k is further incremented by “1”, and the process proceeds to step S13.
  • step S13 it is determined whether or not the variable k is larger than a predetermined iterative decoding count C. If it is determined in step S13 that the variable k is not greater than C, the process returns to step S12, and thereafter the same processing is repeated.
  • step S13 determines whether the variable k is larger than C. If it is determined in step S13 that the variable k is larger than C, the process proceeds to step S14, and a message v i as a decoding result to be finally output is obtained by performing the calculation shown in equation (5). And the LDPC code decoding process ends.
  • equation (5) is performed using messages u j from all branches connected to the variable node.
  • FIG. 3 shows an example of a parity check matrix H of a (3, 6) LDPC code (coding rate 1/2, code length 12).
  • the column weight is 3 and the row weight is 6, as in FIG.
  • FIG. 4 shows a Tanner graph of the check matrix H in FIG.
  • check nodes and variable nodes correspond to the rows and columns of the parity check matrix H, respectively.
  • the connection between the check node and the variable node is an edge, and corresponds to “1” of the check matrix element.
  • the branch represents that the sign bit corresponding to the variable node has a constraint condition corresponding to the check node.
  • FIG. 5 shows variable node calculation performed in the variable node.
  • the message v i corresponding to the branch to be calculated is the variable node of the formula (1) using the messages u 1 and u 2 from the remaining branches connected to the variable node and the received value u 0i. It is obtained by calculation. Messages corresponding to other branches are obtained in the same manner.
  • FIG. 6 shows a check node operation performed at the check node.
  • sign (x) is 1 when x ⁇ 0, and ⁇ 1 when x ⁇ 0.
  • the message u j corresponding to the branch to be calculated is the messages v 1 , v 2 , v 3 , v 4 , v from the remaining branches connected to the check node. It is obtained by the check node calculation of Equation (7) using 5 . Messages corresponding to other branches are obtained in the same manner.
  • DVB-S.2 ETSI EN 302 307 V1.1.2 (2006-06)
  • the LDPC code is applied to terrestrial digital broadcasting, and the next generation that combines the LDPC code specified in the DVB-S.2 standard and the modulation method specified in the DVB-T standard.
  • the DVB-T.2 standard which is a standard for terrestrial digital broadcasting, has been formulated.
  • LDPC codes with a DVB-T standard code length of 64800 are inferior to LDPC codes with other coding rates.
  • the present invention has been made in view of such a situation, and is intended to provide an LDPC code with good performance.
  • encoding is performed using an LDPC code having a code length of 64,800 bits and an encoding rate of 3/5
  • the parity check matrix of the LDPC code is the code length of the parity check matrix
  • the 1 element of the information matrix determined by the parity check matrix initial value table that represents the position of 1 element of the information matrix corresponding to the information length according to the coding rate for every 360 columns, the period for every 360 columns in the column direction
  • the parity check matrix initial value table is configured as follows.
  • encoding is performed using an LDPC code having a code length of 64,800 bits and an encoding rate of 3/5.
  • the parity check matrix of the LDPC code is based on a parity check matrix initial value table that represents the position of one element of the information matrix corresponding to the information length corresponding to the code length and the coding rate of the parity check matrix every 360 columns.
  • 1 element of the information matrix to be determined is arranged in a column direction with a period of every 360 columns, and the parity check matrix initial value table is 136 2097 9094 9555 9727 10538 14723 15060 16946 19125 20498 21218 1381 4057 6656 8648 10100 11445 15870 16487 17328 17769 19927 23106 881 1910 2056 10580 10677 11300 13562 13825 16498 17212 18018 21771 7105 7336 9089 9129 11111 12284 12802 14838 15952 19102 19581 22732 406 2218 2892 7383 11865 15367 17535 18927 20150 20605 20831 20863 1649 4467 4545 6374 8542 8872 12151 13579 20765 21073 25062 25475 1441 3594 3769 8928 9781 10242 11345 18789 19150 21994 22077 23295 2011 2336 3109
  • encoding is performed using an LDPC code having a code length of 64,800 bits and an encoding rate of 3/5
  • the LDPC code parity check matrix includes the code length of the parity check matrix
  • the 1 element of the information matrix determined by the parity check matrix initial value table that represents the position of 1 element of the information matrix corresponding to the information length according to the coding rate for every 360 columns, the period for every 360 columns in the column direction
  • the parity check matrix initial value table is configured as follows.
  • encoding is performed using an LDPC code having a code length of 64,800 bits and an encoding rate of 3/5.
  • the parity check matrix of the LDPC code is based on a parity check matrix initial value table that represents the position of one element of the information matrix corresponding to the information length corresponding to the code length and the coding rate of the parity check matrix for every 360 columns.
  • 1 element of the information matrix to be determined is arranged in a column direction with a period of every 360 columns, and the parity check matrix initial value table is 1575 1809 4092 6126 7759 10393 10464 12719 17978 20643 23368 25621 113 4035 4776 9792 10722 13013 13388 16734 17295 19396 21099 25016 287 2978 4554 5345 11387 12830 13181 13431 15410 16771 23010 25810 597 1300 2367 3082 5510 6597 18248 18282 18532 19822 21622 25472 3310 6265 6278 7216 14524 20600 20973 21736 21907 22079 23317 25673 2386 3485 8018 10102 11309 15124 15383 18288 22716 22832 24990 25326 5514 7058 8437 9433 10890 16816 17033 20631 20926 22693 23965 25264
  • the encoding device may be an independent device, or may be an internal block constituting one device.
  • a high-performance LDPC code can be provided.
  • FIG. 3 is a block diagram illustrating a configuration example of a transmission device 11.
  • FIG. It is a figure which shows a check matrix. It is a figure which shows a parity matrix.
  • FIG. 6 is a diagram for explaining processing of a demultiplexer 25.
  • FIG. 6 is a diagram for explaining processing of a demultiplexer 25. It is a figure which shows the Tanner graph about decoding of an LDPC code.
  • the parity matrix H T having a staircase structure, a diagram illustrating a Tanner graph corresponding to the parity matrix H T. It is a diagram illustrating a parity matrix H T of the parity check matrix H corresponding to the LDPC code after parity interleave. It is a figure which shows a conversion test matrix. It is a figure explaining the process of the column twist interleaver. It is a figure which shows the number of columns of the memory 31 required for column twist interleaving, and the address of the write start position. It is a figure which shows the number of columns of the memory 31 required for column twist interleaving, and the address of the write start position. It is a flowchart explaining a transmission process.
  • FIG. 3 is a block diagram illustrating a configuration example of a receiving device 12.
  • FIG. It is a flowchart explaining a reception process. It is a figure which shows the example of the check matrix of a LDPC code. It is a figure which shows the matrix (conversion test matrix) which performed row substitution and column substitution to the check matrix. It is a figure which shows the conversion test matrix divided
  • FIG. 3 is a block diagram illustrating a configuration example of an LDPC decoding unit 56.
  • FIG. 11 is a block diagram illustrating another configuration example of the transmission device 11.
  • FIG. 3 is a block diagram illustrating a configuration example of an RC unit 501.
  • FIG. It is a figure explaining RC processing. It is a figure which shows four symbols of a time series. It is a figure explaining the state which the synthetic
  • FIG. 11 is a block diagram illustrating another configuration example of the receiving device 12.
  • FIG. 11 is a block diagram illustrating another configuration example of the receiving device 12.
  • FIG. 12 is a block diagram illustrating a configuration example of an inverse RC processing unit 531.
  • FIG. 3 is a block diagram illustrating a configuration example of an LDPC encoding unit 21.
  • FIG. 4 is a flowchart for explaining processing of an LDPC encoding unit 21. It is a figure which shows the check matrix initial value table prescribed
  • FIG. It is a figure explaining the method of calculating
  • FIG. It is a figure which shows the example of the Tanner graph of the ensemble of a degree sequence that column weight is 3 and row weight is 6.
  • FIG. It is a figure which shows the example of the Tanner graph of a multi-edge type ensemble. It is a figure which shows the check matrix initial value table of one LDPC code whose performance is better than a standard code. It is a figure which shows the check matrix initial value table of one LDPC code whose performance is better than a standard code. It is a figure which shows the check matrix initial value table of one LDPC code whose performance is better than a standard code. It is a figure which shows the check matrix initial value table of one LDPC code whose performance is better than a standard code.
  • FIG. 7 is a diagram of a transmission system to which the present invention is applied (a system refers to a logical collection of a plurality of devices, regardless of whether or not each configuration device is in the same housing). The structural example of embodiment is shown.
  • the transmission system includes a transmission device 11 and a reception device 12.
  • the transmission device 11 is a device that functions as an encoding device or the like that transmits a television broadcast program, for example, and transmits target data to be transmitted, such as image data and audio data as a television broadcast program, to an LDPC. It is encoded into a code and transmitted via, for example, a satellite line or a terrestrial wave.
  • the receiving device 12 is, for example, a tuner or a television receiver that receives a television broadcast program.
  • the receiving device 12 receives an LDPC code transmitted from the transmitting device 11, decodes it into target data, and outputs it.
  • the LDPC code used in the transmission system of FIG. 7 exhibits extremely high capability in an AWGN (Additive White Gaussian Noise) channel.
  • AWGN Additional White Gaussian Noise
  • burst errors may occur due to the condition of the wiring from the antenna (not shown) to the receiving device 12 and the instability of the power supply.
  • the code bit (received value u 0i of the LDPC code) at the variable node corresponding to the column of the parity check matrix H and thus the code bit of the LDPC code. Since the variable node operation of the expression (1) with the addition of) is performed, if an error occurs in the sign bit used for the variable node operation, the accuracy of the required message is reduced.
  • the check node performs the check node calculation of Expression (7) using the message obtained by the variable node connected to the check node, so that a plurality of connected variable nodes ( When the number of check nodes in which the error (including erasure) of the code bits of the LDPC code corresponding to) simultaneously increases, the decoding performance deteriorates.
  • the check node sends a message with an equal probability of a probability of 0 and a probability of 1 to all the variable nodes. return.
  • a check node that returns an equiprobable message does not contribute to one decoding process (one set of variable node calculation and check node calculation), and as a result, requires a large number of repetitions of the decoding process. As a result, the decoding performance deteriorates, and the power consumption of the receiving apparatus 12 that decodes the LDPC code increases.
  • the transmission system of FIG. 7 is designed to improve the tolerance to burst errors and erasures while maintaining the performance on the AWGN communication path.
  • FIG. 8 shows a configuration example of the transmission apparatus 11 of FIG.
  • the transmission device 11 includes an LDPC encoding unit 21, a bit interleaver 22, a mapping unit 26, and an orthogonal modulation unit 27.
  • the target data is supplied to the LDPC encoding unit 21.
  • the LDPC encoding unit 21 performs LDPC encoding on the target data supplied thereto according to a parity check matrix in which a parity matrix that is a portion corresponding to the parity bit of the LDPC code has a staircase structure, Output LDPC code as information bits.
  • the LDPC encoding unit 21 performs LDPC encoding that encodes the target data into, for example, an LDPC code defined in the DVB-S.2 standard, and outputs an LDPC code obtained as a result.
  • the LDPC code defined in the DVB-S.2 standard is an IRA (Irregular-Repeat-Accumulate) code
  • the parity matrix in the parity check matrix of the LDPC code has a staircase structure.
  • the parity matrix and the staircase structure will be described later.
  • IRA codes for example, “Irregular Repeat-Accumulate Codes,” H. Jin, A. Khandekar, and R. J. McEliece, in Proceedings of 2nd International Symposium on Turbo codes and Related Topics-8 , Sept. 2000.
  • the LDPC code output from the LDPC encoding unit 21 is supplied to the bit interleaver 22.
  • the bit interleaver 22 is a data processing device that interleaves data, and includes a parity interleaver 23, a column twist interleaver 24, and a demultiplexer (DEMUX) 25.
  • the parity interleaver 23 performs parity interleaving for interleaving the parity bits of the LDPC code from the LDPC encoding unit 21 to the positions of other parity bits, and supplies the LDPC code after the parity interleaving to the column twist interleaver 24. To do.
  • the column twist interleaver 24 performs column twist interleaving on the LDPC code from the parity interleaver 23 and supplies the LDPC code after the column twist interleaving to the demultiplexer 25.
  • the LDPC code is transmitted by mapping a code bit of two or more bits of the LDPC code to one symbol of orthogonal modulation in the mapping unit 26 described later.
  • the parity interleaver 23 prevents a plurality of code bits of the LDPC code corresponding to 1 in any one row of the check matrix used in the LDPC encoding unit 21 from being mapped to one symbol.
  • column twist interleaving as described later is performed.
  • the demultiplexer 25 obtains an LDPC code with enhanced resistance against AWGN by performing a replacement process for replacing the positions of two or more code bits of the LDPC code mapped to the symbol with respect to the LDPC code from the column twist interleaver 24. To the mapping unit 26.
  • the mapping unit 26 maps two or more code bits of the LDPC code from the demultiplexer 25 to each signal point determined by the orthogonal modulation (multi-level modulation) modulation method performed by the orthogonal modulation unit 27.
  • the mapping unit 26 uses the IQ plane (IQ constellation) in which the LDPC code from the demultiplexer 25 is defined by the I axis representing the I component in phase with the carrier wave and the Q axis representing the Q component orthogonal to the carrier wave.
  • the above symbol is converted into a symbol (symbol value) represented by a signal point determined by the modulation method.
  • a modulation method of the orthogonal modulation performed by the orthogonal modulation unit 27 for example, a modulation method including a modulation method defined in the DVB-T standard, for example, QPSK (QuadratureadPhase Shift Keying), There are 16QAM (Quadrature Amplitude Modulation), 64QAM, 256QAM, 1024QAM, 4096QAM, etc.
  • QPSK QuadratureadPhase Shift Keying
  • 16QAM Quadrature Amplitude Modulation
  • 64QAM Quadrature Amplitude Modulation
  • 64QAM Quadrature Amplitude Modulation
  • 256QAM 256QAM
  • 1024QAM 1024QAM
  • 4096QAM 4096QAM
  • the symbol obtained by the mapping unit 26 is supplied to the orthogonal modulation unit 27.
  • the quadrature modulation unit 27 performs quadrature modulation of the carrier according to the symbols from the mapping unit 26, and transmits a modulation signal obtained as a result.
  • FIG. 9 shows a parity check matrix H used for LDPC encoding in the LDPC encoding unit 21 of FIG.
  • LDGM Low-Density Generation Matrix
  • the number of information bits and the number of parity bits in the code bits of one LDPC code are referred to as information length K and parity length M, respectively, and one LDPC.
  • the information length K and the parity length M for an LDPC code having a certain code length N are determined by the coding rate.
  • the parity check matrix H is an M ⁇ N matrix with rows ⁇ columns. Then, the information matrix H A, becomes the matrix of M ⁇ K, the parity matrix H T is a matrix of M ⁇ M.
  • Figure 10 illustrates a parity matrix H T of the parity check matrix H of an LDPC code prescribed in the standard of DVB-S.2.
  • the row weight of the parity matrix H T is 1 for the first row and 2 for all the remaining rows.
  • the column weight is 1 for the last column and 2 for all the remaining columns.
  • LDPC codes of the check matrix H the parity matrix H T has a staircase structure can be using the check matrix H, readily produced.
  • an LDPC code (one codeword), together represented by a row vector c, and column vector obtained by transposing the row vector is represented as c T. Further, in the row vector c which is an LDPC code, the information bit portion is represented by the row vector A, and the parity bit portion is represented by the row vector T.
  • the row vector T can be represented by the row vector with the element of the row vector T on the right side.
  • FIG. 11 shows a parity check matrix H of LDPC codes and column weights defined in the DVB-S.2 standard.
  • a in FIG. 11 shows the parity check matrix H of the LDPC code defined in the DVB-S.2 standard.
  • the column weight is X
  • the column weight is 3
  • the column weight is 2
  • the column weight is 1, respectively.
  • KX + K3 + M-1 + 1 is equal to the code length N.
  • B in FIG. 11 shows the column numbers KX, K3, and M and the column weight X for each coding rate of the LDPC code defined in the DVB-S.2 standard.
  • the DVB-S.2 standard specifies LDPC codes with a code length N of 64800 bits and 16200 bits.
  • the column weight on the head side (left side) tends to be large, and therefore corresponds to the parity check matrix H.
  • the first code bit tends to be more resistant to errors (is more resistant to errors), and the last code bit tends to be weaker to errors.
  • FIG. 12 shows an arrangement on the IQ plane of 16 symbols (corresponding signal points) when 16QAM is performed by the orthogonal modulation unit 27 of FIG.
  • a in FIG. 12 indicates a 16QAM symbol.
  • the 16 symbols are arranged so that the I direction ⁇ Q direction is a 4 ⁇ 4 square shape with the origin of the IQ plane as the center.
  • mapping unit 26 (FIG. 8) has the case where the modulation scheme is 16QAM.
  • the 4 bits of the code bits of the LDPC code are mapped to symbols of 4 bits y 0 to y 3 that match the 4 bits.
  • FIG. 12 shows bit boundaries for each of the 4 bits y 0 to y 3 represented by the 16QAM symbol.
  • bit y i represented by a symbol is more likely to be erroneous as the number of symbols far from the bit boundary increases, and the error is easier as there are more symbols near the bit boundary.
  • bits that are hard to error are called “strong to errors” and bits that are easy to error (weak to errors) are called “weak bits”
  • the 4 bits y 0 to y 3 represented by the 16QAM symbol
  • the most significant bit y 0 and the second bit y 1 are strong bits
  • the third bit y 2 and the fourth bit y 3 are weak bits.
  • 13 to 15 show the arrangement of 64 symbols (corresponding signal points) on the IQ plane when 64QAM is performed in the orthogonal modulation unit 27 of FIG.
  • mapping unit 26 (FIG. 8) performs modulation.
  • 6 bits of the code bits of the LDPC code are mapped to 6-bit symbols y 0 to y 5 that match the 6 bits.
  • FIG. 13 shows bit boundaries for the most significant bit y 0 and the second bit y 1 among the 6 bits y 0 to y 5 represented by the 64QAM symbol
  • FIG. FIG. 15 shows the bit boundaries for the bit y 2 and the fourth bit y 3, respectively
  • FIG. 15 shows the bit boundaries for the fifth bit y 4 and the sixth bit y 5 , respectively.
  • the bit boundary for the second bit y 1 has at one place. Also, as shown in FIG. 14, the bit boundary for each of the third bit y 2 and the fourth bit y 3 is two places, and as shown in FIG. 15, the fifth bit y 4 If the bit boundaries for the sixth bit y 5 each is made at four positions.
  • the most significant bit y 0, and the second bit y 1 is, and energy bit
  • the third bit y 2, and 4 th bit y 3 has become a strong bit to the next.
  • the fifth bit y 4 and the sixth bit y 5 are weak bits.
  • bits of the orthogonal modulation symbols tend to be strong bits in the upper bits and weak bits in the lower bits.
  • the LDPC code output from the LDPC encoding unit 21 includes a code bit resistant to errors and a code bit vulnerable to errors.
  • the bits of the orthogonal modulation symbol performed by the orthogonal modulation unit 27 include a strong bit and a weak bit.
  • mapping is performed by assigning code bits that are vulnerable to errors of LDPC codes to weak bits of orthogonal modulation symbols, the overall tolerance to errors is reduced.
  • FIG. 16 is a diagram for explaining the processing of the demultiplexer 25 in FIG.
  • a in FIG. 16 shows a functional configuration example of the demultiplexer 25.
  • the demultiplexer 25 includes a memory 31 and a replacement unit 32.
  • the LDPC code is supplied to the memory 31.
  • the memory 31 has a storage capacity for storing mb bits in the row (horizontal) direction and N / (mb) bits in the column (vertical) direction, and the LDPC supplied thereto The sign bit of the code is written in the column direction, read in the row direction, and supplied to the switching unit 32.
  • m represents the number of code bits of the LDPC code mapped to one symbol
  • b is a predetermined positive integer, which is a multiple used to multiply m by an integer.
  • N represents the code length of the LDPC code as described above.
  • FIG. 16A shows a configuration example of the demultiplexer 25 when the modulation method is 64QAM. Therefore, the number m of code bits of the LDPC code mapped to one symbol is 6 bits.
  • the multiple b is 1, and therefore the memory 31 has a storage capacity of N / (6 ⁇ 1) ⁇ (6 ⁇ 1) bits in the column direction ⁇ row direction.
  • the storage area of the memory 31 extending in the column direction and having a 1-bit row direction is hereinafter referred to as a column as appropriate.
  • the code bits of the LDPC code are written from the top to the bottom (column direction) of the columns constituting the memory 31 from the left to the right columns.
  • the sign bit When writing of the sign bit is completed to the bottom of the rightmost column, the sign bit is changed in units of 6 bits (mb bits) in the row direction from the first row of all the columns constituting the memory 31. It is read out and supplied to the replacement unit 32.
  • the exchanging unit 32 performs an exchanging process for exchanging positions of 6-bit code bits from the memory 31, and the 6 bits obtained as a result are 6 bits y 0 , y 1 , y 2 , y 3 representing one symbol of 64QAM. , y 4 , y 5
  • the sign bit of the 6 bits read from the memory 31 in the row direction in order from the most significant bit and b 0, b 1, b 2 , b 3, b 4, and is represented as b 5, FIG. 11
  • the sign bit in the direction of bit b 0 is a sign bit that is resistant to errors
  • the sign bit in the direction of bit b 5 is a sign bit that is vulnerable to errors. .
  • the 6-bit code bits b 0 to b 5 from the memory 31 become the strong bits of the 6 bits y 0 to y 5 representing one symbol of 64QAM.
  • a replacement process is performed in which the positions of the 6-bit code bits b 0 to b 5 from the memory 31 are replaced.
  • each company replaces the 6-bit code bits b 0 to b 5 from the memory 31 and assigns them to each of 6 bits y 0 to y 5 representing one symbol of 64QAM.
  • Various schemes have been proposed.
  • FIG. 16B shows the first replacement method
  • FIG. 16C shows the second replacement method
  • FIG. 16D shows the third replacement method.
  • FIG. 17 shows a case where the modulation method is 64QAM (therefore, the number m of code bits of the LDPC code mapped to one symbol is 6 bits as in FIG. 16) and the multiple b is 2.
  • the demultiplexer 25 and a fourth replacement method are shown.
  • FIG. 17A shows the order of writing LDPC codes to the memory 31.
  • the code bits of the LDPC code are written from the top to the bottom (column direction) of the columns constituting the memory 31, and the rows from the left to the right Is called.
  • the sign bit When the writing of the sign bit is completed to the bottom of the rightmost column, the sign bit is set in units of 12 bits (mb bits) in the row direction from the first row of all the columns constituting the memory 31. It is read out and supplied to the replacement unit 32.
  • the exchanging unit 32 performs an exchanging process of exchanging the positions of the 12-bit code bits from the memory 31 by the fourth exchanging method, and the 12 bits obtained as a result represent 2 symbols (b symbols) of 64QAM. 12 bits, that is, the 6 bits y representing one symbol of 64QAM 0, y 1, y 2, y 3, y 4, y 5, 6 bits y 0 representing the next one symbol, y 1, y 2, y Output as 3 , y 4 , y 5 .
  • B in FIG. 17 shows a fourth replacement method of the replacement processing by the replacement unit 32 in A of FIG.
  • parity interleaving by the parity interleaver 23 in FIG. 8 will be described with reference to FIGS.
  • FIG. 18 shows (part of) a Tanner graph of an LDPC code parity check matrix.
  • variable nodes corresponding code bits
  • all the check nodes are connected to the check node.
  • a message having a probability that the value is 0 and the probability that the value is 1 is returned to the variable node. For this reason, if a plurality of variable nodes connected to the same check node simultaneously become erasures or the like, the decoding performance deteriorates.
  • LDPC code prescribed in the DVB-S.2 standard is an IRA code
  • the parity matrix H T of the parity check matrix H as shown in FIG. 10 It has a staircase structure.
  • FIG. 19 shows a parity matrix H T having a staircase structure and a Tanner graph corresponding to the parity matrix H T.
  • a in FIG. 19 shows a parity matrix H T having a staircase structure
  • B in FIG. 19 shows a Tanner graph corresponding to the parity matrix H T in A in FIG.
  • the parity matrix H T has a staircase structure, in the Tanner graph of the parity matrix H T, of the LDPC code, the value of the parity matrix H T corresponding to the sequence of elements that is a 1, the adjacent code bits Variable nodes for which a message is requested using (parity bit) are connected to the same check node.
  • the parity interleaver 23 (FIG. 8) performs parity interleaving for interleaving the parity bits of the LDPC code from the LDPC encoding unit 21 to other parity bit positions in order to prevent the above-described degradation in decoding performance. I do.
  • Figure 20 illustrates a parity matrix H T of the parity check matrix H corresponding to the LDPC code after parity interleave to the parity interleaver 23 of FIG. 8 is performed.
  • the information matrix HA of the check matrix H corresponding to the LDPC code defined in the DVB-S.2 standard output from the LDPC encoding unit 21 has a cyclic structure.
  • a cyclic structure is a structure in which a column matches the cyclic of another column.For example, for each P column, the position of 1 in each row of the P column is the first in the P column.
  • a structure in which a column is cyclically shifted in the column direction by a value proportional to a value q obtained by dividing the parity length M is also included.
  • the P column in the cyclic structure is referred to as the number of columns in the cyclic structure unit as appropriate.
  • the LDPC code output by the LDPC encoding unit 21 and defined in the DVB-S.2 standard includes two types of LDPCs having a code length N of 64800 bits and 16200 bits. There is a sign.
  • the coding rate of the LDPC code having a code length N of 64,800 bits is: As described with reference to FIG.
  • the LDPC code having a code length N of 64,800 bits, the DVP-S.2 standard indicates that the number of columns P of the cyclic structure unit is approximately equal to the parity length M.
  • 360 is defined as one of the divisors except 1 and M.
  • the parity interleaver 23 sets the information length to K, sets x to an integer between 0 and less than P, and sets y to an integer between 0 and less than q. 21.
  • variable nodes connected to the same check node are separated by the number of columns P of the cyclic structure unit, that is, 360 bits here, so the burst length is In the case of less than 360 bits, it is possible to avoid a situation in which a plurality of variable nodes connected to the same check node cause an error at the same time, and as a result, it is possible to improve resistance to burst errors.
  • the LDPC code after parity interleaving that interleaves the K + qx + y + 1-th code bit at the position of the K + Py + x + 1-th code bit is K + qx + of the original parity check matrix H.
  • the pseudo cyclic structure means a structure in which a part except for a part has a cyclic structure.
  • the parity check matrix obtained by performing column replacement equivalent to parity interleaving on the parity check matrix of the LDPC code specified in the DVB-S.2 standard is a 360-row x 360-column portion at the right corner.
  • the shift matrix to be described later
  • there is only one element of 1 it is an element of 0
  • a pseudo cyclic structure is used instead of a (complete) cyclic structure.
  • the conversion check matrix in FIG. 20 replaces rows so that the conversion check matrix is configured with a configuration matrix described later. (Row replacement) is also applied to the matrix.
  • the 8 transmits two or more of the code bits of the LDPC code as one symbol, as described above, in order to improve the frequency utilization efficiency. That is, for example, when 2 bits of code bits are used as one symbol, QPSK is used as a modulation system, for example. When 4 bits of code bits are used as 1 symbol, a modulation system is used. For example, 16QAM is used.
  • the information matrix HA has a cyclic structure
  • the parity matrix H T has a staircase structure.
  • FIG. 21 shows a conversion check matrix
  • a in FIG. 21 shows a conversion parity check matrix of a parity check matrix H of an LDPC code having a code length N of 64,800 bits and a coding rate (r) of 3/4.
  • 21B shows processing performed by the demultiplexer 25 (FIG. 8) for the LDPC code of the conversion check matrix of A in FIG. 21, that is, the LDPC code after parity interleaving.
  • the modulation method is 16QAM, and the code bits of the LDPC code after parity interleaving are written in the column direction in the four columns constituting the memory 31 of the demultiplexer 25.
  • the sign bit written in the column direction in the four columns constituting the memory 31 is read out in units of 4 bits in the row direction to become one symbol.
  • 4-bit code bits B 0 , B 1 , B 2 , and B 3 that are one symbol are code bits corresponding to 1 in any one row of the post-conversion check matrix of A in FIG.
  • the variable nodes corresponding to the sign bits B 0 , B 1 , B 2 , and B 3 are connected to the same check node.
  • a plurality of code bits corresponding to a plurality of variable nodes connected to the same check node may be one symbol of 16QAM. is there.
  • the column twist interleaver 24 performs LDPC after parity interleaving from the parity interleaver 23 so that a plurality of code bits corresponding to 1 in any one row of the conversion check matrix are not mapped to one symbol. Column twist interleaving is performed to interleave the code bits of the code.
  • FIG. 22 is a diagram for explaining column twist interleaving.
  • FIG. 22 shows the memory 31 (FIGS. 16 and 17) of the demultiplexer 25.
  • the memory 31 stores mb bits in the column (vertical) direction and has a storage capacity for storing N / (mb) bits in the row (horizontal) direction.
  • Consists of The column twist interleaver 24 performs column twist interleaving by controlling the write start position when writing the code bits of the LDPC code in the column direction and reading in the row direction to the memory 31.
  • a plurality of code bits, which are read as one symbol, are read out in the row direction by appropriately changing the write start position at which code bit writing is started for each of a plurality of columns.
  • the sign bit corresponding to 1 in any one row of the conversion parity check matrix is prevented (a plurality of code bits corresponding to 1 in any one row of the parity check matrix are not included in the same symbol.
  • the code bits of the LDPC code are rearranged).
  • the column twist interleaver 24 writes the code bits of the LDPC code from the top to the bottom (column direction) of the four columns constituting the memory 31 (instead of the demultiplexer 25 in FIG. 16) from left to right. Towards the direction column.
  • the column twist interleaver 24 starts from the first row of all the columns constituting the memory 31 in the row direction in units of 4 bits (mb bits).
  • the code bits are read and output to the replacement unit 32 (FIGS. 16 and 17) of the demultiplexer 25 as the LDPC code after column twist interleaving.
  • the address at the top (top) position of each column is 0 and the address at each position in the column direction is expressed as an integer in ascending order
  • the starting position of writing is the position where the address is 0, the second column (from the left) is the starting position of writing, the address is the position 2, and the third column is the starting position of writing.
  • the address is at position 4, and for the fourth column, the write start position is the position at address 7.
  • the writing start position is other than the position where the address is 0
  • the writing start position After writing the sign bit to the lowest position, it returns to the beginning (position where the address is 0), and the writing start position. Writing up to the position immediately before is performed. Thereafter, writing to the next (right) column is performed.
  • FIG. 23 shows the number of columns of the memory 31 required for column twist interleaving and the writing for each LDPC code of 11 coding rates specified in the DVB-S.2 standard and having a code length N of 64800. The address of the starting position is shown for each modulation method.
  • the fourth replacement method of FIG. 17 is employed as the replacement method of the replacement process of the demultiplexer 25 (FIG. 8) and QPSK is employed as the modulation method
  • the number of bits m of one symbol is It is 2 bits
  • the multiple b is 2.
  • the memory 31 has four columns storing 2 ⁇ 2 bits in the row direction, and stores 64800 / (2 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 2 position
  • the start position of writing in the column is the position where the address is 4
  • the start position of writing in the fourth column is the position where the address is 7.
  • the memory 31 has four columns storing 4 ⁇ 1 bits in the row direction, and stores 64800 / (4 ⁇ 1) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 2 position
  • the write start position of the second column is the position where the address is 4
  • the write start position of the fourth column is the position where the address is 7.
  • the bit number m of one symbol is 4 bits, and the multiple b is 2.
  • the memory 31 has 8 columns storing 4 ⁇ 2 bits in the row direction, and stores 64800 / (4 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • the start position of the second column is the position where the address is 2
  • the start position of the fourth column is the position where the address is 4
  • the start position of the fifth column is the position where the address is 4.
  • the position and the start position of writing in the sixth column are the position where the address is 5
  • the start position of writing in the seventh column is the position where the address is 7, and the starting position of the eighth column is The address is made with 7 positions, respectively.
  • the memory 31 has 6 columns for storing 6 ⁇ 1 bits in the row direction, and stores 64800 / (6 ⁇ 1) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 2 position
  • the first column write position is the address 5 position
  • the fourth column write start position is the address 9 position
  • the fifth column write start position is the address 10.
  • the position and the position at the beginning of writing in the sixth column are the position where the address is 13, respectively.
  • the fourth replacement method of FIG. 17 is adopted as the replacement method of the replacement process of the demultiplexer 25 (FIG. 8) and 64QAM is adopted as the modulation method
  • the number of bits m of one symbol is 6 bits and the multiple b is 2.
  • the memory 31 has 12 columns storing 6 ⁇ 2 bits in the row direction, and stores 64800 / (6 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • 3 The start position of the second column is the position where the address is 2
  • the start position of the fourth column is the position where the address is 2
  • the start position of the fifth column is the position where the address is 3.
  • the position and the start position of the 6th column are the position where the address is 4, the start position of the 7th column is the position where the address is 4 and the start position of the 8th column is The position where the address is 5 and the start position of writing in the ninth column are the position where the address is 5, and the start position of writing in the 10th column is the position where the address is 7 and the start position of writing in the 11th column.
  • the position of is the position of address 8 and the 12th column Position of the writing start is set to the position whose address is 9, are respectively.
  • the memory 31 has 8 columns storing 8 ⁇ 1 bits in the row direction, and stores 64800 / (8 ⁇ 1) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • the start position of the second column is the position where the address is 2
  • the start position of the fourth column is the position where the address is 4
  • the start position of the fifth column is the position where the address is 4.
  • the position and the start position of writing in the sixth column are the position where the address is 5
  • the start position of writing in the seventh column is the position where the address is 7, and the starting position of the eighth column is The address is made with 7 positions, respectively.
  • the fourth replacement method of FIG. 17 is adopted as the replacement method of the replacement process of the demultiplexer 25 (FIG. 8) and 256QAM is adopted as the modulation method
  • the number of bits m of one symbol is It is 8 bits and the multiple b is 2.
  • the memory 31 has 16 columns storing 8 ⁇ 2 bits in the row direction, and stores 64800 / (8 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 2 position
  • 3 The start position of the second column is the position where the address is 2
  • the start position of the fourth column is the position where the address is 2
  • the start position of the fifth column is the address where the address is 2.
  • the position and the start position of writing the sixth column are the position where the address is 3, the start position of the seventh column is the position where the address is 7, and the start position of the eighth column is The position where the address is 15 and the start position of the 9th column are the position where the address is 16 and the start position where the 10th column is written are the position where the address is 20 and the start position of the 11th column.
  • the position of is the position of address 22 and the 12th color
  • the writing start position is the position where the address is 22, the writing start position of the 13th column is the position of address 27, the writing start position of the 14th column is the position of address 27,
  • the write start position of the 15th column is the position where the address is 28, and the write start position of the 16th column is the position where the address is 32.
  • any one of the first to third replacement methods in FIG. 16 is adopted as the replacement method of the replacement process of the demultiplexer 25 (FIG. 8), and 1024QAM is adopted as the modulation method,
  • the bit number m of one symbol is 10 bits, and the multiple b is 1.
  • the memory 31 has 10 columns storing 10 ⁇ 1 bits in the row direction, and stores 64800 / (10 ⁇ 1) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 3 position
  • the first column write position is the address 6 position
  • the fourth column write start position is the address 8 position
  • the fifth column start position is the address 11
  • the position and the start position of the 6th column are the position of the address 13
  • the start position of the 7th column is the position of the address 15
  • the start position of the 8th column is The address 17 position, the 9th column write start position, the address 18 position, and the 10th column write start position, the address 20 position, respectively.
  • the fourth replacement method of FIG. 17 is adopted as the replacement method of the replacement process of the demultiplexer 25 (FIG. 8) and 1024QAM is adopted as the modulation method
  • the number of bits m of one symbol is 10 bits and the multiple b is 2.
  • the memory 31 has 20 columns storing 10 ⁇ 2 bits in the row direction, and stores 64800 / (10 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 1 position
  • the start position of the second column is the position where the address is 3
  • the start position of the fourth column is the position where the address is 4
  • the start position of the fifth column is the position where the address is 5.
  • the position and the start position of writing in the sixth column are the position where the address is 6, the start position of writing in the seventh column is the position where the address is 6, and the starting position of the eighth column is The position where the address is 9 and the start position of writing the ninth column are the position where the address is 13, and the start position of writing the tenth column is the position where the address is 14 and the start of writing the eleventh column.
  • the position of is the position of address 14 and the 12th color
  • the write start position of the address is position 16
  • the write start position of the 13th column is the position of address 21
  • the write start position of the 14th column is the position of address 21
  • the writing start position of the 15th column is the position where the address is 23
  • the writing start position of the 16th column is the position of address 25
  • the writing start position of the 17th column is address 25.
  • the 18th column write start position is the address 26 position
  • the 19th column write start position is the address 28 position
  • the 20th column write start position is The address is 30 positions, respectively.
  • the memory 31 has 12 columns storing 12 ⁇ 1 bits in the row direction, and stores 64800 / (12 ⁇ 1) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • 3 The start position of the second column is the position where the address is 2
  • the start position of the fourth column is the position where the address is 2
  • the start position of the fifth column is the position where the address is 3.
  • the position and the start position of the 6th column are the position where the address is 4, the start position of the 7th column is the position where the address is 4 and the start position of the 8th column is The position where the address is 5 and the start position of writing in the ninth column are the position where the address is 5, and the start position of writing in the 10th column is the position where the address is 7 and the start position of writing in the 11th column.
  • the position of is the position of address 8 and the 12th column Position of the writing start is set to the position whose address is 9, are respectively.
  • the bit number m of one symbol is It is 12 bits, and the multiple b is 2.
  • the memory 31 has 24 columns storing 12 ⁇ 2 bits in the row direction, and stores 64800 / (12 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 5 position
  • 3 The start position of the second column is the position where the address is 8
  • the start position of the fourth column is the position where the address is 8
  • the start position of the fifth column is the position where the address is 8.
  • the position and the writing start position of the sixth column are the position where the address is 8
  • the writing start position of the seventh column is the position of the address 10
  • the writing start position of the eighth column is The position where the address is 10 and the start position of the 9th column are the position where the address is 10 and the start position where the 10th column is written are the position where the address is 12 and the start position of the 11th column.
  • the position of is the position of address 13 and the 12th color
  • the start position of the program is the position where the address is 16, the start position of the 13th column is the position where the address is 17, the start position of the 14th column is the position where the address is 19
  • the 15th column write start position is the address 21 position
  • the 16th column write start position is the address 22 position
  • the 17th column write start position is the address
  • the position of 23 and the start position of writing of the 18th column are the position of address 26
  • the start position of writing of the 19th column is the position of address 37 and the start position of writing of the 20th column.
  • the position of the address 39 and the start position of the 21st column are the position of the address 40 and the start position of the 22nd column is the position of the address 41 and the position of the 23rd column.
  • the starting position is the address 41 And location, writing starting the 24th column position is set to the position whose address is 41, are respectively.
  • FIG. 24 shows the number of columns of the memory 31 required for column twist interleaving and the writing of LDPC codes for 10 coding rates each having a code length N of 16200 defined in the DVB-S.2 standard. The address of the starting position is shown for each modulation method.
  • the memory 31 has two columns for storing 2 ⁇ 1 bits in the row direction, and stores 16200 / (2 ⁇ 1) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position. Is done.
  • the fourth replacement method of FIG. 17 is employed as the replacement method of the replacement process of the demultiplexer 25 (FIG. 8) and QPSK is employed as the modulation method
  • the number of bits m of one symbol is It is 2 bits
  • the multiple b is 2.
  • the memory 31 has four columns storing 2 ⁇ 2 bits in the row direction, and stores 16200 / (2 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 2 position
  • the writing start position of the second column is the position where the address is 3
  • the writing start position of the fourth column is the position where the address is 3.
  • the memory 31 has four columns for storing 4 ⁇ 1 bits in the row direction, and stores 16200 / (4 ⁇ 1) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 2 position
  • the writing start position of the second column is the position where the address is 3
  • the writing start position of the fourth column is the position where the address is 3.
  • the bit number m of one symbol is 4 bits, and the multiple b is 2.
  • the memory 31 has 8 columns for storing 4 ⁇ 2 bits in the row direction, and stores 16200 / (4 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • the first column write start position is the address 0
  • the fourth column write start position is the address 1 position
  • the fifth column write start position is the address 7.
  • the position and the start position of writing the sixth column are the position where the address is 20, the start position of the seventh column is the position where the address is 20, and the start position of the eighth column is Addresses are made with 21 positions, respectively.
  • any one of the first to third replacement methods in FIG. 16 is adopted as the replacement method of the replacement process of the demultiplexer 25 (FIG. 8), and 64QAM is adopted as the modulation method,
  • the bit number m of one symbol is 6 bits, and the multiple b is 1.
  • the memory 31 has 6 columns storing 6 ⁇ 1 bits in the row direction, and stores 16200 / (6 ⁇ 1) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • the start position of the second column is the position where the address is 2
  • the start position of the fourth column is the position where the address is 3
  • the start position of the fifth column is the position where the address is 7.
  • the position and the position at the beginning of writing in the sixth column are set to the position where the address is 7, respectively.
  • the bit number m of one symbol is 6 bits and the multiple b is 2.
  • the memory 31 has 12 columns storing 6 ⁇ 2 bits in the row direction, and stores 16200 / (6 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • 3 The start position of the second column is the position where the address is 0
  • the start position of the fourth column is the position where the address is 2
  • the start position of the fifth column is the position where the address is 2.
  • the position of the start position of the 6th column is the position where the address is 2
  • the start position of the 7th column is the position of the address 3
  • the start position of the 8th column is The position where the address is 3 and the start position of the 9th column are the position where the address is 3 and the start position of the 10th column is the position where the address is 6 and the start of writing the 11th column.
  • the position of is the position of address 7 and the 12th column Position of the writing start is set to the position whose address is 7, are respectively.
  • any of the first to third replacement methods in FIG. 16 is adopted as the replacement method of the replacement process of the demultiplexer 25 (FIG. 8), and 256QAM is adopted as the modulation method,
  • the bit number m of one symbol is 8 bits, and the multiple b is 1.
  • the memory 31 has 8 columns storing 8 ⁇ 1 bits in the row direction, and stores 16200 / (8 ⁇ 1) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • the first column write start position is the address 0
  • the fourth column write start position is the address 1 position
  • the fifth column write start position is the address 7.
  • the position and the start position of writing the sixth column are the position where the address is 20, the start position of the seventh column is the position where the address is 20, and the start position of the eighth column is Addresses are made with 21 positions, respectively.
  • any one of the first to third replacement methods in FIG. 16 is adopted as the replacement method of the replacement process of the demultiplexer 25 (FIG. 8), and 1024QAM is adopted as the modulation method,
  • the bit number m of one symbol is 10 bits, and the multiple b is 1.
  • the memory 31 has 10 columns for storing 10 ⁇ 1 bits in the row direction, and stores 16200 / (10 ⁇ 1) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 1 position
  • 3 The start position of the second column is the position where the address is 2
  • the start position of the fourth column is the position where the address is 2
  • the start position of the fifth column is the position where the address is 3.
  • the position and the start position of the 6th column are the position where the address is 3, the start position of the 7th column is the position where the address is 4 and the start position of the 8th column is The address 4 position, the 9th column write start position are the address 5 position, and the 10th column write start position are the address 7 position.
  • the fourth replacement method of FIG. 17 is adopted as the replacement method of the replacement process of the demultiplexer 25 (FIG. 8) and 1024QAM is adopted as the modulation method
  • the number of bits m of one symbol is 10 bits and the multiple b is 2.
  • the memory 31 has 20 columns storing 10 ⁇ 2 bits in the row direction, and stores 16200 / (10 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • 3 The start position of the second column is the position where the address is 0
  • the start position of the fourth column is the position where the address is 2
  • the start position of the fifth column is the position where the address is 2.
  • the position and the start position of writing in the sixth column are the position where the address is 2
  • the start position of writing in the seventh column is the position of address 2
  • the starting position of the eighth column is
  • the position where the address is 2 and the start position of writing the ninth column are the position where the address is 5,
  • the start position of writing the tenth column is the position where the address is 5 and the start of writing the eleventh column.
  • the position of is the position of address 5 and the 12th column
  • the write start position is the position where the address is 5
  • the write start position of the 13th column is the position where the address is 5
  • the write start position of the 14th column is the position where the address is 7 and 15
  • the write start position of the seventh column is the position where the address is 7
  • the write start position of the 16th column is the position of address 7
  • the write start position of the 17th column is the address of 7.
  • the position and the write start position of the 18th column are the position where the address is 8
  • the write start position of the 19th column is the position of the address 8
  • the write start position of the 20th column is Each address is made with 10 positions.
  • the memory 31 has 12 columns storing 12 ⁇ 1 bits in the row direction, and stores 16200 / (12 ⁇ 1) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • 3 The start position of the second column is the position where the address is 0
  • the start position of the fourth column is the position where the address is 2
  • the start position of the fifth column is the position where the address is 2.
  • the position of the start position of the 6th column is the position where the address is 2
  • the start position of the 7th column is the position of the address 3
  • the start position of the 8th column is The position where the address is 3 and the start position of the 9th column are the position where the address is 3 and the start position of the 10th column is the position where the address is 6 and the start of writing the 11th column.
  • the position of is the position of address 7 and the 12th column Position of the writing start is set to the position whose address is 7, are respectively.
  • the bit number m of one symbol is It is 12 bits, and the multiple b is 2.
  • the memory 31 has 24 columns storing 12 ⁇ 2 bits in the row direction, and stores 16200 / (12 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • 3 The start position of the second column is the position where the address is 0
  • the start position of the fourth column is the position where the address is 0
  • the start position of the fifth column is the position where the address is 0.
  • the position of the start position of the 6th column is the position where the address is 0, the start position of the 7th column is the position where the address is 0, and the start position of the 8th column is The position where the address is 1 and the start position of writing the ninth column are the position where the address is 1, and the start position of writing the tenth column is the position where the address is 1 and the start of writing the eleventh column.
  • the position of is the position of address 2 and the 12th column
  • the writing start position is the position where the address is 2
  • the writing start position of the 13th column is the position of address 2
  • the writing start position of the 14th column is the position of address 3 and 15
  • the write start position of the 19th column is the position of address 7
  • the write start position of the 16th column is the position of address 9
  • the start position of the 17th column is the address of 9
  • the position of the 18th column and the start position of the 18th column are the position where the address is 9
  • the position of is the position where the address is 10,
  • the writing starting position for the fourth column is set to
  • the LDPC encoder 21 waits for the target data to be supplied thereto, encodes the target data into an LDPC code in step S101, supplies the LDPC code to the bit interleaver 22, and performs processing. Advances to step S102.
  • the bit interleaver 22 performs bit interleaving on the LDPC code from the LDPC encoding unit 21 in step S102, and the LDPC code after the bit interleaving is supplied to the mapping unit 26. The process proceeds to S103.
  • the parity interleaver 23 performs parity interleaving for the LDPC code from the LDPC encoding unit 21, and the LDPC code after the parity interleaving is converted into a column twist interleaver. 24.
  • the column twist interleaver 24 performs column twist interleaving on the LDPC code from the parity interleaver 23, and the demultiplexer 25 performs replacement processing on the LDPC code after the column twist interleaving by the column twist interleaver 24. Do. Then, the LDPC code after the replacement process is supplied from the demultiplexer 25 to the mapping unit 26.
  • step S103 the mapping unit 26 maps the m-bit code bits of the LDPC code from the demultiplexer 25 to symbols represented by signal points defined by the modulation method of the orthogonal modulation performed by the orthogonal modulation unit 27, and the orthogonal modulation unit 27, the process proceeds to step S104.
  • step S104 the quadrature modulation unit 27 performs quadrature modulation of the carrier wave in accordance with the symbol from the mapping unit 26, and the process proceeds to step S105 to transmit a modulation signal obtained as a result of the quadrature modulation, and the process ends. To do.
  • the parity interleaver 23 that is a block that performs parity interleaving and the column twist interleaver 24 that is a block that performs column twist interleaving are configured separately.
  • the parity interleaver 23 and the column twist interleaver 24 can be integrally configured.
  • both parity interleaving and column twist interleaving can be performed by writing and reading code bits to and from the memory, and an address (write address) for writing code bits is an address for reading code bits. It can be represented by a matrix to be converted into (read address).
  • parity interleaving is performed by converting the sign bit by the matrix, and further, the parity.
  • the result of column twist interleaving of the interleaved LDPC code can be obtained.
  • the demultiplexer 25 can also be configured integrally.
  • the replacement process performed by the demultiplexer 25 can also be represented by a matrix that converts the write address of the memory 31 that stores the LDPC code into a read address.
  • parity interleaving, column twist interleaving, and replacement processing are performed according to the matrix. Can be performed collectively.
  • the simulation was performed using a communication path with flutter with a D / U of 0 dB.
  • FIG. 26 shows a communication channel model used in the simulation.
  • a in FIG. 26 shows a flutter model employed in the simulation.
  • FIG. 26B shows a channel model with flutter represented by the model A in FIG.
  • H represents the flutter model of FIG. 26B
  • N represents ICI (Inter Carrier Interference).
  • E [N 2 ] of the power is approximated by AWGN.
  • FIG. 27 shows the relationship between the error rate and the Doppler frequency f d when the modulation method is 16QAM, the coding rate (r) is (3/4), and the replacement method is the first replacement method.
  • FIG. 28 shows the relationship between the error rate and the Doppler frequency f d when the modulation method is 64QAM, the coding rate (r) is (5/6), and the replacement method is the first replacement method. Show.
  • the thick line indicates the relationship between the error rate and the Doppler frequency f d when the parity interleaving, the column twist interleaving, and the replacement process are all performed
  • the thin line indicates the parity.
  • the error rate is improved (smaller) when all of parity interleaving, column twist interleaving, and replacement processing are performed than when only replacement processing is performed. I understand that.
  • FIG. 29 is a block diagram illustrating a configuration example of the receiving device 12 of FIG.
  • the reception device 12 is a data processing device that receives the modulated signal from the transmission device 11 (FIG. 7). From the orthogonal demodulation unit 51, the demapping unit 52, the deinterleaver 53, and the LDPC decoding unit 56. Composed.
  • the orthogonal demodulator 51 receives the modulated signal from the transmitter 11, performs orthogonal demodulation, and supplies the resulting symbols (values in the I and Q axis directions) to the demapping unit 52.
  • the demapping unit 52 performs demapping to convert the symbols from the orthogonal demodulation unit 51 into code bits of the LDPC code, and supplies the demapping unit 52 to the deinterleaver 53.
  • the deinterleaver 53 includes a multiplexer (MUX) 54 and a column twist deinterleaver 55, and deinterleaves the code bits of the LDPC code from the demapping unit 52.
  • MUX multiplexer
  • MUX column twist deinterleaver
  • the multiplexer 54 is replaced by a reverse replacement process (reverse process of the replacement process) corresponding to the replacement process performed by the demultiplexer 25 in FIG. 8, that is, the replacement process, for the LDPC code from the demapping unit 52. Then, a reverse permutation process is performed to return the position of the code bit to the original position, and the resulting LDPC code is supplied to the column twist deinterleaver 55.
  • a reverse replacement process reverse process of the replacement process
  • the column twist deinterleaver 55 applies column twist deinterleave corresponding to the column twist interleave as the rearrangement process performed by the column twist interleaver 24 of FIG. 8 for the LDPC code from the multiplexer 54 (the reverse of column twist interleave). Processing), that is, column twist deinterleaving, for example, as reverse rearrangement processing for returning the code bits of LDPC codes whose rearrangement has been changed by column twist interleaving as rearrangement processing.
  • the column twist deinterleaver 55 writes the code bits of the LDPC code to the deinterleave memory configured similarly to the memory 31 shown in FIG. Perform column twist deinterleaving.
  • writing of the sign bit is performed in the row direction of the memory for deinterleaving, using the read address when reading the sign bit from the memory 31 as the write address.
  • the sign bit is read out in the column direction of the deinterleave memory using the write address at the time of writing the sign bit to the memory 31 as the read address.
  • the LDPC code obtained as a result of column twist deinterleaving is supplied from the column twist deinterleaver 55 to the LDPC decoding unit 56.
  • the LDPC code supplied from the demapping unit 52 to the deinterleaver 53 is subjected to parity interleaving, column twist interleaving, and permutation processing in that order. Only the reverse permutation processing corresponding to the processing and the column twist deinterleaving corresponding to the column twist interleaving are performed, and therefore the parity deinterleaving corresponding to the parity interleaving (reverse processing of the parity interleaving), that is, the parity interleaving is performed. Parity deinterleaving is not performed to return the code bits of the changed LDPC code to the original order.
  • the deinterleaver 53 column twist deinterleaver 55
  • the LDPC decoding unit 56 the LDPC code subjected to the reverse permutation process and the column twist deinterleave and not subjected to the parity deinterleave. Is supplied.
  • the LDPC decoding unit 56 performs LDPC decoding of the LDPC code from the deinterleaver 53, and performs at least column replacement corresponding to parity interleaving on the parity check matrix H used by the LDPC encoding unit 21 of FIG. This is performed using the conversion check matrix obtained, and data obtained as a result is output as a decoding result of the target data.
  • FIG. 30 is a flowchart illustrating a reception process performed by the reception device 12 of FIG.
  • step S111 the quadrature demodulator 51 receives the modulated signal from the transmitter 11, and the process proceeds to step S112 to perform quadrature demodulation of the modulated signal.
  • the orthogonal demodulation unit 51 supplies the symbol obtained as a result of the orthogonal demodulation to the demapping unit 52, and the process proceeds from step S112 to step S113.
  • step S113 the demapping unit 52 performs demapping to convert the symbols from the orthogonal demodulation unit 51 into code bits of the LDPC code, and supplies them to the deinterleaver 53, and the process proceeds to step S114.
  • step S114 the deinterleaver 53 deinterleaves the code bits of the LDPC code from the demapping unit 52, and the process proceeds to step S115.
  • step S114 in the deinterleaver 53, the multiplexer 54 performs reverse replacement processing on the LDPC code from the demapping unit 52, and supplies the resulting LDPC code to the column twist deinterleaver 55. To do.
  • the column twist deinterleaver 55 performs column twist deinterleaving on the LDPC code from the multiplexer 54 and supplies the resulting LDPC code to the LDPC decoding unit 56.
  • step S115 the LDPC decoding unit 56 performs LDPC decoding of the LDPC code from the column twist deinterleaver 55, and performs parity interleaving on the parity check matrix H used by the LDPC encoding unit 21 of FIG. 8 for LDPC encoding.
  • the conversion check matrix obtained by performing at least the corresponding column replacement is performed, the data obtained as a result is output as the decoding result of the target data, and the process ends.
  • the multiplexer 54 that performs reverse permutation processing and the column twist deinterleaver 55 that performs column twist deinterleaving are configured separately.
  • the multiplexer 54 and the column twist deinterleaver 55 can be configured integrally.
  • the column twist deinterleaver 55 does not need to be provided in the reception device 12 in FIG.
  • LDPC decoding unit 56 of FIG. 29 as described above, the reverse permutation process and the column twist deinterleave from the column twist deinterleaver 55 are performed, and the LDPC code for which the parity deinterleave is not performed is performed.
  • LDPC decoding is performed using a transform parity check matrix obtained by performing at least column replacement corresponding to parity interleaving on the parity check matrix H used by the LDPC encoding unit 21 of FIG. 8 for LDPC encoding.
  • FIG. 31 shows an example of a parity check matrix H of an LDPC code having a code length N of 90 and a coding rate of 2/3.
  • 0 is represented by a period (.).
  • the parity matrix has a staircase structure.
  • FIG. 32 shows a parity check matrix H ′ obtained by subjecting the parity check matrix H of FIG. 31 to row replacement of equation (8) and column replacement of equation (9).
  • s, t, x, y are integers in the range of 0 ⁇ s ⁇ 5, 0 ⁇ t ⁇ 6, 0 ⁇ x ⁇ 5, 0 ⁇ t ⁇ 6, respectively. It is.
  • the first, seventh, thirteenth, nineteenth, and twenty-fifth rows that divide by six and have a remainder of 1, the first, second, third, fourth, and fifth rows respectively,
  • the second, eighth, eighth, ninth, and tenth lines that are divided by the remainder of 2 are replaced with the sixth, seventh, eighth, ninth, and tenth lines, respectively.
  • the 61st, 61st, 73th, 79th, and 85th columns with the remainder of 1 divided by 6 with respect to the 61st and subsequent columns are respectively 61 , 62, 63, 64, and 65, the 62, 68, 74, 80, and 86 columns, which are divided by 6 and have a remainder of 2, are called 66, 67, 68, 69, and 70 columns, respectively.
  • the replacement is performed accordingly.
  • the matrix obtained by performing row and column replacement on the parity check matrix H in FIG. 31 is the parity check matrix H ′ in FIG.
  • the column replacement of equation (9) is the above-described information length K of parity interleaving for interleaving the K + qx + y + 1-th code bit at the position of the K + Py + x + 1-th code bit.
  • the parity check matrix H ′ in FIG. 32 (hereinafter referred to as a permutation parity check matrix as appropriate), the LDPC code of the parity check matrix in FIG. When multiplied by the permuted one, a zero vector is output. That is, if the row vector obtained by performing column substitution of Equation (9) on the row vector c as the LDPC code (one codeword) of the original check matrix H is expressed as c ′, the property of the check matrix , Hc T is a 0 vector, and H'c ' T is naturally a 0 vector.
  • the conversion parity check matrix H ′ in FIG. 32 is the parity check matrix of the LDPC code c ′ obtained by performing the column replacement of the equation (9) on the LDPC code c of the original parity check matrix H.
  • Equation (9) is performed on the LDPC code c of the original parity check matrix H, and the LDPC code c ′ after the column replacement is decoded using the transform parity check matrix H ′ of FIG. 32 (LDPC decoding). Then, by performing inverse permutation of the column permutation of Equation (9) on the decoding result, a decoding result similar to the case of decoding the LDPC code of the original parity check matrix H using the parity check matrix H is obtained. Can do.
  • FIG. 33 shows the conversion parity check matrix H ′ of FIG. 32 with a space in 5 ⁇ 5 matrix units.
  • the transform parity check matrix H ′ is a 5 ⁇ 5 unit matrix, a matrix in which one or more of the unit matrices are 0 (hereinafter referred to as a quasi-unit matrix as appropriate), a unit matrix or a quasi-unit A sum of two or more of a unit matrix, a quasi-unit matrix, or a shift matrix (hereinafter, referred to as sum matrix), 5 It is represented by a combination of ⁇ 5 zero matrices.
  • FIG. 34 is a block diagram illustrating a configuration example of a decoding device that performs such decoding.
  • FIG. 34 performs decoding of an LDPC code using at least the transformed parity check matrix H ′ of FIG. 33 obtained by performing column replacement of equation (9) on the original parity check matrix H of FIG. 2 shows a configuration example of a decoding device.
  • Decoding device in FIG. 34 six FIFO 300 1 to the edge data storage memory 300 consisting of 300 6, FIFO 300 1 to the selector 301 for selecting 300 6, a check node calculation section 302,2 one cyclic shift circuit 303 and 308, 18 FIFOs 304 1 to 304 18 the edge data storage memory 304 consisting of, FIFOs 304 1 to the selector 305 for selecting 304 18, the reception data memory 306 for storing received information, a variable node calculation section 307, a decoded word calculation section 309
  • the branch data storage memory 300 is composed of six FIFOs 300 1 to 300 6 that are numbers obtained by dividing the number of rows 30 of the conversion check matrix H ′ of FIG. 33 by the number of rows 5 of the configuration matrix.
  • the FIFO300 1 the data corresponding to the first position from the first row of the conversion parity check matrix H of FIG. 33 'to the fifth row (messages v i from variable nodes) were packed in each line both in the lateral direction Stored in the form (ignoring 0). That is, if the j-th row and the i-th column are represented as (j, i), the storage area of the first stage of the FIFO 300 1 includes (1, 1) to (5, 5) of the conversion parity check matrix H ′. The data corresponding to the position of 1 in the 5 ⁇ 5 unit matrix is stored.
  • the shift check matrix H '(1,21) to (5,25) shift matrix (shift matrix obtained by cyclically shifting three 5 ⁇ 5 unit matrices to the right by 3)
  • the data corresponding to the 1 position is stored.
  • the third to eighth storage areas store data in association with the conversion parity check matrix H ′.
  • 1 in the first row of the 5 ⁇ 5 unit matrix is replaced with 0 in the shift matrix from (1,86) to (5,90) of the conversion check matrix H ′. Data corresponding to one position of the shift matrix that has been shifted by one to the left.
  • the storage area of the first stage of the FIFO 300 2 has a sum matrix of (6,1) to (10,5) of the conversion check matrix H ′ (5 ⁇ 5 unit matrix cyclically shifted by one to the right)
  • the data corresponding to the position of 1 of the first shift matrix constituting the first shift matrix and the sum matrix which is the sum of the second shift matrix cyclically shifted by two to the right is stored.
  • the second storage area stores data corresponding to position 1 of the second shift matrix constituting the sum matrix of (6,1) to (10,5) of the conversion check matrix H ′.
  • the configuration matrix is a P ⁇ P unit matrix having a weight of 1, a quasi-unit matrix in which one or more of its elements is 0, or a unit
  • the matrix or the quasi-unit matrix is expressed in the form of a plurality of shift matrices obtained by cyclically shifting, the data corresponding to the position of the unit matrix, quasi-unit matrix, or 1 of the shift matrix whose weight is 1 ( Messages corresponding to branches belonging to the unit matrix, the quasi-unit matrix, or the shift matrix are stored in the same address (the same FIFO among the FIFOs 300 1 to 300 6 ).
  • the third to ninth storage areas are also stored in association with the conversion check matrix H ′.
  • the FIFOs 300 3 to 300 6 store data in association with the conversion check matrix H ′.
  • the branch data storage memory 304 is composed of 18 FIFOs 304 1 to 304 18 obtained by dividing the number of columns 90 of the conversion check matrix H ′ by 5 that is the number of columns of the configuration matrix.
  • the FIFO304 1 the data corresponding to the first position from the first row of the conversion parity check matrix H of FIG. 33 'to the fifth column (messages u j from the check nodes) are packed vertically in each column both Stored in the form (ignoring 0). That is, data corresponding to the position of 1 in the 5 ⁇ 5 unit matrix of (1, 1) to (5, 5) of the conversion parity check matrix H ′ is stored in the first-stage storage area of the FIFO 304 1 . .
  • the sum matrix of (6,1) to (10,5) of the conversion check matrix H ′ (the first shift obtained by cyclically shifting one 5 ⁇ 5 unit matrix to the right by one)
  • the data corresponding to the position of 1 of the first shift matrix constituting the matrix and the sum matrix that is the sum of the matrix and the second shift matrix cyclically shifted by two to the right is stored.
  • the third storage area stores data corresponding to position 1 of the second shift matrix constituting the sum matrix of (6,1) to (10,5) of the conversion check matrix H ′.
  • the configuration matrix is a P ⁇ P unit matrix having a weight of 1, a quasi-unit matrix in which one or more of its elements is 0, or a unit
  • the matrix or the quasi-unit matrix is expressed in the form of a plurality of shift matrices obtained by cyclically shifting, the data corresponding to the position of the unit matrix, quasi-unit matrix, or 1 of the shift matrix whose weight is 1 ( unit matrix, quasi unit matrix or message corresponding to the branch belonging to shift matrix) are stored in the same address (same FIFO from among the FIFOs 304 1 to 304 18).
  • data is also stored in the storage areas of the fourth and fifth stages in association with the conversion parity check matrix H ′.
  • the number of stages in the storage area of the FIFO 304 1 is 5, which is the maximum number of 1s (Hamming weights) in the row direction in the first to fifth columns of the conversion parity check matrix H ′.
  • the FIFOs 304 2 and 304 3 store data in association with the conversion parity check matrix H ′, and each has a length (number of stages) of 5.
  • the FIFOs 304 4 to 304 12 store data in association with the conversion check matrix H ′, and each has a length of 3.
  • the FIFOs 304 13 to 304 18 store data in association with the conversion check matrix H ′, and each has a length of 2.
  • the branch data storage memory 300 includes six FIFOs 300 1 to 300 6 , and information (Matrix data) indicating to which row the five message D 311 supplied from the preceding cyclic shift circuit 308 belongs to the conversion check matrix H ′. ) According to D312, the FIFO for storing the data is selected from the FIFOs 300 1 to 300 6 , and the five messages D311 are collectively stored in the selected FIFO in order. Also, the edge data storage memory 300, when reading data, sequentially reads five messages D300 1 from FIFO 300 1, supplied to the next stage of the selector 301. The branch data storage memory 300 reads the messages in order from the FIFOs 300 2 to 300 6 after reading the messages from the FIFO 300 1 and supplies them to the selector 301.
  • the selector 301 selects five messages from the FIFO from which the current data is read out of the FIFOs 300 1 to 300 6 according to the select signal D301, and supplies the selected message to the check node calculation unit 302 as a message D302.
  • Check node calculation section 302, 302 1 five check node calculator to consist 302 5, messages D302 (D302 1 to D302 5) supplied through the selector 301 using (messages v i of the expression (7)), A check node operation is performed according to Equation (7), and five messages D303 (D303 1 to D303 5 ) (message u j in Equation (7)) obtained as a result of the check node operation are supplied to the cyclic shift circuit 303.
  • Cyclic shift circuit 303 the D 303 5 to D 303 1 no 5 messages obtained by the check node calculation section 302, in which the corresponding branch has a number cyclically shifting the underlying matrix in the conversion parity check matrix H ' Based on such information (Matrix data) D305, a cyclic shift is performed, and the result is supplied as message D304 to branch data storage memory 304.
  • the branch data storage memory 304 includes 18 FIFOs 304 1 to 304 18 , and is in accordance with information D 305 indicating which row of the conversion check matrix H ′ the five messages D 304 supplied from the preceding cyclic shift circuit 303 belong to.
  • the FIFO for storing data is selected from the FIFOs 304 1 to 304 18 , and the five messages D 304 are collectively stored in the selected FIFO in order.
  • the edge data storage memory 304 when reading data, sequentially reads five messages D306 1 from FIFOs 304 1, supplied to the next stage of the selector 305.
  • Edge data storage memory 304 after completion of the data read from the FIFOs 304 1, from FIFOs 304 2 to 304 18, sequentially reads out a message, to the selector 305.
  • the selector 305 selects five messages from the FIFO from which the current data is read out of the FIFOs 304 1 to 304 18 in accordance with the select signal D307, and as the message D308, the variable node calculation unit 307 and the decoded word calculation unit 309.
  • the received data rearrangement unit 310 rearranges the LDPC code D313 received through the communication path by performing column replacement of Expression (9), and supplies the rearranged data to the received data memory 306 as received data D314.
  • the reception data memory 306 calculates and stores reception LLRs (log likelihood ratios) from the reception data D314 supplied from the reception data rearrangement unit 310, and collects the reception LLRs by five as reception values D309.
  • the variable node calculation unit 307 and the decoded word calculation unit 309 are supplied.
  • the variable node calculation unit 307 includes five variable node calculators 307 1 to 307 5 , a message D308 (D308 1 to D308 5 ) (message u j in Expression (1)) supplied through the selector 305, and received data. using five reception values supplied from use memory 306 D309 (formula (reception values u 0i 1)), the variable node operation according to equation (1), to the message D310 (D310 1 not obtained as a result of the calculation D310 5 ) (message v i in equation (1)) is supplied to the cyclic shift circuit 308.
  • the cyclic shift circuit 308 determines how many times the messages D310 1 to D310 5 calculated by the variable node calculation unit 307 are cyclically shifted from the original unit matrix in the transformation check matrix H ′. A cyclic shift is performed based on the information, and the result is supplied to the branch data storage memory 300 as a message D311.
  • the LDPC code can be decoded once by performing the above operation once. 34 decodes the LDPC code a predetermined number of times, and then obtains and outputs the final decoding result in the decoded word calculation unit 309 and the decoded data rearrangement unit 311.
  • the decoded word calculation unit 309 includes five decoded word calculators 309 1 to 309 5 , and five messages D308 (D308 1 to D308 5 ) (message u j in Expression (5)) output from the selector 305 and Using the five reception values D309 (the reception value u 0i in equation (5)) supplied from the reception data memory 306, the decoding result (decoding) based on equation (5) is used as the final stage of multiple times of decoding. And the decoded data D315 obtained as a result is supplied to the decoded data rearranging unit 311.
  • the decoded data rearrangement unit 311 rearranges the order of the decoded data D315 supplied from the decoded word calculation unit 309 by performing the column substitution inverse substitution of Equation (9), and obtains the final decoding result. Output as D316.
  • one or both of row permutation and column permutation is applied to the parity check matrix (original parity check matrix), and one or more of the P ⁇ P unit matrix and one of its elements is set to 0.
  • a quasi-unit matrix, a unit matrix or a shift matrix obtained by cyclically shifting a quasi-unit matrix, a unit matrix, a quasi-unit matrix, a sum matrix that is a sum of shift matrices, or a combination of P ⁇ P 0 matrices By converting to a parity check matrix (conversion parity check matrix) that can be represented by a combination of component matrices, it is possible to adopt an architecture that decodes LDPC codes and performs P check node operations and variable node operations simultaneously. Thus, a large number of iterative decoding can be performed while suppressing the operation frequency to a range that can be realized by performing P node operations simultaneously.
  • the LDPC decoding unit 56 constituting the receiving device 12 of FIG. 29 performs LDPC decoding by simultaneously performing P check node operations and P variable node operations as in the decoding device of FIG.
  • the parity check matrix of the LDPC code output from the LDPC encoding unit 21 configuring the transmission apparatus 11 of FIG. 8 is, for example, the parity matrix shown in FIG.
  • the column twist deinterleaver 55 performs the LDPC decoding on which the parity deinterleaving has not been performed, that is, the equation (9).
  • the LDPC code in a state where the column replacement is performed is supplied, and the LDPC decoding unit 56 performs the same processing as that of the decoding device in FIG. 34 except that the column replacement of Expression (9) is not performed.
  • FIG. 35 shows a configuration example of the LDPC decoding unit 56 of FIG.
  • the LDPC decoding unit 56 is configured in the same manner as the decoding device of FIG. 34 except that the received data rearrangement unit 310 of FIG. 34 is not provided, and the column replacement of equation (9) is performed. Except for not being performed, the same processing as that of the decoding device of FIG.
  • the LDPC decoding unit 56 can be configured without providing the received data rearranging unit 310, the scale can be reduced as compared with the decoding device of FIG.
  • the code length N of the LDPC code is 90
  • the information length K is 60
  • the number of columns of the unit of the cyclic structure (the number of rows and the number of columns of the constituent matrix).
  • P is 5
  • the LDPC code is P, which is 360, and the divisor q is M / P.
  • the LDPC decoding unit 56 in FIG. 35 performs P check node operations and variable node operations for such LDPC codes. It can also be applied to LDPC decoding by carrying out simultaneously.
  • FIG. 36 shows another configuration example of the transmission device 11 of FIG.
  • FIG. 36 is common to the case of FIG. 8 in that it includes an LDPC encoding unit 21, a bit interleaver 22, a mapping unit 26, and an orthogonal modulation unit 27.
  • RC unit 501 a rotated constellation unit (hereinafter also referred to as RC unit) 501 is newly provided.
  • the RC unit 501 performs a rotated constellation process (hereinafter also referred to as RC process) on the symbols output from the mapping unit 26, and outputs the resulting symbols to the orthogonal modulation unit 27. .
  • RC process a rotated constellation process
  • the RC processing is described as a modulation diversity technique in, for example, the pamphlet of International Publication No. 05/032021.
  • FIG. 37 shows a configuration example of the RC unit 501 in FIG.
  • the RC unit 501 includes a phase rotation unit 511, an IQ separation unit 512, buffers 513 and 514, an interleaver 515, and a synthesis unit 516.
  • the RC unit 501 performs RC processing on the symbols supplied from the mapping unit 26. Apply.
  • phase rotation unit 511 rotates the phase of the symbol on the IQ plane (the symbol mapped to the signal point on the IQ plane) from the mapping unit 26 (FIG. 36) by a predetermined angle, and rotates the phase.
  • the later symbols (hereinafter also referred to as rotation symbols) are supplied to the IQ separation unit 512.
  • the IQ separation unit 512 separates the I component and the Q component of the rotation symbol from the phase rotation unit 511, supplies the I component to the buffer 513, and supplies the Q component to the buffer 514.
  • the buffer 513 temporarily stores the I component of the rotation symbol from the IQ separation unit 512.
  • the I component stored in the buffer 513 is supplied to the interleaver 515 as necessary.
  • the buffer 514 temporarily stores the Q component of the rotation symbol from the IQ separation unit 512.
  • the Q component stored in the buffer 514 is supplied to the interleaver 515 as necessary.
  • the interleaver 515 performs component interleaving, which is at least one of the I component from the buffer 513 and the Q component from the buffer 514, and combines the I component and the Q component after the component interleaving. To supply.
  • the I component of the rotation symbol of interest (target symbol) is paired with the Q component of another rotation symbol, and the Q component of the target symbol is (further)
  • At least one of the I component from the buffer 513 and the Q component from the buffer 514 is interleaved so as to be paired with the I component of another rotation symbol.
  • the interleaver 515 supplies the I component and the Q component paired by the component interleaving to the synthesis unit 516 as the I component and the Q component after the component interleaving.
  • the combining unit 516 combines the I component and the Q component after the component interleaving from the interleaver 515, and outputs a symbol (hereinafter also referred to as a combined symbol) including the I component and the Q component.
  • the synthesized symbol output from the synthesis unit 516 is supplied to the orthogonal modulation unit 27 (FIG. 36).
  • FIG. 38 shows an arrangement on the IQ plane of signal points SP 1 , SP 2 , SP 3 , SP 4 corresponding to four symbols when QPSK is performed by the orthogonal modulation unit 27 of FIG.
  • a in FIG. 38 shows an arrangement of four signal points of QPSK.
  • the four signal points SP 1 to SP 4 are respectively arranged at the positions of four vertices of a square whose center (center of gravity) is the origin of the IQ plane.
  • the I component of the symbol S 1 and the I component of the symbol S 4 match with the value I +, and the I component of the symbol S 2 and the I component of the symbol S 3 have the value I -Matches with.
  • the Q component of the symbol S 1 and the Q component of the symbol S 2 match with the value Q +, and the Q component of the symbol S 3 and the Q component of the symbol S 4 match with the value Q ⁇ . .
  • the phase rotation unit 511 rotates the phase of the symbol S i on the IQ plane as described above by a predetermined angle (for example, an angle larger than 0 degree and smaller than 45 degrees) (symbol S i). Is rotated around the origin) and is designated as a rotation symbol RS i .
  • FIG. 38 shows the rotation symbol RS i on the IQ plane.
  • I and Q components of the rotating symbol RS 1 (hereinafter also referred to as IQ components) becomes (I 1, Q 1) (at I component I 1, Q component Q 1) Yes.
  • the IQ component is (I i , Q i ).
  • the I component I i is different from the other I component I i ′ (i ⁇ i ′), and the Q component Q i is also different from the other Q component Q i ′. Yes.
  • synthesis section 516 a symbol having I component I i and Q component Q j after component interleaving is output as a synthesis symbol.
  • a synthetic symbol combining unit 516 outputs, using its I component I i and Q component Q j, combined symbol (I i, Q j) When it is expressed as a synthetic symbol (I i, Q j ) I component I i can take four values, and the Q component Q j can also take four values.
  • RC processing when QPSK is performed in the quadrature modulation unit 27, 16QAM Such a modulation is performed in a pseudo manner.
  • C in FIG. 38 indicates a symbol on the IQ plane that can be a combined symbol (I i , Q j ).
  • the I component I i of the composite symbol (I i , Q j ) can take four values I 1 , I 2 , I 3 , and I 4 .
  • the Q component Q j of the composite symbol (I i , Q j ) can take four values Q 1 , Q 2 , Q 3 , and Q 4 .
  • the composite symbol (I i , Q j ) is represented by a combination of four values I 1 to I 4 of the I component I i and four values Q 1 to Q 4 of the Q component Q j (16QAM ) One of 16 symbols.
  • the rotation symbol RS i before the component interleaving from which the composite symbol (I i , Q j ) is obtained has an IQ component of a symbol of (I 1 , Q 1 ), a symbol of (I 2 , Q 2 ), ( It can only be one of the four symbols of the symbol I 3 , Q 3 ) and the symbol (I 4 , Q 4 ).
  • FIG. 39 shows four symbols in time series.
  • a in FIG. 39 shows four time-series rotation symbols SS 1 , SS 2 , SS 3 , SS 4 .
  • the IQ component of SS 1 is (I 1 , Q 1 ), and the IQ component of SS 2 is (I 2 , Q 2 ).
  • the IQ component of SS 3 is (I 3 , Q 3 ), and the IQ component of SS 4 is (I 4 , Q 4 ).
  • the I component is left as it is, and one Q component Q 1 , Q 2 , Q 3 , Q 4 of four time-series rotation symbols SS 1 , SS 2 , SS 3 , SS 4 is provided. with it shifted back (after time) by the interleaving to move the last Q component Q 4 at the beginning (in time the top), and to perform as a component interleaving.
  • FIG. 39B shows four time-series synthesized symbols SS ′ 1 , SS ′ 2 , SS ′ 3 , SS ′ 4 obtained by component interleaving as described above.
  • the I component of the synthesized symbol SS ′ 1 is the I component I 1 of the rotation symbol SS 1
  • the Q component of the synthesized symbol SS ′ 1 is changed to the Q component Q 4 of the rotation symbol SS 4. It has become.
  • the I component of the synthesized symbol SS ′ 2 is the I component I 2 of the rotation symbol SS 2
  • the Q component of the synthesized symbol SS ′ 2 is the Q component Q 1 of the rotation symbol SS 1 .
  • the I component of the synthesized symbol SS ′ 3 is the I component I 3 of the rotation symbol SS 3
  • the Q component of the synthesized symbol SS ′ 3 is the Q component Q 2 of the rotation symbol SS 2 .
  • the I component of the synthesized symbol SS ′ 4 is the I component I 4 of the rotation symbol SS 4
  • the Q component of the synthesized symbol SS ′ 4 is the Q component Q 3 of the rotation symbol SS 3 .
  • FIG. 40 is a diagram for explaining a state in which one composite symbol has disappeared.
  • FIG. 1 For a sequence of symbols in which the third synthesized symbol SS ′ 3 out of the four synthesized symbols SS ′ 1 , SS ′ 2 , SS ′ 3 , SS ′ 4 has disappeared, FIG.
  • deinterleaving (hereinafter also referred to as component deinterleaving) for returning the sorting by the component interleaving described above is performed, rotation symbols SS ′′ 1 , SS ′′ 2 , SS ′′ 3 , SS shown in FIG. '' You can get 4 sequences.
  • B of FIG. 40 is a sequence of four composite symbols SS ′ 1 , SS ′ 2 , SS ′ 3 , SS ′ 4 of A of FIG. 40 (however, the third composite symbol SS ′ 3 is lost).
  • the sequence of rotation symbols SS ′′ 1 , SS ′′ 2 , SS ′′ 3 , SS ′′ 4 obtained by performing component deinterleaving is shown.
  • lost combined symbol SS is not' rotating symbol SS 'restoring the rotating symbol SS 4 in A of FIG. 39 and 4 of the I component I 4, not also disappeared combined symbol SS' 1 Of the Q component Q 4 can be obtained.
  • I component I 2 is not lost combined symbol SS' rotating symbol SS 'restoring the rotating symbol SS 2 in A of FIG. 39 can be obtained from 2
  • Q component Q 2 is , because the synthetic symbol SS '3 has disappeared, it can not be obtained.
  • the rotation symbol RS i has an IQ component of (I 1 , Q 1 ) symbol, (I 2 , Q 2 ) symbol, (I 3 , Q 3 ) symbol, And it can only be one of the four symbols (I 4 , Q 4 ).
  • C in FIG. 40 shows the rotation symbols SS ′′ 1 to SS ′′ 4 restored to the state having the I component and the Q component.
  • the rotation symbol SS ′′ 2 For the rotation symbol SS ′′ 2 for which the I component is obtained but the Q component is not obtained, since the I component has the value I 2 , the Q component can only have the value Q 2 . Therefore, the rotation symbol SS ′′ 2 can be restored to a rotation symbol whose IQ component is (I 2 , Q 2 ).
  • the rotation symbol SS ′′ 3 can be restored to a rotation symbol whose IQ component is (I 3 , Q 3 ).
  • the I component of one rotation symbol SA ′ is paired with the Q component of another rotation symbol SB ′.
  • Component interleaving is performed, and a symbol having I and Q components after component interleaving is output as a synthesized symbol in synthesis section 516.
  • the I component of the rotation symbol SA ′ is the Q of the other one rotation symbol SB ′.
  • Component interleaving is performed so as to make a pair with the component, and when the symbol having the I component and the Q component after the component interleaving is made a composite symbol, it is the same in the code bits mapped to the composite symbol.
  • the multiple b used in the above-described column twist interleaving is an integer value equal to or greater than 2, for example, 2 and how the code bits of the LDPC code are exchanged for each symbol.
  • a replacement method for assigning bits for example, the fourth replacement method described in FIG. 17 is adopted.
  • the multiple b is 2
  • the memory 31 has a storage capacity of N / (mb) ⁇ (mb) bits in the column direction ⁇ row direction, and mb Consists of columns.
  • m represents the number of bits of a code bit that is regarded as one symbol.
  • the number m of code bits of one symbol is 6 bits.
  • the replacement unit 32 performs a replacement process for replacing the position of the sign bit of the mb bits from the memory 31 by the fourth replacement method, and b symbols corresponding to the mb bits obtained as a result, that is, m bits.
  • B symbols where is a symbol.
  • a plurality of b symbols (two in FIG. 17) obtained by the fourth replacement method are converted into b symbols by column twist interleaving performed in the column twist interleaver 24 in the previous stage.
  • the transmission apparatus 11 in FIG. 36 limits the component interleaving performed in the interleaver 515 of the RC unit 501 (FIG. 37) to target b symbols obtained by the fourth replacement method. It is ensured that there is no plurality of code bits corresponding to a plurality of variable nodes connected to the same check node among the code bits mapped to the composite symbol.
  • FIG. 41 is a diagram illustrating component interleaving performed on the b symbols obtained by the fourth replacement method as described above in the interleaver 515 of the RC unit 501 (FIG. 37).
  • FIG. 41A shows four time series SS 1 , SS 2 , SS 3 , SS 4 of rotated symbols obtained by rotating the phase of symbols output in units of two by the fourth switching method. ing.
  • rotating symbol SS 1 and SS 2 is two symbols outputted in the fourth replacement method This is a rotation symbol obtained by rotating each phase. Further, the rotation symbols SS 3 and SS 4 are rotation symbols obtained by rotating the respective phases of the two symbols output subsequently by the fourth exchange method.
  • the IQ component of SS 1 is (I 1 , Q 1 ), and the IQ component of SS 2 is (I 2 , Q 2 ).
  • the IQ component of SS 3 is (I 3 , Q 3 ), and the IQ component of SS 4 is (I 4 , Q 4 ).
  • component interleaving is performed on the two symbols output by the fourth replacement method.
  • the interleaver 515 for example, for the rotation symbols SS 1 and SS 2 obtained from the two symbols output by the fourth exchange method, the I component is left as it is, and the Q component is used as the other rotation symbol. Component interleaving as the Q component is performed.
  • the interleaver 515 for example, for the rotation symbols SS 3 and SS 4 obtained from the two symbols output by the fourth exchange method, the I component is left as it is, and the Q component is used as the other rotation symbol. Component interleaving as the Q component is performed.
  • FIG. 41B shows four time-series synthesized symbols SS ′ 1 , SS ′ 2 , SS ′ 3 , SS ′ 4 obtained by component interleaving in A of FIG.
  • the I component of the synthesized symbol SS ′ 1 is the I component I 1 of the rotation symbol SS 1
  • the Q component of the synthesized symbol SS ′ 1 is changed to the Q component Q 2 of the rotation symbol SS 2. It has become.
  • the I component of the synthesized symbol SS ′ 2 is the I component I 2 of the rotation symbol SS 2
  • the Q component of the synthesized symbol SS ′ 2 is the Q component Q 1 of the rotation symbol SS 1 .
  • the I component of the synthesized symbol SS ′ 3 is the I component I 3 of the rotation symbol SS 3
  • the Q component of the synthesized symbol SS ′ 3 is the Q component Q 4 of the rotation symbol SS 4 .
  • the I component of the synthesized symbol SS ′ 4 is the I component I 4 of the rotation symbol SS 4
  • the Q component of the synthesized symbol SS ′ 4 is the Q component Q 3 of the rotation symbol SS 3 .
  • component interleaving in the interleaver 515 of the RC unit 501 (FIG. 37) that performs RC processing is targeted for b symbols obtained by the fourth replacement method. In this way, it is ensured that there are not a plurality of code bits corresponding to a plurality of variable nodes connected to the same check node among the code bits mapped to the composite symbol. It is possible to improve the decoding performance on a certain communication path.
  • the interleaver 515 performs component interleaving with the I component of the rotation symbol as it is and the Q component as the Q component of other rotation symbols.
  • the component interleaving for example, It is possible to perform interleaving with the Q component of the rotation symbol as it is and the I component as the I component of another rotation symbol.
  • the multiple b is set to 2, but the multiple b can be set to a value of 3 or more.
  • b rotation symbols obtained from b symbols after replacement processing are subject to component interleaving, and only I component is used as I component of other rotation symbols, or Q component Can be used as the Q component of another rotation symbol, the I component can be the I component of another rotation symbol, the Q component can be the Q component of another rotation symbol, and the like.
  • FIG. 42 shows a configuration example of the receiving device 12 of FIG. 7 when the transmitting device 11 is configured as shown in FIG.
  • FIG. 42 is common to the case of FIG. 29 in that it includes an orthogonal demodulation unit 51, a demapping unit 52, a deinterleaver 53, and an LDPC decoding unit 56.
  • a symbol (combined symbol) is supplied from the orthogonal demodulation unit 51 to the inverse RC unit 531.
  • the inverse RC unit 531 performs reverse RC processing, which is the reverse of the RC processing performed by the RC unit 501 in FIG. 36, on the composite symbol from the orthogonal demodulation unit 51, and the original symbol obtained by the inverse RC processing. (A symbol before RC processing is performed by the RC unit 501 in FIG. 36) is obtained and supplied to the demapping unit 52.
  • FIG. 43 shows a configuration example of the reverse RC unit 531 of FIG.
  • the inverse RC unit 531 includes an IQ separation unit 541, buffers 542 and 543, a deinterleaver 544, a synthesis unit 545, and a phase rotation unit 546.
  • the synthesized symbol supplied from the orthogonal demodulation unit 51 is Apply reverse RC processing.
  • the IQ separation unit 541 separates the I component and the Q component of the combined symbol from the orthogonal demodulation unit 51, supplies the I component to the buffer 542, and supplies the Q component to the buffer 543.
  • the buffer 542 temporarily stores the I component of the composite symbol from the IQ separation unit 541.
  • the I component stored in the buffer 542 is supplied to the deinterleaver 544 as necessary.
  • the buffer 543 temporarily stores the Q component of the composite symbol from the IQ separation unit 541.
  • the Q component stored in the buffer 543 is supplied to the deinterleaver 544 as necessary.
  • the deinterleaver 544 performs deinterleaving on the I component from the buffer 542 and the Q component from the buffer 543 to return the component interleaving by the interleaver 515 of FIG. 37, and the I component after the deinterleaving, and The Q component is supplied to the synthesis unit 545.
  • the synthesizing unit 545 restores the rotation symbol by synthesizing the I and Q components after deinterleaving from the deinterleaver 544, and supplies it to the phase rotation unit 546.
  • the synthesis unit 545 restores a rotation symbol having the I or Q component of the synthesized symbol as the I or Q component according to the principle described with reference to FIG. .
  • the phase rotation unit 546 rotates the phase of the rotation symbol from the synthesis unit 545 so that the phase rotation by the phase rotation unit 511 in FIG. 37 is restored, and the symbol after the phase rotation is converted to the demapping unit 52 ( 42).
  • parity interleaving and column twist interleaving as rearrangement processing are performed for the LDPC code defined in DVB-S.2, but the parity interleaving has a parity matrix. If it has a staircase structure, it can be applied to the LDPC code of a check matrix whose information matrix does not have a cyclic structure, and column twist interleaving as a reordering process is, for example, a check that has a pseudo cyclic structure by column replacement.
  • the present invention can also be applied to an LDPC code of a matrix or a QC (Quasi-Cyclic) -LDPC code in which the entire check matrix has a cyclic structure.
  • the parity check matrix of the LDPC code subject to parity interleaving only needs to have a staircase structure, and the information matrix does not need to have a cyclic structure.
  • the structure of the parity check matrix of the LDPC code to be subjected to column twist interleaving as the rearrangement process is not particularly limited.
  • the reordering process only needs to reorder the code bits of the LDPC code so that a plurality of code bits corresponding to 1 in any one row of the parity check matrix are not included in the same symbol.
  • This can be done by methods other than twist interleaving. That is, the rearrangement processing can be performed by controlling the write address and the read address using, for example, a memory that stores data only in one direction instead of the memory 31 that stores data in the column direction and the row direction. It is.
  • the column write start position of the memory 31 in the column twist interleave is not limited to the position described with reference to FIGS.
  • the LDPC code defined in the DVB-S.2 standard and having a code length N of 64800 and having 11 code rates is column twist interleaved.
  • the following values can be adopted as the required number of columns of the memory 31 and the address of the writing start position.
  • the bit number m of one symbol is 4 bits, and the multiple b is 2.
  • the memory 31 has 8 columns for storing 4 ⁇ 2 bits in the row direction, and stores 64800 / (4 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 1 position
  • the third column The first column write position is the address 2 position
  • the fourth column write start position is the address 34 position
  • the fifth column write start position is the address 34 position.
  • the position where the writing of the sixth column starts is the position where the address is 36
  • the position where the writing start of the seventh column is the position where the address is 39
  • the writing start position of the eighth column is the address There are 39 positions, respectively.
  • the fourth replacement method of FIG. 17 is adopted as the replacement method of the replacement process of the demultiplexer 25 (FIG. 8) and 64QAM is adopted as the modulation method
  • the number of bits m of one symbol is 6 bits and the multiple b is 2.
  • the memory 31 has 12 columns storing 6 ⁇ 2 bits in the row direction, and stores 64800 / (6 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • the third column The start position of the column is the position where the address is 3
  • the start position of the fourth column is the position where the address is 4
  • the start position of the fifth column is the position where the address is 5.
  • the position where the 6th column starts writing is the position where the address is 7, the position where the 7th column starts writing is the position where the address is 9 and the position where the 8th column starts writing is the address.
  • the 9th column write start position is the address 50 position
  • the 10th column write start position is the address 51 position
  • the 11th column write start position is the position where the address is 55 and the 12th column Position of the writing start is set to the position whose address is 55, are respectively.
  • the bit number m of one symbol is It is 8 bits, and the multiple b is 2.
  • the memory 31 has 16 columns storing 8 ⁇ 2 bits in the row direction, and stores 64800 / (8 ⁇ 2) bits in the column direction. Then, the write start position of the first column of the 16 columns of the memory 31 is the position where the address is 0, and the write start position of the second column is the position where the address is 8 and the third position.
  • the first column write position is the address 8 position
  • the fourth column write start position is the address 12 position
  • the fifth column write start position is the address 20 position.
  • the position of the start of writing in the sixth column is the position of address 29, the position of the start of writing in the seventh column is the position of address 29, and the position of the start of writing in the eighth column is the address.
  • Is the position of 41 and the start position of the 9th column is the position of the address 41 and the start position of the 10th column is the position of the address 42 and the start position of the 11th column.
  • the location is the location where the address is 43 and the 12th color
  • the start position of the program is the position of address 91, the start position of the 13th column is the position of address 92, and the start position of the 14th column is the position of address 98.
  • the writing start position of the 15th column is the position where the address is 100, and the writing start position of the 16th column is the position where the address is 102.
  • column twist is used for each of 10 code rate LDPC codes defined in the DVB-S.2 standard and having a code length N of 16200.
  • the following values can be adopted as the number of columns of the memory 31 necessary for interleaving and the address of the writing start position.
  • the bit number m of one symbol is It is 4 bits and the multiple b is 2.
  • the memory 31 has 8 columns for storing 4 ⁇ 2 bits in the row direction, and stores 16200 / (4 ⁇ 2) bits in the column direction.
  • the first writing position of the first column is the position where the address is 0, and the second writing start position is the position where the address is 0 and the third position.
  • the first column write position is the address 0 position
  • the fourth column write start position is the address 1 position
  • the fifth column write start position is the address 7 position.
  • the position of the 6th column at the start of writing is the position where the address is 30, the position of the 7th column at the start of writing is the position of the address 32, and the position of the 8th column is the starting position of the address. There are 44 positions, respectively.
  • the bit number m of one symbol is 6 bits and the multiple b is 2.
  • the memory 31 has 12 columns for storing 6 ⁇ 2 bits in the row direction, and stores 16200 / (6 ⁇ 2) bits in the column direction.
  • the first column write start position is the address 0 position
  • the second column write start position is the address 0 position
  • the third column The start position of the column is the position where the address is 0,
  • the start position of the fourth column is the position where the address is 2
  • the start position of the fifth column is the position where the address is 4.
  • the position where the 6th column starts writing is the position where the address is 10
  • the position where the 7th column starts writing is the position where the address is 10
  • the position where the 8th column starts writing is the address.
  • Is the position of 12 and the start position of the 9th column is the position of the address 20 and the start position of the 10th column is the position of the address 29 and the start position of the 11th column.
  • the position is the position where the address is 31 and the 12th color Position of the writing start is set to the position whose address is 31, are respectively.
  • the interleaver 515 (FIG. 37) Even if rotation for shifting the Q component one by one (hereinafter also referred to as rotation interleaving) is performed as component interleaving for one code length of an LDPC code as described in 39 A plurality of code bits corresponding to a plurality of variable nodes connected to the check node are not set as one symbol.
  • the above-described improved position employs the fourth replacement method and a plurality of variable nodes connected to the same check node when rotation interleaving is performed in the interleaver 515 (FIG. 37).
  • This is a value obtained by the present inventor through a trial and error simulation so that a plurality of code bits corresponding to is not regarded as one symbol.
  • the fourth replacement method when the fourth replacement method is adopted and rotation interleaving is performed in the interleaver 515 (FIG. 37), the above-described improved position is used as the column writing start position in the column twist interleaving.
  • the above-described improved position is used as the column writing start position in the column twist interleaving.
  • the component interleaving performed in the interleaver 515 of the RC unit 501 is not limited to the b symbols obtained by the fourth replacement method, and the rotation interleaving is not limited. Is used, it is guaranteed that a plurality of code bits corresponding to a plurality of variable nodes connected to the same check node are not made one symbol.
  • the DVB-S.2 standard defines two types of LDPC codes with a code length N of 64800 bits and 16200 bits.
  • LDPC codes having a code length N of 64,800 bits eleven coding rates 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4 / 5, 5/6, 8/9, and 9/10 are defined, and for LDPC codes with a code length N of 16200 bits, 10 coding rates 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, and 8/9 are defined (B in FIG. 11).
  • the LDPC encoding unit 21 performs such encoding (error correction encoding) using an LDPC code having a code length N of 64800 bits or 16200 bits for each code length and for each code rate. This is performed according to the prepared check matrix H.
  • FIG. 44 shows a configuration example of the LDPC encoding unit 21 of FIGS. 8 and 36.
  • the LDPC encoding unit 21 includes an encoding processing unit 601 and a storage unit 602.
  • the encoding processing unit 601 includes an encoding rate setting unit 611, an initial value table reading unit 612, a check matrix generation unit 613, an information bit reading unit 614, an encoded parity calculation unit 615, and a control unit 616, and includes an LDPC code.
  • the target data supplied to the conversion unit 21 is subjected to LDPC encoding, and the resulting LDPC code is supplied to the bit interleaver 22 (FIGS. 8 and 36).
  • the coding rate setting unit 611 sets the code length N and coding rate of the LDPC code in accordance with, for example, an operator's operation.
  • the initial value table reading unit 612 reads a parity check matrix initial value table, which will be described later, corresponding to the code length N and the coding rate set by the coding rate setting unit 611 from the storage unit 602.
  • the parity check matrix H is generated by arranging one element of the information matrix H A corresponding to the length N ⁇ parity length M) in the column direction at a period of every 360 columns, and is stored in the storage unit 602.
  • the information bit reading unit 614 reads (extracts) information bits for the information length K from the target data supplied to the LDPC encoding unit 21.
  • the encoded parity calculation unit 615 reads the check matrix H generated by the check matrix generation unit 613 from the storage unit 602, calculates parity bits for the information bits read by the information bit read unit 614 based on a predetermined formula, Generate a word (LDPC code).
  • LDPC code Generate a word
  • the control unit 616 controls each block constituting the encoding processing unit 601.
  • the storage unit 602 stores a plurality of parity check matrix initial value tables and the like corresponding to each of the plurality of coding rates shown in FIG. 11 for two code lengths N of 64800 bits and 16200 bits, respectively. .
  • the storage unit 602 temporarily stores data necessary for the processing of the encoding processing unit 601.
  • FIG. 45 is a flowchart for explaining processing of the LDPC encoder 21 of FIG.
  • step S201 the coding rate setting unit 611 determines (sets) a code length N and a coding rate r for performing LDPC coding.
  • step S202 the initial value table reading unit 612 reads, from the storage unit 602, a predetermined parity check matrix initial value table corresponding to the code length N and the coding rate r determined by the coding rate setting unit 611. .
  • the parity check matrix generation unit 613 uses the parity check matrix initial value table read from the storage unit 602 by the initial value table reading unit 612, and the code length N and the coding rate determined by the coding rate setting unit 611.
  • the parity check matrix H of the LDPC code of r is obtained (generated), supplied to the storage unit 602 and stored.
  • step S205 the encoded parity calculation unit 615 sequentially calculates the parity bits of the codeword c that satisfies Expression (8).
  • c represents a row vector as a code word (LDPC code), and c T represents transposition of the row vector c.
  • the information bit portion is represented by the row vector A and the parity bit portion is represented by the row vector T.
  • the code word c is 648000 bits or 16200 bits.
  • step S206 the control unit 616 determines whether or not to end LDPC encoding. If it is determined in step S206 that the LDPC encoding is not finished, that is, for example, if there is still target data to be LDPC encoded, the process returns to step S201, and thereafter, the processes of steps S201 to S206 are repeated. It is.
  • step S206 If it is determined in step S206 that the LDPC encoding is to be ended, that is, for example, if there is no target data to be LDPC encoded, the LDPC encoding unit 21 ends the process.
  • the parity check matrix initial value table corresponding to each code length N and each coding rate r is prepared, and the LDPC encoding unit 21 uses a predetermined code length N and a predetermined coding rate.
  • LDPC encoding of r is performed using a parity check matrix H generated from a parity check matrix initial value table corresponding to the predetermined code length N and the predetermined coding rate r.
  • the parity check matrix initial value table includes an information matrix H A corresponding to an information length K corresponding to the code length N of the LDPC code (LDPC code defined by the parity check matrix H) and the coding rate r of the parity check matrix H (FIG. 9). ) Is a table that represents the position of one element every 360 columns, and is created in advance for each check matrix H of each code length N and each coding rate r.
  • 46 to 49 show the parity check matrix initial values for the parity check matrix H defined in the DVB-S.2 standard and having the code length of 64,800 bits and the code rate r of 3/5 shown in FIG. Shows the table.
  • FIG. 47 is a diagram following FIG. 46
  • FIG. 48 is a diagram following FIG.
  • FIG. 49 is a diagram following FIG.
  • Check matrix generation section 613 obtains check matrix H using the check matrix initial value table as follows.
  • FIG. 50 shows a method for obtaining the parity check matrix H from the parity check matrix initial value table.
  • parity check matrix initial value table in FIG. 50 is for explaining a method for obtaining the parity check matrix H, and is not an actual parity check matrix initial value table.
  • the parity check matrix initial value table includes 360 columns of positions of one element of the information matrix H A (FIG. 9) corresponding to the information length K corresponding to the code length N of the LDPC code and the coding rate r.
  • the row number of the 1 element in the 1 + 360 ⁇ (i ⁇ 1) column of the parity check matrix H (the row number of the first row of the parity check matrix H is set to 0).
  • Row number are arranged by the number of column weights of the 1 + 360 ⁇ (i ⁇ 1) th column.
  • the number of rows k + 1 in the parity check matrix initial value table differs depending on the information length K.
  • Equation (9) The relationship of Equation (9) is established between the information length K and the number k + 1 of rows in the parity check matrix initial value table.
  • 360 in equation (9) is the number of columns P of the unit of the cyclic structure described in FIG.
  • parity check matrix initial value table of FIG. 50 10 numerical values are arranged from the first line to the 15th line, and 3 numerical values are arranged from the 16th line to the k + 1 line.
  • the column weight of the parity check matrix H obtained from the parity check matrix initial value table of FIG. 50 is 10 from the first column to the 1 + 360 ⁇ (16-1) ⁇ 1 column, and 1 + 360 ⁇
  • the number from the (16-1) th column to the Kth column is 3.
  • the first row of the parity check matrix initial value table in FIG. 50 is 1372, 1492, 2242, 2362, 3502, 3622, 6472, 7912, 8362, and ⁇ 10252.
  • the row numbers of 1372, 1492, 2224, 2362, 3502, 3622, 6472, 7912, 8362, and 10252 indicate that the elements are 1 (and other elements are 0).
  • the parity check matrix initial value table represents the position of one element of the information matrix HA of the parity check matrix H for every 360 columns.
  • the numerical value of the i-th row (i-th from the top) and j-th column (j-th from the left) of the parity check matrix initial value table is represented as h i, j and j items in the w-th column of the parity check matrix H. If the row number of the first element is represented as H wj , the row number H of the first element in the w column, which is a column other than the 1 + 360 ⁇ (i ⁇ 1) column of the parity check matrix H wj can be obtained by Expression (10).
  • mod (x, y) means the remainder of dividing x by y.
  • P is the number of columns in the unit of the cyclic structure described above, and is 360 in the DVB-S.2 standard.
  • the parity check matrix generation unit 613 (FIG. 44) specifies the row number of the 1 element in the 1 + 360 ⁇ (i ⁇ 1) column of the parity check matrix H by using the parity check matrix initial value table.
  • the parity check matrix generation unit 613 calculates the row number H wj of the first element of the w column that is a column other than the 1 + 360 ⁇ (i ⁇ 1) column of the parity check matrix H by the formula ( 10) to generate a parity check matrix H in which the element of the row number obtained as described above is 1.
  • the LDPC encoding unit 21 uses the parity check matrix initial value table defined in the DVB-S.2 standard for LDPC codes having a code length N of 64,800 bits and an encoding rate r of 3/5. Adopting a parity check matrix initial value table for which a different, appropriate parity check matrix H is obtained, and using the parity check matrix H obtained from the parity check matrix initial value table, encoding into a high-performance LDPC code has been started. Yes.
  • the appropriate parity check matrix H is a low E s / N 0 (signal power to noise power ratio per symbol) or E b / N o ( This is a parity check matrix that satisfies a predetermined condition for making BER (Bit Error Rate) smaller when transmitting at a signal power to noise power ratio per bit).
  • a high-performance LDPC code is an LDPC code obtained from an appropriate check matrix H.
  • An appropriate parity check matrix H is obtained, for example, by performing a simulation to measure the BER when a modulated signal of an LDPC code obtained from various parity check matrices satisfying a predetermined condition is transmitted at a low E s / N o .
  • the predetermined conditions that the appropriate check matrix H should satisfy are, for example, that the analysis result obtained by the code performance analysis method called “Density Evolution” is good, There are no loops, no cycle 6 and so on.
  • FIG. 51 shows cycle 4 and cycle 6.
  • the information matrix H A it is known that when one element is dense as in the cycle 4 or the like, the decoding performance of the LDPC code is deteriorated. For this reason, a predetermined check matrix H should satisfy As a condition of the above, it is required that the cycle 4 or the like does not exist.
  • Density evolution is a code analysis method that calculates the expected value of the error probability for the entire LDPC code (ensemble) with a code length N of ⁇ characterized by a degree sequence described later. It is.
  • the noise variance when the noise variance is increased from 0, the expected value of the error probability of a certain ensemble is initially 0, but the noise variance is greater than a certain threshold. Then, it is not 0.
  • the expected value of the error probability is not zero, and the threshold of noise variance (hereinafter also referred to as performance threshold) is compared to determine whether the ensemble performance (appropriateness of the check matrix) is good or bad. Can be decided.
  • performance threshold the threshold of noise variance
  • an LDPC code with good performance can be found among the LDPC codes belonging to the ensemble.
  • the degree sequence ⁇ ⁇ represents the ratio of variable nodes and check nodes having weights of each value to the code length N of the LDPC code.
  • a regular (3,6) LDPC code with a coding rate of 1/2 is a degree in which the weights (column weights) of all variable nodes are 3 and the weights (row weights) of all check nodes are 6. Belongs to an ensemble characterized by a sequence.
  • FIG. 52 shows a Tanner graph of such an ensemble.
  • Each variable node is connected with three edges equal to the column weight, and therefore there are only 3N branches connected to the N variable nodes.
  • each check node is connected with 6 branches equal to the row weight, and therefore there are only 3N branches connected to N / 2 check nodes.
  • the interleaver randomly reorders 3N branches connected to N variable nodes, and reorders each of the rearranged branches into 3N branches connected to N / 2 check nodes. Connect to one of them.
  • the interleaver through which the branch connected to the variable node and the branch connected to the check node pass is divided into multiple (multi edge), which makes it possible to further characterize the ensemble. Strictly done.
  • FIG. 53 shows an example of a multi-edge type ensemble Tanner graph.
  • interleavers 53 there are two interleavers, a first interleaver and a second interleaver.
  • the Tanner graph of FIG. 53 there are two branches connected to the first interleaver, only 0 check nodes with 0 branches connected to the second interleaver, and two branches connected to the first interleaver.
  • the number of branches connected to the second interleaver is c2 check nodes, the number of branches connected to the first interleaver is 0, and the number of branches connected to the second interleaver is c3. Exists.
  • v1 is 21/63
  • v2 is 7/63
  • v3 is 35/63
  • c1 is 21/63
  • c2 is 7/63
  • c3 will be 21/63 respectively.
  • the interleaver uses the first interleaver and the second interleaver as in FIG. Two were adopted.
  • the number of variable nodes is 12/28 branches connected to the first interleaver and the number of variable nodes is 28/180 connected to the second interleaver.
  • the number of variable nodes with 3 branches and 0 branches connected to the 2nd interleaver is 80/180, 0 branches connected to the 1st interleaver, and 2 branches connected to the 2nd interleaver
  • Each node is 72/180, and there are 8 branches connected to the first interleaver, and the number of check nodes including 2 branches connected to the second interleaver is 72/180.
  • the LDPC code (hereinafter also referred to as the standard code) defined in the DVB-S.2 standard and having a code length N of 64800 and a coding rate r of 3/5 E b / N 0 as a performance threshold is 1.0464 [dB], and when E b / N 0 reaches this performance threshold (above), the BER begins to drop (becomes smaller).
  • E b / N 0 as a performance threshold is smaller than 1.0464 [dB] in the case of a standard code is found by multi-edge type density evolution, and QPSK or LDPC codes that reduce the BER in a plurality of modulation schemes such as 16QAM, 64QAM, and 256QAM were selected as high-performance LDPC codes.
  • FIG. 55 is a diagram following FIG. 54
  • FIG. 56 is a diagram following FIG.
  • FIG. 57 is a diagram following FIG.
  • the row weight is 10, which is constant.
  • the column weights of 12 columns are 10080 columns, 3 columns are 28800 columns, and 2 columns are 25920 columns.
  • cycle 4 and cycle 6 do not exist, cycle 8 has only 63719, and cycle 10 has only 1081.
  • LDPC code one of the LDPC codes with the best performance at present
  • the parity check matrix initial value table is shown.
  • FIG. 59 is a diagram following FIG. 58
  • FIG. 60 is a diagram following FIG.
  • FIG. 61 is a diagram following FIG.
  • the LDPC code of the parity check matrix H obtained from the parity check matrix initial value table of FIGS. 58 to 61 belongs to the same ensemble as the LDPC code of the parity check matrix H obtained from the parity check matrix initial value tables of FIGS.
  • the row weight is 10 and constant as in the case of FIGS.
  • the column weights of 12 columns are 10080 columns, 3 columns are 28800 columns, and 2 columns are 25920 columns.
  • cycle 8 has only 63359
  • cycle 10 has only 1441 respectively.
  • FIG. 62 shows the result of a BER simulation for the LDPC code (hereinafter also referred to as the first proposed code) of the parity check matrix H obtained from the parity check matrix initial value tables of FIGS.
  • FIG. 62 shows the BER (indicated by a broken line in the figure) for the standard code E s / N 0 and the first proposed code for each of the four modulation schemes of QPSK, 16QAM, 64QAM, and 256QAM. It shows the BER against E s / N 0 (indicated by a solid line in the figure).
  • E b / N 0 as a performance threshold standard code 1.0464 [dB]
  • the difference between 0.8819 [dB] is E b / N 0 as a performance threshold for the first proposed codes ensemble About 0.16 [dB]
  • the difference of about 0.16 [dB] appears as the difference between the BER of the standard code and the BER of the first proposed code for QPSK in FIG.
  • 63 to 66 show other LDPC codes having higher performance than other LDPC codes of the parity check matrix H obtained from the parity check matrix initial value tables shown in FIGS. 54 to 57 (other LDPC codes having the best performance at this time). 1) shows a parity check matrix initial value table.
  • FIG. 64 is a diagram following FIG. 63
  • FIG. 65 is a diagram following FIG.
  • FIG. 66 is a diagram subsequent to FIG.
  • the LDPC code (hereinafter also referred to as the second proposed code) of the parity check matrix H obtained from the parity check matrix initial value table belongs to an ensemble different from the first proposed code.
  • parity check matrix H obtained from the parity check matrix initial value table, there are 22680 rows with 10 row weights and 3240 rows with 9 rows. Further, there are column weights of only 9720 columns, 3 columns of 29160 columns, and 2 columns of 25920 columns.
  • cycle 8 includes only 60479
  • cycle 10 includes 4321.
  • FIG. 67 shows a result of BER simulation for the second proposed code.
  • FIG. 67 shows the BER for E s / N 0 of the standard code (indicated by a broken line and a circle in the figure) and the BER for E s / N 0 of the first proposed code (solid line in the figure) for 256QAM. And BER (shown by solid lines and triangles in the figure) for E s / N 0 of the second proposed code.
  • the performance for 256QAM is better with the second proposed code than with the first proposed code. This is because the ensembles to which the first and second proposal codes belong are different.
  • the predetermined condition to be satisfied by the appropriate parity check matrix H can be determined as appropriate from the viewpoints of improving the decoding performance of the LDPC code, facilitating (simplifying) the decoding process of the LDPC code, and the like.
  • FIG. 68 shows a configuration example of an embodiment of a computer in which a program for executing the series of processes described above is installed.
  • the program can be recorded in advance in a hard disk 705 or a ROM 703 as a recording medium built in the computer.
  • the program is stored temporarily on a removable recording medium 711 such as a flexible disk, a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto Optical) disc, a DVD (Digital Versatile Disc), a magnetic disc, or a semiconductor memory. It can be stored permanently (recorded).
  • a removable recording medium 711 can be provided as so-called package software.
  • the program is installed in the computer from the removable recording medium 711 as described above, or transferred from the download site to the computer wirelessly via a digital satellite broadcasting artificial satellite, LAN (Local Area Network),
  • the program can be transferred to a computer via a network such as the Internet.
  • the computer can receive the program transferred in this way by the communication unit 708 and install it in the built-in hard disk 705.
  • the computer has a CPU (Central Processing Unit) 702 built-in.
  • An input / output interface 710 is connected to the CPU 702 via a bus 701, and the CPU 702 operates an input unit 707 including a keyboard, a mouse, a microphone, and the like by the user via the input / output interface 710.
  • a program stored in a ROM (Read Only Memory) 703 is executed accordingly.
  • the CPU 702 may be a program stored in the hard disk 705, a program transferred from a satellite or a network, received by the communication unit 708 and installed in the hard disk 705, or a removable recording medium 711 installed in the drive 709.
  • the program read and installed in the hard disk 705 is loaded into a RAM (Random Access Memory) 704 and executed.
  • the CPU 702 performs processing according to the above-described flowchart or processing performed by the configuration of the above-described block diagram.
  • the CPU 702 outputs the processing result from an output unit 706 configured with an LCD (Liquid Crystal Display), a speaker, or the like via an input / output interface 710, for example, or from a communication unit 708 as necessary. Transmission and further recording on the hard disk 705 are performed.
  • processing steps for describing a program for causing a computer to perform various types of processing do not necessarily have to be processed in time series according to the order described in the flowchart, but in parallel or individually. This includes processing to be executed (for example, parallel processing or processing by an object).
  • the program may be processed by a single computer, or may be processed in a distributed manner by a plurality of computers. Furthermore, the program may be transferred to a remote computer and executed.

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

本発明は、性能の良いLDPC符号を提供することができる符号化装置、及び符号化方法に関する。 符号化処理部601は、例えば、符号長が64800ビットで、符号化率が3/5のLDPC符号による符号化を行う。LDPC符号の検査行列は、その検査行列の、符号長及び符号化率に応じた情報長に対応する情報行列の1の要素の位置を360列ごとに表す検査行列初期値テーブルによって定まる情報行列の1の要素を、列方向に360列ごとの周期で配置して構成される。検査行列初期値テーブルは、DVB-S.2の規格に規定されているものとは異なるものになっている。本発明は、LDPC符号化を行う符号化装置に適用できる。

Description

符号化装置、及び符号化方法
 本発明は、符号化装置、及び符号化方法に関し、特に、例えば、性能の良いLDPC(Low Density Parity Check)符号を提供することができるようにする符号化装置、及び符号化方法に関する。
 LDPC符号は、高い誤り訂正能力を有し、近年では、例えば、欧州で行われているDVB-S.2等の衛星ディジタル放送を含む伝送方式に広く採用され始めている(例えば、非特許文献1を参照)。また、LDPC符号は、次世代の地上ディジタル放送にも採用が検討されている。
 LDPC符号は、近年の研究により、ターボ符号等と同様に、符号長を長くしていくにしたがって、シャノン限界に近い性能が得られることがわかりつつある。また、LDPC符号は、最小距離が符号長に比例するという性質があることから、その特徴として、ブロック誤り確率特性がよく、さらに、ターボ符号等の復号特性において観測される、いわゆるエラーフロア現象が殆ど生じないことも利点として挙げられる。
 以下、このようなLDPC符号について具体的に説明する。なお、LDPC符号は、線形符号であり、必ずしも2元である必要はないが、ここでは、2元であるものとして説明する。
 LDPC符号は、そのLDPC符号を定義する検査行列(parity check matrix)が疎なものであることを最大の特徴とする。ここで、疎な行列とは、行列の要素の"1"の個数が非常に少ない行列(ほとんどの要素が0の行列)である。
 図1は、LDPC符号の検査行列Hの例を示している。
 図1の検査行列Hでは、各列の重み(列重み)("1"の数)(weight)が"3"であり、且つ、各行の重み(行重み)が"6"になっている。
 LDPC符号による符号化(LDPC符号化)では、例えば、検査行列Hに基づいて生成行列Gを生成し、この生成行列Gを2元の情報ビットに対して乗算することで、符号語(LDPC符号)が生成される。
 具体的には、LDPC符号化を行う符号化装置は、まず、検査行列Hの転置行列HTとの間に、式GHT=0が成立する生成行列Gを算出する。ここで、生成行列Gが、K×N行列である場合には、符号化装置は、生成行列Gに対してKビットからなる情報ビットのビット列(ベクトルu)を乗算し、Nビットからなる符号語c(=uG)を生成する。この符号化装置によって生成された符号語(LDPC符号)は、所定の通信路を介して受信側において受信される。
 LDPC符号の復号は、Gallagerが確率復号(Probabilistic Decoding)と称して提案したアルゴリズムであって、バリアブルノード(variable node(メッセージノード(message node)とも呼ばれる))と、チェックノード(check node)とからなる、いわゆるタナーグラフ(Tanner graph)上での確率伝播(belief propagation)によるメッセージ・パッシング・アルゴリズムによって行うことが可能である。ここで、以下、適宜、バリアブルノードとチェックノードを、単に、ノードともいう。
 図2は、LDPC符号の復号の手順を示している。
 なお、以下、適宜、受信側で受信したLDPC符号(1符号語)のi番目の符号ビットの、値の"0"らしさを対数尤度比(log likelihood ratio)で表現した実数値を、受信値u0iという。また、チェックノードから出力されるメッセージをujとし、バリアブルノードから出力されるメッセージをviとする。
 まず、LDPC符号の復号においては、図2に示すように、ステップS11において、LDPC符号が受信され、メッセージ(チェックノードメッセージ)ujが"0"に初期化されるとともに、繰り返し処理のカウンタとしての整数をとる変数kが"0"に初期化され、ステップS12に進む。ステップS12において、LDPC符号を受信して得られる受信値u0iに基づいて、式(1)に示す演算(バリアブルノード演算)を行うことによってメッセージ(バリアブルノードメッセージ)viが求められ、さらに、このメッセージviに基づいて、式(2)に示す演算(チェックノード演算)を行うことによってメッセージujが求められる。
Figure JPOXMLDOC01-appb-M000001
                        ・・・(1)
Figure JPOXMLDOC01-appb-M000002
                        ・・・(2)
 ここで、式(1)と式(2)におけるdvとdcは、それぞれ、検査行列Hの縦方向(列)と横方向(行)の"1"の個数を示す任意に選択可能とされるパラメータであり、例えば、(3,6)符号の場合には、dv=3,dc=6となる。
 なお、式(1)のバリアブルノード演算、及び(2)のチェックノード演算においては、それぞれ、メッセージを出力しようとする枝(edge)(バリアブルノードとチェックノードとを結ぶ線)から入力されたメッセージを、演算の対象としないことから、演算の範囲が、1ないしdv-1又は1ないしdc-1となっている。また、式(2)のチェックノード演算は、実際には、2入力v1,v2に対する1出力で定義される式(3)に示す関数R(v1,v2)のテーブルを予め作成しておき、これを式(4)に示すように連続的(再帰的)に用いることによって行われる。
Figure JPOXMLDOC01-appb-M000003
                        ・・・(3)
Figure JPOXMLDOC01-appb-M000004
                        ・・・(4)
 ステップS12では、さらに、変数kが"1"だけインクリメントされ、ステップS13に進む。ステップS13では、変数kが所定の繰り返し復号回数Cよりも大きいか否かが判定される。ステップS13において、変数kがCよりも大きくないと判定された場合、ステップS12に戻り、以下、同様の処理が繰り返される。
 また、ステップS13において、変数kがCよりも大きいと判定された場合、ステップS14に進み、式(5)に示す演算を行うことによって最終的に出力する復号結果としてのメッセージviが求められて出力され、LDPC符号の復号処理が終了する。
Figure JPOXMLDOC01-appb-M000005
                        ・・・(5)
 ここで、式(5)の演算は、式(1)のバリアブルノード演算とは異なり、バリアブルノードに接続している全ての枝からのメッセージujを用いて行われる。
 図3は、(3,6)LDPC符号(符号化率1/2、符号長12)の検査行列Hの例を示している。
 図3の検査行列Hでは、図1と同様に、列の重みが3に、行の重みが6に、それぞれなっている。
 図4は、図3の検査行列Hのタナーグラフを示している。
 ここで、図4において、"+"で表わされるのが、チェックノードであり、"="で表わされるのが、バリアブルノードである。チェックノードとバリアブルノードは、それぞれ、検査行列Hの行と列に対応する。チェックノードとバリアブルノードとの間の結線は、枝(edge)であり、検査行列の要素の"1"に相当する。
 すなわち、検査行列の第j行第i列の要素が1である場合には、図4において、上からi番目のバリアブルノード("="のノード)と、上からj番目のチェックノード("+"のノード)とが、枝により接続される。枝は、バリアブルノードに対応する符号ビットが、チェックノードに対応する拘束条件を持つことを表す。
 LDPC符号の復号方法であるサムプロダクトアルゴリズム(Sum Product Algorithm)では、バリアブルノード演算とチェックノード演算とが繰り返し行われる。
 図5は、バリアブルノードで行われるバリアブルノード演算を示している。
 バリアブルノードでは、計算しようとしている枝に対応するメッセージviは、バリアブルノードに繋がっている残りの枝からのメッセージu1およびu2と、受信値u0iを用いた式(1)のバリアブルノード演算により求められる。他の枝に対応するメッセージも同様に求められる。
 図6は、チェックノードで行われるチェックノード演算を示している。
 ここで、式(2)のチェックノード演算は、式a×b=exp{ln(|a|)+ln(|b|)}×sign(a)×sign(b)の関係を用いて、式(6)に書き直すことができる。但し、sign(x)は、x≧0のとき1であり、x<0のとき-1である。
Figure JPOXMLDOC01-appb-M000006
                        ・・・(6)
 さらに、x≧0において、関数φ(x)を、式φ(x)=ln(tanh(x/2))と定義すると、式φ-1(x)=2tanh-1(e-x)が成り立つから、式(6)は、式(7)に変形することができる。
Figure JPOXMLDOC01-appb-M000007
                        ・・・(7)
 チェックノードでは、式(2)のチェックノード演算が、式(7)に従って行われる。
 すなわち、チェックノードでは、図6のように、計算しようとしている枝に対応するメッセージujは、チェックノードに繋がっている残りの枝からのメッセージv1,v2,v3,v4,v5を用いた式(7)のチェックノード演算によって求められる。他の枝に対応するメッセージも同様に求められる。
 なお、式(7)の関数φ(x)は、φ(x)=ln((ex+1)/(ex-1))とも表すことができ、x>0において、φ(x)=φ-1(x)である。関数φ(x)およびφ-1(x)をハードウェアに実装する際には、LUT(Look Up Table)を用いて実装される場合があるが、両者共に同一のLUTとなる。
DVB-S.2 : ETSI EN 302 307 V1.1.2 (2006-06)
 ところで、欧州では、LDPC符号を地上ディジタル放送に適用し、DVB-S.2の規格に規定されているLDPC符号と、DVB-Tの規格に規定されている変調方式とを組合せた次世代の地上ディジタル放送の規格であるDVB-T.2の規格の策定がされている。
 しかしながら、DVB-Tの規格の符号長が64800のLDPC符号のうちの、符号化率が3/5のLDPC符号は、他の符号化率のLDPC符号に比較して、性能が劣っている。
 本発明は、このような状況に鑑みてなされたものであり、性能の良いLDPC符号を提供することができるようにするものである。
 本発明の第1の側面は、符号長が64800ビットで、符号化率が3/5のLDPC符号による符号化を行い、前記LDPC符号の検査行列は、その検査行列の、前記符号長、及前記符号化率に応じた情報長に対応する情報行列の1の要素の位置を360列ごとに表す検査行列初期値テーブルによって定まる前記情報行列の1の要素を、列方向に360列ごとの周期で配置して構成され、前記検査行列初期値テーブルは、
 136 2097 9094 9555 9727 10538 14723 15060 16946 19125 20498 21218 
 1381 4057 6656 8648 10100 11445 15870 16487 17328 17769 19927 23106 
 881 1910 2056 10580 10677 11300 13562 13825 16498 17212 18018 21771 
 7105 7336 9089 9129 11111 12284 12802 14838 15952 19102 19581 22732 
 406 2218 2892 7383 11865 15367 17535 18927 20150 20605 20831 20863 
 1649 4467 4545 6374 8542 8872 12151 13579 20765 21073 25062 25475 
 1441 3594 3769 8928 9781 10242 11345 18789 19150 21994 22077 23295 
 2011 2336 3109 6364 7428 9419 12863 12954 14372 14801 23221 23484 
 709 3383 4060 4376 7139 10061 12132 13186 14213 18109 23971 25680 
 1058 6072 8136 8669 13177 16102 16983 17889 19878 19946 24349 25084 
 3852 4604 9328 17131 17920 19926 20690 21690 21967 22878 23223 24014 
 2450 2839 9326 9561 10883 16175 18268 19079 23327 24099 24672 25354 
 3806 4725 7999 8622 12061 12919 15550 17574 20331 23851 24278 25176 
 427 3857 6935 7649 8995 12310 13167 16099 20172 21714 25009 25568 
 32 402 1455 3840 9236 12795 13267 15944 16784 17485 17522 23538 
 4785 4981 5364 6410 6545 7936 8604 11524 11919 14247 17153 17624 
 212 1690 2400 6477 6989 11092 12794 18074 19558 23467 24754 25088 
 983 2693 7535 10928 13184 14400 14836 15540 17734 18665 20873 21923 
 1499 3388 3605 5610 9607 12120 12771 15931 17504 20347 22905 23531 
 1471 2518 2542 3121 3150 7901 9426 18740 20713 20747 22179 23571 
 470 489 4681 9654 10430 12759 13164 14671 15944 16850 20304 25072 
 4623 5407 6974 8592 10520 10823 16682 19229 22563 24424 24883 25476 
 369 804 6672 6695 9829 9881 11174 14586 21663 22762 23164 24268 
 5601 8725 11170 13033 13691 13891 14369 18286 22449 22885 24494 24560 
 779 5795 8704 9425 10460 14103 14680 16650 19259 19810 20000 24928 
 5208 8166 10343 11062 13333 13947 15697 19375 20056 24462 24604 25585 
 1410 2963 4247 4335 14098 15630 17829 20831 21994 24010 24613 25316 
 1385 1809 2611 4382 5157 6378 13948 14681 15682 19357 22129 25049 
 6247 16681 18976 
 22293 23398 24343 
 2632 4956 20467 
 9967 14448 22854 
 3748 9747 11109 
 7858 9793 22408 
 7438 10208 14190 
 13925 17639 19944 
 573 1900 3102 
 1963 13223 22571 
 8867 13229 25850 
 3142 7756 22065 
 4214 15025 18669 
 1974 21138 21644 
 11354 18044 18544 
 1045 13375 20404 
 409 6230 15332 
 1284 7748 22925 
 4357 7844 16149 
 9668 17479 23640 
 155 6248 15541 
 1106 21891 22611 
 4973 9104 15107 
 2835 6866 14134 
 7828 15155 15180 
 19191 20715 24663 
 6089 11745 23536 
 2261 23011 25380 
 987 11540 25790 
 3967 4788 10895 
 7478 9780 16859 
 928 6830 24218 
 1888 4780 17023 
 14353 16436 19299 
 1117 16059 20411 
 7892 12054 25386 
 9663 12916 16754 
 3909 9718 21239 
 7221 20495 25114 
 3353 16613 25510 
 879 969 5849 
 729 6761 24729 
 10845 14248 16013 
 9303 11290 21800 
 11594 15186 17169 
 6849 8962 11679 
 1633 6461 23342 
 1552 3501 4675 
 14155 16896 24174 
 651 6893 10637 
 5346 20076 22444 
 8500 10846 18014 
 5328 9630 18190 
 9266 15499 17198 
 2499 4003 8169 
 8570 14109 15971 
 2165 17600 23649 
 14005 21313 23772 
 10229 22101 25460 
 612 17458 25032 
 1839 8827 10947 
 1614 17076 25277 
 14488 15443 17372 
 4406 6102 19952 
 7938 14722 18648 
 6134 6518 7938 
 2639 3263 10859 
 4132 23574 23904 
 2309 3951 19620 
 2325 17671 23033 
 1381 7905 20256 
 3414 16834 25218 
 4957 11759 19640 
 267 20226 24429 
 7570 9545 17781 
 4714 12210 19364 
 12005 14756 23641 
 11086 18639 19849 
 1035 20633 23419 
 271 4759 17086 
 からなる符号化装置、又は、符号化方法である。
 本発明の第1の側面においては、符号長が64800ビットで、符号化率が3/5のLDPC符号による符号化が行われる。前記LDPC符号の検査行列は、その検査行列の、前記符号長、及前記符号化率に応じた情報長に対応する情報行列の1の要素の位置を360列ごとに表す検査行列初期値テーブルによって定まる前記情報行列の1の要素を、列方向に360列ごとの周期で配置して構成され、前記検査行列初期値テーブルは、
 136 2097 9094 9555 9727 10538 14723 15060 16946 19125 20498 21218 
 1381 4057 6656 8648 10100 11445 15870 16487 17328 17769 19927 23106 
 881 1910 2056 10580 10677 11300 13562 13825 16498 17212 18018 21771 
 7105 7336 9089 9129 11111 12284 12802 14838 15952 19102 19581 22732 
 406 2218 2892 7383 11865 15367 17535 18927 20150 20605 20831 20863 
 1649 4467 4545 6374 8542 8872 12151 13579 20765 21073 25062 25475 
 1441 3594 3769 8928 9781 10242 11345 18789 19150 21994 22077 23295 
 2011 2336 3109 6364 7428 9419 12863 12954 14372 14801 23221 23484 
 709 3383 4060 4376 7139 10061 12132 13186 14213 18109 23971 25680 
 1058 6072 8136 8669 13177 16102 16983 17889 19878 19946 24349 25084 
 3852 4604 9328 17131 17920 19926 20690 21690 21967 22878 23223 24014 
 2450 2839 9326 9561 10883 16175 18268 19079 23327 24099 24672 25354 
 3806 4725 7999 8622 12061 12919 15550 17574 20331 23851 24278 25176 
 427 3857 6935 7649 8995 12310 13167 16099 20172 21714 25009 25568 
 32 402 1455 3840 9236 12795 13267 15944 16784 17485 17522 23538 
 4785 4981 5364 6410 6545 7936 8604 11524 11919 14247 17153 17624 
 212 1690 2400 6477 6989 11092 12794 18074 19558 23467 24754 25088 
 983 2693 7535 10928 13184 14400 14836 15540 17734 18665 20873 21923 
 1499 3388 3605 5610 9607 12120 12771 15931 17504 20347 22905 23531 
 1471 2518 2542 3121 3150 7901 9426 18740 20713 20747 22179 23571 
 470 489 4681 9654 10430 12759 13164 14671 15944 16850 20304 25072 
 4623 5407 6974 8592 10520 10823 16682 19229 22563 24424 24883 25476 
 369 804 6672 6695 9829 9881 11174 14586 21663 22762 23164 24268 
 5601 8725 11170 13033 13691 13891 14369 18286 22449 22885 24494 24560 
 779 5795 8704 9425 10460 14103 14680 16650 19259 19810 20000 24928 
 5208 8166 10343 11062 13333 13947 15697 19375 20056 24462 24604 25585 
 1410 2963 4247 4335 14098 15630 17829 20831 21994 24010 24613 25316 
 1385 1809 2611 4382 5157 6378 13948 14681 15682 19357 22129 25049 
 6247 16681 18976 
 22293 23398 24343 
 2632 4956 20467 
 9967 14448 22854 
 3748 9747 11109 
 7858 9793 22408 
 7438 10208 14190 
 13925 17639 19944 
 573 1900 3102 
 1963 13223 22571 
 8867 13229 25850 
 3142 7756 22065 
 4214 15025 18669 
 1974 21138 21644 
 11354 18044 18544 
 1045 13375 20404 
 409 6230 15332 
 1284 7748 22925 
 4357 7844 16149 
 9668 17479 23640 
 155 6248 15541 
 1106 21891 22611 
 4973 9104 15107 
 2835 6866 14134 
 7828 15155 15180 
 19191 20715 24663 
 6089 11745 23536 
 2261 23011 25380 
 987 11540 25790 
 3967 4788 10895 
 7478 9780 16859 
 928 6830 24218 
 1888 4780 17023 
 14353 16436 19299 
 1117 16059 20411 
 7892 12054 25386 
 9663 12916 16754 
 3909 9718 21239 
 7221 20495 25114 
 3353 16613 25510 
 879 969 5849 
 729 6761 24729 
 10845 14248 16013 
 9303 11290 21800 
 11594 15186 17169 
 6849 8962 11679 
 1633 6461 23342 
 1552 3501 4675 
 14155 16896 24174 
 651 6893 10637 
 5346 20076 22444 
 8500 10846 18014 
 5328 9630 18190 
 9266 15499 17198 
 2499 4003 8169 
 8570 14109 15971 
 2165 17600 23649 
 14005 21313 23772 
 10229 22101 25460 
 612 17458 25032 
 1839 8827 10947 
 1614 17076 25277 
 14488 15443 17372 
 4406 6102 19952 
 7938 14722 18648 
 6134 6518 7938 
 2639 3263 10859 
 4132 23574 23904 
 2309 3951 19620 
 2325 17671 23033 
 1381 7905 20256 
 3414 16834 25218 
 4957 11759 19640 
 267 20226 24429 
 7570 9545 17781 
 4714 12210 19364 
 12005 14756 23641 
 11086 18639 19849 
 1035 20633 23419 
 271 4759 17086 
 からなる。
 本発明の第2の側面は、符号長が64800ビットで、符号化率が3/5のLDPC符号による符号化を行い、前記LDPC符号の検査行列は、その検査行列の、前記符号長、及前記符号化率に応じた情報長に対応する情報行列の1の要素の位置を360列ごとに表す検査行列初期値テーブルによって定まる前記情報行列の1の要素を、列方向に360列ごとの周期で配置して構成され、前記検査行列初期値テーブルは、
 1575 1809 4092 6126 7759 10393 10464 12719 17978 20643 23368 25621 
 113 4035 4776 9792 10722 13013 13388 16734 17295 19396 21099 25016 
 287 2978 4554 5345 11387 12830 13181 13431 15410 16771 23010 25810 
 597 1300 2367 3082 5510 6597 18248 18282 18532 19822 21622 25472 
 3310 6265 6278 7216 14524 20600 20973 21736 21907 22079 23317 25673 
 2386 3485 8018 10102 11309 15124 15383 18288 22716 22832 24990 25326 
 5514 7058 8437 9433 10890 16816 17033 20631 20926 22693 23965 25264 
 2986 5898 7061 10067 10484 10922 10956 11106 13743 16406 19880 22810 
 489 1711 2413 13661 15732 17044 17999 23037 23448 23975 24384 25727 
 920 5683 6159 6443 6627 12971 13623 13867 20623 21974 22258 25371 
 550 2092 4333 5757 9333 10836 13519 19099 21438 22146 22792 23903 
 748 3087 4617 12407 13121 13358 14491 18557 19030 20937 21851 24439 
 5753 7120 8152 9632 11025 15791 16028 21687 23396 24396 25038 25637 
 588 1868 2256 5298 7832 8478 9064 9691 11074 11100 15807 19459 
 3344 3873 14083 16251 17964 18135 18201 19251 23487 24613 25033 25209 
 187 5455 8677 9110 10638 11651 11810 13569 15027 18772 22012 22186 
 1364 1987 4611 8066 8685 11209 13209 17369 20994 25250 25583 25758 
 1061 1524 2345 4772 7259 11248 12994 15156 15413 19153 19749 21199 
 312 3362 5032 5078 7892 12165 13996 16669 21467 22232 24739 24860 
 155 256 7768 9426 9881 10680 11478 12871 17963 19304 22267 22845 
 1094 3806 6653 8829 14766 16089 17304 17676 18025 20326 23325 25582 
 450 3311 3627 4188 8184 14212 15966 16069 16243 20420 24677 24949 
 1359 2877 6559 6720 6830 11647 12184 12604 16542 16791 22247 23916 
 502 2499 3099 9793 10720 13021 13786 18736 21634 21677 22043 23480 
 1356 3429 5265 14275 14931 17489 19140 21541 23597 24002 24265 24855 
 2673 3260 4451 4615 11334 13001 13076 14842 15887 18745 23514 24245 
 253 2920 6538 6673 8504 9844 13005 17367 20471 21195 23049 24231 
 3284 20417 23602 
 5097 7137 9022 
 4963 10784 14569 
 10375 13810 23426 
 7394 17434 20694 
 775 13693 22577 
 999 2763 23870 
 20085 22162 23207 
 5523 15614 20207 
 3288 15846 19273 
 4647 13975 23273 
 5506 5805 17905 
 2421 12022 19523 
 8018 9855 24943 
 3070 9406 14915 
 11611 15956 22382 
 858 3373 12004 
 11846 21041 22894 
 393 2613 14573 
 593 4388 18023 
 4742 7545 13503 
 11108 13281 20952 
 3038 5389 14069 
 10272 10651 25504 
 11553 15499 16144 
 780 10544 22410 
 5334 20106 25570 
 5338 10759 22410 
 1612 5116 25193 
 4686 11267 24696 
 79 8407 14394 
 14077 15613 23465 
 15291 19887 25253 
 2479 12502 22512 
 8888 13346 19317 
 1713 8630 9778 
 9212 13963 19355 
 10721 15476 25812 
 10684 11302 25462 
 6827 7129 21784 
 6890 7170 11884 
 9970 20013 22268 
 4867 11768 22561 
 5755 16057 20952 
 1600 7488 10974 
 7152 19507 20159 
 11274 15649 22227 
 2257 13277 20787 
 17689 23583 24149 
 1668 7547 23702 
 14330 17455 21003 
 2165 8274 25678 
 2662 12434 21736 
 3854 15947 22122 
 14531 17354 21665 
 9674 15014 16352 
 9604 19442 21417 
 18601 21707 24861 
 181 5129 23174 
 2554 11117 15979 
 4350 14110 19039 
 12030 16364 18014 
 7967 16476 25014 
 14987 19199 19397 
 5551 11268 18857 
 1872 8955 12826 
 4006 5279 17389 
 871 5961 21092 
 19259 20534 22368 
 1640 13649 15356 
 2927 10515 23224 
 985 11624 25044 
 896 19716 24186 
 2036 3368 3622 
 2009 12613 17620 
 3022 12131 14948 
 8565 14810 17724 
 10394 11749 13084 
 8207 11785 16492 
 13072 15150 16275 
 192 14361 23349 
 からなる符号化装置、又は、符号化方法である。
 本発明の第2の側面においては、符号長が64800ビットで、符号化率が3/5のLDPC符号による符号化が行われる。前記LDPC符号の検査行列は、その検査行列の、前記符号長、及前記符号化率に応じた情報長に対応する情報行列の1の要素の位置を360列ごとに表す検査行列初期値テーブルによって定まる前記情報行列の1の要素を、列方向に360列ごとの周期で配置して構成され、前記検査行列初期値テーブルは、
 1575 1809 4092 6126 7759 10393 10464 12719 17978 20643 23368 25621 
 113 4035 4776 9792 10722 13013 13388 16734 17295 19396 21099 25016 
 287 2978 4554 5345 11387 12830 13181 13431 15410 16771 23010 25810 
 597 1300 2367 3082 5510 6597 18248 18282 18532 19822 21622 25472 
 3310 6265 6278 7216 14524 20600 20973 21736 21907 22079 23317 25673 
 2386 3485 8018 10102 11309 15124 15383 18288 22716 22832 24990 25326 
 5514 7058 8437 9433 10890 16816 17033 20631 20926 22693 23965 25264 
 2986 5898 7061 10067 10484 10922 10956 11106 13743 16406 19880 22810 
 489 1711 2413 13661 15732 17044 17999 23037 23448 23975 24384 25727 
 920 5683 6159 6443 6627 12971 13623 13867 20623 21974 22258 25371 
 550 2092 4333 5757 9333 10836 13519 19099 21438 22146 22792 23903 
 748 3087 4617 12407 13121 13358 14491 18557 19030 20937 21851 24439 
 5753 7120 8152 9632 11025 15791 16028 21687 23396 24396 25038 25637 
 588 1868 2256 5298 7832 8478 9064 9691 11074 11100 15807 19459 
 3344 3873 14083 16251 17964 18135 18201 19251 23487 24613 25033 25209 
 187 5455 8677 9110 10638 11651 11810 13569 15027 18772 22012 22186 
 1364 1987 4611 8066 8685 11209 13209 17369 20994 25250 25583 25758 
 1061 1524 2345 4772 7259 11248 12994 15156 15413 19153 19749 21199 
 312 3362 5032 5078 7892 12165 13996 16669 21467 22232 24739 24860 
 155 256 7768 9426 9881 10680 11478 12871 17963 19304 22267 22845 
 1094 3806 6653 8829 14766 16089 17304 17676 18025 20326 23325 25582 
 450 3311 3627 4188 8184 14212 15966 16069 16243 20420 24677 24949 
 1359 2877 6559 6720 6830 11647 12184 12604 16542 16791 22247 23916 
 502 2499 3099 9793 10720 13021 13786 18736 21634 21677 22043 23480 
 1356 3429 5265 14275 14931 17489 19140 21541 23597 24002 24265 24855 
 2673 3260 4451 4615 11334 13001 13076 14842 15887 18745 23514 24245 
 253 2920 6538 6673 8504 9844 13005 17367 20471 21195 23049 24231 
 3284 20417 23602 
 5097 7137 9022 
 4963 10784 14569 
 10375 13810 23426 
 7394 17434 20694 
 775 13693 22577 
 999 2763 23870 
 20085 22162 23207 
 5523 15614 20207 
 3288 15846 19273 
 4647 13975 23273 
 5506 5805 17905 
 2421 12022 19523 
 8018 9855 24943 
 3070 9406 14915 
 11611 15956 22382 
 858 3373 12004 
 11846 21041 22894 
 393 2613 14573 
 593 4388 18023 
 4742 7545 13503 
 11108 13281 20952 
 3038 5389 14069 
 10272 10651 25504 
 11553 15499 16144 
 780 10544 22410 
 5334 20106 25570 
 5338 10759 22410 
 1612 5116 25193 
 4686 11267 24696 
 79 8407 14394 
 14077 15613 23465 
 15291 19887 25253 
 2479 12502 22512 
 8888 13346 19317 
 1713 8630 9778 
 9212 13963 19355 
 10721 15476 25812 
 10684 11302 25462 
 6827 7129 21784 
 6890 7170 11884 
 9970 20013 22268 
 4867 11768 22561 
 5755 16057 20952 
 1600 7488 10974 
 7152 19507 20159 
 11274 15649 22227 
 2257 13277 20787 
 17689 23583 24149 
 1668 7547 23702 
 14330 17455 21003 
 2165 8274 25678 
 2662 12434 21736 
 3854 15947 22122 
 14531 17354 21665 
 9674 15014 16352 
 9604 19442 21417 
 18601 21707 24861 
 181 5129 23174 
 2554 11117 15979 
 4350 14110 19039 
 12030 16364 18014 
 7967 16476 25014 
 14987 19199 19397 
 5551 11268 18857 
 1872 8955 12826 
 4006 5279 17389 
 871 5961 21092 
 19259 20534 22368 
 1640 13649 15356 
 2927 10515 23224 
 985 11624 25044 
 896 19716 24186 
 2036 3368 3622 
 2009 12613 17620 
 3022 12131 14948 
 8565 14810 17724 
 10394 11749 13084 
 8207 11785 16492 
 13072 15150 16275 
 192 14361 23349 
 からなる。
 なお、符号化装置は、独立した装置であっても良いし、1個の装置を構成している内部ブロックであっても良い。
 本発明の第1及び第2の側面によれば、性能の良いLDPC符号を提供することができる。
LDPC符号の検査行列Hを説明する図である。 LDPC符号の復号手順を説明するフローチャートである。 LDPC符号の検査行列の例を示す図である。 検査行列のタナーグラフを示す図である。 バリアブルノードを示す図である。 チェックノードを示す図である。 本発明を適用した伝送システムの一実施の形態の構成例を示す図である。 送信装置11の構成例を示すブロック図である。 検査行列を示す図である。 パリティ行列を示す図である。 DVB-S.2の規格に規定されているLDPC符号の検査行列と列重みとを示す図である。 16QAMの信号点配置を示す図である。 64QAMの信号点配置を示す図である。 64QAMの信号点配置を示す図である。 64QAMの信号点配置を示す図である。 デマルチプレクサ25の処理を説明する図である。 デマルチプレクサ25の処理を説明する図である。 LDPC符号の復号についてのタナーグラフを示す図である。 階段構造になっているパリティ行列HTと、そのパリティ行列HTに対応するタナーグラフを示す図である。 パリティインターリーブ後のLDPC符号に対応する検査行列Hのパリティ行列HTを示す図である。 変換検査行列を示す図である。 カラムツイストインターリーバ24の処理を説明する図である。 カラムツイストインターリーブに必要なメモリ31のカラム数と、書き始めの位置のアドレスを示す図である。 カラムツイストインターリーブに必要なメモリ31のカラム数と、書き始めの位置のアドレスを示す図である。 送信処理を説明するフローチャートである。 シミュレーションで採用した通信路のモデルを示す図である。 シミュレーションで得られたエラーレートと、フラッタのドップラ周波数fdとの関係を示す図である。 シミュレーションで得られたエラーレートと、フラッタのドップラ周波数fdとの関係を示す図である。 受信装置12の構成例を示すブロック図である。 受信処理を説明するフローチャートである。 LDPC符号の検査行列の例を示す図である。 検査行列に行置換と列置換を施した行列(変換検査行列)を示す図である。 5×5単位に分割した変換検査行列を示す図である。 ノード演算をP個まとめて行う復号装置の構成例を示すブロック図である。 LDPC復号部56の構成例を示すブロック図である。 送信装置11の他の構成例を示すブロック図である。 RC部501の構成例を示すブロック図である。 RC処理を説明する図である。 時系列の4個のシンボルを示す図である。 合成シンボルが消失した状態を説明する図である。 インターリーバ515で行われる成分インターリーブを説明する図である。 受信装置12の他の構成例を示すブロック図である。 逆RC処理部531の構成例を示すブロック図である。 LDPC符号化部21の構成例を示すブロック図である。 LDPC符号化部21の処理を説明するフローチャートである。 DVB-S.2の規格に規定されている検査行列初期値テーブルを示す図である。 DVB-S.2の規格に規定されている検査行列初期値テーブルを示す図である。 DVB-S.2の規格に規定されている検査行列初期値テーブルを示す図である。 DVB-S.2の規格に規定されている検査行列初期値テーブルを示す図である。 検査行列初期値テーブルから検査行列Hを求める方法を説明する図である。 サイクル4とサイクル6を示す図である。 列重みが3で、行重みが6であるというデグリーシーケンスのアンサンブルのタナーグラフの例を示す図である。 マルチエッジタイプのアンサンブルのタナーグラフの例を示す図である。 性能が、規格符号よりも良いLDPC符号のうちの1つの検査行列初期値テーブルを示す図である。 性能が、規格符号よりも良いLDPC符号のうちの1つの検査行列初期値テーブルを示す図である。 性能が、規格符号よりも良いLDPC符号のうちの1つの検査行列初期値テーブルを示す図である。 性能が、規格符号よりも良いLDPC符号のうちの1つの検査行列初期値テーブルを示す図である。 性能が、規格符号よりも良い第1の提案符号の検査行列初期値テーブルを示す図である。 性能が、規格符号よりも良い第1の提案符号の検査行列初期値テーブルを示す図である。 性能が、規格符号よりも良い第1の提案符号の検査行列初期値テーブルを示す図である。 性能が、規格符号よりも良い第1の提案符号の検査行列初期値テーブルを示す図である。 規格符号、及び第1の提案符号についての、Es/N0とBERとの関係を示す図である。 性能が、規格符号よりも良い第2の提案符号の検査行列初期値テーブルを示す図である。 性能が、規格符号よりも良い第2の提案符号の検査行列初期値テーブルを示す図である。 性能が、規格符号よりも良い第2の提案符号の検査行列初期値テーブルを示す図である。 性能が、規格符号よりも良い第2の提案符号の検査行列初期値テーブルを示す図である。 規格符号、並びに、第1及び第2の提案符号についての、Es/N0とBERとの関係を示す図である。 本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
符号の説明
 11 送信装置, 12 受信装置, 21 LDPC符号化部, 22 ビットインターリーバ, 23 パリティインターリーバ, 24 カラムツイストインターリーバ, 25 デマルチプレクサ, 26 マッピング部, 27 直交変調部, 31 メモリ, 32 入れ替え部, 51 直交復調部, 52 デマッピング部, 53 デインターリーバ, 54 マルチプレクサ, 55 カラムツイストインターリーバ, 56 LDPC復号部, 300 枝データ格納用メモリ, 301 セレクタ, 302 チェックノード計算部, 303 サイクリックシフト回路, 304 枝データ格納用メモリ, 305 セレクタ, 306 受信データ用メモリ, 307 バリアブルノード計算部, 308 サイクリックシフト回路, 309 復号語計算部, 310 受信データ並べ替え部, 311 復号データ並べ替え部, 501 RC部, 511 位相回転部, 512 IQ分離部, 513,514 バッファ, 515 インターリーバ, 516 合成部, 531 逆RC部, 541 IQ分離部, 542,543 バッファ, 544 デインターリーバ, 545 合成部, 546 位相回転部, 601 符号化処理部, 602 記憶部, 611 符号化率設定部, 612 初期値テーブル読み出し部, 613 検査行列生成部, 614 情報ビット読み出し部, 615 符号化パリティ演算部, 616 制御部, 701 バス, 702 CPU,
 703 ROM, 704 RAM, 705 ハードディスク, 706 出力部, 707 入力部, 708 通信部, 709 ドライブ, 710 入出力インタフェース, 711 リムーバブル記録媒体
 図7は、本発明を適用した伝送システム(システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは、問わない)の一実施の形態の構成例を示している。
 図7において、伝送システムは、送信装置11と受信装置12とから構成される。
 送信装置11は、例えば、テレビジョン放送番組の送信を行う、符号化装置等として機能する装置であり、テレビジョン放送番組としての画像データや音声データ等の、送信の対象である対象データをLDPC符号に符号化し、例えば、衛星回線や地上波を介して送信する。
 受信装置12は、例えば、テレビジョン放送番組を受信するチューナやテレビジョン受像機であり、送信装置11から送信されてくるLDPC符号を受信し、対象データに復号して出力する。
 ここで、図7の伝送システムで使用されるLDPC符号は、AWGN(Additive White Gaussian Noise)通信路で極めて高い能力を発揮することが知られている。
 しかしながら、地上波で想定される通信路では、バースト(burst)誤りやイレージャ(erasure)を発生することがある。例えば、OFDM(Orthogonal Frequency Division Multiplexing)システムでは、D/U(Desired to Undesired Ratio)が0dB(Undesired=echoのパワーがDesired=メインパスのパワーと等しい)のマルチパス環境において、エコー(echo)(メインパス以外のパス)の遅延(delay)に応じて、特定のシンボルのパワーが0になってしまう(erasure)場合がある。
 また、フラッタ(flutter)(遅延が0でドップラ(dopper)周波数の掛かったechoが加算される通信路)でも、D/Uが0dBである場合には、ドップラ周波数によって、特定の時刻のOFDMのシンボル全体のパワーが0になる(erasure)場合が生じる。
 さらに、図示せぬアンテナから受信装置12までの配線の状況や、電源の不安定性により、バースト誤りが発生することもある。
 一方、LDPC符号の復号においては、検査行列Hの列、ひいては、LDPC符号の符号ビットに対応するバリアブルノードにおいて、前述の図5に示したように、LDPC符号の符号ビット(の受信値u0i)の加算を伴う式(1)のバリアブルノード演算が行われるため、そのバリアブルノード演算に用いられる符号ビットにエラーが生じると、求められるメッセージの精度が低下する。
 そして、LDPC符号の復号では、チェックノードにおいて、そのチェックノードに繋がっているバリアブルノードで求められるメッセージを用いて、式(7)のチェックノード演算が行われるため、繋がっている複数のバリアブルノード(に対応するLDPC符号の符号ビット)が同時にエラー(イレージャを含む)となるチェックノードの数が多くなると、復号の性能が劣化する。
 すなわち、例えば、チェックノードは、そのチェックノードに繋がっているバリアブルノードの2個以上が同時にイレージャになると、全バリアブルノードに、値が0である確率と1である確率とが等確率のメッセージを戻す。この場合、等確率のメッセージを戻すチェックノードは、1回の復号処理(1セットのバリアブルノード演算及びチェックノード演算)に寄与しないこととなり、その結果、復号処理の繰り返し回数を多く必要とすることになって、復号の性能が劣化し、さらに、LDPC符号の復号を行う受信装置12の消費電力が増大する。
 そこで、図7の伝送システムでは、AWGN通信路での性能を維持しつつ、バースト誤りやイレージャへの耐性を向上させるようになっている。
 図8は、図7の送信装置11の構成例を示している。
 図8において、送信装置11は、LDPC符号化部21、ビットインターリーバ22、マッピング部26、及び直交変調部27から構成される。
 LDPC符号化部21には、対象データが供給される。
 LDPC符号化部21は、そこに供給される対象データについて、LDPC符号のパリティビットに対応する部分であるパリティ行列が階段構造になっている検査行列に従ったLDPC符号化を行い、対象データを情報ビットとするLDPC符号を出力する。
 すなわち、LDPC符号化部21は、対象データを、例えば、DVB-S.2の規格に規定されているLDPC符号に符号化するLDPC符号化を行い、その結果得られるLDPC符号を出力する。
 ここで、DVB-S.2の規格に規定されているLDPC符号は、IRA(Irregular Repeat Accumulate)符号であり、そのLDPC符号の検査行列におけるパリティ行列は、階段構造になっている。パリティ行列、及び、階段構造については、後述する。また、IRA符号については、例えば、"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, Sept. 2000に記載されている。
 LDPC符号化部21が出力するLDPC符号は、ビットインターリーバ22に供給される。
 ビットインターリーバ22は、データをインターリーブするデータ処理装置であり、パリティインターリーバ(parity interleaver)23、カラムツイストインターリーバ(column twist interleaver)24、及びデマルチプレクサ(DEMUX)25から構成される。
 パリティインターリーバ23は、LDPC符号化部21からのLDPC符号のパリティビットを、他のパリティビットの位置にインターリーブするパリティインターリーブを行い、そのパリティインターリーブ後のLDPC符号を、カラムツイストインターリーバ24に供給する。
 カラムツイストインターリーバ24は、パリティインターリーバ23からのLDPC符号について、カラムツイストインターリーブを行い、そのカラムツイストインターリーブ後のLDPC符号を、デマルチプレクサ25に供給する。
 すなわち、LDPC符号は、後述するマッピング部26において、そのLDPC符号の2ビット以上の符号ビットを、直交変調の1つのシンボルにマッピングして送信される。
 カラムツイストインターリーバ24では、LDPC符号化部21で用いられる検査行列の任意の1行にある1に対応するLDPC符号の複数の符号ビットが、1つのシンボルにマッピングされないように、パリティインターリーバ23からのLDPC符号の符号ビットを並び替える並び替え処理として、例えば、後述するようなカラムツイストインターリーブが行われる。
 デマルチプレクサ25は、カラムツイストインターリーバ24からのLDPC符号について、シンボルにマッピングされるLDPC符号の2以上の符号ビットの位置を入れ替える入れ替え処理を行うことで、AWGNに対する耐性を強化したLDPC符号を得て、マッピング部26に供給する。
 マッピング部26は、デマルチプレクサ25からのLDPC符号の2ビット以上の符号ビットを、直交変調部27で行われる直交変調(多値変調)の変調方式で定める各信号点にマッピングする。
 すなわち、マッピング部26は、デマルチプレクサ25からのLDPC符号を、搬送波と同相のI成分を表すI軸と、搬送波と直交するQ成分を表すQ軸とで規定されるIQ平面(IQコンスタレーション)上の、変調方式で定める信号点が表すシンボル(シンボル値)にシンボル化する。
 ここで、直交変調部27で行われる直交変調の変調方式としては、例えば、DVB-Tの規格に規定されている変調方式を含む変調方式、すなわち、例えば、QPSK(Quadrature Phase Shift Keying)や、16QAM(Quadrature Amplitude Modulation),64QAM,256QAM,1024QAM,4096QAM等がある。直交変調部27において、いずれの変調方式による直交変調が行われるかは、例えば、送信装置11のオペレータの操作に従って、あらかじめ設定される。なお、直交変調部27では、その他、例えば、4PAM(Pulse Amplitude Modulation)その他の直交変調を行うことが可能である。
 マッピング部26で得られたシンボルは、直交変調部27に供給される。
 直交変調部27は、マッピング部26からのシンボルに従い、搬送波の直交変調を行い、その結果得られる変調信号を送信する。
 次に、図9は、図8のLDPC符号化部21でLDPC符号化に用いられる検査行列Hを示している。
 検査行列Hは、LDGM(Low-Density Generation Matrix )構造になっており、LDPC符号の符号ビットのうちの、情報ビットに対応する部分の情報行列HAと、パリティビットに対応するパリティ行列HTとによって、式H=[HA|HT](情報行列HAの要素を左側の要素とし、パリティ行列HTの要素を右側の要素とする行列)で表すことができる。
 ここで、1個のLDPC符号(1符号語)の符号ビットのうちの情報ビットのビット数と、パリティビットのビット数を、それぞれ、情報長Kと、パリティ長Mというとともに、1個のLDPC符号の符号ビットのビット数を、符号長N(=K+M)という。
 ある符号長NのLDPC符号についての情報長Kとパリティ長Mは、符号化率によって決まる。また、検査行列Hは、行×列がM×Nの行列となる。そして、情報行列HAは、M×Kの行列となり、パリティ行列HTは、M×Mの行列となる。
 図10は、DVB-S.2の規格に規定されているLDPC符号の検査行列Hのパリティ行列HTを示している。
 DVB-S.2の規格に規定されているLDPC符号の検査行列Hのパリティ行列HTは、図10に示すように、1の要素が、いわば階段状に並ぶ階段構造になっている。パリティ行列HTの行重みは、1行目については1で、残りの全ての行については2になっている。また、列重みは、最後の1列については1で、残りの全ての列で2になっている。
 以上のように、パリティ行列HTが階段構造になっている検査行列HのLDPC符号は、その検査行列Hを用いて、容易に生成することができる。
 すなわち、LDPC符号(1符号語)を、行ベクトルcで表すとともに、その行ベクトルを転置して得られる列ベクトルを、cTと表す。また、LDPC符号である行ベクトルcのうちの、情報ビットの部分を、行ベクトルAで表すとともに、パリティビットの部分を、行ベクトルTで表すこととする。
 ここで、この場合、行ベクトルcは、情報ビットとしての行ベクトルAと、パリティビットとしての行ベクトルTとによって、式c =[A|T](行ベクトルAの要素を左側の要素とし、行ベクトルTの要素を右側の要素とする行ベクトル)で表すことができる。
 検査行列Hと、LDPC符号としての行ベクトルc=[A|T]とは、式HcT=0を満たす必要があり、かかる式HcT=0を満たす行ベクトルc=[A|T]を構成するパリティビットとしての行ベクトルTは、検査行列H=[HA|HT]のパリティ行列HTが、図10に示した階段構造になっている場合には、式HcT=0における列ベクトルHcTの1行目の要素から順に、各行の要素を0にしていくようにすることで、逐次的に求めることができる。
 図11は、DVB-S.2の規格に規定されているLDPC符号の検査行列Hと、列重みとを示している。
 すなわち、図11のAは、DVB-S.2の規格に規定されているLDPC符号の検査行列Hを示している。
 検査行列Hの1列目からのKX列については、列重みがXに、その後のK3列については、列重みが3に、その後のM-1列については、列重みが2に、最後の1列については、列重みが1に、それぞれなっている。
 ここで、KX+K3+M-1+1は、符号長Nに等しい。
 DVB-S.2の規格において、列数KX,K3、及びM(パリティ長)、並びに、列重みXは、図11のBに示すように規定されている。
 すなわち、図11のBは、DVB-S.2の規格に規定されているLDPC符号の各符号化率についての、列数KX,K3、及びM、並びに、列重みXを示している。
 DVB-S.2の規格では、64800ビットと16200ビットの符号長NのLDPC符号が規定されている。
 そして、図11のBに示すように、符号長Nが64800ビットのLDPC符号については、11個の符号化率(nominal rate)1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5,5/6,8/9、及び9/10が規定されており、符号長Nが16200ビットのLDPC符号については、10個の符号化率1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5,5/6、及び8/9が規定されている。
 LDPC符号については、検査行列Hの列重みが大の列に対応する符号ビットほど、エラーレートが低いことが知られている。
 図11に示した、DVB-S.2の規格に規定されている検査行列Hでは、先頭側(左側)の列ほど、列重みが大の傾向にあり、したがって、その検査行列Hに対応するLDPC符号については、先頭の符号ビットほど、エラーに強く(エラーに対する耐性があり)、終わりの符号ビットほど、エラーに弱い傾向がある。
 図12は、図8の直交変調部27で16QAMが行われる場合の、16個のシンボル(に対応する信号点)のIQ平面上の配置を示している。
 すなわち、図12のAは、16QAMのシンボルを示している。
 16QAMでは、1シンボルは、4ビットを表し、16(=24)個のシンボルが存在する。そして、16個のシンボルは、IQ平面の原点を中心として、I方向×Q方向が4×4の正方形状となるように配置されている。
 いま、16QAMの1シンボルが表す4ビットを最上位ビットから順に、y0,y1,y2,y3と表すこととすると、マッピング部26(図8)では、変調方式が16QAMの場合には、LDPC符号の符号ビットの4ビットは、その4ビットに一致する4ビットy0ないしy3のシンボルにマッピングされる。
 図12のBは、16QAMのシンボルが表す4ビットy0ないしy3それぞれについてのビット境界を示している。
 ここで、ビットyi(図12では、i=0,1,2,3)についてのビット境界とは、そのビットyiが0になっているシンボルと、1になっているシンボルとの境界を意味する。
 図12のBに示すように、16QAMのシンボルが表す4ビットy0ないしy3のうちの最上位ビットy0については、IQ平面のQ軸の1箇所だけがビット境界となり、2番目(最上位ビットから2番目)のビットy1については、IQ平面のI軸の1箇所だけがビット境界となる。
 また、3番目のビットy2については、4×4個のシンボルのうちの、左から1列目と2列目との間、及び3列目と4列目との間の2箇所が、ビット境界となる。
 さらに、4番目のビットy3については、4×4個のシンボルのうちの、上から1行目と2行目との間、及び3行目と4行目との間の2箇所が、ビット境界となる。
 シンボルが表すビットyiは、ビット境界から離れているシンボルが多いほど、誤りにくく、ビット境界に近いシンボルが多いほど、誤りやすい。
 いま、誤りにくい(エラーに強い)ビットを、「強いビット」というとともに、誤りやすい(エラーに弱い)ビットを、「弱いビット」ということとすると、16QAMのシンボルが表す4ビットy0ないしy3については、最上位ビットy0、及び2番目のビットy1が強いビットになっており、3番目のビットy2、及び4番目のビットy3が弱いビットになっている。
 図13ないし図15は、図8の直交変調部27で64QAMが行われる場合の、64個のシンボル(に対応する信号点)のIQ平面上の配置を示している。
 64QAMでは、1シンボルは、6ビットを表し、64(=26)個のシンボルが存在する。そして、64個のシンボルは、IQ平面の原点を中心として、I方向×Q方向が8×8の正方形状となるように配置されている。
 いま、64QAMの1シンボルが表す6ビットを最上位ビットから順に、y0,y1,y2,y3,y4,y5と表すこととすると、マッピング部26(図8)では、変調方式が64QAMの場合には、LDPC符号の符号ビットの6ビットは、その6ビットに一致する6ビットy0ないしy5のシンボルにマッピングされる。
 ここで、図13は、64QAMのシンボルが表す6ビットy0ないしy5のうちの、最上位ビットy0と、2番目のビットy1それぞれについてのビット境界を、図14は、3番目のビットy2と、4番目のビットy3それぞれについてのビット境界を、図15は、5番目のビットy4と、6番目のビットy5それぞれについてのビット境界を、それぞれ示している。
 図13に示すように、最上位ビットy0と、2番目のビットy1それぞれについてのビット境界は、1箇所になっている。また、図14に示すように、3番目のビットy2と、4番目のビットy3それぞれについてのビット境界は、2箇所になっており、図15に示すように、5番目のビットy4と、6番目のビットy5それぞれについてのビット境界は、4箇所になっている。
 したがって、64QAMのシンボルが表す6ビットy0ないしy5については、最上位ビットy0、及び2番目のビットy1が、強いビットになっており、3番目のビットy2、及び4番目のビットy3が、その次に強いビットになっている。そして、5番目のビットy4と、6番目のビットy5は、弱いビットになっている。
 図12、さらには、図13ないし図15から、直交変調のシンボルのビットについては、上位ビットが強いビットとなり、下位ビットが弱いビットになる傾向があることが分かる。
 ここで、図11で説明したように、LDPC符号化部21(図8)が出力するLDPC符号については、エラーに強い符号ビットと、エラーに弱い符号ビットがある。
 また、図12ないし図15で説明したように、直交変調部27で行われる直交変調のシンボルのビットについては、強いビットと弱いビットがある。
 したがって、LDPC符号の、エラーに弱い符号ビットを、直交変調のシンボルの、弱いビットに割り当てるマッピングが行われると、全体として、エラーに対する耐性が低下する。
 そこで、LDPC符号の、エラーに弱い符号ビットを、直交変調のシンボルの、強いビットに割り当てるマッピングが行われるように、LDPC符号の符号ビットをインターリーブするインターリーバが提案されている。
 図8のデマルチプレクサ25は、そのインターリーバの処理を行う。
 図16は、図8のデマルチプレクサ25の処理を説明する図である。
 すなわち、図16のAは、デマルチプレクサ25の機能的な構成例を示している。
 デマルチプレクサ25は、メモリ31及び入れ替え部32から構成される。
 メモリ31には、LDPC符号が供給される。
 メモリ31は、ロウ(row)(横)方向にmbビットを記憶するとともに、カラム(column)(縦)方向にN/(mb)ビットを記憶する記憶容量を有し、そこに供給されるLDPC符号の符号ビットを、カラム方向に書き込み、ロウ方向に読み出して、入れ替え部32に供給する。
 ここで、mは、1シンボルにマッピングされるLDPC符号の符号ビットのビット数を表し、bは所定の正の整数で、mを整数倍するのに用いられる倍数である。また、N(=情報長K+パリティ長M)は、上述したように、LDPC符号の符号長を表す。
 図16のAは、変調方式が64QAMである場合のデマルチプレクサ25の構成例を示しており、したがって、1シンボルにマッピングされるLDPC符号の符号ビットのビット数mは、6ビットである。
 また、図16のAでは、倍数bは1になっており、したがって、メモリ31は、カラム方向×ロウ方向がN/(6×1)×(6×1)ビットの記憶容量を有する。
 ここで、メモリ31の、ロウ方向が1ビットの、カラム方向に延びる記憶領域を、以下、適宜、カラムという。図16のAでは、メモリ31は、6(=6×1)個のカラムから構成される。
 デマルチプレクサ25では、LDPC符号の符号ビットを、メモリ31を構成するカラムの上から下方向(カラム方向)に書き込むことが、左から右方向のカラムに向かって行われる。
 そして、符号ビットの書き込みが、最も右のカラムの一番下まで終了すると、メモリ31を構成するすべてのカラムの1行目から、ロウ方向に、6ビット(mbビット)単位で、符号ビットが読み出され、入れ替え部32に供給される。
 入れ替え部32は、メモリ31からの6ビットの符号ビットの位置を入れ替える入れ替え処理を行い、その結果得られる6ビットを、64QAMの1シンボルを表す6ビットy0,y1,y2,y3,y4,y5として出力する。
 すなわち、メモリ31からロウ方向に読み出された6ビットの符号ビットを、最上位ビットから順に、b0,b1,b2,b3,b4,b5と表すこととすると、図11で説明した列重みの関係で、ビットb0の方向にある符号ビットは、エラーに強い符号ビットになっており、ビットb5の方向にある符号ビットは、エラーに弱い符号ビットになっている。
 入れ替え部32では、メモリ31からの6ビットの符号ビットb0ないしb5のうちの、エラーに弱い符号ビットが、64QAMの1シンボルを表す6ビットy0ないしy5のうちの、強いビットに割り当てられるように、メモリ31からの6ビットの符号ビットb0ないしb5の位置を入れ替える入れ替え処理を行う。
 ここで、メモリ31からの6ビットの符号ビットb0ないしb5をどのように入れ替えて、64QAMの1シンボルを表す6ビットy0ないしy5のそれぞれに割り当てるかの入れ替え方式としては、各社から、様々な方式が提案されている。
 図16のBは、第1の入れ替え方式を、図16のCは、第2の入れ替え方式を、図16のDは、第3の入れ替え方式を、それぞれ示している。
 図16のBないし図16のDにおいて(後述する図17においても同様)、ビットbiとyjとを結ぶ線分は、符号ビットbiを、シンボルのビットyjに割り当てる(ビットyjの位置に入れ替える)ことを意味する。
 図16のBの第1の入れ替え方式としては、3種類のうちのいずれか1つを採用することが提案されており、図16のCの第2の入れ替え方式としては、2種類のうちのいずれか1つを採用することが提案されている。
 図16のDの第3の入れ替え方式としては、6種類を順番に選択して用いることが提案されている。
 図17は、変調方式が64QAMであり(したがって、1シンボルにマッピングされるLDPC符号の符号ビットのビット数mは、図16と同様に6ビットである)、かつ、倍数bが2の場合のデマルチプレクサ25の構成例と、第4の入れ替え方式を示している。
 倍数bが2である場合、メモリ31は、カラム方向×ロウ方向がN/(6×2)×(6×2)ビットの記憶容量を有し、12(=6×2)個のカラムから構成される。
 図17のAは、メモリ31へのLDPC符号の書き込み順を示している。
 デマルチプレクサ25では、図16で説明したように、LDPC符号の符号ビットを、メモリ31を構成するカラムの上から下方向(カラム方向)に書き込むことが、左から右方向のカラムに向かって行われる。
 そして、符号ビットの書き込みが、最も右のカラムの一番下まで終了すると、メモリ31を構成するすべてのカラムの1行目から、ロウ方向に、12ビット(mbビット)単位で、符号ビットが読み出され、入れ替え部32に供給される。
 入れ替え部32は、メモリ31からの12ビットの符号ビットの位置を、第4の入れ替え方式で入れ替える入れ替え処理を行い、その結果得られる12ビットを、64QAMの2シンボル(b個のシンボル)を表す12ビット、つまり、64QAMの1シンボルを表す6ビットy0,y1,y2,y3,y4,y5と、次の1シンボルを表す6ビットy0,y1,y2,y3,y4,y5として出力する。
 ここで、図17のBは、図17のAの入れ替え部32による入れ替え処理の第4の入れ替え方式を示している。
 なお、どのような入れ替え方式が最適であるか、つまり、AWGN通信路でのエラーレートを最も良くするかは、LDPC符号の符号化率等によって異なる。
 次に、図18ないし図20を参照して、図8のパリティインターリーバ23によるパリティインターリーブについて説明する。
 図18は、LDPC符号の検査行列のタナーグラフ(の一部)を示している。
 チェックノードは、図18に示すように、そのチェックノードに繋がっているバリアブルノード(に対応する符号ビット)の2個等の複数が同時にイレージャ等のエラーになると、そのチェックノードに繋がっている全バリアブルノードに、値が0である確率と1である確率とが等確率のメッセージを戻す。このため、同一のチェックノードに繋がっている複数のバリアブルノードが同時にイレージャ等になると、復号の性能が劣化する。
 ところで、図8のLDPC符号化部21が出力する、DVB-S.2の規格に規定されているLDPC符号は、IRA符号であり、検査行列Hのパリティ行列HTは、図10に示したように、階段構造になっている。
 図19は、階段構造になっているパリティ行列HTと、そのパリティ行列HTに対応するタナーグラフを示している。
 すなわち、図19のAは、階段構造になっているパリティ行列HTを示しており、図19のBは、図19のAのパリティ行列HTに対応するタナーグラフを示している。
 パリティ行列HTが階段構造になっている場合、そのパリティ行列HTのタナーグラフにおいて、LDPC符号の、パリティ行列HTの値が1になっている要素の列に対応する、隣接する符号ビット(パリティビット)を用いてメッセージが求められるバリアブルノードは、同一のチェックノードに繋がっている。
 したがって、バースト誤りやイレージャ等によって、上述の隣接するパリティビットが同時にエラーとなると、そのエラーとなった複数のパリティビットそれぞれに対応する複数のバリアブルノード(パリティビットを用いてメッセージを求めるバリアブルノード)に繋がっているチェックノードは、値が0である確率と1である確率とが等確率のメッセージを、そのチェックノードに繋がっているバリアブルノードに戻すため、復号の性能が劣化する。そして、バースト長(バーストによってエラーとなるビット数)が大である場合には、復号の性能は、さらに劣化する。
 そこで、パリティインターリーバ23(図8)は、上述した復号の性能の劣化を防止するため、LDPC符号化部21からの、LDPC符号のパリティビットを、他のパリティビットの位置にインターリーブするパリティインターリーブを行う。
 図20は、図8のパリティインターリーバ23が行うパリティインターリーブ後のLDPC符号に対応する検査行列Hのパリティ行列HTを示している。
 ここで、LDPC符号化部21が出力する、DVB-S.2の規格に規定されているLDPC符号に対応する検査行列Hの情報行列HAは、巡回構造になっている。
 巡回構造とは、ある列が、他の列をサイクリックしたものと一致している構造をいい、例えば、P列ごとに、そのP列の各行の1の位置が、そのP列の最初の列を、パリティ長Mを除算して得られる値qに比例する値だけ、列方向にサイクリックシフトした位置になっている構造も含まれる。以下、適宜、巡回構造におけるP列を、巡回構造の単位の列数という。
 LDPC符号化部21が出力する、DVB-S.2の規格に規定されているLDPC符号としては、図11で説明したように、符号長Nが64800ビットと16200ビットとの、2種類のLDPC符号がある。
 いま、符号長Nが64800ビットと16200ビットの2種類のLDPC符号のうちの、符号長Nが64800ビットのLDPC符号に注目すると、その符号長Nが64800ビットのLDPC符号の符号化率は、図11で説明したように、11個ある。
 この11個の符号化率それぞれの、符号長Nが64800ビットのLDPC符号については、いずれについても、DVB-S.2の規格では、巡回構造の単位の列数Pが、パリティ長Mの約数のうちの、1とMを除く約数の1つである360に規定されている。
 また、11個の符号化率それぞれの、符号長Nが64800ビットのLDPC符号については、パリティ長Mは、符号化率によって異なる値qを用いて、式M=q×P=q×360で表される素数以外の値になっている。したがって、値qも、巡回構造の単位の列数Pと同様に、パリティ長Mの約数のうちの、1とMを除く約数の他の1つであり、パリティ長Mを、巡回構造の単位の列数Pで除算することにより得られる(パリティ長Mの約数であるP及びqの積は、パリティ長Mとなる)。
 パリティインターリーバ23は、上述したように、情報長をKとし、また、0以上P未満の整数をxとするとともに、0以上q未満の整数をyとすると、パリティインターリーブとして、LDPC符号化部21からのLDPC符号のK+1ないしK+M(=N)番目の符号ビットであるパリティビットのうちの、K+qx+y+1番目の符号ビットを、K+Py+x+1番目の符号ビットの位置にインターリーブする。
 このようなパリティインターリーブによれば、同一のチェックノードに繋がれるバリアブルノード(に対応するパリティビット)が、巡回構造の単位の列数P、すなわち、ここでは、360ビットだけ離れるので、バースト長が360ビット未満である場合には、同一のチェックノードに繋がっているバリアブルノードの複数が同時にエラーになる事態を避けることができ、その結果、バースト誤りに対する耐性を改善することができる。
 なお、K+qx+y+1番目の符号ビットを、K+Py+x+1番目の符号ビットの位置にインターリーブするパリティインターリーブ後のLDPC符号は、元の検査行列Hの、K+qx+y+1番目の列を、K+Py+x+1番目の列に置換する列置換を行って得られる検査行列(以下、変換検査行列ともいう)のLDPC符号に一致する。
 また、変換検査行列のパリティ行列には、図20に示すように、P列(図20では、360列)を単位とする擬似巡回構造が現れる。
 ここで、擬似巡回構造とは、一部を除く部分が巡回構造になっている構造を意味する。DVB-S.2の規格に規定されているLDPC符号の検査行列に対して、パリティインターリーブに相当する列置換を施して得られる変換検査行列は、その右隅部分の360行×360列の部分(後述するシフト行列)に、1の要素が1つだけ足らず(0の要素になっており)、そのために、(完全な)巡回構造ではなく、擬似巡回構造になっている。
 なお、図20の変換検査行列は、元の検査行列Hに対して、パリティインターリーブに相当する列置換の他、変換検査行列が、後述する構成行列で構成されるようにするための行の置換(行置換)も施された行列になっている。
 次に、図21ないし図24を参照して、図8のカラムツイストインターリーバ24による並び替え処理としてのカラムツイストインターリーブについて説明する。
 図8の送信装置11では、周波数の利用効率の向上のために、上述したように、LDPC符号の符号ビットの2ビット以上を、1個のシンボルとして送信する。すなわち、例えば、符号ビットの2ビットを1個のシンボルとする場合には、変調方式として、例えば、QPSKが用いられ、符号ビットの4ビットを1個のシンボルとする場合には、変調方式として、例えば、16QAMが用いられる。
 このように、符号ビットの2ビット以上を、1個のシンボルとして送信する場合、あるシンボルに、イレージャ等が発生すると、そのシンボルの符号ビットは、すべてエラー(イレージャ)になる。
 したがって、復号の性能を向上させるために、同一のチェックノードに繋がっているバリアブルノード(に対応する符号ビット)の複数が同時にイレージャになる確率を低下させるには、1個のシンボルの符号ビットに対応するバリアブルノードが、同一のチェックノードに繋がることを避ける必要がある。
 一方、上述したように、LDPC符号化部21が出力する、DVB-S.2の規格に規定されているLDPC符号の検査行列Hでは、情報行列HAが巡回構造を有し、パリティ行列HTが階段構造を有している。そして、図20で説明したように、パリティインターリーブ後のLDPC符号の検査行列である変換検査行列では、パリティ行列にも巡回構造(正確には、上述したように、擬似巡回構造)が現れる。
 図21は、変換検査行列を示している。
 すなわち、図21のAは、符号長Nが64800ビットで、符号化率(r)が3/4のLDPC符号の検査行列Hの変換検査行列を示している。
 図21のAでは、変換検査行列において、値が1になっている要素の位置が、点(・)で示されている。
 図21のBは、図21のAの変換検査行列のLDPC符号、つまり、パリティインターリーブ後のLDPC符号を対象として、デマルチプレクサ25(図8)が行う処理を示している。
 図21のBでは、変調方式を16QAMとして、デマルチプレクサ25のメモリ31を構成する4カラムに、パリティインターリーブ後のLDPC符号の符号ビットが、カラム方向に書き込まれている。
 メモリ31を構成する4カラムに、カラム方向に書き込まれた符号ビットは、ロウ方向に、4ビット単位で読み出され、1シンボルとなる。
 この場合、1シンボルとなる4ビットの符号ビットB0,B1,B2,B3は、図21のAの変換後検査行列の、任意の1行にある1に対応する符号ビットとなっていることがあり、この場合、その符号ビットB0,B1,B2,B3それぞれに対応するバリアブルノードは、同一のチェックノードに繋がっている。
 したがって、1シンボルの4ビットの符号ビットB0,B1,B2,B3が、変換後検査行列の任意の1行にある1に対応する符号ビットとなっている場合には、そのシンボルに、イレージャが発生すると、符号ビットB0,B1,B2,B3それぞれに対応するバリアブルノードが繋がっている同一のチェックノードにおいて、適切なメッセージを求めることができず、その結果、復号の性能が劣化する。
 符号化率が3/4以外の符号化率についても、同様に、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、16QAMの1個のシンボルとされることがある。
 そこで、カラムツイストインターリーバ24は、変換検査行列の任意の1行にある1に対応する複数の符号ビットが、1個のシンボルにマッピングされないように、パリティインターリーバ23からのパリティインターリーブ後のLDPC符号の符号ビットをインターリーブするカラムツイストインターリーブを行う。
 図22は、カラムツイストインターリーブを説明する図である。
 すなわち、図22は、デマルチプレクサ25のメモリ31(図16、図17)を示している。
 メモリ31は、図16で説明したように、カラム(縦)方向にmbビットを記憶するとともに、ロウ(横)方向にN/(mb)ビットを記憶する記憶容量を有し、mb個のカラムから構成される。そして、カラムツイストインターリーバ24は、メモリ31に対して、LDPC符号の符号ビットを、カラム方向に書き込み、ロウ方向に読み出すときの書き始めの位置を制御することで、カラムツイストインターリーブを行う。
 すなわち、カラムツイストインターリーバ24では、複数のカラムそれぞれについて、符号ビットの書き込みを開始する書き始めの位置を、適宜変更することで、ロウ方向に読み出される、1シンボルとされる複数の符号ビットが、変換検査行列の任意の1行にある1に対応する符号ビットにならないようにする(検査行列の任意の1行にある1に対応する複数の符号ビットが、同一のシンボルに含まれないように、LDPC符号の符号ビットを並び替える)。
 ここで、図22は、変調方式が16QAMであり、かつ、図16で説明した倍数bが1である場合の、メモリ31の構成例を示している。したがって、1シンボルにマッピングされるLDPC符号の符号ビットのビット数mは、4ビットであり、また、メモリ31は、4(=mb)個のカラムで構成されている。
 カラムツイストインターリーバ24は、(図16のデマルチプレクサ25に代わり)LDPC符号の符号ビットを、メモリ31を構成する4個のカラムの上から下方向(カラム方向)に書き込むことを、左から右方向のカラムに向かって行う。
 そして、符号ビットの書き込みが、最も右のカラムまで終了すると、カラムツイストインターリーバ24は、メモリ31を構成するすべてのカラムの1行目から、ロウ方向に、4ビット(mbビット)単位で、符号ビットを読み出し、カラムツイストインターリーブ後のLDPC符号として、デマルチプレクサ25の入れ替え部32(図16、図17)に出力する。
 但し、カラムツイストインターリーバ24では、各カラムの先頭(一番上)の位置のアドレスを0として、カラム方向の各位置のアドレスを、昇順の整数で表すこととすると、最も左のカラムについては、書き始めの位置を、アドレスが0の位置とし、(左から)2番目のカラムについては、書き始めの位置を、アドレスが2の位置とし、3番目のカラムについては、書き始めの位置を、アドレスが4の位置とし、4番目のカラムについては、書き始めの位置を、アドレスが7の位置とする。
 なお、書き始めの位置が、アドレスが0の位置以外の位置のカラムについては、符号ビットを、最も下の位置まで書き込んだ後は、先頭(アドレスが0の位置)に戻り、書き始めの位置の直前の位置までの書き込みが行われる。そして、その後、次(右)のカラムへの書き込みが行われる。
 以上のようなカラムツイストインターリーブを行うことにより、DVB-S.2の規格に規定されている、符号長Nが64800の全ての符号化率のLDPC符号について、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、16QAMの1個のシンボルとされること(同一のシンボルに含まれること)を回避することができ、その結果、イレージャのある通信路での復号の性能を向上させることができる。
 図23は、DVB-S.2の規格に規定されている、符号長Nが64800の、11個の符号化率それぞれのLDPC符号について、カラムツイストインターリーブに必要なメモリ31のカラム数と、書き始めの位置のアドレスを、変調方式ごとに示している。
 デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図16の第1ないし第3の入れ替え方式のうちのいずれかが採用され、かつ、変調方式として、QPSKが採用される場合、1シンボルのビット数mは、2ビットであり、倍数bは1となる。
 この場合、図23によれば、メモリ31は、ロウ方向に2×1(=mb)ビットを記憶する2個のカラムを有し、カラム方向に64800/(2×1)ビットを記憶する。そして、メモリ31の2個のカラムのうちの1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、それぞれされる。
 また、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、QPSKが採用される場合、1シンボルのビット数mは、2ビットであり、倍数bは2となる。
 この場合、図23によれば、メモリ31は、ロウ方向に2×2ビットを記憶する4個のカラムを有し、カラム方向に64800/(2×2)ビットを記憶する。そして、メモリ31の4個のカラムのうちの1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、3番目のカラムの書き始めの位置は、アドレスが4の位置と、4番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
 さらに、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図16の第1ないし第3の入れ替え方式のうちのいずれかが採用され、かつ、変調方式として、16QAMが採用される場合、1シンボルのビット数mは、4ビットであり、倍数bは1となる。
 この場合、図23によれば、メモリ31は、ロウ方向に4×1ビットを記憶する4個のカラムを有し、カラム方向に64800/(4×1)ビットを記憶する。そして、メモリ31の4個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、3番目のカラムの書き始めの位置は、アドレスが4の位置と、4番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
 また、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、16QAMが採用される場合、1シンボルのビット数mは、4ビットであり、倍数bは2となる。
 この場合、図23によれば、メモリ31は、ロウ方向に4×2ビットを記憶する8個のカラムを有し、カラム方向に64800/(4×2)ビットを記憶する。そして、メモリ31の8個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが4の位置と、5番目のカラムの書き始めの位置は、アドレスが4の位置と、6番目のカラムの書き始めの位置は、アドレスが5の位置と、7番目のカラムの書き始めの位置は、アドレスが7の位置と、8番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
 さらに、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図16の第1ないし第3の入れ替え方式のうちのいずれかが採用され、かつ、変調方式として、64QAMが採用される場合、1シンボルのビット数mは、6ビットであり、倍数bは1となる。
 この場合、図23によれば、メモリ31は、ロウ方向に6×1ビットを記憶する6個のカラムを有し、カラム方向に64800/(6×1)ビットを記憶する。そして、メモリ31の6個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、3番目のカラムの書き始めの位置は、アドレスが5の位置と、4番目のカラムの書き始めの位置は、アドレスが9の位置と、5番目のカラムの書き始めの位置は、アドレスが10の位置と、6番目のカラムの書き始めの位置は、アドレスが13の位置と、それぞれされる。
 また、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、64QAMが採用される場合、1シンボルのビット数mは、6ビットであり、倍数bは2となる。
 この場合、図23によれば、メモリ31は、ロウ方向に6×2ビットを記憶する12個のカラムを有し、カラム方向に64800/(6×2)ビットを記憶する。そして、メモリ31の12個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが3の位置と、6番目のカラムの書き始めの位置は、アドレスが4の位置と、7番目のカラムの書き始めの位置は、アドレスが4の位置と、8番目のカラムの書き始めの位置は、アドレスが5の位置と、9番目のカラムの書き始めの位置は、アドレスが5の位置と、10番目のカラムの書き始めの位置は、アドレスが7の位置と、11番目のカラムの書き始めの位置は、アドレスが8の位置と、12番目のカラムの書き始めの位置は、アドレスが9の位置と、それぞれされる。
 さらに、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図16の第1ないし第3の入れ替え方式のうちのいずれかが採用され、かつ、変調方式として、256QAMが採用される場合、1シンボルのビット数mは、8ビットであり、倍数bは1となる。
 この場合、図23によれば、メモリ31は、ロウ方向に8×1ビットを記憶する8個のカラムを有し、カラム方向に64800/(8×1)ビットを記憶する。そして、メモリ31の8個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが4の位置と、5番目のカラムの書き始めの位置は、アドレスが4の位置と、6番目のカラムの書き始めの位置は、アドレスが5の位置と、7番目のカラムの書き始めの位置は、アドレスが7の位置と、8番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
 また、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、256QAMが採用される場合、1シンボルのビット数mは、8ビットであり、倍数bは2となる。
 この場合、図23によれば、メモリ31は、ロウ方向に8×2ビットを記憶する16個のカラムを有し、カラム方向に64800/(8×2)ビットを記憶する。そして、メモリ31の16個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが2の位置と、6番目のカラムの書き始めの位置は、アドレスが3の位置と、7番目のカラムの書き始めの位置は、アドレスが7の位置と、8番目のカラムの書き始めの位置は、アドレスが15の位置と、9番目のカラムの書き始めの位置は、アドレスが16の位置と、10番目のカラムの書き始めの位置は、アドレスが20の位置と、11番目のカラムの書き始めの位置は、アドレスが22の位置と、12番目のカラムの書き始めの位置は、アドレスが22の位置と、13番目のカラムの書き始めの位置は、アドレスが27の位置と、14番目のカラムの書き始めの位置は、アドレスが27の位置と、15番目のカラムの書き始めの位置は、アドレスが28の位置と、16番目のカラムの書き始めの位置は、アドレスが32の位置と、それぞれされる。
 さらに、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図16の第1ないし第3の入れ替え方式のうちのいずれかが採用され、かつ、変調方式として、1024QAMが採用される場合、1シンボルのビット数mは、10ビットであり、倍数bは1となる。
 この場合、図23によれば、メモリ31は、ロウ方向に10×1ビットを記憶する10個のカラムを有し、カラム方向に64800/(10×1)ビットを記憶する。そして、メモリ31の10個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが3の位置と、3番目のカラムの書き始めの位置は、アドレスが6の位置と、4番目のカラムの書き始めの位置は、アドレスが8の位置と、5番目のカラムの書き始めの位置は、アドレスが11の位置と、6番目のカラムの書き始めの位置は、アドレスが13の位置と、7番目のカラムの書き始めの位置は、アドレスが15の位置と、8番目のカラムの書き始めの位置は、アドレスが17の位置と、9番目のカラムの書き始めの位置は、アドレスが18の位置と、10番目のカラムの書き始めの位置は、アドレスが20の位置と、それぞれされる。
 また、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、1024QAMが採用される場合、1シンボルのビット数mは、10ビットであり、倍数bは2となる。
 この場合、図23によれば、メモリ31は、ロウ方向に10×2ビットを記憶する20個のカラムを有し、カラム方向に64800/(10×2)ビットを記憶する。そして、メモリ31の20個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが1の位置と、3番目のカラムの書き始めの位置は、アドレスが3の位置と、4番目のカラムの書き始めの位置は、アドレスが4の位置と、5番目のカラムの書き始めの位置は、アドレスが5の位置と、6番目のカラムの書き始めの位置は、アドレスが6の位置と、7番目のカラムの書き始めの位置は、アドレスが6の位置と、8番目のカラムの書き始めの位置は、アドレスが9の位置と、9番目のカラムの書き始めの位置は、アドレスが13の位置と、10番目のカラムの書き始めの位置は、アドレスが14の位置と、11番目のカラムの書き始めの位置は、アドレスが14の位置と、12番目のカラムの書き始めの位置は、アドレスが16の位置と、13番目のカラムの書き始めの位置は、アドレスが21の位置と、14番目のカラムの書き始めの位置は、アドレスが21の位置と、15番目のカラムの書き始めの位置は、アドレスが23の位置と、16番目のカラムの書き始めの位置は、アドレスが25の位置と、17番目のカラムの書き始めの位置は、アドレスが25の位置と、18番目のカラムの書き始めの位置は、アドレスが26の位置と、19番目のカラムの書き始めの位置は、アドレスが28の位置と、20番目のカラムの書き始めの位置は、アドレスが30の位置と、それぞれされる。
 さらに、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図16の第1ないし第3の入れ替え方式のうちのいずれかが採用され、かつ、変調方式として、4096QAMが採用される場合、1シンボルのビット数mは、12ビットであり、倍数bは1となる。
 この場合、図23によれば、メモリ31は、ロウ方向に12×1ビットを記憶する12個のカラムを有し、カラム方向に64800/(12×1)ビットを記憶する。そして、メモリ31の12個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが3の位置と、6番目のカラムの書き始めの位置は、アドレスが4の位置と、7番目のカラムの書き始めの位置は、アドレスが4の位置と、8番目のカラムの書き始めの位置は、アドレスが5の位置と、9番目のカラムの書き始めの位置は、アドレスが5の位置と、10番目のカラムの書き始めの位置は、アドレスが7の位置と、11番目のカラムの書き始めの位置は、アドレスが8の位置と、12番目のカラムの書き始めの位置は、アドレスが9の位置と、それぞれされる。
 また、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、4096QAMが採用される場合、1シンボルのビット数mは、12ビットであり、倍数bは2となる。
 この場合、図23によれば、メモリ31は、ロウ方向に12×2ビットを記憶する24個のカラムを有し、カラム方向に64800/(12×2)ビットを記憶する。そして、メモリ31の24個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが5の位置と、3番目のカラムの書き始めの位置は、アドレスが8の位置と、4番目のカラムの書き始めの位置は、アドレスが8の位置と、5番目のカラムの書き始めの位置は、アドレスが8の位置と、6番目のカラムの書き始めの位置は、アドレスが8の位置と、7番目のカラムの書き始めの位置は、アドレスが10の位置と、8番目のカラムの書き始めの位置は、アドレスが10の位置と、9番目のカラムの書き始めの位置は、アドレスが10の位置と、10番目のカラムの書き始めの位置は、アドレスが12の位置と、11番目のカラムの書き始めの位置は、アドレスが13の位置と、12番目のカラムの書き始めの位置は、アドレスが16の位置と、13番目のカラムの書き始めの位置は、アドレスが17の位置と、14番目のカラムの書き始めの位置は、アドレスが19の位置と、15番目のカラムの書き始めの位置は、アドレスが21の位置と、16番目のカラムの書き始めの位置は、アドレスが22の位置と、17番目のカラムの書き始めの位置は、アドレスが23の位置と、18番目のカラムの書き始めの位置は、アドレスが26の位置と、19番目のカラムの書き始めの位置は、アドレスが37の位置と、20番目のカラムの書き始めの位置は、アドレスが39の位置と、21番目のカラムの書き始めの位置は、アドレスが40の位置と、22番目のカラムの書き始めの位置は、アドレスが41の位置と、23番目のカラムの書き始めの位置は、アドレスが41の位置と、24番目のカラムの書き始めの位置は、アドレスが41の位置と、それぞれされる。
 図24は、DVB-S.2の規格に規定されている、符号長Nが16200の、10個の符号化率それぞれのLDPC符号について、カラムツイストインターリーブに必要なメモリ31のカラム数と、書き始めの位置のアドレスを、変調方式ごとに示している。
 デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図16の第1ないし第3の入れ替え方式のうちのいずれかが採用され、かつ、変調方式として、QPSKが採用される場合、1シンボルのビット数mは、2ビットであり、倍数bは1となる。
 この場合、図24によれば、メモリ31は、ロウ方向に2×1ビットを記憶する2個のカラムを有し、カラム方向に16200/(2×1)ビットを記憶する。そして、メモリ31の2個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、それぞれされる。
 さらに、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、QPSKが採用される場合、1シンボルのビット数mは、2ビットであり、倍数bは2となる。
 この場合、図24によれば、メモリ31は、ロウ方向に2×2ビットを記憶する4個のカラムを有し、カラム方向に16200/(2×2)ビットを記憶する。そして、メモリ31の4個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、3番目のカラムの書き始めの位置は、アドレスが3の位置と、4番目のカラムの書き始めの位置は、アドレスが3の位置と、それぞれされる。
 また、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図16の第1ないし第3の入れ替え方式のうちのいずれかが採用され、かつ、変調方式として、16QAMが採用される場合、1シンボルのビット数mは、4ビットであり、倍数bは1となる。
 この場合、図24によれば、メモリ31は、ロウ方向に4×1ビットを記憶する4個のカラムを有し、カラム方向に16200/(4×1)ビットを記憶する。そして、メモリ31の4個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、3番目のカラムの書き始めの位置は、アドレスが3の位置と、4番目のカラムの書き始めの位置は、アドレスが3の位置と、それぞれされる。
 さらに、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、16QAMが採用される場合、1シンボルのビット数mは、4ビットであり、倍数bは2となる。
 この場合、図24によれば、メモリ31は、ロウ方向に4×2ビットを記憶する8個のカラムを有し、カラム方向に16200/(4×2)ビットを記憶する。そして、メモリ31の8個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが1の位置と、5番目のカラムの書き始めの位置は、アドレスが7の位置と、6番目のカラムの書き始めの位置は、アドレスが20の位置と、7番目のカラムの書き始めの位置は、アドレスが20の位置と、8番目のカラムの書き始めの位置は、アドレスが21の位置と、それぞれされる。
 また、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図16の第1ないし第3の入れ替え方式のうちのいずれかが採用され、かつ、変調方式として、64QAMが採用される場合、1シンボルのビット数mは、6ビットであり、倍数bは1となる。
 この場合、図24によれば、メモリ31は、ロウ方向に6×1ビットを記憶する6個のカラムを有し、カラム方向に16200/(6×1)ビットを記憶する。そして、メモリ31の6個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが3の位置と、5番目のカラムの書き始めの位置は、アドレスが7の位置と、6番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
 さらに、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、64QAMが採用される場合、1シンボルのビット数mは、6ビットであり、倍数bは2となる。
 この場合、図24によれば、メモリ31は、ロウ方向に6×2ビットを記憶する12個のカラムを有し、カラム方向に16200/(6×2)ビットを記憶する。そして、メモリ31の12個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが2の位置と、6番目のカラムの書き始めの位置は、アドレスが2の位置と、7番目のカラムの書き始めの位置は、アドレスが3の位置と、8番目のカラムの書き始めの位置は、アドレスが3の位置と、9番目のカラムの書き始めの位置は、アドレスが3の位置と、10番目のカラムの書き始めの位置は、アドレスが6の位置と、11番目のカラムの書き始めの位置は、アドレスが7の位置と、12番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
 また、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図16の第1ないし第3の入れ替え方式のうちのいずれかが採用され、かつ、変調方式として、256QAMが採用される場合、1シンボルのビット数mは、8ビットであり、倍数bは1となる。
 この場合、図24によれば、メモリ31は、ロウ方向に8×1ビットを記憶する8個のカラムを有し、カラム方向に16200/(8×1)ビットを記憶する。そして、メモリ31の8個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが1の位置と、5番目のカラムの書き始めの位置は、アドレスが7の位置と、6番目のカラムの書き始めの位置は、アドレスが20の位置と、7番目のカラムの書き始めの位置は、アドレスが20の位置と、8番目のカラムの書き始めの位置は、アドレスが21の位置と、それぞれされる。
 さらに、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図16の第1ないし第3の入れ替え方式のうちのいずれかが採用され、かつ、変調方式として、1024QAMが採用される場合、1シンボルのビット数mは、10ビットであり、倍数bは1となる。
 この場合、図24によれば、メモリ31は、ロウ方向に10×1ビットを記憶する10個のカラムを有し、カラム方向に16200/(10×1)ビットを記憶する。そして、メモリ31の10個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが1の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが3の位置と、6番目のカラムの書き始めの位置は、アドレスが3の位置と、7番目のカラムの書き始めの位置は、アドレスが4の位置と、8番目のカラムの書き始めの位置は、アドレスが4の位置と、9番目のカラムの書き始めの位置は、アドレスが5の位置と、10番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
 また、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、1024QAMが採用される場合、1シンボルのビット数mは、10ビットであり、倍数bは2となる。
 この場合、図24によれば、メモリ31は、ロウ方向に10×2ビットを記憶する20個のカラムを有し、カラム方向に16200/(10×2)ビットを記憶する。そして、メモリ31の20個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが2の位置と、6番目のカラムの書き始めの位置は、アドレスが2の位置と、7番目のカラムの書き始めの位置は、アドレスが2の位置と、8番目のカラムの書き始めの位置は、アドレスが2の位置と、9番目のカラムの書き始めの位置は、アドレスが5の位置と、10番目のカラムの書き始めの位置は、アドレスが5の位置と、11番目のカラムの書き始めの位置は、アドレスが5の位置と、12番目のカラムの書き始めの位置は、アドレスが5の位置と、13番目のカラムの書き始めの位置は、アドレスが5の位置と、14番目のカラムの書き始めの位置は、アドレスが7の位置と、15番目のカラムの書き始めの位置は、アドレスが7の位置と、16番目のカラムの書き始めの位置は、アドレスが7の位置と、17番目のカラムの書き始めの位置は、アドレスが7の位置と、18番目のカラムの書き始めの位置は、アドレスが8の位置と、19番目のカラムの書き始めの位置は、アドレスが8の位置と、20番目のカラムの書き始めの位置は、アドレスが10の位置と、それぞれされる。
 さらに、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図16の第1ないし第3の入れ替え方式のうちのいずれかが採用され、かつ、変調方式として、4096QAMが採用される場合、1シンボルのビット数mは、12ビットであり、倍数bは1となる。
 この場合、図24によれば、メモリ31は、ロウ方向に12×1ビットを記憶する12個のカラムを有し、カラム方向に16200/(12×1)ビットを記憶する。そして、メモリ31の12個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが2の位置と、6番目のカラムの書き始めの位置は、アドレスが2の位置と、7番目のカラムの書き始めの位置は、アドレスが3の位置と、8番目のカラムの書き始めの位置は、アドレスが3の位置と、9番目のカラムの書き始めの位置は、アドレスが3の位置と、10番目のカラムの書き始めの位置は、アドレスが6の位置と、11番目のカラムの書き始めの位置は、アドレスが7の位置と、12番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
 また、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、4096QAMが採用される場合、1シンボルのビット数mは、12ビットであり、倍数bは2となる。
 この場合、図24によれば、メモリ31は、ロウ方向に12×2ビットを記憶する24個のカラムを有し、カラム方向に16200/(12×2)ビットを記憶する。そして、メモリ31の24個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが0の位置と、5番目のカラムの書き始めの位置は、アドレスが0の位置と、6番目のカラムの書き始めの位置は、アドレスが0の位置と、7番目のカラムの書き始めの位置は、アドレスが0の位置と、8番目のカラムの書き始めの位置は、アドレスが1の位置と、9番目のカラムの書き始めの位置は、アドレスが1の位置と、10番目のカラムの書き始めの位置は、アドレスが1の位置と、11番目のカラムの書き始めの位置は、アドレスが2の位置と、12番目のカラムの書き始めの位置は、アドレスが2の位置と、13番目のカラムの書き始めの位置は、アドレスが2の位置と、14番目のカラムの書き始めの位置は、アドレスが3の位置と、15番目のカラムの書き始めの位置は、アドレスが7の位置と、16番目のカラムの書き始めの位置は、アドレスが9の位置と、17番目のカラムの書き始めの位置は、アドレスが9の位置と、18番目のカラムの書き始めの位置は、アドレスが9の位置と、19番目のカラムの書き始めの位置は、アドレスが10の位置と、20番目のカラムの書き始めの位置は、アドレスが10の位置と、21番目のカラムの書き始めの位置は、アドレスが10の位置と、22番目のカラムの書き始めの位置は、アドレスが10の位置と、23番目のカラムの書き始めの位置は、アドレスが10の位置と、24番目のカラムの書き始めの位置は、アドレスが11の位置と、それぞれされる。
 次に、図25のフローチャートを参照して、図8の送信装置11で行われる送信処理について説明する。
 LDPC符号化部21は、そこに、対象データが供給されるのを待って、ステップS101において、対象データを、LDPC符号に符号化し、そのLDPC符号を、ビットインターリーバ22に供給して、処理は、ステップS102に進む。
 ビットインターリーバ22では、ステップS102において、LDPC符号化部21からのLDPC符号を対象として、ビットインターリーブが行われ、そのビットインターリーブ後のLDPC符号が、マッピング部26に供給されて、処理は、ステップS103に進む。
 すなわち、ステップS102では、ビットインターリーバ22において、バリティインターリーバ23が、LDPC符号化部21からのLDPC符号を対象として、パリティインターリーブを行い、そのパリティインターリーブ後のLDPC符号を、カラムツイストインターリーバ24に供給する。
 カラムツイストインターリーバ24は、パリティインターリーバ23からのLDPC符号を対象として、カラムツイストインターリーブを行い、デマルチプレクサ25は、カラムツイストインターリーバ24によるカラムツイストインターリーブ後のLDPC符号を対象として、入れ替え処理を行う。そして、入れ替え処理後のLDPC符号は、デマルチプレクサ25から、マッピング部26に供給される。
 マッピング部26は、ステップS103において、デマルチプレクサ25からのLDPC符号のmビットの符号ビットを、直交変調部27で行われる直交変調の変調方式で定める信号点が表すシンボルにマッピングし、直交変調部27に供給して、処理は、ステップS104に進む。
 直交変調部27は、ステップS104において、マッピング部26からのシンボルに従い、搬送波の直交変調を行って、処理は、ステップS105に進み、直交変調の結果得られる変調信号を送信して、処理を終了する。
 なお、図25の送信処理は繰り返し行われる。
 以上のように、パリティインターリーブや、カラムツイストインターリーブを行うことで、LDPC符号の複数の符号ビットを1個のシンボルとして送信する場合の、イレージャやバースト誤りに対する耐性を向上させることができる。
 ここで、図8では、説明の便宜のため、パリティインターリーブを行うブロックであるパリティインターリーバ23と、カラムツイストインターリーブを行うブロックであるカラムツイストインターリーバ24とを、別個に構成するようにしたが、パリティインターリーバ23とカラムツイストインターリーバ24とは、一体的に構成することができる。
 すなわち、パリティインターリーブと、カラムツイストインターリーブとは、いずれも、メモリに対する符号ビットの書き込み、及び読み出しによって行うことができ、符号ビットの書き込みを行うアドレス(書き込みアドレス)を、符号ビットの読み出しを行うアドレス(読み出しアドレス)に変換する行列によって表すことができる。
 したがって、パリティインターリーブを表す行列と、カラムツイストインターリーブを表す行列とを乗算して得られる行列を求めておけば、その行列によって、符号ビットを変換することで、パリティインターリーブを行い、さらに、そのパリティインターリーブ後のLDPC符号をカラムツイストインターリーブした結果を得ることができる。
 また、パリティインターリーバ23とカラムツイストインターリーバ24に加えて、デマルチプレクサ25も、一体的に構成することが可能である。
 すなわち、デマルチプレクサ25で行われる入れ替え処理も、LDPC符号を記憶するメモリ31の書き込みアドレスを、読み出しアドレスに変換する行列によって表すことができる。
 したがって、パリティインターリーブを表す行列、カラムツイストインターリーブを表す行列、及び、入れ替え処理を表す行列を乗算して得られる行列を求めておけば、その行列によって、パリティインターリーブ、カラムツイストインターリーブ、及び、入れ替え処理を、一括して行うことができる。
 なお、パリティインターリーブと、カラムツイストインターリーブとについては、そのうちのいずれか一方だけを行うようにすることが可能である。
 次に、図26ないし図28を参照して、図8の送信装置11について行った、エラーレート(bit error rate)を計測するシミュレーションについて説明する。
 シミュレーションは、D/Uが0dBのフラッタ(flutter)がある通信路を採用して行った。
 図26は、シミュレーションで採用した通信路のモデルを示している。
 すなわち、図26のAは、シミュレーションで採用したフラッタのモデルを示している。
 また、図26のBは、図26のAのモデルで表されるフラッタがある通信路のモデルを示している。
 なお、図26のBにおいて、Hは、図26のAのフラッタのモデルを表す。また、図26のBにおいて、Nは、ICI(Inter Carrier Interference)を表し、シミュレーションでは、そのパワーの期待値E[N2]を、AWGNで近似した。
 図27及び図28は、シミュレーションで得られたエラーレートと、フラッタのドップラ周波数fdとの関係を示している。
 なお、図27は、変調方式が16QAMで、符号化率(r)が(3/4)で、入れ替え方式が第1の入れ替え方式である場合の、エラーレートとドップラ周波数fdとの関係を示している。また、図28は、変調方式が64QAMで、符号化率(r)が(5/6)で、入れ替え方式が第1の入れ替え方式である場合の、エラーレートとドップラ周波数fdとの関係を示している。
 さらに、図27及び図28において、太線は、パリティインターリーブ、カラムツイストインターリーブ、及び、入れ替え処理のすべてを行った場合の、エラーレートとドップラ周波数fdとの関係を示しており、細線は、パリティインターリーブ、カラムツイストインターリーブ、及び、入れ替え処理のうちの、入れ替え処理だけを行った場合の、エラーレートとドップラ周波数fdとの関係を示している。
 図27及び図28のいずれにおいても、パリティインターリーブ、カラムツイストインターリーブ、及び、入れ替え処理のすべてを行った場合の方が、入れ替え処理だけを行った場合よりも、エラーレートが向上する(小さくなる)ことが分かる。
 次に、図29は、図7の受信装置12の構成例を示すブロック図である。
 図29において、受信装置12は、送信装置11(図7)からの変調信号を受信するデータ処理装置であり、直交復調部51、デマッピング部52、デインターリーバ53、及びLDPC復号部56から構成される。
 直交復調部51は、送信装置11からの変調信号を受信し、直交復調を行って、その結果得られるシンボル(I及びQ軸方向それぞれの値)を、デマッピング部52に供給する。
 デマッピング部52は、直交復調部51からのシンボルを、LDPC符号の符号ビットにするデマッピングを行い、デインターリーバ53に供給する。
 デインターリーバ53は、マルチプレクサ(MUX)54、及びカラムツイストデインターリーバ55から構成され、デマッピング部52からのLDPC符号の符号ビットのデインターリーブを行う。
 すなわち、マルチプレクサ54は、デマッピング部52からのLDPC符号を対象として、図8のデマルチプレクサ25が行う入れ替え処理に対応する逆入れ替え処理(入れ替え処理の逆の処理)、すなわち、入れ替え処理によって入れ替えられた符号ビットの位置を元の位置に戻す逆入れ替え処理を行い、その結果得られるLDPC符号を、カラムツイストデインターリーバ55に供給する。
 カラムツイストデインターリーバ55は、マルチプレクサ54からのLDPC符号を対象として、図8のカラムツイストインターリーバ24が行う並び替え処理としてのカラムツイストインターリーブに対応するカラムツイストデインターリーブ(カラムツイストインターリーブの逆の処理)、すなわち、並び替え処理としてのカラムツイストインターリーブによって並びが変更されたLDPC符号の符号ビットを、元の並びに戻す逆並び替え処理としての、例えば、カラムツイストデインターリーブを行う。
 具体的には、カラムツイストデインターリーバ55は、図22等に示したメモリ31と同様に構成される、デインターリーブ用のメモリに対して、LDPC符号の符号ビットを書き込み、さらに読み出すことで、カラムツイストデインターリーブを行う。
 但し、カラムツイストデインターリーバ55では、符号ビットの書き込みは、メモリ31からの符号ビットの読み出し時の読み出しアドレスを、書き込みアドレスとして用いて、デインターリーブ用のメモリのロウ方向に行われる。また、符号ビットの読み出しは、メモリ31への符号ビットの書き込み時の書き込みアドレスを、読み出しアドレスとして用いて、デインターリーブ用のメモリのカラム方向に行われる。
 カラムツイストデインターリーブの結果得られるLDPC符号は、カラムツイストデインターリーバ55からLDPC復号部56に供給される。
 ここで、デマッピング部52から、デインターリーバ53に供給されるLDPC符号には、パリティインターリーブ、カラムツイストインターリーブ、及び入れ替え処理が、その順番で施されているが、デインターリーバ53では、入れ替え処理に対応する逆入れ替え処理、及び、カラムツイストインターリーブに対応するカラムツイストデインターリーブしか行われず、したがって、パリティインターリーブに対応するパリティデインターリーブ(パリティインターリーブの逆の処理)、すなわち、パリティインターリーブによって並びが変更されたLDPC符号の符号ビットを、元の並びに戻すパリティデインターリーブは、行われない。
 したがって、デインターリーバ53(のカラムツイストデインターリーバ55)から、LDPC復号部56には、逆入れ替え処理、及び、カラムツイストデインターリーブが行われ、かつ、パリティデインターリーブが行われていないLDPC符号が供給される。
 LDPC復号部56は、デインターリーバ53からのLDPC符号のLDPC復号を、図8のLDPC符号化部21がLDPC符号化に用いた検査行列Hに対して、パリティインターリーブに相当する列置換を少なくとも行って得られる変換検査行列を用いて行い、その結果得られるデータを、対象データの復号結果として出力する。
 図30は、図29の受信装置12が行う受信処理を説明するフローチャートである。
 直交復調部51は、ステップS111において、送信装置11からの変調信号を受信して、処理は、ステップS112に進み、その変調信号の直交復調を行う。直交復調部51は、直交復調の結果得られるシンボルを、デマッピング部52に供給して、処理は、ステップS112からステップS113に進む。
 ステップS113では、デマッピング部52は、直交復調部51からのシンボルを、LDPC符号の符号ビットにするデマッピングを行い、デインターリーバ53に供給して、処理は、ステップS114に進む。
 ステップS114では、デインターリーバ53は、デマッピング部52からのLDPC符号の符号ビットのデインターリーブを行って、処理は、ステップS115に進む。
 すなわち、ステップS114では、デインターリーバ53において、マルチプレクサ54が、デマッピング部52からのLDPC符号を対象として、逆入れ替え処理を行い、その結果得られるLDPC符号を、カラムツイストデインターリーバ55に供給する。
 カラムツイストデインターリーバ55は、マルチプレクサ54からのLDPC符号を対象として、カラムツイストデインターリーブを行い、その結果得られるLDPC符号を、LDPC復号部56に供給する。
 ステップS115では、LDPC復号部56が、カラムツイストデインターリーバ55からのLDPC符号のLDPC復号を、図8のLDPC符号化部21がLDPC符号化に用いた検査行列Hに対して、パリティインターリーブに相当する列置換を少なくとも行って得られる変換検査行列を用いて行い、その結果得られるデータを、対象データの復号結果として出力して、処理は終了する。
 なお、図30の受信処理は、繰り返し行われる。
 また、図29でも、図8の場合と同様に、説明の便宜のため、逆入れ替え処理を行うマルチプレクサ54と、カラムツイストデインターリーブを行うカラムツイストデインターリーバ55とを、別個に構成するようにしたが、マルチプレクサ54とカラムツイストデインターリーバ55とは、一体的に構成することができる。
 さらに、図8の送信装置11において、カラムツイストインターリーブを行わない場合には、図29の受信装置12において、カラムツイストデインターリーバ55は、設ける必要がない。
 次に、図29のLDPC復号部56で行われるLDPC復号について、さらに説明する。
 図29のLDPC復号部56では、上述したように、カラムツイストデインターリーバ55からの、逆入れ替え処理、及び、カラムツイストデインターリーブが行われ、かつ、パリティデインターリーブが行われていないLDPC符号のLDPC復号が、図8のLDPC符号化部21がLDPC符号化に用いた検査行列Hに対して、パリティインターリーブに相当する列置換を少なくとも行って得られる変換検査行列を用いて行われる。
 ここで、LDPC復号を、変換検査行列を用いて行うことで、回路規模を抑制しつつ、動作周波数を十分実現可能な範囲に抑えることが可能となるLDPC復号が先に提案されている(例えば、特開2004-343170号公報を参照)。
 そこで、まず、図31ないし図34を参照して、先に提案されている、変換検査行列を用いたLDPC復号について説明する。
 図31は、符号長Nが90で、符号化率が2/3のLDPC符号の検査行列Hの例を示している。
 なお、図31では(後述する図32及び図33においても同様)、0を、ピリオド(.)で表現している。
 図31の検査行列Hでは、パリティ行列が階段構造になっている。
 図32は、図31の検査行列Hに、式(8)の行置換と、式(9)の列置換を施して得られる検査行列H'を示している。
 行置換:6s+t+1行目→5t+s+1行目
                        ・・・(8)
 列置換:6x+y+61列目→5y+x+61列目
                        ・・・(9)
 但し、式(8)及び(9)において、s,t,x,yは、それぞれ、0≦s<5,0≦t<6,0≦x<5,0≦t<6の範囲の整数である。
 式(8)の行置換によれば、6で割って余りが1になる1,7,13,19,25行目を、それぞれ、1,2,3,4,5行目に、6で割って余りが2になる2,8,14,20,26行目を、それぞれ、6,7,8,9,10行目に、という具合に置換が行われる。
 また、式(9)の列置換によれば、61列目以降(パリティ行列)に対して、6で割って余りが1になる61,67,73,79,85列目を、それぞれ、61,62,63,64,65列目に、6で割って余りが2になる62,68,74,80,86列目を、それぞれ、66,67,68,69,70列目に、という具合に置換が行われる。
 このようにして、図31の検査行列Hに対して、行と列の置換を行って得られた行列(matrix)が、図32の検査行列H'である。
 ここで、検査行列Hの行置換を行っても、LDPC符号の符号ビットの並びには影響しない。
 また、式(9)の列置換は、上述の、K+qx+y+1番目の符号ビットを、K+Py+x+1番目の符号ビットの位置にインターリーブするパリティインターリーブの、情報長Kを60と、巡回構造の単位の列数Pを5と、パリティ長M(ここでは、30)の約数q(=M/P)を6と、それぞれしたときのパリティインターリーブに相当する。
 図32の検査行列(以下、適宜、置換検査行列という)H'に対して、図31の検査行列(以下、適宜、元の検査行列という)HのLDPC符号に、式(9)と同一の置換を行ったものを乗じると、0ベクトルが出力される。すなわち、元の検査行列HのLDPC符号(1符号語)としての行ベクトルcに、式(9)の列置換を施して得られる行ベクトルをc'と表すこととすると、検査行列の性質から、HcTは、0ベクトルとなるから、H'c'Tも、当然、0ベクトルとなる。
 以上から、図32の変換検査行列H'は、元の検査行列HのLDPC符号cに、式(9)の列置換を行って得られるLDPC符号c'の検査行列になっている。
 したがって、元の検査行列HのLDPC符号cに、式(9)の列置換を行い、その列置換後のLDPC符号c'を、図32の変換検査行列H'を用いて復号(LDPC復号)し、その復号結果に、式(9)の列置換の逆置換を施すことで、元の検査行列HのLDPC符号を、その検査行列Hを用いて復号する場合と同様の復号結果を得ることができる。
 図33は、5×5の行列の単位に間隔を空けた、図32の変換検査行列H'を示している。
 図33においては、変換検査行列H'は、5×5の単位行列、その単位行列の1のうち1個以上が0になった行列(以下、適宜、準単位行列という)、単位行列または準単位行列をサイクリックシフト(cyclic shift)した行列(以下、適宜、シフト行列という)、単位行列、準単位行列、またはシフト行列のうちの2以上の和(以下、適宜、和行列という)、5×5の0行列の組合わせで表されている。
 図33の変換検査行列H'は、5×5の単位行列、準単位行列、シフト行列、和行列、0行列で構成されているということができる。そこで、変換検査行列H'を構成する、これらの5×5の行列を、以下、適宜、構成行列という。
 P×Pの構成行列で表される検査行列で表されるLDPC符号の復号には、チェックノード演算、及びバリアブルノード演算を、P個同時に行うアーキテクチャ(architecture)を用いることができる。
 図34は、そのような復号を行う復号装置の構成例を示すブロック図である。
 すなわち、図34は、図31の元の検査行列Hに対して、少なくとも、式(9)の列置換を行って得られる図33の変換検査行列H'を用いて、LDPC符号の復号を行う復号装置の構成例を示している。
 図34の復号装置は、6つのFIFO3001ないし3006からなる枝データ格納用メモリ300、FIFO3001ないし3006を選択するセレクタ301、チェックノード計算部302、2つのサイクリックシフト回路303及び308、18個のFIFO3041ないし30418からなる枝データ格納用メモリ304、FIFO3041ないし30418を選択するセレクタ305、受信情報を格納する受信データ用メモリ306、バリアブルノード計算部307、復号語計算部309、受信データ並べ替え部310、復号データ並べ替え部311からなる。
 まず、枝データ格納用メモリ300と304へのデータの格納方法について説明する。
 枝データ格納用メモリ300は、図33の変換検査行列H'の行数30を構成行列の行数5で除算した数である6つのFIFO3001ないし3006から構成されている。FIFO300y(y=1,2,・・・,6)は、複数の段数の記憶領域からなり、各段数の記憶領域には、構成行列の行数及び列数である5つの枝に対応するメッセージを同時に読み出しもしくは書き込むことができるようになっている。また、FIFO300yの記憶領域の段数は、図33の変換検査行列の行方向の1の数(ハミング重み)の最大数である9になっている。
 FIFO3001には、図33の変換検査行列H'の第1行目から第5行目までの1の位置に対応するデータ(バリアブルノードからのメッセージvi)が、各行共に横方向に詰めた形に(0を無視した形で)格納される。すなわち、第j行第i列を、(j,i)と表すこととすると、FIFO3001の第1段の記憶領域には、変換検査行列H'の(1,1)から(5,5)の5×5の単位行列の1の位置に対応するデータが格納される。第2段の記憶領域には、変換検査行列H'の(1,21)から(5,25)のシフト行列(5×5の単位行列を右方向に3つだけサイクリックシフトしたシフト行列)の1の位置に対応するデータが格納される。第3から第8段の記憶領域も同様に、変換検査行列H'と対応付けてデータが格納される。そして、第9段の記憶領域には、変換検査行列H'の(1,86)から(5,90)のシフト行列(5×5の単位行列のうちの1行目の1を0に置き換えて1つだけ左にサイクリックシフトしたシフト行列)の1の位置に対応するデータが格納される。
 FIFO3002には、図33の変換検査行列H'の第6行目から第10行目までの1の位置に対応するデータが格納される。すなわち、FIFO3002の第1段の記憶領域には、変換検査行列H'の(6,1)から(10,5)の和行列(5×5の単位行列を右に1つだけサイクリックシフトした第1のシフト行列と、右に2つだけサイクリックシフトした第2のシフト行列の和である和行列)を構成する第1のシフト行列の1の位置に対応するデータが格納される。また、第2段の記憶領域には、変換検査行列H'の(6,1)から(10,5)の和行列を構成する第2のシフト行列の1の位置に対応するデータが格納される。
 すなわち、重みが2以上の構成行列については、その構成行列を、重みが1であるP×Pの単位行列、その要素である1のうち1個以上が0になった準単位行列、又は単位行列もしくは準単位行列をサイクリックシフトしたシフト行列のうちの複数の和の形で表現したときの、その重みが1の単位行列、準単位行列、又はシフト行列の1の位置に対応するデータ(単位行列、準単位行列、又はシフト行列に属する枝に対応するメッセージ)は、同一アドレス(FIFO3001ないし3006のうちの同一のFIFO)に格納される。
 以下、第3から第9段の記憶領域についても、変換検査行列H'に対応付けてデータが格納される。
 FIFO3003ないし3006も同様に変換検査行列H'に対応付けてデータを格納する。
 枝データ格納用メモリ304は、変換検査行列H'の列数90を、構成行列の列数である5で割った18個のFIFO3041ないし30418から構成されている。FIFO304x(x=1,2,・・・,18)は、複数の段数の記憶領域からなり、各段の記憶領域には、変換構成行列H'の行数及び列数である5つの枝に対応するメッセージを同時に読み出しもしくは書き込むことができるようになっている。
 FIFO3041には、図33の変換検査行列H'の第1列目から第5列目までの1の位置に対応するデータ(チェックノードからのメッセージuj)が、各列共に縦方向に詰めた形に(0を無視した形で)格納される。すなわち、FIFO3041の第1段の記憶領域には、変換検査行列H'の(1,1)から(5,5)の5×5の単位行列の1の位置に対応するデータが格納される。第2段の記憶領域には、変換検査行列H'の(6,1)から(10,5)の和行列(5×5の単位行列を右に1つだけサイクリックシフトした第1のシフト行列と、右に2つだけサイクリックシフトした第2のシフト行列との和である和行列)を構成する第1のシフト行列の1の位置に対応するデータが格納される。また、第3段の記憶領域には、変換検査行列H'の(6,1)から(10,5)の和行列を構成する第2のシフト行列の1の位置に対応するデータが格納される。
 すなわち、重みが2以上の構成行列については、その構成行列を、重みが1であるP×Pの単位行列、その要素である1のうち1個以上が0になった準単位行列、又は単位行列もしくは準単位行列をサイクリックシフトしたシフト行列のうちの複数の和の形で表現したときの、その重みが1の単位行列、準単位行列、又はシフト行列の1の位置に対応するデータ(単位行列、準単位行列、又はシフト行列に属する枝に対応するメッセージ)は、同一アドレス(FIFO3041ないし30418のうちの同一のFIFO)に格納される。
 以下、第4及び第5段の記憶領域についても、変換検査行列H'に対応付けて、データが格納される。このFIFO3041の記憶領域の段数は、変換検査行列H'の第1列から第5列における行方向の1の数(ハミング重み)の最大数である5になっている。
 FIFO3042と3043も同様に変換検査行列H'に対応付けてデータを格納し、それぞれの長さ(段数)は、5である。FIFO3044ないし30412も同様に、変換検査行列H'に対応付けてデータを格納し、それぞれの長さは3である。FIFO30413ないし30418も同様に、変換検査行列H'に対応付けてデータを格納し、それぞれの長さは2である。
 次に、図34の復号装置の動作について説明する。
 枝データ格納用メモリ300は、6つのFIFO3001ないし3006からなり、前段のサイクリックシフト回路308から供給される5つのメッセージD311が、変換検査行列H'どの行に属するかの情報(Matrixデータ)D312に従って、データを格納するFIFOを、FIFO3001ないし3006の中から選び、選んだFIFOに5つのメッセージD311をまとめて順番に格納していく。また、枝データ格納用メモリ300は、データを読み出す際には、FIFO3001から5つのメッセージD3001を順番に読み出し、次段のセレクタ301に供給する。枝データ格納用メモリ300は、FIFO3001からのメッセージの読み出しの終了後、FIFO3002ないし3006からも、順番に、メッセージを読み出し、セレクタ301に供給する。
 セレクタ301は、セレクト信号D301に従って、FIFO3001ないし3006のうちの、現在データが読み出されているFIFOからの5つのメッセージを選択し、メッセージD302として、チェックノード計算部302に供給する。
 チェックノード計算部302は、5つのチェックノード計算器3021ないし3025からなり、セレクタ301を通して供給されるメッセージD302(D3021ないしD3025)(式(7)のメッセージvi)を用いて、式(7)に従ってチェックノード演算を行い、そのチェックノード演算の結果得られる5つのメッセージD303(D3031ないしD3035)(式(7)のメッセージuj)をサイクリックシフト回路303に供給する。
 サイクリックシフト回路303は、チェックノード計算部302で求められた5つのメッセージD3031ないしD3035を、対応する枝が変換検査行列H'において元となる単位行列を幾つサイクリックシフトしたものであるかの情報(Matrixデータ)D305を元にサイクリックシフトし、その結果をメッセージD304として、枝データ格納用メモリ304に供給する。
 枝データ格納用メモリ304は、18個のFIFO3041ないし30418からなり、前段のサイクリックシフト回路303から供給される5つのメッセージD304が変換検査行列H'のどの行に属するかの情報D305に従って、データを格納するFIFOを、FIFO3041ないし30418の中から選び、選んだFIFOに5つのメッセージD304をまとめて順番に格納していく。また、枝データ格納用メモリ304は、データを読み出す際には、FIFO3041から5つのメッセージD3061を順番に読み出し、次段のセレクタ305に供給する。枝データ格納用メモリ304は、FIFO3041からのデータの読み出しの終了後、FIFO3042ないし30418からも、順番に、メッセージを読み出し、セレクタ305に供給する。
 セレクタ305は、セレクト信号D307に従って、FIFO3041ないし30418のうちの、現在データが読み出されているFIFOからの5つのメッセージを選択し、メッセージD308として、バリアブルノード計算部307と復号語計算部309に供給する。
 一方、受信データ並べ替え部310は、通信路を通して受信したLDPC符号D313を、式(9)の列置換を行うことにより並べ替え、受信データD314として、受信データ用メモリ306に供給する。受信データ用メモリ306は、受信データ並べ替え部310から供給される受信データD314から、受信LLR(対数尤度比)を計算して記憶し、その受信LLRを5個ずつまとめて受信値D309として、バリアブルノード計算部307と復号語計算部309に供給する。
 バリアブルノード計算部307は、5つのバリアブルノード計算器3071ないし3075からなり、セレクタ305を通して供給されるメッセージD308(D3081ないしD3085)(式(1)のメッセージuj)と、受信データ用メモリ306から供給される5つの受信値D309(式(1)の受信値u0i)を用いて、式(1)に従ってバリアブルノード演算を行い、その演算の結果得られるメッセージD310(D3101ないしD3105)(式(1)のメッセージvi)を、サイクリックシフト回路308に供給する。
 サイクリックシフト回路308は、バリアブルノード計算部307で計算されたメッセージD3101ないしD3105を、対応する枝が変換検査行列H'において元となる単位行列を幾つサイクリックシフトしたものであるかの情報を元にサイクリックシフトし、その結果をメッセージD311として、枝データ格納用メモリ300に供給する。
 以上の動作を1巡することで、LDPC符号の1回の復号を行うことができる。図34の復号装置は、所定の回数だけLDPC符号を復号した後、復号語計算部309及び復号データ並べ替え部311において、最終的な復号結果を求めて出力する。
 すなわち、復号語計算部309は、5つの復号語計算器3091ないし3095からなり、セレクタ305が出力する5つのメッセージD308(D3081ないしD3085)(式(5)のメッセージuj)と、受信データ用メモリ306から供給される5つの受信値D309(式(5)の受信値u0i)を用い、複数回の復号の最終段として、式(5)に基づいて、復号結果(復号語)を計算して、その結果得られる復号データD315を、復号データ並べ替え部311に供給する。
 復号データ並べ替え部311は、復号語計算部309から供給される復号データD315を対象に、式(9)の列置換の逆置換を行うことにより、その順序を並べ替え、最終的な復号結果D316として出力する。
 以上のように、検査行列(元の検査行列)に対して、行置換と列置換のうちの一方又は両方を施し、P×Pの単位行列、その要素の1のうち1個以上が0になった準単位行列、単位行列もしくは準単位行列をサイクリックシフトしたシフト行列、単位行列、準単位行列、もしくはシフト行列の複数の和である和行列、P×Pの0行列の組合せ、つまり、構成行列の組み合わせで表すことができる検査行列(変換検査行列)に変換することで、LDPC符号の復号を、チェックノード演算とバリアブルノード演算をP個同時に行うアーキテクチャ(architecture)を採用することが可能となり、これにより、ノード演算を、P個同時に行うことで動作周波数を実現可能な範囲に抑えて、多数の繰り返し復号を行うことができる。
 図29の受信装置12を構成するLDPC復号部56は、図34の復号装置と同様に、チェックノード演算とバリアブルノード演算をP個同時に行うことで、LDPC復号を行うようになっている。
 すなわち、いま、説明を簡単にするために、図8の送信装置11を構成するLDPC符号化部21が出力するLDPC符号の検査行列が、例えば、図31に示した、パリティ行列が階段構造になっている検査行列Hであるとすると、送信装置11のパリティインターリーバ23では、K+qx+y+1番目の符号ビットを、K+Py+x+1番目の符号ビットの位置にインターリーブするパリティインターリーブが、情報長Kを60に、巡回構造の単位の列数Pを5に、パリティ長Mの約数q(=M/P)を6に、それぞれして行われる。
 このパリティインターリーブは、上述したように、式(9)の列置換に相当するから、LDPC復号部56では、式(9)の列置換を行う必要がない。
 このため、図29の受信装置12では、上述したように、カラムツイストデインターリーバ55から、LDPC復号部56に対して、パリティデインターリーブが行われていないLDPC符号、つまり、式(9)の列置換が行われた状態のLDPC符号が供給され、LDPC復号部56では、式(9)の列置換を行わないことを除けば、図34の復号装置と同様の処理が行われる。
 すなわち、図35は、図29のLDPC復号部56の構成例を示している。
 図35において、LDPC復号部56は、図34の受信データ並べ替え部310が設けられていないことを除けば、図34の復号装置と同様に構成されており、式(9)の列置換が行われないことを除いて、図34の復号装置と同様の処理を行うため、その説明は省略する。
 以上のように、LDPC復号部56は、受信データ並べ替え部310を設けずに構成することができるので、図34の復号装置よりも、規模を削減することができる。
 なお、図31ないし図35では、説明を簡単にするために、LDPC符号の符号長Nを90と、情報長Kを60と、巡回構造の単位の列数(構成行列の行数及び列数)Pを5と、パリティ長Mの約数q(=M/P)を6と、それぞれしたが、符号長N、情報長K、巡回構造の単位の列数P、及び約数q(=M/P)のそれぞれは、上述した値に限定されるものではない。
 すなわち、図8の送信装置11において、LDPC符号化部21が出力するのは、例えば、符号長Nを64800と、情報長KをN-Pq(=N-M)と、巡回構造の単位の列数Pを360と、約数qをM/Pと、それぞれするLDPC符号であるが、図35のLDPC復号部56は、そのようなLDPC符号を対象として、チェックノード演算とバリアブルノード演算をP個同時に行うことで、LDPC復号を行う場合にも適用可能である。
 次に、図36は、図7の送信装置11の他の構成例を示している。
 なお、図中、図8の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
 図36の送信装置11は、LDPC符号化部21、ビットインターリーバ22、マッピング部26、及び直交変調部27を有する点で、図8の場合と共通する。
 また、図36の送信装置11は、ローテッテッドコンスタレーション部(以下、RC部ともいう)501が新たに設けられている点で、図8の場合と相違する。
 RC部501は、マッピング部26から出力されるシンボルに、ローテッテッドコンスタレーション(Rotated Constellation)処理(以下、RC処理ともいう)を施し、その結果得られるシンボルを、直交変調部27に出力する。
 ここで、RC処理については、例えば、国際公開第05/032021号パンフレットに、モジュレーションダイバーシチ技術として記載されている。
 図37は、図36のRC部501の構成例を示している。
 図37において、RC部501は、位相回転部511、IQ分離部512、バッファ513及び514、インターリーバ515、並びに、合成部516から構成され、マッピング部26から供給されるシンボルに、RC処理を施す。
 すなわち、位相回転部511は、マッピング部26(図36)からの、IQ平面上のシンボル(IQ平面上の信号点にマッピングされたシンボル)の位相を、所定の角度だけ回転し、位相の回転後のシンボル(以下、回転シンボルともいう)を、IQ分離部512に供給する。
 IQ分離部512は、位相回転部511からの回転シンボルのI成分とQ成分を分離し、I成分を、バッファ513に供給するとともに、Q成分を、バッファ514に供給する。
 バッファ513は、IQ分離部512からの回転シンボルのI成分を一時記憶する。バッファ513に記憶されたI成分は、必要に応じて、インターリーバ515に供給される。
 一方、バッファ514は、IQ分離部512からの回転シンボルのQ成分を一時記憶する。バッファ514に記憶されたQ成分は、必要に応じて、インターリーバ515に供給される。
 インターリーバ515は、バッファ513からのI成分、及び、バッファ514からのQ成分のうちの少なくとも一方のインターリーブである成分インターリーブを行い、その成分インターリーブ後のI成分、及びQ成分を、合成部516に供給する。
 すなわち、ある回転シンボルに注目すると、インターリーバ515では、その注目する回転シンボル(注目シンボル)のI成分が、他の回転シンボルのQ成分とペアになり、注目シンボルのQ成分が、(さらに)他の回転シンボルのI成分とペアになるように、バッファ513からのI成分、及び、バッファ514からのQ成分のうちの少なくとも一方の成分インターリーブが行われる。
 そして、インターリーバ515は、成分インターリーブによってペアになったI成分とQ成分を、成分インターリーブ後のI成分とQ成分として、合成部516に供給する。
 合成部516は、インターリーバ515からの成分インターリーブ後のI成分とQ成分を合成し、そのI成分とQ成分からなるシンボル(以下、合成シンボルともいう)を出力する。
 合成部516が出力する合成シンボルは、直交変調部27(図36)に供給される。
 次に、図38を参照して、RC処理について説明する。
 図38は、図36の直交変調部27でQPSKが行われる場合の、4個のシンボルに対応する信号点SP1,SP2,SP3,SP4のIQ平面上の配置を示している。
 すなわち、図38のAは、QPSKの4個の信号点の配置を示している。
 QPSKでは、1シンボルは、2ビットを表し、4(=22)個(4種類)のシンボルが存在するため、IQ平面上には、その4個のシンボルに対応する4個の信号点SP1ないしSP4が存在する。
 4個の信号点SP1ないしSP4は、IQ平面の原点を中心(重心)とする正方形の4個の頂点の位置に、それぞれ配置されている。
 いま、信号点SPiに対応するシンボルを、シンボルSiと表すこととする(i=1,2,3,4)。
 QPSKのシンボルSiについては、シンボルS1のI成分とシンボルS4のI成分とが、値I+で一致しており、シンボルS2のI成分とシンボルS3のI成分とが、値I-で一致している。また、シンボルS1のQ成分とシンボルS2のQ成分とが、値Q+で一致しており、シンボルS3のQ成分とシンボルS4のQ成分とが、値Q-で一致している。
 RC処理では、位相回転部511において、上述のようなIQ平面上のシンボルSiの位相が、所定の角度(例えば、0度より大で45度より小の角度)だけ回転され(シンボルSiが原点を中心として回転され)、回転シンボルRSiとされる。
 図38のBは、IQ平面上の回転シンボルRSiを示している。
 図38のBにおいて、回転シンボルRS1のI成分とQ成分(以下、IQ成分ともいう)は、(I1,Q1)(I成分がI1で、Q成分がQ1)になっている。他の回転シンボルRSi(i=2,3,4)についても、同様に、IQ成分は、(Ii,Qi)になっている。
 そして、I成分Iiは、他のI成分Ii'(i≠i')とは異なる値になっており、Q成分Qiも、他のQ成分Qi'とは異なる値になっている。
 RC処理では、インターリーバ515において、回転シンボルRSiのI成分Ii(又はQ成分Qi)が、他の回転シンボルRSjのQ成分Qj(又はI成分Ij)とペアになるように、成分インターリーブが行われる(j=1,2,3,4)。
 そして、合成部516において、成分インターリーブ後のI成分IiとQ成分Qjを有するシンボルが、合成シンボルとして出力される。
 いま、合成部516が出力する合成シンボルを、そのI成分IiとQ成分Qjとを用いて、合成シンボル(Ii,Qj)と表すこととすると、合成シンボル(Ii,Qj)のI成分Iiは、4つの値を取り得るし、Q成分Qjも、4つの値を取り得るので、RC処理によれば、直交変調部27でQPSKが行われる場合には、16QAMのような変調が擬似的に行われることになる。
 すなわち、図38のCは、合成シンボル(Ii,Qj)となり得るIQ平面上のシンボルを示している。
 合成シンボル(Ii,Qj)のI成分Iiは、4つの値I1,I2,I3,I4を取り得る。また、合成シンボル(Ii,Qj)のQ成分Qjは、4つの値Q1,Q2,Q3,Q4を取り得る。
 したがって、合成シンボル(Ii,Qj)は、I成分Iiの4つの値I1ないしI4と、Q成分Qjの4つの値Q1ないしQ4の組み合わせで表される(16QAMの)16個のシンボルのうちのいずれかとなる。
 但し、合成シンボル(Ii,Qj)が得られる成分インターリーブの前の回転シンボルRSiは、IQ成分が、(I1,Q1)のシンボル、(I2,Q2)のシンボル、(I3,Q3)のシンボル、及び、(I4,Q4)のシンボルの4つのシンボルのうちのいずれかでしかあり得ない。
 以上のようなRC処理によれば、ある合成シンボルが、イレージャによって消失しても、他の合成シンボルから、イレージャによって消失した合成シンボルのI成分又はQ成分をI成分又はQ成分とする回転シンボルを復元することができる可能性が高くなり、エラーに対する耐性を向上させることができる。
 図39及び図40を参照して、RC処理によって、合成シンボルが消失しても、回転シンボルを復元することができる原理について説明する。
 図39は、時系列の4個のシンボルを示している。
 すなわち、図39のAは、時系列の4個の回転シンボルSS1,SS2,SS3,SS4を示している。
 図39のAにおいて、SS1のIQ成分は、(I1,Q1)になっており、SS2のIQ成分は、(I2,Q2)になっている。また、SS3のIQ成分は、(I3,Q3)になっており、SS4のIQ成分は、(I4,Q4)になっている。
 いま、インターリーバ515において、I成分をそのままとし、時系列の4個の回転シンボルSS1,SS2,SS3,SS4のQ成分Q1,Q2,Q3,Q4を、1つずつ後ろ(時間的に後)にずらすとともに、最後のQ成分Q4を先頭(時間的に先頭)に移動するインターリーブを、成分インターリーブとして行うこととする。
 図39のBは、上述のような成分インターリーブによって得られる、時系列の4個の合成シンボルSS'1,SS'2,SS'3,SS'4を示している。
 図39のBにおいて、合成シンボルSS'1のI成分は、回転シンボルSS1のI成分I1になっており、合成シンボルSS'1のQ成分は、回転シンボルSS4のQ成分Q4になっている。
 また、合成シンボルSS'2のI成分は、回転シンボルSS2のI成分I2になっており、合成シンボルSS'2のQ成分は、回転シンボルSS1のQ成分Q1になっている。
 さらに、合成シンボルSS'3のI成分は、回転シンボルSS3のI成分I3になっており、合成シンボルSS'3のQ成分は、回転シンボルSS2のQ成分Q2になっている。
 また、合成シンボルSS'4のI成分は、回転シンボルSS4のI成分I4になっており、合成シンボルSS'4のQ成分は、回転シンボルSS3のQ成分Q3になっている。
 図40は、ある1つの合成シンボルが消失した状態を説明する図である。
 すなわち、図40のAは、図39のBに示した4個の合成シンボルSS'1,SS'2,SS'3,SS'4のうちの、3個目の合成シンボルSS'3が消失した状態を示している。
 いま、4個の合成シンボルSS'1,SS'2,SS'3,SS'4のうちの、3個目の合成シンボルSS'3が消失した状態のシンボルのシーケンスに対して、図39で説明した成分インターリーブによる並び替えを元に戻すデインターリーブ(以下、成分デインターリーブともいう)を施すと、図40のBに示す回転シンボルSS''1,SS''2,SS''3,SS''4のシーケンスを得ることができる。
 すなわち、図40のBは、図40のAの4個の合成シンボルSS'1,SS'2,SS'3,SS'4のシーケンス(但し、3個目の合成シンボルSS'3は消失している)に、成分デインターリーブを施して得られる回転シンボルSS''1,SS''2,SS''3,SS''4のシーケンスを示している。
 図39のAの回転シンボルSS1を復元した回転シンボルSS''1としては、消失していない合成シンボルSS'1のI成分I1と、同じく消失していない合成シンボルSS'2のQ成分Q1からなるシンボルを得ることができる。
 同様に、図39のAの回転シンボルSS4を復元した回転シンボルSS''4としては、消失していない合成シンボルSS'4のI成分I4と、同じく消失していない合成シンボルSS'1のQ成分Q4からなるシンボルを得ることができる。
 一方、図39のAの回転シンボルSS2を復元した回転シンボルSS''2については、I成分I2は、消失していない合成シンボルSS'2から得ることができるが、Q成分Q2は、合成シンボルSS'3が消失してしまっているために、得ることができない。
 同様に、図39のAの回転シンボルSS3を復元した回転シンボルSS''3については、Q成分Q3は、消失していない合成シンボルSS'4から得ることができるが、I成分I3は、合成シンボルSS'3が消失してしまっているために、得ることができない。
 しかしながら、図38で説明したように、回転シンボルRSiは、IQ成分が、(I1,Q1)のシンボル、(I2,Q2)のシンボル、(I3,Q3)のシンボル、及び、(I4,Q4)のシンボルの4つのシンボルのうちのいずれかでしかあり得ない。
 このことを利用することにより、I成分、又はQ成分のうちのいずれか一方を得ることができない回転シンボルを、I成分、及びQ成分を有する回転シンボルに復元することができる。
 すなわち、図40のCは、I成分、及びQ成分を有する状態に復元された回転シンボルSS''1ないしSS''4を示している。
 I成分は得られているが、Q成分は得られていない回転シンボルSS''2については、I成分が値I2であるため、Q成分は値Q2でしかあり得ない。したがって、回転シンボルSS''2は、IQ成分が(I2,Q2)の回転シンボルに復元することができる。
 同様に、Q成分は得られているが、I成分は得られていない回転シンボルSS''3については、Q成分が値Q3であるため、I成分は値I3でしかあり得ない。したがって、回転シンボルSS''3は、IQ成分が(I3,Q3)の回転シンボルに復元することができる。
 ところで、上述したカラムツイストインターリーブでは、後段で、RC処理が行われないことを前提として、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、1個のシンボルとされることがないように、LDPC符号の符号ビットの並び替えが行われる。
 すなわち、カラムツイストインターリーブによれば、後段で、RC処理が行われない場合には、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、1個のシンボルとされないことが保証される。
 しかしながら、カラムツイストインターリーブの後段で、RC処理が行われる場合には、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、1個のシンボルとされないことが保証されるとは限らず、したがって、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、1個のシンボルとされることが生じて、復号の性能が劣化するおそれがある。
 すなわち、RC処理では、上述したように、インターリーバ515(図37)において、ある1つの回転シンボルSA'のI成分が、他の1つの回転シンボルSB'のQ成分とペアになるように、成分インターリーブが行われ、合成部516において、成分インターリーブ後のI成分とQ成分を有するシンボルが、合成シンボルとして出力される。
 したがって、ある1個の回転シンボルSA'の位相の回転前のシンボルSAにマッピングされた符号ビットの中や、他の1個の回転シンボルSB'の位相の回転前のシンボルSBにマッピングされた符号ビットの中に、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが存在しなくても、回転シンボルSA'のI成分が、他の1つの回転シンボルSB'のQ成分とペアになるように、成分インターリーブが行われ、その成分インターリーブ後のI成分とQ成分を有するシンボルが、合成シンボルとされると、その合成シンボルにマッピングされた符号ビットの中に、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが存在することが生じ得る。
 そこで、図36の送信装置11は、RC部501(図37)のインターリーバ515において行われる成分インターリーブを制限することで、合成シンボルにマッピングされた符号ビットの中に、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが存在することがないようにする。
 なお、図36の送信装置11では、上述のカラムツイストインターリーブで使用される倍数bが2以上の整数値である、例えば、2であり、LDPC符号の符号ビットをどのように入れ替えてシンボルの各ビットに割り当てるかの入れ替え方式として、例えば、図17で説明した第4の入れ替え方式が採用される。
 第4の入れ替え方式が採用される場合、上述したように、倍数bを2として、メモリ31は、カラム方向×ロウ方向がN/(mb)×(mb)ビットの記憶容量を有し、mb個のカラムから構成される。
 ここで、mは、上述したように、1個のシンボルとされる符号ビットのビット数を表す。図17では、上述したように、1シンボルの符号ビットのビット数mは6ビットになっている。
 第4の入れ替え方式では、LDPC符号の符号ビットが、メモリ31のカラム方向に書き込まれた後、ロウ方向に、mbビット単位で読み出され、入れ替え部32に供給される。
 そして、入れ替え部32は、メモリ31からのmbビットの符号ビットの位置を、第4の入れ替え方式で入れ替える入れ替え処理を行い、その結果得られるmbビットに対応するb個のシンボル、すなわち、mビットを1シンボルとするb個のシンボルを出力する。
 この第4の入れ替え方式で得られる、複数であるb個(図17では、2個)のシンボルについては、前段のカラムツイストインターリーバ24で行われるカラムツイストインターリーブによって、そのb個のシンボルとされた、全部で、mbビットの符号ビットの中に、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが存在することがないことが保証されている。
 したがって、第4の入れ替え方式で得られるb個のシンボルを対象として、そのb個のシンボルのうちの任意の1個のシンボルの符号ビットを、他の1個のシンボルの符号ビットと交換するインターリーブを行っても、そのインターリーブの結果得られるシンボルについては、そのシンボルのmビットの符号ビットの中に、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが存在することがないことが保証される。
 そこで、図36の送信装置11は、RC部501(図37)のインターリーバ515において行われる成分インターリーブを、第4の入れ替え方式で得られるb個のシンボルを対象とするように制限することで、合成シンボルにマッピングされた符号ビットの中に、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが存在することがないことを保証する。
 図41は、RC部501(図37)のインターリーバ515において、上述のように、第4の入れ替え方式で得られるb個のシンボルを対象として行われる成分インターリーブを説明する図である。
 なお、図41では、倍数bを2として、第4の入れ替え方式で、2個のシンボルが出力される(2個単位で、シンボルが出力される)こととする。
 図41のAは、第4の入れ替え方式で2個単位で出力されるシンボルの位相を回転して得られる回転シンボルの、4個の時系列SS1,SS2,SS3,SS4を示している。
 すなわち、図41のAにおいて、4個の回転シンボルSS1,SS2,SS3,SS4のうちの、回転シンボルSS1とSS2は、第4の入れ替え方式で出力された2個のシンボルのそれぞれの位相を回転して得られる回転シンボルである。また、回転シンボルSS3,SS4は、第4の入れ替え方式で、その後に続けて出力された2個のシンボルのそれぞれの位相を回転して得られる回転シンボルである。
 図41のAでは、SS1のIQ成分は、(I1,Q1)になっており、SS2のIQ成分は、(I2,Q2)になっている。また、SS3のIQ成分は、(I3,Q3)になっており、SS4のIQ成分は、(I4,Q4)になっている。
 インターリーバ515では、上述したように、第4の入れ替え方式で出力された2個のシンボルを対象として、成分インターリーブが行われる。
 すなわち、インターリーバ515では、第4の入れ替え方式で出力された2個のシンボルから得られる回転シンボルSS1及びSS2を対象として、例えば、I成分をそのままとし、Q成分を他方の回転シンボルのQ成分とする成分インターリーブが行われる。
 さらに、インターリーバ515では、第4の入れ替え方式で出力された2個のシンボルから得られる回転シンボルSS3及びSS4を対象として、例えば、I成分をそのままとし、Q成分を他方の回転シンボルのQ成分とする成分インターリーブが行われる。
 図41のBは、図41のAの成分インターリーブによって得られる、時系列の4個の合成シンボルSS'1,SS'2,SS'3,SS'4を示している。
 図41のBにおいて、合成シンボルSS'1のI成分は、回転シンボルSS1のI成分I1になっており、合成シンボルSS'1のQ成分は、回転シンボルSS2のQ成分Q2になっている。
 また、合成シンボルSS'2のI成分は、回転シンボルSS2のI成分I2になっており、合成シンボルSS'2のQ成分は、回転シンボルSS1のQ成分Q1になっている。
 さらに、合成シンボルSS'3のI成分は、回転シンボルSS3のI成分I3になっており、合成シンボルSS'3のQ成分は、回転シンボルSS4のQ成分Q4になっている。
 また、合成シンボルSS'4のI成分は、回転シンボルSS4のI成分I4になっており、合成シンボルSS'4のQ成分は、回転シンボルSS3のQ成分Q3になっている。
 以上のように、RC処理を行う場合には、RC処理を行うRC部501(図37)のインターリーバ515での成分インターリーブを、第4の入れ替え方式で得られるb個のシンボルを対象とするように制限することで、合成シンボルにマッピングされた符号ビットの中に、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが存在することがないことが保証され、イレージャのある通信路での復号の性能を向上させることができる。
 なお、図41では、インターリーバ515において、回転シンボルのI成分をそのままとし、Q成分を他の回転シンボルのQ成分とする成分インターリーブを行うようにしたが、成分インターリーブとしては、その他、例えば、回転シンボルのQ成分をそのままとし、I成分を他の回転シンボルのI成分とするインターリーブを行うことが可能である。
 また、図41では、倍数bを2としたが、倍数bは、3以上の値とすることが可能である。3以上の倍数bについては、入れ替え処理後のb個のシンボルから得られるb個の回転シンボルを成分インターリーブの対象として、I成分だけを、他の回転シンボルのI成分とすることや、Q成分だけを、他の回転シンボルのQ成分とすること、I成分を、他の回転シンボルのI成分とするとともに、Q成分を、さらに他の回転シンボルのQ成分とすること等が可能である。
 次に、図42は、送信装置11が図36に示したように構成される場合の、図7の受信装置12の構成例を示している。
 なお、図中、図29の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
 図42の受信装置12は、直交復調部51、デマッピング部52、デインターリーバ53、及びLDPC復号部56を有する点で、図29の場合と共通する。
 また、図42の受信装置12は、逆RC部531が新たに設けられている点で、図29の場合と相違する。
 逆RC部531には、直交復調部51からシンボル(合成シンボル)が供給される。
 逆RC部531は、直交復調部51からの合成シンボルに対して、図36のRC部501が行うRC処理とは、いわば逆の逆RC処理を施し、その逆RC処理によって得られる元のシンボル(図36のRC部501でRC処理が行われる前のシンボル)を得て、デマッピング部52に供給する。
 図43は、図42の逆RC部531の構成例を示している。
 図43において、逆RC部531は、IQ分離部541、バッファ542及び543、デインターリーバ544、合成部545、並びに位相回転部546から構成され、直交復調部51から供給される合成シンボルに、逆RC処理を施す。
 すなわち、IQ分離部541は、直交復調部51からの合成シンボルのI成分とQ成分を分離し、I成分を、バッファ542に供給するとともに、Q成分を、バッファ543に供給する。
 バッファ542は、IQ分離部541からの合成シンボルのI成分を一時記憶する。バッファ542に記憶されたI成分は、必要に応じて、デインターリーバ544に供給される。
 一方、バッファ543は、IQ分離部541からの合成シンボルのQ成分を一時記憶する。バッファ543に記憶されたQ成分は、必要に応じて、デインターリーバ544に供給される。
 デインターリーバ544は、バッファ542からのI成分、及び、バッファ543からのQ成分について、図37のインターリーバ515による成分インターリーブを元に戻すデインターリーブを行い、そのデインターリーブ後のI成分、及びQ成分を、合成部545に供給する。
 合成部545は、デインターリーバ544からのデインターリーブ後のI成分とQ成分を合成することで、回転シンボルを復元し、位相回転部546に供給する。
 なお、合成部545は、合成シンボルが、イレージャ等によって消失している場合、その合成シンボルのI成分又はQ成分をI成分又はQ成分とする回転シンボルを、図40で説明した原理によって復元する。
 位相回転部546は、合成部545からの回転シンボルの位相を、図37の位相回転部511による位相の回転を元に戻すように回転し、位相の回転後のシンボルを、デマッピング部52(図42)に供給する。
 以上のように、受信装置12において、逆RC処理を行うことにより、送信装置11でRC処理が施されたシンボルを元に戻すことができる。
 なお、本実施の形態では、DVB-S.2に規定されているLDPC符号を対象として、パリティインターリーブや、並び替え処理としてのカラムツイストインターリーブを行うようにしたが、パリティインターリーブは、パリティ行列が階段構造になっていれば、情報行列が巡回構造になっていない検査行列のLDPC符号に適用可能であり、並び替え処理としてのカラムツイストインターリーブは、例えば、少なくとも列置換によって擬似巡回構造となる検査行列のLDPC符号や、検査行列の全体が巡回構造になっているQC(Quasi-Cyclic)-LDPC符号等にも適用可能である。
 すなわち、パリティインターリーブの対象とするLDPC符号の検査行列は、そのパリティ行列が階段構造になっていればよく、情報行列が巡回構造になっている必要はない。
 また、並び替え処理としてのカラムツイストインターリーブの対象とするLDPC符号の検査行列は、特に構造が限定されるものではない。
 なお、並び替え処理は、検査行列の任意の1行にある1に対応する複数の符号ビットが、同一のシンボルに含まれないように、LDPC符号の符号ビットを並び替えることができればよく、カラムツイストインターリーブ以外の方法で行うことが可能である。すなわち、並び替え処理は、カラム方向及びロウ方向にデータを記憶するメモリ31ではなく、例えば、1方向にのみデータを記憶するメモリを用い、書き込みアドレス及び読み出しアドレスを制御することによって行うことが可能である。
 また、LDPC符号の符号ビットをどのように入れ替えてシンボルの各ビットに割り当てるかの入れ替え方式として、第4の入れ替え方式を採用する場合には、カラムツイストインターリーブにおけるメモリ31のカラムの書き始めの位置は、図23及び図24で説明した位置に限定されるものではない。
 例えば、第4の入れ替え方式を採用する場合において、DVB-S.2の規格に規定されている、符号長Nが64800の、11個の符号化率それぞれのLDPC符号については、カラムツイストインターリーブに必要なメモリ31のカラム数と、書き始めの位置のアドレスとして、以下のような値を採用することができる。
 すなわち、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、16QAMが採用される場合、1シンボルのビット数mは、4ビットであり、倍数bは2となる。
 この場合、メモリ31は、ロウ方向に4×2ビットを記憶する8個のカラムを有し、カラム方向に64800/(4×2)ビットを記憶する。そして、メモリ31の8個のカラムのうちの1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが1の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが34の位置と、5番目のカラムの書き始めの位置は、アドレスが34の位置と、6番目のカラムの書き始めの位置は、アドレスが36の位置と、7番目のカラムの書き始めの位置は、アドレスが39の位置と、8番目のカラムの書き始めの位置は、アドレスが39の位置と、それぞれされる。
 また、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、64QAMが採用される場合、1シンボルのビット数mは、6ビットであり、倍数bは2となる。
 この場合、メモリ31は、ロウ方向に6×2ビットを記憶する12個のカラムを有し、カラム方向に64800/(6×2)ビットを記憶する。そして、メモリ31の12個のカラムのうちの1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが3の位置と、4番目のカラムの書き始めの位置は、アドレスが4の位置と、5番目のカラムの書き始めの位置は、アドレスが5の位置と、6番目のカラムの書き始めの位置は、アドレスが7の位置と、7番目のカラムの書き始めの位置は、アドレスが9の位置と、8番目のカラムの書き始めの位置は、アドレスが9の位置と、9番目のカラムの書き始めの位置は、アドレスが50の位置と、10番目のカラムの書き始めの位置は、アドレスが51の位置と、11番目のカラムの書き始めの位置は、アドレスが55の位置と、12番目のカラムの書き始めの位置は、アドレスが55の位置と、それぞれされる。
 さらに、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、256QAMが採用される場合、1シンボルのビット数mは、8ビットであり、倍数bは2となる。
 この場合、メモリ31は、ロウ方向に8×2ビットを記憶する16個のカラムを有し、カラム方向に64800/(8×2)ビットを記憶する。そして、メモリ31の16個のカラムのうちの1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが8の位置と、3番目のカラムの書き始めの位置は、アドレスが8の位置と、4番目のカラムの書き始めの位置は、アドレスが12の位置と、5番目のカラムの書き始めの位置は、アドレスが20の位置と、6番目のカラムの書き始めの位置は、アドレスが29の位置と、7番目のカラムの書き始めの位置は、アドレスが29の位置と、8番目のカラムの書き始めの位置は、アドレスが41の位置と、9番目のカラムの書き始めの位置は、アドレスが41の位置と、10番目のカラムの書き始めの位置は、アドレスが42の位置と、11番目のカラムの書き始めの位置は、アドレスが43の位置と、12番目のカラムの書き始めの位置は、アドレスが91の位置と、13番目のカラムの書き始めの位置は、アドレスが92の位置と、14番目のカラムの書き始めの位置は、アドレスが98の位置と、15番目のカラムの書き始めの位置は、アドレスが100の位置と、16番目のカラムの書き始めの位置は、アドレスが102の位置と、それぞれされる。
 また、例えば、第4の入れ替え方式を採用する場合において、DVB-S.2の規格に規定されている、符号長Nが16200の、10個の符号化率それぞれのLDPC符号については、カラムツイストインターリーブに必要なメモリ31のカラム数と、書き始めの位置のアドレスとして、以下のような値を採用することができる。
 すなわち、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、16QAMが採用される場合、1シンボルのビット数mは、4ビットであり、倍数bは2となる。
 この場合、メモリ31は、ロウ方向に4×2ビットを記憶する8個のカラムを有し、カラム方向に16200/(4×2)ビットを記憶する。そして、メモリ31の8個のカラムのうちの1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが1の位置と、5番目のカラムの書き始めの位置は、アドレスが7の位置と、6番目のカラムの書き始めの位置は、アドレスが30の位置と、7番目のカラムの書き始めの位置は、アドレスが32の位置と、8番目のカラムの書き始めの位置は、アドレスが44の位置と、それぞれされる。
 さらに、デマルチプレクサ25(図8)の入れ替え処理の入れ替え方式として、図17の第4の入れ替え方式が採用され、かつ、変調方式として、64QAMが採用される場合、1シンボルのビット数mは、6ビットであり、倍数bは2となる。
 この場合、メモリ31は、ロウ方向に6×2ビットを記憶する12個のカラムを有し、カラム方向に16200/(6×2)ビットを記憶する。そして、メモリ31の12個のカラムのうちの1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが4の位置と、6番目のカラムの書き始めの位置は、アドレスが10の位置と、7番目のカラムの書き始めの位置は、アドレスが10の位置と、8番目のカラムの書き始めの位置は、アドレスが12の位置と、9番目のカラムの書き始めの位置は、アドレスが20の位置と、10番目のカラムの書き始めの位置は、アドレスが29の位置と、11番目のカラムの書き始めの位置は、アドレスが31の位置と、12番目のカラムの書き始めの位置は、アドレスが31の位置と、それぞれされる。
 入れ替え方式として、第4の入れ替え方式を採用し、上述のようなメモリ31のカラムの書き始めの位置(以下、改良位置ともいう)を用いる場合においては、インターリーバ515(図37)において、図39で説明したような、LDPC符号の1符号長分について、I成分をそのままとし、Q成分を1つずつ後ろにずらすローテーション(以下、ローテーションインターリーブともいう)を、成分インターリーブとして行っても、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、1個のシンボルとされることがない。
 すなわち、上述の改良位置は、第4の入れ替え方式を採用し、かつ、インターリーバ515(図37)において、ローテーションインターリーブを行うこととした場合に、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、1個のシンボルとされることがないように、本件発明者が試行錯誤のシミュレーションを行って得られた値である。
 したがって、第4の入れ替え方式を採用し、かつ、インターリーバ515(図37)において、ローテーションインターリーブを行う場合には、カラムツイストインターリーブにおけるメモリ31のカラムの書き始めの位置として、上述の改良位置を採用することにより、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、1個のシンボルとされないことが保証される。
 すなわち、改良位置によれば、RC部501(図37)のインターリーバ515において行われる成分インターリーブを、第4の入れ替え方式で得られるb個のシンボルを対象とするように制限しないで、ローテーションインターリーブを採用しても、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、1個のシンボルとされないことが保証される。
 なお、改良位置によれば、カラムツイストインターリーブの後段において、RC処理を行わない場合にも、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、1個のシンボルとされないことが保証される。
 次に、図8及び図36のLDPC符号化部21について、さらに説明する。
 図11で説明したように、DVB-S.2の規格では、64800ビットと16200ビットとの2通りの符号長NのLDPC符号が規定されている。
 そして、符号長Nが64800ビットのLDPC符号については、11個の符号化率1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5,5/6,8/9、及び9/10が規定されており、符号長Nが16200ビットのLDPC符号については、10個の符号化率1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5,5/6、及び8/9が規定されている(図11のB)。
 LDPC符号化部21は、このような、符号長Nが64800ビットや16200ビットの各符号化率のLDPC符号による符号化(誤り訂正符号化)を、符号長Nごと、及び符号化率ごとに用意された検査行列Hに従って行う。
 図44は、図8及び図36のLDPC符号化部21の構成例を示している。
 LDPC符号化部21は、符号化処理部601と記憶部602とから構成される。
 符号化処理部601は、符号化率設定部611、初期値テーブル読み出し部612、検査行列生成部613、情報ビット読み出し部614、符号化パリティ演算部615、及び制御部616から構成され、LDPC符号化部21に供給される対象データのLDPC符号化を行い、その結果得られるLDPC符号を、ビットインターリーバ22(図8、図36)に供給する。
 すなわち、符号化率設定部611は、例えば、オペレータの操作等に応じて、LDPC符号の符号長Nと符号化率とを設定する。
 初期値テーブル読み出し部612は、符号化率設定部611が設定した符号長N及び符号化率に対応する、後述する検査行列初期値テーブルを、記憶部602から読み出す。
 検査行列生成部613は、初期値テーブル読み出し部612が読み出した検査行列初期値テーブルに基づいて、符号化率設定部611が設定した符号長N及び符号化率に応じた情報長K(=符号長N-パリティ長M)に対応する情報行列HAの1の要素を列方向に360列ごとの周期で配置して検査行列Hを生成し、記憶部602に格納する。
 情報ビット読み出し部614は、LDPC符号化部21に供給される対象データから、情報長K分の情報ビットを読み出す(抽出する)。
 符号化パリティ演算部615は、検査行列生成部613が生成した検査行列Hを記憶部602から読み出し、情報ビット読み出し部614が読み出した情報ビットに対するパリティビットを所定の式に基づいて算出し、符号語(LDPC符号)を生成する。
 制御部616は、符号化処理部601を構成する各ブロックを制御する。
 記憶部602には、64800ビットと16200ビットとの2通りの符号長Nそれぞれについての、図11に示した複数の符号化率それぞれに対応する複数の検査行列初期値テーブル等が格納されている。また、記憶部602は、符号化処理部601の処理上必要なデータを一時記憶する。
 図45は、図44のLDPC符号化部21の処理を説明するフローチャートである。
 ステップS201において、符号化率設定部611は、LDPC符号化を行う符号長N及び符号化率rを決定(設定)する。
 ステップS202において、初期値テーブル読み出し部612は、符号化率設定部611により決定された符号長N及び符号化率rに対応する、予め定められた検査行列初期値テーブルを、記憶部602から読み出す。
 ステップS203において、検査行列生成部613は、初期値テーブル読み出し部612が記憶部602から読み出した検査行列初期値テーブルを用いて、符号化率設定部611により決定された符号長N及び符号化率rのLDPC符号の検査行列Hを求め(生成し)、記憶部602に供給して格納する。
 ステップS204において、情報ビット読み出し部614は、LDPC符号化部21に供給される対象データから、符号化率設定部611により決定された符号長N及び符号化率rに対応する情報長K(=N×r)の情報ビットを読み出すとともに、検査行列生成部613が求めた検査行列Hを、記憶部602から読み出し、符号化パリティ演算部615に供給する。
 ステップS205において、符号化パリティ演算部615は、式(8)を満たす符号語cのパリティビットを順次演算する。
   HcT=0
                        ・・・(8)
 式(8)において、cは、符号語(LDPC符号)としての行ベクトルを表し、cTは、行ベクトルcの転置を表す。
 ここで、上述したように、LDPC符号(1符号語)としての行ベクトルcのうちの、情報ビットの部分を、行ベクトルAで表すとともに、パリティビットの部分を、行ベクトルTで表す場合には、行ベクトルcは、情報ビットとしての行ベクトルAと、パリティビットとしての行ベクトルTとによって、式c =[A|T]で表すことができる。
 検査行列Hと、LDPC符号としての行ベクトルc=[A|T]とは、式HcT=0を満たす必要があり、かかる式HcT=0を満たす行ベクトルc=[A|T]を構成するパリティビットとしての行ベクトルTは、検査行列H=[HA|HT]のパリティ行列HTが、図10に示した階段構造になっている場合には、式HcT=0における列ベクトルHcTの1行目の要素から順に、各行の要素を0にしていくようにすることで、逐次的に求めることができる。
 符号化パリティ演算部615は、情報ビットAに対して、パリティビットTを求めると、その情報ビットAとパリティビットTとによって表される符号語c =[A|T]を、情報ビットAのLDPC符号化結果として出力する。
 なお、符号語cは、648000ビット又は16200ビットである。
 その後、ステップS206において、制御部616は、LDPC符号化を終了するかどうかを判定する。ステップS206において、LDPC符号化を終了しないと判定された場合、すなわち、例えば、LDPC符号化すべき対象データが、まだある場合、処理は、ステップS201に戻り、以下、ステップS201ないしS206の処理が繰り返される。
 また、ステップS206において、LDPC符号化を終了すると判定された場合、すなわち、例えば、LDPC符号化すべき対象データがない場合、LDPC符号化部21は、処理を終了する。
 以上のように、各符号長N、及び、各符号化率rに対応する検査行列初期値テーブルが用意されており、LDPC符号化部21は、所定の符号長Nの、所定の符号化率rのLDPC符号化を、その所定の符号長N、及び、所定の符号化率rに対応する検査行列初期値テーブルから生成される検査行列Hを用いて行う。
 検査行列初期値テーブルは、検査行列Hの、LDPC符号(検査行列Hによって定義されるLDPC符号)の符号長N及び符号化率rに応じた情報長Kに対応する情報行列HA(図9)の1の要素の位置を360列ごとに表すテーブルであり、各符号長N及び各符号化率rの検査行列Hごとに、あらかじめ作成される。
 図46ないし図49は、DVB-S.2の規格に規定されている、図11に示した、符号長が64800ビットの、符号化率rが3/5の検査行列Hに対する検査行列初期値テーブルを示している。
 なお、図47は、図46に続く図であり、図48は、図47に続く図である。また、図49は、図48に続く図である。
 検査行列生成部613(図44)は、検査行列初期値テーブルを用いて、以下のように、検査行列Hを求める。
 すなわち、図50は、検査行列初期値テーブルから検査行列Hを求める方法を示している。
 なお、図50の検査行列初期値テーブルは、検査行列Hを求める方法を説明するためのものであり、実際の検査行列初期値テーブルではない。
 検査行列初期値テーブルは、上述したように、LDPC符号の符号長N及び符号化率rに応じた情報長Kに対応する情報行列HA(図9)の1の要素の位置を、360列ごとに表すテーブルであり、そのi行目には、検査行列Hの1+360×(i-1)列目の1の要素の行番号(検査行列Hの1行目の行番号を0とする行番号)が、その1+360×(i-1)列目の列が持つ列重みの数だけ並んでいる。
 ここで、検査行列Hの、パリティ長Mに対応するパリティ行列HT(図9)は、図19に示したように決まっているので、検査行列初期値テーブルによれば、検査行列Hの、情報長Kに対応する情報行列HA(図9)が求められる。
 検査行列初期値テーブルの行数k+1は、情報長Kによって異なる。
 情報長Kと、検査行列初期値テーブルの行数k+1との間には、式(9)の関係が成り立つ。
   K=(k+1)×360
                        ・・・(9)
 ここで、式(9)の360は、図20で説明した巡回構造の単位の列数Pである。
 図50の検査行列初期値テーブルでは、1行目から15行目までに、10個の数値が並び、16行目からk+1行目までに、3個の数値が並んでいる。
 したがって、図50の検査行列初期値テーブルから求められる検査行列Hの列重みは、1列目から、1+360×(16-1)-1列目までは、10であり、1+360×(16-1)列目から、K列目までは、3である。
 図50の検査行列初期値テーブルの1行目は、1372, 1492, 2242, 2362, 3502, 3622, 6472, 7912, 8362, 10252となっており、これは、検査行列Hの1列目において、行番号が、1372, 1492, 2242, 2362, 3502, 3622, 6472, 7912, 8362, 10252の行の要素が1であること(かつ、他の要素が0であること)を示している。
 また、図50の検査行列初期値テーブルの2行目は、3775, 4732, 6682, 7942, 9712, 10162, 10501, 10343, 10852, 11184となっており、これは、検査行列Hの361(=1+360×(2-1))列目において、行番号が、3775, 4732, 6682, 7942, 9712, 10162, 10501, 10343, 10852, 11184の行の要素が1であることを示している。
 以上のように、検査行列初期値テーブルは、検査行列Hの情報行列HAの1の要素の位置を360列ごとに表す。
 検査行列Hの1+360×(i-1)列目以外の列、つまり、2+360×(i-1)列目から、360×i列目までの各列は、検査行列初期値テーブルによって定まる1+360×(i-1)列目の1の要素を、パリティ長Mに従って下方向(列の下方向)に、周期的にサイクリックシフトして配置したものになっている。
 すなわち、例えば、2+360×(i-1)列目は、1+360×(i-1)列目を、M/360(=q)だけ下方向にサイクリックシフトしたものとなっており、次の3+360×(i-1)列目は、1+360×(i-1)列目を、2×M/360(=2×q)だけ下方向にサイクリックシフトしたもの(2+360×(i-1)列目を、M/360(=q)だけ下方向にサイクリックシフトしたもの)となっている。
 いま、検査行列初期値テーブルのi行目(上からi番目)のj列目(左からj番目)の数値を、hi,jと表すとともに、検査行列Hのw列目の、j個目の1の要素の行番号を、Hw-jと表すこととすると、検査行列Hの1+360×(i-1)列目以外の列であるw列目の、1の要素の行番号Hw-jは、式(10)で求めることができる。
   Hw-j=mod{hi,j+mod((w-1),P)×q,M)
                        ・・・(10)
 ここで、mod(x,y)はxをyで割った余りを意味する。
 また、Pは、上述した巡回構造の単位の列数であり、DVB-S.2の規格では、360である。さらに、qは、パリティ長Mを、巡回構造の単位の列数P(=360)で除算することにより得られる値M/360である。
 検査行列生成部613(図44)は、検査行列初期値テーブルによって、検査行列Hの1+360×(i-1)列目の1の要素の行番号を特定する。
 さらに、検査行列生成部613(図44)は、検査行列Hの1+360×(i-1)列目以外の列であるw列目の、1の要素の行番号Hw-jを、式(10)に従って求め、以上により得られた行番号の要素を1とする検査行列Hを生成する。
 ところで、図46ないし図49に示した、DVB-S.2の規格に規定されている検査行列初期値テーブルから求められる、符号長Nが64800ビットの、符号化率rが3/5の検査行列HのLDPC符号は、他の符号化率のLDPC符号に比較して、性能が劣っている。
 そこで、LDPC符号化部21は、符号長Nが64800ビットの、符号化率rが3/5のLDPC符号については、DVB-S.2の規格に規定されている検査行列初期値テーブルとは異なる、適切な検査行列Hが求められる検査行列初期値テーブルを採用し、その検査行列初期値テーブルから求められる検査行列Hを用いて、性能の良いLDPC符号への符号化を行うようになっている。
 ここで、適切な検査行列Hとは、検査行列Hから得られるLDPC符号の変調信号を、低いEs/N0(1シンボルあたりの信号電力対雑音電力比)、又はEb/No(1ビットあたりの信号電力対雑音電力比)で送信したときに、BER(Bit Error Rate)をより小にする、所定の条件を満たす検査行列である。また、性能の良いLDPC符号とは、適切な検査行列Hから得られるLDPC符号である。
 適切な検査行列Hは、例えば、所定の条件を満たす様々な検査行列から得られるLDPC符号の変調信号を、低いEs/Noで送信したときのBERを計測するシミュレーションを行うことにより求められる。
 適切な検査行列Hが満たすべき所定の条件としては、例えば、デンシティエボリューション(Density Evolution)と呼ばれる符号の性能の解析法で得られる解析結果が良好であること、サイクル4と呼ばれる、1の要素のループが存在しないこと、サイクル6が存在しないこと、等がある。
 図51は、サイクル4とサイクル6を示している。
 情報行列HAにおいて、サイクル4等のように、1の要素が密集していると、LDPC符号の復号性能が劣化することが知られており、このため、適切な検査行列Hが満たすべき所定の条件として、サイクル4等が存在しないことが要求される。
 次に、図52及び図53を参照して、適切な検査行列Hが満たすべき所定の条件としての解析結果が得られるデンシティエボリューションについて説明する。
 デンシティエボリューションとは、後述するデグリーシーケンス(degree sequence)で特徴付けられる符号長Nが∞のLDPC符号全体(アンサンブル(ensemble))に対して、そのエラー確率の期待値を計算する、符号の解析法である。
 例えば、AWGNチャネル上で、ノイズの分散値を0からどんどん大きくしていくと、あるアンサンブルのエラー確率の期待値は、最初は0であるが、ノイズの分散値が、ある閾値(threshold)以上となると、0ではなくなる。
 デンシティエボリューションによれば、そのエラー確率の期待値が0ではなくなる、ノイズの分散値の閾値(以下、性能閾値ともいう)を比較することで、アンサンブルの性能(検査行列の適切さ)の良し悪しを決めることができる。
 なお、具体的なLDPC符号に対して、そのLDPC符号が属するアンサンブルを決定し、そのアンサンブルに対してデンシティエボリューションを行うと そのLDPC符号のおおまかな性能を予想することができる。
 したがって、性能の良いLDPC符号は、性能が良いアンサンブルを見つければ、そのアンサンブルに属するLDPC符号の中から見つけることができる。
 ここで、デグリーシーケンス とは、LDPC符号の符号長Nに対して、各値の重みをもつバリアブルノードやチェックノードがどれくらいの割合あるかを表す。
 例えば、符号化率が1/2のregular(3,6)LDPC符号は、すべてのバリアブルノードの重み(列重み)が3で、すべてのチェックノードの重み(行重み)が6であるというデグリーシーケンスによって特徴付けられるアンサンブルに属する。
 図52は、そのようなアンサンブルのタナーグラフ(Tanner graph)を示している。
 図52のタナーブラフでは、図中丸印(○印)で示すバリアブルノードが、符号長Nに等しいN個だけ存在し、図中四角形(□印)で示すチェックノードが、符号長Nに符号化率1/2を乗算した乗算値に等しいN/2個だけ存在する。
 各バリアブルノードには、列重みに等しい3本の枝(edge)が接続されており、したがって、N個のバリアブルノードに接続している枝は、全部で、3N本だけ存在する。
 また、各チェックノードには、行重みに等しい6本の枝が接続されており、したがって、N/2個のチェックノードに接続している枝は、全部で、3N本だけ存在する。
 さらに、図52のタナーグラフでは、1つのインターリーバが存在する。
 インターリーバは、N個のバリアブルノードに接続している3N本の枝をランダムに並べ替え、その並べ替え後の各枝を、N/2個のチェックノードに接続している3N本の枝のうちのいずれかに繋げる。
 インターリーバでの、N個のバリアブルノードに接続している3N本の枝を並べ替える並べ替えパターンは、(3N)!(=(3N)×(3N-1)×・・・×1)通りだけある。したがって、すべてのバリアブルノードの重みが3で、すべてのチェックノードの重みが6であるというデグリーリーケンスによって特徴付けられるアンサンブルは、(3N)!個のLDPC符号の集合となる。
 性能の良いLDPC符号(適切な検査行列)を求めるシミュレーションでは、デンシティエボリューションにおいて、マルチエッジタイプ(multi-edge type)のアンサンブルを用いた。
 マルチエッジタイプでは、バリアブルノードに接続している枝と、チェックノードに接続している枝とが経由するインターリーバが、複数(multi edge)に分割され、これにより、アンサンブルの特徴付けが、より厳密に行われる。
 図53は、マルチエッジタイプのアンサンブルのタナーグラフの例を示している。
 図53のタナーグラフでは、第1インターリーバと第2インターリーバとの2つのインターリーバが存在する。
 また、図53のタナーグラフでは、第1インターリーバに繋がる枝が1本で、第2インターリーバに繋がる枝が0本のバリアブルノードがv1個だけ、第1インターリーバに繋がる枝が1本で、第2インターリーバに繋がる枝が2本のバリアブルノードがv2個だけ、第1インターリーバに繋がる枝が0本で、第2インターリーバに繋がる枝が2本のバリアブルノードがv3個だけ、それぞれ存在する。
 さらに、図53のタナーグラフでは、第1インターリーバに繋がる枝が2本で、第2インターリーバに繋がる枝が0本のチェックノードがc1個だけ、第1インターリーバに繋がる枝が2本で、第2インターリーバに繋がる枝が2本のチェックノードがc2個だけ、第1インターリーバに繋がる枝が0本で、第2インターリーバに繋がる枝が3本のチェックノードがc3個だけ、それぞれ存在する。
 いま、符号長Nを1とすると、例えば、v1は21/63に、v2は7/63に、v3は35/63に、それぞれなり、c1は21/63に、c2は7/63に、c3は21/63に、それぞれなる。
 なお、符号長Nが64800で、符号化率rが3/5の性能の良いLDPC符号を求めるシミュレーションでは、インターリーバは、図53の場合と同様に、第1インターリーバと第2インターリーバの2つを採用した。
 さらに、符号長Nを1とすると、第1インターリーバに繋がる枝が12本で、第2インターリーバに繋がる枝が0本のバリアブルノードの数を28/180と、第1インターリーバに繋がる枝が3本で、第2インターリーバに繋がる枝が0本のバリアブルノードの数を80/180と、第1インターリーバに繋がる枝が0本で、第2インターリーバに繋がる枝が2本のバリアブルノードを72/180と、それぞれするとともに、第1インターリーバに繋がる枝が8本で、第2インターリーバに繋がる枝が2本のチェックノードの数を72/180とした。
 ここで、デンシティエボリューションと、その実装については、例えば、"On the Design of Low-Density Parity-Check Codes within 0.0045 dB of the Shannon Limit", S.Y.Chung, G.D.Forney, T.J.Richardson,R.Urbanke, IEEE Communications Leggers, VOL.5, NO.2, Feb 2001に記載されている。
 また、マルチエッジタイプのデンシティエボリューションについては、例えば、URLがhttp://lthcwww.epfl.ch/mct/index.phpのwebページに記載されている。
 マルチエッジタイプのデンシティエボリューションによれば、DVB-S.2の規格に規定されている、符号長Nが64800で、符号化率rが3/5のLDPC符号(以下、規格符号ともいう)については、性能閾値としてのEb/N0は、1.0464[dB]であり、Eb/N0が、この性能閾値(以上)となると、BERが落ち始める(小さくなっていく)。
 シミュレーションでは、マルチエッジタイプのデンシティエボリューションによって、性能閾値としてのEb/N0が、規格符号の場合の1.0464[dB]より小さくなるアンサンブルを見つけ、そのアンサンブルに属するLDPC符号の中から、QPSKや、16QAM、64QAM、256QAM等の複数の変調方式におけるBERを小さくするLDPC符号を、性能の良いLDPC符号として選択した。
 図54ないし図57は、性能閾値としてのEb/N0が、規格符号の場合の1.0464[dB]より小さい0.8819[dB]のアンサンブルに属するLDPC符号(符号長Nが64800で、符号化率rが3/5のLDPC符号)のうちの1つの検査行列初期値テーブルを示している。
 なお、図55は、図54に続く図であり、図56は、図55に続く図である。また、図57は、図56に続く図である。
 図54ないし図57の検査行列初期値テーブルから求められる検査行列Hでは、行重みは10で、一定になっている。また、列重みが、12の列が10080列だけ、3の列が28800列だけ、2の列が25920列だけ、それぞれ存在する。
 さらに、サイクルの分布については、サイクル4及びサイクル6は存在せず、サイクル8が63719個だけ、サイクル10が1081個だけ、それぞれ存在する。
 図58ないし図61は、図54ないし図57の検査行列初期値テーブルから求められる検査行列HのLDPC符号よりも、さらに性能の良いLDPC符号(現時点で最も性能の良いLDPC符号の1つ)の検査行列初期値テーブルを示している。
 なお、図59は、図58に続く図であり、図60は、図59に続く図である。また、図61は、図60に続く図である。
 図58ないし図61の検査行列初期値テーブルから求められる検査行列HのLDPC符号は、図54ないし図57の検査行列初期値テーブルから求められる検査行列HのLDPC符号と同一のアンサンブルに属する。
 したがって、図58ないし図61の検査行列初期値テーブルから求められる検査行列Hでは、図54ないし図57の場合と同様に、行重みは10で、一定になっている。また、列重みが、12の列が10080列だけ、3の列が28800列だけ、2の列が25920列だけ、それぞれ存在する。
 なお、図58ないし図61では、サイクルの分布については、サイクル4及びサイクル6は存在せず、サイクル8が63359個だけ、サイクル10が1441個だけ、それぞれ存在する。
 図62は、図58ないし図61の検査行列初期値テーブルから求められる検査行列HのLDPC符号(以下、第1の提案符号ともいう)についてのBERのシミュレーションの結果を示している。
 すなわち、図62は、QPSK、16QAM、64QAM、及び、256QAMの4つの変調方式のそれぞれについて、規格符号のEs/N0に対するBER(図中、破線で示す)と、第1の提案符号のEs/N0に対するBER(図中、実線で示す)とを示している。
 図62から、第1の提案符号は、規格符号よりも性能がよいことが分かる。
 ここで、規格符号の性能閾値としてのEb/N0である1.0464[dB]と、第1の提案符号のアンサンブルの性能閾値としてのEb/N0である0.8819[dB]との差は、約0.16[dB]であるが、この約0.16[dB]の差が、図62のQPSKについての規格符号のBERと、第1の提案符号のBERとの差として現れている。
 図63ないし図66は、図54ないし図57の検査行列初期値テーブルから求められる検査行列HのLDPC符号よりも、さらに性能の良い他のLDPC符号(現時点で最も性能の良いLDPC符号の他の1つ)の検査行列初期値テーブルを示している。
 なお、図64は、図63に続く図であり、図65は、図64に続く図である。また、図66は、図65に続く図である。
 図63ないし図66の検査行列初期値テーブルから求められる検査行列HのLDPC符号(以下、第2の提案符号ともいう)は、第1の提案符号とは異なるアンサンブルに属する。
 図63ないし図66の検査行列初期値テーブルから求められる検査行列Hでは、行重みが、10の行が22680行だけ存在し、9の行が3240行だけ存在する。また、列重みが、12の列が9720列だけ、3の列が29160列だけ、2の列が25920列だけ、それぞれ存在する。
 また、図63ないし図66では、サイクルの分布については、サイクル4及びサイクル6は存在せず、サイクル8が60479個だけ、サイクル10が4321個だけ、それぞれ存在する。
 図67は、第2の提案符号についてのBERのシミュレーションの結果を示している。
 すなわち、図67は、256QAMについての、規格符号のEs/N0に対するBER(図中、破線及び丸印で示す)、第1の提案符号のEs/N0に対するBER(図中、実線及び丸印で示す)、及び、第2の提案符号のEs/N0に対するBER(図中、実線及び三角形の印で示す)を示している。
 図67から、第2の提案符号も、第1の提案符号と同様に、規格符号よりも性能がよいことが分かる。
 さらに、図67によれば、第2の提案符号では、256QAMについての性能が、第1の提案符号よりも良くなっている。これは、第1及び第2の提案符号のそれぞれが属するアンサンブルが異なることによる。
 なお、適切な検査行列Hが満たすべき所定の条件は、LDPC符号の復号性能の向上や、LDPC符号の復号処理の容易化(単純化)等の観点から適宜決定することができる。
 次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
 そこで、図68は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
 プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク705やROM703に予め記録しておくことができる。
 あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体711に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体711は、いわゆるパッケージソフトウエアとして提供することができる。
 なお、プログラムは、上述したようなリムーバブル記録媒体711からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部708で受信し、内蔵するハードディスク705にインストールすることができる。
 コンピュータは、CPU(Central Processing Unit)702を内蔵している。CPU702には、バス701を介して、入出力インタフェース710が接続されており、CPU702は、入出力インタフェース710を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部707が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)703に格納されているプログラムを実行する。あるいは、また、CPU702は、ハードディスク705に格納されているプログラム、衛星若しくはネットワークから転送され、通信部708で受信されてハードディスク705にインストールされたプログラム、又はドライブ709に装着されたリムーバブル記録媒体711から読み出されてハードディスク705にインストールされたプログラムを、RAM(Random Access Memory)704にロードして実行する。これにより、CPU702は、上述したフローチャートに従った処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU702は、その処理結果を、必要に応じて、例えば、入出力インタフェース710を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部706から出力、あるいは、通信部708から送信、さらには、ハードディスク705に記録等させる。
 ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
 また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
 なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。

Claims (4)

  1.  LDPC(Low Density Parity Check)符号による符号化を行う符号化装置において、
     符号長が64800ビットで、符号化率が3/5のLDPC符号による符号化を行う符号化手段を備え、
     前記LDPC符号の検査行列は、その検査行列の、前記符号長、及び前記符号化率に応じた情報長に対応する情報行列の1の要素の位置を360列ごとに表す検査行列初期値テーブルによって定まる前記情報行列の1の要素を、列方向に360列ごとの周期で配置して構成され、
     前記検査行列初期値テーブルは、
     136 2097 9094 9555 9727 10538 14723 15060 16946 19125 20498 21218 
     1381 4057 6656 8648 10100 11445 15870 16487 17328 17769 19927 23106 
     881 1910 2056 10580 10677 11300 13562 13825 16498 17212 18018 21771 
     7105 7336 9089 9129 11111 12284 12802 14838 15952 19102 19581 22732 
     406 2218 2892 7383 11865 15367 17535 18927 20150 20605 20831 20863 
     1649 4467 4545 6374 8542 8872 12151 13579 20765 21073 25062 25475 
     1441 3594 3769 8928 9781 10242 11345 18789 19150 21994 22077 23295 
     2011 2336 3109 6364 7428 9419 12863 12954 14372 14801 23221 23484 
     709 3383 4060 4376 7139 10061 12132 13186 14213 18109 23971 25680 
     1058 6072 8136 8669 13177 16102 16983 17889 19878 19946 24349 25084 
     3852 4604 9328 17131 17920 19926 20690 21690 21967 22878 23223 24014 
     2450 2839 9326 9561 10883 16175 18268 19079 23327 24099 24672 25354 
     3806 4725 7999 8622 12061 12919 15550 17574 20331 23851 24278 25176 
     427 3857 6935 7649 8995 12310 13167 16099 20172 21714 25009 25568 
     32 402 1455 3840 9236 12795 13267 15944 16784 17485 17522 23538 
     4785 4981 5364 6410 6545 7936 8604 11524 11919 14247 17153 17624 
     212 1690 2400 6477 6989 11092 12794 18074 19558 23467 24754 25088 
     983 2693 7535 10928 13184 14400 14836 15540 17734 18665 20873 21923 
     1499 3388 3605 5610 9607 12120 12771 15931 17504 20347 22905 23531 
     1471 2518 2542 3121 3150 7901 9426 18740 20713 20747 22179 23571 
     470 489 4681 9654 10430 12759 13164 14671 15944 16850 20304 25072 
     4623 5407 6974 8592 10520 10823 16682 19229 22563 24424 24883 25476 
     369 804 6672 6695 9829 9881 11174 14586 21663 22762 23164 24268 
     5601 8725 11170 13033 13691 13891 14369 18286 22449 22885 24494 24560 
     779 5795 8704 9425 10460 14103 14680 16650 19259 19810 20000 24928 
     5208 8166 10343 11062 13333 13947 15697 19375 20056 24462 24604 25585 
     1410 2963 4247 4335 14098 15630 17829 20831 21994 24010 24613 25316 
     1385 1809 2611 4382 5157 6378 13948 14681 15682 19357 22129 25049 
     6247 16681 18976 
     22293 23398 24343 
     2632 4956 20467 
     9967 14448 22854 
     3748 9747 11109 
     7858 9793 22408 
     7438 10208 14190 
     13925 17639 19944 
     573 1900 3102 
     1963 13223 22571 
     8867 13229 25850 
     3142 7756 22065 
     4214 15025 18669 
     1974 21138 21644 
     11354 18044 18544 
     1045 13375 20404 
     409 6230 15332 
     1284 7748 22925 
     4357 7844 16149 
     9668 17479 23640 
     155 6248 15541 
     1106 21891 22611 
     4973 9104 15107 
     2835 6866 14134 
     7828 15155 15180 
     19191 20715 24663 
     6089 11745 23536 
     2261 23011 25380 
     987 11540 25790 
     3967 4788 10895 
     7478 9780 16859 
     928 6830 24218 
     1888 4780 17023 
     14353 16436 19299 
     1117 16059 20411 
     7892 12054 25386 
     9663 12916 16754 
     3909 9718 21239 
     7221 20495 25114 
     3353 16613 25510 
     879 969 5849 
     729 6761 24729 
     10845 14248 16013 
     9303 11290 21800 
     11594 15186 17169 
     6849 8962 11679 
     1633 6461 23342 
     1552 3501 4675 
     14155 16896 24174 
     651 6893 10637 
     5346 20076 22444 
     8500 10846 18014 
     5328 9630 18190 
     9266 15499 17198 
     2499 4003 8169 
     8570 14109 15971 
     2165 17600 23649 
     14005 21313 23772 
     10229 22101 25460 
     612 17458 25032 
     1839 8827 10947 
     1614 17076 25277 
     14488 15443 17372 
     4406 6102 19952 
     7938 14722 18648 
     6134 6518 7938 
     2639 3263 10859 
     4132 23574 23904 
     2309 3951 19620 
     2325 17671 23033 
     1381 7905 20256 
     3414 16834 25218 
     4957 11759 19640 
     267 20226 24429 
     7570 9545 17781 
     4714 12210 19364 
     12005 14756 23641 
     11086 18639 19849 
     1035 20633 23419 
     271 4759 17086 
     からなる
     符号化装置。
  2.  LDPC(Low Density Parity Check)符号による符号化を行う符号化装置の符号化方法において、
     前記符号化装置が、符号長が64800ビットで、符号化率が3/5のLDPC符号による符号化を行うステップを含み、
     前記LDPC符号の検査行列は、その検査行列の、前記符号長、及前記符号化率に応じた情報長に対応する情報行列の1の要素の位置を360列ごとに表す検査行列初期値テーブルによって定まる前記情報行列の1の要素を、列方向に360列ごとの周期で配置して構成され、
     前記検査行列初期値テーブルは、
     136 2097 9094 9555 9727 10538 14723 15060 16946 19125 20498 21218 
     1381 4057 6656 8648 10100 11445 15870 16487 17328 17769 19927 23106 
     881 1910 2056 10580 10677 11300 13562 13825 16498 17212 18018 21771 
     7105 7336 9089 9129 11111 12284 12802 14838 15952 19102 19581 22732 
     406 2218 2892 7383 11865 15367 17535 18927 20150 20605 20831 20863 
     1649 4467 4545 6374 8542 8872 12151 13579 20765 21073 25062 25475 
     1441 3594 3769 8928 9781 10242 11345 18789 19150 21994 22077 23295 
     2011 2336 3109 6364 7428 9419 12863 12954 14372 14801 23221 23484 
     709 3383 4060 4376 7139 10061 12132 13186 14213 18109 23971 25680 
     1058 6072 8136 8669 13177 16102 16983 17889 19878 19946 24349 25084 
     3852 4604 9328 17131 17920 19926 20690 21690 21967 22878 23223 24014 
     2450 2839 9326 9561 10883 16175 18268 19079 23327 24099 24672 25354 
     3806 4725 7999 8622 12061 12919 15550 17574 20331 23851 24278 25176 
     427 3857 6935 7649 8995 12310 13167 16099 20172 21714 25009 25568 
     32 402 1455 3840 9236 12795 13267 15944 16784 17485 17522 23538 
     4785 4981 5364 6410 6545 7936 8604 11524 11919 14247 17153 17624 
     212 1690 2400 6477 6989 11092 12794 18074 19558 23467 24754 25088 
     983 2693 7535 10928 13184 14400 14836 15540 17734 18665 20873 21923 
     1499 3388 3605 5610 9607 12120 12771 15931 17504 20347 22905 23531 
     1471 2518 2542 3121 3150 7901 9426 18740 20713 20747 22179 23571 
     470 489 4681 9654 10430 12759 13164 14671 15944 16850 20304 25072 
     4623 5407 6974 8592 10520 10823 16682 19229 22563 24424 24883 25476 
     369 804 6672 6695 9829 9881 11174 14586 21663 22762 23164 24268 
     5601 8725 11170 13033 13691 13891 14369 18286 22449 22885 24494 24560 
     779 5795 8704 9425 10460 14103 14680 16650 19259 19810 20000 24928 
     5208 8166 10343 11062 13333 13947 15697 19375 20056 24462 24604 25585 
     1410 2963 4247 4335 14098 15630 17829 20831 21994 24010 24613 25316 
     1385 1809 2611 4382 5157 6378 13948 14681 15682 19357 22129 25049 
     6247 16681 18976 
     22293 23398 24343 
     2632 4956 20467 
     9967 14448 22854 
     3748 9747 11109 
     7858 9793 22408 
     7438 10208 14190 
     13925 17639 19944 
     573 1900 3102 
     1963 13223 22571 
     8867 13229 25850 
     3142 7756 22065 
     4214 15025 18669 
     1974 21138 21644 
     11354 18044 18544 
     1045 13375 20404 
     409 6230 15332 
     1284 7748 22925 
     4357 7844 16149 
     9668 17479 23640 
     155 6248 15541 
     1106 21891 22611 
     4973 9104 15107 
     2835 6866 14134 
     7828 15155 15180 
     19191 20715 24663 
     6089 11745 23536 
     2261 23011 25380 
     987 11540 25790 
     3967 4788 10895 
     7478 9780 16859 
     928 6830 24218 
     1888 4780 17023 
     14353 16436 19299 
     1117 16059 20411 
     7892 12054 25386 
     9663 12916 16754 
     3909 9718 21239 
     7221 20495 25114 
     3353 16613 25510 
     879 969 5849 
     729 6761 24729 
     10845 14248 16013 
     9303 11290 21800 
     11594 15186 17169 
     6849 8962 11679 
     1633 6461 23342 
     1552 3501 4675 
     14155 16896 24174 
     651 6893 10637 
     5346 20076 22444 
     8500 10846 18014 
     5328 9630 18190 
     9266 15499 17198 
     2499 4003 8169 
     8570 14109 15971 
     2165 17600 23649 
     14005 21313 23772 
     10229 22101 25460 
     612 17458 25032 
     1839 8827 10947 
     1614 17076 25277 
     14488 15443 17372 
     4406 6102 19952 
     7938 14722 18648 
     6134 6518 7938 
     2639 3263 10859 
     4132 23574 23904 
     2309 3951 19620 
     2325 17671 23033 
     1381 7905 20256 
     3414 16834 25218 
     4957 11759 19640 
     267 20226 24429 
     7570 9545 17781 
     4714 12210 19364 
     12005 14756 23641 
     11086 18639 19849 
     1035 20633 23419 
     271 4759 17086 
     からなる
     符号化方法。
  3.  LDPC(Low Density Parity Check)符号による符号化を行う符号化装置において、
     符号長が64800ビットで、符号化率が3/5のLDPC符号による符号化を行う符号化手段を備え、
     前記LDPC符号の検査行列は、その検査行列の、前記符号長、及び前記符号化率に応じた情報長に対応する情報行列の1の要素の位置を360列ごとに表す検査行列初期値テーブルによって定まる前記情報行列の1の要素を、列方向に360列ごとの周期で配置して構成され、
     前記検査行列初期値テーブルは、
     1575 1809 4092 6126 7759 10393 10464 12719 17978 20643 23368 25621 
     113 4035 4776 9792 10722 13013 13388 16734 17295 19396 21099 25016 
     287 2978 4554 5345 11387 12830 13181 13431 15410 16771 23010 25810 
     597 1300 2367 3082 5510 6597 18248 18282 18532 19822 21622 25472 
     3310 6265 6278 7216 14524 20600 20973 21736 21907 22079 23317 25673 
     2386 3485 8018 10102 11309 15124 15383 18288 22716 22832 24990 25326 
     5514 7058 8437 9433 10890 16816 17033 20631 20926 22693 23965 25264 
     2986 5898 7061 10067 10484 10922 10956 11106 13743 16406 19880 22810 
     489 1711 2413 13661 15732 17044 17999 23037 23448 23975 24384 25727 
     920 5683 6159 6443 6627 12971 13623 13867 20623 21974 22258 25371 
     550 2092 4333 5757 9333 10836 13519 19099 21438 22146 22792 23903 
     748 3087 4617 12407 13121 13358 14491 18557 19030 20937 21851 24439 
     5753 7120 8152 9632 11025 15791 16028 21687 23396 24396 25038 25637 
     588 1868 2256 5298 7832 8478 9064 9691 11074 11100 15807 19459 
     3344 3873 14083 16251 17964 18135 18201 19251 23487 24613 25033 25209 
     187 5455 8677 9110 10638 11651 11810 13569 15027 18772 22012 22186 
     1364 1987 4611 8066 8685 11209 13209 17369 20994 25250 25583 25758 
     1061 1524 2345 4772 7259 11248 12994 15156 15413 19153 19749 21199 
     312 3362 5032 5078 7892 12165 13996 16669 21467 22232 24739 24860 
     155 256 7768 9426 9881 10680 11478 12871 17963 19304 22267 22845 
     1094 3806 6653 8829 14766 16089 17304 17676 18025 20326 23325 25582 
     450 3311 3627 4188 8184 14212 15966 16069 16243 20420 24677 24949 
     1359 2877 6559 6720 6830 11647 12184 12604 16542 16791 22247 23916 
     502 2499 3099 9793 10720 13021 13786 18736 21634 21677 22043 23480 
     1356 3429 5265 14275 14931 17489 19140 21541 23597 24002 24265 24855 
     2673 3260 4451 4615 11334 13001 13076 14842 15887 18745 23514 24245 
     253 2920 6538 6673 8504 9844 13005 17367 20471 21195 23049 24231 
     3284 20417 23602 
     5097 7137 9022 
     4963 10784 14569 
     10375 13810 23426 
     7394 17434 20694 
     775 13693 22577 
     999 2763 23870 
     20085 22162 23207 
     5523 15614 20207 
     3288 15846 19273 
     4647 13975 23273 
     5506 5805 17905 
     2421 12022 19523 
     8018 9855 24943 
     3070 9406 14915 
     11611 15956 22382 
     858 3373 12004 
     11846 21041 22894 
     393 2613 14573 
     593 4388 18023 
     4742 7545 13503 
     11108 13281 20952 
     3038 5389 14069 
     10272 10651 25504 
     11553 15499 16144 
     780 10544 22410 
     5334 20106 25570 
     5338 10759 22410 
     1612 5116 25193 
     4686 11267 24696 
     79 8407 14394 
     14077 15613 23465 
     15291 19887 25253 
     2479 12502 22512 
     8888 13346 19317 
     1713 8630 9778 
     9212 13963 19355 
     10721 15476 25812 
     10684 11302 25462 
     6827 7129 21784 
     6890 7170 11884 
     9970 20013 22268 
     4867 11768 22561 
     5755 16057 20952 
     1600 7488 10974 
     7152 19507 20159 
     11274 15649 22227 
     2257 13277 20787 
     17689 23583 24149 
     1668 7547 23702 
     14330 17455 21003 
     2165 8274 25678 
     2662 12434 21736 
     3854 15947 22122 
     14531 17354 21665 
     9674 15014 16352 
     9604 19442 21417 
     18601 21707 24861 
     181 5129 23174 
     2554 11117 15979 
     4350 14110 19039 
     12030 16364 18014 
     7967 16476 25014 
     14987 19199 19397 
     5551 11268 18857 
     1872 8955 12826 
     4006 5279 17389 
     871 5961 21092 
     19259 20534 22368 
     1640 13649 15356 
     2927 10515 23224 
     985 11624 25044 
     896 19716 24186 
     2036 3368 3622 
     2009 12613 17620 
     3022 12131 14948 
     8565 14810 17724 
     10394 11749 13084 
     8207 11785 16492 
     13072 15150 16275 
     192 14361 23349 
     からなる
     符号化装置。
  4.  LDPC(Low Density Parity Check)符号による符号化を行う符号化装置の符号化方法において、
     前記符号化装置が、符号長が64800ビットで、符号化率が3/5のLDPC符号による符号化を行うステップを含み、
     前記LDPC符号の検査行列は、その検査行列の、前記符号長、及前記符号化率に応じた情報長に対応する情報行列の1の要素の位置を360列ごとに表す検査行列初期値テーブルによって定まる前記情報行列の1の要素を、列方向に360列ごとの周期で配置して構成され、
     前記検査行列初期値テーブルは、
     1575 1809 4092 6126 7759 10393 10464 12719 17978 20643 23368 25621 
     113 4035 4776 9792 10722 13013 13388 16734 17295 19396 21099 25016 
     287 2978 4554 5345 11387 12830 13181 13431 15410 16771 23010 25810 
     597 1300 2367 3082 5510 6597 18248 18282 18532 19822 21622 25472 
     3310 6265 6278 7216 14524 20600 20973 21736 21907 22079 23317 25673 
     2386 3485 8018 10102 11309 15124 15383 18288 22716 22832 24990 25326 
     5514 7058 8437 9433 10890 16816 17033 20631 20926 22693 23965 25264 
     2986 5898 7061 10067 10484 10922 10956 11106 13743 16406 19880 22810 
     489 1711 2413 13661 15732 17044 17999 23037 23448 23975 24384 25727 
     920 5683 6159 6443 6627 12971 13623 13867 20623 21974 22258 25371 
     550 2092 4333 5757 9333 10836 13519 19099 21438 22146 22792 23903 
     748 3087 4617 12407 13121 13358 14491 18557 19030 20937 21851 24439 
     5753 7120 8152 9632 11025 15791 16028 21687 23396 24396 25038 25637 
     588 1868 2256 5298 7832 8478 9064 9691 11074 11100 15807 19459 
     3344 3873 14083 16251 17964 18135 18201 19251 23487 24613 25033 25209 
     187 5455 8677 9110 10638 11651 11810 13569 15027 18772 22012 22186 
     1364 1987 4611 8066 8685 11209 13209 17369 20994 25250 25583 25758 
     1061 1524 2345 4772 7259 11248 12994 15156 15413 19153 19749 21199 
     312 3362 5032 5078 7892 12165 13996 16669 21467 22232 24739 24860 
     155 256 7768 9426 9881 10680 11478 12871 17963 19304 22267 22845 
     1094 3806 6653 8829 14766 16089 17304 17676 18025 20326 23325 25582 
     450 3311 3627 4188 8184 14212 15966 16069 16243 20420 24677 24949 
     1359 2877 6559 6720 6830 11647 12184 12604 16542 16791 22247 23916 
     502 2499 3099 9793 10720 13021 13786 18736 21634 21677 22043 23480 
     1356 3429 5265 14275 14931 17489 19140 21541 23597 24002 24265 24855 
     2673 3260 4451 4615 11334 13001 13076 14842 15887 18745 23514 24245 
     253 2920 6538 6673 8504 9844 13005 17367 20471 21195 23049 24231 
     3284 20417 23602 
     5097 7137 9022 
     4963 10784 14569 
     10375 13810 23426 
     7394 17434 20694 
     775 13693 22577 
     999 2763 23870 
     20085 22162 23207 
     5523 15614 20207 
     3288 15846 19273 
     4647 13975 23273 
     5506 5805 17905 
     2421 12022 19523 
     8018 9855 24943 
     3070 9406 14915 
     11611 15956 22382 
     858 3373 12004 
     11846 21041 22894 
     393 2613 14573 
     593 4388 18023 
     4742 7545 13503 
     11108 13281 20952 
     3038 5389 14069 
     10272 10651 25504 
     11553 15499 16144 
     780 10544 22410 
     5334 20106 25570 
     5338 10759 22410 
     1612 5116 25193 
     4686 11267 24696 
     79 8407 14394 
     14077 15613 23465 
     15291 19887 25253 
     2479 12502 22512 
     8888 13346 19317 
     1713 8630 9778 
     9212 13963 19355 
     10721 15476 25812 
     10684 11302 25462 
     6827 7129 21784 
     6890 7170 11884 
     9970 20013 22268 
     4867 11768 22561 
     5755 16057 20952 
     1600 7488 10974 
     7152 19507 20159 
     11274 15649 22227 
     2257 13277 20787 
     17689 23583 24149 
     1668 7547 23702 
     14330 17455 21003 
     2165 8274 25678 
     2662 12434 21736 
     3854 15947 22122 
     14531 17354 21665 
     9674 15014 16352 
     9604 19442 21417 
     18601 21707 24861 
     181 5129 23174 
     2554 11117 15979 
     4350 14110 19039 
     12030 16364 18014 
     7967 16476 25014 
     14987 19199 19397 
     5551 11268 18857 
     1872 8955 12826 
     4006 5279 17389 
     871 5961 21092 
     19259 20534 22368 
     1640 13649 15356 
     2927 10515 23224 
     985 11624 25044 
     896 19716 24186 
     2036 3368 3622 
     2009 12613 17620 
     3022 12131 14948 
     8565 14810 17724 
     10394 11749 13084 
     8207 11785 16492 
     13072 15150 16275 
     192 14361 23349 
     からなる
     符号化方法。
PCT/JP2008/071406 2008-02-22 2008-11-26 符号化装置、及び符号化方法 WO2009104319A1 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008-041504 2008-02-22
JP2008041504 2008-02-22
JP2008-052268 2008-03-03
JP2008052268A JP2009224820A (ja) 2008-02-22 2008-03-03 符号化装置、及び符号化方法

Publications (1)

Publication Number Publication Date
WO2009104319A1 true WO2009104319A1 (ja) 2009-08-27

Family

ID=40985212

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/071406 WO2009104319A1 (ja) 2008-02-22 2008-11-26 符号化装置、及び符号化方法

Country Status (3)

Country Link
JP (1) JP2009224820A (ja)
TW (1) TW201006137A (ja)
WO (1) WO2009104319A1 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012090882A1 (ja) * 2010-12-28 2012-07-05 ソニー株式会社 データ処理装置、及びデータ処理方法
WO2012098984A1 (ja) * 2011-01-19 2012-07-26 ソニー株式会社 データ処理装置、及び、データ処理方法
WO2012098985A1 (ja) * 2011-01-19 2012-07-26 ソニー株式会社 データ処理装置、及び、データ処理方法
WO2012098983A1 (ja) * 2011-01-19 2012-07-26 ソニー株式会社 データ処理装置、及び、データ処理方法
WO2012098982A1 (ja) * 2011-01-19 2012-07-26 ソニー株式会社 データ処理装置、及び、データ処理方法
WO2012147623A1 (ja) * 2011-04-28 2012-11-01 ソニー株式会社 データ処理装置、及び、データ処理方法
WO2012165161A1 (ja) * 2011-05-27 2012-12-06 ソニー株式会社 データ処理装置、及び、データ処理方法
WO2012173061A1 (ja) * 2011-06-15 2012-12-20 ソニー株式会社 データ処理装置、及び、データ処理方法
WO2012172804A1 (ja) * 2011-06-16 2012-12-20 パナソニック株式会社 送信処理方法、送信機、受信処理方法、および受信機
EP2651038A1 (en) * 2010-12-07 2013-10-16 Sony Corporation Data processing device and data processing method
CN104106230A (zh) * 2011-07-06 2014-10-15 北京新岸线移动多媒体技术有限公司 一种用于数据传输的方法及装置
CN103477563B (zh) * 2011-01-19 2016-11-30 索尼公司 数据处理装置和数据处理方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102104937B1 (ko) 2013-06-14 2020-04-27 삼성전자주식회사 Ldpc 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법
JP2015156530A (ja) 2014-02-19 2015-08-27 ソニー株式会社 データ処理装置、及び、データ処理方法
US9952831B1 (en) * 2017-02-16 2018-04-24 Google Llc Transposing in a matrix-vector processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005340920A (ja) * 2004-05-24 2005-12-08 Samsung Yokohama Research Institute Co Ltd 信号処理装置、符号化方法および復号方法
JP2007166425A (ja) * 2005-12-15 2007-06-28 Fujitsu Ltd 符号器および復号器
JP2008263566A (ja) * 2007-03-20 2008-10-30 Nippon Hoso Kyokai <Nhk> 符号化器及び復号器、並びに送信装置及び受信装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005340920A (ja) * 2004-05-24 2005-12-08 Samsung Yokohama Research Institute Co Ltd 信号処理装置、符号化方法および復号方法
JP2007166425A (ja) * 2005-12-15 2007-06-28 Fujitsu Ltd 符号器および復号器
JP2008263566A (ja) * 2007-03-20 2008-10-30 Nippon Hoso Kyokai <Nhk> 符号化器及び復号器、並びに送信装置及び受信装置

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2651038A4 (en) * 2010-12-07 2014-05-28 Sony Corp DATA PROCESSING DEVICE AND DATA PROCESSING METHOD
EP2651038A1 (en) * 2010-12-07 2013-10-16 Sony Corporation Data processing device and data processing method
US9106263B2 (en) 2010-12-07 2015-08-11 Sony Corporation Data processing device and data processing method
US10361724B2 (en) 2010-12-28 2019-07-23 Saturn Licensing Llc Data processing device and data processing method for improving resistance to error of data
CN103339862B (zh) * 2010-12-28 2017-08-22 索尼公司 数据处理装置和数据处理方法
CN103339862A (zh) * 2010-12-28 2013-10-02 索尼公司 数据处理装置和数据处理方法
JP2012151520A (ja) * 2010-12-28 2012-08-09 Sony Corp データ処理装置、及びデータ処理方法
WO2012090882A1 (ja) * 2010-12-28 2012-07-05 ソニー株式会社 データ処理装置、及びデータ処理方法
JP2012151653A (ja) * 2011-01-19 2012-08-09 Sony Corp データ処理装置、及び、データ処理方法
WO2012098983A1 (ja) * 2011-01-19 2012-07-26 ソニー株式会社 データ処理装置、及び、データ処理方法
CN103477563B (zh) * 2011-01-19 2016-11-30 索尼公司 数据处理装置和数据处理方法
US9184768B2 (en) 2011-01-19 2015-11-10 Sony Corporation Data-processing device and data-processing method
WO2012098985A1 (ja) * 2011-01-19 2012-07-26 ソニー株式会社 データ処理装置、及び、データ処理方法
WO2012098982A1 (ja) * 2011-01-19 2012-07-26 ソニー株式会社 データ処理装置、及び、データ処理方法
JP2012151654A (ja) * 2011-01-19 2012-08-09 Sony Corp データ処理装置、及び、データ処理方法
WO2012098984A1 (ja) * 2011-01-19 2012-07-26 ソニー株式会社 データ処理装置、及び、データ処理方法
CN103477563A (zh) * 2011-01-19 2013-12-25 索尼公司 数据处理装置和数据处理方法
US9071276B2 (en) 2011-01-19 2015-06-30 Sony Corporation Data-processing device and data-processing method
US9077380B2 (en) 2011-04-28 2015-07-07 Sony Corporation Data processing device and data processing method
WO2012147623A1 (ja) * 2011-04-28 2012-11-01 ソニー株式会社 データ処理装置、及び、データ処理方法
CN103609025A (zh) * 2011-04-28 2014-02-26 索尼公司 数据处理装置和数据处理方法
CN103548272A (zh) * 2011-05-27 2014-01-29 索尼公司 数据处理装置和数据处理方法
WO2012165161A1 (ja) * 2011-05-27 2012-12-06 ソニー株式会社 データ処理装置、及び、データ処理方法
JP2012249046A (ja) * 2011-05-27 2012-12-13 Sony Corp データ処理装置、及び、データ処理方法
TWI481203B (zh) * 2011-05-27 2015-04-11 Sony Corp Data processing device and data processing method
US9026884B2 (en) 2011-05-27 2015-05-05 Sony Corporation Data processing device and data processing method
TWI479807B (zh) * 2011-06-15 2015-04-01 Sony Corp Data processing device and data processing method
JP2013005124A (ja) * 2011-06-15 2013-01-07 Sony Corp データ処理装置、及び、データ処理方法
US9135108B2 (en) 2011-06-15 2015-09-15 Sony Corporation Data processing device and data processing method
WO2012173061A1 (ja) * 2011-06-15 2012-12-20 ソニー株式会社 データ処理装置、及び、データ処理方法
WO2012172804A1 (ja) * 2011-06-16 2012-12-20 パナソニック株式会社 送信処理方法、送信機、受信処理方法、および受信機
TWI572147B (zh) * 2011-06-16 2017-02-21 Sun Patent Trust A transmission processing method, a transmitter, a reception processing method, and a receiver
JP5600806B2 (ja) * 2011-06-16 2014-10-01 パナソニック株式会社 送信処理方法、送信機、受信処理方法、および受信機
US8837618B2 (en) 2011-06-16 2014-09-16 Panasonic Corporation Transmission processing method, transmitter, reception processing method, and receiver
CN104106230A (zh) * 2011-07-06 2014-10-15 北京新岸线移动多媒体技术有限公司 一种用于数据传输的方法及装置
CN104106230B (zh) * 2011-07-06 2017-06-16 北京新岸线移动多媒体技术有限公司 一种用于数据传输的方法及装置

Also Published As

Publication number Publication date
JP2009224820A (ja) 2009-10-01
TW201006137A (en) 2010-02-01

Similar Documents

Publication Publication Date Title
JP5359882B2 (ja) データ処理装置、及びデータ処理方法
JP5359881B2 (ja) データ処理装置、及びデータ処理方法
JP5273055B2 (ja) データ処理装置、及びデータ処理方法、並びに、符号化装置、及び符号化方法
JP6517313B2 (ja) ディジタル放送受信装置、及びディジタル放送受信方法
JP5601182B2 (ja) データ処理装置、及びデータ処理方法
JP5672489B2 (ja) データ処理装置、及び、データ処理方法
JP5648852B2 (ja) データ処理装置、及び、データ処理方法
WO2009104319A1 (ja) 符号化装置、及び符号化方法
JP5630278B2 (ja) データ処理装置、及びデータ処理方法
JP5664919B2 (ja) データ処理装置、及び、データ処理方法
JP5288212B2 (ja) データ処理装置、及びデータ処理方法
JP5630282B2 (ja) データ処理装置、及び、データ処理方法
JP5637393B2 (ja) データ処理装置、及び、データ処理方法
JP5288213B2 (ja) データ処理装置、及びデータ処理方法
JP5630283B2 (ja) データ処理装置、及び、データ処理方法
JP6364416B2 (ja) データ処理装置、データ処理方法、及び、記録媒体
WO2011105287A1 (ja) データ処理装置、及びデータ処理方法
WO2012098985A1 (ja) データ処理装置、及び、データ処理方法
WO2011105288A1 (ja) データ処理装置、及びデータ処理方法
JP2011176645A (ja) データ処理装置、及びデータ処理方法
JP2011182073A (ja) データ処理装置、及びデータ処理方法
WO2011105289A1 (ja) データ処理装置、及びデータ処理方法
JP2012235269A (ja) データ処理装置、及び、データ処理方法
JPWO2015041075A1 (ja) データ処理装置、及びデータ処理方法
JP2012239130A (ja) データ処理装置、及び、データ処理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08872502

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08872502

Country of ref document: EP

Kind code of ref document: A1