WO2018201377A1 - A unified error correction and error detection code generator - Google Patents

A unified error correction and error detection code generator Download PDF

Info

Publication number
WO2018201377A1
WO2018201377A1 PCT/CN2017/083003 CN2017083003W WO2018201377A1 WO 2018201377 A1 WO2018201377 A1 WO 2018201377A1 CN 2017083003 W CN2017083003 W CN 2017083003W WO 2018201377 A1 WO2018201377 A1 WO 2018201377A1
Authority
WO
WIPO (PCT)
Prior art keywords
bits
addon
information bits
information
generating means
Prior art date
Application number
PCT/CN2017/083003
Other languages
French (fr)
Inventor
Keeth Saliya JAYASINGHE
Yu Chen
Dongyang DU
Jie Chen
Original Assignee
Nokia Technologies Oy
Alcatel-Lucent Shanghai Bell Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Technologies Oy, Alcatel-Lucent Shanghai Bell Co., Ltd. filed Critical Nokia Technologies Oy
Priority to PCT/CN2017/083003 priority Critical patent/WO2018201377A1/en
Priority to CN201780090309.6A priority patent/CN110603759B/en
Publication of WO2018201377A1 publication Critical patent/WO2018201377A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit

Definitions

  • the present invention relates to an apparatus, a method, and a computer program product related to error detection.
  • Polar code proposed in [1] is decided to be used for 5G eMBB control channel and maybe also for mMTC, because it has a few advantages compared to the other candidate coding schemes, e.g. low complexity, capacity achieving.
  • polar codes are constructed based on channel polarization principle. It refers to the fact that a set of identical channels (i.e., many uses of the same channel over time) can be converted into a set of channels that consists only of almost perfect channels or almost useless channels. This conversion can be done in a simple recursive manner. E.g., two identical copies of a binary-input channel P: X 1 ⁇ Y 1 are converted to two new channels and Since is a 1--1 transform, it follows that Some thought also shows that I (P 1 ) ⁇ I (P) ⁇ I (P 2 ) , i.e. P 1 is a worse channel than P, and P 2 is better. In that sense, the channel is polarized.
  • U i 0
  • a key aspect is to identify the locations of the data bits and frozen bits.
  • the inventors proposed a CRC distribution scheme for Polar code where the CRC bits are distributed inside the information bits to assist the Polar decoding.
  • the scheme was well received and it is considered to be a promising solution for Polar code for eMBB control channel. And it was listed as one of the alternatives in the meeting agreements.
  • ⁇ J CRC bits are provided (which may be used for error detection and may also be used to assist decoding and potentially for early termination)
  • - J may be different in DL and UL
  • - J may depend on the payload size in the UL (0 not precluded)
  • J’assistance bits are provided in reliable locations (which may be used to assist decoding and potentially for early termination)
  • n FAR 16 (at least for eMBB-related DCI)
  • n FAR 8 or 16 (at least for eMBB-related UCI; note that this applies for UL cases with CRC)
  • the J’ (and J”if any) bits may be CRC and/or PC and/or hash bits (downscope if possible)
  • J + J’+ J bits may be supported for error detection and error correction.
  • the J’+J” J * bits may also be named assistance bits, which describes that the bits may be used to improve the decoding performance, including decoding paths pruning, early termination.
  • assistance bits which describes that the bits may be used to improve the decoding performance, including decoding paths pruning, early termination.
  • Fig. 1 One straightforward implementation example is shown in Fig. 1.
  • the information bits are processed by a first module to generate the J’assistance bits, and then by a second module to generate the J”assistance bits, and then by the CRC module to generate the J CRC bits.
  • a permutation module so that the J’assistance bits are transmitted, by the polar encoding module, on the reliable subchannels and the J”bits are transmitted on the unreliable subchannels.
  • the same process may be followed to do tree pruning and error detection with these assistance bits. So this makes the encoding and decoding complex and may take a longer processing time.
  • Parity check bits do not follow any specific order. Hence, in the view of the inventors, they are useless when protecting a block of information bits. CRC is more suited for correcting/detecting an information block. Still, when comparing single CRC bit versus a first parity bit, it could appear the same. But, if one considers more than one parity bit, the other parity bits do not have any relation to the previous parity bit or information bits. In contrast, CRC bits may cover overlapping sets of information bits.
  • an apparatus comprising generating means comprising J registers and configured to generate J addon bits if K information bits are sequentially inputted into the generating means; retrieving means configured to retrieve J * addon bits from the J registers after at least one of the K information bits had been inputted into the generating means and before the K information bits are inputted into the generating means; constructing means configured to construct a codeblock comprising each of the K information bits, the J addon bits, and the J * addon bits, wherein each of the K information bits, the J addon bits, and the J * addon bits is at a respective predetermined position of the codeblock; encoding means configured to polar encode the codeblock.
  • the retrieving means may be configured to retrieve each of the J * addon bits from a respective predetermined register after a respective predetermined input number of the K information bits is inputted into the generating means, wherein each of the predetermined input numbers is smaller than K.
  • the respective predetermined registers may be the same for all of the J * addon bits.
  • the respective predetermined input numbers may be the same for all the J * addon bits.
  • Each of the J addon bits and the J * addon bits may be based on a different subset of the K information bits.
  • the retrieving means may be configured to retrieve each of the J addon bits and J * addon bits such that it is generated based on at least a predetermined number of information bits, wherein the predetermined number is equal to or larger than 2.
  • One of the J * addon bits may be based on m information bits; m ⁇ K; and the constructing means may be configured to arrange the one of the J * addon bits in the codeblock immediately before the first one of the m information bits, between the m information bits, or immediately after the m information bits.
  • the constructing means may comprise a permutating means configured to permutate at least two of the the J addon bits and the J * addon bits.
  • the J addon bits may be an error detection code, and the J * addon bits may be assistance bits.
  • the generating means may be a cyclic redundancy check generator and the J addon bits may be a cyclic redundancy check code.
  • a method comprising generating J addon bits if K information bits are sequentially inputted into a generating means comprising J registers; retrieving J * addon bits from the J registers after at least one of the K information bits had been inputted into the generating means and before the K information bits are inputted into the generating means; constructing a codeblock comprising each of the K information bits, the J addon bits, and the J * addon bits, wherein each of the K information bits, the J addon bits, and the J * addon bits is at a respective predetermined position of the codeblock; polar encoding the codeblock.
  • the retrieving may comprise retrieving each of the J * addon bits from a respective predetermined register after a respective predetermined input number of the K information bits is inputted into the generating means, wherein each of the predetermined input numbers is smaller than K.
  • the respective predetermined registers may be the same for all of the J * addon bits.
  • the respective predetermined input numbers may be the same for all the J * addon bits.
  • Each of the J addon bits and the J * addon bits may be based on a different subset of the K information bits.
  • the retrieving may comprise retrieving each of the J addon bits and J * addon bits such that it is generated based on at least a predetermined number of information bits, wherein the predetermined number is equal to or larger than 2.
  • One of the J * addon bits may be based on m information bits; m ⁇ K; and the constructing may comprise arranging the one of the J * addon bits in the codeblock immediately before the first one of the m information bits, between the m information bits, or immediately after the m information bits.
  • the constructing may comprise permutating at least two of the the J addon bits and the J * addon bits.
  • the J addon bits may be an error detection code, and the J * addon bits may be assistance bits.
  • the generating means may be a cyclic redundancy check generator and the J addon bits may be a cyclic redundancy check code.
  • the method may be a method of coding.
  • a computer program product comprising a set of instructions which, when executed on an apparatus, is configured to cause the apparatus to carry out the method according to the second aspect.
  • the computer program product may be embodied as a computer-readable medium or directly Ioadable into a computer.
  • Fig. 1 shows an encoding unit
  • Fig. 2 shows a CRC generator included in some embodiments of the invention
  • Fig. 3 shows an addon bit generator used in variant 1 according to some embodiments of the invention
  • Fig. 4 shows a principle of addon bit generation and placing of variant 2 according to some embodiments of the invention
  • Fig. 5 shows an addon bit generator used in variant 3 according to some embodiments of the invention
  • Fig. 6 shows a principle of addon bit generation and placing of variant 3 according to some embodiments of the invention
  • Fig. 7 shows a CRC generator corresponding to x 3 +x 2 +1 included in some embodiments of the invention
  • Fig. 8 shows a CCITT CRC-16 generator included in some embodiments of the invention.
  • Fig. 9 shows an apparatus according to an embodiment of the invention.
  • Fig. 10 shows a method according to an embodiment of the invention.
  • Fig. 11 shows an apparatus according to an embodiment of the invention.
  • the apparatus is configured to perform the corresponding method, although in some cases only the apparatus or only the method are described.
  • these J+J’+J”bits may be also named “addon bits” .
  • J’or J” may be 0.
  • the addon bits may be used for error detection and error correction in the decoding of the information bits after polar encoding.
  • a CRC generator is used to generate not only the J CRC bits, but also the J’and J”assistance bits. More precisely, a J bit CRC generator is used to generate all the error detection bits and error correction bits (addon bits) . Part of these addon bits (including J CRC bits, J’+J”assistance bits) are obtained from the shift registers when all the information bits are input into it, similarly to the conventional CRC generation, and part of these addon bits are generated from a respective intermediate value of the shift registers, i.e. when only part of the information bits are inputted into the CRC generator.
  • intermediate output or “intermediate value” means a value of the respective register when at least one of the information bits is inputted into the CRC generator and before all the information bits of the information block are input into the CRC generator.
  • Fig. 2 The concept of a CRC generator used in some embodiments of the invention is shown in Fig. 2.
  • the information bits are inputted sequentially into the shift registers. Between some of the shift registers, there is a respective XOR operator where the value of the preceding register is added to the value of the last register (feedback) . At any time of the shifting operation the values in the registers may be generated by a different number of information bits, and these values depend on the number of XOR operators and the consecutive registers between two XOR operators. “Adding bits” means applying an XOR operation on the bits (i.e., disregarding overflow) .
  • Variant 1 All the addon bits are generated on the fly and no permutation is used
  • the subchannel indices of the polar encoder are sorted by their reliability ⁇ q0, q1, q2, ..., qk ⁇ .
  • the index indicates the reliability from high to Iow.
  • the subchanels with high reliability are those at the end of the polar code input and the unreliable subchannels are generally at the beginning, though some reliable subchannels and unreliable subchannels could be interlaced.
  • the number of J’and J”assistance bits to be generated and the subchannels for their transmission may be obtained by some algorithm or based on a specification. Some examples are given later.
  • the subchannel indices for the J’assistance bits may be: ⁇ IR 0 , IR 1 , ...IR J’-1 ⁇
  • the indices for the J”assistance bits are ⁇ IU 0 , IU 1 , ...IU J”-1 ⁇
  • IR i denotes a reliable subchannel
  • IU i denotes an unreliable subchannel.
  • the J CRC bits may follow the information bits and the (potentially interlaced) assistance bits.
  • Generating and placing the addon bits into the “correct” subchannels may be done as follows: The subchannels are filled one after the other, substantially in parallel with inputting the information bits into the CRC generator. This is called “on the fly” . If the subchannel index of the subchannel to be filled indicates that the subchannel carries an information bit, fill the information bit in it. If the subchannel index of the subchannel to be filled indicates that the subchannel carries a J’type of assistance bit, take the value of one of the shift registers and fill it in the respective subchannel. If the subchannel index of the subchannel to be filled indicates that the subchannel carries a J”type of assistance bit, take the value of one of the shift registers and fill it in the respective subchannel.
  • One example of such a register is the one just after an XOR operator.
  • Another example is using different registers for subsequent assistance bits. For example, wherein the register for a subsequent assistance bit is the next register just after the previous register. If needed, this may be done in a cyclic manner.
  • a fixed shift register e.g. the first one, is used to generate all the assistance bits. Duplication of information should be avoided when selecting the registers for generating the assistance bits, i.e., each of the assistance bits should be based on a different combination of the information bits.
  • at least one information bit should be inputted into the CRC register between two assistance bits.
  • the value of the shift registers may be taken as the J CRC bits.
  • part or all of the J CRC bits may be generated similarly on the fly if the CRC bits are interlaced with the information bits. That is, part or all of the J CRC may not be obtained as the final values of the shift registers when all information bits are inputted. This may be very useful to satisfy the early termination requirement. In this case, part or all of the J’+J”-J * assistance bits may be obtained when all the information bits are inputted into the CRC register.
  • Fig. 3 shows how the CRC generator of variant 1 generates the J CRC bits, the J’assistance bits, and the J”assistance bits.
  • Variant 2 is based on variant 1.
  • the assistance bits are generated only after B information bits (B>0) were inputted into the CRC generator.
  • the assistance bits are generated in the same manner as in variant 1 by looking up the subchannel index.
  • the first B information bits are transmitted after the K-B information bits where there are totally K information bits to be transmitted.
  • the CRC bits or part of the CRC bits are transmitted after the first B information bits.
  • the assistance bits are generated when the shift registers have enough feedbacks. Namely, each XOR operation results in a feedback, and hence the value of some of the shift registers are the binary sum of multiple information bits. When there are enough feedbacks, one assistance bit may link to multiple information bits, providing better error correction and error detection capability.
  • Variant 3 All the addon bits are generated on the fly with real permutation
  • the J’and J”assistance bits and the CRC bits are all generated by the CRC generator, similar to variants 1 and 2. Then, a permutation is performed to achieve better flexibility (see Fig. 5) .
  • some of the J CRC bits are interlaced in the information bits, too. Thus, only Jx (Jx ⁇ J) CRC bits are appended.
  • Some/all the CRC bits may be transmitted forward to better support early termination.
  • the information bits related to a specific CRC bit may be transmitted forward so that the checking can be performed for that CRC bit early.
  • the related information bits for the J’assistance bits which are transmitted on the reliable subchannels may be placed on the reliable or unreliable subchannels to achieve better performance in terms of error detection and error correction. If used for error detection, it is found placing these assistance bits on the reliable subchannels may achieve better performance.
  • the related information bits for the J”assistance bits which are transmitted on the unreliable subchannels may be placed on the reliable or unreliable subchannels to achieve better performance in terms of error detection and error correction. If used for error correction, it is found placing these assistance bits on the unreliable subchannel may achieve better performance.
  • the better flexibility of this variant also includes that a ratio of the number of related information bits to the number of assistance bits is controllable.
  • the maximum number of information bits related to an assistance bit is determined by the number of feedbacks performed. The reason is that when the number of inputted information bits exceeds the number of shift registers, the mentioned feedback happens. So with this scheme, arbitrary number of summed information bits based on the assistance bit to be generated can be obtained as long as there are information bits yet to be processed.
  • An example of a shift register based CRC generator can be found in Fig. 2.
  • the assistance bits are obtained by multiple shift registers at the same time.
  • One example of the specific register is the register just after an XOR operator.
  • the registers and K 1 , K 2 , .. K j’ values are selected to avoid duplication in the assistance bits. l.e., two assistance bits should not be based on the same combination of information bits.
  • the assistance bits may be selected such that the number of information bits involved in the XOR operation exceeds a specific threshold.
  • the assistance bits may be taken from the first J’or J”shift registers, or from the registers starting from that register which has the maximum number information bits involved in the XOR operation.
  • the receiver may use a CRC detector corresponding to the CRC generator.
  • the same assistance bit will be generated when the decoded information bits are inputted it.
  • the receiver can compare the received assistance bit (s) and the locally generated bit (s) to check if the path is correct.
  • the paths that do not pass the CRC bit check will be given a penalty of any real number.
  • the penalty value may be ⁇ 1 3 5 15, ⁇ .
  • Penalty is a value used to alter the path metric. A path is considered to be more unreliable the higher the penalty is.
  • a penalty may be given this corresponding value to reduce its path metric. Paths with lower path metric are easier to be dropped during decoding.
  • the above-mentioned operations and parameters may be known by both the transmitter and the receiver (e.g. defined in the 3GPP specifications) , or they could also be configured by signaling, e.g. RRC signaling, so that they are known by the transmitter and the receiver.
  • signaling e.g. RRC signaling
  • J 16 (16 bit CRC) for downlink and 8 (8 bit CRC) for uplink.
  • J’ may be 3 (3 assistance bits on reliable channels)
  • J” may be 2 (2 bits on unreliable channels) .
  • Embodiment 1 is a diagrammatic representation of Embodiment 1:
  • a CRC generator corresponding to x 3 +x 2 +1 is used.
  • 3 assistance bits are to be generated.
  • a similar method may be used.
  • One scheme to generate the 3 assistance bits is based on the number of inputted information bits.
  • the assistance bits are obtained as the value of the first register R1 when 4, 6, and 8 information bits are inputted, respectively.
  • c 1 b 1 +b 2 +b 3 +b 6 (value of the second register R2 when 8 information bits b 0 to b 7 are inputted)
  • c 2 b 1 +b 3 +b 4 +b 5 (value of the third register R3 when 8 information bits b 0 to b7 are inputted)
  • Embodiment 2 is a diagrammatic representation of Embodiment 1:
  • CCITT CRC-16 generator shown in Fig. 3 is used. It comprises 16 registers denoted by R0 ⁇ R15, and three XOR operators.
  • Information bits [b n-1 , b n-2 , ..., b 2 , b 1 , b 0 ] are to be processed.
  • the information bits are sent into the CRC generator one by one based on the ascending order or its index.
  • the 16 CRC bits are obtained when all the n information bits are input into the generator, by taking out of the register values.
  • the number of assistance bits J’ 4.
  • the assistance bits are obtained by taking the value of the register R5 when 18, 19, 20, 21 information bits are inputted into the CRC generator, respectively. Then the four assistance bits are:
  • the assistance bits are transmitted after a permutation so that they follow their corresponding information bits.
  • the transmission sequence may be:
  • Fig. 4 shows an apparatus according to an embodiment of the invention.
  • the apparatus may be an encoding unit of an eNodeB or a UE or an element thereof.
  • Fig. 5 shows a method according to an embodiment of the invention.
  • the apparatus according to Fig. 4 may perform the method of Fig. 5 but is not limited to this method.
  • the method of Fig. 5 may be performed by the apparatus of Fig. 4 but is not limited to being performed by this apparatus.
  • the apparatus comprises generating means 10, retrieving means 20, constructing means 30, and encoding means 40.
  • Each of the generating means 10, retrieving means 20, constructing means 30, and encoding means 40 may be a generating processor, retrieving processor, constructing processor, and encoding processor, respectively.
  • Each of the generating means 10, retrieving means 20, constructing means 30, and encoding means 40 may be a generator, retriever, constructor, and encoder, respectively.
  • the generating means 10 comprises J registers. It may consist of J registers.
  • the generating means 10 generates J addon bits (e.g. an error detection code such as a CRC code) of J bits if K information bits are sequentially inputted into the generating means 10 (S10) .
  • the K information bits may be denoted as an information block.
  • the retrieving means 20 retrieves J * addon bits from the J registers after at least one of the K information bits had been inputted into the generating means 10 and before the K information bits are inputted into the generating means 10 (S20) . That is, the retrieving means 20 retrieves the J * addon bits as intermediate values of the registers.
  • J * may be predetermined.
  • the constructing means 30 constructs a codeblock comprising each of the K information bits, the J addon bits generated by the generating means 10 if the K information bits are inputted into the generating means 10, and the J * addon bits retrieved by the retrieving means 20 (S30) .
  • the constructing means 30 constructs the codeblock such that each of the K information bits, the J addon bits, and the J * addon bits is at a respective predetermined position of the codeblock.
  • the codeblock may consist of the K information bits, the J addon bits, and the J * addon bits.
  • Fig. 6 shows an apparatus according to an embodiment of the invention.
  • the apparatus comprises at least one processor 410, at least one memory 420 including computer program code, and the at least one processor 410, with the at least one memory 420 and the computer program code, being arranged to cause the apparatus to at least perform at least the method according to Fig. 5.
  • Some embodiments of the invention may be employed in 3GPP devices, e.g. in the encoding unit thereof. However, embodiments of the invention are not limited to 3GPP devices. They may be employed in any kind of devices where polar coding is employed.
  • Some embodiments of the invention may use another error detection code than CRC if this error detection code can generate intermediate values.
  • this error detection code can generate intermediate values.
  • any block code with Hamming distance t can detect t-1 errors.
  • An example are Hamming codes.
  • One piece of information may be transmitted in one or plural messages from one entity to another entity. Each of these messages may comprise further (different) pieces of information.
  • Names of network elements, protocols, and methods are based on current standards. In other versions or other technologies, the names of these network elements and/or protocols and/or methods may be different, as long as they provide a corresponding functionality.
  • each of the entities described in the present description may be based on a different hardware, or some or all of the entities may be based on the same hardware. It does not necessarily mean that they are based on different software. That is, each of the entities described in the present description may be based on different software, or some or all of the entities may be based on the same software.
  • Each of the entities described in the present description may be embodied in the cloud.
  • example embodiments of the present invention provide, for example, a base station such as a eNodeB, or a component such as a TX path or an encoding unit thereof, or a terminal such as a User Equipment or a MTC device, or a component such as a TX path or an encoding unit thereof, an apparatus embodying the same, a method for controlling and/or operating the same, and computer program (s) controlling and/or operating the same as well as mediums carrying such computer program (s) and forming computer program product (s) .
  • a base station such as a eNodeB
  • a component such as a TX path or an encoding unit thereof
  • a terminal such as a User Equipment or a MTC device
  • a component such as a TX path or an encoding unit thereof
  • Implementations of any of the above described blocks, apparatuses, systems, techniques or methods include, as non-limiting examples, implementations as hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

