WO2021220441A1 - 符号化回路、復号回路、制御回路、記憶媒体および復号方法 - Google Patents
符号化回路、復号回路、制御回路、記憶媒体および復号方法 Download PDFInfo
- Publication number
- WO2021220441A1 WO2021220441A1 PCT/JP2020/018192 JP2020018192W WO2021220441A1 WO 2021220441 A1 WO2021220441 A1 WO 2021220441A1 JP 2020018192 W JP2020018192 W JP 2020018192W WO 2021220441 A1 WO2021220441 A1 WO 2021220441A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- decoding
- bit
- unit
- polar
- code length
- Prior art date
Links
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
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6575—Implementations based on combinatorial logic, e.g. Boolean circuits
Definitions
- the present disclosure relates to a polar code coding circuit, a decoding circuit, a control circuit, a storage medium, and a decoding method.
- the polar code which is a method of error correction code, can realize a characteristic asymptotic to the Shannon limit based on the idea of channel polarization (see Non-Patent Document 1 below).
- the polar code is a type of block code.
- the polar code is encoded by repeating the combination by exclusive OR and the wiring change to change the combination of the bits in the block. Due to the structure of the code, the code length of the polar code is a power of 2 (2 m (m is an integer of 0 or more)).
- Patent Document 1 utilizes the fact that the code length of the polar code is a power of 2, and in a communication system for transmitting and receiving data of a power of 2 bits, the code length of the polar code is determined according to the number of bits of the data to be transmitted and received.
- a communication system that omits the rate conversion process by changing the above is disclosed. With this configuration, highly complicated rate conversion processing such as puncture ringing and shortening can be omitted, so that it is possible to reduce the load of transmission / reception processing and processing delay.
- the present disclosure has been made in view of the above, and an object of the present disclosure is to obtain a coded circuit capable of supporting polar codes having a plurality of code lengths while suppressing an increase in circuit scale.
- the coding circuit includes a first polar coding unit capable of coding a polar code having a first code length, and an input signal. It includes a frozen bit addition unit that generates a first series by adding a frozen bit.
- the coding circuit further sets the first sequence according to an arrangement rule according to the ratio of the second code length to the first code length, which is the code length of the polar code to be coded and is equal to or less than the first code length. If it is arranged in the second code length of 1 code length and the second code length is less than the first code length, the bit value of the bit position other than the position where the first series in the second code length is arranged is set to 0.
- bit arrangement changing unit for generating the second series and inputting the second series to the first polar coding unit is provided, and the thinning process based on the coding result by the first polar coding unit of the second series is performed.
- a code word with a second code length is generated.
- Block diagram showing a configuration example of the decoding circuit according to the second embodiment A flowchart showing an example of the decoding processing procedure of the second embodiment.
- Block diagram showing a configuration example of the coding circuit according to the third embodiment Block diagram showing a configuration example of the decoding circuit according to the fourth embodiment
- FIG. 1 is a block diagram showing a configuration example of a coding circuit according to the first embodiment.
- the coding circuit 1 shown in FIG. 1 generates a non-systematic polar code.
- a non-systematic polar code will be referred to as a polar code
- a systematic polar code in which the same information bit sequence appears before and after coding will be referred to as a systematic polar code.
- the coding circuit 1 shown in FIG. 1 includes a frozen bit addition unit (frozen bit addition unit) 10, a bit arrangement changing unit 11, a polar coding unit 12, and a thinning processing unit 13.
- the information bit is K bit
- the maximum code length (maximum code length) that the coding circuit 1 can handle is N bit
- the code length of the polar code encoded by the coding circuit 1 is N t bit. ..
- the N t bit can be selected from a value of a power of 2 having a maximum code length of N bits or less.
- the frozen bit addition unit 10 adds a fixed value called a frozen bit to the input signal, which is associated with polar coding.
- the frozen bit from the communication path polarization which is a feature of the polar code, focused on the difference of communication capacity by the bit position within an encoded block from a large portion of the communication capacity to place the information bits, other than the information bits N t -
- the K bit is a fixed value such as 0.
- frozen bit addition unit 10 as in the first series after the addition of the frozen bits is performed is N t bits, adds the frozen bits.
- Frozen bits correspond to redundant bits such as parity bits of other error correction methods.
- a commonly used setting method can be used in addition to the method based on the above-mentioned concept of channel polarization, and the setting position is not limited to the above example. ..
- the maximum code length is also referred to as a first code length
- the code length Nt bit is also referred to as a second code length.
- the bit arrangement changing unit 11 sets the first series according to an arrangement rule according to the ratio of the second code length equal to or less than the first code length of the polar code to be coded to the first code length. By arranging it in the second series having one code length, the second series is generated, and the second series is input to the polar coding unit 12. That is, the bit arrangement changing portion 11 is configured to extend the code length N t first series of bits after the addition of the frozen bits by frozen bit adding part 10 is performed to the second sequence of N bits is the maximum code length Performs bit placement processing to rearrange the bits.
- Arrangement rule of the bit arrangement process for example, a first sequence of N t bits, one bit per N / N t bits in the second series are arranged, of the second series of portions bits of the first sequence is not arranged
- the rule is that the bit value is 0. That is, for example, when N t is less than N, the bit arrangement changing unit 11 arranges the bit values of the first series in the second series at the bit positions of each quotient value obtained by dividing N by N t. ..
- the bit arrangement changing unit 11 inputs the first sequence as the second sequence to the polar coding unit 12.
- the polar coding unit 12 which is the first polar coding unit, performs polar coding of N bits having the maximum code length with respect to the second series to generate N-bit codewords.
- the thinning processing unit 13 selects and outputs the coding result of the coding circuit 1, that is, the Nt bit which is the final code word generated by the coding circuit 1 from the code words generated by the polar coding unit 12. do.
- a codeword having a second code length is generated by a thinning process based on the result of the second series being encoded by the polar coding unit 12.
- N 16
- the maximum code length is 16 bits.
- the bit arrangement changing unit 11 outputs the first series output from the frozen bit addition unit 10 described above as the second series as it is.
- the second sequence is an input bit sequence 40 input to the polar coding unit 12.
- the input bit sequence 40, b16 [b 16,0, b 16,1, ..., b 16,15]
- the codeword 41 which is output from the polar coder 12 c16 [c 16 , 0 , c 16 , 1, ... , c 16, 15 ].
- the polar coding unit 12 Since the polar code is encoded by repeating the combination by the exclusive OR and the wiring change for changing the combination to be combined, the polar coding unit 12 has a plurality of exclusive codes as shown in FIG.
- the OR circuit 42 is provided.
- a polar code coding circuit having a code length of 2 m has a configuration in which 2 m-1 exclusive OR circuits 42 are connected in m stages. In the example shown in FIG. 2, 2 m-1 , that is, eight vertically arranged exclusive OR circuits 42 are shown in four stages in the horizontal direction.
- the output of the exclusive OR circuit 42 of each stage is recombined, which is a wiring change that changes the combination to be coupled, and is connected to the input of the next stage.
- the first series output from the frozen bit addition unit 10 is 8 bits.
- the bit arrangement changing unit 11 uses the second sequence of N bits for extension to N bits.
- Each bit of b8 is arranged every 2 bits, and a 0 value 52 is added to the other bits of the second series.
- This second sequence is input to the polar coding unit 12 as the input bit sequence 50.
- the result of the exclusive OR after the exclusive OR circuit 42 of the first stage of the polar coding unit 12 is performed is an 8-bit bit sequence 53.
- b'8 [b '8,0, b ' 8,1, ..., b '8,7]
- the coding processing unit 54 is a portion of the exclusive OR circuit 42 of the second and subsequent stages into which the result of the exclusive OR of the first stage is input.
- Coding processing unit 54 is equivalent to the encoding circuit 8 bits or N t bits polar code. Since the result of the exclusive OR of the bit values x and 0 is x, b'8 is equal to b8.
- c8 [c8,0 , c8,1 , ..., C8,7 ], which is the codeword 51 output from the coding processing unit 54, is the result of encoding b8. Therefore, the thinning processing unit 13 performs the thinning processing so as to select and output the bit corresponding to the code word 51 from the N-bit code words output from the polar coding unit 12. As a result, the thinning processing unit 13 can output the coding result of the 8-bit polar code. As shown in FIG. 3, the code word 51 is a bit having a second code length at consecutive bit positions.
- the first series output from the frozen bit addition unit 10 is 4 bits.
- the bit arrangement changing unit 11 uses the second sequence of N bits for extension to N bits.
- Each bit of b4 is arranged every 4 bits, and a 0 value 52 is added to the other bits of the second series.
- This second sequence is input to the polar coding unit 12 as an input bit sequence 60.
- the coding processing unit 64 is a portion of the exclusive OR circuit 42 of the third and subsequent stages into which the result of the exclusive OR of the bit sequence 62 is input.
- the first series output from the frozen bit addition unit 10 is 2 bits.
- the bit arrangement changing unit 11 adds b2 to the second series of N bits every 8 bits in order to extend to N bits.
- Each bit is arranged and a 0 value 52 is added to the other bits of the second series.
- This second sequence is input to the polar coding unit 12 as an input bit sequence 70.
- the coding processing unit 75 is a portion of the fourth-stage exclusive OR circuit 42 in which the result of the exclusive OR of the bit sequence 73 is input.
- Encoding unit 75 is equivalent to the encoding circuit 2 of the bits, or N t bits polar code.
- the thinning processing unit 13 performs the thinning processing so as to select and output the bit corresponding to the code word 71 from the N-bit code words output from the polar coding unit 12. As a result, the thinning processing unit 13 can output the coding result of the 2-bit polar code.
- the coding circuit 1 expands and rearranges the first series output from the frozen bit addition unit 10 for each N / N t, and rearranges the second series of N bits.
- the configuration of the polar coding unit 12 shown in FIGS. 2 to 5 is an example, and the position where the bit sequence input to the polar coding unit 12 is input and the exclusive OR in the polar coding unit 12
- the connection from the sum circuit 42 for changing the wiring is not limited to the examples shown in FIGS. 2 to 5. Even if the bit positions at which the bits such as c8, c4, and c2 are output are different from the examples shown in FIGS.
- the thinning processing unit 13 If the bits at the bit positions corresponding to c8, c4, and c2 are selected and output, the same results as the examples shown in FIGS. 2 to 5 can be obtained.
- the thinning processing unit 13 may select and output the bits output from the portion equivalent to the coding processing unit 54 from the bit series output from the polar coding unit 12.
- the coding circuit 1 of the present embodiment performs polar coding according to the code length N t by inputting an instruction of N t from the outside or changing the value of N t held inside. Can be carried out. As described above, since the coding circuit 1 of the present embodiment can dynamically change the code length, the code length can be switched by sharing one circuit, and the increase in the circuit scale is suppressed. be able to.
- FIG. 6 is a diagram showing a processing circuit which is the dedicated hardware of the present embodiment.
- Each part constituting the coding circuit 1 is realized by, for example, the processing circuit 130 shown in FIG.
- the processing circuit 130 corresponds to, 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 thereof.
- the functions of the respective parts constituting the coding circuit 1 may be realized by different processing circuits 130, or all or a part of the functions of these parts may be collectively realized by one or a plurality of processing circuits. good.
- the processing circuit that realizes each part that constitutes the coding circuit 1 may be a control circuit including a processor.
- FIG. 7 is a diagram showing an example of the control circuit of the present embodiment. As shown in FIG. 7, the control circuit includes a processor 140 and a memory 141. When the functions of the respective parts constituting the coding circuit 1 are realized by the control circuit shown in FIG. 7, these functions can be realized by software, firmware, or a combination of software and firmware. Software and firmware are written as programs and stored in memory 141. When the processor 140 reads the program from the memory 141 and executes it, the functions of each part of the coding circuit 1 are realized. It can be said that these programs cause a computer to execute the procedure and method executed by the coding circuit 1. This program may be provided by a storage medium or a communication medium.
- the memory 141 is a non-volatile such as RAM (Random Access Memory), ROM (Read Only Memory), flash memory, EPROM (Erasable Programmable Read Only Memory), EEPROM (registered trademark) (Electrically Erasable Programmable Read Only Memory).
- RAM Random Access Memory
- ROM Read Only Memory
- flash memory EPROM (Erasable Programmable Read Only Memory)
- EEPROM registered trademark
- Each function of each part of the coding circuit 1 may be partially realized by dedicated hardware and partly realized by software or firmware. It is possible to realize the function of the polar coding unit 12 with dedicated hardware, and to realize the function of the frozen bit addition unit 10, the bit arrangement changing unit 11, and the thinning processing unit 13 with the processor and the memory. .. In this way, each function of each part of the coding circuit 1 may be realized by a combination of a processing circuit, which is dedicated hardware, and a control circuit.
- FIG. 8 is a block diagram showing a configuration example of the decoding circuit according to the second embodiment.
- the decoding circuit 2 shown in FIG. 8 executes a process of a list-type sequential removal decoding method (SCLD: Successive Cancellation List Decoding), which is a typical decoding method of a polar code.
- SCLD Successive Cancellation List Decoding
- the list-type sequential removal decoding method is an example of the sequential decoding method.
- Decoding circuit 2 of the present embodiment for example, instruction N t is inputted from the outside, or that the value of N t is held therein is changed, implement the decoding corresponding to the code length N t can do.
- the decoding circuit 2 may decode the polar code encoded by the coding circuit 1 of the first embodiment, or may obtain a polar code generated by a coding circuit other than the coding circuit 1 of the first embodiment. It may be decrypted.
- the decoding circuit 2 of the present embodiment includes a list processing unit 21, a likelihood calculation unit 30, a polar coding unit 22-0 to 22-n, and a bit arrangement changing unit 23-0 to 23-.
- n a control unit 24, a decoding bit selection unit 25, and a frozen bit removal unit 26 are provided.
- N + 1 from 0 to n indicates the number of first likelihood calculation units. For n + 1, for example, if the number of lists indicating the maximum number of decoding candidates assumed by the list-type sequential removal decoding method is L, n + 1 may be less than L.
- the first likelihood calculation unit, the polar coding unit, and the bit arrangement changing unit are provided in parallel by the number of lists L.
- each of the polar coding units 22-0 to 22-n is shown without being individually distinguished, it is described as the polar coding unit 22, and each of the bit arrangement changing parts 23-0 to 23-n is individually distinguished. When it is shown without the above, it is described as the bit arrangement changing unit 23.
- Likelihood calculating unit 30 is capable of calculating the likelihood information of the polar code of N bits, based on the input signal and a decoded intermediate results, to calculate the likelihood information corresponding to the polar code N t bits.
- the likelihood calculation unit 30 includes a first likelihood calculation unit 200-0 to 200-n.
- the likelihood information corresponding to t is calculated.
- the likelihood information is information for the list processing unit 21 to determine a decoding candidate.
- LLR log-likelihood ratio
- the input signal may be soft judgment information such as likelihood and probability.
- the first likelihood calculation unit 200-0 to 200-n has the same configuration.
- first likelihood calculation unit 200 when each of the first likelihood calculation units 200-0 to 200-n is shown without distinction, it is referred to as the first likelihood calculation unit 200.
- the first likelihood calculation unit 200 includes a second likelihood calculation unit 201-0, 201-1 and an XOR calculation unit (exclusive OR calculation unit) 203.
- the second likelihood calculation units 201-0 and 201-1 have the same configuration.
- the XOR calculation unit 203 includes the likelihood information output from the second likelihood calculation unit 201-0, the likelihood information output from the second likelihood calculation unit 211-1, and the decoding output from the polar coding unit 22.
- the exclusive OR operation of LLR is performed using the information in the middle, and the calculation result is output to the list processing unit 21.
- the second likelihood calculation unit 201 when each of the second likelihood calculation units 201-0 and 201-1 is shown without distinction, it is referred to as the second likelihood calculation unit 201.
- the second likelihood calculation unit 201 includes a third likelihood calculation unit 202-0, 202-1 and an XOR calculation unit (exclusive OR calculation unit) 204.
- the third likelihood calculation units 202-0 and 202-1 have the same configuration.
- the XOR calculation unit 204 includes the likelihood information output from the third likelihood calculation unit 202-0, the likelihood information output from the third likelihood calculation unit 202-1, and the decoding output from the polar coding unit 22.
- the exclusive OR operation of LLR is performed using the information in the middle, and the calculation result is output to the XOR calculation unit 203 as the likelihood information calculated by the second likelihood calculation unit 201.
- the third likelihood calculation unit 202 is described as the third likelihood calculation unit 202.
- the value of N t corresponding to the likelihood calculation unit of each stage differs depending on the value of N.
- the likelihood calculation unit 30 calculates the exclusive OR of the two likelihood information when log 2 N is m, and the second (i + 1) likelihood calculation unit and the second (i + 1)
- the fourth likelihood calculation unit inputs the exclusive OR of the two LLRs to be input to the XOR calculation unit and the list processing unit 21 (not shown) of the third likelihood calculation unit 202.
- the minimum unit likelihood calculation unit is, for example, a circuit that calculates the likelihood information corresponding to the polar code encoded by the coding processing unit 75 shown in FIG. 5 of the first embodiment.
- the third likelihood calculation unit 202 is, for example, a circuit that calculates the likelihood information corresponding to the polar code encoded by the coding processing unit 64 shown in FIG. 4 of the first embodiment.
- the second likelihood calculation unit 201 is, for example, a circuit that calculates the likelihood information corresponding to the polar code encoded by the coding processing unit 54 shown in FIG. 3 of the first embodiment.
- the first likelihood calculation unit 200 is a circuit that calculates the likelihood information of the polar code having a code length of 16 bits.
- N 16
- the degree calculation unit connects the wiring to which the calculation result of the likelihood information is input to the list processing unit 21, and the likelihood information is input from at least one of these wirings.
- the number of wiring from the first likelihood calculator 200 per one list to the list processing section 21 is a nested stages log 2 N first likelihood calculating section 200. Therefore, when the first likelihood calculation unit 200 for the number of lists L is arranged in parallel, a total of 2 N wires of L ⁇ log are connected.
- the sequential removal decoding method In the sequential removal decoding method, the likelihood calculation using the input LLR and the decoding result in the middle of decoding, the process of determining the decoding candidate for one bit using the likelihood calculation result, and the recoding of the determined decoding candidate.
- This is a method of fixing bit by bit while repeating.
- the list-type sequential removal decoding method assumes two types of decoding candidates in which the bit to be determined is 0 or 1 with respect to the decoding candidates of the remaining list based on the likelihood calculation result, and is assumed decoding candidates. Calculate information such as path metrics that represent the likelihood of. Therefore, the number of lists doubles as sequential decoding progresses. If the number of lists is less than or equal to the maximum number of lists, all lists (decryption candidates) are retained.
- the list processing unit 21 is a decoding candidate excluding the likelihood calculation (processing of the likelihood calculation unit 30) and the recoding of the decoding candidate (processing of the polar coding unit 22) of the list-type sequential removal decoding method. It is a processing unit that calculates information indicating the likelihood of a list such as confirmation and path metric, and manages decoding candidates (number of lists).
- the list processing unit 21 of the present embodiment adds a process of selecting the calculation result of the corresponding likelihood calculation unit according to the specified or set N t value to the above-mentioned process.
- This is a decoding processing unit that is executed as a decoding process of the list-type sequential removal decoding method.
- the control unit 24 is, according to the value of N t to likelihood calculating section requiring calculation of likelihood information, and instructs the write position calculation results, the list processing section 21 reads data from the write position
- the calculation result for each list may be input by, or the total likelihood calculation unit outputs the calculation result to the list processing unit 21, and the list processing unit 21 performs necessary calculation based on the information from the control unit 24.
- the results may be selected and used.
- the list processing unit 21 After the processing for one bit is completed, the list processing unit 21 outputs decoding candidates in the middle of decoding processing for the number of L lists to the bit arrangement changing units 23-0 to 23-n, and the processing of the list processing unit 21 is completed.
- the flag indicating that the decoding has been performed, the decoding processing number, the number of lists in the process of decoding, and the like are output to the control unit 24. Further, the list processing unit 21 outputs likelihood information such as path metrics indicating the likelihood of L decoding candidates and decoding candidates to the decoding bit selection unit 25 after the sequential decoding of N t bits is completed.
- the bit arrangement changing units 23-0 to 23-n which are the first bit arrangement changing units, are the same as the bit arrangement changing unit 11 of the coding circuit 1 of the first embodiment based on the decoding candidates from the list processing unit 21.
- a first bit sequence extended to N bits is generated, and the first bit sequence is converted into the corresponding polar coding unit 22-0 to 22-n.
- the bit arrangement changing units 23-0 to 23-n generate a bit sequence extended to N bits by setting the bit that has not been decoded to a 0 value.
- the polar coding units 22-0 to 22-n which are the first polar coding units, are described in the first embodiment with respect to the first bit sequence input from the corresponding bit arrangement changing units 23-0 to 23-n.
- N-bit polar coding similar to that of the polar coding unit 12 of the coding circuit 1 is performed, and the polar coding result is input to the corresponding first likelihood calculation unit 200 as a decoding intermediate result.
- the control unit 24 controls the processing of each likelihood calculation unit and the processing of the list processing unit 21.
- the control unit 24 may control the bit position referred to by the likelihood calculation unit 30 among the coding results by the polar coding units 22-0 to 22-n.
- the calculation proceeds from right to left in FIG. 3, and the exclusive OR circuit 42 corresponds to each XOR calculation unit. Further, the likelihood calculation corresponding to each exclusive OR circuit 42 is 2 inputs and 1 output.
- the likelihood calculation of the LLR is performed using the LLR that is the input to the circuit 2, and the calculation result is output as the output of the fourth likelihood calculation unit.
- each likelihood calculation has 2 inputs and 1 output, it corresponds to the 2nd, 4th, 6th, and 8th exclusive OR circuits 42 from the top of the 2nd exclusive OR circuit 42 from the right.
- the XOR calculation unit may not be mounted on the decoding circuit.
- the LLR likelihood calculation is performed by the XOR calculation unit of the third likelihood calculation unit 202 using the output from the fourth likelihood calculation unit, and the third likelihood is calculated.
- the calculation result is output as the output of the calculation unit 202.
- the XOR calculation unit 204 of the second likelihood calculation unit 201 corresponding to the third exclusive OR circuit 42 from the right performs the likelihood calculation using the output from the third likelihood calculation unit 202.
- the calculation result is output as the output of the second likelihood calculation unit 201.
- the calculation result of the second likelihood calculation unit 201 is output to the list processing unit 21.
- the XOR calculation unit 203 of the first likelihood calculation unit 200 corresponding to the fourth exclusive OR circuit 42 from the right is further from the second likelihood calculation unit 201.
- the likelihood calculation is performed using the output of, and the calculation result is output to the list processing unit 21 as the output of the first likelihood calculation unit 200.
- the list processing unit 21 performs list decoding processing using the output from the likelihood calculation unit 30, and the polar coding unit 22 re-encodes the decoding candidates. Will be done.
- the re-encoding result by the polar coding unit 22 is input to the likelihood calculation unit 30 for the decoding process of the second bit.
- the same operation as the operation up to the second likelihood calculation unit 201 of the first-bit likelihood calculation process is performed.
- the XOR calculation unit 203 of the first likelihood calculation unit 200 uses the output of the second likelihood calculation unit 201 and the recoding result output from the polar coding unit 22, and is the second from the top on the left.
- the likelihood calculation corresponding to the position of the 0 value is performed, and the likelihood calculation result is output to the list processing unit 21.
- the list decoding process by the list processing unit 21 and the recoding process by the polar coding unit 22 are executed, and the recoding processing result is input to the likelihood calculation unit 30.
- the calculation result is output from the XOR calculation unit 204 of the second likelihood calculation unit 201 to the list processing unit 21, and the list decoding process is performed.
- the recoding with the 4th bit of N 16 as 0, it is equivalent to the fact that the bit candidates at the positions b'8 and 1 are determined.
- the likelihood calculation unit outputs the calculation result of the XOR calculation unit of the third likelihood calculation unit 202 to the list processing unit 21, the list decoding process by the list processing unit 21, and the recoding by the polar coding unit 22.
- the likelihood calculation process may be executed for each N / N t , and the control unit 24 may be N t or internal input from the outside. According to the set value of N t held in, the likelihood calculation required in the case of the code length N t among the unnecessary circuit stop and the decoding process of the maximum code length N of the likelihood calculation unit 30 described above. Controls the calculation process of unit 30. In order to control the control unit 24 so as to omit the processing for bits other than the bits for each N / N t in the decoding operation of the maximum code length N, the number of sequential decodings assuming N in the circuit configuration of the maximum code length N. Decoding of the polar code can be completed with a smaller number of N t sequential decoding processes.
- the control unit 24 uses this.
- the function of the second likelihood calculation unit 201 may be stopped.
- the control unit 24 may perform control such as stopping a circuit that does not need to be calculated by the likelihood calculation unit when the number of lists is smaller than the maximum number of lists during decoding.
- the control unit 24 controls the processing in the list processing unit 21 based on the information from the list processing unit 21 and using the information such as how many bits of decoding are completed.
- the list processing unit 21 holds the frozen bit position information, and the list processing unit 21 processes the bit number processed by the list processing unit 21 by notifying the list processing unit 21 of the bit number being processed. It may be determined whether or not the target bit is a frozen bit, and when the control unit 24 holds the information on the frozen bit position, the information indicating whether or not the corresponding processing bit is a frozen bit. May be notified from the control unit 24 to the list processing unit 21. In this way, the control unit 24 sends the list processing unit 21 the processing target of the list processing unit 21 according to the information indicating the progress of the processing of the list processing unit 21 notified from the list processing unit 21. You may notify whether or not.
- the control unit 24 may control the control according to the number of lists in the process of decoding.
- the list processing unit 21 When the sequential decoding process for N t bits is completed, the list processing unit 21 outputs the likelihood information of the decoding candidates such as the number of lists and the path metrics to the decoding bit selection unit 25.
- the decoding bit selection unit 25 selects the decoding bit using the decoding candidate.
- An example of the data length to be processed is the Nt bit. Specifically, for example, when the decoding bit selection unit 25 performs error detection processing on the K-bit bit sequence before encoding, error detection is performed on each decoding candidate, and an error is detected.
- Decoding candidates that do not have are selected and output, and if an error is detected in all the decoding candidates, the decoding candidates are selected using the likelihood information of the decoding candidates such as path metrics.
- the decoding bit selection unit 25 selects a plausible decoding candidate by using the likelihood information of the decoding candidate such as path metric. Output.
- a CRC bit for error detection is added as a redundant bit, for example, as in the generally known CRC (Cyclic Redundancy Check) aided list type sequential removal decoding method. Processing.
- the decoding bit selection unit 25 can perform the error detection process using the redundant bits.
- the error detection process is not limited to CRC, and is a parity code such as FEC (Forward Error Correction: forward error correction), VRC (Vertical Redundancy Check) or horizontal parity check LRC (Longitudinal Redundancy Check). Processing such as parity check) and check sum can be used.
- FEC Forward Error Correction: forward error correction
- VRC Very Redundancy Check
- LRC Longitudinal Redundancy Check
- the frozen bit removal unit 26 removes frozen bits from the decoding bits output from the decoding bit selection unit 25, and outputs a K-bit information bit sequence.
- SCD Successive Cancellation Decoding
- FIG. 8 shows a configuration example in which a list-type sequential removal decoding method is assumed and circuits that perform processing corresponding to each list are executed in parallel for a maximum of L lists, but decoding for the number of lists is shown. Since it is sufficient if the processing for executing the processing is possible, a number of circuits larger than the maximum number of lists L is implemented, and the control unit 24 controls each unit so as to execute the processing for the required number of lists. You may. Further, the number of lists may be variable. In this case, the control unit 24 controls to operate each unit required for processing according to the number of lists. It is also possible to execute processing for the number of lists by time division using at least one parallel mounting circuit having a number of lists or less. For example, in FIG.
- the likelihood calculation unit 30 includes a first likelihood calculation unit as n + 1 parallel circuits from 200-0 to 200-n, but one or more first likelihood calculation units. Only one of them may be provided, and one or more of the first likelihood calculation units may perform n + 1 likelihood calculation processes in a time division. Similarly, the likelihood calculation unit provided with two or more in the first likelihood calculation unit may be processed by time division. Similarly, the polar coding unit 22 and the bit arrangement changing unit 23 each include one or more circuits, and can be processed in a time division manner.
- the number of each parallel mounting circuit of the decoding circuit 2 of the present embodiment is not limited to the example shown in FIG. 8, and can be arbitrarily set and mounted.
- the decoding circuit 2 of the present embodiment implements a decoding circuit capable of decoding the polar code having the maximum code length N, and the control unit 24 controls the necessary likelihood calculation and list processing.
- the code length can be easily and dynamically controlled.
- Each part constituting the decoding circuit 2 can be realized by a processing circuit which is dedicated hardware.
- Each part constituting the decoding circuit 2 is realized by, for example, the processing circuit 130 shown in FIG.
- the processing circuit 130 may realize the functions of the respective parts constituting the decoding circuit 2 in different processing circuits 130, or all or a part of the functions of the respective parts are collectively 1 It may be realized by one or more processing circuits.
- the processing circuit that realizes each part that constitutes the decoding circuit 2 may be a control circuit including a processor.
- This control circuit is, for example, as shown in FIG. 7, a control circuit including a processor 140 and a memory 141.
- these functions can be realized by software, firmware, or a combination of software and firmware.
- Software and firmware are written as programs and stored in memory 141.
- the processor 140 reads the program from the memory 141 and executes it, the functions of each part of the decoding circuit 2 are realized. It can be said that these programs cause the computer to execute the procedure and method executed by the decoding circuit 2.
- This program may be provided by a storage medium or a communication medium.
- Each function of each part of the decoding circuit 2 may be partially realized by dedicated hardware and partly realized by software or firmware. That is, each function of each part of the decoding circuit 2 may be realized by a combination of a processing circuit, which is dedicated hardware, and a control circuit.
- FIG. 9 is a flowchart showing an example of the decoding processing procedure of the present embodiment.
- the decoding circuit 2 decodes by the list-type sequential removal decoding method.
- the control unit 24 as an initial setting of the decoding process, corresponding to the decoding process for the bit number n m and the code length N t corresponding to the decoding process of the maximum code length N
- the bit number nt to be used is set to 0, which is the initial value, and the decoding process is performed.
- the control unit 24 determines whether or not the bit number nm is the bit position corresponding to the code word having the code length N t , that is, the remainder Mod ( nm , N /) obtained by dividing nm by N / N t. It is determined whether or not N t ) is 0 (step S1). If Mod ( nm , N / N t ) is not 0 (step S1 No), the bit number nm is counted up by 1 (step S10), and the process of step S1 is performed again.
- step S2 When Mod ( nm , N / N t ) is 0 (step S1 Yes), the control unit 24 executes the likelihood calculation process (step S2). Specifically, the control unit 24, in response to N t, each likelihood calculation portion of the first likelihood calculator 200-0 ⁇ 200-n and the first likelihood calculator 200-0 ⁇ in 200-n Instruct the likelihood calculation unit required for the process to execute the process. As a result, the likelihood calculation process according to N t is performed.
- the list processing unit 21 executes a list decoding process for determining decoding candidates based on the likelihood calculation result (step S3).
- the bit arrangement changing units 23-0 to 23-n perform decoding bit rearrangement processing on the decoding candidates determined by the list processing unit 21 (step S4). Specifically, the bit arrangement changing units 23-0 to 23-n rearrange the bits so as to extend the decoding candidates determined by the list processing unit 21 to the bit sequence of N bits.
- step S5 the polar coding units 22-0 to 22-n perform a decoding bit coding process.
- the control unit 24 causes the list processing unit 21 to output the decoding candidate to the decoding bit selection unit 25, and the decoding bit selection unit 25 causes the decoding bit selection unit 25 to output the decoding result based on the decoding candidate.
- the decoding result selection process for confirming is performed (step S8).
- the frozen bit removal unit 26 performs a frozen bit removal process for removing frozen bits from the decoding result determined by the decoding bit selection unit 25 (step S9).
- the control unit 24 controls the likelihood calculation process, it is possible to share the decoding circuit having the maximum code length N and decode the polar code having a plurality of code lengths. Therefore, it is possible to suppress an increase in the circuit scale and perform decoding corresponding to a polar code having a plurality of code lengths. Further, since the number of sequential decodings can be limited to N t times, the processing delay of the circuit designed and constructed according to the code length N t can be realized. As described above, when the number of lists L is 1, the list-type sequential removal decoding method is equivalent to the sequential removal decoding method. Therefore, the flowchart shown in FIG. 9 also includes the case of the sequential removal decoding method. It is a flowchart.
- FIG. 10 is a block diagram showing a configuration example of the coding circuit according to the third embodiment.
- the coding circuit 1 that generates a non-systematic polar code has been described, but in the present embodiment, the coding circuit 1a that generates a systematic polar code will be described.
- the components having the same functions as those of the first embodiment are designated by the same reference numerals as those of the first embodiment, and the duplicate description will be omitted.
- the points different from those of the first embodiment will be mainly described.
- the coding circuit 1a includes a frozen bit addition unit 10, a bit arrangement changing unit 11, a polar coding unit 12, a frozen bit conversion unit (frozen bit conversion unit) 80, a polar coding unit 81, and thinning out.
- a processing unit 82 is provided. Similar to the first embodiment, the coding circuit 1a can generate a polar code having a code length of up to N bits. It is possible to generate a polar code having a code length of N t bits specified or set among code lengths of N bits or less.
- frozen bit addition unit 10 the bit arrangement change unit 11, and the polar coding unit 12 are the same as those in the first embodiment, and thus the description thereof will be omitted.
- frozen bit conversion unit 80 the bit sequence of the code word of N t bits, replacing the bit position in the bit-reversed order of the bit position of the frozen bits be set before encoding of polar codes frozen bits.
- the bit inversion order is the order of the indexes in which the bit order is reversed, such as converting the binary display of the bit index from the MSB (Most Significant Bit) to the LSB (Least Significant Bit) in reverse. It shows that.
- a 4-bit bit sequence such as [b 4 , 0, b 4 , 1, b 4 , 2, b 4, 3 ], i in b 4, i indicates the bit index.
- 0,1,2,3 in decimal notation becomes 00,01,10,11 in binary notation, respectively.
- the order is such that the MSB is the leftmost and the LSB is the rightmost, but if this bit order is reversed, 00, 01, 10, and 11 are 00, 10, 01, and 11, respectively. It becomes.
- the frozen bit conversion unit 80 replaces the positions of bit indexes 0, 4, 2, and 1 with frozen bits in the code word 51 of c8.
- c8 [c 8 , 0, c 8 , 1, ..., c 8 , 7] to [0, 0, 0, c 8 , 3, 0, c]. 8,5 , c8,6 , c8,7 ].
- [0,0,0, c 8,3, 0 , c 8,5, c 8 , 6, c 8,7 outputs a 0,0,0,0,0,0,0,0].
- the frozen bit conversion unit 80 freezes the bit corresponding to the position where the frozen bit is added by the frozen bit addition unit 10 with respect to the result in which the second series is encoded by the polar coding unit 12.
- a third series is generated by converting to bits.
- the frozen bit conversion unit 80 uses the frozen bit addition unit 10 for the bit sequence corresponding to the code word having the second code length among the results in which the second sequence is encoded by the polar coding unit 12. Replaces the position in the bit inversion order of the bit position to which is added with a frozen bit.
- the polar coding unit 81 which is the second polar coding unit, performs polar coding on the third series input from the frozen bit conversion unit 80 in the same manner as the polar coding unit 12. Similar to the thinning processing unit 13, the thinning processing unit 82 codes the N t bits corresponding to the positions arranged by the bit arrangement changing unit 11 for each N / N t from the bit sequence output from the polar coding unit 81. Extract as a word and output.
- the bit arrangement changing unit 11 arranges the above-mentioned bit sequence of 8 bits for each N / N t in the 16-bit bit sequence.
- the bit arrangement changing unit 11 has a 16-bit bit sequence [f 0 , 0, f 1 , 0, f 2 , 0, b 4 , 0, 0, f 3 , 0, b 4 , 1, 0, 0, b 4 , 2, 0, b 4 , 3, 0] is input to the polar coding unit 12.
- the polar coding unit 12 performs polar coding with a bit length of 16 bits to obtain a coding result [f 0 ⁇ f 1 ⁇ f 2 ⁇ b 4,0 ⁇ f 3 ⁇ b 4,1 ⁇ b 4,2.
- ⁇ B 4,3 , f 3 ⁇ b 4,1 ⁇ b 4,2 ⁇ b 4,3 , f 2 ⁇ b 4,0 ⁇ b 4,2 ⁇ b 4,3 , b 4,2 ⁇ b 4, 3 , f 1 ⁇ b 4,0 ⁇ b 4,1 ⁇ b 4,3 , b 4,1 ⁇ b 4,3 , b 4,0 ⁇ b 4,3 , b 4,3,0,0,0 , 0,0,0,0,0] is output.
- " ⁇ " indicates an exclusive OR operation.
- the position in the bit inversion order of the position where the frozen bit is arranged in the part 10 is replaced with the frozen bit.
- the 16-bit sequence after replacement by the frozen bit conversion unit 80 is [f 0 , f 3 , f 2 , b 4 , 2 ⁇ b 4 , 3, f 1 , b 4 , 1 ⁇ b 4 , 3, b 4, 0 ⁇ b 4,3 , b 4,3 , 0,0,0,0,0,0,0,0].
- the polar coding unit 81 performs polar coding on the bit string replaced by the frozen bit conversion unit 80, and performs polar coding on the 16-bit bit sequence [f 0 ⁇ f 1 ⁇ f 2 ⁇ f 3 ⁇ b 4,0 ⁇ b. 4,1 ⁇ b 4,2,0 , f 1 ⁇ b 4,0 ⁇ b 4,1 ⁇ b 4,3,0 , f 2 ⁇ b 4,0 ⁇ b 4,2 ⁇ b 4,3,0 , B 4,0,0 , f 3 ⁇ b 4,1 ⁇ b 4,2 ⁇ b 4,3,0 , b 4,1 , 0, b 4,2,0 , b 4,3,0 ] Output.
- the thinning processing unit 82 extracts the bit sequence at the position where the 8-bit sequence is arranged by the bit arrangement changing unit 11 from the bit sequence output from the polar coding unit 81, and [f 0 ⁇ f 1 ⁇ f 2 ⁇ f 3 ⁇ B 4,0 ⁇ b 4,1 ⁇ b 4,2 , f 1 ⁇ b 4,0 ⁇ b 4,1 ⁇ b 4,3 , f 2 ⁇ b 4,0 ⁇ b 4,2 ⁇ b 4, 3 , b 4,0 , f 3 ⁇ b 4,1 ⁇ b 4,2 ⁇ b 4,3 , b 4,1 , b 4,2 , b 4,3 ] is output.
- the bit sequence output from the thinning processing unit 82 is an input sequence before the frozen bit is added by the frozen bit addition unit 10 [b 4 , 0, b 4 , 1, b 4 , 2, b. 4, 3] appears at the positions of bit indexes 3, 5, 6, and 7. Therefore, the coding circuit 1a can complete the systematic polar coding process by the above process.
- the extraction of rearrangement and bit tailored to the code length N t by performing, for a power of N t of N following 2, for performing encoding of the code length N t, while suppressing an increase in circuit scale can be easily dynamically changed the code length ..
- the result encoded by the polar coding unit 12 is input to the thinning processing unit 82 via the frozen bit conversion unit 80 and the polar coding unit 81, but is input to the thinning processing unit 82. It can be said that the input data is based on the result encoded by the polar coding unit 12. Therefore, also in the present embodiment, the thinning processing unit 82 generates the codeword having the second code length by the thinning processing based on the result in which the second series is encoded by the polar coding unit 12. become.
- Each part constituting the coding circuit 1a of the present embodiment can be realized by a processing circuit which is dedicated hardware.
- Each part constituting the coding circuit 1a is realized by, for example, the processing circuit 130 shown in FIG. 6, as in the first embodiment.
- the functions of the respective parts constituting the coding circuit 1a may be realized by different processing circuits 130, or all or a part of the functions of these parts may be collectively realized by one or a plurality of processing circuits. good.
- the processing circuit that realizes each part that constitutes the coding circuit 1a may be a control circuit including a processor.
- the control circuit includes a processor 140 and a memory 141, as shown in FIG. 7, as in the first embodiment.
- these functions can be realized by software, firmware, or a combination of software and firmware.
- Software and firmware are written as programs and stored in memory 141.
- the processor 140 reads the program from the memory 141 and executes it, the functions of each part of the coding circuit 1a are realized. It can be said that these programs cause a computer to execute the procedure and method executed by the coding circuit 1a.
- This program may be provided by a storage medium or a communication medium.
- Each function of each part of the coding circuit 1a may be partially realized by dedicated hardware and partly realized by software or firmware.
- the polar coding units 12 and 81 realize their functions with dedicated hardware, and the frozen bit addition unit 10, the bit arrangement changing unit 11, the frozen bit conversion unit 80, and the thinning processing unit 82 are controlled by a control circuit. It is possible to realize the function.
- each function of each part of the coding circuit 1a may be realized by a combination of a processing circuit, which is dedicated hardware, and a control circuit.
- FIG. 11 is a block diagram showing a configuration example of the decoding circuit according to the fourth embodiment.
- the decoding circuit 2a shown in FIG. 11 executes the decoding process of the list-type sequential removal decoding method corresponding to the systematic polar code.
- the first likelihood calculation unit 200-0 to 200-n the likelihood calculation unit 30, the list processing unit 21, the polar coding unit 22-0 to 22-n, and the bits. It includes a rearrangement changing unit 23-0 to 23-n, a control unit 24, a decoding bit selection unit 25, a frozen bit removal unit 26, and a systematic polar processing unit 90.
- the part 25 and the frozen bit removing part 26 are the same as those in the second embodiment. Components having the same functions as those of the second embodiment are designated by the same reference numerals as those of the second embodiment, and duplicate description will be omitted.
- the points different from those of the second embodiment will be mainly described.
- the difference between the decoding circuit 2a of the present embodiment and the decoding circuit 2 of the second embodiment, that is, the decoding circuit 2 shown in FIG. 8 is that the decoding circuit 2a includes a systematic polar processing unit 90 that performs decoding processing of the systematic polar code.
- the systematic polar processing unit 90 includes a bit arrangement changing unit 900-0 to 900-n, a polar coding unit 901-0 to 901-n, and a thinning processing unit 902-0 to 902-n.
- the list processing unit 21 outputs each of the L decoding candidates to the corresponding bit arrangement changing units 900-0 to 900-n, and the decoding bit selection unit 25 outputs the L decoding candidates. Outputs likelihood information such as path metrics that indicate the likelihood of.
- the bit arrangement changing units 900-0 to 900-n are the decoding candidates output from the list processing unit 21 for each N / N t bit, similarly to the bit arrangement changing units 23-0 to 23-n. A bit sequence of N bits is generated by arranging.
- the polar coding units 901-0 to 901-n are the polar coding units 22-0 to 22-n with respect to the N-bit bit sequence generated by the corresponding bit arrangement changing units 900-0 to 900-n.
- Thinning section 902-0 ⁇ 902-n like the thinning processing unit 13 of the encoding circuit 1 of the first embodiment, and extracts the N t bits of the forward index of the bit sequence after coding is small, the extraction The generated bit sequence is output to the decoding bit selection unit 25.
- the 8-bit sequence described in the third embodiment [f 0 ⁇ f 1 ⁇ f 2 ⁇ f 3 ⁇ b 4,0 ⁇ b 4,1 ⁇ b 4,2 , f 1 ⁇ b 4,0 ⁇ b 4,1 ⁇ B 4,3 , f 2 ⁇ b 4,0 ⁇ b 4,2 ⁇ b 4,3 , b 4,0 , f 3 ⁇ b 4,1 ⁇ b 4,2 ⁇ b 4,3 , b 4, 1 , b 4 , 2, b 4, 3 ] is transmitted, and the decoding process 2a receives this signal to perform the decoding process.
- the list-type sequential removal decoding is performed in the same manner as in the second embodiment, and when the decoding is performed without error, the list processing unit 21 sends the 8-bit sequence obtained by polar-coding the above 8-bit sequence.
- [F 0 , f 3 , f 2 , b 4 , 2 ⁇ b 4 , 3, f 1 , b 4 , 1 ⁇ b 4 , 3, b 4 , 0 ⁇ b 4 , 3, b 4 , 3] Is output.
- the bit arrangement changing units 900-0 to 900-n which are the second bit arrangement changing units, arrange the 8-bit series output from the list processing unit 21 for each N / Nt bit, thereby arranging the 16-bit series [f. 0 , 0, f 3 , 0, f 2 , 0, b 4 , 2 ⁇ b 4 , 3, 0, f 1 , 0, b 4 , 1 ⁇ b 4 , 3, 0, b 4 , 0 ⁇ b 4 , 3 , 0, b 4 , 3, 0] is generated and output to the corresponding polar coding units 901-0 to 901-n.
- the polar coding units 901-0 to 901-n perform polar coding on the 16-bit series output from the corresponding bit arrangement changing units 900-0 to 900-n, and the coding result is [f 0. ⁇ F 1 ⁇ f 2 ⁇ f 3 ⁇ b 4,0 ⁇ b 4,1 ⁇ b 4,2 , f 1 ⁇ b 4,0 ⁇ b 4,1 ⁇ b 4,3 , f 2 ⁇ b 4,0 ⁇ B 4,2 ⁇ b 4,3 , b 4,0 , f 3 ⁇ b 4,1 ⁇ b 4,2 ⁇ b 4,3 , b 4,1 , b 4,2 , b 4,3,0 , 0,0,0,0,0,0] is output to the corresponding thinning processing units 902-0 to 902-n.
- bit arrangement changing units 900-0 to 900-n arrange the decoding candidates output from the list processing unit 21 at the same positions as the positions where the bit arrangement changing units 23-0 to 23-n arrange the decoding candidates. By doing so, a second bit sequence having a first code length is generated, and the polar coding units 901-0 to 901-n perform polar coding on the second bit sequence.
- the thinning processing units 902-0 to 902-n are 8-bit bit sequences having a small bit index among the 16-bit bit sequences output from the polar coding units 901-0 to 901-n [f 0 ⁇ f 1 ⁇ ].
- the decoding bit selection unit 25 is the bit at the position where the information bit is arranged in the coding circuit 1a in the bit sequence output from the thinning processing unit 902-0 to 902-n, that is, the bit indexes 3, 5, 6,. By extracting the bit of 7, [b 4 , 0, b 4 , 1, b 4 , 2, b 4, 3 ] is obtained. This coincides with the bit sequence of the 4-bit information bits before coding in the coding circuit 1a. As described above, it can be seen that the decoding circuit 2a of the present embodiment can perform decoding corresponding to the systematic polar code.
- the bit sequence output from the list processing unit 21 is output as a decoding candidate for each list. Similar to the decoding bit selection unit 25 of the decoding circuit 2 of the second embodiment, the decoding bit selection unit 25 performs error detection for each decoding candidate when the information bit has been subjected to error detection. Decoding candidates without errors are selected and output, and when errors are detected from all the candidates, decoding candidates are selected using the likelihood information of the decoding candidates such as path metrics.
- the decoding bit selection unit 25 selects and outputs a plausible decoding candidate using the likelihood information of the decoding candidate such as path metric.
- the frozen bit removal unit 26 removes frozen bits and outputs K-bit information bits in the same manner as the frozen bit removal unit 26 of the decoding circuit 2 of the second embodiment.
- FIG. 11 shows a configuration example in which a list-type sequential removal / decoding method is assumed and circuits that perform processing corresponding to each list are executed in parallel for a maximum number of L lists.
- a number of circuits larger than the maximum number of lists L may be implemented, and each unit may be controlled so that the control unit 24 executes processing for the required number of lists.
- the number of lists may be variable. In this case, the control unit 24 controls to operate each unit required for processing according to the number of lists. It is also possible to execute processing for the number of lists by time division using at least one parallel mounting circuit having a number of lists or less.
- Each part constituting the decoding circuit 2a of the present embodiment can be realized by a processing circuit which is dedicated hardware.
- Each part constituting the decoding circuit 2a is realized by, for example, the processing circuit 130 shown in FIG. 6, as in the second embodiment.
- the functions of the respective parts constituting the decoding circuit 2a may be realized by different processing circuits 130, or all or a part of the functions of these parts may be collectively realized by one or a plurality of processing circuits. ..
- the processing circuit that realizes each part that constitutes the decoding circuit 2a may be a control circuit including a processor.
- the control circuit includes a processor 140 and a memory 141 as shown in FIG. 7, similarly to the decoding circuit 2 of the second embodiment.
- these functions can be realized by software, firmware, or a combination of software and firmware.
- Software and firmware are written as programs and stored in memory 141.
- the processor 140 reads the program from the memory 141 and executes it, the functions of each part of the decoding circuit 2a are realized. It can be said that these programs cause a computer to execute the procedure and method executed by the decoding circuit 2a.
- This program may be provided by a storage medium or a communication medium.
- each function of each part of the decoding circuit 2a may be partially realized by dedicated hardware and partly realized by software or firmware. In this way, each function of each part of the decoding circuit 2a may be realized by a combination of a processing circuit, which is dedicated hardware, and a control circuit.
- FIG. 12 is a flowchart showing an example of the decoding processing procedure of the present embodiment.
- the decoding circuit 2a decodes by the list-type sequential removal decoding method. Since steps S1 to S7 and step S10 are the same as those in the second embodiment, the description thereof will be omitted.
- the code length can be dynamically changed by the control unit 24 controlling the likelihood calculation process according to the Nt bit.
- the bit arrangement changing units 900-0 to 900-n perform the decoding bit arrangement change processing on the decoding candidates output from the list processing unit 21 (step S11). Specifically, the bit arrangement changing units 900-0 to 900-n generate a bit sequence of N bits by arranging decoding candidates output from the list processing unit 21 for each N / Nt bit. Output to the corresponding polar coding units 901-0 to 901-n.
- the polar coding units 901-0 to 901-n perform decoding bit coding processing (step S12). Specifically, the polar coding units 901-0 to 901-n refer to the bit sequences output from the corresponding bit arrangement changing units 900-0 to 900-n with respect to the polar coding units 22-0 to 22-. The coding process is performed in the same manner as for n, and the coding result is output to the corresponding thinning processing units 902-0 to 902-n.
- the thinning processing units 902-0 to 902-n perform bit thinning processing on the coding results output from the corresponding polar coding units 901-0 to 901-n (step S13).
- thinning processing section 902-0 ⁇ 902-n of the encoding result of N bits, the N t bits bit index is small and extracted as a result of systematic polar decoding process, the decoded bit selector 25 Output.
- Subsequent processes in steps S8 and S9 are the same as in the second embodiment.
- control unit 24 controls the likelihood calculation process, so that the decoding circuit having the maximum code length N can be shared and the systematic polar code having a plurality of code lengths can be decoded. .. Therefore, it is possible to suppress an increase in the circuit scale and decode a systematic polar code having a plurality of code lengths.
- FIG. 13 is a block diagram showing a configuration example of the decoding circuit according to the fifth embodiment.
- the decoding circuit 2b shown in FIG. 13 can execute the decoding process corresponding to both the polar code and the systematic polar code by the list-type sequential removal decoding method.
- a signal selection unit 112 is added to the decoding circuit 2a of the fourth embodiment, and the control unit 110 and the systematic polar processing unit are replaced with the control unit 24 and the systematic polar processing unit 90. It is the same as the decoding circuit 2a of the fourth embodiment except that the 111 is provided.
- bit removing unit 26 is the same as that of the second embodiment and the fourth embodiment.
- Components having the same functions as those of the fourth embodiment are designated by the same reference numerals as those of the fourth embodiment, and duplicate description will be omitted.
- the points different from those of the fourth embodiment will be mainly described.
- the control unit 110 of the present embodiment like the control unit 24 of the second embodiment and the fourth embodiment, includes each likelihood calculation unit, a list processing unit 21, a polar coding unit 22-0 to 22-n, and a polar coding unit 22-0 to 22-n.
- the list-type sequential removal / decoding process by the bit arrangement changing units 23-0 to 23-n is controlled.
- the operation of the decoding circuit 2b until the list-type sequential decoding process is completed is the same as the operation of the decoding circuit 2 of the second embodiment and the operation of the decoding circuit 2a of the fourth embodiment.
- control unit 110 further selects either a polar code decoding process, that is, a processing result by the list processing unit 21, or a systematic polar code decoding process, that is, a processing result by the systematic polar processing unit 111.
- the signal selection unit 112 selects one of the decoding candidate output from the list processing unit 21 and the decoding candidate output from the systematic polar processing unit 111 based on the instruction from the control unit 110, and the selected decoding candidate. Is output to the decoding bit selection unit 25.
- control unit 110 stops the systematic polar processing unit 111, and the signal selection unit 112 selects the decoding candidate from the list processing unit 21 and causes the decoding bit selection unit 25 to perform the decoding process. Control to output. Further, when the systematic polar code decoding process is performed, the control unit 110 operates the systematic polar processing unit 111, and the signal selection unit 112 selects the decoding candidate from the systematic polar processing unit 111 to select the decoding bit. It is controlled to output to the unit 25.
- the systematic polar processing unit 111 stops each circuit inside the systematic polar processing unit 111 when instructed to stop by the control unit 110, and when instructed to operate by the control unit 110, the systematic polar processing unit 111 inside the systematic polar processing unit 111. Operate each circuit.
- the systematic polar processing unit 111 is the same as the systematic polar processing unit 90 of the fourth embodiment except that a function of switching between stop and operation is added based on an instruction from the control unit 110.
- the decoding circuit 2b of the fourth embodiment capable of the above can be configured.
- the list-type sequential removal decoding method has been exemplified as the decoding method of the present embodiment
- FIG. 13 shows a configuration example in which a list-type sequential removal / decoding method is assumed and circuits that perform processing corresponding to each list are executed in parallel for a maximum number of L lists.
- a number of circuits larger than the maximum number of lists L may be implemented, and each unit may be controlled so that the control unit 110 executes processing for the required number of lists.
- the number of lists may be variable. In this case, the control unit 110 controls to operate each unit required for processing according to the number of lists. It is also possible to execute processing for the number of lists by time division using at least one parallel mounting circuit having a number of lists or less.
- Each part constituting the decoding circuit 2b of the present embodiment can be realized by a processing circuit which is dedicated hardware.
- Each part constituting the decoding circuit 2b is realized by, for example, the processing circuit 130 shown in FIG. 6, as in the second embodiment.
- the functions of the respective parts constituting the decoding circuit 2b may be realized by different processing circuits 130, or all or a part of the functions of these parts may be collectively realized by one or a plurality of processing circuits. ..
- the processing circuit that realizes each part that constitutes the decoding circuit 2b may be a control circuit including a processor.
- the control circuit includes a processor 140 and a memory 141 as shown in FIG. 7, similarly to the decoding circuit 2 of the second embodiment.
- these functions can be realized by software, firmware, or a combination of software and firmware.
- Software and firmware are written as programs and stored in memory 141.
- the processor 140 reads the program from the memory 141 and executes it, the functions of each part of the decoding circuit 2b are realized. It can also be said that these programs cause the computer to execute the procedure and method executed by the decoding circuit 2b.
- This program may be provided by a storage medium or a communication medium.
- each function of each part of the decoding circuit 2b may be partially realized by dedicated hardware and partly realized by software or firmware. In this way, each function of each part of the decoding circuit 2b may be realized by a combination of a processing circuit, which is dedicated hardware, and a control circuit.
- FIG. 14 is a flowchart showing an example of the decoding processing procedure of the present embodiment.
- the decoding circuit 2b decodes by the list-type sequential removal decoding method will be described. Since steps S1 to S7 and step S10 are the same as those in the second embodiment, the description thereof will be omitted.
- the code length can be dynamically changed by the control unit 110 controlling the likelihood calculation process according to the Nt bit.
- step S14 the control unit 110 determines whether or not to perform the systematic polar code decoding process.
- step S14 the control unit 110 activates the systematic polar processing unit 111 to execute the processes of steps S11 to S13.
- the processing of steps S11 to S13 is the same as that of the fourth embodiment.
- the control unit 110 executes the signal selection process (step S15), and causes the processes of steps S8 and S9 to be executed.
- the processing of steps S8 and S9 is the same as that of the second embodiment and the fourth embodiment.
- the control unit 110 controls the signal selection unit 112 to select the decoding candidate from the list processing unit 21 and output it to the decoding bit selection unit 25 when the polar code decoding process is performed.
- the signal selection unit 112 is controlled to select the decoding candidate from the systematic polar processing unit 111 and output it to the decoding bit selection unit 25.
- step S14 No When the polar code decoding process is performed (step S14 No), the control unit 110 advances the process to step S15.
- the decoding circuit 2b of the present embodiment can be implemented by switching between the polarization processing of the polar code and the decoding process of the systematic polar code.
- control unit 110 controls the likelihood calculation process, so that the decoding circuit having the maximum code length N can be shared and the systematic polar code having a plurality of code lengths can be decoded. .. Therefore, it is possible to suppress an increase in the circuit scale and decode a polar code having a plurality of code lengths, and it is possible to decode a systematic polar code having a plurality of code amounts.
- FIG. 15 is a diagram showing a configuration example of the communication system according to the sixth embodiment.
- the communication system of the present embodiment includes a communication device 3 which is a transmitting device and a communication device 5 which is a receiving device.
- the communication device 3 includes the coding circuit 1 described in the first embodiment and a transmission unit 4 that transmits the result encoded by the coding circuit 1 as a radio signal.
- the communication device 5 includes a receiving unit 6 for receiving the signal transmitted from the communication device 3 and a decoding circuit 2 described in the second embodiment for decoding the signal received by the receiving unit 6.
- the code length of the polar code can be dynamically changed. Therefore, the code length can be changed according to the data length of the data transmitted and received between the communication device 3 and the communication device 5. Therefore, since the communication device 3 and the communication device 5 can omit highly complicated rate conversion processing such as puncturing and shortening, the load of transmission / reception processing and the processing delay can be prevented. Therefore, by using the coding circuit 1 of the first embodiment and the decoding circuit 2 of the second embodiment, rate conversion processing such as puncturing and shortening can be performed by using the coding circuit and the decoding circuit of the polar code having the maximum code length. The decoding delay can be shortened as compared with the case where it is performed. Further, as described in the first and second embodiments, one processing circuit can handle a plurality of code lengths, so that an increase in the circuit scale can be suppressed.
- the communication device 3 is a polar coding unit 12 capable of coding a polar code having a first code length. It has a polar coding circuit. Then, the control circuit generates the first series by adding a frozen bit to the input signal, and the second code length and the second code length which is the code length of the polar code to be encoded and is equal to or less than the first code length. Generation of the second series by arranging the first series in the second series of the first code length according to the arrangement rule according to the ratio to the 1 code length, and to the polar coding circuit of the second series.
- the communication device 3 is made to execute the input and the generation of the code word of the second code length by the thinning process based on the coding result by the polar coding circuit of the second series. Further, when these processes are realized by software, the program for controlling the communication device causes the communication device 3 to execute these processes.
- the communication device 3 is a transmitting device and the communication device 5 is a receiving device, but both the communication device 3 and the communication device 5 function as the transmitting device and the receiving device. You may have.
- a wireless communication system is illustrated as a communication system, but the present invention is not limited to this, and the communication device 3 and the communication device 5 may perform wired communication.
- the communication device 3 includes the coding circuit 1 of the first embodiment and the communication device 5 includes the decoding circuit 2 of the second embodiment is illustrated, but the communication device 3 encodes.
- the coding circuit 1a of the third embodiment may be provided instead of the circuit 1, and the communication device 5 may include the decoding circuit 2a instead of the decoding circuit 2.
- the communication device 3 may include the coding circuit 1 and the coding circuit 1a, switch between the polar code and the systematic polar code for transmission, and the communication device 5 may include the decoding circuit 2b instead of the decoding circuit 2. ..
- the coding circuits 1, 1a of the first and third embodiments and the decoding circuits 2, 2a and 2b of the second and fourth embodiments 2, 2a and 2b are applied to the communication system. These applications are not limited to communication systems.
- the coding circuits 1, 1a of the first and third embodiments and the decoding circuits 2, 2a and 2b of the second and fourth embodiments 2, 2a and 2b are used for error correction in storage means such as an HDD (Hard Disk Drive) and a Flash memory. It may be applied to other technologies.
- the configuration shown in the above embodiments is an example, and can be combined with another known technique, can be combined with each other, and does not deviate from the gist. It is also possible to omit or change a part of the configuration.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
符号化回路(1)は、Nビットのpolar符号の符号化を行うことが可能なpolar符号化部(12)と、入力信号に、フローズンビットを付加することにより第1系列を生成するfrozenビット付加部(10)と、符号化対象のpolar符号の符号長であってNビット以下のNtビットとNビットとの比に応じた配置規則にしたがって、第1系列をNビットの第2系列内に配置し、NtビットがNビット未満の場合には、第2系列内の第1系列を配置した位置以外のビット位置のビット値を0とすることにより、第2系列を生成し、第2系列をpolar符号化部(12)へ入力するビット配置変更部(11)と、を備え、第2系列のpolar符号化部(12)による符号化結果に基づく間引き処理により、Ntビットの符号語が生成される。
Description
本開示は、polar符号の符号化回路、復号回路、制御回路、記憶媒体および復号方法に関する。
通信を行う際には、通信経路で発生する雑音等で生じる誤りに対応すべく、誤り訂正技術を適用することが一般的になっている。誤り訂正符号の一方式であるpolar符号は、通信路分極という考え方に基づいて、シャノン限界に漸近する特性を実現することが可能である(下記非特許文献1参照)。polar符号は、ブロック符号の一種である。polar符号は、ブロック内のビットに対して、排他的論理和による結合と結合する組み合わせを変更するための配線変更とを繰り返すことで符号化される。符号の構成上、polar符号の符号長は、2の累乗(2m(mは0以上の整数))の符号長となる。
特許文献1には、polar符号の符号長が2の累乗になることを利用し、2の累乗ビットのデータを送受信する通信システムにおいて、送受信するデータのビット数に応じて、polar符号の符号長を変更することで、レート変換処理を省く通信システムが開示されている。本構成にすることで、パンクチャリング、ショートニングなどの複雑度の高いレート変換処理を省くことができるため、送受信処理の負荷および処理遅延などを軽減することが可能である。
E. Arikan, "Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels," IEEE Transactions on Information Theory, vol. 55, no. 7, pp. 3051-3073, Jul. 2009.
しかしながら、従来の技術では、polar符号の符号長を切り替えることでレート変換処理を省くことは記載されているが、複数の符号長のpolar符号の符号化回路をどのように実装するかについては開示されていない。複数の符号長のそれぞれに対応するpolar符号の符号化回路を並列に実装することで複数の符号長のpolar符号の符号化回路を実現可能であるが、通信システムで想定されるビット数の組み合わせが多い場合には対応する符号長が多くなり、回路規模が増大するという問題がある。
本開示は、上記に鑑みてなされたものであって、回路規模の増大を抑制しつつ複数の符号長のpolar符号に対応可能な符号化回路を得ることを目的としたものである。
上述した課題を解決し、目的を達成するために、本開示にかかる符号化回路は、第1符号長のpolar符号の符号化を行うことが可能な第1polar符号化部と、入力信号に、フローズンビットを付加することにより第1系列を生成するフローズンビット付加部と、を備える。符号化回路は、さらに、符号化対象のpolar符号の符号長であって第1符号長以下の第2符号長と第1符号長との比に応じた配置規則にしたがって、第1系列を第1符号長の第2系列内に配置し、第2符号長が第1符号長未満の場合には、第2系列内の第1系列を配置した位置以外のビット位置のビット値を0とすることにより、第2系列を生成し、第2系列を第1polar符号化部へ入力するビット配置変更部と、を備え、第2系列の第1polar符号化部による符号化結果に基づく間引き処理により、第2符号長の符号語が生成される。
本開示によれば、回路規模の増大を抑制しつつ複数の符号長のpolar符号に対応することができるという効果を奏する。
以下に、実施の形態にかかる符号化回路、復号回路、制御回路、記憶媒体および復号方法を図面に基づいて詳細に説明する。
実施の形態1.
図1は、実施の形態1にかかる符号化回路の構成例を示すブロック図である。図1に示した符号化回路1は、非systematicなpolar符号を生成する。なお、以降では、非systematicなpolar符号をpolar符号と記載し、符号化前後で同じ情報ビット系列が現れるsystematicなpolar符号をsystematic polar符号と記載する。
図1は、実施の形態1にかかる符号化回路の構成例を示すブロック図である。図1に示した符号化回路1は、非systematicなpolar符号を生成する。なお、以降では、非systematicなpolar符号をpolar符号と記載し、符号化前後で同じ情報ビット系列が現れるsystematicなpolar符号をsystematic polar符号と記載する。
図1に示した符号化回路1は、frozenビット付加部(フローズンビット付加部)10、ビット配置変更部11、polar符号化部12、間引き処理部13を備える。ここでは、情報ビットをKビット、符号化回路1の対応可能な最大の符号長(最大符号長)をNビット、符号化回路1が符号化を行うpolar符号の符号長をNtビットとしている。Ntビットは、最大符号長Nビット以下の2の累乗の値のなかから選択可能である。
frozenビット付加部10は、入力信号に、polar符号化に伴う、フローズンビットと呼ばれる固定値を付加する。フローズンビットとは、polar符号の特徴である通信路分極より、符号化ブロック内のビット位置による通信容量の違いに着目し、通信容量の大きい箇所から情報ビットを配置し、情報ビット以外のNt-Kビットを、例えば0のような固定値にしたものである。frozenビット付加部10は、フローズンビットの付加が行われた後の第1系列がNtビットとなるように、フローズンビットを付加する。フローズンビットは他の誤り訂正方法のパリティビットのような冗長ビットにあたる。なお、本発明のフローズンビットの設定位置に関しては、上述の通信路分極の考え方に基づく手法以外にも、一般的に用いられる設定方法を用いることもでき、上述の例に限定されるものではない。
以下、最大符号長を第1符号長とも呼び、符号長Ntビットを第2符号長とも呼ぶ。ビット配置変更部11は、符号化対象のpolar符号の符号長であって第1符号長以下の第2符号長と第1符号長との比に応じた配置規則にしたがって、第1系列を第1符号長の第2系列内に配置することにより、第2系列を生成し、第2系列をpolar符号化部12へ入力する。すなわち、ビット配置変更部11は、frozenビット付加部10によるフローズンビットの付加が行われた後の符号長Ntビットの第1系列を最大符号長であるNビットの第2系列へ拡張するとともにビットの並べ替えを行うビット配置処理を行う。ビット配置処理の配置規則は、例えば、Ntビットの第1系列を、第2系列にN/Ntビットごとに1ビットずつ配置し、第1系列のビットが配置されない部分の第2系列のビット値を0とするという規則である。すなわち、ビット配置変更部11は、例えば、NtがN未満の場合には、NをNtで割った商の値ごとのビット位置に、第1系列のビット値を第2系列に配置する。ビット配置変更部11は、第2符号長が第1符号長と等しい場合、すなわちN=Ntの場合には、第1系列を第2系列としてpolar符号化部12へ入力する。
第1polar符号化部であるpolar符号化部12は、第2系列に対して最大符号長であるNビットのpolar符号化を行いNビットの符号語を生成する。間引き処理部13は、polar符号化部12により生成された符号語から、符号化回路1の符号化結果すなわち符号化回路1が生成する最終的な符号語となるNtビットを選択して出力する。これにより、第2系列がpolar符号化部12により符号化された結果に基づく間引き処理により、第2符号長の符号語が生成される。
図2~図5は、本実施の形態のビット配置変更部11、polar符号化部12および間引き処理部13の処理例を説明するための図である。図2~図5に示した例では、N=16、すなわち最大符号長を16ビットとしている。
図2に示した例は、N=Nt=16であり、ビット配置変更部11は上述したfrozenビット付加部10から出力される第1系列をそのまま第2系列として出力する。第2系列は、polar符号化部12へ入力される入力ビット系列40である。図2では、入力ビット系列40を、b16=[b16,0,b16,1,…,b16,15]とし、polar符号化部12から出力される符号語41をc16=[c16,0,c16,1,…,c16,15]としている。
polar符号は、排他的論理和による結合と結合する組み合わせを変更するための配線変更とを繰り返すことで符号化されるため、polar符号化部12は、図2に示すように、複数の排他的論理和回路42を備える。符号長2mのpolar符号の符号化回路では、2m-1個の排他的論理和回路42がm段に接続された構成となる。図2に示した例では、2m-1個すなわち8個の縦に並んだ排他的論理和回路42が、横方向に4段示されている。各段の排他的論理和回路42の出力は、結合する組み合わせを変更する配線変更である組み換えが行われて次の段の入力に接続される。
図2に示すように、N=Ntの場合は、ビット配置変更部11によりビットの拡張および並び替えが行われていないので、polar符号化部12から出力される符号語41であるc16=[c16,0,c16,1,…,c16,15]をそのまま符号化回路1の符号化結果として出力することができる。このため、間引き処理部13は、polar符号化部12から出力される符号語41をそのまま符号化結果として出力する。
図3に示した例は、Nt=8であり、N/Nt=2である。frozenビット付加部10から出力される第1系列は8ビットである。第1系列を、b8=[b8,0,b8,1,…,b8,7]とすると、ビット配置変更部11は、Nビットへの拡張のために、Nビットの第2系列に2ビットごとにb8の各ビットを配置し、第2系列の他のビットに0値52を付加する。この第2系列が入力ビット系列50としてpolar符号化部12へ入力される。
図3に示すように、polar符号化部12の1段目の排他的論理和回路42による排他的論理和が行われた後の排他的論理和の結果を、8ビットのビット系列53であるb’8=[b’8,0,b’8,1,…,b’8,7]とすると、b’8の各ビットは、組み換え後に符号化処理部54へ入力される。符号化処理部54は、2段目以降の排他的論理和回路42のうち、1段目の排他的論理和の結果が入力される部分である。符号化処理部54は、8ビットすなわちNtビットのpolar符号の符号化回路と等価である。ビット値xと0との排他的論理和の結果はxとなることから、b’8はb8と等しい。このため、符号化処理部54から出力される符号語51であるc8=[c8,0,c8,1,…,c8,7]は、b8を符号化した結果になる。このため、間引き処理部13は、polar符号化部12から出力されるNビットの符号語のうち、符号語51に対応するビットを選択して出力するように間引き処理を行う。これにより、間引き処理部13は、8ビットのpolar符号の符号化結果を出力することができる。符号語51は、図3に示すように、連続するビット位置の第2符号長のビットである。
図4に示した例は、Nt=4であり、N/Nt=4である。frozenビット付加部10から出力される第1系列は4ビットである。第1系列を、b4=[b4,0,b4,1,…,b4,3]とすると、ビット配置変更部11は、Nビットへの拡張のために、Nビットの第2系列に4ビットごとにb4の各ビットを配置し、第2系列の他のビットに0値52を付加する。この第2系列が入力ビット系列60としてpolar符号化部12へ入力される。
図4に示すように、polar符号化部12の1段目の排他的論理和回路42による排他的論理和が行われた後の排他的論理和の結果は、4ビットのビット系列b’4=[b’4,0,b’4,1,…,b’4,3]のビット間にそれぞれ0が挿入された8ビットのビット系列62となる。ビット系列62に対する2段目の排他的論理和回路42による排他的論理和の結果であるビット列63をb’’4=[b’’4,0,b’’4,1,…,b’’4,3]とすると、b’’4の各ビットは、組み換え後に符号化処理部64へ入力される。符号化処理部64は、3段目以降の排他的論理和回路42のうち、ビット系列62の排他的論理和の結果が入力される部分である。符号化処理部64は、4ビットすなわちNtビットのpolar符号の符号化回路と等価である。b’’4はb4と等しくなるため、符号化処理部64から出力される符号語61であるc4=[c4,0,c4,1,…,c4,3]は、b4を符号化した結果になる。このため、間引き処理部13は、polar符号化部12から出力されるNビットの符号語のうち、符号語61に対応するビットを選択して出力するように間引き処理を行う。これにより、間引き処理部13は、4ビットのpolar符号の符号化結果を出力することができる。
図5に示した例は、Nt=2であり、N/Nt=8である。frozenビット付加部10から出力される第1系列は2ビットである。第1系列を、b2=[b2,0,b2,1]とすると、ビット配置変更部11は、Nビットへの拡張のために、Nビットの第2系列に8ビットごとにb2の各ビットを配置し、第2系列の他のビットに0値52を付加する。この第2系列が入力ビット系列70としてpolar符号化部12へ入力される。
図5に示すように、polar符号化部12の1段目の排他的論理和回路42による排他的論理和が行われた後の排他的論理和の結果は、2ビットのビット系列b’2=[b’2,0,b’2,1]のビット間にそれぞれ3つの0が挿入された8ビットのビット系列72となる。ビット系列72に対する2段目の排他的論理和回路42による排他的論理和の結果であるビット系列73は、2ビットのビット系列b’’2=[b’’2,0,b’’2,1]のビット間に0が挿入された4ビットのビット系列となる。ビット系列73に対する3段目の排他的論理和回路42による排他的論理和の結果であるビット系列74は、b’’’2=[b’’’2,0,b’’’2,1]として、組み換え後に符号化処理部75へ入力される。符号化処理部75は、4段目の排他的論理和回路42のうち、ビット系列73の排他的論理和の結果が入力される部分である。符号化処理部75は、2ビットすなわちNtビットのpolar符号の符号化回路と等価である。b’’’2はb2と等しくなるため、符号化処理部75から出力される符号語71であるc2=[c2,0,c2,1]は、b2を符号化した結果になる。このため、間引き処理部13は、polar符号化部12から出力されるNビットの符号語のうち、符号語71に対応するビットを選択して出力するように間引き処理を行う。これにより、間引き処理部13は、2ビットのpolar符号の符号化結果を出力することができる。
以上のように、符号化回路1は、ビット配置変更部11において、N/Ntごとにfrozenビット付加部10から出力される第1系列を拡張して並び替えてNビットの第2系列を生成し、Nビットのpolar符号化結果を間引き処理部13において間引きすることで、Nビット以下の複数の符号長のpolar符号化を実施することができる。すなわち、本実施の形態では、N=2m(mは1以上の整数)とすると、2ビットから2mまでの2の累乗のビット数の符号長のpolar符号化を、1つの回路を共有して実行できる。
なお、図2から図5では、N=16の例を示したが、Nが16より大きい場合でも、Nが16未満の場合でも、N=16と同様にNビットへの拡張と間引きを行うことで、1つの回路を用いて、複数の符号長のpolar符号化を実施することができる。また、図2から図5に示したpolar符号化部12の構成は一例であり、polar符号化部12へ入力されるビット系列が入力される位置、polar符号化部12内の各排他的論理和回路42から配線変更のための接続などは図2から図5に示した例に限定されない。入力される位置、配線接続などが異なることにより上述したc8,c4,c2などの各ビットが出力されるビット位置が図2から図5に示した例と異なったとしても、間引き処理部13がc8,c4,c2に対応するビット位置のビットを選択して出力すれば、図2から図5に示した例と同様の結果を得ることができる。
例えば、図3に示した構成例から、b8のビット系列の各要素を1ビットずつ下にずらすことにより、0値52とb8の各要素とを入れ替えた場合を想定する。この場合、排他的論理和計算および組み換えの後に、b’8のビット系列は図3の符号化処理部54より下に配置される符号化処理部54と等価の部分に入力されることになる。したがって、間引き処理部13は、polar符号化部12から出力されるビット系列のうち、符号化処理部54と等価の部分から出力されるビットを選択して出力すればよい。
本実施の形態の符号化回路1は、外部からのNtの指示が入力される、または内部に保持するNtの値が変更されることで、符号長Ntに応じたpolar符号化を実施することができる。このように、本実施の形態の符号化回路1は、符号長を動的に変更できるので、1つの回路を共用して符号長の切り替えを実施することができ、回路規模の増大を抑制することができる。
次に、本実施の形態の符号化回路1を実現するためのハードウェアについて説明する。符号化回路1を構成する各部は、専用のハードウェアである処理回路で実現することが可能である。図6は、本実施の形態の専用のハードウェアである処理回路を示す図である。符号化回路1を構成する各部は、例えば、図6に示す処理回路130により実現される。
処理回路130は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)またはこれらを組み合わせたものが該当する。符号化回路1を構成する各部の機能は、それぞれ異なる処理回路130で実現されても良いし、これらの各部の機能の全てまたは一部がまとめて1つまたは複数の処理回路で実現されてもよい。
符号化回路1を構成する各部を実現する処理回路はプロセッサを備える制御回路であってもよい。図7は、本実施の形態の制御回路の一例を示す図である。図7に示すように、制御回路はプロセッサ140およびメモリ141を備える。符号化回路1を構成する各部の機能が図7に示した制御回路で実現される場合、これらの機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせにより実現できる。ソフトウェアおよびファームウェアはプログラムとして記述され、メモリ141に記憶される。プロセッサ140がメモリ141からプログラムを読み出して実行することにより、符号化回路1の各部の機能が実現される。これらのプログラムは、符号化回路1が実行する手順および方法をコンピュータに実行させるものであるともいえる。このプログラムは、記憶媒体または通信媒体により提供されてもよい。
ここで、メモリ141は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable Programmable Read Only Memory)といった不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD(Digital Versatile Disk)等が該当する。
符号化回路1の各部の各機能を、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしても良い。polar符号化部12については専用のハードウェアでその機能を実現し、frozenビット付加部10、ビット配置変更部11、間引き処理部13についてはプロセッサおよびメモリでその機能を実現することが可能である。このように、符号化回路1の各部の各機能が、専用のハードウェアである処理回路と、制御回路の組み合わせによって実現されてもよい。
実施の形態2.
図8は、実施の形態2にかかる復号回路の構成例を示すブロック図である。図8に示した復号回路2は、polar符号の代表的な復号方法であるリスト型逐次除去復号法(SCLD:Successive Cancellation List Decoding)の処理を実行する。リスト型逐次除去復号法は、逐次復号法の一例である。
図8は、実施の形態2にかかる復号回路の構成例を示すブロック図である。図8に示した復号回路2は、polar符号の代表的な復号方法であるリスト型逐次除去復号法(SCLD:Successive Cancellation List Decoding)の処理を実行する。リスト型逐次除去復号法は、逐次復号法の一例である。
本実施の形態の復号回路2は、Nビット以下の符号長のpolar符号の復号を行うことができる。詳細には、N=2mとすると、2ビットから2mまでの2の累乗のビット数の符号長のpolar符号の復号を、符号長を切り替えて実施することができる。本実施の形態の復号回路2は、例えば、外部からのNtの指示が入力される、または内部に保持するNtの値が変更されることで、符号長Ntに応じた復号を実施することができる。復号回路2は、実施の形態1の符号化回路1により符号化されたpolar符号を復号してもよいし、実施の形態1の符号化回路1以外の符号化回路によって生成されたpolar符号を復号してもよい。
図8に示すように、本実施の形態の復号回路2は、リスト処理部21、尤度算出部30、polar符号化部22-0~22-n、ビット配置変更部23-0~23-n、制御部24、復号ビット選択部25、frozenビット除去部26を備える。0~nのn+1は、第1尤度計算部の数を示す。n+1は、例えば、リスト型逐次除去復号法で想定される最大の復号候補数を示すリスト数をLとすると、n+1はL未満であってもよい。n+1がLの場合、第1尤度計算部、polar符号化部およびビット配置変更部は、リスト数L分並列に設けられることになる。polar符号化部22-0~22-nのそれぞれを個別に区別せずに示すときは、polar符号化部22と記載し、ビット配置変更部23-0~23-nのそれぞれを個別に区別せずに示すときは、ビット配置変更部23と記載する。
尤度算出部30は、Nビットのpolar符号の尤度情報を算出可能であり、入力信号と復号途中結果に基づいて、Ntビットのpolar符号に対応する尤度情報を算出する。尤度算出部30は、第1尤度計算部200-0~200-nを備える。第1尤度計算部200-0~200-nは、復号の対象となる入力信号とpolar符号化部22-0~22-nから出力される復号途中の情報とを用いて、N=Ntに対応する尤度情報を計算する。尤度情報は、リスト処理部21で復号候補を確定するための情報である。以下では、入力信号が対数尤度比(LLR:Log Likelihood Ratio)である例を説明するが、入力信号がLLRでない場合も、同様な処理を行うことができる。入力信号は、尤度、確率等の軟判定情報であってもよい。
第1尤度計算部200-0~200-nは同様の構成である。以下、第1尤度計算部200-0~200-nのそれぞれを個別に区別せずに示すときは、第1尤度計算部200と記載する。
第1尤度計算部200は、第2尤度計算部201-0,201-1と、XOR計算部(排他的論理和演算部)203と、を備える。第2尤度計算部201-0,201-1は同様の構成である。第2尤度計算部201-0,201-1のそれぞれは、入力信号とpolar符号化部22-0~22-nから出力される復号途中の情報とを用いて、Nt=N/2に対応する尤度情報を計算する。XOR計算部203は、第2尤度計算部201-0から出力される尤度情報と第2尤度計算部201-1から出力される尤度情報とpolar符号化部22から出力される復号途中の情報とを用いてLLRの排他的論理和演算を実施し、計算結果をリスト処理部21へ出力する。以下、第2尤度計算部201-0,201-1のそれぞれを個別に区別せずに示すときは、第2尤度計算部201と記載する。
第2尤度計算部201は、第3尤度計算部202-0,202-1と、XOR計算部(排他的論理和演算部)204と、を備える。第3尤度計算部202-0,202-1は同様の構成である。第3尤度計算部202-0,202-1のそれぞれは、入力信号とpolar符号化部22-0~22-nから出力される復号途中の情報とを用いて、Nt=N/4に対応する尤度情報を計算する。XOR計算部204は、第3尤度計算部202-0から出力される尤度情報と第3尤度計算部202-1から出力される尤度情報とpolar符号化部22から出力される復号途中の情報とを用いてLLRの排他的論理和演算を実施し、計算結果を第2尤度計算部201により計算された尤度情報としてXOR計算部203へ出力する。以下、第3尤度計算部202-0,202-1のそれぞれを個別に区別せずに示すときは、第3尤度計算部202と記載する。
図8では、図示を省略しているが、Nが16の場合、すなわちmが4の場合、第3尤度計算部202は、Nt=N/8に対応する尤度情報を計算する2つの第4尤度計算部と、XOR計算部(排他的論理和演算部)とを備える。同様に、mが5以上の場合には、Nt=2に対応する尤度情報を計算する第i尤度計算部を最小単位とし、各尤度計算部が2つの尤度計算部と1つのXOR計算部とを入れ子状に備えることを、最小単位の第i尤度計算部が得られるまで繰り返す構成となる。N=16の場合には、iは4となるため、第3尤度計算部202-0,202-1が2つの第4尤度計算部およびXOR計算部を備える構成となる。なお、N=4の場合には、第2尤度計算部201-0,201-1が、Nt=4/2=2に対応する尤度情報を計算するため、第2尤度計算部201-0,201-1は第3尤度計算部202-0,202-1およびXOR計算部204を備えない。以下、N=16の場合を例に挙げて説明する。N=16の場合には、上述したように第4尤度計算部が最小単位の尤度計算部となる。なお、Nの値により、iの値である入れ子の段数は異なり、i=mとなる。したがって、N=32の場合には、第5尤度計算部が最小単位の尤度計算部となり、第4尤度計算部はNt=4に対応する尤度計算部となるといったように、各段の尤度計算部に対応するNtの値は、Nの値によって異なる。第1~第5尤度計算部などの各尤度計算部を区別せずに示すときには、尤度計算部と記載する。
以上のように、尤度算出部30は、log2Nをmとするとき、2つの尤度情報の排他的論理和を算出する第(i+1)尤度計算部と、2つの第(i+1)尤度計算部により算出された2つの排他的論理和の排他的論理和を算出する第iXOR計算部と、を備える第i尤度計算部を、i=1からi=m-1まで階層的に備える。
Nt=2に対応する尤度情報を計算する最小単位の尤度計算部である第4尤度計算部は、入力される2つのLLRの排他的論理和を計算する回路である。第4尤度計算部は、入力される2つのLLRの排他的論理和を第3尤度計算部202の図示しないXOR計算部およびリスト処理部21へ入力する。最小単位の尤度計算部は、例えば、実施の形態1の図5に示した符号化処理部75によって符号化されたpolar符号に対応する尤度情報を計算する回路である。
Nt=4に対応する第3尤度計算部202の図示しないXOR計算部は、2つの第4尤度計算部からそれぞれ入力される尤度情報の組み合わせを変えて排他的論理和を計算し、計算結果をXOR計算部203およびリスト処理部21へ入力する。第3尤度計算部202は、例えば、実施の形態1の図4に示した符号化処理部64によって符号化されたpolar符号に対応する尤度情報を計算する回路である。
Nt=8に対応する第2尤度計算部201のXOR計算部204は、2つの第3尤度計算部202からそれぞれ入力される尤度情報の組み合わせを変えて排他的論理和を計算し、計算結果をXOR計算部203およびリスト処理部21へ入力する。第2尤度計算部201は、例えば、実施の形態1の図3に示した符号化処理部54によって符号化されたpolar符号に対応する尤度情報を計算する回路である。
Nt=16に対応する第1尤度計算部200のXOR計算部203は、2つの第2尤度計算部201からそれぞれ入力される尤度情報の組み合わせを変えて排他的論理和を計算し、計算結果をリスト処理部21へ入力する。第1尤度計算部200は、16ビットの符号長のpolar符号の尤度情報を算出する回路である。
N=16の場合、Nt=2に対応する尤度情報を計算する最小単位の尤度計算部は、1つのリストに対応する1つの第1尤度計算部200につき、8(=N/2)個実装され得る。したがって、最大NビットのLLRを復号回路2の入力信号として入力することができる。また、N=16の場合、Nt=4に対応する第3尤度計算部202は、1つの第1尤度計算部200につき4(=N/4)個実装され得る。また、N=16の場合、Nt=8に対応する第2尤度計算部201は、1つの第1尤度計算部200につき2(=N/8)個実装され得る。
復号回路2における復号は、最小単位の尤度計算部に、復号対象の入力信号が入力されることにより開始される。そして、リスト数L分並列に実装され得る第1尤度計算部200のそれぞれからの計算結果である尤度情報がリスト処理部21へ入力されるように配線をつなげることで、符号長Ntまでの尤度計算処理を実行できる尤度計算部が構成できる。最大符号長N=16の場合を想定すると、1つのリストあたりすなわち1つの第1尤度計算部200あたり、Ntの値がそれぞれ16,8,4,2に対応する第1~第4尤度計算部からリスト処理部21に尤度情報の計算結果が入力される配線が繋がり、これらの配線のうち最低1つから尤度情報が入力される。このように、1つのリストあたりの第1尤度計算部200からリスト処理部21への配線数は、第1尤度計算部200の入れ子の段数log2Nとなる。したがって、リスト数L分第1尤度計算部200が並列される場合には、合計L×log2N本の配線がつながることになる。
逐次除去復号法は、入力されたLLRおよび復号途中の復号結果を用いた尤度計算、尤度の計算結果を用いて、復号候補を1ビット分確定させる処理、確定した復号候補の再符号化を繰り返しながら、1ビットずつ確定していく方法である。リスト型逐次除去復号法は、尤度計算結果を基にして、残存するリストの復号候補に対して、確定させるビットが0もしくは1である2通りの復号候補を想定し、想定される復号候補の尤もらしさを表すパスメトリック等の情報を計算する。そのため、逐次復号が進むにつれ、リスト数が倍々になる。このリスト数が、最大リスト数以下なら、全てのリスト(復号候補)を保持、最大リスト数以上の場合には、最大リスト数まで、リスト(復号候補)をパスメトリック等の尤もらしさを示す情報を基にし、復号候補から削除する処理が追加される。図8に示した回路構成の0~nのn+1並列は、異なるリストの処理をそれぞれ並列に処理する形を想定したものである。リスト処理部21は、リスト型逐次除去復号法の尤度計算(尤度算出部30の処理)および復号候補の再符号化(polar符号化部22の処理)の各処理を除く、復号候補の確定およびパスメトリック等のリストの尤もらしさを示す情報の算出、復号候補(リスト数)の管理を行う処理部である。本実施の形態のリスト処理部21は、上述した処理に、指定されたまたは設定されたNtの値に応じて、対応する尤度計算部の計算結果を選択する処理を追加した処理を、リスト型逐次除去復号法の復号処理として実行する復号処理部である。
なお、制御部24が、Ntの値に応じて尤度情報の計算が必要な尤度計算部へ、計算結果の書き込み位置を指示し、リスト処理部21が当該書き込み位置からデータを読み出すことによりリストごとの計算結果の入力が行われてもよいし、全尤度計算部が計算結果をリスト処理部21へ出力しリスト処理部21が、制御部24からの情報に基づいて必要な計算結果を選択して用いてもよい。
リスト処理部21は、1ビット分の処理完了後に、リスト数L個分の復号処理途中の復号候補をビット配置変更部23-0~23-nへ出力し、リスト処理部21の処理が完了したことを示すフラグ、復号処理番号、復号途中のリスト数等を制御部24へ出力する。また、リスト処理部21は、Ntビット分の逐次復号が完了した後に、復号ビット選択部25へL個の復号候補と復号候補の尤もらしさを示すパスメトリック等の尤度情報を出力する。
第1ビット配置変更部であるビット配置変更部23-0~23-nは、リスト処理部21からの復号候補に基づいて、実施の形態1の符号化回路1のビット配置変更部11と同様に、N/Ntごとに復号候補の各要素を配置することによりNビットへ拡張した第1ビット系列を生成し、第1ビット系列を、対応するpolar符号化部22-0~22-nへそれぞれ出力する。ここで、ビット配置変更部23-0~23-nは、復号未実施のビットに関しては0値とすることでNビットへ拡張したビット系列を生成する。
第1polar符号化部であるpolar符号化部22-0~22-nは、対応するビット配置変更部23-0~23-nから入力された第1ビット系列に対して、実施の形態1の符号化回路1のpolar符号化部12と同様のNビットのpolar符号化を行い、polar符号化結果を復号途中結果として、対応する第1尤度計算部200へ入力する。
制御部24は、各尤度計算部の処理の制御、リスト処理部21の処理の制御を行う。制御部24は、指定されたまたは設定されたNtに基づいて、リスト数に応じた各種処理の制御、尤度計算部で計算するパタンの制御、出力する計算結果の選択制御、Nt=Nでない場合には、不要な尤度計算部などの回路を停止させるなどの制御を行う。例えば、制御部24は、polar符号化部22-0~22-nによる符号化結果のうち尤度算出部30が参照するビット位置を制御するようにしてもよい。
制御部24の制御の具体例として、図3に示した例と同様に、最大符号長N=16の復号処理と、符号長Nt=8の復号処理とを比較して説明する。復号処理は、図3における右から左へ向かって計算が進み、排他的論理和回路42は、各XOR計算部に対応する。また、各排他的論理和回路42に該当する尤度計算は、2入力1出力となる。N=16およびNt=8の第1ビット目の復号処理では、まず右から1段目の排他的論理和回路42に該当する第4尤度計算部のXOR計算部がc8側の復号回路2への入力であるLLRを用いて、LLRの尤度計算を行い、第4尤度計算部の出力として、計算結果を出力する。なお、各尤度計算が2入力1出力であることを考慮すると、右から2番目の排他的論理和回路42の上から2,4,6,8番目の排他的論理和回路42に対応するXOR計算部は復号回路に実装しないこともできる。右から2番目の排他的論理和回路42では、第4尤度計算部からの出力を用いて、第3尤度計算部202のXOR計算部によるLLRの尤度計算を行い、第3尤度計算部202の出力として、計算結果を出力する。同様に、右から3番目の排他的論理和回路42に該当する第2尤度計算部201のXOR計算部204は、第3尤度計算部202からの出力を用いた尤度計算を行い、第2尤度計算部201の出力として、計算結果を出力する。
Nt=8の1ビット目の復号処理では、第2尤度計算部201の計算結果を、リスト処理部21へ出力する。N=16の1ビット目の復号処理では、さらに、右から4番目の排他的論理和回路42に該当する第1尤度計算部200のXOR計算部203で、第2尤度計算部201からの出力を用いて、尤度計算を行い、第1尤度計算部200の出力として、リスト処理部21へ計算結果を出力する。1ビット目の尤度計算処理では、2入力1出力の尤度計算による、N=16ではb8,0の位置、Nt=8ではb’8,0の位置に尤度計算結果が、リスト処理部21へ出力される。N=16およびNt=8のいずれの場合も、尤度算出部30からの出力を用いてリスト処理部21によりリスト復号処理が行われ、polar符号化部22により復号候補の再符号化が行われる。polar符号化部22による再符号化結果が、2ビット目の復号処理のための尤度算出部30へ入力される。
N=16の2ビット目の尤度計算処理では、1ビット目の尤度計算処理の第2尤度計算部201までの動作と同様の動作が行われる。第1尤度計算部200のXOR計算部203では、第2尤度計算部201の出力とpolar符号化部22から出力される再符号化結果を用いて、一番左の上から2番目の0値の位置に該当する尤度計算を行い、尤度計算結果をリスト処理部21へ出力する。その後、リスト処理部21によるリスト復号処理、polar符号化部22による再符号化処理が実行され、尤度算出部30へ再符号化処理結果が入力される。N=16の1ビット目および2ビット目の確定後の再符号化を実施するとNt=8の1ビット目に該当するb’8,0が確定する。なお、このように、尤度計算処理では、Nt=8の1ビット目に該当する尤度計算処理が2度行われるが、Nt=8の場合には、N=16の偶数ビット(上から2,4,6,8、・・・)が0値と固定されているため、N=16の1ビット目が確定した際に、Nt=8の1ビット目が確定したことになる。そのため、Nt=8の場合、N=16の偶数ビットの復号処理を省くことができる。同様に、N=16の3ビット目の尤度計算処理の途中で、第2尤度計算部201のXOR計算部204から計算結果がリスト処理部21へ出力されてリスト復号処理が実施され、N=16の4ビット目を0として再符号化を適用することで、b’8,1の位置のビット候補が確定したことと等価となる。以下、同様に、N=16の場合の奇数ビットに対応する尤度計算を第2尤度計算部201のXOR計算部の計算まで行い、計算結果をリスト処理部21に出力し、リスト処理部21がNt=8に対応する第2尤度計算部201のXOR計算部204からの計算結果を用いて、リスト復号処理を行い、polar符号化部22が再符号化処理を行う、という動作を繰り返すことで、最大符号長N=16の復号回路により、Nt=8の復号処理が行われる。また、例として、Nt=4の場合を想定すると、復号回路2への入力LLRと復号候補の再符号化結果を用いて、尤度計算部の処理を実行する。この際、尤度計算部は、第3尤度計算部202のXOR計算部の計算結果のリスト処理部21へ出力、リスト処理部21によるリスト復号処理、およびpolar符号化部22による再符号化を繰り返すことにより、Nt=4の復号処理が行われる。Nt=4の場合には、N=16の1,5,9,13ビット目の尤度計算を行えば良い。
以上を整理すると、各尤度計算部では、N=16の尤度計算処理のうち、奇数ビット目の尤度計算処理を実行し、b’8のビット系列53の位置に対応する計算結果を、リスト処理部21に出力する。リスト処理部21では、リスト数分の尤度情報に基づき、復号候補を1ビットずつ確定させる。ビット配置変更部23-0~23-nでは、確定したビットを2ビットごとに配置する。このビット配置変更部23-0~23-nの再配置処理は、本例では、N=16の奇数ビットの尤度計算およびリスト復号処理を行い、偶数ビットの処理を省略し、偶数ビット目の処理の結果である既知の0ビットを付加したビット配置にすることと等価になる。polar符号化部22-0~22-nで、polar符号化処理を行うことで、N=16の符号化結果つまりNt=8の符号化結果を出力し、本結果に基づき、尤度計算部による計算が進む。制御部24が、上述した通り、N=Ntに対応する第1尤度計算処理のうち、奇数ビットに対応する尤度計算を実行するように制御することで、Nt=8に対する尤度計算処理が実施されることになる。なお、一般的に説明すると、尤度計算処理は、NtがN未満の場合には、N/Ntごとに実行されれば良く、制御部24は、外部より入力されるNtまたは内部で保持しているNtの設定値に応じ、前述した尤度算出部30の不要な回路の停止および最大符号長Nの復号処理のうち、符号長Ntの場合に必要となる尤度算出部30の計算処理を制御する。制御部24が、最大符号長Nの復号動作のうちN/Ntごとのビット以外のビットに対する処理を省略するよう制御するため、最大符号長Nの回路構成で、Nを想定した逐次復号回数より少ないNt回の逐次復号処理で、polar符号の復号を完了させることができる。
また、N=16、Nt=8の場合、Nt=8に対応する2つの第2尤度計算部201のうち、1つは復号処理に用いる必要がないため、制御部24は、この第2尤度計算部201の機能を停止させてもよい。また、制御部24は、復号途中の最大リスト数より少ないリスト数の場合に、尤度計算部で計算を行う必要がない回路を停止させるなどの制御を行ってもよい。制御部24は、リスト処理部21からの情報に基づき、何ビット分の復号を完了したかなどの情報を用いて、リスト処理部21での処理を制御する。
また、復号対象のビットが、情報ビットである場合には復号候補が増加し、フローズンビットの場合には既知の値のため復号候補を増加させないなどの複数の処理が発生するため、フローズンビットであるか否かは復号処理において必要な情報となる。そのため、フローズンビット位置の情報をリスト処理部21が保持しておき、リスト処理部21が処理しているビット番号を制御部24からリスト処理部21に通知することにより、リスト処理部21が処理対象のビットがフローズンビットであるか否かを判断してもよいし、制御部24がフローズンビット位置の情報を保持する場合には、対応処理するビットがフローズンビットであるか否かを示す情報を制御部24からリスト処理部21へ通知してもよい。このように、制御部24は、リスト処理部21から通知されるリスト処理部21の処理の進捗状況を表す情報に応じて、リスト処理部21へリスト処理部21の処理対象がフローズンビットであるか否かを通知してもよい。
また、復号処理において、データビットに該当する復号処理を行う際には、リスト数を増加させるが、復号途中のリスト数に応じた制御を、制御部24が制御しても良い。
Ntビット分の逐次復号処理が完了すると、リスト処理部21は、復号ビット選択部25に、リスト数分の復号候補、パスメトリック等の復号候補の尤度情報を出力する。復号ビット選択部25は、処理対象のデータ長の復号候補がリスト処理部21によって算出されると、復号候補を用いて復号ビットを選択する。処理対象のデータ長の一例は、Ntビットである。復号ビット選択部25は、具体的には、例えば、符号化の前のKビットのビット系列に誤り検出処理が施されている場合には、各復号候補に対して誤り検出を実施し、誤りの無い復号候補を選択して出力し、全ての復号候補に誤りが検出された場合には、パスメトリック等の復号候補の尤度情報を用いて復号候補を選択する。復号ビット選択部25は、符号化の前のKビットのビット系列に誤り検出が施されていない場合には、パスメトリック等の復号候補の尤度情報を用いて尤もらしい復号候補を選択して出力する。
上述した誤り検出処理は、例えば、一般的に知られているCRC(Cyclic Redundancy Check:巡回冗長検査) aided リスト型逐次除去復号法のように、誤り検出のためのCRCビットが冗長ビットとして付加される処理である。符号化の前のKビットのビット系列に誤り検出処理が施されている場合には、復号ビット選択部25は、この冗長ビットを用いて誤り検出処理を行うことができる。なお、誤り検出処理としては、CRCに限定されず、FEC(Forward Error Correction:前方誤り訂正)、VRC(Vertical Redundancy Check:垂直パリティチェック)または水平パリティチェックLRC(Longitudinal Redundancy Check)などといったパリティ符号(パリティチェック)、チェックサムなどをはじめとした処理を用いることができる。なお、前述の手法以外にも誤りを検出できる手法であれば適用可能である。
frozenビット除去部26は、復号ビット選択部25から出力される復号ビットから、フローズンビットを取り除き、Kビットの情報ビット系列を出力する。
ここで、本実施の形態では、復号方法としてリスト型逐次除去復号法を想定しているが、L=1の場合には、リスト型逐次除去復号法は、polar符号の復号法として一般的に知られている、逐次除去復号法(SCD:Successive Cancellation Decoding)と等価となる。このため、L=1として、図8に示した復号回路2が、逐次除去復号法により復号を行うこともできる。
また、図8では、リスト型逐次除去復号法を想定し、各リストに対応する処理を実施する回路を最大リスト数L個分並列に実行する構成例を示しているが、リスト数分の復号処理を実行する処理が可能であれば良いため、最大リスト数Lより多い数の回路を実装し、制御部24が、必要なリスト数分の処理を実行するように、各部を制御するようにしてもよい。また、リスト数を可変としてもよく、この場合、制御部24が、リスト数に応じて処理に必要な各部を動作させるよう制御する。また、リスト数以下の最低1つの並列実装回路を用いて、時間分割によりリスト数分の処理を実行することも可能である。例えば、図8では、尤度算出部30は、第1尤度計算部を200-0から200-nまでのn+1個の並列回路として備えているが、1個以上の第1尤度計算部のみを備え、この1個以上の第1尤度計算部が、時分割でn+1個の尤度計算処理を実施してもよい。同様に、第1尤度計算部内の2個以上備えた尤度計算部を、時分割で処理してもよい。また、polar符号化部22、ビット配置変更部23も同様に、それぞれ1個以上の回路を備え、時分割で処理することも可能である。
以上のように、本実施の形態の復号回路2の各並列実装回路数は、図8に示した例に限定されず、任意に設定して実装することが可能である。以上のように、本実施の形態の復号回路2は、最大符号長Nのpolar符号を復号可能な復号回路を実装し、制御部24により、必要な尤度計算およびリスト処理を制御するため、符号長を容易に動的に制御することが可能である。
次に、本実施の形態の復号回路2を実現するためのハードウェアについて説明する。復号回路2を構成する各部は、専用のハードウェアである処理回路で実現することが可能である。復号回路2を構成する各部は、例えば、図6に示す処理回路130により実現される。
処理回路130は実施の形態1と同様に、復号回路2を構成する各部の機能は、それぞれ異なる処理回路130で実現されても良いし、これらの各部の機能の全てまたは一部がまとめて1つまたは複数の処理回路で実現されてもよい。
復号回路2を構成する各部を実現する処理回路はプロセッサを備える制御回路であってもよい。この制御回路は、例えば、図7に示したように、プロセッサ140およびメモリ141を備える制御回路である。復号回路2を構成する各部の機能が図7に示した制御回路で実現される場合、これらの機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせにより実現できる。ソフトウェアおよびファームウェアはプログラムとして記述され、メモリ141に記憶される。プロセッサ140がメモリ141からプログラムを読み出して実行することにより、復号回路2の各部の機能が実現される。これらのプログラムは、復号回路2が実行する手順および方法をコンピュータに実行させるものであるともいえる。このプログラムは、記憶媒体または通信媒体により提供されてもよい。
復号回路2の各部の各機能を、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしても良い。すなわち、復号回路2の各部の各機能が、専用のハードウェアである処理回路と、制御回路の組み合わせによって実現されてもよい。
次に、本実施の形態の復号回路2における処理手順例について説明する。図9は、本実施の形態の復号処理手順の一例を示すフローチャートである。ここでは、復号回路2がリスト型逐次除去復号法により復号を行う例を説明する。復号回路2に復号対象の信号が入力されると、制御部24は、復号処理の初期設定として、最大符号長Nの復号処理に対応するビット番号nmおよび符号長Ntの復号処理に対応するビット番号ntを、初期値である0に設定して、復号処理する。
まず、制御部24は、ビット番号nmが符号長Ntの符号語に対応するビット位置であるか否か、すなわち、nmをN/Ntで割った余りMod(nm,N/Nt)が0であるか否かを判断する(ステップS1)。Mod(nm,N/Nt)が0でない場合(ステップS1 No)、ビット番号nmを1カウントアップし(ステップS10)、再度ステップS1の処理を実施する。
Mod(nm,N/Nt)が0の場合(ステップS1 Yes)、制御部24は、尤度計算処理を実行させる(ステップS2)。詳細には、制御部24は、Ntに応じて、第1尤度計算部200-0~200-nおよび第1尤度計算部200-0~200-n内の各尤度計算部のうち処理に必要な尤度計算部に処理の実行を指示する。これにより、Ntに応じた尤度計算処理が行われる。
次に、リスト処理部21が、尤度計算結果に基づいて、復号候補を確定するリスト復号処理を実行する(ステップS3)。ビット配置変更部23-0~23-nは、リスト処理部21が確定させた復号候補に対して、復号ビットの再配置処理を行う(ステップS4)。詳細には、ビット配置変更部23-0~23-nは、リスト処理部21が確定させた復号候補を、Nビットのビット系列に拡張するようにビットを再配置する。
次に、polar符号化部22-0~22-nは、復号ビットの符号化処理を行う(ステップS5)。制御部24は、ビット番号ntを1カウントアップし(ステップS6)、nt=Ntであるか否かすなわちNtビット分の逐次復号処理が完了したか否かを判断する(ステップS7)。nt=Ntでない場合(ステップS7 No)、制御部24はステップS1からの処理を繰り返す。
nt=Ntである場合(ステップS7 Yes)、制御部24は、リスト処理部21に復号候補を復号ビット選択部25へ出力させ、復号ビット選択部25が、復号候補に基づいて復号結果を確定させる復号結果選択処理を実施する(ステップS8)。次に、frozenビット除去部26は、復号ビット選択部25によって確定された復号結果からフローズンビットを除去するフローズンビット除去処理を実施する(ステップS9)。以上の処理により、符号化回路に入力された情報ビットが復元される。
以上のように、制御部24が尤度計算処理を制御することで、最大符号長Nの復号回路を共有して複数の符号長のpolar符号の復号が可能となる。このため、回路規模の増大を抑制して、複数の符号長のpolar符号に対応した復号を行うことができる。また、逐次復号回数もNt回に制限できることにより、符号長Ntに合わせて設計および構築した回路の処理遅延を実現できる。なお、上述したとおり、リスト数Lが1の場合には、リスト型逐次除去復号法は逐次除去復号法と等価になるため、図9に示したフローチャートは、逐次除去復号法の場合も包含したフローチャートである。
実施の形態3.
図10は、実施の形態3にかかる符号化回路の構成例を示すブロック図である。実施の形態1では、非systematicなpolar符号を生成する符号化回路1について説明したが、本実施の形態では、systematicなpolar符号を生成する符号化回路1aについて説明する。以下、実施の形態1と同様の機能を有する構成要素は実施の形態1と同一の符号を付して重複する説明を省略する。以下、実施の形態1と異なる点を中心に説明する。
図10は、実施の形態3にかかる符号化回路の構成例を示すブロック図である。実施の形態1では、非systematicなpolar符号を生成する符号化回路1について説明したが、本実施の形態では、systematicなpolar符号を生成する符号化回路1aについて説明する。以下、実施の形態1と同様の機能を有する構成要素は実施の形態1と同一の符号を付して重複する説明を省略する。以下、実施の形態1と異なる点を中心に説明する。
図10に示すように、符号化回路1aは、frozenビット付加部10、ビット配置変更部11、polar符号化部12、frozenビット変換部(フローズンビット変換部)80、polar符号化部81および間引き処理部82を備える。実施の形態1と同様に、符号化回路1aは、最大でNビットの符号長のpolar符号を生成可能である。Nビット以下の符号長のうち指定または設定されたNtビットの符号長のpolar符号を生成可能である。
frozenビット付加部10、ビット配置変更部11およびpolar符号化部12は、実施の形態1と同様であるため説明を省略する。frozenビット変換部80は、Ntビットの符号語のビット系列に対して、polar符号の符号化前に設定するフローズンビットのビット位置をビット反転順にした位置のビットをフローズンビットに置き換える。ビット反転順とは、ビットインデックスの2進法表示を、MSB(Most Significant Bit)からLSB(Least Significant Bit)への順を逆に変換するといったように、ビットの順序を逆順にしたインデックスの順番のことを示している。例えば、[b4,0,b4,1,b4,2,b4,3]のような4ビットのビット系列を想定した場合、b4,iにおけるiがビットインデックスを示している。10進法表示で0,1,2,3は、2進法表示ではそれぞれ、00,01,10,11となる。2進法表示では、MSBが最左端になりLSBが最右端になる並び順であるが、このビット順を逆に並び替えると、00,01,10,11はそれぞれ00,10,01,11となる。
図3に示した例で説明すると、入力ビット系列50であるb8のうち、b8,0,b8,1,b8,2,b8,4がフローズンビットであった場合、これらのビットインデックスは0,1,2,4であり2進法表示すると000,001,010,100である。したがって、ビット反転順にした位置は、2進法のビットインデックス000,100,010,001の位置であり、10進法のビットインデックス0,4,2,1となる。このため、frozenビット変換部80は、c8の符号語51内で、ビットインデックス0,4,2,1の位置をフローズンビットに置き換える。フローズンビットを0とすると、frozenビット変換部80は、c8=[c8,0,c8,1,…,c8,7]を[0,0,0,c8,3,0,c8,5,c8,6,c8,7]に置き換える。なお、図3の16ビットの符号化後系列全体では、残り8ビットは0値かつ置き換えなく処理をするため、[0,0,0,c8,3,0,c8,5,c8,6,c8,7,0,0,0,0,0,0,0,0]を出力する。
以上のように、frozenビット変換部80は、第2系列がpolar符号化部12により符号化された結果に対して、frozenビット付加部10によってフローズンビットが付加された位置に対応するビットをフローズンビットに変換することにより第3系列を生成する。詳細には、frozenビット変換部80は第2系列がpolar符号化部12により符号化された結果のうち、第2符号長の符号語に対応するビット系列に関して、frozenビット付加部10によってフローズンビットが付加されたビット位置のビット反転順の位置をフローズンビットに置き換える。
第2polar符号化部であるpolar符号化部81は、frozenビット変換部80から入力される第3系列に対して、polar符号化部12と同様に、polar符号化を行う。間引き処理部82は、間引き処理部13と同様に、polar符号化部81から出力されたビット系列から、ビット配置変更部11でN/Ntごとに配置した位置に該当するNtビットを符号語として抽出して出力する。
本実施の形態の符号化処理の例として、N=16、Nt=8を想定した符号化処理を説明する。入力信号として、4ビットの情報系列[b4,0,b4,1,b4,2,b4,3]が入力されると、frozenビット付加部10が、Nt=8のビット系列となるようにフローズンビットを付加し、8ビットのビット系列[f0,f1,f2,b4,0,f3,b4,1,b4,2,b4,3]を出力する。なお、フローズンビットは、一般性を維持するため、f0,f1,f2,f3と記載している。ビット配置変更部11は、16ビットのビット系列に、N/Ntごとに8ビットの上記ビット系列を配置する。これにより、ビット配置変更部11は、16ビットのビット系列[f0,0,f1,0,f2,0,b4,0,0,f3,0,b4,1,0,b4,2,0,b4,3,0]をpolar符号化部12へ入力する。
polar符号化部12は、ビット長16ビットのpolar符号化を行うことにより、符号化結果[f0^f1^f2^b4,0^f3^b4,1^b4,2^b4,3,f3^b4,1^b4,2^b4,3,f2^b4,0^b4,2^b4,3,b4,2^b4,3,f1^b4,0^b4,1^b4,3,b4,1^b4,3,b4,0^b4,3,b4,3,0,0,0,0,0,0,0,0]を出力する。ここで「^」は排他的論理和演算を示している。
frozenビット変換部80は、Nt=8に対応する符号語(polar符号化部12から出力される16ビットのビット系列のうちビットインデックスが0~7に対応するビット系列)において、frozenビット付加部10でフローズンビットを配置した位置のビット反転順の位置を、フローズンビットに置き換える。frozenビット変換部80による置き換え後の16ビット系列は、[f0,f3,f2,b4,2^b4,3,f1,b4,1^b4,3,b4,0^b4,3,b4,3,0,0,0,0,0,0,0,0]となる。
polar符号化部81は、frozenビット変換部80による置き換え後のビット列にpolar符号化を実施し、16ビットのビット系列の[f0^f1^f2^f3^b4,0^b4,1^b4,2,0,f1^b4,0^b4,1^b4,3,0,f2^b4,0^b4,2^b4,3,0,b4,0,0,f3^b4,1^b4,2^b4,3,0,b4,1,0,b4,2,0,b4,3,0]を出力する。間引き処理部82は、polar符号化部81から出力されるビット系列から、ビット配置変更部11で8ビット系列を配置した位置のビット系列を抜き出し、[f0^f1^f2^f3^b4,0^b4,1^b4,2,f1^b4,0^b4,1^b4,3,f2^b4,0^b4,2^b4,3,b4,0,f3^b4,1^b4,2^b4,3,b4,1,b4,2,b4,3]を出力する。
ここで、間引き処理部82から出力されるビット系列には、frozenビット付加部10でフローズンビットを付加する前の入力系列である[b4,0,b4,1,b4,2,b4,3]が、ビットインデックス3,5,6,7の位置に表れている。このため、符号化回路1aは、以上の処理によりsystematic polar符号化処理を完了することができる。なお、本実施の形態の符号化回路1aでは、最大符号長Nの回路を共用して、ビット配置変更部11および間引き処理部82にて、符号長Ntに合わせた配置変更およびビットの抽出を行うことで、N以下の2の累乗のNtについて、符号長Ntの符号化処理を行うため、回路規模の増大を抑制しつつ、符号長を容易に動的に変更することができる。
なお、本実施の形態では、polar符号化部12により符号化された結果が、frozenビット変換部80およびpolar符号化部81を介して間引き処理部82に入力されるが、間引き処理部82に入力されるデータは、polar符号化部12により符号化された結果に基づくものといえる。このため、本実施の形態においても、間引き処理部82は、第2系列がpolar符号化部12により符号化された結果に基づく間引き処理により、第2符号長の符号語を生成していることになる。
本実施の形態の符号化回路1aを構成する各部は、専用のハードウェアである処理回路で実現することが可能である。符号化回路1aを構成する各部は、実施の形態1と同様に、例えば、図6に示す処理回路130により実現される。符号化回路1aを構成する各部の機能は、それぞれ異なる処理回路130で実現されても良いし、これらの各部の機能の全てまたは一部がまとめて1つまたは複数の処理回路で実現されてもよい。
符号化回路1aを構成する各部を実現する処理回路はプロセッサを備える制御回路であってもよい。制御回路は、実施の形態1と同様に、図7に示すように、プロセッサ140およびメモリ141を備える。符号化回路1aを構成する各部の機能が図7に示した制御回路で実現される場合、これらの機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせにより実現できる。ソフトウェアおよびファームウェアはプログラムとして記述され、メモリ141に記憶される。プロセッサ140がメモリ141からプログラムを読み出して実行することにより、符号化回路1aの各部の機能が実現される。これらのプログラムは、符号化回路1aが実行する手順および方法をコンピュータに実行させるものであるともいえる。このプログラムは、記憶媒体または通信媒体により提供されてもよい。
符号化回路1aの各部の各機能を、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしても良い。例えば、polar符号化部12,81については専用のハードウェアでその機能を実現し、frozenビット付加部10、ビット配置変更部11、frozenビット変換部80および間引き処理部82については制御回路でその機能を実現することが可能である。このように、符号化回路1aの各部の各機能が、専用のハードウェアである処理回路と、制御回路の組み合わせによって実現されてもよい。
実施の形態4.
図11は、実施の形態4にかかる復号回路の構成例を示すブロック図である。図11に示した復号回路2aは、systematic polar符号に対応するリスト型逐次除去復号法の復号処理を実行する。
図11は、実施の形態4にかかる復号回路の構成例を示すブロック図である。図11に示した復号回路2aは、systematic polar符号に対応するリスト型逐次除去復号法の復号処理を実行する。
図11に示すように、復号回路2aは、第1尤度計算部200-0~200-n、尤度算出部30、リスト処理部21、polar符号化部22-0~22-n、ビット配置変更部23-0~23-n、制御部24、復号ビット選択部25、frozenビット除去部26およびsystematic polar処理部90を備える。第1尤度計算部200-0~200-n、リスト処理部21、polar符号化部22-0~22-n、ビット配置変更部23-0~23-n、制御部24、復号ビット選択部25およびfrozenビット除去部26は実施の形態2と同様である。実施の形態2と同様の機能を有する構成要素は実施の形態2と同一の符号を付して重複する説明を省略する。以下、実施の形態2と異なる点を中心に説明する。
本実施の形態の復号回路2aと実施の形態2すなわち図8に示した復号回路2との相違点は、復号回路2aでは、systematic polar符号の復号処理を行うsystematic polar処理部90を備える点である。systematic polar処理部90は、ビット配置変更部900-0~900-n、polar符号化部901-0~901-nおよび間引き処理部902-0~902-nを備える。
リスト復号処理が完了した後に、リスト処理部21は、L個の復号候補のそれぞれを対応するビット配置変更部900-0~900-nへ出力し、復号ビット選択部25にL個の復号候補の尤もらしさを示すパスメトリック等の尤度情報を出力する。ビット配置変更部900-0~900-nは、リスト処理部21から出力された復号候補に、ビット配置変更部23-0~23-nと同様に、N/Ntビットごとに、復号候補を配置することによりNビットのビット系列を生成する。polar符号化部901-0~901-nは、対応するビット配置変更部900-0~900-nにより生成されたNビットのビット系列に対して、polar符号化部22-0~22-nと同様に、polar符号化を行う。間引き処理部902-0~902-nは、実施の形態1の符号化回路1の間引き処理部13と同様に、符号化後のビット系列のインデックスが小さい順のNtビットを抽出し、抽出したビット系列を復号ビット選択部25に出力する。
ここで、本実施の形態の復号回路2aの動作について、N=16、Nt=8の場合を例に挙げて説明する。実施の形態3で説明した8ビット系列[f0^f1^f2^f3^b4,0^b4,1^b4,2,f1^b4,0^b4,1^b4,3,f2^b4,0^b4,2^b4,3,b4,0,f3^b4,1^b4,2^b4,3,b4,1,b4,2,b4,3]が送信され、この信号を復号回路2aが受信した復号処理を行う例を説明する。復号回路2aにおいて、実施の形態2と同様にリスト型逐次除去復号が行われ、誤りなく復号された場合には、リスト処理部21からは、上記の8ビット系列をpolar符号化した8ビット系列である[f0,f3,f2,b4,2^b4,3,f1,b4,1^b4,3,b4,0^b4,3,b4,3]が出力される。
第2ビット配置変更部であるビット配置変更部900-0~900-nは、N/Ntビットごとに、リスト処理部21から出力された8ビット系列を配置することにより、16ビット系列[f0,0,f3,0,f2,0,b4,2^b4,3,0,f1,0,b4,1^b4,3,0,b4,0^b4,3,0,b4,3,0]を生成して対応するpolar符号化部901-0~901-nへ出力する。polar符号化部901-0~901-nは、対応するビット配置変更部900-0~900-nから出力された16ビット系列に対してpolar符号化を実行し、符号化結果として[f0^f1^f2^f3^b4,0^b4,1^b4,2,f1^b4,0^b4,1^b4,3,f2^b4,0^b4,2^b4,3,b4,0,f3^b4,1^b4,2^b4,3,b4,1,b4,2,b4,3,0,0,0,0,0,0,0,0]を、対応する間引き処理部902-0~902-nへ出力する。すなわち、ビット配置変更部900-0~900-nは、リスト処理部21から出力された復号候補を、ビット配置変更部23-0~23-nが復号候補を配置した位置と同じ位置に配置することにより第1符号長の第2ビット系列を生成し、polar符号化部901-0~901-nは、第2ビット系列に対してpolar符号化を行う。
間引き処理部902-0~902-nは、polar符号化部901-0~901-nから出力された16ビットのビット系列のうちビットインデックスの小さい8ビットのビット系列[f0^f1^f2^f3^b4,0^b4,1^b4,2,f1^b4,0^b4,1^b4,3,f2^b4,0^b4,2^b4,3,b4,0,f3^b4,1^b4,2^b4,3,b4,1,b4,2,b4,3]を復号ビット選択部25に出力する。復号ビット選択部25は、間引き処理部902-0~902-nから出力されたビット系列のうち、符号化回路1aにおいて情報ビットが配置された位置のビット、すなわちビットインデックス3,5,6,7のビットを抜き出すことにより、[b4,0,b4,1,b4,2,b4,3]を得る。これは、符号化回路1aにおける符号化前の4ビットの情報ビットのビット系列と一致する。このように、本実施の形態の復号回路2aは、systematic polar符号に対応した復号が可能であることがわかる。
なお、以上の例では、リスト処理部21から出力されたビット系列に誤りがないとして説明したが、実際の処理においては、リスト処理部21から出力されたビット系列における誤りの有無は未知であるため、リスト処理部21から出力されたビット系列はリストごとの復号候補として出力される。復号ビット選択部25は、実施の形態2の復号回路2の復号ビット選択部25と同じく、情報ビットに誤り検出が施されている場合には、各復号候補に対して誤り検出を実施し、誤りの無い復号候補を選択して出力し、全ての候補から誤りが検出された場合には、パスメトリック等の復号候補の尤度情報を用いて復号候補を選択する。または、復号ビット選択部25は、情報ビットに誤り検出が施されていない場合には、パスメトリック等の復号候補の尤度情報を用いて尤もらしい復号候補を選択して出力する。frozenビット除去部26は、実施の形態2の復号回路2のfrozenビット除去部26と同様に、フローズンビットを除去し、Kビットの情報ビットを出力する。
本実施の形態では、復号方法としてリスト型逐次除去復号法を想定しているが、実施の形態2と同様に、L=1の場合には、リスト型逐次除去復号法は、polar符号の復号法として一般的に知られている、逐次除去復号法と等価となる。このため、L=1として、図11に示した復号回路2aが、逐次除去復号法により復号を行うこともできる。
また、図11では、リスト型逐次除去復号法を想定し、各リストに対応する処理を実施する回路を最大リスト数L個分並列に実行する構成例を示しているが、実施の形態2で述べたように、最大リスト数Lより多い数の回路を実装し、制御部24が、必要なリスト数分の処理を実行するように、各部を制御するようにしてもよい。また、リスト数を可変としてもよく、この場合、制御部24が、リスト数に応じて処理に必要な各部を動作させるよう制御する。また、リスト数以下の最低1つの並列実装回路を用いて、時間分割によりリスト数分の処理を実行することも可能である。
本実施の形態の復号回路2aを構成する各部は、専用のハードウェアである処理回路で実現することが可能である。復号回路2aを構成する各部は、実施の形態2と同様に、例えば、図6に示す処理回路130により実現される。復号回路2aを構成する各部の機能は、それぞれ異なる処理回路130で実現されても良いし、これらの各部の機能の全てまたは一部がまとめて1つまたは複数の処理回路で実現されてもよい。
復号回路2aを構成する各部を実現する処理回路はプロセッサを備える制御回路であってもよい。制御回路は、実施の形態2の復号回路2と同様に、図7に示すように、プロセッサ140およびメモリ141を備える。復号回路2aを構成する各部の機能が図7に示した制御回路で実現される場合、これらの機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせにより実現できる。ソフトウェアおよびファームウェアはプログラムとして記述され、メモリ141に記憶される。プロセッサ140がメモリ141からプログラムを読み出して実行することにより、復号回路2aの各部の機能が実現される。これらのプログラムは、復号回路2aが実行する手順および方法をコンピュータに実行させるものであるともいえる。このプログラムは、記憶媒体または通信媒体により提供されてもよい。
復号回路2aの各部の各機能を、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしても良い。このように、復号回路2aの各部の各機能が、専用のハードウェアである処理回路と、制御回路の組み合わせによって実現されてもよい。
次に、本実施の形態の復号回路2aにおける処理手順例について説明する。図12は、本実施の形態の復号処理手順の一例を示すフローチャートである。ここでは、復号回路2aがリスト型逐次除去復号法により復号を行う例を説明する。ステップS1~ステップS7,ステップS10は実施の形態2と同様であるため、説明を省略する。本実施の形態においても、制御部24がNtビットに応じて尤度計算処理を制御することで、符号長を動的に変更可能である。
ステップS7でYesの場合、ビット配置変更部900-0~900-nは、リスト処理部21から出力された復号候補に対して、復号ビットの配置変更処理を行う(ステップS11)。詳細には、ビット配置変更部900-0~900-nは、N/Ntビットごとに、リスト処理部21から出力された復号候補を配置することにより、Nビットのビット系列を生成して、対応するpolar符号化部901-0~901-nへ出力する。
polar符号化部901-0~901-nは、復号ビットの符号化処理を行う(ステップS12)。詳細には、polar符号化部901-0~901-nは、対応するビット配置変更部900-0~900-nから出力されたビット系列に対して、polar符号化部22-0~22-nと同様に符号化処理を行い、符号化結果を、対応する間引き処理部902-0~902-nへ出力する。
間引き処理部902-0~902-nは、対応するpolar符号化部901-0~901-nから出力された符号化結果に対して、ビット間引き処理を行う(ステップS13)。詳細には、間引き処理部902-0~902-nは、Nビットの符号化結果のうち、ビットインデックスが小さいNtビットをsystematic polar復号処理の結果として抽出して、復号ビット選択部25へ出力する。以降のステップS8,S9の処理は実施の形態2と同様である。
以上のように、本実施の形態では、制御部24が尤度計算処理を制御することで、最大符号長Nの復号回路を共有して複数の符号長のsystematic polar符号の復号が可能となる。このため、回路規模の増大を抑制して、複数の符号長のsystematic polar符号の復号を行うことができる。
実施の形態5.
図13は、実施の形態5にかかる復号回路の構成例を示すブロック図である。図13に示した復号回路2bは、リスト型逐次除去復号法により、polar符号とsystematic polar符号との両方に対応する復号処理を実行することが可能である。
図13は、実施の形態5にかかる復号回路の構成例を示すブロック図である。図13に示した復号回路2bは、リスト型逐次除去復号法により、polar符号とsystematic polar符号との両方に対応する復号処理を実行することが可能である。
図13に示すように、復号回路2bは、実施の形態4の復号回路2aに、信号選択部112が追加され、制御部24、systematic polar処理部90の代わりに制御部110、systematic polar処理部111を備える以外は、実施の形態4の復号回路2aと同様である。
第1尤度計算部200-0~200-n、リスト処理部21、polar符号化部22-0~22-n、ビット配置変更部23-0~23-n、復号ビット選択部25およびfrozenビット除去部26は実施の形態2および実施の形態4と同様である。実施の形態4と同様の機能を有する構成要素は実施の形態4と同一の符号を付して重複する説明を省略する。以下、実施の形態4と異なる点を中心に説明する。
本実施の形態の制御部110は、実施の形態2および実施の形態4の制御部24と同様に、各尤度計算部、リスト処理部21、polar符号化部22-0~22-nおよびビット配置変更部23-0~23-nによるリスト型逐次除去復号処理を制御する。リスト型逐次復号処理が完了するまでの復号回路2bの動作は、実施の形態2の復号回路2の動作および実施の形態4の復号回路2aの動作と同様である。
本実施の形態では、制御部110は、さらに、polar符号の復号処理すなわちリスト処理部21による処理結果と、systematic polar符号の復号処理すなわちsystematic polar処理部111による処理結果とのうちどちらを選択するかを制御する。信号選択部112は、制御部110からの指示に基づいて、リスト処理部21から出力される復号候補とsystematic polar処理部111から出力される復号候補とのうち一方を選択し、選択した復号候補を復号ビット選択部25に出力する。
polar符号の復号処理を行う場合には、制御部110は、systematic polar処理部111を停止させるとともに、信号選択部112を、リスト処理部21からの復号候補を選択して復号ビット選択部25に出力するように制御する。また、systematic polar符号の復号処理を行う場合には、制御部110は、systematic polar処理部111を動作させ、信号選択部112を、systematic polar処理部111からの復号候補を選択して復号ビット選択部25に出力するように制御する。
systematic polar処理部111は、制御部110から停止を指示された場合、systematic polar処理部111内部の各回路を停止させ、制御部110から動作するよう指示された場合、systematic polar処理部111内部の各回路を動作させる。systematic polar処理部111は、制御部110からの指示に基づいて、停止と稼働を切替える機能が追加される点以外は、実施の形態4のsystematic polar処理部90と同様である。
以上のように、実施の形態4の復号回路2aに、制御部110による信号選択の制御および信号選択部112を追加することで、polar符号とsystematic polar符号とのうち一方を選択して復号処理が可能な復号回路2bを構成することができる。なお、本実施の形態の復号方法としてリスト型逐次除去復号法を例示したが、実施の形態2および実施の形態4と同様に、L=1の場合には、リスト型逐次除去復号法は逐次除去復号法と等価となるため、本実施の形態の復号回路2bは、逐次除去復号法にも対応可能である。
また、図13では、リスト型逐次除去復号法を想定し、各リストに対応する処理を実施する回路を最大リスト数L個分並列に実行する構成例を示しているが、実施の形態2で述べたように、最大リスト数Lより多い数の回路を実装し、制御部110が、必要なリスト数分の処理を実行するように、各部を制御するようにしてもよい。また、リスト数を可変としてもよく、この場合、制御部110が、リスト数に応じて処理に必要な各部を動作させるよう制御する。また、リスト数以下の最低1つの並列実装回路を用いて、時間分割によりリスト数分の処理を実行することも可能である。
本実施の形態の復号回路2bを構成する各部は、専用のハードウェアである処理回路で実現することが可能である。復号回路2bを構成する各部は、実施の形態2と同様に、例えば、図6に示す処理回路130により実現される。復号回路2bを構成する各部の機能は、それぞれ異なる処理回路130で実現されても良いし、これらの各部の機能の全てまたは一部がまとめて1つまたは複数の処理回路で実現されてもよい。
復号回路2bを構成する各部を実現する処理回路はプロセッサを備える制御回路であってもよい。制御回路は、実施の形態2の復号回路2と同様に、図7に示すように、プロセッサ140およびメモリ141を備える。復号回路2bを構成する各部の機能が図7に示した制御回路で実現される場合、これらの機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせにより実現できる。ソフトウェアおよびファームウェアはプログラムとして記述され、メモリ141に記憶される。プロセッサ140がメモリ141からプログラムを読み出して実行することにより、復号回路2bの各部の機能が実現される。これらのプログラムは、復号回路2bが実行する手順および方法をコンピュータに実行させるものであるともいえる。このプログラムは、記憶媒体または通信媒体により提供されてもよい。
復号回路2bの各部の各機能を、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしても良い。このように、復号回路2bの各部の各機能が、専用のハードウェアである処理回路と、制御回路の組み合わせによって実現されてもよい。
次に、本実施の形態の復号回路2bにおける処理手順例について説明する。図14は、本実施の形態の復号処理手順の一例を示すフローチャートである。ここでは、復号回路2bがリスト型逐次除去復号法により復号を行う例を説明する。ステップS1~ステップS7,ステップS10は実施の形態2と同様であるため、説明を省略する。本実施の形態においても、制御部110がNtビットに応じて尤度計算処理を制御することで、符号長を動的に変更可能である。
ステップS7でYesの場合、制御部110は、systematic polar符号の復号処理を行うか否かを判断する(ステップS14)。制御部110は、systematic polar符号の復号処理を行う場合(ステップS14 Yes)、systematic polar処理部111を起動させて、ステップS11~ステップS13の処理を実施させる。ステップS11~ステップS13の処理は、実施の形態4と同様である。
制御部110は、信号選択処理を実施し(ステップS15)、ステップS8,S9の処理を実施させる。ステップS8,S9の処理は、実施の形態2および実施の形態4と同様である。信号選択処理では、制御部110は、polar符号の復号処理を行う場合には、信号選択部112を、リスト処理部21からの復号候補を選択して復号ビット選択部25に出力するように制御し、systematic polar符号の復号処理を行う場合には、信号選択部112を、systematic polar処理部111からの復号候補を選択して復号ビット選択部25に出力するように制御する。
polar符号の復号処理を行う場合(ステップS14 No)、制御部110は、処理をステップS15へ進める。以上の処理により、本実施の形態の復号回路2bは、polar符号の復号処理とsystematic polar符号の復号処理とを切替えて実施することができる。
以上のように、本実施の形態では、制御部110が尤度計算処理を制御することで、最大符号長Nの復号回路を共有して複数の符号長のsystematic polar符号の復号が可能となる。このため、回路規模の増大を抑制して、複数の符号長のpolar符号の復号を行うことが可能であるとともに、複数の符号量のsystematic polar符号の復号を行うことができる。
実施の形態6.
図15は、実施の形態6にかかる通信システムの構成例を示す図である。図15に示すように、本実施の形態の通信システムは、送信装置である通信装置3と、受信装置である通信装置5とを備える。通信装置3は、実施の形態1で述べた符号化回路1と、符号化回路1により符号化された結果を無線信号として送信する送信部4とを備える。通信装置5は、通信装置3から送信された信号を受信する受信部6と、受信部6により受信された信号を復号する実施の形態2で述べた復号回路2とを備える。
図15は、実施の形態6にかかる通信システムの構成例を示す図である。図15に示すように、本実施の形態の通信システムは、送信装置である通信装置3と、受信装置である通信装置5とを備える。通信装置3は、実施の形態1で述べた符号化回路1と、符号化回路1により符号化された結果を無線信号として送信する送信部4とを備える。通信装置5は、通信装置3から送信された信号を受信する受信部6と、受信部6により受信された信号を復号する実施の形態2で述べた復号回路2とを備える。
本実施の形態の通信装置3および通信装置5は、実施の形態1および実施の形態2で述べたように、polar符号の符号長を動的に変更可能である。このため、通信装置3と通信装置5との間で送受信するデータのデータ長に応じて、符号長を変更することが可能である。このため、通信装置3および通信装置5は、パンクチャリング、ショートニングなどの複雑度の高いレート変換処理を省くことができるため、送受信処理の負荷および処理遅延を防ぐことができる。したがって、実施の形態1の符号回路1および実施の形態2の復号回路2を用いることで、最大符号長のpolar符号の符号化回路および復号回路を用いてパンクチャリング、ショートニング等のレート変換処理を行う場合に比べて、復号遅延を短縮することができる。また、実施の形態1および実施の形態2で述べたように、1つの処理回路で複数の符号長に対応可能であるため、回路規模の増大を抑制することができる。
通信装置3の符号化回路1が実施の形態1の制御回路で実現される場合、例えば、通信装置3は第1符号長のpolar符号の符号化を行うことが可能なpolar符号化部12であるpolar符号化回路を備える。そして、制御回路が、入力信号に対して、フローズンビットを付加することによる第1系列の生成と、符号化対象のpolar符号の符号長であって第1符号長以下の第2符号長と第1符号長との比に応じた配置規則にしたがって、第1系列を第1符号長の第2系列内に配置することによる、第2系列の生成と、第2系列のpolar符号化回路への入力と、第2系列のpolar符号化回路による符号化結果に基づく間引き処理による第2符号長の符号語の生成と、を通信装置3に実行させる。また、これら処理がソフトウェアにより実現される場合、通信装置を制御するためのプログラムは、これらの処理を通信装置3に実行させる。
図15に示した例では、通信装置3が送信装置であり、通信装置5が受信装置である例を示しているが、通信装置3および通信装置5の両方が送信装置および受信装置の機能を有していてもよい。また、図15に示した例では、通信システムとして無線通信システムを例示しているが、これに限らず、通信装置3および通信装置5は有線通信を行ってもよい。
また、図15では、通信装置3が実施の形態1の符号化回路1を備え、通信装置5が実施の形態2の復号回路2を備える例を例示しているが、通信装置3が符号化回路1の代わりに実施の形態3の符号化回路1aを備え、通信装置5が復号回路2の代わりに復号回路2aを備えてもよい。また、通信装置3が、符号化回路1と符号化回路1aを備え、polar符号とsystematic polar符号とを切り替えて送信し、通信装置5が復号回路2の代わりに復号回路2bを備えてもよい。
また、本実施の形態では、実施の形態1,3の符号化回路1,1a、実施の形態2,4,5の復号回路2,2a,2bを通信システムに適用する例を説明したが、これらの適用先は通信システムに限定されない。実施の形態1,3の符号化回路1,1a、実施の形態2,4,5の復号回路2,2a,2bは、たとえば、HDD(Hard Disk Drive)、Flashメモリなどの記憶手段における誤り訂正に適用されてもよいし、その他の技術に適用されてもよい。
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
1,1a 符号化回路、2,2a,2b 復号回路、3,5 通信装置、4 送信部、6 受信部、10 frozenビット付加部、11,900-0~900-n,23-0~23-n ビット配置変更部、12,22-0~22-n,81,901-0~901-n polar符号化部、13,82,902-0~902-n 間引き処理部、21 リスト処理部、24,110 制御部、25 復号ビット選択部、26 frozenビット除去部、30 尤度算出部、42 排他的論理和回路、80 frozenビット変換部、90,111 systematic polar符号処理部、112 信号選択部、200-0~200-n 第1尤度計算部、201-0,201-1 第2尤度計算部、202-0,202-1 第3尤度計算部、203,204 XOR計算部。
Claims (25)
- 第1符号長のpolar符号の符号化を行うことが可能な第1polar符号化部と、
入力信号に、フローズンビットを付加することにより第1系列を生成するフローズンビット付加部と、
符号化対象のpolar符号の符号長であって前記第1符号長以下の第2符号長と前記第1符号長との比に応じた配置規則にしたがって、前記第1系列を前記第1符号長の第2系列内に配置し、前記第2符号長が前記第1符号長未満の場合には、前記第2系列内の前記第1系列を配置した位置以外のビット位置のビット値を0とすることにより、前記第2系列を生成し、前記第2系列を前記第1polar符号化部へ入力するビット配置変更部と、
を備え、
前記第2系列の前記第1polar符号化部による符号化結果に基づく間引き処理により、前記第2符号長の符号語が生成されることを特徴とする符号化回路。 - 前記フローズンビット付加部は、前記第1系列のデータ長が前記第2符号長となるように、前記フローズンビットを付加することを特徴とする請求項1に記載の符号化回路。
- 前記ビット配置変更部は、前記第2符号長が前記第1符号長と等しい場合には、前記第1系列を前記第2系列として前記第1polar符号化部へ入力することを特徴とする請求項1または2に記載の符号化回路。
- 前記ビット配置変更部は、前記第2符号長が前記第1符号長未満の場合には、前記第1符号長を前記第2符号長で割った商の値ごとのビット位置に、前記第1系列のビット値を前記第2系列に配置することを特徴とする請求項1から3のいずれか1つに記載の符号化回路。
- 前記第2系列の前記第1polar符号化部による符号化結果から、連続するビット位置の前記第2符号長のビットを前記符号語として選択する間引き処理部、を備えることを特徴とする請求項4に記載の符号化回路。
- 前記polar符号は、systematic polar符号であり、
前記符号化回路は、
前記第2系列の前記第1polar符号化部による符号化結果に対して、前記フローズンビット付加部によって前記フローズンビットが付加された位置に対応するビットを前記フローズンビットに変換することにより第3系列を生成するフローズンビット変換部と、
前記第3系列をpolar符号化する第2polar符号化部と、
前記第2polar符号化部による符号化結果から、前記第2符号長の前記符号語を選択する間引き処理部と、
を備えることを特徴とする請求項1から4のいずれか1つに記載の符号化回路。 - 前記フローズンビット変換部は、前記第2系列の前記第1polar符号化部による符号化結果のうち、前記第2符号長の前記符号語に対応するビット系列に関して、前記フローズンビット付加部によって前記フローズンビットが付加されたビット位置のビット反転順の位置を前記フローズンビットに置き換えることを特徴とする請求項6に記載の符号化回路。
- 前記第2polar符号化部による符号化結果から、前記第1符号長を前記第2符号長で割った商の値ごとのビット位置の値を前記符号語として選択する間引き処理部、を備えることを特徴とする請求項6または7に記載の符号化回路。
- 第1符号長のpolar符号の尤度情報を算出可能であり、入力信号と復号途中結果に基づいて、前記第1符号長以下の第2符号長のpolar符号に対応する尤度情報を算出する尤度算出部と、
前記尤度算出部により算出された前記尤度情報を用いて、逐次復号によりビットごとに復号候補を選択する復号処理部と、
前記第2符号長と前記第1符号長との比に応じた配置規則にしたがって、前記復号処理部によって選択された前記復号候補を前記第1符号長の第1ビット系列内に配置することにより、前記第1ビット系列を生成する第1ビット配置変更部と、
前記第1ビット系列に対してpolar符号化を行い、前記尤度算出部へ前記復号途中結果として入力する第1polar符号化部と、
前記第2符号長に基づいて、前記第2符号長に応じた逐次復号を行うよう前記尤度算出部および前記復号処理部を制御する制御部と、
処理対象のデータ長の前記復号候補が前記復号処理部によって算出されると、前記復号候補を用いて復号ビットを復号結果として選択する復号ビット選択部と、
前記復号結果からフローズンビットを除去するフローズンビット除去部と、
を備えることを特徴とする復号回路。 - 前記第1符号長をNとし、log2Nをmとするとき、
前記尤度算出部は、
2つの第(i+1)尤度計算部と、
2つの前記第(i+1)尤度計算部により算出された尤度の前記排他的論理和の排他的論理和を算出する排他的論理和演算部と、
を備える第i尤度計算部を、i=1からi=m-1まで階層的に備えることを特徴とする請求項9に記載の復号回路。 - 前記制御部は、前記第2符号長に応じて、i=1からi=m-1までの前記第i尤度計算部のうち、前記第2符号長の前記尤度情報の計算に用いられない前記第i尤度計算部および前記排他的論理和演算部を停止させることを特徴とする請求項10に記載の復号回路。
- 前記処理対象のデータ長は、前記第2符号長であることを特徴とする請求項9から11のいずれか1つに記載の復号回路。
- 前記第1ビット配置変更部は、前記第2符号長が前記第1符号長未満の場合には、前記第1符号長を前記第2符号長で割った商の値ごとのビット位置に、前記復号処理部により選択された復号途中の復号候補を配置し、復号処理が行われていないビット位置のビット値を0とすることで、前記第1ビット系列を生成することを特徴とする請求項9から12のいずれか1つに記載の復号回路。
- 前記第1polar符号化部は、前記第1符号長のpolar符号化を行うことが可能であることを特徴とする請求項9から13のいずれか1つに記載の復号回路。
- 前記制御部は、前記復号処理部から通知される前記復号処理部の処理の進捗状況を表す情報に応じて、前記第1polar符号化部による符号化結果のうち前記尤度算出部が参照するビット位置を制御することを特徴とする請求項9から14のいずれか1つに記載の復号回路。
- 前記制御部は、前記復号処理部から通知される前記復号処理部の処理の進捗状況を表す情報に応じて、前記復号処理部へ前記復号処理部の処理対象が前記フローズンビットであるか否かを通知することを特徴とする請求項9から15のいずれか1つに記載の復号回路。
- 前記逐次復号は、リスト型逐次除去復号であり、
前記尤度算出部は、リスト数分の前記尤度情報を算出し、
前記復号処理部は、リスト数分の前記復号候補を選択し、リスト数分の前記復号候補の尤もらしさを示す情報を前記復号ビット選択部へ入力し、
前記復号ビット選択部は、前記尤もらしさを示す情報を用いて、前記復号ビットを選択することを特徴とする請求項9から16のいずれか1つに記載の復号回路。 - 前記逐次復号は、リスト型逐次除去復号であり、
前記入力信号はpolar符号化前に誤り検出のための冗長ビットが付加されており、
前記復号ビット選択部は、リスト数分の前記第2符号長の前記復号候補から、前記冗長ビットを用いて復号ビットを選択することを特徴とする請求項9から16のいずれか1つに記載の復号回路。 - 前記polar符号は、systematic polar符号であり、
前記復号回路は、
systematic polar符号の復号処理を行うsystematic polar処理部、
を備え、
前記systematic polar処理部は、
前記復号処理部により選択された前記第2符号長分の前記復号候補を、前記第1ビット配置変更部が前記復号候補を配置した位置と同じ位置に配置することにより前記第1符号長の第2ビット系列を生成する第2ビット配置変更部と、
前記第2ビット系列に対してpolar符号化を行う第2polar符号化部と、
前記第2polar符号化部による符号化結果から、前記第2符号長の符号語を選択する間引き処理部と、
を備えることを特徴とする請求項9から18のいずれか1つに記載の復号回路。 - 前記polar符号は、systematic polar符号または非systematicなpolar符号であり、
前記復号回路は、
systematic polar符号の復号処理を行うsystematic polar処理部と、
前記systematic polar処理部による処理結果と、前記復号処理部による処理結果とのいずれか一方を選択して前記復号ビット選択部へ出力する信号選択部と、
を備え、
前記systematic polar処理部は、
前記復号処理部により選択された前記第2符号長分の前記復号候補を、前記第1ビット配置変更部が前記復号候補を配置した位置と同じ位置に配置することにより前記第1符号長の第2ビット系列を生成する第2ビット配置変更部と、
前記第2ビット系列に対してpolar符号化を行う第2polar符号化部と、
前記第2polar符号化部による符号化結果から、前記第2符号長の符号語を選択する間引き処理部と、
を備え、
前記制御部は、systematic polar符号の復号を行う場合には、前記信号選択部に前記systematic polar処理部による処理結果を選択するよう指示し、非systematicなpolar符号の復号を行う場合には、前記信号選択部に前記復号処理部による処理結果を選択するよう指示することを特徴とする請求項9から18のいずれか1つに記載の復号回路。 - 第1符号長のpolar符号の符号化を行うことが可能なpolar符号化回路を備える通信装置を制御するための制御回路であって、
入力信号に対して、フローズンビットを付加することによる第1系列の生成と、
符号化対象のpolar符号の符号長であって前記第1符号長以下の第2符号長と前記第1符号長との比に応じた配置規則にしたがって、前記第1系列を前記第1符号長の第2系列内に配置し、前記第2符号長が前記第1符号長未満の場合には、前記第2系列内の前記第1系列を配置した位置以外のビット位置のビット値を0とすることによる、前記第2系列の生成と、
前記第2系列の前記polar符号化回路への入力と、
前記第2系列の前記polar符号化回路による符号化結果に基づく間引き処理による前記第2符号長の符号語の生成と、
を前記通信装置に実行させることを特徴とする制御回路。 - 第1符号長のpolar符号の符号化を行うことが可能なpolar符号化回路を備える通信装置を制御するためのプログラムを記憶する記憶媒体であって、
前記プログラムは、
入力信号に対して、フローズンビットを付加することによる第1系列の生成と、
符号化対象のpolar符号の符号長であって前記第1符号長以下の第2符号長と前記第1符号長との比に応じた配置規則にしたがって、前記第1系列を前記第1符号長の第2系列内に配置し、前記第2符号長が前記第1符号長未満の場合には、前記第2系列内の前記第1系列を配置した位置以外のビット位置のビット値を0とすることによる、前記第2系列の生成と、
前記第2系列の前記polar符号化回路への入力と、
前記第2系列の前記polar符号化回路による符号化結果に基づく間引き処理による前記第2符号長の符号語の生成と、
を前記通信装置に実行させることを特徴とする記憶媒体。 - 第1符号長のpolar符号の尤度情報を算出可能であり、入力信号と復号途中結果に基づいて、前記第1符号長以下の第2符号長のpolar符号に対応する尤度情報を算出する尤度計算ステップと、
前記尤度計算ステップにより算出された前記尤度情報を用いて、逐次ビットごとの復号候補を選択する復号候補選択ステップと、
前記第2符号長と前記第1符号長との比に応じた配置規則にしたがって、前記復号候補選択ステップによって選択された前記復号候補を前記第1符号長の第1ビット系列内に配置することにより、前記第1ビット系列を生成する第1ビット配置変更ステップと、
前記第1ビット系列に対してpolar符号化を行い、前記尤度計算ステップへ前記復号途中結果として入力する第1polar符号化ステップと、
前記第2符号長に基づいて、前記第2符号長に応じた逐次復号を行うよう前記尤度計算ステップおよび前記復号候補選択ステップを制御する制御ステップと、
計算対象のデータ長の前記復号候補が前記復号候補選択ステップによって算出されると、前記復号候補を用いて復号ビットを復号結果として選択する復号ビット選択ステップと、
前記復号結果からフローズンビットを除去するフローズンビット除去ステップと、
を含むことを特徴とする復号方法。 - 前記polar符号は、systematic polar符号であり、
前記復号候補選択ステップにより選択された前記第2符号長分の前記復号候補を、前記第1ビット配置変更ステップで前記復号候補を配置した位置と同じ位置に配置することにより前記第1符号長の第2ビット系列を生成する第2ビット配置変更ステップと、
前記第2ビット系列に対してpolar符号化を行う第2polar符号化ステップと、
前記第2polar符号化ステップによる符号化結果から、前記第2符号長の符号語を選択する間引き処理ステップと、
を含むことを特徴とする請求項23に記載の復号方法。 - 前記polar符号は、systematic polar符号または非systematicなpolar符号であり、
systematic polar符号の復号を行う場合に、systematic polar符号の復号処理を行うsystematic polar処理ステップと、
systematic polar符号の復号を行う場合に、前記systematic polar処理ステップの処理結果を前記復号ビット選択ステップへ入力し、非systematicなpolar符号の復号を行う場合には、前記復号候補選択ステップにより選択された前記復号候補を前記復号ビット選択ステップへ入力する選択ステップと、
を含み、
前記systematic polar処理ステップは、
前記復号候補選択ステップにより選択された前記第2符号長分の前記復号候補を、前記第1ビット配置変更ステップで前記復号候補を配置した位置と同じ位置に配置することにより前記第1符号長の第2ビット系列を生成する第2ビット配置変更ステップと、
前記第2ビット系列に対してpolar符号化を行う第2polar符号化ステップと、
前記第2polar符号化ステップによる符号化結果から、前記第2符号長の符号語を選択する間引き処理ステップと、
を含むことを特徴とする請求項23に記載の復号方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022515960A JP7183479B2 (ja) | 2020-04-28 | 2020-04-28 | 符号化回路、復号回路、制御回路、記憶媒体および復号方法 |
DE112020006781.5T DE112020006781T5 (de) | 2020-04-28 | 2020-04-28 | Codierungsschaltung, decodierungsschaltung, steuerschaltung, speichermedium und decodierungsverfahren |
CN202080099964.XA CN115485976A (zh) | 2020-04-28 | 2020-04-28 | 编码电路、解码电路、控制电路、存储介质以及解码方法 |
PCT/JP2020/018192 WO2021220441A1 (ja) | 2020-04-28 | 2020-04-28 | 符号化回路、復号回路、制御回路、記憶媒体および復号方法 |
US17/888,059 US11888500B2 (en) | 2020-04-28 | 2022-08-15 | Encoding circuit, decoding circuit, and decoding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/018192 WO2021220441A1 (ja) | 2020-04-28 | 2020-04-28 | 符号化回路、復号回路、制御回路、記憶媒体および復号方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/888,059 Continuation US11888500B2 (en) | 2020-04-28 | 2022-08-15 | Encoding circuit, decoding circuit, and decoding method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021220441A1 true WO2021220441A1 (ja) | 2021-11-04 |
Family
ID=78331868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/018192 WO2021220441A1 (ja) | 2020-04-28 | 2020-04-28 | 符号化回路、復号回路、制御回路、記憶媒体および復号方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11888500B2 (ja) |
JP (1) | JP7183479B2 (ja) |
CN (1) | CN115485976A (ja) |
DE (1) | DE112020006781T5 (ja) |
WO (1) | WO2021220441A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023139782A1 (ja) * | 2022-01-24 | 2023-07-27 | 三菱電機株式会社 | 復号装置、制御回路、記憶媒体および復号方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3813278B1 (en) * | 2019-10-22 | 2023-03-01 | Mitsubishi Electric R&D Centre Europe B.V. | Multilevel polar-coded modulation transmitting and receiving methods and devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170331590A1 (en) * | 2016-05-13 | 2017-11-16 | Mediatek Inc. | Coded bit puncturing for polar codes |
JP2018512784A (ja) * | 2015-03-10 | 2018-05-17 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 情報を伝送するための方法および通信デバイス |
US20190181983A1 (en) * | 2016-08-10 | 2019-06-13 | Idac Holdings, Inc. | Advanced polar codes for next generation wireless communication systems |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9176927B2 (en) * | 2011-11-08 | 2015-11-03 | The Royal Institution For The Advancement Of Learning/Mcgill University | Methods and systems for decoding polar codes |
DE102014113340A1 (de) | 2013-09-16 | 2015-03-19 | Lsi Corporation | Reduzierte Polarkodes |
US10305514B2 (en) | 2016-02-04 | 2019-05-28 | The Royal Institution For The Advancement Of Learning/Mcgill University | Multi-mode unrolled polar decoders |
US10361728B2 (en) * | 2016-06-17 | 2019-07-23 | Huawei Technologies Co., Ltd. | Multiple-symbol combination based decoding for general polar codes |
US10447435B2 (en) * | 2016-08-19 | 2019-10-15 | Huawei Technologies Co., Ltd. | Reduced-stage polar decoding |
CN109245857B (zh) | 2016-09-14 | 2019-09-20 | 华为技术有限公司 | 信息传输的方法、发送端设备和接收端设备 |
US10554223B2 (en) * | 2016-12-23 | 2020-02-04 | Huawei Technologies Co., Ltd. | Apparatus and methods for polar code construction |
US10313056B2 (en) * | 2017-02-06 | 2019-06-04 | Mitsubishi Electric Research Laboratories, Inc. | Irregular polar code encoding |
CN115549856A (zh) | 2017-03-22 | 2022-12-30 | Idac控股公司 | 用于极性编码系统、过程及信令的子块式交织 |
EP3695515A1 (en) * | 2017-10-10 | 2020-08-19 | Telefonaktiebolaget LM Ericsson (Publ) | Simple parity-check bit computation for polar codes |
US10812107B2 (en) * | 2018-01-19 | 2020-10-20 | Huawei Technologies Co., Ltd. | Apparatus and methods for polar code construction and bit position allocation |
US10666392B2 (en) * | 2018-03-29 | 2020-05-26 | Huawei Technologies Co., Ltd. | Apparatus and methods for rate matching in polar coding |
-
2020
- 2020-04-28 DE DE112020006781.5T patent/DE112020006781T5/de active Pending
- 2020-04-28 CN CN202080099964.XA patent/CN115485976A/zh active Pending
- 2020-04-28 JP JP2022515960A patent/JP7183479B2/ja active Active
- 2020-04-28 WO PCT/JP2020/018192 patent/WO2021220441A1/ja active Application Filing
-
2022
- 2022-08-15 US US17/888,059 patent/US11888500B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018512784A (ja) * | 2015-03-10 | 2018-05-17 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 情報を伝送するための方法および通信デバイス |
US20170331590A1 (en) * | 2016-05-13 | 2017-11-16 | Mediatek Inc. | Coded bit puncturing for polar codes |
US20190181983A1 (en) * | 2016-08-10 | 2019-06-13 | Idac Holdings, Inc. | Advanced polar codes for next generation wireless communication systems |
Non-Patent Citations (1)
Title |
---|
NTT DOCOMO: "Discussion on construction of Polar codes", 3GPP DRAFT; R1-1702850_DISCUSSION_CONSTRUCTION_POLAR, 3RD GENERATION PARTNERSHIP PROJECT (3GPP), MOBILE COMPETENCE CENTRE ; 650, ROUTE DES LUCIOLES ; F-06921 SOPHIA-ANTIPOLIS CEDEX ; FRANCE, vol. RAN WG1, no. Athens, Greece; 20170213 - 20170217, 12 February 2017 (2017-02-12), Mobile Competence Centre ; 650, route des Lucioles ; F-06921 Sophia-Antipolis Cedex ; France , XP051209995 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023139782A1 (ja) * | 2022-01-24 | 2023-07-27 | 三菱電機株式会社 | 復号装置、制御回路、記憶媒体および復号方法 |
JP7523704B2 (ja) | 2022-01-24 | 2024-07-26 | 三菱電機株式会社 | 復号装置 |
Also Published As
Publication number | Publication date |
---|---|
DE112020006781T5 (de) | 2023-01-12 |
JPWO2021220441A1 (ja) | 2021-11-04 |
US20220393701A1 (en) | 2022-12-08 |
CN115485976A (zh) | 2022-12-16 |
JP7183479B2 (ja) | 2022-12-05 |
US11888500B2 (en) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10326478B2 (en) | Apparatus and method for encoding and decoding data in twisted polar code | |
US10673468B2 (en) | Concatenated and sliding-window polar coding | |
KR102347823B1 (ko) | 구조화된 ldpc의 부호화 및 복호화 방법 및 장치 | |
JP5312484B2 (ja) | 符号化方法、符号化器及び復号器 | |
US11888500B2 (en) | Encoding circuit, decoding circuit, and decoding method | |
JP7004008B2 (ja) | 通信路分極を用いた誤り訂正符号化方法および装置、復号方法および装置 | |
US8880976B2 (en) | Method and apparatus for encoding LBA information into the parity of a LDPC system | |
KR20130029080A (ko) | 소거 없는 플래시 메모리의 다중 프로그래밍 | |
KR20080035585A (ko) | Ldpc 코드용 디코더 및 ldpc 디코딩 방법 | |
CN109644006B (zh) | 编码数据和解码数据的装置及方法 | |
JP2008526086A (ja) | チャネルコードを用いた復号化装置及び方法 | |
KR100550101B1 (ko) | 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법 | |
US11539380B2 (en) | Decoding device, decoding method, control circuit, and storage medium | |
KR101370903B1 (ko) | Ldpc 코드를 이용한 부호화 및 복호화 방법 | |
WO2021118395A1 (en) | Spatially coupled forward error correction encoding method and device using generalized error locating codes as component codes | |
CN110113058B (zh) | 编译码方法、装置、设备及计算机可读存储介质 | |
US7181677B1 (en) | System and method for producing data and ECC code words using a high rate restricted-symbol code | |
JP5523064B2 (ja) | 復号装置及び方法 | |
CN116530022A (zh) | 用于乘积极化码编码和解码的设备 | |
KR101268061B1 (ko) | 다상-누산 코드를 이용한 부호화 방법 및 복호화 방법 | |
JP7523704B2 (ja) | 復号装置 | |
KR101405961B1 (ko) | Ldpc 코드를 이용한 부호화/복호화 방법 | |
안형배 | Partially Information Coupled Polar Codes with Coupling Depth J | |
KR101221062B1 (ko) | 가변 usc 부호를 이용한 부호화 및 복호화 방법 | |
WO2019234923A1 (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: 20933228 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022515960 Country of ref document: JP Kind code of ref document: A |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20933228 Country of ref document: EP Kind code of ref document: A1 |