WO2024004047A1 - 復号装置、制御回路、記憶媒体および検査行列生成方法 - Google Patents
復号装置、制御回路、記憶媒体および検査行列生成方法 Download PDFInfo
- Publication number
- WO2024004047A1 WO2024004047A1 PCT/JP2022/025822 JP2022025822W WO2024004047A1 WO 2024004047 A1 WO2024004047 A1 WO 2024004047A1 JP 2022025822 W JP2022025822 W JP 2022025822W WO 2024004047 A1 WO2024004047 A1 WO 2024004047A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- matrix
- check matrix
- row
- unit
- parity check
- Prior art date
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 353
- 238000000034 method Methods 0.000 title claims description 58
- 238000004891 communication Methods 0.000 claims abstract description 98
- 238000004364 calculation method Methods 0.000 claims description 83
- 230000000873 masking effect Effects 0.000 claims description 45
- 230000015654 memory Effects 0.000 description 73
- 238000010586 diagram Methods 0.000 description 14
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000006866 deterioration Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
Definitions
- the present disclosure relates to a decoding device, a control circuit, a storage medium, and a parity check matrix generation method used in a communication device.
- LDPC Low Density Parity Check
- Patent Document 1 some or all rows of a parity check matrix constituting an LDPC code are divided into two or more rows, and the position where "1" of the row of the original parity check matrix was Then, a new parity check matrix is generated by allocating "1" to one of two or more rows after the division, under the condition that the row vectors of the parity check matrix after the row division are linearly independent.
- the present disclosure has been made in view of the above, and aims to provide a decoding device that can suppress deterioration of code performance when the number of rows of a parity check matrix is increased.
- a decoding device of the present disclosure sets P as a positive integer, can be divided into blocks of P ⁇ P small matrices, and is a low-density decoding device used in communication.
- a storage unit that stores a first check matrix with the maximum coding rate assumed as a check matrix of a parity check code, and a unit row containing small matrices in the column direction included in the first check matrix. , generates the first row in which some blocks are replaced with 0 matrices, and further replaces the specified blocks with 0 matrices while replacing the positions of 1 in the sub-matrices of other blocks with specified fixed values.
- the present invention is characterized by comprising a generation unit that generates one or more shifted second rows to generate a second parity check matrix having a lower coding rate than the first parity check matrix.
- the decoding device has the effect of suppressing deterioration of code performance when the number of rows of a parity check matrix is increased.
- Flowchart showing the operation of the parity check matrix generation device according to the first embodiment A diagram illustrating an example of the configuration of a processing circuit when the processing circuit that implements the communication device according to Embodiment 1 is configured of a processor and a memory.
- a diagram showing an example of a processing circuit when the processing circuit realizing the communication device according to Embodiment 1 is configured with dedicated hardware.
- Flowchart showing the operation of row calculation by the row calculation unit of the decoding unit according to Embodiment 2 A diagram illustrating a configuration example of a column operation unit included in a decoding unit according to Embodiment 3.
- FIG. 1 is a diagram showing a configuration example of a communication system 400 including communication devices 100 and 300 according to the first embodiment.
- the communication device 100 transmits a signal encoded using an LDPC code to the communication device 300 via the communication path 200, and the communication device 300 performs decoding processing on the received signal.
- It is a system.
- Communication device 100 includes an encoding device 110 and a transmitter 140.
- Encoding device 110 includes check matrix generation device 120 and encoding section 130.
- Check matrix generation device 120 includes a storage section 121 and a generation section 122.
- the communication device 300 includes a receiving section 310 and a decoding device 320.
- the decoding device 320 includes a parity check matrix generation device 330 and a decoding section 340.
- Check matrix generation device 330 includes a storage section 331 and a generation section 332.
- the encoding device 110 performs encoding processing on communication bits obtained from a higher-level device (not shown) or the like.
- check matrix generation device 120 generates a parity check matrix used in encoding processing for communication bits.
- the encoding unit 130 acquires the parity check matrix from the check matrix generation device 120 and performs encoding processing on the communication bits.
- the transmitter 140 performs modulation processing on the communication bits encoded by the encoder 130 of the encoder 110 and transmits the modulated signal to the communication device 300 via the communication path 200. do.
- the parity check matrix may be simply referred to as a check matrix.
- the receiving unit 310 performs demodulation processing and the like on the received signal received from the communication device 100 via the communication path 200.
- the decoding device 320 performs decoding processing on the demodulated signal, generates a decoding result, and outputs it to a higher-level device (not shown) or the like.
- the parity check matrix generation device 330 generates a parity check matrix used in the decoding process for the signal after the demodulation process.
- the decoding unit 340 acquires a parity check matrix from the parity check matrix generation device 330, and performs a decoding process on the demodulated signal.
- the check matrix generation device 120 included in the communication device 100 and the check matrix generation device 330 included in the communication device 300 add rows to the original parity check matrix to generate the original parity check matrix.
- a method of generating a parity check matrix having a different coding rate from that of a matrix will be explained.
- the parity check matrix generation device 120 and the parity check matrix generation device 330 have the same configuration.
- the storage unit 121 and generation unit 122 included in the parity check matrix generation device 120 and the storage unit 331 and generation unit 332 included in the parity check matrix generation device 330 have similar configurations. Since the parity check matrix generation device 120 and the parity check matrix generation device 330 perform similar operations, the parity check matrix generation device 330 will be described below as an example.
- the LDPC code to be handled is a systematic code.
- the parity check matrix is an m ⁇ n matrix
- m columns from the rightmost column of the parity check matrix correspond to parity bits.
- m and n are positive integers.
- the decoding device 320 including the parity check matrix generation device 330 performs decoding processing of an LDPC code using an encoding parity check matrix that is a coding matrix obtained by lower triangulating a parity check matrix.
- the check matrix generation device 330 can vary the coding rate of the LDPC code by adding the number of rows of the parity check matrix to the parity check matrix of the base LDPC code with the highest coding rate. .
- FIG. 2 is a diagram illustrating an example of an addition method by which check matrix generation device 330 according to Embodiment 1 adds rows to a parity check matrix.
- the parity check matrix with a coding rate of 4/5 in the upper row is stored in advance in the storage unit 331, and is the parity check matrix of the LDPC code with the highest coding rate as the base.
- the parity check matrix with a coding rate of 3/5 in the middle row is obtained by adding two rows by the generation unit 332 using a parity check matrix with a coding rate of 4/5.
- the parity check matrix with a coding rate of 1/2 in the lower row has three rows added by the generation unit 332 using a parity check matrix with a coding rate of 4/5.
- parity check matrix generation device 330 the generation unit 332 performs the process of adding rows to the parity check matrix.
- Check matrix generation device 330 stores in storage unit 331 in advance a parity check matrix of the highest coding rate expected in communication system 400 shown in FIG. 1, which is a coding rate of 4/5 in the first embodiment.
- a parity check matrix with the highest coding rate is composed of a small matrix of P ⁇ P matrices, where P is a common divisor of the number of rows m and the number of columns n of the parity check matrix. Note that P is also a positive integer. For example, a parity check matrix with a coding rate of 4/5 shown in FIG.
- the parity check matrix with the highest coding rate stored in the storage unit 331 may be referred to as a first check matrix. That is, the storage unit 331 stores a first check matrix that can be divided into blocks of P ⁇ P small matrices and has the maximum coding rate assumed as a check matrix of a low-density parity check code used in communication.
- a first check matrix that can be divided into blocks of P ⁇ P small matrices and has the maximum coding rate assumed as a check matrix of a low-density parity check code used in communication.
- parity check matrix to which the number of rows is added which is generated by the generation unit 332
- a second check matrix the parity check matrix to which the number of rows is added
- a small matrix consisting of a P ⁇ P matrix it is obtained by cyclically right-shifting the 1 position of the 0 matrix, or the identity matrix, or the identity matrix by i positions, where all the component values are 0.
- the parts indicated by 0 are 0 matrices, and the parts indicated by S(A1), S(B2), T(A1), etc. are cyclic permutation matrices.
- the generation unit 332 As a procedure for adding rows to the parity check matrix, the generation unit 332 adds some of the row components to the row of the first block of the parity check matrix for the code with a coding rate of 4/5 stored in the storage unit 331.
- a row of the first block of the parity check matrix is generated by leaving a part as a 0 matrix and leaving the other part as a parity check matrix with a coding rate of 4/5.
- the generation unit 332 sets some of the row components to a 0 matrix for the row of the first block of the parity check matrix of the code with a coding rate of 4/5. At this time, the generation unit 332 prevents the part that is a 0 matrix in the first block from becoming a 0 matrix. In addition, the generation unit 332 generates a part that is not a 0 matrix by circularly shifting the position of 1 in a parity check matrix with a coding rate of 4/5 by a fixed value, and generates a 2nd block of the parity check matrix. Generates a row of .
- the generation unit 332 sets a part of the row components to a 0 matrix, and sets the other part to a 0 matrix with the coding rate 4/5.
- the row of the third block of the parity check matrix is generated with the parity check matrix of .
- the generation unit 332 sets some of the row components to a 0 matrix for the row of the second block of the parity check matrix of the code with a coding rate of 4/5. At this time, the generation unit 332 prevents the portion that is a 0 matrix in the third block from becoming a 0 matrix. In addition, the generation unit 332 generates a fixed-value cyclic shift of the position of 1 in the parity check matrix with a coding rate of 4/5 for the part that is not a 0 matrix, and generates a 4th block of the parity check matrix. Generates a row of .
- the generation unit 332 expands the rows as described above, and generates a coding rate composed of a small matrix of a P ⁇ P matrix for 4 blocks as a row component and a small matrix of a P ⁇ P matrix for 10 blocks as a column component.
- a 3/5 parity check matrix can be generated.
- the generation unit 332 generates a parity check matrix with a coding rate of 1/2 shown in the lower part of FIG. 2
- the generation unit 332 adds some of the row components to the row of the first block of the parity check matrix for the code with a coding rate of 4/5 stored in the storage unit 331.
- a row of the first block of the parity check matrix is generated by leaving a part as a 0 matrix and leaving the other part as a parity check matrix with a coding rate of 4/5.
- the generation unit 332 sets some of the row components to a 0 matrix for the row of the first block of the parity check matrix of the code with a coding rate of 4/5.
- the generation unit 332 generates a part that is not a 0 matrix by circularly shifting the position of 1 in a parity check matrix with a coding rate of 4/5 by a fixed value, and generates a 2nd block of the parity check matrix. Generates a row of .
- the generation unit 332 sets some of the row components to a 0 matrix for the row of the first block of the parity check matrix of the code with a coding rate of 4/5. At this time, the generation unit 332 prevents the part that is a 0 matrix in the second block from becoming a 0 matrix. In addition, for the part that is not set as a 0 matrix, the generation unit 332 sets a fixed value to a position where 1 is set in the parity check matrix with a coding rate of 4/5 with a fixed value different from that when generating the second block. A circularly shifted result is generated to generate the row of the third block of the parity check matrix.
- the generation unit 332 sets a part of the row components to a 0 matrix, and sets the other part to a 0 matrix with the coding rate 4/5.
- the row of the fourth block of the parity check matrix is generated with the parity check matrix of .
- the generation unit 332 sets some of the row components to a 0 matrix for the row of the second block of the parity check matrix of the code with a coding rate of 4/5. At this time, the generation unit 332 makes sure that the portion of the fourth block that is a 0 matrix does not become a 0 matrix. In addition, the generation unit 332 generates a fixed-value cyclic shift of the position of 1 in the parity check matrix with a coding rate of 4/5 for the part that is not a 0 matrix, and generates the 5th block of the parity check matrix. Generates a row of .
- the generation unit 332 expands the rows as described above, and generates a coding rate composed of a small matrix of a P ⁇ P matrix for 5 blocks as a row component and a small matrix of a P ⁇ P matrix for 10 blocks as a column component.
- a 1/2 parity check matrix can be generated.
- the generation unit 332 can also generate parity check matrices for codes with other coding rates in a similar manner. Using the method described above, the generation unit 332 can make the code length constant and the coding rate variable for the parity check matrix used by the decoding unit 340. In the above example, the generation unit 332 generates the parity check matrix by cyclically shifting a fixed value for each row, but the amount of shift may be changed for each column component.
- the generation unit 332 increases the coding rate by making some blocks of the row blocks of the original parity check matrix a 0 matrix, and shifting other blocks by a certain amount and expanding them into multiple rows. You can make it smaller. Thereby, the generation unit 332 can suppress deterioration in code performance since the row weight and column weight may not become smaller than the row weight and column weight of the original LDPC code.
- the generation unit 332 may store the generated parity check matrix with a coding rate of 3/5, parity check matrix with a coding rate of 1/2, etc. in the storage unit 331. As a result, even when the communication device 100 changes the coding rate of the coding process according to the situation of the communication path 200, the generation unit 332 can perform the coding process by storing the parity check matrix generated in the past. Compared to the case where a parity check matrix is generated each time the rate is changed, the calculation processing can be reduced.
- the communication device 300 when the communication device 300 decodes the signal transmitted from the communication device 100, it is known what kind of coding rate the parity check matrix was used by the communication device 100 to encode the signal. If so, the decoding process can be performed efficiently.
- the communication device 100 and the communication device 300 use the method shown in the middle of FIG. 2 for adding two rows of a parity check matrix, and the method shown in FIG. 2 for adding three rows of a parity check matrix, for example. It is assumed that it operates according to common rules, such as the method shown in the lower part of .
- the communication device 100 may notify the communication device 300 of information on the coding rate of the parity check matrix used, or a higher-level device (not shown) may notify the communication device 300 of the coding rate of the parity check matrix used. may be notified of the coding rate of the parity check matrix to be used.
- FIG. 3 is a flowchart showing the operation of check matrix generation device 330 according to the first embodiment.
- the generation unit 332 reads from the storage unit 331 a parity check matrix that can be divided into P ⁇ P small matrix blocks and has the highest coding rate expected in the communication system 400 (step S101 ).
- the generation unit 332 selects one row from the read parity check matrix (step S102). Using the selected row, the generation unit 332 generates a first row in which some blocks of row components are made into a 0 matrix and other blocks are made into original row components (step S103).
- the first row is the first and third rows of the parity check matrix with a coding rate of 3/5 shown in the middle row of FIG. 2, and the first row of the parity check matrix with a coding rate of 1/2 shown in the bottom row of FIG. This corresponds to the second line and fourth line.
- the generation unit 332 When generating one second row using the selected row (step S104: Yes), the generation unit 332 generates a block that is part of the row components and is at a different position from the block that is made into a zero matrix in the first row.
- a second row is generated by making the block 0 matrix and cyclically shifting the position of 1 in other blocks by a prescribed fixed value (step S105).
- the second row generated in step S105 is the second and fourth rows of the parity check matrix with a coding rate of 3/5 shown in the middle row of FIG. 2, and the second row with a coding rate of 1/2 shown in the bottom row of FIG. This corresponds to the fifth row of the parity check matrix.
- the generation unit 332 determines the position of a block that is part of the row components and differs between the second rows. is set as a 0 matrix, and two or more second rows are generated by circularly shifting the position of 1 in another block by a different fixed value defined for each second row (step S106).
- the second row generated in step S106 corresponds to the second and third rows of the parity check matrix with a coding rate of 1/2 shown in the lower part of FIG.
- step S107: No If the number of rows of the parity check matrix to be generated has not reached the desired number (step S107: No), the generation unit 332 returns to step S102 and deletes one unselected row from the read parity check matrix. select. When the number of rows of the parity check matrix to be generated reaches the desired number of rows (step S107: Yes), the generation unit 332 ends the operation.
- the generation unit 332 generates a first row in which some blocks are replaced with 0 matrices using unit rows that include small matrices in the column direction, which are included in the first parity check matrix, Furthermore, one or more second rows are generated by replacing the specified block with a 0 matrix and shifting the position of 1 included in the sub-matrix of other blocks by a specified fixed value, and creating the first parity check matrix. A second parity check matrix with a lower coding rate is generated. When generating one second row, the generation unit 332 replaces blocks that have not been replaced with a 0 matrix in the first row as defined blocks with a 0 matrix.
- the generation unit 332 when generating two or more second rows, replaces a block that differs by the two or more second rows with a 0 matrix as a specified block, and Change a fixed value to a different value.
- the generation unit 332 generates a first row and one or more second rows for each row using a plurality of rows included in the first parity check matrix, which are units including small matrices in the column direction.
- receiving section 310 is a communication device.
- the decoding device 320 is realized by a processing circuit.
- the processing circuit may be a processor and memory that executes a program stored in memory, or may be dedicated hardware.
- the processing circuit is also called a control circuit.
- FIG. 4 is a diagram showing a configuration example of the processing circuit 90 in the case where the processing circuit realizing the communication device 300 according to the first embodiment is configured by the processor 91 and the memory 92.
- a processing circuit 90 shown in FIG. 4 is a control circuit and includes a processor 91 and a memory 92.
- each function of the processing circuit 90 is realized by software, firmware, or a combination of software and firmware.
- Software or firmware is written as a program and stored in memory 92.
- each function is realized by a processor 91 reading and executing a program stored in a memory 92.
- the processing circuit 90 includes a memory 92 for storing a program by which the processing of the communication device 300 is eventually executed.
- This program can also be said to be a program for causing the communication device 300 to execute each function realized by the processing circuit 90.
- This program may be provided by a storage medium in which the program is stored, or may be provided by other means such as a communication medium.
- the decoding device 320 can divide into blocks of P ⁇ P small matrices, and the first code with the maximum coding rate assumed as a check matrix of a low-density parity check code used in communication.
- the generation unit 332 replaces some blocks with 0 matrices using unit rows including small matrices in the column direction, which are included in the first check matrix.
- the generation unit 332 further converts the specified block to 0 using the unit row including the small matrix in the column direction, which is included in the first parity check matrix.
- a second row with a coding rate lower than that of the first check matrix is generated by generating one or more second rows in which the position of 1 included in the submatrix of another block is shifted by a specified fixed value while replacing the check matrix with a matrix. It can also be said that the second step of generating the check matrix No. 2 is a program executed by the communication device 300.
- the processor 91 is, for example, a CPU (Central Processing Unit), a processing device, an arithmetic device, a microprocessor, a microcomputer, or a DSP (Digital Signal Processor).
- the memory 92 may be a nonvolatile or volatile memory such as RAM (Random Access Memory), ROM (Read Only Memory), flash memory, EPROM (Erasable Programmable ROM), or EEPROM (registered trademark) (Electrically EPROM). This includes semiconductor memory, magnetic disks, flexible disks, optical disks, compact disks, mini disks, and DVDs (Digital Versatile Discs).
- FIG. 5 is a diagram illustrating an example of the processing circuit 93 when the processing circuit realizing the communication device 300 according to the first embodiment is configured with dedicated hardware.
- the processing circuit 93 shown in FIG. 5 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or a combination of these. applicable.
- a part may be realized by dedicated hardware, and a part may be realized by software or firmware. In this way, the processing circuit can implement each of the above-mentioned functions using dedicated hardware, software, firmware, or a combination thereof.
- the hardware configuration of the communication device 300 has been described, the hardware configuration of the communication device 100 is also similar.
- the transmitter 140 is a communication device.
- Encoding device 110 is realized by a processing circuit.
- the processing circuit may be a processor and memory that executes a program stored in memory, or may be dedicated hardware.
- the generation unit 122 of the parity check matrix generation device 120 and the generation unit 332 of the parity check matrix generation device 330 can be divided into blocks of P ⁇ P small matrices. , some blocks are set to 0 using unit rows that include small matrices in the column direction, which are included in the first check matrix of the maximum coding rate assumed as the check matrix of the LDPC code used in communication. Generate the first row replaced by a matrix.
- the generation unit 122 of the check matrix generation device 120 and the generation unit 332 of the check matrix generation device 330 further generate the specified A second row of 1 or more is generated by replacing the block with a 0 matrix and shifting the position of 1 included in the submatrix of another block by a specified fixed value, and the coding rate is higher than that of the first check matrix.
- the encoding device 110 including the parity check matrix generation device 120 and the decoding device 320 including the parity check matrix generation device 330 can suppress deterioration of code performance when the number of rows of the parity check matrix is increased.
- Embodiment 2 In the communication system 400 shown in FIG. 1, the communication device 300 performs the encoding process in the communication device 100 and the decoding process in the decoding device 320 on a signal received from the communication device 100 via the communication path 200. .
- the decoding unit 340 obtains the parity check matrix from the parity check matrix generation device 330, and generates a decoding result by repeatedly performing row arithmetic processing and column arithmetic processing.
- row arithmetic processing performed by the decoding unit 340 of the decoding device 320 will be described.
- FIG. 6 is a diagram illustrating a configuration example of a communication system 400 including communication devices 100 and 300 according to the second embodiment.
- a communication system 400 according to the second embodiment shown in FIG. 6 has a detailed configuration of the decoding unit 340 of the communication device 300, compared to the communication system 400 according to the first embodiment shown in FIG.
- the decoding unit 340 performs a decoding process that repeatedly performs row arithmetic processing and column arithmetic processing using the first parity check matrix or the second parity check matrix.
- the decoding unit 340 includes a row calculation unit 341, a column calculation unit 342, and a storage unit 343.
- the row calculation unit 341 performs row calculation processing that is repeatedly performed by the decoding unit 340.
- the detailed configuration and operation of the row calculation unit 341 will be described later.
- the column calculation unit 342 performs column calculation processing that the decoding unit 340 repeatedly performs.
- the detailed configuration and operation of the column calculation unit 342 will be explained in the third embodiment.
- the storage unit 343 stores intermediate calculation results in the row calculation process repeatedly performed by the row calculation unit 341 and the column calculation process repeatedly performed by the column calculation unit 342. Note that in the decoding device 320, the storage unit 343 is configured by one storage unit in the example of FIG. 6, but may be configured by a plurality of storage units.
- the storage unit 343 may be configured by one storage unit together with the storage unit 331 included in the parity check matrix generation device 330.
- FIG. 7 is a diagram illustrating a configuration example of the row operation unit 341 included in the decoding unit 340 according to the second embodiment.
- the row calculation unit 341 includes a masking unit 2 including masking units 2-1 to 2-K, a shift unit 3 including shift units 3-1 to 3-K, and row calculation processing units 4-1 to 4-P.
- a row calculation processing section 4 including a row calculation processing section 4, a shift section 5 including shift sections 5-1 to 5-K, a memory switching section 6, and a row block number counter 8 are provided.
- FIG. 7 shows a part of the storage unit 343 included in the decoding unit 340.
- the storage unit 343 includes a row operation input memory 1 consisting of row operation input memories 1-1 to 1-K, and a column operation input memory 7 consisting of column operation input memories 7-1 to 7-L.
- K is the number of P ⁇ P sub-matrices included in one row block in the parity check matrix.
- K, N, and P are positive integers.
- the receiving unit 310 performs demodulation processing and the like on a signal received from the communication device 100 via the communication path 200 , and outputs received soft decision data to the decoding device 320 .
- the K row operation input memories 1-1 to 1-K arranged in parallel store received soft decision data as initial values. Specifically, the received soft decision data is separated into P words each, and P words of received soft decision data are written to one address in the row operation input memories 1-1 to 1-K.
- the masking units 2-1 to 2-K simultaneously read data written to the row calculation input memories 1-1 to 1-K in block units. That is, the masking unit 2 simultaneously reads K pieces of data written in the row operation input memory 1.
- the masking unit 2 performs masking processing on the block corresponding to the 0 matrix in the parity check matrix.
- the masking unit 2 outputs the block corresponding to the matrix obtained by shifting the unit matrix, not the block corresponding to the 0 matrix in the parity check matrix, without doing anything in particular.
- the shift unit 3 performs a unit shift not on a block corresponding to a 0 matrix in the parity check matrix, but on a block corresponding to a matrix to which the unit matrix has been shifted, that is, a block on which no processing has been performed by the masking unit 2. Shift processing is performed to shift the matrix back by an amount corresponding to the shifted amount. In this way, the received soft decision data written to the row calculation input memories 1-1 to 1-K is subjected to masking processing by the masking section 2 or shift processing by the shift section 3, and then input to the row calculation processing section 4. be done.
- row block number counter 8 controls the operations of the masking section 2, the shift section 3, the shift section 5, and the memory switching section 6 based on the counted value, that is, the row block number. It is assumed that row block number counter 8 acquires information on the coding rate of the parity check matrix used in communication device 100 and communication device 300 by the method described in Embodiment 1 or the like.
- the row arithmetic processing unit 4 divides each of the data output from the shift unit 3 that was not masked by the masking unit 2 into P pieces.
- the data divided into P pieces is input to one of the corresponding row operation processing units 4-1 to 4-P.
- the row arithmetic processing units 4-1 to 4-P perform row calculations on S data inputted from among the K data output from the shift unit 3, excluding those masked by the masking unit 2. Perform arithmetic processing to generate and output S pieces of data.
- S is a positive integer equal to or less than K.
- the row operation processing units 4-1 to 4-P of the line operation processing unit 4 perform processing on (S-1) pieces of data excluding one item.
- the row operation processing section 4 converts the S pieces of data from the row operation processing sections 4-1 to 4-P operating in parallel into the data stored in the row operation input memories 1-1 to 1-K, that is, They are combined in block units and output K pieces of data after row operation processing.
- the shift unit 5 performs a reverse shift process on the data output from the row arithmetic processing unit 4 in the opposite direction to the shift process in the shift unit 3. Note that the shift unit 5 does not perform reverse shift processing on the portions that have not been shifted by the shift unit 3.
- the memory switching unit 6 stores the data that has been reverse-shifted or not reverse-shifted by the shift unit 5 at the corresponding address of the column operation input memory 7.
- the operations of the shift unit 5 and memory switching unit 6 are also controlled by the row block number counter 8 based on the row block number being processed.
- the row block number counter 8 specifies, to the memory switching unit 6, the memory numbers and addresses of L column operation input memories 7-1 to 7-L arranged in parallel, into which data will be written.
- the column calculation input memories 7-1 to 7-L are written with data that is subjected to row calculation processing by the row calculation unit 341 and used in column calculations by the column calculation unit 342, which will be described later.
- FIG. 8 is a flowchart showing the row calculation operation by the row calculation unit 341 of the decoding unit 340 according to the second embodiment.
- the masking unit 2 reads data from the row calculation input memory 1 of the storage unit 343 (step S201), and if the block corresponds to a 0 matrix (step S202: Yes), performs masking processing (step S203), output to the shift section 3. Note that if the block does not correspond to the 0 matrix (step S202: No), the masking unit 2 outputs the block to the shift unit 3 without performing masking processing.
- step S204: Yes If the data acquired from the masking unit 2 is a block whose unit matrix has been shifted (step S204: Yes), the shift unit 3 performs a shift process to shift back an amount corresponding to the shift amount (step S205). , is output to the row operation processing section 4. Note that if the unit matrix is not a shifted block (step S204: No), the shift unit 3 outputs the unit matrix to the row operation processing unit 4 without performing the shift process.
- the row calculation processing unit 4 performs row calculation processing using the data acquired from the shift unit 3 (step S206), and outputs the result of the row calculation processing to the shift unit 5. If the data acquired from the row operation processing unit 4 corresponds to the data that has been shifted by the shift unit 3 (step S207: Yes), the shift unit 5 performs a reverse shift process in the opposite direction to that of the shift unit 3. (Step S208), output to the memory switching unit 6. Note that if the data does not correspond to the data that has been shifted by the shift unit 3 (step S207: No), the shift unit 5 outputs the data to the memory switching unit 6 without performing the reverse shift process.
- the memory switching unit 6 stores the data acquired from the shift unit 5 in the column calculation input memory 7 based on the instruction from the row block number counter 8 (step S209).
- the row calculation unit 341 performs the row calculation unit 341 according to the position in the parity check matrix where the 0 matrix is placed in the row calculation that is repeatedly performed.
- the row calculation unit 341 performs a masking process on a small matrix block that has been replaced with a 0 matrix, and performs a shift process to return the shifted amount to a small matrix block that has been shifted by a fixed value.
- Embodiment 3 In the communication system 400 shown in FIG. 1, the communication device 300 performs the encoding process in the communication device 100 and the decoding process in the decoding device 320 on a signal received from the communication device 100 via the communication path 200. .
- the decoding unit 340 obtains the parity check matrix from the parity check matrix generation device 330, and generates a decoding result by repeatedly performing row arithmetic processing and column arithmetic processing.
- column arithmetic processing performed by the decoding unit 340 of the decoding device 320 will be described.
- the configuration of communication system 400 including communication devices 100 and 300 is similar to the configuration of communication system 400 including communication devices 100 and 300 in Embodiment 2 shown in FIG.
- FIG. 9 is a diagram illustrating a configuration example of the column calculation unit 342 included in the decoding unit 340 according to the third embodiment.
- the column calculation unit 342 includes a masking unit 10 including masking units 10-1 to 10-L, a column calculation processing unit 11 including column calculation processing units 11-1 to 11-P, a memory switching unit 12, and a column block. A number counter 13 is provided.
- FIG. 9 shows a part of the storage unit 343 included in the decoding unit 340.
- the storage unit 343 includes a row operation input memory 1 consisting of row operation input memories 1-1 to 1-K, a column operation input memory 7 consisting of column operation input memories 7-1 to 7-L, and an input memory 9. including.
- L is the number of P ⁇ P sub-matrices included in one column block in the parity check matrix.
- the receiving unit 310 performs demodulation processing and the like on a signal received from the communication device 100 via the communication path 200 , and outputs received soft decision data to the decoding device 320 .
- the input memory 9 stores received soft decision data. Specifically, P words of received soft decision data are written into the input memory 9 at one address. Further, values are not input to the L column operation input memories 7-1 to 7-L arranged in parallel at the time when the received soft decision data is input to the input memory 9, but as explained in the second embodiment, The row calculation unit 341 writes the results of the row calculation processing.
- the column calculation unit 342 simultaneously reads data written in the input memory 9 and L column calculation input memories 7-1 to 7-L arranged in parallel.
- the masking units 10-1 to 10-L simultaneously read data written to the column calculation input memories 7-1 to 7-L in block units. That is, the masking unit 10 simultaneously reads L pieces of data written to the column operation input memory 7.
- the masking unit 10 performs masking processing on blocks corresponding to 0 matrix in the parity check matrix.
- the masking unit 10 outputs the block corresponding to the matrix obtained by shifting the unit matrix, not the block corresponding to the 0 matrix in the parity check matrix, without doing anything in particular.
- the operation of the masking unit 10 is controlled by a column block number counter 13 based on the column block number being processed.
- the column block number counter 13 counts the column block number to be processed.
- the column block number counter 13 controls the operations of the masking section 10 and the memory switching section 12 based on the counted value, that is, the column block number. It is assumed that the column block number counter 13 acquires information on the coding rate of the parity check matrix used in the communication device 100 and the communication device 300 by the method described in the first embodiment or the like.
- the column arithmetic processing unit 11 divides the received soft decision data read from the input memory 9 and the data not masked by the masking unit 10 into P pieces, respectively.
- the data divided into P pieces is input to one of the corresponding column arithmetic processing units 11-1 to 11-P.
- the column arithmetic processing units 11-1 to 11-P perform column processing on T input data excluding data masked by the masking unit 10 among the L data output from the masking unit 10. Perform arithmetic processing to generate and output T pieces of data.
- T is a positive integer less than or equal to L.
- the column arithmetic processing unit 11 adds (T-1) pieces of data obtained by removing one piece from each of the T pieces of input data and the value of the received soft decision data from the input memory 9. Generate and output T ways.
- the column arithmetic processing section 11 calculates the value obtained by adding the T pieces of data inputted from the masking section 10 and the value of the received soft decision data.
- the code bit is used as a decoding result, and is combined with P pieces of data from column arithmetic processing units 11-1 to 11-P operating in parallel to output P bit data as a decoding result.
- the column operation processing unit 11 performs the operation on the T data from each column operation processing unit 11-1 to 11-P operating in parallel. T pieces of data are combined in units of data stored in the column operation input memories 7-1 to 7-L, ie, in units of blocks, and K pieces of data after column operation processing are output.
- the memory switching unit 12 stores the data output from the column calculation processing unit 11 in the corresponding address of the row calculation input memory 1.
- the operation of the memory switching unit 12 is also controlled by the column block number counter 13 based on the column block number being processed.
- the column block number counter 13 specifies, to the memory switching unit 12, the memory numbers and addresses of K row operation input memories 1-1 to 1-K arranged in parallel, into which data will be written.
- FIG. 10 is a flowchart showing the operation of column calculation by the column calculation unit 342 of the decoding unit 340 according to the third embodiment.
- the masking unit 10 reads data from the column calculation input memory 7 of the storage unit 343 (step S301), and if the block corresponds to a 0 matrix (step S302: Yes), performs masking processing (step S303), output to the column arithmetic processing unit 11.
- the column operation processing unit 11 performs column operation processing using the data acquired from the input memory 9 and the masking unit 10 (step S304), and if the column operation processing has not been performed the prescribed number of times (step S305: No). ), outputs the result of column arithmetic processing to the memory switching unit 12.
- the memory switching unit 12 stores the data acquired from the column calculation processing unit 11 in the row calculation input memory 1 based on the instruction from the column block number counter 13 (step S306).
- the column arithmetic processing unit 11 When the column arithmetic processing unit 11 has performed the column arithmetic processing the prescribed number of times (step S305: Yes), the column arithmetic processing unit 11 outputs the result of the column arithmetic processing as a decoding result (step S307).
- the column calculation unit 342 performs the column calculation unit 342 according to the position in the parity check matrix where the 0 matrix is placed in the column calculation that is repeatedly performed.
- the column calculation unit 342 performs masking processing on blocks of small matrices that have been replaced with 0 matrices, so that even if check matrices with different coding rates are used, the block with the lowest coding rate is The same arithmetic processing as the column arithmetic processing for the second parity check matrix can be performed.
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
復号装置(320)は、Pを正の整数とし、P×Pの小行列のブロックに分割可能であって、通信で使用される低密度パリティ検査符号の検査行列として想定される最大の符号化率の第1の検査行列を記憶する記憶部(331)と、第1の検査行列に含まれる、列方向で小行列を含む単位の行を用いて、一部のブロックを0行列に置き換えた第1の行を生成し、さらに、規定されたブロックを0行列に置き換えつつ他のブロックの小行列に含まれる1の位置を規定された固定値でシフトした1以上の第2の行を生成して、第1の検査行列よりも符号化率の低い第2の検査行列を生成する生成部(332)と、を備える。
Description
本開示は、通信装置で使用される復号装置、制御回路、記憶媒体および検査行列生成方法に関する。
従来、通信装置において、符号長が等しく、符号化率の異なる複数の低密度パリティ検査符号(以下、LDPC(Low Density Parity Check)符号と称する)を切り替えて符号化および復号を行うことが行われている。例えば、特許文献1には、LDPC符号を構成するパリティ検査行列の一部または全ての行を2つ以上の行に分割し、元のパリティ検査行列の行の「1」があった位置に対して、行分割後のパリティ検査行列の行ベクトルが1次独立となる条件で分割後の2つ以上の行のいずれかに「1」を配分することで、新規のパリティ検査行列を生成して複数レートによるLDPC符号を実現する技術が開示されている。
しかしながら、上記従来の技術によれば、新規に生成されるパリティ検査行列は、行数が増えることで元のパリティ検査行列に対して行重みが小さくなり、列重みについてもパリティ検査行列の列数を大きくとって符号化率を小さくした場合に列重みの最大値に制限がかかってしまうため、性能面で十分に良くならない場合がある、という問題があった。また、新規に生成される検査行列は、エラーフロアが高い誤り率で発生することが多くなる、という問題があった。
本開示は、上記に鑑みてなされたものであって、検査行列の行を増加したときの符号性能の劣化を抑制可能な復号装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本開示の復号装置は、Pを正の整数とし、P×Pの小行列のブロックに分割可能であって、通信で使用される低密度パリティ検査符号の検査行列として想定される最大の符号化率の第1の検査行列を記憶する記憶部と、第1の検査行列に含まれる、列方向で小行列を含む単位の行を用いて、一部のブロックを0行列に置き換えた第1の行を生成し、さらに、規定されたブロックを0行列に置き換えつつ他のブロックの小行列に含まれる1の位置を規定された固定値でシフトした1以上の第2の行を生成して、第1の検査行列よりも符号化率の低い第2の検査行列を生成する生成部と、を備えることを特徴とする。
本開示に係る復号装置は、検査行列の行を増加したときの符号性能の劣化を抑制できる、という効果を奏する。
以下に、本開示の実施の形態に係る復号装置、制御回路、記憶媒体および検査行列生成方法を図面に基づいて詳細に説明する。
実施の形態1.
図1は、実施の形態1に係る通信装置100,300を備える通信システム400の構成例を示す図である。通信システム400は、通信装置100が、LDPC符号による符号化処理を行った信号を、通信路200を介して通信装置300に送信し、通信装置300が、受信した信号に対して復号処理を行うシステムである。通信装置100は、符号化装置110と、送信部140と、を備える。符号化装置110は、検査行列生成装置120と、符号化部130と、を備える。検査行列生成装置120は、記憶部121と、生成部122と、を備える。また、通信装置300は、受信部310と、復号装置320と、を備える。復号装置320は、検査行列生成装置330と、復号部340と、を備える。検査行列生成装置330は、記憶部331と、生成部332と、を備える。
図1は、実施の形態1に係る通信装置100,300を備える通信システム400の構成例を示す図である。通信システム400は、通信装置100が、LDPC符号による符号化処理を行った信号を、通信路200を介して通信装置300に送信し、通信装置300が、受信した信号に対して復号処理を行うシステムである。通信装置100は、符号化装置110と、送信部140と、を備える。符号化装置110は、検査行列生成装置120と、符号化部130と、を備える。検査行列生成装置120は、記憶部121と、生成部122と、を備える。また、通信装置300は、受信部310と、復号装置320と、を備える。復号装置320は、検査行列生成装置330と、復号部340と、を備える。検査行列生成装置330は、記憶部331と、生成部332と、を備える。
通信装置100において、符号化装置110は、図示しない上位装置などから取得した通信ビットに対して符号化処理を行う。符号化装置110において、検査行列生成装置120は、通信ビットに対する符号化処理で使用されるパリティ検査行列を生成する。符号化部130は、検査行列生成装置120からパリティ検査行列を取得し、通信ビットに対して符号化処理を行う。送信部140は、符号化装置110の符号化部130で符号化処理された通信ビットに対して変調処理などを行い、変調処理後の信号を、通信路200を介して、通信装置300に送信する。以降の説明において、パリティ検査行列を単に検査行列と称することがある。
通信装置300において、受信部310は、通信装置100から通信路200を介して受信した受信信号に対して、復調処理などを行う。復号装置320は、復調処理後の信号に対して復号処理を行って復号結果を生成し、図示しない上位装置などに出力する。復号装置320において、検査行列生成装置330は、復調処理後の信号に対する復号処理で使用されるパリティ検査行列を生成する。復号部340は、検査行列生成装置330からパリティ検査行列を取得し、復調処理後の信号に対して復号処理を行う。
実施の形態1では、通信装置100が備える検査行列生成装置120、および通信装置300が備える検査行列生成装置330が、元となるパリティ検査行列に対して行を追加して、元となるパリティ検査行列とは符号化率の異なるパリティ検査行列を生成する方法について説明する。なお、検査行列生成装置120と、検査行列生成装置330とは同様の構成である。また、検査行列生成装置120が備える記憶部121および生成部122と、検査行列生成装置330が備える記憶部331および生成部332とは同様の構成である。検査行列生成装置120および検査行列生成装置330は同様の動作を行うので、以下では、検査行列生成装置330を例にして説明する。
ここで、実施の形態1においては、扱うLDPC符号を組織符号とする。パリティ検査行列をm×n行列としたとき、パリティ検査行列の最も右側の列からのm列が、パリティビットに対応するものとする。なお、mおよびnは正の整数とする。ただし、パリティビットの対応位置については、列の対応位置を適切に入れ替えてもよい。また、実施の形態1において、検査行列生成装置330を備える復号装置320は、パリティ検査行列を下三角化した符号化行列である符号化用検査行列を用いてLDPC符号の復号処理を行う。検査行列生成装置330は、ベースとなる最も符号化率の高いLDPC符号のパリティ検査行列に対して、パリティ検査行列の行数を追加していくことによって、LDPC符号の符号化率を可変にできる。
図2は、実施の形態1に係る検査行列生成装置330がパリティ検査行列の行を追加する追加方法の例を示す図である。図2において、上段の符号化率4/5のパリティ検査行列は、あらかじめ記憶部331に記憶されているものであって、ベースとなる最も符号化率の高いLDPC符号のパリティ検査行列である。中段の符号化率3/5のパリティ検査行列は、生成部332によって、符号化率4/5のパリティ検査行列を用いて2行追加されたものである。下段の符号化率1/2のパリティ検査行列は、生成部332によって、符号化率4/5のパリティ検査行列を用いて3行追加されたものである。
検査行列生成装置330において、パリティ検査行列の行を追加する処理は、生成部332が行う。検査行列生成装置330は、図1に示す通信システム400において想定される最も高い符号化率、実施の形態1では符号化率4/5のパリティ検査行列をあらかじめ記憶部331に記憶しておく。最も高い符号化率の高いパリティ検査行列は、パリティ検査行列の行数mおよび列数nの公約数をPとしたときにP×P行列の小行列から構成される。なお、Pも正の整数である。例えば、図1に示す符号化率4/5のパリティ検査行列は、行成分として2ブロック分のP×P行列の小行列によって構成され、列成分として10ブロック分のP×P行列の小行列によって構成される。以降の説明において、記憶部331に記憶されている最も高い符号化率の高いパリティ検査行列を第1の検査行列と称することがある。すなわち、記憶部331は、P×Pの小行列のブロックに分割可能であって、通信で使用される低密度パリティ検査符号の検査行列として想定される最大の符号化率の第1の検査行列を記憶する。
なお、生成部332によって生成される行数が追加されたパリティ検査行列のことを第2の検査行列と称することがある。
P×P行列からなる小行列については、全ての成分の値が0である0行列、または単位行列、または単位行列の1の位置をi個の位置だけ循環的に右シフトすることによって得られる巡回置換行列とする。なお、0≦i≦P-1とする。図2の中段および下段に示すパリティ検査行列において、0で示される部分が0行列であり、S(A1)、S(B2)、T(A1)などで示される部分が巡回置換行列である。
まず、生成部332が図2の中段に示す符号化率3/5のパリティ検査行列を生成する場合について説明する。パリティ検査行列の行を追加する手順として、生成部332は、記憶部331に記憶されている符号化率4/5の符号のパリティ検査行列の1ブロック目の行に対して、行成分のうち一部を0行列とし、他の部分は符号化率4/5のパリティ検査行列をそのままにしてパリティ検査行列の1ブロック目の行を生成する。
次に、生成部332は、2ブロック目の行について、符号化率4/5の符号のパリティ検査行列の1ブロック目の行に対して、行成分のうち一部を0行列とする。このとき、生成部332は、1ブロック目で0行列とした部分は0行列にならないようにする。また、生成部332は、0行列としない部分について、符号化率4/5のパリティ検査行列の1の立っている位置を固定値循環シフトしたものを生成して、パリティ検査行列の2ブロック目の行を生成する。
また、生成部332は、符号化率4/5の符号のパリティ検査行列の2ブロック目の行に対して、行成分のうち一部を0行列とし、他の部分は符号化率4/5のパリティ検査行列をそのままにしてパリティ検査行列の3ブロック目の行を生成する。
次に、生成部332は、4ブロック目の行について、符号化率4/5の符号のパリティ検査行列の2ブロック目の行に対して、行成分のうち一部を0行列とする。このとき、生成部332は、3ブロック目で0行列とした部分は0行列にならないようにする。また、生成部332は、0行列としない部分について、符号化率4/5のパリティ検査行列の1の立っている位置を固定値循環シフトしたものを生成して、パリティ検査行列の4ブロック目の行を生成する。
生成部332は、上記のように行を拡張し、行成分として4ブロック分のP×P行列の小行列、列成分として10ブロック分のP×P行列の小行列によって構成される符号化率3/5のパリティ検査行列を生成することができる。
同様に、生成部332が図2の下段に示す符号化率1/2のパリティ検査行列を生成する場合について説明する。パリティ検査行列の行を追加する手順として、生成部332は、記憶部331に記憶されている符号化率4/5の符号のパリティ検査行列の1ブロック目の行に対して、行成分のうち一部を0行列とし、他の部分は符号化率4/5のパリティ検査行列をそのままにしてパリティ検査行列の1ブロック目の行を生成する。
次に、生成部332は、2ブロック目の行について、符号化率4/5の符号のパリティ検査行列の1ブロック目の行に対して、行成分のうち一部を0行列とする。また、生成部332は、0行列としない部分について、符号化率4/5のパリティ検査行列の1の立っている位置を固定値循環シフトしたものを生成して、パリティ検査行列の2ブロック目の行を生成する。
次に、生成部332は、3ブロック目の行について、符号化率4/5の符号のパリティ検査行列の1ブロック目の行に対して、行成分のうち一部を0行列とする。このとき、生成部332は、2ブロック目で0行列とした部分は0行列にならないようにする。また、生成部332は、0行列としない部分について、符号化率4/5のパリティ検査行列の1の立っている位置に対して、2ブロック目を生成したときとは異なる固定値で固定値循環シフトしたものを生成して、パリティ検査行列の3ブロック目の行を生成する。
また、生成部332は、符号化率4/5の符号のパリティ検査行列の2ブロック目の行に対して、行成分のうち一部を0行列とし、他の部分は符号化率4/5のパリティ検査行列をそのままにしてパリティ検査行列の4ブロック目の行を生成する。
次に、生成部332は、5ブロック目の行について、符号化率4/5の符号のパリティ検査行列の2ブロック目の行に対して、行成分のうち一部を0行列とする。このとき、生成部332は、4ブロック目で0行列とした部分は0行列にならないようにする。また、生成部332は、0行列としない部分について、符号化率4/5のパリティ検査行列の1の立っている位置を固定値循環シフトしたものを生成して、パリティ検査行列の5ブロック目の行を生成する。
生成部332は、上記のように行を拡張し、行成分として5ブロック分のP×P行列の小行列、列成分として10ブロック分のP×P行列の小行列によって構成される符号化率1/2のパリティ検査行列を生成することができる。
生成部332は、他の符号化率の符号のパリティ検査行列についても同様の方法で生成することができる。生成部332は、上記で説明した方法によって、復号部340で使用されるパリティ検査行列について、符号長を一定にして符号化率を可変にすることができる。なお、生成部332は、上記の例では行ごとに固定値による固定値循環シフトしたものでパリティ検査行列を生成していたが、列成分ごとにシフト量を変更してもよい。
また、生成部332は、元のパリティ検査行列の行ブロックについて、一部のブロックを0行列とし、他のブロックは一定量シフトさせたものを複数の行に拡張させることで、符号化率を小さくしてもよい。これにより、生成部332は、行重みおよび列重みが元のLDPC符号の行重みおよび列重みと比較して小さくならないこともあり、符号性能において劣化を抑制することができる。
なお、生成部332は、生成した符号化率3/5のパリティ検査行列、符号化率1/2のパリティ検査行列などについて、記憶部331に記憶させておいてもよい。これにより、生成部332は、通信装置100が通信路200の状況に応じて符号化処理の符号化率を変更する場合でも、過去に生成したパリティ検査行列を記憶させておくことで、符号化率を変更するごとにパリティ検査行列を生成する場合と比較して演算処理を低減することができる。
ここで、通信システム400において、通信装置300は、通信装置100から送信された信号を復号する際、通信装置100がどのような符号化率のパリティ検査行列を使用して符号化したのかが既知であれば、復号処理を効率良く行うことができる。通信システム400において、通信装置100および通信装置300は、例えば、パリティ検査行列の行を2行追加する方法が図2の中段に示す方法、パリティ検査行列の行を3行追加する方法が図2の下段に示す方法などのように、共通のルールで動作することとする。この場合、通信システム400において、通信装置100が、通信装置300に対して使用したパリティ検査行列の符号化率の情報を通知してもよいし、図示しない上位装置が通信装置100および通信装置300に対して、使用するパリティ検査行列の符号化率を通知してもよい。
図3は、実施の形態1に係る検査行列生成装置330の動作を示すフローチャートである。検査行列生成装置330において、生成部332は、記憶部331から、P×Pの小行列のブロックに分割でき、通信システム400で想定される最も符号化率の高いパリティ検査行列を読み出す(ステップS101)。生成部332は、読み出したパリティ検査行列から1つの行を選択する(ステップS102)。生成部332は、選択した行を用いて、行成分の一部のブロックを0行列にし、他の部分のブロックを元の行成分とする第1の行を生成する(ステップS103)。第1の行は、図2の中段に示す符号化率3/5のパリティ検査行列の1行目および3行目、図2の下段に示す符号化率1/2のパリティ検査行列の1行目および4行目などに相当する。
生成部332は、選択した行を用いて1つの第2の行を生成する場合(ステップS104:Yes)、行成分の一部であって第1の行で0行列にされたブロックと異なる位置のブロックを0行列とし、他のブロックで1のある位置を規定された固定値で循環シフトした第2の行を生成する(ステップS105)。ステップS105で生成される第2の行は、図2の中段に示す符号化率3/5のパリティ検査行列の2行目および4行目、図2の下段に示す符号化率1/2のパリティ検査行列の5行目などに相当する。
または、生成部332は、選択した行を用いて2つ以上の第2の行を生成する場合(ステップS104:No)、行成分の一部であって第2の行同士で異なるブロックの位置を0行列とし、他のブロックで1のある位置を第2の行ごとに規定された異なる固定値で循環シフトした2つ以上の第2の行を生成する(ステップS106)。ステップS106で生成される第2の行は、図2の下段に示す符号化率1/2のパリティ検査行列の2行目および3行目などに相当する。
生成部332は、生成するパリティ検査行列の行数について、所望の行数に達していない場合(ステップS107:No)、ステップS102に戻って、読み出したパリティ検査行列から未選択の1つの行を選択する。生成部332は、生成するパリティ検査行列の行数について、所望の行数に達した場合(ステップS107:Yes)、動作を終了する。
このように、生成部332は、第1の検査行列に含まれる、列方向で小行列を含む単位の行を用いて、一部のブロックを0行列に置き換えた第1の行を生成し、さらに、規定されたブロックを0行列に置き換えつつ他のブロックの小行列に含まれる1の位置を規定された固定値でシフトした1以上の第2の行を生成して、第1の検査行列よりも符号化率の低い第2の検査行列を生成する。生成部332は、第2の行を1つ生成する場合、規定されたブロックとして第1の行で0行列に置き換えられていないブロックを0行列に置き換える。または、生成部332は、第2の行を2つ以上生成する場合、規定されたブロックとして2つ以上の第2の行によって異なるブロックを0行列に置き換え、2つ以上の第2の行によって固定値を異なる値にする。生成部332は、第1の検査行列に含まれる、列方向で小行列を含む単位の複数の行を用いて、各行について第1の行および1以上の第2の行を生成する。
つづいて、通信装置300のハードウェア構成について説明する。通信装置300において、受信部310は通信器である。復号装置320は処理回路により実現される。処理回路は、メモリに格納されるプログラムを実行するプロセッサおよびメモリであってもよいし、専用のハードウェアであってもよい。処理回路は制御回路とも呼ばれる。
図4は、実施の形態1に係る通信装置300を実現する処理回路をプロセッサ91およびメモリ92で構成する場合の処理回路90の構成例を示す図である。図4に示す処理回路90は制御回路であり、プロセッサ91およびメモリ92を備える。処理回路90がプロセッサ91およびメモリ92で構成される場合、処理回路90の各機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアまたはファームウェアはプログラムとして記述され、メモリ92に格納される。処理回路90では、メモリ92に記憶されたプログラムをプロセッサ91が読み出して実行することにより、各機能を実現する。すなわち、処理回路90は、通信装置300の処理が結果的に実行されることになるプログラムを格納するためのメモリ92を備える。このプログラムは、処理回路90により実現される各機能を通信装置300に実行させるためのプログラムであるともいえる。このプログラムは、プログラムが記憶された記憶媒体により提供されてもよいし、通信媒体など他の手段により提供されてもよい。
上記プログラムは、復号装置320が、P×Pの小行列のブロックに分割可能であって、通信で使用される低密度パリティ検査符号の検査行列として想定される最大の符号化率の第1の検査行列を記憶する記憶部331を備える場合において、生成部332が、第1の検査行列に含まれる、列方向で小行列を含む単位の行を用いて、一部のブロックを0行列に置き換えた第1の行を生成する第1のステップと、生成部332が、第1の検査行列に含まれる、列方向で小行列を含む単位の行を用いて、さらに、規定されたブロックを0行列に置き換えつつ他のブロックの小行列に含まれる1の位置を規定された固定値でシフトした1以上の第2の行を生成して、第1の検査行列よりも符号化率の低い第2の検査行列を生成する第2のステップと、を通信装置300に実行されるプログラムであるとも言える。
ここで、プロセッサ91は、例えば、CPU(Central Processing Unit)、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、またはDSP(Digital Signal Processor)などである。また、メモリ92は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)などの、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、またはDVD(Digital Versatile Disc)などが該当する。
図5は、実施の形態1に係る通信装置300を実現する処理回路を専用のハードウェアで構成する場合の処理回路93の例を示す図である。図5に示す処理回路93は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせたものが該当する。処理回路については、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。このように、処理回路は、専用のハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現することができる。
通信装置300のハードウェア構成について説明したが、通信装置100のハードウェア構成も同様である。通信装置100において、送信部140は通信器である。符号化装置110は処理回路により実現される。処理回路は、メモリに格納されるプログラムを実行するプロセッサおよびメモリであってもよいし、専用のハードウェアであってもよい。
以上説明したように、本実施の形態によれば、検査行列生成装置120の生成部122、および検査行列生成装置330の生成部332は、P×Pの小行列のブロックに分割可能であって、通信で使用されるLDPC符号の検査行列として想定される最大の符号化率の第1の検査行列に含まれる、列方向で小行列を含む単位の行を用いて、一部のブロックを0行列に置き換えた第1の行を生成する。検査行列生成装置120の生成部122、および検査行列生成装置330の生成部332は、第1の検査行列に含まれる、列方向で小行列を含む単位の行を用いて、さらに、規定されたブロックを0行列に置き換えつつ他のブロックの小行列に含まれる1の位置を規定された固定値でシフトした1以上の第2の行を生成して、第1の検査行列よりも符号化率の低い第2の検査行列を生成することとした。これにより、検査行列生成装置120を備える符号化装置110、および検査行列生成装置330を備える復号装置320は、検査行列の行を増加したときの符号性能の劣化を抑制することができる。
実施の形態2.
図1に示す通信システム400において、通信装置300は、通信装置100で符号化処理が行われ、通信装置100から通信路200を介して受信した信号に対して、復号装置320において復号処理を行う。復号装置320において、復号部340は、検査行列生成装置330からパリティ検査行列を取得し、行演算処理および列演算処理を繰り返し実施することで復号結果を生成する。実施の形態2では、復号装置320の復号部340で実施される行演算処理について説明する。
図1に示す通信システム400において、通信装置300は、通信装置100で符号化処理が行われ、通信装置100から通信路200を介して受信した信号に対して、復号装置320において復号処理を行う。復号装置320において、復号部340は、検査行列生成装置330からパリティ検査行列を取得し、行演算処理および列演算処理を繰り返し実施することで復号結果を生成する。実施の形態2では、復号装置320の復号部340で実施される行演算処理について説明する。
図6は、実施の形態2に係る通信装置100,300を備える通信システム400の構成例を示す図である。図6に示す実施の形態2の通信システム400は、図1に示す実施の形態1の通信システム400に対して、通信装置300の復号部340の構成を詳細に記載している。復号部340は、第1の検査行列または第2の検査行列を用いて、行演算処理および列演算処理を繰り返し実施する復号処理を行う。図6に示すように、復号部340は、行演算部341と、列演算部342と、記憶部343と、を備える。
行演算部341は、復号部340が繰り返し実施する行演算処理を行う。行演算部341の詳細な構成および動作については後述する。列演算部342は、復号部340が繰り返し実施する列演算処理を行う。列演算部342の詳細な構成および動作については実施の形態3で説明する。記憶部343は、行演算部341が繰り返し実施する行演算処理、および列演算部342が繰り返し実施する列演算処理における途中の演算結果などを記憶する。なお、復号装置320において、記憶部343は、図6の例では、1つの記憶部によって構成されているが、複数の記憶部によって構成されていてもよい。記憶部343は、検査行列生成装置330が備える記憶部331とともに、1つの記憶部によって構成されていてもよい。
行演算部341の詳細な構成および動作について説明する。図7は、実施の形態2に係る復号部340が備える行演算部341の構成例を示す図である。行演算部341は、マスキング部2-1~2-Kを含むマスキング部2と、シフト部3-1~3-Kを含むシフト部3と、行演算処理部4-1~4-Pを含む行演算処理部4と、シフト部5-1~5-Kを含むシフト部5と、メモリ切り替え部6と、行ブロック番号カウンタ8と、を備える。また、図7は、復号部340が備える記憶部343の一部を示している。記憶部343は、行演算入力メモリ1-1~1-Kからなる行演算入力メモリ1と、列演算入力メモリ7-1~7-Lからなる列演算入力メモリ7と、を含む。なお、図7において、Kは、パリティ検査行列における1行ブロックに含まれるP×Pの小行列の個数とする。符号長をNとすると、K=N/Pで表される。なお、K、N、およびPは正の整数である。
次に、行演算部341の動作について説明する。まず、通信装置300において、受信部310は、通信装置100から通信路200を介して受信した信号に対して復調処理などを行い、復号装置320に受信軟判定データを出力する。記憶部343において、K個並列に配置された行演算入力メモリ1-1~1-Kは、初期値として受信軟判定データを記憶する。具体的には、受信軟判定データがPワードずつに分離され、行演算入力メモリ1-1~1-Kには、1アドレスにPワードの受信軟判定データがライトされる。
行演算部341において、マスキング部2-1~2-Kは、行演算入力メモリ1-1~1-Kにライトされたデータをブロック単位で同時に読み出す。すなわち、マスキング部2は、行演算入力メモリ1にライトされたデータをK個同時に読み出す。マスキング部2は、パリティ検査行列において0行列に相当するブロックに対してマスキング処理を行う。マスキング部2は、パリティ検査行列において0行列に相当するブロックではなく、単位行列がシフトされた行列に相当するブロックに対して、特に何もせずに出力する。
シフト部3は、パリティ検査行列において0行列に相当するブロックではなく、単位行列がシフトされた行列に相当するブロックに対して、すなわちマスキング部2で何も処理されなかったブロックに対して、単位行列がシフトされたシフト量に相当する分を戻すようにシフトするシフト処理を行う。このように、行演算入力メモリ1-1~1-Kにライトされた受信軟判定データは、マスキング部2によるマスキング処理、またはシフト部3によるシフト処理が行われ、行演算処理部4に入力される。
なお、マスキング部2およびシフト部3の動作については、行ブロック番号カウンタ8が、処理を行っている行ブロック番号に基づいて制御する。行ブロック番号カウンタ8は、処理を行う行ブロック番号をカウントする。行ブロック番号カウンタ8は、カウントされた値、すなわち行ブロック番号に基づいて、マスキング部2、シフト部3、シフト部5、およびメモリ切り替え部6の動作を制御する。行ブロック番号カウンタ8は、通信装置100および通信装置300で使用されているパリティ検査行列の符号化率の情報を、実施の形態1で説明した方法などによって取得しているものとする。
行演算処理部4は、シフト部3から出力されたデータのうちマスキング部2においてマスキングされなかったデータについて、それぞれP個に分割する。P個に分割されたデータは、対応する行演算処理部4-1~4-Pのいずれかに入力される。行演算処理部4-1~4-Pは、シフト部3から出力されたK個のデータのうち、マスキング部2でマスキングされたものを除いて入力されるS個のデータに対して、行演算処理を実施して、S個のデータを生成して出力する。なお、SはK以下の正の整数である。行演算処理部4の行演算処理部4-1~4-Pは、例えば、Min-sumアルゴリズムによって行演算処理を行った場合、それぞれ1個を除いた(S-1)個のデータに対して、絶対値の最小値および正負の符号の積を組み合わせた値をS通り生成して出力する。行演算処理部4は、並列に動作している各行演算処理部4-1~4-PからのS個のデータを、行演算入力メモリ1-1~1-Kに記憶されていたデータすなわちブロックの単位で結合し、行演算処理後のK個のデータを出力する。
シフト部5は、行演算処理部4から出力されたデータに対して、シフト部3でのシフト処理とは逆方向の逆シフト処理を行う。なお、シフト部5は、シフト部3でシフト処理されなかった部分については、逆シフト処理を行わない。
メモリ切り替え部6は、シフト部5で逆シフト処理された、または逆シフト処理されなかったデータを、列演算入力メモリ7の対応するアドレスに記憶させる。
シフト部5およびメモリ切り替え部6の動作についても、行ブロック番号カウンタ8が、処理を行っている行ブロック番号に基づいて制御する。行ブロック番号カウンタ8は、メモリ切り替え部6に対して、データがライトされるL個並列に配置されている列演算入力メモリ7-1~7-Lのメモリ番号とアドレスとを指定する。
列演算入力メモリ7-1~7-Lには、行演算部341で行演算処理され、後述する列演算部342の列演算で使用されるデータがライトされる。
図8は、実施の形態2に係る復号部340の行演算部341による行演算の動作を示すフローチャートである。行演算部341において、マスキング部2は、記憶部343の行演算入力メモリ1からデータを読み出し(ステップS201)、0行列に相当するブロックの場合(ステップS202:Yes)、マスキング処理を行い(ステップS203)、シフト部3に出力する。なお、マスキング部2は、0行列に相当するブロックではない場合(ステップS202:No)、マスキング処理を行わず、シフト部3に出力する。シフト部3は、マスキング部2から取得したデータが、単位行列がシフトされたブロックの場合(ステップS204:Yes)、シフト量に相当する分を戻すようにシフトするシフト処理を行い(ステップS205)、行演算処理部4に出力する。なお、シフト部3は、単位行列がシフトされたブロックではない場合(ステップS204:No)、シフト処理を行わず、行演算処理部4に出力する。
行演算処理部4は、シフト部3から取得したデータを用いて行演算処理を行い(ステップS206)、行演算処理の結果をシフト部5に出力する。シフト部5は、行演算処理部4から取得したデータが、シフト部3でシフト処理されていたデータに相当する場合(ステップS207:Yes)、シフト部3とは逆方向の逆シフト処理を行い(ステップS208)、メモリ切り替え部6に出力する。なお、シフト部5は、シフト部3でシフト処理されていたデータに相当しない場合(ステップS207:No)、逆シフト処理を行わず、メモリ切り替え部6に出力する。メモリ切り替え部6は、行ブロック番号カウンタ8の指示に基づいて、シフト部5から取得したデータを列演算入力メモリ7に記憶させる(ステップS209)。
以上説明したように、本実施の形態によれば、復号装置320の復号部340において、行演算部341は、繰り返し実施する行演算において、0行列が配置されたパリティ検査行列での位置に応じてマスキング処理およびシフト処理を行うことで、実施の形態1で説明した方法で符号化率が拡張された複数の符号化率のLDPC符号に対しても、容易に行演算を実施することができる。行演算部341は、行演算処理として、0行列に置き換えられた小行列のブロックに対してマスキング処理を行い、固定値でシフトされた小行列のブロックに対してシフト分を戻すシフト処理を行うことで、異なる符号化率の検査行列が使用されても、第1の検査行列に対する行演算処理と同一の演算処理を行うことができる。
実施の形態3.
図1に示す通信システム400において、通信装置300は、通信装置100で符号化処理が行われ、通信装置100から通信路200を介して受信した信号に対して、復号装置320において復号処理を行う。復号装置320において、復号部340は、検査行列生成装置330からパリティ検査行列を取得し、行演算処理および列演算処理を繰り返し実施することで復号結果を生成する。実施の形態3では、復号装置320の復号部340で実施される列演算処理について説明する。
図1に示す通信システム400において、通信装置300は、通信装置100で符号化処理が行われ、通信装置100から通信路200を介して受信した信号に対して、復号装置320において復号処理を行う。復号装置320において、復号部340は、検査行列生成装置330からパリティ検査行列を取得し、行演算処理および列演算処理を繰り返し実施することで復号結果を生成する。実施の形態3では、復号装置320の復号部340で実施される列演算処理について説明する。
実施の形態3において、通信装置100,300を備える通信システム400の構成は、図6に示す実施の形態2の通信装置100,300を備える通信システム400の構成と同様である。
列演算部342の詳細な構成および動作について説明する。図9は、実施の形態3に係る復号部340が備える列演算部342の構成例を示す図である。列演算部342は、マスキング部10-1~10-Lを含むマスキング部10と、列演算処理部11-1~11-Pを含む列演算処理部11と、メモリ切り替え部12と、列ブロック番号カウンタ13と、を備える。また、図9は、復号部340が備える記憶部343の一部を示している。記憶部343は、行演算入力メモリ1-1~1-Kからなる行演算入力メモリ1と、列演算入力メモリ7-1~7-Lからなる列演算入力メモリ7と、入力メモリ9と、を含む。なお、図9において、Lは、パリティ検査行列における1列ブロックに含まれるP×Pの小行列の個数とする。符号長をNとし、情報ビット長をJとすると、L=(N-J)/Pで表される。なお、J、L、N、およびPは正の整数である。
次に、列演算部342の動作について説明する。まず、通信装置300において、受信部310は、通信装置100から通信路200を介して受信した信号に対して復調処理などを行い、復号装置320に受信軟判定データを出力する。記憶部343において、入力メモリ9は、受信軟判定データを記憶する。具体的には、入力メモリ9には、1アドレスにPワードの受信軟判定データがライトされる。また、L個並列に配置された列演算入力メモリ7-1~7-Lには、受信軟判定データが入力メモリ9に入力された時点では値が入力されないが、実施の形態2で説明した行演算部341によって行演算処理の結果がライトされる。
列演算部342は、入力メモリ9およびL個並列に配置された列演算入力メモリ7-1~7-Lにライトされたデータを同時に読み出す。列演算部342において、マスキング部10-1~10-Lは、列演算入力メモリ7-1~7-Lにライトされたデータをブロック単位で同時に読み出す。すなわち、マスキング部10は、列演算入力メモリ7にライトされたデータをL個同時に読み出す。マスキング部10は、パリティ検査行列において0行列に相当するブロックに対してマスキング処理を行う。マスキング部10は、パリティ検査行列において0行列に相当するブロックではなく、単位行列がシフトされた行列に相当するブロックに対して、特に何もせずに出力する。
なお、マスキング部10の動作については、列ブロック番号カウンタ13が、処理を行っている列ブロック番号に基づいて制御する。列ブロック番号カウンタ13は、処理を行う列ブロック番号をカウントする。列ブロック番号カウンタ13は、カウントされた値、すなわち列ブロック番号に基づいて、マスキング部10、およびメモリ切り替え部12の動作を制御する。列ブロック番号カウンタ13は、通信装置100および通信装置300で使用されているパリティ検査行列の符号化率の情報を、実施の形態1で説明した方法などによって取得しているものとする。
列演算処理部11は、入力メモリ9から読み出された受信軟判定データ、およびマスキング部10においてマスキングされなかったデータについて、それぞれP個に分割する。P個に分割されたデータは、対応する列演算処理部11-1~11-Pのいずれかに入力される。列演算処理部11-1~11-Pは、マスキング部10から出力されたL個のデータのうち、マスキング部10でマスキングされたものを除いて入力されるT個のデータに対して、列演算処理を実施して、T個のデータを生成して出力する。なお、TはL以下の正の整数である。列演算処理部11は、列演算処理操作として、入力されるT個のデータから、それぞれ1個を除いた(T-1)個のデータと入力メモリ9からの受信軟判定データの値を加算したT通り生成して出力する。
ここで、列演算処理部11は、あらかじめ規定された繰り返し回数の列演算の動作を行った場合、マスキング部10から入力されるT個のデータと受信軟判定データの値とを加算した値の符号ビットを復号結果とし、並列に動作している列演算処理部11-1~11-PからのP個のデータと結合させてPビットのデータを復号結果として出力する。
あらかじめ規定された繰り返し回数の列演算の動作を行っていない場合、列演算処理部11は、T個のデータについて、並列に動作している各列演算処理部11-1~11-PからのT個のデータを、列演算入力メモリ7-1~7-Lに記憶されていたデータすなわちブロックの単位で結合し、列演算処理後のK個のデータを出力する。
メモリ切り替え部12は、列演算処理部11から出力されたデータを、行演算入力メモリ1の対応するアドレスに記憶させる。
メモリ切り替え部12の動作についても、列ブロック番号カウンタ13が、処理を行っている列ブロック番号に基づいて制御する。列ブロック番号カウンタ13は、メモリ切り替え部12に対して、データがライトされるK個並列に配置されている行演算入力メモリ1-1~1-Kのメモリ番号とアドレスとを指定する。
行演算入力メモリ1-1~1-Kには、列演算部342で列演算処理され、前述の行演算部341の行演算で使用されるデータがライトされる。
図10は、実施の形態3に係る復号部340の列演算部342による列演算の動作を示すフローチャートである。列演算部342において、マスキング部10は、記憶部343の列演算入力メモリ7からデータを読み出し(ステップS301)、0行列に相当するブロックの場合(ステップS302:Yes)、マスキング処理を行い(ステップS303)、列演算処理部11に出力する。列演算処理部11は、入力メモリ9およびマスキング部10から取得したデータを用いて列演算処理を行い(ステップS304)、規定された繰り返し回数の列演算処理を行っていない場合(ステップS305:No)、列演算処理の結果をメモリ切り替え部12に出力する。メモリ切り替え部12は、列ブロック番号カウンタ13の指示に基づいて、列演算処理部11から取得したデータを行演算入力メモリ1に記憶させる(ステップS306)。列演算処理部11は、規定された繰り返し回数の列演算処理を行った場合(ステップS305:Yes)、列演算処理の結果を復号結果として出力する(ステップS307)。
以上説明したように、本実施の形態によれば、復号装置320の復号部340において、列演算部342は、繰り返し実施する列演算において、0行列が配置されたパリティ検査行列での位置に応じてマスキング処理を行うことで、実施の形態1で説明した方法で符号化率が拡張された複数の符号化率のLDPC符号に対しても、容易に列演算を実施することができる。列演算部342は、列演算処理として、0行列に置き換えられた小行列のブロックに対してマスキング処理を行うことで、異なる符号化率の検査行列が使用されても、最も符号化率の小さい第2の検査行列に対する列演算処理と同一の演算処理を行うことができる。
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
1,1-1~1-K 行演算入力メモリ、2,2-1~2-K,10,10-1~10-L マスキング部、3,3-1~3-K,5,5-1~5-K シフト部、4,4-1~4-P 行演算処理部、6,12 メモリ切り替え部、7,7-1~7-L 列演算入力メモリ、8 行ブロック番号カウンタ、9 入力メモリ、11,11-1~11-P 列演算処理部、13 列ブロック番号カウンタ、100,300 通信装置、110 符号化装置、120,330 検査行列生成装置、121,331,343 記憶部、122,332 生成部、130 符号化部、140 送信部、200 通信路、310 受信部、320 復号装置、340 復号部、341 行演算部、342 列演算部、400 通信システム。
Claims (16)
- Pを正の整数とし、
P×Pの小行列のブロックに分割可能であって、通信で使用される低密度パリティ検査符号の検査行列として想定される最大の符号化率の第1の検査行列を記憶する記憶部と、
前記第1の検査行列に含まれる、列方向で前記小行列を含む単位の行を用いて、一部のブロックを0行列に置き換えた第1の行を生成し、さらに、規定されたブロックを0行列に置き換えつつ他のブロックの小行列に含まれる1の位置を規定された固定値でシフトした1以上の第2の行を生成して、前記第1の検査行列よりも符号化率の低い第2の検査行列を生成する生成部と、
を備えることを特徴とする復号装置。 - 前記生成部は、前記第2の行を1つ生成する場合、前記規定されたブロックとして前記第1の行で0行列に置き換えられていないブロックを0行列に置き換える、
ことを特徴とする請求項1に記載の復号装置。 - 前記生成部は、前記第2の行を2つ以上生成する場合、前記規定されたブロックとして2つ以上の前記第2の行によって異なるブロックを0行列に置き換え、2つ以上の前記第2の行によって前記固定値を異なる値にする、
ことを特徴とする請求項1に記載の復号装置。 - 前記生成部は、前記第1の検査行列に含まれる、列方向で前記小行列を含む単位の複数の行を用いて、各行について前記第1の行および1以上の前記第2の行を生成する、
ことを特徴とする請求項1から3のいずれか1つに記載の復号装置。 - 前記第1の検査行列または前記第2の検査行列を用いて、行演算処理および列演算処理を繰り返し実施する復号処理を行う復号部、
を備えることを特徴とする請求項1から4のいずれか1つに記載の復号装置。 - 前記復号部は、
前記行演算処理として、前記0行列に置き換えられた小行列のブロックに対してマスキング処理を行い、前記固定値でシフトされた小行列のブロックに対してシフト分を戻すシフト処理を行うことで、異なる符号化率の検査行列が使用されても、前記第1の検査行列に対する行演算処理と同一の演算処理を行う行演算部、
を備えることを特徴とする請求項5に記載の復号装置。 - 前記復号部は、
前記列演算処理として、前記0行列に置き換えられた小行列のブロックに対してマスキング処理を行うことで、異なる符号化率の検査行列が使用されても、最も符号化率の小さい前記第2の検査行列に対する列演算処理と同一の演算処理を行う列演算部、
を備えることを特徴とする請求項5または6に記載の復号装置。 - 復号装置を制御するための制御回路であって、
Pを正の整数とし、
前記復号装置は、
P×Pの小行列のブロックに分割可能であって、通信で使用される低密度パリティ検査符号の検査行列として想定される最大の符号化率の第1の検査行列を記憶する記憶部、
を備え、
前記第1の検査行列に含まれる、列方向で前記小行列を含む単位の行を用いて、一部のブロックを0行列に置き換えた第1の行を生成、
前記第1の検査行列に含まれる、列方向で前記小行列を含む単位の行を用いて、さらに、規定されたブロックを0行列に置き換えつつ他のブロックの小行列に含まれる1の位置を規定された固定値でシフトした1以上の第2の行を生成して、前記第1の検査行列よりも符号化率の低い第2の検査行列を生成、
を前記復号装置に実施させることを特徴とする制御回路。 - 復号装置を制御するためのプログラムが記憶された記憶媒体であって、
Pを正の整数とし、
前記復号装置は、
P×Pの小行列のブロックに分割可能であって、通信で使用される低密度パリティ検査符号の検査行列として想定される最大の符号化率の第1の検査行列を記憶する記憶部、
を備え、
前記プログラムは、
前記第1の検査行列に含まれる、列方向で前記小行列を含む単位の行を用いて、一部のブロックを0行列に置き換えた第1の行を生成、
前記第1の検査行列に含まれる、列方向で前記小行列を含む単位の行を用いて、さらに、規定されたブロックを0行列に置き換えつつ他のブロックの小行列に含まれる1の位置を規定された固定値でシフトした1以上の第2の行を生成して、前記第1の検査行列よりも符号化率の低い第2の検査行列を生成、
を前記復号装置に実施させることを特徴とする記憶媒体。 - 復号装置の検査行列生成方法であって、
Pを正の整数とし、
前記復号装置は、
P×Pの小行列のブロックに分割可能であって、通信で使用される低密度パリティ検査符号の検査行列として想定される最大の符号化率の第1の検査行列を記憶する記憶部、
を備え、
生成部が、前記第1の検査行列に含まれる、列方向で前記小行列を含む単位の行を用いて、一部のブロックを0行列に置き換えた第1の行を生成する第1のステップと、
前記生成部が、前記第1の検査行列に含まれる、列方向で前記小行列を含む単位の行を用いて、さらに、規定されたブロックを0行列に置き換えつつ他のブロックの小行列に含まれる1の位置を規定された固定値でシフトした1以上の第2の行を生成して、前記第1の検査行列よりも符号化率の低い第2の検査行列を生成する第2のステップと、
を含むことを特徴とする検査行列生成方法。 - 前記第2のステップにおいて、前記生成部は、前記第2の行を1つ生成する場合、前記規定されたブロックとして前記第1の行で0行列に置き換えられていないブロックを0行列に置き換える、
ことを特徴とする請求項10に記載の検査行列生成方法。 - 前記第2のステップにおいて、前記生成部は、前記第2の行を2つ以上生成する場合、前記規定されたブロックとして2つ以上の前記第2の行によって異なるブロックを0行列に置き換え、2つ以上の前記第2の行によって前記固定値を異なる値にする、
ことを特徴とする請求項10に記載の検査行列生成方法。 - 前記第1のステップにおいて、前記生成部は、前記第1の検査行列に含まれる、列方向で前記小行列を含む単位の複数の行を用いて、各行について前記第1の行を生成し、
前記第2のステップにおいて、前記生成部は、前記第1の検査行列に含まれる、列方向で前記小行列を含む単位の複数の行を用いて、各行について1以上の前記第2の行を生成する、
ことを特徴とする請求項10から12のいずれか1つに記載の検査行列生成方法。 - さらに、
復号部が、前記第1の検査行列または前記第2の検査行列を用いて、行演算処理および列演算処理を繰り返し実施する復号処理を行う第3のステップ、
を含むことを特徴とする請求項10から13のいずれか1つに記載の検査行列生成方法。 - 前記第3のステップにおいて、前記復号部は、前記行演算処理として、前記0行列に置き換えられた小行列のブロックに対してマスキング処理を行い、前記固定値でシフトされた小行列のブロックに対してシフト分を戻すシフト処理を行うことで、異なる符号化率の検査行列が使用されても、前記第1の検査行列に対する行演算処理と同一の演算処理を行う、
ことを特徴とする請求項14に記載の検査行列生成方法。 - 前記第3のステップにおいて、前記復号部は、前記列演算処理として、前記0行列に置き換えられた小行列のブロックに対してマスキング処理を行うことで、異なる符号化率の検査行列が使用されても、最も符号化率の小さい前記第2の検査行列に対する列演算処理と同一の演算処理を行う、
ことを特徴とする請求項14または15に記載の検査行列生成方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023578141A JP7536203B2 (ja) | 2022-06-28 | 2022-06-28 | 復号装置および検査行列生成方法 |
PCT/JP2022/025822 WO2024004047A1 (ja) | 2022-06-28 | 2022-06-28 | 復号装置、制御回路、記憶媒体および検査行列生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2022/025822 WO2024004047A1 (ja) | 2022-06-28 | 2022-06-28 | 復号装置、制御回路、記憶媒体および検査行列生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024004047A1 true WO2024004047A1 (ja) | 2024-01-04 |
Family
ID=89382117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/025822 WO2024004047A1 (ja) | 2022-06-28 | 2022-06-28 | 復号装置、制御回路、記憶媒体および検査行列生成方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7536203B2 (ja) |
WO (1) | WO2024004047A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009004773A1 (ja) * | 2007-06-29 | 2009-01-08 | Mitsubishi Electric Corporation | 検査行列生成装置、検査行列生成方法、符号化器、送信装置、復号器及び受信装置 |
WO2019229846A1 (ja) * | 2018-05-29 | 2019-12-05 | 三菱電機株式会社 | 送信機、受信機、通信システム、および符号化率の変更方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021171506A1 (ja) | 2020-02-27 | 2021-09-02 | 三菱電機株式会社 | 復号方法、復号装置、制御回路およびプログラム記憶媒体 |
-
2022
- 2022-06-28 WO PCT/JP2022/025822 patent/WO2024004047A1/ja unknown
- 2022-06-28 JP JP2023578141A patent/JP7536203B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009004773A1 (ja) * | 2007-06-29 | 2009-01-08 | Mitsubishi Electric Corporation | 検査行列生成装置、検査行列生成方法、符号化器、送信装置、復号器及び受信装置 |
WO2019229846A1 (ja) * | 2018-05-29 | 2019-12-05 | 三菱電機株式会社 | 送信機、受信機、通信システム、および符号化率の変更方法 |
Non-Patent Citations (2)
Title |
---|
NOKIA, ALCATEL-LUCENT SHANGHAI BELL: "LDPC design for eMBB", 3GPP TSG RAN WG1 #89, R1-1708829, 6 May 2017 (2017-05-06), XP051262697 * |
YOSHIAKI KONISHI, HIDEO YOSHIDA, TAKAHIKO NAKAMURA, KENJI ISHII, TAKAFUMI FUJIMORI: "High-speed low-power forward error correction coding technology for communications", IEICE TECHNICAL REPORT, PN, IEICE, JP, vol. 120, no. 137 (PN2020-18), 1 January 2020 (2020-01-01), JP, pages 31 - 38, XP009551646 * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2024004047A1 (ja) | 2024-01-04 |
JP7536203B2 (ja) | 2024-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100905814B1 (ko) | Ldpc 인코딩 방법 | |
KR101405962B1 (ko) | Ldpc 코드를 이용한 복호화 방법 | |
US8438459B2 (en) | Apparatus and method for decoding using channel code | |
US6957375B2 (en) | Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation | |
JP5700041B2 (ja) | 符号化装置、誤り訂正符号構成方法およびそのプログラム | |
JP4602406B2 (ja) | データをエンコード及びデコードするための方法並びに装置 | |
KR101227264B1 (ko) | Ldpc 코드용 디코더 | |
US8572463B2 (en) | Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size | |
US20070192670A1 (en) | Decoding device and decoding method | |
JP4832447B2 (ja) | チャネルコードを用いた復号化装置及び方法 | |
EP1597828B1 (en) | Method and apparatus for performing low-density parity-check (ldpc) code operations using a multi-level permutation | |
US9537510B2 (en) | Variable shifter, decoder, and data shifting method | |
WO2014117836A1 (en) | Ldpc code design and encoding apparatus enabling the adjustment of code rate and codelength | |
KR101077552B1 (ko) | 복수의 기본 패리티 검사행렬을 이용한 저밀도 패리티 검사부호의 복호화 장치 및 그 방법 | |
WO2024004047A1 (ja) | 復号装置、制御回路、記憶媒体および検査行列生成方法 | |
CN112332857B (zh) | 一种用于ldpc码的循环移位网络系统及循环移位方法 | |
CN108432170B (zh) | 用于多码分布式存储的装置和方法 | |
CN102057580A (zh) | 针对多标准的可重新配置的Turbo交织器 | |
CN107733441B (zh) | 编码方法及装置、译码方法及装置 | |
US20220329261A1 (en) | Decoding method, decoding device, control circuit, and program storage medium | |
KR20070107521A (ko) | 비이진 구조적 저밀도 패리티 검사 부호 생성 방법 | |
JP5510447B2 (ja) | 復号装置および復号方法 | |
CN111726122A (zh) | 用于管理奇偶校验矩阵的装置和方法 | |
WO2014117837A1 (en) | Ldpc code design and encoding apparatus for their application | |
KR101073636B1 (ko) | 저밀도 패리티 검사 부호를 이용한 복호화 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2023578141 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22949323 Country of ref document: EP Kind code of ref document: A1 |