It is provided a method, comprising generating J addon bits if K information bits are sequentially inputted into a generating means comprising J registers; retrieving J*addon bits from the J registers after at least one of the K information bits had been inputted into the generating means and before the K information bits are inputted into the generating means; constructing a codeblock comprising each of the K information bits, the J addon bits, and the J*addon bits, wherein each of the K information bits, the J addon bits, and the J*addon bits is at a respective predetermined position of the codeblock; polar encoding the codeblock.

Description

A UNIFIED ERROR CORRECTION AND ERROR DETECTION CODE GENERATOR Field of the invention
The present invention relates to an apparatus, a method, and a computer program product related to error detection.
Abbreviations
3GPP       3rd Generation Partnership Project
5G         5th Generation
BLER       Block Error Ratio
CRC        Cyclic Redundancy Check
DCI        Downlink Control Information
DL         Downlink
eMBB       Enhanced Mobile Broadband
FAR        False Alarm Rate
mMTC       Massive MTC
MTC        Machine-type Communication
PC         Polar Coding
RAN        Radio Access Network
RRC        Radio Resource Control
TX         Transmit/Transmission
UCI        Uplink Control Information
UL         Uplink
XOR        Exclusive OR
Background of the invention
Polar code, proposed in [1] , is decided to be used for 5G eMBB control channel and maybe also for mMTC, because it has a few advantages compared to the other candidate coding schemes, e.g. low complexity, capacity achieving.
According to [2] , polar codes are constructed based on channel polarization principle. It refers to the fact that a set of identical channels (i.e., many uses of the same channel over time) can be converted into a set of channels that consists only of almost perfect channels or  almost useless channels. This conversion can be done in a simple recursive manner. E.g., two identical copies of a binary-input channel P: X1 → Y1 are converted to two new channels 
Figure PCTCN2017083003-appb-000001
and
Figure PCTCN2017083003-appb-000002
Since
Figure PCTCN2017083003-appb-000003
is a 1--1 transform, it follows that
Figure PCTCN2017083003-appb-000004
Figure PCTCN2017083003-appb-000005
Some thought also shows that I (P1) ≤ I (P) ≤ I (P2) , i.e. P1 is a worse channel than P, and P2 is better. In that sense, the channel is polarized. The idea is then to enhance polarization by applying the same 2-by-2 transform to P1 and P2 and so. Even further channel polarization can be attained by applying this procedure recursively, to get N = 8, N = 16, N = 32, ...distinct channels. When N is large, the bit-channels
Figure PCTCN2017083003-appb-000006
become either almost perfect, i.e. 
Figure PCTCN2017083003-appb-000007
Figure PCTCN2017083003-appb-000008
or almost useless, i.e. 
Figure PCTCN2017083003-appb-000009
Moreover, the fraction of almost perfect bit-channels approaches the channel capacity I (P) .
From an encoding perspective, polar coding consists of placing data bits Ui in the good bit-channel positions i, and fixed pre-known bits (similar to zero-padding, say Ui = 0) in the bad bit-channel positions i, the latter are also known as frozen bits. Thus, in polar code design, a key aspect is to identify the locations of the data bits and frozen bits.
The inventors proposed a CRC distribution scheme for Polar code where the CRC bits are distributed inside the information bits to assist the Polar decoding. The scheme was well received and it is considered to be a promising solution for Polar code for eMBB control channel. And it was listed as one of the alternatives in the meeting agreements.
It was agreed in 3GPP RAN1 88bis meeting that the inventors are going to evaluate the following variants:
Agreement:
· J CRC bits are provided (which may be used for error detection and may also be used to assist decoding and potentially for early termination)
- J may be different in DL and UL
- J may depend on the payload size in the UL (0 not precluded)
· In addition, J’assistance bits are provided in reliable locations (which may be used to assist decoding and potentially for early termination)
· J + J’<= the number of bits required to satisfy the FAR target (nFAR) + 6- Working assumption:
· For DL, nFAR = 16 (at least for eMBB-related DCI)
· For UL, nFAR = 8 or 16 (at least for eMBB-related UCI; note that this applies for UL cases with CRC)
· J’>0
· Working assumption: J”<=2 additional assistance bits are provided in unreliable locations (which may be used to assist decoding and potentially for early termination)
- Can be revisited in RAN1#89 if significant benefit is shown from a larger value of J”without undue complexity-companies are encouraged to additionally evaluate J”=8
· The J’ (and J”if any) bits may be CRC and/or PC and/or hash bits (downscope if possible)
· Placement of the J, J’ (and J”if any) assistance bits is for further study after the study of early termination techniques
- Appended?
- Distributed?
· evenly?
· unevenly?
And also:
Conclusion:
- Study until RAN1#89 polar code construction techniques to facilitate early termination (i.e. before decoding all the information bits) without degrading BLER performance or latency (especially considering the time for deinterleaving the information and assistance bits) compared to purely implementation based methods such as path-metric based pruning
○ e.g. assistance bits distributed in the codeword in such a way that error detection can be performed after partial decoding
○ Investigate performance, complexity and FAR impacts
○ Study of use of data-independent scrambling to facilitate early termination is also not precluded
So in general, a total of J + J’+ J”bits may be supported for error detection and error correction. The J’+J”=Jbits may also be named assistance bits, which describes that the bits may be used to improve the decoding performance, including decoding paths pruning, early termination. As for the implementation perspective, the encoding and decoding become quite complex.
One straightforward implementation example is shown in Fig. 1. The information bits are processed by a first module to generate the J’assistance bits, and then by a second module to generate the J”assistance bits, and then by the CRC module to generate the J CRC bits. After those modules follows a permutation module, so that the J’assistance bits are transmitted, by the polar encoding module, on the reliable subchannels and the J”bits are transmitted on the unreliable subchannels. The permutation module may also be used to distribute the J CRC bits inside the information bits to support early termination. If J”=0, the second module may be omitted.
The scheme of Fig. 1 needs three (for J”=0) or four different modules to generate the J+J”assistance bits and the J CRC bits. Hence, it is quite complex and lacks flexibility because the J’and J”assistance bits may be used by the receiver depending on the decoding algorithm.
Though the CRC generator module is quite mature, it needs two additional modules to generate J’and J”assistance bits. Because these assistance bits needs to be placed on reliable and unreliable subchannels, respectively, they are generated by different modules as a straightforward scheme.
At the decoder side, the same process may be followed to do tree pruning and error detection with these assistance bits. So this makes the encoding and decoding complex and may take a longer processing time.
One may also generate the assistance bits as normal parity check bits for the information bits in the normal order. It was considered that this method may achieve the same effect in a simpler manner.
Parity check bits do not follow any specific order. Hence, in the view of the inventors, they are useless when protecting a block of information bits. CRC is more suited for correcting/detecting an information block. Still, when comparing single CRC bit versus a first parity bit, it could appear the same. But, if one considers more than one parity bit, the other parity bits do not have any relation to the previous parity bit or information bits. In contrast, CRC bits may cover overlapping sets of information bits.
References
[1] E. Arikan, “Channel polarization: a method for constructing capacity achieving codes for symmetric binary-input memoryless channels, ” submitted for publication, Oct. 2007.
[2] 3GPP Tdoc R1-164184, “Polar code design for NR” , Intel Corporation
Summary of the invention
It is an object of the present invention to improve the prior art.
According to a first aspect of the invention, there is provided an apparatus, comprising generating means comprising J registers and configured to generate J addon bits if K information bits are sequentially inputted into the generating means; retrieving means configured to retrieve Jaddon bits from the J registers after at least one of the K information bits had been inputted into the generating means and before the K information bits are inputted into the generating means; constructing means configured to construct a codeblock comprising each of the K information bits, the J addon bits, and the Jaddon bits, wherein each of the K information bits, the J addon bits, and the Jaddon bits is at a respective predetermined position of the codeblock; encoding means configured to polar encode the codeblock.
The retrieving means may be configured to retrieve each of the Jaddon bits from a respective predetermined register after a respective predetermined input number of the K information bits is inputted into the generating means, wherein each of the predetermined input numbers is smaller than K.
The respective predetermined registers may be the same for all of the Jaddon bits.
The respective predetermined input numbers may be the same for all the Jaddon bits.
Each of the J addon bits and the Jaddon bits may be based on a different subset of the K information bits.
The retrieving means may be configured to retrieve each of the J addon bits and Jaddon bits such that it is generated based on at least a predetermined number of information bits, wherein the predetermined number is equal to or larger than 2.
One of the Jaddon bits may be based on m information bits; m<K; and the constructing means may be configured to arrange the one of the Jaddon bits in the codeblock immediately before the first one of the m information bits, between the m information bits, or immediately after the m information bits.
The constructing means may comprise a permutating means configured to permutate at least two of the the J addon bits and the Jaddon bits.
The J addon bits may be an error detection code, and the Jaddon bits may be assistance bits.
The generating means may be a cyclic redundancy check generator and the J addon bits may be a cyclic redundancy check code.
According to a second aspect of the invention, there is provided a method, comprising generating J addon bits if K information bits are sequentially inputted into a generating means comprising J registers; retrieving Jaddon bits from the J registers after at least one of the K information bits had been inputted into the generating means and before the K information bits are inputted into the generating means; constructing a codeblock comprising each of the K information bits, the J addon bits, and the Jaddon bits, wherein each of the K information bits, the J addon bits, and the Jaddon bits is at a respective predetermined position of the codeblock; polar encoding the codeblock.
The retrieving may comprise retrieving each of the Jaddon bits from a respective predetermined register after a respective predetermined input number of the K information bits is inputted into the generating means, wherein each of the predetermined input numbers is smaller than K.
The respective predetermined registers may be the same for all of the Jaddon bits.
The respective predetermined input numbers may be the same for all the Jaddon bits.
Each of the J addon bits and the Jaddon bits may be based on a different subset of the K information bits.
The retrieving may comprise retrieving each of the J addon bits and Jaddon bits such that it is generated based on at least a predetermined number of information bits, wherein the predetermined number is equal to or larger than 2.
One of the Jaddon bits may be based on m information bits; m<K; and the constructing may comprise arranging the one of the Jaddon bits in the codeblock immediately before the first one of the m information bits, between the m information bits, or immediately after the m information bits.
The constructing may comprise permutating at least two of the the J addon bits and the Jaddon bits.
The J addon bits may be an error detection code, and the Jaddon bits may be assistance bits.
The generating means may be a cyclic redundancy check generator and the J addon bits may be a cyclic redundancy check code.
The method may be a method of coding.
According to a third aspect of the invention, there is provided a computer program product comprising a set of instructions which, when executed on an apparatus, is configured to cause the apparatus to carry out the method according to the second aspect. The computer program product may be embodied as a computer-readable medium or directly Ioadable into a computer.
According to some embodiments of the invention, at least one of the following advantages may be achieved:
● Only one error detection code generator is needed;
● No modification of the error detection code generator is needed;
● Calculation of the error detection code and the assistance bits may need a minimum amount of iterations;
● Flexibility in the design of the error detection code generator to fulfill further requirements (e.g. no restriction on the selection of the polynomial of the CRC generator caused by the generation of the assistance bits) .
It is to be understood that any of the above modifications can be applied singly or in combination to the respective aspects to which they refer, unless they are explicitly stated as excluding alternatives.
Brief description of the drawings
Further details, features, objects, and advantages are apparent from the following detailed description of the preferred embodiments of the present invention which is to be taken in conjunction with the appended drawings, wherein:
Fig. 1 shows an encoding unit;
Fig. 2 shows a CRC generator included in some embodiments of the invention;
Fig. 3 shows an addon bit generator used in variant 1 according to some embodiments of the invention;
Fig. 4 shows a principle of addon bit generation and placing of variant 2 according to some embodiments of the invention;
Fig. 5 shows an addon bit generator used in variant 3 according to some embodiments of the invention;
Fig. 6 shows a principle of addon bit generation and placing of variant 3 according to some embodiments of the invention;
Fig. 7 shows a CRC generator corresponding to x3+x2+1 included in some embodiments of the invention;
Fig. 8 shows a CCITT CRC-16 generator included in some embodiments of the invention;
Fig. 9 shows an apparatus according to an embodiment of the invention;
Fig. 10 shows a method according to an embodiment of the invention; and
Fig. 11 shows an apparatus according to an embodiment of the invention.
Detailed description of certain embodiments
Herein below, certain embodiments of the present invention are described in detail with reference to the accompanying drawings, wherein the features of the embodiments can be freely combined with each other unless otherwise described. However, it is to be expressly understood that the description of certain embodiments is given by way of example only, and that it is by no way intended to be understood as limiting the invention to the disclosed details.
Moreover, it is to be understood that the apparatus is configured to perform the corresponding method, although in some cases only the apparatus or only the method are described.
According to some embodiments of the invention, one CRC generator is used to generate both the J CRC bits and the J’+J”=Jbits for the purpose of assisting the polar decoding. In the following, these J+J’+J”bits may be also named “addon bits” . J’or J”may be 0. The addon bits may be used for error detection and error correction in the decoding of the information bits after polar encoding.
According to some embodiments of the invention, a CRC generator is used to generate not only the J CRC bits, but also the J’and J”assistance bits. More precisely, a J bit CRC generator is used to generate all the error detection bits and error correction bits (addon bits) . Part of these addon bits (including J CRC bits, J’+J”assistance bits) are obtained from the shift registers when all the information bits are input into it, similarly to the conventional CRC generation, and part of these addon bits are generated from a respective intermediate value of the shift registers, i.e. when only part of the information bits are inputted into the CRC generator. Here, “intermediate output” or “intermediate value” means a value of the respective register when at least one of the information bits is inputted into the CRC generator and before all the information bits of the information block are input into the CRC generator.
The concept of a CRC generator used in some embodiments of the invention is shown in Fig. 2. The information bits are inputted sequentially into the shift registers. Between some of the shift registers, there is a respective XOR operator where the value of the preceding register is added to the value of the last register (feedback) . At any time of the shifting operation the values in the registers may be generated by a different number of information bits, and these values depend on the number of XOR operators and the consecutive registers between two XOR operators. “Adding bits” means applying an XOR operation on the bits (i.e., disregarding overflow) .
In the following, three variants of this concept are described.
Variant 1: All the addon bits are generated on the fly and no permutation is used
Suppose the subchannel indices of the polar encoder are sorted by their reliability {q0, q1, q2, ..., qk} . The index indicates the reliability from high to Iow. Usually the subchanels with high reliability are those at the end of the polar code input and the unreliable subchannels are generally at the beginning, though some reliable subchannels and unreliable subchannels could be interlaced. The number of J’and J”assistance bits to be generated and the subchannels for their transmission may be obtained by some algorithm or based on a specification. Some examples are given later. So, the subchannel indices for the J’assistance bits may be: {IR0, IR1, ...IRJ’-1} , and the indices for the J”assistance bits are {IU0, IU1, ...IUJ”-1} , wherein IRi denotes a reliable subchannel, and IUi denotes an unreliable subchannel. The J CRC bits may follow the information bits and the (potentially interlaced) assistance bits.
Generating and placing the addon bits into the “correct” subchannels may be done as follows: The subchannels are filled one after the other, substantially in parallel with inputting the information bits into the CRC generator. This is called “on the fly” . If the subchannel index of the subchannel to be filled indicates that the subchannel carries an information bit, fill the information bit in it. If the subchannel index of the subchannel to be filled indicates that the subchannel carries a J’type of assistance bit, take the value of one of the shift registers and fill it in the respective subchannel. If the subchannel index of the subchannel to be filled indicates that the subchannel carries a J”type of assistance bit, take the value of one of the shift registers and fill it in the respective subchannel.
Since the number of subchannels is larger than the number of information bits by the number of addon bits, in some embodiments, more than one subchannel are filled without inputting a further information bit into the CRC generator. For example, every time a subchannel is filled with an addon bit, the filling may proceed to the next subchannel without inputting a further information bit. As another example, after every qth information bit, 2 subchannels may be filled without inputting a further information bit into the CRC generator. q may depend on the number of assistance bits (J’+J”=J) and the number of information bits in the codeblock.
The shift registers to generate J’+J”=Jassistance bits may be different for different assistance bits. One example of such a register is the one just after an XOR operator. Another example is using different registers for subsequent assistance bits. For example, wherein the register for a subsequent assistance bit is the next register just after the previous register. If needed, this may be done in a cyclic manner. Another example is that a fixed shift register, e.g. the first one, is used to generate all the assistance bits. Duplication of  information should be avoided when selecting the registers for generating the assistance bits, i.e., each of the assistance bits should be based on a different combination of the information bits. Hence, in the last example (fixed shift register) , at least one information bit should be inputted into the CRC register between two assistance bits.
When all the information bits are passed into the CRC generator, the value of the shift registers may be taken as the J CRC bits.
In some embodiments, part or all of the J CRC bits may be generated similarly on the fly if the CRC bits are interlaced with the information bits. That is, part or all of the J CRC may not be obtained as the final values of the shift registers when all information bits are inputted. This may be very useful to satisfy the early termination requirement. In this case, part or all of the J’+J”-Jassistance bits may be obtained when all the information bits are inputted into the CRC register.
Fig. 3 shows how the CRC generator of variant 1 generates the J CRC bits, the J’assistance bits, and the J”assistance bits.
Variant 2: All the addon bits are generated on the fly with simple permutation
Variant 2 is based on variant 1. As shown in Fig. 4, the assistance bits are generated only after B information bits (B>0) were inputted into the CRC generator. The assistance bits are generated in the same manner as in variant 1 by looking up the subchannel index. And then the first B information bits are transmitted after the K-B information bits where there are totally K information bits to be transmitted. The CRC bits or part of the CRC bits are transmitted after the first B information bits.
The benefit of this variant is that the assistance bits are generated when the shift registers have enough feedbacks. Namely, each XOR operation results in a feedback, and hence the value of some of the shift registers are the binary sum of multiple information bits. When there are enough feedbacks, one assistance bit may link to multiple information bits, providing better error correction and error detection capability.
Variant 3: All the addon bits are generated on the fly with real permutation
In variant 3, the J’and J”assistance bits and the CRC bits are all generated by the CRC generator, similar to variants 1 and 2. Then, a permutation is performed to achieve better flexibility (see Fig. 5) . As shown in Fig. 6, first and second line, based on the K information bits, J’+J”=Jassistance bits and J CRC bits are generated on the fly, wherein the Jassistance bits may be interlaced between the information bits, and the J CRC bits are appended. Then, this bit sequence is permutated. E.g., as shown in the third line of Fig. 6, some of the J CRC bits are interlaced in the information bits, too. Thus, only Jx (Jx<J) CRC bits are appended.
By the permutation, additional operations and feature may be supported:
● Some/all the CRC bits may be transmitted forward to better support early termination.
● The information bits related to a specific CRC bit may be transmitted forward so that the checking can be performed for that CRC bit early.
● The related information bits for the J’assistance bits which are transmitted on the reliable subchannels may be placed on the reliable or unreliable subchannels to achieve better performance in terms of error detection and error correction. If used for error detection, it is found placing these assistance bits on the reliable subchannels may achieve better performance.
● The related information bits for the J”assistance bits which are transmitted on the unreliable subchannels may be placed on the reliable or unreliable subchannels to achieve better performance in terms of error detection and error correction. If used for error correction, it is found placing these assistance bits on the unreliable subchannel may achieve better performance.
● It is also possible to just place the related information bits ahead of the assistance bits.
The better flexibility of this variant also includes that a ratio of the number of related information bits to the number of assistance bits is controllable. The maximum number of information bits related to an assistance bit is determined by the number of feedbacks performed. The reason is that when the number of inputted information bits exceeds the number of shift registers, the mentioned feedback happens. So with this scheme, arbitrary number of summed information bits based on the assistance bit to be generated can be obtained as long as there are information bits yet to be processed. An example of a shift register based CRC generator can be found in Fig. 2.
It is also possible that the assistance bits are obtained by multiple shift registers at the same time. When there are K1, K2, ...KJ’information bits inputted into the CRC generator, where K1,  K2, ...KJ’are integers >=0, or values that are proportional to the information block size. One example of the specific register is the register just after an XOR operator. The registers and K1, K2, .. Kj’values are selected to avoid duplication in the assistance bits. l.e., two assistance bits should not be based on the same combination of information bits.
As an example, the assistance bits may be selected such that the number of information bits involved in the XOR operation exceeds a specific threshold. As another example, the assistance bits may be taken from the first J’or J”shift registers, or from the registers starting from that register which has the maximum number information bits involved in the XOR operation.
The receiver may use a CRC detector corresponding to the CRC generator. The same assistance bit will be generated when the decoded information bits are inputted it. In the Polar decoding, the receiver can compare the received assistance bit (s) and the locally generated bit (s) to check if the path is correct. The paths that do not pass the CRC bit check will be given a penalty of any real number. For example, the penalty value may be {1 3 5 15, ∞} . Penalty is a value used to alter the path metric. A path is considered to be more unreliable the higher the penalty is. In a specific decoding step. A penalty may be given this corresponding value to reduce its path metric. Paths with lower path metric are easier to be dropped during decoding.
The above-mentioned operations and parameters may be known by both the transmitter and the receiver (e.g. defined in the 3GPP specifications) , or they could also be configured by signaling, e.g. RRC signaling, so that they are known by the transmitter and the receiver.
An example of J is 16 (16 bit CRC) for downlink and 8 (8 bit CRC) for uplink. J’may be 3 (3 assistance bits on reliable channels) , and J”may be 2 (2 bits on unreliable channels) .
Hereinafter, two embodiments of the invention are explained at greater detail.
Embodiment 1:
As shown in Figure 2, in this embodiment, a CRC generator corresponding to x3+x2+1 is used. There are three registers denoted by R1, R2 and R3. There are two XOR operators denoted by X1 and X2.
Suppose information bits [bn-1, bn-2, ..., b2, b1, b0] are to be processed. And the information bits are sent into the CRC generator one by one based on the ascending order of its index.
In this embodiment, 3 assistance bits are to be generated. For other number of assistance bits, a similar method may be used.
One scheme to generate the 3 assistance bits is based on the number of inputted information bits. The assistance bits are obtained as the value of the first register R1 when 4, 6, and 8 information bits are inputted, respectively.
When 4 information bits b0 to b3 are inputted, the first register has the value c0 = b0+b3, which is the first assistance bit.
When 6 information bits b0 to b5 are inputted, the first register has the value c1 = b0+b1+b2+b5, which is the second assistance bit.
When 8 information bits b0 to b7 are inputted, the first register has the value c2 = b0+b2+b3+b4+b7, which is the third assistance bit.
As an alternative, the 3 assistance bits may be obtained from the three registers when K information bits are inputted, e.g. K=8. Then the three assistance bits are:
c0 = b0+b2+b3+b4+b7 (value of the first register R1 when 8 information bits b0 to b7 are inputted)
c1 = b1+b2+b3+b6 (value of the second register R2 when 8 information bits b0 to b7 are inputted)
c2 = b1+b3+b4+b5 (value of the third register R3 when 8 information bits b0 to b7 are inputted)
Embodiment 2:
In this embodiment, CCITT CRC-16 generator shown in Fig. 3 is used. It comprises 16 registers denoted by R0 ~ R15, and three XOR operators.
Information bits [bn-1, bn-2, ..., b2, b1, b0] are to be processed. The information bits are sent into the CRC generator one by one based on the ascending order or its index.
The 16 CRC bits are obtained when all the n information bits are input into the generator, by taking out of the register values. In this embodiment, the number of assistance bits J’= 4. The assistance bits are obtained by taking the value of the register R5 when 18, 19, 20, 21  information bits are inputted into the CRC generator, respectively. Then the four assistance bits are:
c0 = b1+b17+b12
c1 = b2+b18+b13
c2 = b3+b19+b14
c3 = b4+b20+b15
In the embodiment, the assistance bits are transmitted after a permutation so that they follow their corresponding information bits. Hence, the transmission sequence may be:
[b1 b17 b12 c0 b2 b18 b13 c1 b3 b19 b14 c2 b4 b20 b15 c3] , where the bits are transmitted from left to right.
Fig. 4 shows an apparatus according to an embodiment of the invention. The apparatus may be an encoding unit of an eNodeB or a UE or an element thereof. Fig. 5 shows a method according to an embodiment of the invention. The apparatus according to Fig. 4 may perform the method of Fig. 5 but is not limited to this method. The method of Fig. 5 may be performed by the apparatus of Fig. 4 but is not limited to being performed by this apparatus.
The apparatus comprises generating means 10, retrieving means 20, constructing means 30, and encoding means 40. Each of the generating means 10, retrieving means 20, constructing means 30, and encoding means 40 may be a generating processor, retrieving processor, constructing processor, and encoding processor, respectively. Each of the generating means 10, retrieving means 20, constructing means 30, and encoding means 40 may be a generator, retriever, constructor, and encoder, respectively.
The generating means 10 comprises J registers. It may consist of J registers. The generating means 10 generates J addon bits (e.g. an error detection code such as a CRC code) of J bits if K information bits are sequentially inputted into the generating means 10 (S10) . The K information bits may be denoted as an information block. J is a natural number (J=1 or 2 or 3...) .
The retrieving means 20 retrieves Jaddon bits from the J registers after at least one of the K information bits had been inputted into the generating means 10 and before the K information bits are inputted into the generating means 10 (S20) . That is, the retrieving means 20 retrieves the Jaddon bits as intermediate values of the registers. Jis a natural  number (J’=1 or 2 or 3...) . Jmay be predetermined. For example, the Jaddon bits may be assistance bits, with J’bits for reliable subchannels and J”bits for unreliable subchannels, wherein J=J’+J”.
The constructing means 30 constructs a codeblock comprising each of the K information bits, the J addon bits generated by the generating means 10 if the K information bits are inputted into the generating means 10, and the Jaddon bits retrieved by the retrieving means 20 (S30) . The constructing means 30 constructs the codeblock such that each of the K information bits, the J addon bits, and the Jaddon bits is at a respective predetermined position of the codeblock. The codeblock may consist of the K information bits, the J addon bits, and the Jaddon bits.
Fig. 6 shows an apparatus according to an embodiment of the invention. The apparatus comprises at least one processor 410, at least one memory 420 including computer program code, and the at least one processor 410, with the at least one memory 420 and the computer program code, being arranged to cause the apparatus to at least perform at least the method according to Fig. 5.
Some embodiments of the invention may be employed in 3GPP devices, e.g. in the encoding unit thereof. However, embodiments of the invention are not limited to 3GPP devices. They may be employed in any kind of devices where polar coding is employed.
Some embodiments of the invention may use another error detection code than CRC if this error detection code can generate intermediate values. For example, any block code with Hamming distance t can detect t-1 errors. An example are Hamming codes.
One piece of information may be transmitted in one or plural messages from one entity to another entity. Each of these messages may comprise further (different) pieces of information.
Names of network elements, protocols, and methods are based on current standards. In other versions or other technologies, the names of these network elements and/or protocols and/or methods may be different, as long as they provide a corresponding functionality.
The format of the messages and information elements is not limited those shown in some of the figures. These formats are to be seen as examples only.
If not otherwise stated or otherwise made clear from the context, the statement that two entities are different means that they perform different functions. It does not necessarily mean that they are based on different hardware. That is, each of the entities described in the present description may be based on a different hardware, or some or all of the entities may be based on the same hardware. It does not necessarily mean that they are based on different software. That is, each of the entities described in the present description may be based on different software, or some or all of the entities may be based on the same software. Each of the entities described in the present description may be embodied in the cloud.
According to the above description, it should thus be apparent that example embodiments of the present invention provide, for example, a base station such as a eNodeB, or a component such as a TX path or an encoding unit thereof, or a terminal such as a User Equipment or a MTC device, or a component such as a TX path or an encoding unit thereof, an apparatus embodying the same, a method for controlling and/or operating the same, and computer program (s) controlling and/or operating the same as well as mediums carrying such computer program (s) and forming computer program product (s) .
Implementations of any of the above described blocks, apparatuses, systems, techniques or methods include, as non-limiting examples, implementations as hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
It is to be understood that what is described above is what is presently considered the preferred embodiments of the present invention. However, it should be noted that the description of the preferred embodiments is given by way of example only and that various modifications may be made without departing from the scope of the invention as defined by the appended claims.

Claims (22)

  1. Apparatus, comprising
    generating means comprising J registers and configured to generate J addon bits if K information bits are sequentially inputted into the generating means;
    retrieving means configured to retrieve J addon bits from the J registers after at least one of the K information bits had been inputted into the generating means and before the K information bits are inputted into the generating means;
    constructing means configured to construct a codeblock comprising each of the K information bits, the J addon bits, and the J addon bits, wherein each of the K information bits, the J addon bits, and the J addon bits is at a respective predetermined position of the codeblock;
    encoding means configured to polar encode the codeblock.
  2. The apparatus according to claim 1, wherein the retrieving means is configured to retrieve each of the J addon bits from a respective predetermined register after a respective predetermined input number of the K information bits is inputted into the generating means, wherein each of the predetermined input numbers is smaller than K.
  3. The apparatus according to claim 2, wherein the respective predetermined registers are the same for all of the J addon bits.
  4. The apparatus according to claim 2, wherein the respective predetermined input numbers are the same for all the J addon bits.
  5. The apparatus according to any of claims 1 to 4, wherein each of the J addon bits and the J addon bits is based on a different subset of the K information bits.
  6. The apparatus according to any of claims 1 to 5, wherein the retrieving means is configured to retrieve each of the J addon bits and J addon bits such that it is generated based on at least a predetermined number of information bits, wherein the predetermined number is equal to or larger than 2.
  7. The apparatus according to any of claims 1 to 6, wherein
    one of the J addon bits is based on m information bits;
    m<K; and
    the constructing means is configured to arrange the one of the J addon bits in the codeblock immediately before the first one of the m information bits, between the m information bits, or immediately after the m information bits.
  8. The apparatus according to any of claims 1 to 7, wherein the constructing means comprises
    a permutating means configured to permutate at least two of the the J addon bits and the J addon bits.
  9. The apparatus according to any of claims 1 to 8, wherein the J addon bits are an error detection code, and the J addon bits are assistance bits.
  10. The apparatus according to any of claims 1 to 9, wherein the generating means is a cyclic redundancy check generator and the J addon bits are a cyclic redundancy check code.
  11. Method, comprising
    generating J addon bits if K information bits are sequentially inputted into a generating means comprising J registers;
    retrieving J addon bits from the J registers after at least one of the K information bits had been inputted into the generating means and before the K information bits are inputted into the generating means;
    constructing a codeblock comprising each of the K information bits, the J addon bits, and the J addon bits, wherein each of the K information bits, the J addon bits, and the J addon bits is at a respective predetermined position of the codeblock;
    polar encoding the codeblock.
  12. The method according to claim 11, wherein the retrieving comprises retrieving each of the J addon bits from a respective predetermined register after a respective predetermined input number of the K information bits is inputted into the generating means, wherein each of the predetermined input numbers is smaller than K.
  13. The method according to claim 12, wherein the respective predetermined registers are the same for all of the J addon bits.
  14. The method according to claim 12, wherein the respective predetermined input numbers are the same for all the J addon bits.
  15. The method according to any of claims 11 to 14, wherein each of the J addon bits and the J addon bits is based on a different subset of the K information bits.
  16. The method according to any of claims 11 to 15, wherein the retrieving comprises retrieving each of the J addon bits and J addon bits such that it is generated based on at least a predetermined number of information bits, wherein the predetermined number is equal to or larger than 2.
  17. The method according to any of claims 11 to 16, wherein
    one of the J addon bits is based on m information bits;
    m<K; and
    the constructing comprises arranging the one of the J addon bits in the codeblock immediately before the first one of the m information bits, between the m information bits, or immediately after the m information bits.
  18. The method according to any of claims 11 to 17, wherein the constructing comprises permutating at least two of the the J addon bits and the J addon bits.
  19. The method according to any of claims 11 to 18, wherein the J addon bits are an error detection code, and the J addon bits are assistance bits.
  20. The method according to any of claims 11 to 19, wherein the generating means is a cyclic redundancy check generator and the J addon bits are a cyclic redundancy check code.
  21. A computer program product comprising a set of instructions which, when executed on an apparatus, is configured to cause the apparatus to carry out the method according to any of claims 11 to 20.
  22. The computer program product according to claim 21, embodied as a computer-readable medium or directly loadable into a computer.
PCT/CN2017/083003 2017-05-04 2017-05-04 A unified error correction and error detection code generator WO2018201377A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2017/083003 WO2018201377A1 (en) 2017-05-04 2017-05-04 A unified error correction and error detection code generator
CN201780090309.6A CN110603759B (en) 2017-05-04 2017-05-04 Unified error correction and detection code generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/083003 WO2018201377A1 (en) 2017-05-04 2017-05-04 A unified error correction and error detection code generator

Publications (1)

Publication Number Publication Date
WO2018201377A1 true WO2018201377A1 (en) 2018-11-08

Family

ID=64016917

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/083003 WO2018201377A1 (en) 2017-05-04 2017-05-04 A unified error correction and error detection code generator

Country Status (2)

Country Link
CN (1) CN110603759B (en)
WO (1) WO2018201377A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140169388A1 (en) * 2012-12-14 2014-06-19 Sungkyunkwan University Research & Business Foundation Packet decoding method and apparatus
CN104219019A (en) * 2013-05-31 2014-12-17 华为技术有限公司 Coding method and coding device
CN105227189A (en) * 2015-09-24 2016-01-06 电子科技大学 The polarization code coding and decoding method that segmentation CRC is auxiliary

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014089753A1 (en) * 2012-12-11 2014-06-19 华为技术有限公司 File compression method, file decompression method, device and server
CN103281166B (en) * 2013-05-15 2016-05-25 北京邮电大学 A kind of mixed automatic retransfer request transmission method based on polarization code

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140169388A1 (en) * 2012-12-14 2014-06-19 Sungkyunkwan University Research & Business Foundation Packet decoding method and apparatus
CN104219019A (en) * 2013-05-31 2014-12-17 华为技术有限公司 Coding method and coding device
CN105227189A (en) * 2015-09-24 2016-01-06 电子科技大学 The polarization code coding and decoding method that segmentation CRC is auxiliary

Also Published As

Publication number Publication date
CN110603759A (en) 2019-12-20
CN110603759B (en) 2022-04-05

Similar Documents

Publication Publication Date Title
US10917112B2 (en) Apparatus and methods for error detection coding
US10469212B2 (en) Data transmission method and device
CA3028013C (en) Systems and methods for piece-wise rate matching when using polar codes
CN109314600B (en) System and method for rate matching when using generic polarization codes
CN109314524B (en) System and method for rate matching through heterogeneous kernels using common polar codes
CN108282246B (en) Information processing method, equipment and communication system
WO2018141212A1 (en) Information transmission method, decoding method and device
US11088780B2 (en) Low complexity blind detection of code rate
CN107659381B (en) Coding and decoding method and device
CN108288970B (en) Method and device for encoding and decoding polarization code
CN111200442A (en) Coding and decoding method, coding and decoding device and system
JP2020511051A (en) Data processing method and device
WO2018098691A1 (en) Control channel generation method, control channel detection method, and related apparatus
CN109802713B (en) Channel State Information (CSI) coding method and device, storage medium and processor
CN110582955B (en) Coding device for polarization code
CN108289009B (en) Method and equipment used for UE (user equipment) and base station for channel coding
WO2020147527A1 (en) Polar coding and decoding method and apparatus
US11558148B2 (en) Use of LDPC base graphs for NR
WO2018201377A1 (en) A unified error correction and error detection code generator
CN111052614B (en) Message processing and corresponding device
CN109474377B (en) Coding and decoding method and device
WO2019047788A1 (en) Coding method and device

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: 17908305

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17908305

Country of ref document: EP

Kind code of ref document: A1