EP4205282A1 - Devices for product polar-code encoding and decoding - Google Patents

Devices for product polar-code encoding and decoding

Info

Publication number
EP4205282A1
EP4205282A1 EP20819723.6A EP20819723A EP4205282A1 EP 4205282 A1 EP4205282 A1 EP 4205282A1 EP 20819723 A EP20819723 A EP 20819723A EP 4205282 A1 EP4205282 A1 EP 4205282A1
Authority
EP
European Patent Office
Prior art keywords
matrix
polar
codeword
decoding
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP20819723.6A
Other languages
German (de)
French (fr)
Inventor
Ingmar LAND
Valerio BIOGLIO
Charles PILLET
Carlo CONDO
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of EP4205282A1 publication Critical patent/EP4205282A1/en
Pending legal-status Critical Current

Links

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/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
    • H03M13/2927Decoding strategies
    • 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
    • H03M13/2909Product 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/2948Iterative decoding

Definitions

  • the present disclosure relates to the field of channel coding using polar codes, in particular, relates to product polar-code encoding and product polar-code decoding.
  • the disclosure presents, accordingly, a device for product polar-code decoding, a device for product polar- code encoding, and corresponding methods.
  • embodiments of the disclosure are directed to a product polar-code decoding process that employs a scrambler that scrambles a received codeword matrix before column-decoding and/or before row-decoding of the received codeword matrix.
  • a system for forward error correction (FEC) coding also called a coding scheme, consists of an encoder at the transmitter side and a decoder at the receiver side.
  • the encoder adds redundancy to the data to be transmitted, i.e., it provides additional redundant data.
  • the decoder exploits this redundancy to correct data transmission errors.
  • the receiver can thus obtain the original data free of errors despite a noisy communication channel, over which the data has been transmitted.
  • the data to be transmitted also termed “information word” is given to the encoder, which produces the “codeword”, which contains the redundancy. This codeword is then transmitted over the noisy communication channel, which typically introduces errors.
  • the output vector of the channel is provided to the decoder, which uses the received codeword (including errors) to produce estimates of the transmitted codeword, and ultimately obtains the transmitted data.
  • the set of possible codewords is called the code, or the “channel code”, and this disclosure is particularly concerned with such a code.
  • Polar codes are linear block codes that rely on the polarization effect, which allows sorting bit positions of the data to be transmitted (also called bit-channels) in order of reliability. As the code length goes toward infinity, the polarization phenomenon influences the reliability of the bit-channels, which are either completely noisy or completely noiseless. Even more, the fraction of noiseless bit-channels equals the channel capacity. For finite practical code lengths, the polarization of bit-channels is incomplete, therefore, there are bit-channels that are partially noisy.
  • the polar encoding process consists of the classification of the bit-channels in the data to be transmitted into two groups: K good bit-channels will carry the information bits and are indexed by the information set I, and N-K bad bit-channels are fixed to a predefined value (usually 0) and are indexed by the frozen set F.
  • K good bit-channels i.e. the ones with the highest reliability
  • N-K bad bit-channels are fixed to a predefined value (usually 0) and are indexed by the frozen set F.
  • the K best bit-channels i.e. the ones with the highest reliability, are selected to form the set of information bits, while the remaining bit-channels are frozen, i.e., are selected to form a set of frozen bits.
  • Arikan polar codes are based on the kernel matrix:
  • the frozen set F of size N-K is chosen, as described above.
  • the bits u L of an input vector u are set to 0 for i G F and to the information bits otherwise.
  • SC decoding Successive Cancellation
  • Product codes are a class of error-correction codes, which are constructed by encoding a matrix of information symbols row-wise with a row component code, and subsequently column-wise using a column component code. The twofold encoding acts as a parallel concatenation of the row and column component codes.
  • Product polar-codes have been proposed in this respect, wherein systematic polar codes can be used as component codes.
  • Information bits are arranged in a Kr x Kc array, and then the code Cr is used to encode Kc rows independently. Afterwards, Nr columns obtained in the previous step are encoded using code Cc. The result is a Nr x Nc array, wherein the rows are codewords of the code Cr, and the columns are codewords of the code Cc.
  • Product codes can be decoded by sequentially decoding rows and column component codes.
  • the product code decoder typically decodes first all the row codewords. Then, using the results of the row-decoding, the decoder decodes all the column codewords. Then, the decoder proceeds in this fashion for a certain number of iterations/alternations, and produces estimates of the transmitted bits.
  • Soft-input/soft-output decoders are normally used to improve the decoding performance by iterating the decoding of rows and columns and exchanging soft information between the two decoders.
  • Polar code decoding suffers from long decoding latency, due to the sequential nature of the SCbased decoding.
  • Product codes can be decoded with a high degree of parallelism, but good error correction performance comes at the cost of complex soft-in-soft-out decoding.
  • polar codes as constituent codes raises further the problem of combining effectively product decoding and component code decoding.
  • the information output from the component code decoding needs to be soft.
  • the most effective decoders for polar codes, based on SC return hard information.
  • Soft-output decoding of polar codes is inherently suboptimal, since polar codes achieve capacity under SC decoding, and are constructed targeting SC-based decoding algorithms.
  • Product and product-like codes can generally benefit from variations between the row and column decoding phases, wherein message passing can incur trapping sets and soft information patterns that are hard to correct.
  • decoding of polar codes has been shown to benefit from the consideration of permuted versions of the codeword, and of the encoding factor graph.
  • code automorphisms namely with permutations mapping codewords into codewords
  • a codeword permutation maps each codeword to another codeword, which can be decoded to a source vector linked to the original source vector through precoding. This precoding may change the original frozen set.
  • Automorphisms are permutations on the codeword, which guarantee that the frozen set of the permuted codeword is the same as before. Even if some polar code automorphisms do not depend on the frozen set, others do.
  • interleaver may be used in the decoding, namely a row-to-column interleaver. This can limit the errorcorrection performance (e.g., low Block Error Rate (BLER) or Bit Error Rate (BER) performance), and make this technology less appealing.
  • BLER Block Error Rate
  • BER Bit Error Rate
  • embodiments of the present invention aim to improve product polar-code encoding and product polar-code decoding.
  • An objective is to improve, in particular, the BER (or BLER) performance of a device for product polar-code decoding. Especially, this should be achieved in the case of Soft Cancellation (SCAN) based decoding. Further, a goal is to provide an effective product polar-code encoding and decoding scheme.
  • this disclosure proposes to insert a specific scrambler as a row-to-column interleaver, in order to improve the BER performance of a product polar-code decoding device.
  • the scrambler may be defined by a permutation, which scrambles the codeword bits of a codeword matrix before the column-decoding.
  • a particular focus is given in this disclosure to automorphisms, which leave the codebook intact. Even if some polar code automorphisms may be described through a polynomial formalism, others may not, and may heavily depend on the choice of the frozen set of bits.
  • This disclosure therefore proposes also ways to design the frozen set of bits for a product polar-code, in order to enable certain automorphisms. As a consequence, beneficial permutations can be applied on the codeword without changing the frozen set.
  • a first aspect of this disclosure provides a device for product polar-code decoding, the device comprising a row-decoder, a column-decoder, and a scrambler, and the device being configured to: receive a codeword matrix encoded based on a product polar-code; determine a first matrix by scrambling the received codeword matrix using the scrambler; polar-decode one or more columns of the first matrix using the column-decoder and provide a resulting hard message or soft message to the row-decoder; determine a second matrix; polar-decode one or more rows of the second matrix using the row-decoder and provide a resulting hard message or soft message to the column decoder; wherein the scrambler is configured to scramble codeword bits of the received codeword matrix to determine the first matrix.
  • the device of the first aspect may be a decoder, or may be part of a decoder.
  • the received codeword matrix may be a codeword matrix transmitted by an encoder over a channel between encoder and decoder.
  • the received codeword matrix may accordingly comprise a set of information bits or symbols, and a frozen set of bits.
  • the hard message or soft message may be output by the respective decoder, and carry information regarding the decoding or encoding, respectively.
  • the soft messages may comprise log-likelihood ratios of decoded or encoded bits.
  • the hard message may comprise decoded or encoded bits.
  • the BER of the device of the first aspect can be improved.
  • an effective product polar-code decoding scheme is enabled.
  • the device is compatible with performing a SCAN-based decoding.
  • the decoders provide soft output, i.e., the soft messages.
  • the device is configured to: determine the second matrix by scrambling the received codeword matrix using the scrambler, wherein the scrambler is configured to scramble the codeword bits of the received codeword matrix to determine the second matrix.
  • the device may further use the scrambler before the row-decoding, wherein the BER (or BLER) can be further improved.
  • the scrambler is configured to scramble only the codeword bits of the received codeword matrix to determine the first matrix and/or the second matrix. In an implementation form of the first aspect, the scrambler is configured leave a frozen set of bits of the received codeword matrix unaltered to determine the first matrix and/or the second matrix.
  • the device is configured to: determine an arrangement of a frozen set of bits in the received codeword matrix; determine a scrambling instruction, from one or more scrambling instructions, based on the determined arrangement of the frozen set of bits; and determine the first matrix and/or the second matrix by scrambling the received codeword matrix according to the determined scrambling instruction using the scrambler.
  • the scrambling instruction may advantageously leave the frozen set of bits unaltered.
  • each of the one or more scrambling instructions is associated with one arrangement of one or more predetermined arrangements of the frozen set of bits in the received codeword matrix.
  • the received codeword matrix and the first matrix belong to the same codebook; and/or the received codeword matrix and the second matrix belong to the same codebook.
  • the first matrix and the second matrix are codeword matrices of the product polar-code.
  • automorphisms may be used for a particular good performance of the device.
  • the second matrix is the received codeword matrix.
  • the device is configured to: polar-decode all columns of the first matrix in parallel using the column-decoder; and/or polar-decode all rows of the second matrix in parallel using the row-decoder.
  • the device is further configured to: alternatingly polar-decode further the one or more columns of the first matrix and polar-decode further the one or more rows of the second matrix, and exchange resulting hard messages or soft messages between the column decoder and the row decoder.
  • the device is configured to: modify the first matrix and/or the second matrix using the scrambler after each of one or more of the alternations.
  • the device is configured to: perform the alternating polar-decoding of the one or more columns and of the one or more rows, respectively, until a consensus on a decoded codeword matrix is reached between the row-decoder and the column-decoder.
  • the received codeword matrix may be a codeword matrix as transmitted by a device for product polar-code encoding over a channel to the device of the first aspect.
  • the codeword matrix may be altered by noise.
  • the device of the first aspect may reach the decoded codeword matrix based on the consensus in spite of the noise alteration.
  • a second aspect of this disclosure provides a device for product polar-code encoding, the device being configured to: obtain scrambling information indicative of one or more scrambling instructions available at a decoding device for product polar-code decoding; determine an input matrix comprising a frozen set of bits, wherein an arrangement of the frozen set of bits in the input matrix is determined based on the scrambling information; and polar-encode the input matrix based on a product polar-code to obtain a codeword matrix; and transmit the codeword matrix to the decoding device.
  • the device thus supports the device of the first aspect, in that it selects the frozen set of bits according to the scrambling instructions, which are usable at the device of the first aspect. This allows the device of the first aspect to implement the scrambler according to these scrambling instructions, so that the advantages described above are achieved.
  • a third aspect of this disclosure provides a method for product polar-code decoding, the method comprising: receiving a codeword matrix encoded based on a product polar-code; determining a first matrix by scrambling the received codeword matrix using a scrambler; polar-decoding one or more columns of the first matrix using a column-decoder and providing a resulting hard message or soft message to a row-decoder; determining a second matrix; polar-decoding one or more rows of the second matrix using the row-decoder and providing a resulting hard message or soft message to the column decoder; wherein determining the first matrix comprises scrambling codeword bits of the received codeword matrix.
  • the method comprises: determining the second matrix by scrambling the received codeword matrix using the scrambler, wherein the scrambler is configured to scramble the codeword bits of the received codeword matrix to determine the second matrix.
  • the scrambler is configured to scramble only the codeword bits of the received codeword matrix to determine the first matrix and/or the second matrix.
  • the scrambler is configured leave a frozen set of bits of the received codeword matrix unaltered to determine the first matrix and/or the second matrix.
  • the method comprises: determining an arrangement of a frozen set of bits in the received codeword matrix; determining a scrambling instruction, from one or more scrambling instructions, based on the determined arrangement of the frozen set of bits; and determining the first matrix and/or the second matrix by scrambling the codeword matrix according to the determined scrambling instruction using the scrambler.
  • each of the one or more scrambling instructions is associated with one arrangement of one or more predetermined arrangements of the frozen set of bits in the received codeword matrix.
  • the codeword matrix and the first matrix belong to the same codebook; and/or the codeword matrix and the second matrix belong to the same codebook.
  • the first matrix and the second matrix are codeword matrices of the product polar-code.
  • the second matrix is the received codeword matrix.
  • the method comprises: polar-decoding all columns of the first matrix in parallel using the column-decoder; and/or polar-decoding all rows of the second matrix in parallel using the row-decoder.
  • the method comprises: alternatingly polar- decoding further the one or more columns of the first matrix and polar-decoding further the one or more rows of the second matrix, and exchanging resulting hard messages or soft messages between the column decoder and the row decoder.
  • the method comprises: modifying the first matrix and/or the second matrix using the scrambler after each of one or more of the alternations.
  • the method comprises: performing the alternating polar-decoding of the one or more columns and of the one or more rows, respectively, until a consensus on a decoded codeword matrix is reached between the row-decoder and the columndecoder.
  • a fourth aspect of this disclosure provides a method for product polar-code encoding, the method comprising: obtaining scrambling information indicative of one or more scrambling instructions available at a decoding device for product polar-code decoding; determining an input matrix comprising a frozen set of bits, wherein an arrangement of the frozen set of bits in the input matrix is determined based on the scrambling information; and polar-encoding the input matrix based on a product polar-code to obtain a codeword matrix; and transmitting the codeword matrix to the decoding device.
  • a fifth aspect of this disclosure provides a computer program comprising instructions which, when executed by a computer of a decoding device, cause the computer to perform a method according to the third aspect or fourth aspect or any implementation for thereof.
  • a sixth aspect of the present disclosure provides a non-transitory storage medium storing executable program code which, when executed by a processor, causes the method according to the third aspect or fourth aspect any implementation form thereof to be performed.
  • FIG. 1 illustrates conventional product polar-code encoding.
  • FIG. 2 illustrates conventional product-polar code decoding
  • FIG. 3 shows a device for product polar-code decoding according to an embodiment of the invention.
  • FIG. 4 shows a device for product polar-code encoding according to embodiment of the invention.
  • FIG.5 illustrate a product polar-code interleaved decoding as performed by a decoding device according to an embodiment of the invention.
  • FIG.6 illustrates an encoding scheme for interleaved product polar-codes.
  • FIG.7 shows a BER performance of standard decoding device and a device for product polar-code decoding according to an embodiment of the invention.
  • FIG.8 shows a method for product polar-code decoding according to an embodiment of the invention.
  • FIG.9 shows a method for product polar-code encoding according to embodiment of the invention.
  • FIG.1 shows a conventional product polar-code encoding process.
  • the encoding process can generally be expressed as ⁇ ⁇ ⁇ ⁇ ⁇ , wherein Tc and Tr are the transformation matrices for the column and row component polar codes, respectively. These transformation matrices may encode the input matrix U into a codeword matrix X.
  • the input matrix U comprises a set of information bits and a frozen set of bits.
  • Tc and Tr are particularly the transformation matrices for two polar codes of length Nc and Nr, respectively.
  • the resulting product code is a product polar code.
  • Product polar-code encoding is performed by polar- encoding the rows of the input matrix U, then polar-encoding the columns of the resulting matrix, in order to obtain the codeword matrix X.
  • the row and column encoding can, however, be swapped without changing the resulting codeword matrix X.
  • the codeword matrix X may then be transmitted over a channel to a receiver.
  • FIG. 2 shows a conventional product polar-code decoding process at the receiver.
  • the receiver receives the matrix F, i.e., obtains the received codeword matrix F.
  • the decoding process then comprises the decoding of the row and column component polar codes iteratively, with information exchanged between the row and column decoding phases in a product-like manner.
  • Product polar-code decoding can be parallelized easily, as all rows of a received codeword matrix F can be processed in parallel, and all columns of the received matrix F can be processed in parallel, which substantially reduces the decoding latency for a length-A polar code.
  • the row and column decoding processes are performed alternatingly, with hard messages or soft messages exchanged between the row-decoder and the column-decoder as is known in the art.
  • a decoded codeword matrix is output.
  • FIG. 3 shows a device 300 for product polar-code decoding according to an embodiment of the invention.
  • the device 300 comprises a row-decoder 301, a column-decoder 302, and a scrambler 303.
  • the row-decoder 301 and the column-decoder 302 may be reused from the conventional product polar-code decoding process (see FIG. 2).
  • the device 300 may be based on a conventional device configured to perform the conventional product polar- code decoding process, however, the conventional device does at least not comprise the scrambler 303.
  • the device 300 is configured to receive a codeword matrix 304.
  • the received codeword matrix 304 is encoded based on a product polar-code.
  • the device 300 may receive the codeword matrix 304 from a device for product polar-code encoding (as, for example, the device 400 described with respect to FIG. 4). That is, the received codeword matrix 304 may be a codeword matrix send by the encoding device and received by the decoding device 300 over a noisy channel.
  • the device 300 is further configured to determine a first matrix 305 based on the received codeword matrix 304.
  • the device 300 may obtain the first matrix 305 by scrambling the received codeword matrix 304 using the scrambler 303. That is, the device 300 may be configured to apply the scrambler 300 to the received codeword matrix 304.
  • the scrambler 303 may scramble the received codeword matrix 304 according to a determined scrambling instruction.
  • the device 300 may determine the scrambling instruction from one or more scrambling instructions, for instance, stored in a memory of the device 300 or obtained from an external device.
  • the scrambler 303 is configured to scramble codeword bits of the received codeword matrix 304 to determine the first matrix 305.
  • the scrambler 303 may thereby be configured to scramble only the codeword bits of the received codeword matrix 304 to determine the first matrix 305.
  • the scrambler 303 may also be configured to leave a frozen set of bits of the received codeword matrix 304 unaltered (when scrambling the codeword matrix 304) to determine the first matrix 305.
  • the device 300 may determine an arrangement of a frozen set of bits in the received codeword matrix 304, and may further determine the scrambling instruction (for obtaining the first matrix 305) based on the determined arrangement of the frozen set of bits.
  • the device 300 is further configured to polar-decode one or more columns of the first matrix 305 using the column-decoder 302. That is, the device 300 may be configured to operate the column-decoder 302 with the first matrix 305 as an input. Further, the device 300 may provide a resulting hard or soft message 306a to the row-decoder 301.
  • the hard or soft message 306a may result from the column-decoding, and/or may indicate information regarding the columndecoding or the result of the column-decoding (hard-message and soft-message exchange may be as known from the art).
  • the device 300 is further configured to determine a second matrix 307.
  • the second matrix 307 may be identical to the received codeword matrix 304, i.e., the device 300 may determine the second matrix 307 as being the received codeword matrix 304.
  • the device 300 may be configured to determine the second matrix 307 by scrambling the received codeword matrix 304 using the scrambler 303.
  • the scrambler 303 is configured to scramble the codeword bits of the received codeword matrix 304 to determine the second matrix 307.
  • the scrambler 303 may scramble only the codeword bits of the received codeword matrix 304 to determine the second matrix 307.
  • the scrambler 303 may also be configured to leave a frozen set of bits of the received codeword matrix 304 unaltered when scrambling the received codeword matrix
  • the scrambling of the received codeword matrix 304 may be based on a different scrambling instruction to obtain the second matrix 307, than a scrambling instruction to obtain the first matrix 305. However, also the same scrambling instruction may be used for obtaining the first matrix 305 and the second matrix 307.
  • the device 300 may be configured to determine the scrambling instruction (for scrambling the second matrix 307) from the multiple scrambling instructions. In an embodiment, the device 300 may determine an arrangement of a frozen set of bits in the received codeword matrix 304, and may further determine the scrambling instruction, from the one or more scrambling instructions, based on the determined arrangement of the frozen set of bits. Each of the one or more scrambling instructions may be associated with one arrangement of one or more predetermined arrangements of the frozen set of bits in the received codeword matrix 304.
  • the device 300 is configured to polar-decode one or more rows of the second matrix 307 using the row-decoder 301. That is, the device 300 may be configured to operate the column-decoder 302 with the first matrix second matrix 307 as an input. The device 300 is further configured to provide a resulting hard or soft message 306b to the column decoder 302 (again, the hard-message or soft-message exchange may be as known from the art).
  • the device 300 may be configured to alternatingly perform polar-decoding of the one or more columns and of the one or more rows, respectively.
  • the device 300 may alternatingly polar-decode further the one or more columns of the first matrix 305 on the one hand side, and polar-decode further the one or more rows of the second matrix 307 on the other hand side. It is possible that at least one of the first matrix 305 and the second matrix 307 is scrambled again by the scrambler 303, based on some scrambling instruction, between one or more or each alternation.
  • the device 300 may specifically perform the alternating polar- decoding until a consensus on a decoded codeword matrix 308 is reached between the rowdecoder 301 and the column-decoder 302.
  • FIG. 4 shows a device 400 for product polar-code encoding according to an embodiment of the invention.
  • the device 400 may be designed in dependency of the device 300, or vice versa.
  • the device 400 is configured to obtain scrambling information 401.
  • the device 400 may receive the scrambling information 401 from the device 300 (as exemplarily indicated by the dashed arrow in FIG. 4), or from some other device.
  • the scrambling information 401 is indicative of one or more scrambling instructions, which are available and/or used at the decoding device 300 for product polar-code decoding.
  • the scrambling information 401 may in particular be indicative of the above-described scrambling instructions, which scrambling instructions may be determined by the device 300 for the scrambling of the codeword matrix 304, in order to obtain the first matrix 305 or in order to obtain the second matrix 307, respectively.
  • the device 400 is further configured to determine an input matrix 402 (for example, at a matrix determination block 403).
  • the input matrix 402 comprises a frozen set of bits, wherein an arrangement of the frozen set of bits in the input matrix 402 is determined based on the scrambling information 401.
  • the device 400 is configured to polar-encode the input matrix 402 based on a product polar-code, in order to obtain a codeword matrix, for instance, the codeword matrix 304 described above (as exemplarily indicated in FIG. 4).
  • the device 400 may to this end comprise, for example, a polar-encoder block 404 to obtain the codeword matrix from the input matrix 402.
  • the device 400 is configured to transmit the codeword matrix 304 to a decoding device, for instance, to the decoding device 300 of FIG. 3.
  • the device 300 and/or the device 400 may comprise a processor or processing circuitry (not shown) configured to perform, conduct or initiate the various operations of the device 300 and/or the device 400 described herein.
  • the processing circuitry may comprise hardware and/or the processing circuitry may be controlled by software.
  • the hardware may comprise analog circuitry or digital circuitry, or both analog and digital circuitry.
  • the digital circuitry may comprise components such as application-specific integrated circuits (ASICs), field- programmable arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors.
  • ASICs application-specific integrated circuits
  • FPGAs field- programmable arrays
  • DSPs digital signal processors
  • the device 300 and/or the device 400 may further comprise memory circuitry, which stores one or more instruction(s) that can be executed by the processor or by the processing circuitry, in particular under control of the software.
  • the memory circuitry may comprise a non-transitory storage medium storing executable software code which, when executed by the processor or the processing circuitry, causes the various operations of the device 300 and/or the device 400 to be performed.
  • the processing circuitry comprises one or more processors and a non- transitory memory connected to the one or more processors.
  • the non-transitory memory may carry executable program code which, when executed by the one or more processors, causes the device 300 and/or the device 400 to perform, conduct or initiate the operations or methods described herein.
  • embodiments of the invention propose to introduce the scrambler 303 (see FIG. 3) into the conventional product polar-code decoding process, wherein the scrambler 303 may be a codeword-scrambler that scrambles the elements of received codeword matrix 305.
  • FIG. 5 illustrates in this respect a product polar-code interleaved decoding process as it may be performed by the decoding device 300 according to an embodiment of the invention, i.e., using the scrambler 303 as interleaver.
  • the received codeword matrix 304 is the received matrix Y, and may be scrambled by using the scrambler 303 as described above. This results in the first matrix 305, which is the scrambled matrix Y‘ in FIG. 5.
  • This first matrix 305 may then be decoded by the columndecoder 302 as described above, and the resulting hard or information 306a may be passed to the row-decoder 301 (e.g., after de-scrambling).
  • the column-decoding may also produce an (intermediate) column-decoded matrix 501.
  • the scrambler 303 - in particular, the scrambling instruction based on which the scrambler 303 scrambles the first matrix 305 - may be changed at each of multiple alterations of column-decoding as described above.
  • the second matrix 307 described above may be the codeword matrix 304 or may be a scrambled matrix Y‘ ‘ (not shown), and this second matrix 307 may be decoded by the row-decoder 301 as described above. Resulting hard or soft messages 306b may be passed to the column-decoder 302.
  • the row-decoding may also produce an intermediate row-decoded matrix 502.
  • the input matrix 402 - also input matrix U - may be precoded to get an alternative input matrix U‘, which is encoded through product polar- code encoding to obtain a scrambled codeword matrix X‘.
  • the scrambled codeword matrix X‘ is an interleaved version of the codeword matrix 304 - also codeword matrix X.
  • the scrambling performed by the scrambler 303 according to the scrambling instruction is an automorphism of the polar-code, i.e., the scrambled matrix Y‘ shown in FIG. 5 is still a valid codeword of the original polar- code, then the alternative input matrix U‘ has the same frozen set of bits as of input matrix U, and the column-decoding stage does not need to be changed.
  • automorphisms of the product polar-code are proposed to create the codeword scrambler 303 to be used in the decoding process depicted in FIG. 5.
  • the input vector u of this polar code can be obtained by appending the rows of the input matrix U.
  • the automorphism set of the polar code of length N is the same of the initial product polar-code.
  • automorphisms which are independent of the frozen set of bits
  • two further methods are proposed to obtain automorphisms, which are frozen set dependent instead.
  • These automorphisms can be used as codeword scrambler 303 in the proposed interleaved product polar-code decoding shown in FIG. 5 (performed by device 300).
  • a first approach is based on generalized shifts. It can be shown that given an N-bit polar codeword, dividing it in sections of N/4 bits and cyclically shifting them, as in
  • a B C D D A B C is an automorphism, i.e. the shifted vector is a codeword as well, mapping to a source vector with the same frozen set of bits. Based on this idea, a wider set of general permutations that are automorphisms can be identified.
  • a codeword of N bits may be taken and the code may be divided in sections W of length N/2x. Then, in each section, a subsection S of length N/2x or N/22x may be identified. Further, section Sk in W2i may be swapped with section SI in W2i+1, for all i. These swaps can be combined with each other, without breaking the polar code partial order, and are thus guaranteed to maintain the frozen set of bits intact. They are thus automorphisms.
  • SO may be swapped with SI and S2 may be swapped with S3, obtaining:
  • the codeword may be divided in 2 sections W of 4 bits, then subsection S may be identified as the first half of W in each.
  • SO may be swapped with SI, obtaining:
  • any permutation P swapping positions 0 and 2 and/or swapping positions 1 and 3 and/or swapping positions 4 and 6 and/or swapping positions 5 and 7 is an automorphism.
  • the proposed interleaved decoding of product polar-codes may improve the error-correction performance of the decoding device 300.
  • FIG. 7 shows the Bit Error Rate (BER) performance of proposed decoder for different scramblers, comparing the result with standard product polar decoder.
  • the scrambling pattern of each column may be the same, and may correspond to an N/2 cyclic shift. Again, the pattern does not change with iterations.
  • the standard decoding device without proposed interleaving i.e., without scrambler 303, is included as a reference.
  • a polar code of length N and rate K/N may be assumed.
  • the permuted codeword x’ can be obtained.
  • Its source vector u’ may be inferred by re-encoding the codeword.
  • the source vector thus obtained u’ is related to the source vector u of the original codeword through a precoding matrix.
  • Bits in u’ are frozen only, if all the bits of u involved in its precoding are frozen as well.
  • the algorithm can be repeated avoiding the freezing of some positions j, and the frozen set can be chosen according to some performance metric, for example as the one with the minimum Hamming distance from the optimal frozen set.
  • some performance metric for example as the one with the minimum Hamming distance from the optimal frozen set.
  • x ⁇ ABCDEFGHILMNOPQR, BDFHLNPR, CDGHMNQR, DHQR, EFGHOPQR, FHPR, GHQR, HR, ILMNOPQR, LNPR, MNQR, NR, OPQR, PR, QR,R ⁇
  • ABC is the XOR operation between A, B and C.
  • Automorphism decoding is advantageous in polar codes.
  • very little work has been done to identify, construct and exploit automorphisms outside the permuted factor graphs.
  • a set of techniques is provided to identify and construct automorphisms, widening the set of permutations that can be easily constructed and exploited.
  • a technique is provided to construct a frozen set of bits that enables a given automorphism, making sure that if a particularly advantageous permutation is designed, it does not have to cause any rate loss.
  • a scrambler 303 insertion technique is proposed based on code automorphisms for product polar- codes, enabling a technique unavailable with product polar codes so far.
  • a decoding approach is proposed based on the scrambler insertion that is shown to improve the BER of the FEC scheme.
  • FIG. 8 shows a method 800 for product polar-code decoding according to an embodiment of the invention.
  • the method 800 can be performed by the device 300.
  • the method 800 comprises a step 801 of receiving a codeword matrix 304 encoded based on a product polar-code. Further, a step 802 of determining a first matrix 305 by scrambling the received codeword matrix 304 using a scrambler 303.
  • the step 80132 of determining the first matrix 305 comprises scrambling codeword bits of the received codeword matrix 304.
  • the method 800 also comprises a step 803 of polar-decoding one or more columns of the first matrix using a column-decoder and providing a resulting hard message or soft message to a row-decoder.
  • the method 800 comprises a step 805 of polar- decoding one or more rows of the second matrix 307 using the row-decoder 301, and providing a resulting hard message or soft message 306b to the column decoder 302.
  • FIG. 9 shows a method 900 for product polar-code encoding according to an embodiment of the invention.
  • the method 900 may be performed by the device 400.
  • the method 900 comprises a step 901 of obtaining scrambling information 401 indicative of one or more scrambling instructions available at a decoding device 300 for product polar-code decoding. Further, a step 902 of determining an input matrix 402 comprising a frozen set of bits, wherein an arrangement of the frozen set of bits in the input matrix 402 is determined based on the scrambling information 401.
  • the method also comprises a step 903 of polar-encoding the input matrix 402 based on a product polar-code to obtain a codeword matrix 304, and a step 904 of transmitting the codeword matrix 304 to the decoding device 300.

Abstract

The disclosure relates to the field of channel coding with polar codes, in particular, relates to product polar-code encoding and decoding. The disclosure presents, accordingly, a device for product polar-code decoding, a device for product polar-code encoding, and corresponding methods. The polar-code decoding includes determining a first matrix by scrambling a received codeword matrix using a scrambler, and polar-decoding one or more columns of the first matrix using a column-decoder. The polar-code encoding comprises obtaining scrambling information indicative of one or more scrambling instructions available at the polar-code decoding, determining an input matrix comprising a frozen set of bits, wherein an arrangement of the frozen set of bits in the input matrix is determined based on the scrambling information, and polar-encoding the input matrix based on a product polar-code to obtain the codeword matrix.

Description

DEVICES FOR PRODUCT POLAR-CODE ENCODING AND DECODING
TECHNICAL FIELD
The present disclosure relates to the field of channel coding using polar codes, in particular, relates to product polar-code encoding and product polar-code decoding. The disclosure presents, accordingly, a device for product polar-code decoding, a device for product polar- code encoding, and corresponding methods. In particular, embodiments of the disclosure are directed to a product polar-code decoding process that employs a scrambler that scrambles a received codeword matrix before column-decoding and/or before row-decoding of the received codeword matrix.
BACKGROUND
Channel codes are essential in all digital communications systems. A system for forward error correction (FEC) coding, also called a coding scheme, consists of an encoder at the transmitter side and a decoder at the receiver side. The encoder adds redundancy to the data to be transmitted, i.e., it provides additional redundant data. The decoder exploits this redundancy to correct data transmission errors. Ideally, the receiver can thus obtain the original data free of errors despite a noisy communication channel, over which the data has been transmitted. In such a system, the data to be transmitted (also termed “information word”) is given to the encoder, which produces the “codeword”, which contains the redundancy. This codeword is then transmitted over the noisy communication channel, which typically introduces errors. The output vector of the channel is provided to the decoder, which uses the received codeword (including errors) to produce estimates of the transmitted codeword, and ultimately obtains the transmitted data. The set of possible codewords is called the code, or the “channel code”, and this disclosure is particularly concerned with such a code.
Polar codes are linear block codes that rely on the polarization effect, which allows sorting bit positions of the data to be transmitted (also called bit-channels) in order of reliability. As the code length goes toward infinity, the polarization phenomenon influences the reliability of the bit-channels, which are either completely noisy or completely noiseless. Even more, the fraction of noiseless bit-channels equals the channel capacity. For finite practical code lengths, the polarization of bit-channels is incomplete, therefore, there are bit-channels that are partially noisy. The polar encoding process consists of the classification of the bit-channels in the data to be transmitted into two groups: K good bit-channels will carry the information bits and are indexed by the information set I, and N-K bad bit-channels are fixed to a predefined value (usually 0) and are indexed by the frozen set F. In case of finite code lengths, the K best bit-channels, i.e. the ones with the highest reliability, are selected to form the set of information bits, while the remaining bit-channels are frozen, i.e., are selected to form a set of frozen bits.
Arikan polar codes are based on the kernel matrix:
Encoding such a polar code of length N = 2n and information length K works as follows. The frozen set F of size N-K is chosen, as described above. The bits uL of an input vector u are set to 0 for i G F and to the information bits otherwise. A codeword x is computed as x = uT with the transformation matrix denoting the //-fold Kronecker product.
Most polar code decoding algorithms are based on the Successive Cancellation (SC) decoding algorithm, which is inherently sequential. It can be viewed as a binary tree search, wherein bits are estimated at leaf nodes, and the tree is traversed depth-first, with priority given to the left branch. In SC decoding, the decoder starts with a decision for bit u± and feeds this decision back into the decoding process. Then it makes a decision of bit u2 and feeds this decision back into the decoding process. It proceeds in this fashion until it obtains the design for the last bit liw.
Product codes are a class of error-correction codes, which are constructed by encoding a matrix of information symbols row-wise with a row component code, and subsequently column-wise using a column component code. The twofold encoding acts as a parallel concatenation of the row and column component codes. Product polar-codes have been proposed in this respect, wherein systematic polar codes can be used as component codes. Information bits are arranged in a Kr x Kc array, and then the code Cr is used to encode Kc rows independently. Afterwards, Nr columns obtained in the previous step are encoded using code Cc. The result is a Nr x Nc array, wherein the rows are codewords of the code Cr, and the columns are codewords of the code Cc. Product codes can be decoded by sequentially decoding rows and column component codes. The product code decoder typically decodes first all the row codewords. Then, using the results of the row-decoding, the decoder decodes all the column codewords. Then, the decoder proceeds in this fashion for a certain number of iterations/alternations, and produces estimates of the transmitted bits. Soft-input/soft-output decoders are normally used to improve the decoding performance by iterating the decoding of rows and columns and exchanging soft information between the two decoders.
Polar code decoding suffers from long decoding latency, due to the sequential nature of the SCbased decoding. Product codes can be decoded with a high degree of parallelism, but good error correction performance comes at the cost of complex soft-in-soft-out decoding.
Using polar codes as constituent codes raises further the problem of combining effectively product decoding and component code decoding. For powerful product decoding, the information output from the component code decoding needs to be soft. However, the most effective decoders for polar codes, based on SC, return hard information. Soft-output decoding of polar codes is inherently suboptimal, since polar codes achieve capacity under SC decoding, and are constructed targeting SC-based decoding algorithms.
SUMMARY
Embodiments of the invention presented in this disclosure base on the following further considerations:
Product and product-like codes can generally benefit from variations between the row and column decoding phases, wherein message passing can incur trapping sets and soft information patterns that are hard to correct.
Further, decoding of polar codes has been shown to benefit from the consideration of permuted versions of the codeword, and of the encoding factor graph. In particular, working with code automorphisms, namely with permutations mapping codewords into codewords, may simplify the SC decoding algorithm, since they do not change the frozen set of bits of the code. In fact, a codeword permutation maps each codeword to another codeword, which can be decoded to a source vector linked to the original source vector through precoding. This precoding may change the original frozen set. Automorphisms are permutations on the codeword, which guarantee that the frozen set of the permuted codeword is the same as before. Even if some polar code automorphisms do not depend on the frozen set, others do.
However, product codes based on non- systematic polar codes currently lack the flexibility that other concatenation schemes have in terms of choice of interleavers. In fact, a unique interleaver may be used in the decoding, namely a row-to-column interleaver. This can limit the errorcorrection performance (e.g., low Block Error Rate (BLER) or Bit Error Rate (BER) performance), and make this technology less appealing.
In view of the above-mentioned problems and disadvantages, embodiments of the present invention aim to improve product polar-code encoding and product polar-code decoding. An objective is to improve, in particular, the BER (or BLER) performance of a device for product polar-code decoding. Especially, this should be achieved in the case of Soft Cancellation (SCAN) based decoding. Further, a goal is to provide an effective product polar-code encoding and decoding scheme.
The objective is achieved by the embodiments of the invention as described in the enclosed independent claims. Advantageous implementations of the embodiments of the invention are further defined in the dependent claims.
In particular, this disclosure proposes to insert a specific scrambler as a row-to-column interleaver, in order to improve the BER performance of a product polar-code decoding device. The scrambler may be defined by a permutation, which scrambles the codeword bits of a codeword matrix before the column-decoding. Among these permutations, a particular focus is given in this disclosure to automorphisms, which leave the codebook intact. Even if some polar code automorphisms may be described through a polynomial formalism, others may not, and may heavily depend on the choice of the frozen set of bits. This disclosure therefore proposes also ways to design the frozen set of bits for a product polar-code, in order to enable certain automorphisms. As a consequence, beneficial permutations can be applied on the codeword without changing the frozen set.
A first aspect of this disclosure provides a device for product polar-code decoding, the device comprising a row-decoder, a column-decoder, and a scrambler, and the device being configured to: receive a codeword matrix encoded based on a product polar-code; determine a first matrix by scrambling the received codeword matrix using the scrambler; polar-decode one or more columns of the first matrix using the column-decoder and provide a resulting hard message or soft message to the row-decoder; determine a second matrix; polar-decode one or more rows of the second matrix using the row-decoder and provide a resulting hard message or soft message to the column decoder; wherein the scrambler is configured to scramble codeword bits of the received codeword matrix to determine the first matrix.
The device of the first aspect may be a decoder, or may be part of a decoder. The received codeword matrix may be a codeword matrix transmitted by an encoder over a channel between encoder and decoder. The received codeword matrix may accordingly comprise a set of information bits or symbols, and a frozen set of bits. The hard message or soft message may be output by the respective decoder, and carry information regarding the decoding or encoding, respectively. The soft messages may comprise log-likelihood ratios of decoded or encoded bits. The hard message may comprise decoded or encoded bits.
By using the scrambler to scramble the received codeword matrix before the column-decoding, the BER of the device of the first aspect can be improved. At the same time, an effective product polar-code decoding scheme is enabled. Notably, the device is compatible with performing a SCAN-based decoding. In this case, the decoders provide soft output, i.e., the soft messages.
In an implementation form of the first aspect, the device is configured to: determine the second matrix by scrambling the received codeword matrix using the scrambler, wherein the scrambler is configured to scramble the codeword bits of the received codeword matrix to determine the second matrix.
That is, the device may further use the scrambler before the row-decoding, wherein the BER (or BLER) can be further improved.
In an implementation form of the first aspect, the scrambler is configured to scramble only the codeword bits of the received codeword matrix to determine the first matrix and/or the second matrix. In an implementation form of the first aspect, the scrambler is configured leave a frozen set of bits of the received codeword matrix unaltered to determine the first matrix and/or the second matrix.
In an implementation form of the first aspect, the device is configured to: determine an arrangement of a frozen set of bits in the received codeword matrix; determine a scrambling instruction, from one or more scrambling instructions, based on the determined arrangement of the frozen set of bits; and determine the first matrix and/or the second matrix by scrambling the received codeword matrix according to the determined scrambling instruction using the scrambler.
The scrambling instruction may advantageously leave the frozen set of bits unaltered.
In an implementation form of the first aspect, each of the one or more scrambling instructions is associated with one arrangement of one or more predetermined arrangements of the frozen set of bits in the received codeword matrix.
In an implementation form of the first aspect, the received codeword matrix and the first matrix belong to the same codebook; and/or the received codeword matrix and the second matrix belong to the same codebook.
In an implementation form of the first aspect, the first matrix and the second matrix are codeword matrices of the product polar-code.
Thus, automorphisms may be used for a particular good performance of the device.
In an implementation form of the first aspect, the second matrix is the received codeword matrix.
In an implementation form of the first aspect, the device is configured to: polar-decode all columns of the first matrix in parallel using the column-decoder; and/or polar-decode all rows of the second matrix in parallel using the row-decoder.
In an implementation form of the first aspect, the device is further configured to: alternatingly polar-decode further the one or more columns of the first matrix and polar-decode further the one or more rows of the second matrix, and exchange resulting hard messages or soft messages between the column decoder and the row decoder.
In an implementation form of the first aspect, the device is configured to: modify the first matrix and/or the second matrix using the scrambler after each of one or more of the alternations.
In an implementation form of the first aspect, the device is configured to: perform the alternating polar-decoding of the one or more columns and of the one or more rows, respectively, until a consensus on a decoded codeword matrix is reached between the row-decoder and the column-decoder.
The received codeword matrix may be a codeword matrix as transmitted by a device for product polar-code encoding over a channel to the device of the first aspect. Thereby, the codeword matrix may be altered by noise. The device of the first aspect may reach the decoded codeword matrix based on the consensus in spite of the noise alteration.
A second aspect of this disclosure provides a device for product polar-code encoding, the device being configured to: obtain scrambling information indicative of one or more scrambling instructions available at a decoding device for product polar-code decoding; determine an input matrix comprising a frozen set of bits, wherein an arrangement of the frozen set of bits in the input matrix is determined based on the scrambling information; and polar-encode the input matrix based on a product polar-code to obtain a codeword matrix; and transmit the codeword matrix to the decoding device.
The device thus supports the device of the first aspect, in that it selects the frozen set of bits according to the scrambling instructions, which are usable at the device of the first aspect. This allows the device of the first aspect to implement the scrambler according to these scrambling instructions, so that the advantages described above are achieved.
A third aspect of this disclosure provides a method for product polar-code decoding, the method comprising: receiving a codeword matrix encoded based on a product polar-code; determining a first matrix by scrambling the received codeword matrix using a scrambler; polar-decoding one or more columns of the first matrix using a column-decoder and providing a resulting hard message or soft message to a row-decoder; determining a second matrix; polar-decoding one or more rows of the second matrix using the row-decoder and providing a resulting hard message or soft message to the column decoder; wherein determining the first matrix comprises scrambling codeword bits of the received codeword matrix.
In an implementation form of the third aspect, the method comprises: determining the second matrix by scrambling the received codeword matrix using the scrambler, wherein the scrambler is configured to scramble the codeword bits of the received codeword matrix to determine the second matrix.
In an implementation form of the third aspect, the scrambler is configured to scramble only the codeword bits of the received codeword matrix to determine the first matrix and/or the second matrix.
In an implementation form of the third aspect, the scrambler is configured leave a frozen set of bits of the received codeword matrix unaltered to determine the first matrix and/or the second matrix.
In an implementation form of the third aspect, the method comprises: determining an arrangement of a frozen set of bits in the received codeword matrix; determining a scrambling instruction, from one or more scrambling instructions, based on the determined arrangement of the frozen set of bits; and determining the first matrix and/or the second matrix by scrambling the codeword matrix according to the determined scrambling instruction using the scrambler.
In an implementation form of the third aspect, each of the one or more scrambling instructions is associated with one arrangement of one or more predetermined arrangements of the frozen set of bits in the received codeword matrix.
In an implementation form of the third aspect, the codeword matrix and the first matrix belong to the same codebook; and/or the codeword matrix and the second matrix belong to the same codebook.
In an implementation form of the third aspect, the first matrix and the second matrix are codeword matrices of the product polar-code. In an implementation form of the third aspect, the second matrix is the received codeword matrix.
In an implementation form of the third aspect, the method comprises: polar-decoding all columns of the first matrix in parallel using the column-decoder; and/or polar-decoding all rows of the second matrix in parallel using the row-decoder.
In an implementation form of the third aspect, the method comprises: alternatingly polar- decoding further the one or more columns of the first matrix and polar-decoding further the one or more rows of the second matrix, and exchanging resulting hard messages or soft messages between the column decoder and the row decoder.
In an implementation form of the third aspect, the method comprises: modifying the first matrix and/or the second matrix using the scrambler after each of one or more of the alternations.
In an implementation form of the third aspect, the method comprises: performing the alternating polar-decoding of the one or more columns and of the one or more rows, respectively, until a consensus on a decoded codeword matrix is reached between the row-decoder and the columndecoder.
The method of the third aspect and its implementation forms achieve the same advantages as the device of the first aspect and its respective implementation forms.
A fourth aspect of this disclosure provides a method for product polar-code encoding, the method comprising: obtaining scrambling information indicative of one or more scrambling instructions available at a decoding device for product polar-code decoding; determining an input matrix comprising a frozen set of bits, wherein an arrangement of the frozen set of bits in the input matrix is determined based on the scrambling information; and polar-encoding the input matrix based on a product polar-code to obtain a codeword matrix; and transmitting the codeword matrix to the decoding device.
The method of the fourth aspect achieves the same advantages as the device of the second aspect. A fifth aspect of this disclosure provides a computer program comprising instructions which, when executed by a computer of a decoding device, cause the computer to perform a method according to the third aspect or fourth aspect or any implementation for thereof.
A sixth aspect of the present disclosure provides a non-transitory storage medium storing executable program code which, when executed by a processor, causes the method according to the third aspect or fourth aspect any implementation form thereof to be performed.
It has to be noted that all devices, elements, units and means described in the present application could be implemented in the software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionalities described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity which performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements, or any kind of combination thereof.
BRIEF DESCRIPTION OF DRAWINGS
The above described aspects and implementation forms will be explained in the following description of specific embodiments in relation to the enclosed drawings, in which
FIG. 1 illustrates conventional product polar-code encoding.
FIG. 2 illustrates conventional product-polar code decoding.
FIG. 3 shows a device for product polar-code decoding according to an embodiment of the invention.
FIG. 4 shows a device for product polar-code encoding according to embodiment of the invention. FIG.5 illustrate a product polar-code interleaved decoding as performed by a decoding device according to an embodiment of the invention. FIG.6 illustrates an encoding scheme for interleaved product polar-codes. FIG.7 shows a BER performance of standard decoding device and a device for product polar-code decoding according to an embodiment of the invention. FIG.8 shows a method for product polar-code decoding according to an embodiment of the invention. FIG.9 shows a method for product polar-code encoding according to embodiment of the invention. DETAILED DESCRIPTION OF EMBODIMENTS In the following, conventional encoding and decoding methods for product polar-codes are first introduced. Then, embodiments of the invention are described, which base on the idea of introducing a scrambler into the row-to-column decoding algorithm compared to the conventional product polar-code decoding. In particular, details regarding devices according to embodiments of the invention for product polar-code decoding and product polar-code encoding are described, respectively. Finally, some example implementations of the scrambler are provided, along with their respective BER performances for comparison. FIG.1 shows a conventional product polar-code encoding process. The encoding process can generally be expressed as ^^ ∙ ^ ∙ ^^, wherein Tc and Tr are the transformation matrices for the column and row component polar codes, respectively. These transformation matrices may encode the input matrix U into a codeword matrix X. The input matrix U comprises a set of information bits and a frozen set of bits. In practice, Tc and Tr are particularly the transformation matrices for two polar codes of length Nc and Nr, respectively. The resulting product code is a product polar code. Product polar-code encoding is performed by polar- encoding the rows of the input matrix U, then polar-encoding the columns of the resulting matrix, in order to obtain the codeword matrix X. The row and column encoding can, however, be swapped without changing the resulting codeword matrix X. The codeword matrix X may then be transmitted over a channel to a receiver.
FIG. 2 shows a conventional product polar-code decoding process at the receiver. After the transmitter of FIG. 1 transmits the codeword matrix X over the channel, the receiver receives the matrix F, i.e., obtains the received codeword matrix F. The decoding process then comprises the decoding of the row and column component polar codes iteratively, with information exchanged between the row and column decoding phases in a product-like manner. Product polar-code decoding can be parallelized easily, as all rows of a received codeword matrix F can be processed in parallel, and all columns of the received matrix F can be processed in parallel, which substantially reduces the decoding latency for a length-A polar code. Given the received codeword matrix F, the row and column decoding processes are performed alternatingly, with hard messages or soft messages exchanged between the row-decoder and the column-decoder as is known in the art. When a consensus is reached, or after a certain number of iterations, a decoded codeword matrix is output.
FIG. 3 shows a device 300 for product polar-code decoding according to an embodiment of the invention. The device 300 comprises a row-decoder 301, a column-decoder 302, and a scrambler 303. The row-decoder 301 and the column-decoder 302 may be reused from the conventional product polar-code decoding process (see FIG. 2). In particular, the device 300 may be based on a conventional device configured to perform the conventional product polar- code decoding process, however, the conventional device does at least not comprise the scrambler 303.
The device 300 is configured to receive a codeword matrix 304. The received codeword matrix 304 is encoded based on a product polar-code. The device 300 may receive the codeword matrix 304 from a device for product polar-code encoding (as, for example, the device 400 described with respect to FIG. 4). That is, the received codeword matrix 304 may be a codeword matrix send by the encoding device and received by the decoding device 300 over a noisy channel.
The device 300 is further configured to determine a first matrix 305 based on the received codeword matrix 304. In particular, the device 300 may obtain the first matrix 305 by scrambling the received codeword matrix 304 using the scrambler 303. That is, the device 300 may be configured to apply the scrambler 300 to the received codeword matrix 304. The scrambler 303 may scramble the received codeword matrix 304 according to a determined scrambling instruction. The device 300 may determine the scrambling instruction from one or more scrambling instructions, for instance, stored in a memory of the device 300 or obtained from an external device.
Notably the scrambler 303 is configured to scramble codeword bits of the received codeword matrix 304 to determine the first matrix 305. The scrambler 303 may thereby be configured to scramble only the codeword bits of the received codeword matrix 304 to determine the first matrix 305. The scrambler 303 may also be configured to leave a frozen set of bits of the received codeword matrix 304 unaltered (when scrambling the codeword matrix 304) to determine the first matrix 305. In an embodiment, the device 300 may determine an arrangement of a frozen set of bits in the received codeword matrix 304, and may further determine the scrambling instruction (for obtaining the first matrix 305) based on the determined arrangement of the frozen set of bits.
The device 300 is further configured to polar-decode one or more columns of the first matrix 305 using the column-decoder 302. That is, the device 300 may be configured to operate the column-decoder 302 with the first matrix 305 as an input. Further, the device 300 may provide a resulting hard or soft message 306a to the row-decoder 301. The hard or soft message 306a may result from the column-decoding, and/or may indicate information regarding the columndecoding or the result of the column-decoding (hard-message and soft-message exchange may be as known from the art).
The device 300 is further configured to determine a second matrix 307. As an example, the second matrix 307 may be identical to the received codeword matrix 304, i.e., the device 300 may determine the second matrix 307 as being the received codeword matrix 304. As another example (as indicated by the dashed arrow in FIG. 3), the device 300 may be configured to determine the second matrix 307 by scrambling the received codeword matrix 304 using the scrambler 303. Thereby, the scrambler 303 is configured to scramble the codeword bits of the received codeword matrix 304 to determine the second matrix 307. For example, the scrambler
303 may scramble only the codeword bits of the received codeword matrix 304 to determine the second matrix 307. The scrambler 303 may also be configured to leave a frozen set of bits of the received codeword matrix 304 unaltered when scrambling the received codeword matrix
304 to determine the second matrix 307. The scrambling of the received codeword matrix 304 may be based on a different scrambling instruction to obtain the second matrix 307, than a scrambling instruction to obtain the first matrix 305. However, also the same scrambling instruction may be used for obtaining the first matrix 305 and the second matrix 307. Again, the device 300 may be configured to determine the scrambling instruction (for scrambling the second matrix 307) from the multiple scrambling instructions. In an embodiment, the device 300 may determine an arrangement of a frozen set of bits in the received codeword matrix 304, and may further determine the scrambling instruction, from the one or more scrambling instructions, based on the determined arrangement of the frozen set of bits. Each of the one or more scrambling instructions may be associated with one arrangement of one or more predetermined arrangements of the frozen set of bits in the received codeword matrix 304.
Further, the device 300 is configured to polar-decode one or more rows of the second matrix 307 using the row-decoder 301. That is, the device 300 may be configured to operate the column-decoder 302 with the first matrix second matrix 307 as an input. The device 300 is further configured to provide a resulting hard or soft message 306b to the column decoder 302 (again, the hard-message or soft-message exchange may be as known from the art).
The device 300 may be configured to alternatingly perform polar-decoding of the one or more columns and of the one or more rows, respectively. In particular, the device 300 may alternatingly polar-decode further the one or more columns of the first matrix 305 on the one hand side, and polar-decode further the one or more rows of the second matrix 307 on the other hand side. It is possible that at least one of the first matrix 305 and the second matrix 307 is scrambled again by the scrambler 303, based on some scrambling instruction, between one or more or each alternation. The device 300 may specifically perform the alternating polar- decoding until a consensus on a decoded codeword matrix 308 is reached between the rowdecoder 301 and the column-decoder 302.
FIG. 4 shows a device 400 for product polar-code encoding according to an embodiment of the invention. The device 400 may be designed in dependency of the device 300, or vice versa.
In particular, the device 400 is configured to obtain scrambling information 401. For instance, the device 400 may receive the scrambling information 401 from the device 300 (as exemplarily indicated by the dashed arrow in FIG. 4), or from some other device. The scrambling information 401 is indicative of one or more scrambling instructions, which are available and/or used at the decoding device 300 for product polar-code decoding. The scrambling information 401 may in particular be indicative of the above-described scrambling instructions, which scrambling instructions may be determined by the device 300 for the scrambling of the codeword matrix 304, in order to obtain the first matrix 305 or in order to obtain the second matrix 307, respectively.
The device 400 is further configured to determine an input matrix 402 (for example, at a matrix determination block 403). The input matrix 402 comprises a frozen set of bits, wherein an arrangement of the frozen set of bits in the input matrix 402 is determined based on the scrambling information 401.
Further, the device 400 is configured to polar-encode the input matrix 402 based on a product polar-code, in order to obtain a codeword matrix, for instance, the codeword matrix 304 described above (as exemplarily indicated in FIG. 4). The device 400 may to this end comprise, for example, a polar-encoder block 404 to obtain the codeword matrix from the input matrix 402. Further, the device 400 is configured to transmit the codeword matrix 304 to a decoding device, for instance, to the decoding device 300 of FIG. 3.
The device 300 and/or the device 400 may comprise a processor or processing circuitry (not shown) configured to perform, conduct or initiate the various operations of the device 300 and/or the device 400 described herein. The processing circuitry may comprise hardware and/or the processing circuitry may be controlled by software. The hardware may comprise analog circuitry or digital circuitry, or both analog and digital circuitry. The digital circuitry may comprise components such as application-specific integrated circuits (ASICs), field- programmable arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors.
The device 300 and/or the device 400 may further comprise memory circuitry, which stores one or more instruction(s) that can be executed by the processor or by the processing circuitry, in particular under control of the software. For instance, the memory circuitry may comprise a non-transitory storage medium storing executable software code which, when executed by the processor or the processing circuitry, causes the various operations of the device 300 and/or the device 400 to be performed. In one embodiment, the processing circuitry comprises one or more processors and a non- transitory memory connected to the one or more processors. The non-transitory memory may carry executable program code which, when executed by the one or more processors, causes the device 300 and/or the device 400 to perform, conduct or initiate the operations or methods described herein.
As described above, embodiments of the invention propose to introduce the scrambler 303 (see FIG. 3) into the conventional product polar-code decoding process, wherein the scrambler 303 may be a codeword-scrambler that scrambles the elements of received codeword matrix 305.
FIG. 5 illustrates in this respect a product polar-code interleaved decoding process as it may be performed by the decoding device 300 according to an embodiment of the invention, i.e., using the scrambler 303 as interleaver.
In FIG. 5, the received codeword matrix 304 is the received matrix Y, and may be scrambled by using the scrambler 303 as described above. This results in the first matrix 305, which is the scrambled matrix Y‘ in FIG. 5. This first matrix 305 may then be decoded by the columndecoder 302 as described above, and the resulting hard or information 306a may be passed to the row-decoder 301 (e.g., after de-scrambling). Notably, the column-decoding may also produce an (intermediate) column-decoded matrix 501. It is worth noting that the scrambler 303 - in particular, the scrambling instruction based on which the scrambler 303 scrambles the first matrix 305 - may be changed at each of multiple alterations of column-decoding as described above. In addition, it is also worth noting that the second matrix 307 described above may be the codeword matrix 304 or may be a scrambled matrix Y‘ ‘ (not shown), and this second matrix 307 may be decoded by the row-decoder 301 as described above. Resulting hard or soft messages 306b may be passed to the column-decoder 302. Notably, the row-decoding may also produce an intermediate row-decoded matrix 502.
A challenge given by the introduction of the scrambler 303, is how to design the scrambler 302, particularly, how to determine the scrambling instructions mentioned above. In this respect, as shown in FIG. 6, at the device 400 for encoding, the input matrix 402 - also input matrix U - may be precoded to get an alternative input matrix U‘, which is encoded through product polar- code encoding to obtain a scrambled codeword matrix X‘. The scrambled codeword matrix X‘ is an interleaved version of the codeword matrix 304 - also codeword matrix X. From the encoding device 400 point of view, it is not necessary to actually perform the precoding, in order to obtain the codeword matrix X‘, since it is obtainable through the interleaver from the codeword matrix X. However, from the point of view of polar-code design, it may be beneficial to have knowledge of this full encoding scheme, in order to determine constraints of the scrambler 303, or definition of the scrambling instructions.
In fact, it is beneficial to know the frozen set of bits of the alternative input matrix U‘, in order to perform the column-decoding depicted in FIG. 5. If the scrambling performed by the scrambler 303 according to the scrambling instruction is an automorphism of the polar-code, i.e., the scrambled matrix Y‘ shown in FIG. 5 is still a valid codeword of the original polar- code, then the alternative input matrix U‘ has the same frozen set of bits as of input matrix U, and the column-decoding stage does not need to be changed. In the following, automorphisms of the product polar-code are proposed to create the codeword scrambler 303 to be used in the decoding process depicted in FIG. 5.
In order to find one or more automorphisms of a product polar-code, the property that a product polar-code is again a polar code may be used. For instance, if the Nc rows of the codeword matrix X are chained as the segments of an Nc Nr vector x, so that the first row constitutes the first segment, the second row the second segment, etc., given the construction of polar codes as products of smaller codes, the vector x is the codeword of a polar code of length N=Nc Nr. The input vector u of this polar code can be obtained by appending the rows of the input matrix U. As a consequence, the automorphism set of the polar code of length N is the same of the initial product polar-code. Automorphisms that are independent on the frozen set of bits can be found as proposed in prior art (e.g. as described in ‘M. Bardet, V. Dragoi, A. Otmani and J. P. Tillich, “ Algebraic properties of polar codes from a new polynomial formalism" in IEEE International Symposium on Information Theory (ISIT), Barcelona, Spain, July 2016), while other automorphisms that depend on the frozen set of bits may be found by brute force.
In addition to the automorphisms proposed in the prior art, which are independent of the frozen set of bits, here two further methods are proposed to obtain automorphisms, which are frozen set dependent instead. These automorphisms can be used as codeword scrambler 303 in the proposed interleaved product polar-code decoding shown in FIG. 5 (performed by device 300). A first approach is based on generalized shifts. It can be shown that given an N-bit polar codeword, dividing it in sections of N/4 bits and cyclically shifting them, as in
A B C D D A B C is an automorphism, i.e. the shifted vector is a codeword as well, mapping to a source vector with the same frozen set of bits. Based on this idea, a wider set of general permutations that are automorphisms can be identified.
For example, a codeword of N bits may be taken and the code may be divided in sections W of length N/2x. Then, in each section, a subsection S of length N/2x or N/22x may be identified. Further, section Sk in W2i may be swapped with section SI in W2i+1, for all i. These swaps can be combined with each other, without breaking the polar code partial order, and are thus guaranteed to maintain the frozen set of bits intact. They are thus automorphisms.
Cyclic shifts can also be constructed through the above permutations. For example, assuming a generic codeword with N=8 bits:
A B C D E F G H
The codeword may be divided in 4 sections W of 2 bits, then subsection S=W may be identified in each. SO may be swapped with SI and S2 may be swapped with S3, obtaining:
C D A B G H E F
The codeword may be divided in 2 sections W of 4 bits, then subsection S may be identified as the first half of W in each. SO may be swapped with SI, obtaining:
G H A B C D E F
The example is valid the letters in the codeword are expanded as 21 bits. A second approach is based on intra-set permutations. Codeword permutations are not guaranteed to preserve the partial order. However, given a frozen set of bits, some partial order violation may be masked by the distribution of frozen bits, leading to an extended set of automorphisms. For instance, considering the check matrix H of a polar code (or any binary linear code), the columns may be denoted by di, such that
Further, the set of different column vectors may be denoted D = {d(l), d(2), . . . , d(M)}, and for each, the set of corresponding column indices may be determined as: wherein m = 1, 2 . . . M. Note that the sets Sm form a partitioning of [N], Then the permutation P is an automorphism, if it comprises only permutations within each set Sm.
The following example assumes N = 8 and F = {0, 1, 4}. This leads to: and the index sets
Thus, any permutation P swapping positions 0 and 2 and/or swapping positions 1 and 3 and/or swapping positions 4 and 6 and/or swapping positions 5 and 7 is an automorphism.
The proposed interleaved decoding of product polar-codes, i.e. using the scrambler 303, may improve the error-correction performance of the decoding device 300. FIG. 7 shows the Bit Error Rate (BER) performance of proposed decoder for different scramblers, comparing the result with standard product polar decoder. Code parameters are N=256x256 and K 24()x240.i while SCL-SOFT decoder with list size L=8 is used. All curves have been obtained by inserting a column-wise scrambler 303 between the row-decoding phase and the column-decoding phase. In particular, as:
1. Decode rows.
2. Build standard product polar-code columns.
3. Scramble the bits of each column separately.
4. Decode columns.
5. Descramble the bits of each column separately.
6. Build standard product polar-code rows.
For intra-set permutation, the scrambling pattern of each column may be the same, and may be chosen randomly given the permutation sets allowed by a DE/GA polar code construction for N=256 and K=240. The pattern does not change with iterations. For the N/2 cyclic shift curve, the scrambling pattern of each column may be the same, and may correspond to an N/2 cyclic shift. Again, the pattern does not change with iterations. Finally, for the N/8 cyclic shift curve, the scrambling pattern of each column may be equivalent to a cyclic shift of p*N/8 bits, where p may be chosen randomly and separately for each column, 0<=p<=7. The pattern does not change with iterations. The standard decoding device without proposed interleaving, i.e., without scrambler 303, is included as a reference. Given that the existence of some automorphisms depends on the frozen set of bits, it is possible to design ad-hoc frozen sets of bits to enable specific permutations or sets of permutations on the codeword. For instance, a polar code of length N and rate K/N may be assumed. Given a codeword x and a permutation π, the permuted codeword x’ can be obtained. Its source vector u’ may be inferred by re-encoding the codeword. The source vector thus obtained u’ is related to the source vector u of the original codeword through a precoding matrix. Bits in u’ are frozen only, if all the bits of u involved in its precoding are frozen as well. Then, the N-K frozen positions may be chosen as follows: 1. Take a standard polar code construction and obtain the related reliability order r, sorted from least reliable to most reliable position may be obtained. 2. i=0 3. Consider position i in the reliability order, obtaining j=ri 4. Freeze position j and any other position that composes u’j. In particular, freeze any position involved in the precoding of any newly frozen bit, until no new freezing occur. 5. i=i+1 6. Repeat steps 3 to 5 until N-K positions have been frozen Depending on the desired permutation, it may not be possible to match exactly rate N/K. The algorithm can be repeated avoiding the freezing of some positions j, and the frozen set can be chosen according to some performance metric, for example as the one with the minimum Hamming distance from the optimal frozen set. For example, an N=16 polar code may be considered with source vector u={A,B,C,D,E,F,G,H,I,L,M,N,O,P,Q,R}. Its codeword is consequently : x={ABCDEFGHILMNOPQR, BDFHLNPR, CDGHMNQR, DHQR, EFGHOPQR, FHPR, GHQR, HR, ILMNOPQR, LNPR, MNQR, NR, OPQR, PR, QR,R} where ABC is the XOR operation between A, B and C. A permutation π performed on x obtains a permuted codeword x'={ ABCDEFGHILMNOPQR, BDFHLNPR, CDGHMNQR, DHQR, GHQR, FHPR, EFGHOPQR, HR, QR, ILMNOPQR, R, NR, OPQR, PR, LNPR, MNQR} Re-encoding x’ obtains the source vector u'={ A, BIOQ, CEFHLNO, MD, EHOQ, FMNQ, EFGHLMNO, HMNQ, I, ILNO, LMNPQ, MQ, LMOP, MNPQ, LMPQ, MNQR} One of the possible reliability vectors for N=16 is r = {0124835 6910127 11131415} Assuming that a rate 7/16 is needed, 9 positions need to be frozen: i=0 j=0 u’0=A Since A is position 0 in u, 0 is frozen: i=1 j=1 u’0=BIOQ Further, positions 1(B), 8(I), 12(O), 14(Q) may be frozen, and 9,10,11,13 may be chained to guarantee the frozen bit dependencies. A possible frozen set enabling permutation π on a polar code of rate 7/16 is thus F={0,1,8,9,10,11,12,13}. Other possibilities would be:
F={4,7,8,9,10,l 1,12,13} and F={0, 3, 8, 9, 10,11,12,13}
Automorphism decoding is advantageous in polar codes. However, very little work has been done to identify, construct and exploit automorphisms outside the permuted factor graphs. Here, a set of techniques is provided to identify and construct automorphisms, widening the set of permutations that can be easily constructed and exploited. A technique is provided to construct a frozen set of bits that enables a given automorphism, making sure that if a particularly advantageous permutation is designed, it does not have to cause any rate loss. Further, a scrambler 303 insertion technique is proposed based on code automorphisms for product polar- codes, enabling a technique unavailable with product polar codes so far. A decoding approach is proposed based on the scrambler insertion that is shown to improve the BER of the FEC scheme.
FIG. 8 shows a method 800 for product polar-code decoding according to an embodiment of the invention. The method 800 can be performed by the device 300. The method 800 comprises a step 801 of receiving a codeword matrix 304 encoded based on a product polar-code. Further, a step 802 of determining a first matrix 305 by scrambling the received codeword matrix 304 using a scrambler 303. The step 80132 of determining the first matrix 305 comprises scrambling codeword bits of the received codeword matrix 304. The method 800 also comprises a step 803 of polar-decoding one or more columns of the first matrix using a column-decoder and providing a resulting hard message or soft message to a row-decoder. Further, a step 804 of determining a second matrix 307. Further, the method 800 comprises a step 805 of polar- decoding one or more rows of the second matrix 307 using the row-decoder 301, and providing a resulting hard message or soft message 306b to the column decoder 302.
FIG. 9 shows a method 900 for product polar-code encoding according to an embodiment of the invention. The method 900 may be performed by the device 400. The method 900 comprises a step 901 of obtaining scrambling information 401 indicative of one or more scrambling instructions available at a decoding device 300 for product polar-code decoding. Further, a step 902 of determining an input matrix 402 comprising a frozen set of bits, wherein an arrangement of the frozen set of bits in the input matrix 402 is determined based on the scrambling information 401. The method also comprises a step 903 of polar-encoding the input matrix 402 based on a product polar-code to obtain a codeword matrix 304, and a step 904 of transmitting the codeword matrix 304 to the decoding device 300.
The present invention has been described in conjunction with various embodiments as examples as well as implementations. However, other variations can be understood and effected by those persons skilled in the art and practicing the claimed invention, from the studies of the drawings, this disclosure and the independent claims. In the claims as well as in the description the word “comprising” does not exclude other elements or steps and the indefinite article “a” or “an” does not exclude a plurality. A single element or other unit may fulfill the functions of several entities or items recited in the claims. The mere fact that certain measures are recited in the mutual different dependent claims does not indicate that a combination of these measures cannot be used in an advantageous implementation.

Claims

1. A device (300) for product polar-code decoding, the device (300) comprising a rowdecoder (301), a column-decoder (302), and a scrambler (303), and the device (300) being configured to: receive a codeword matrix (304) encoded based on a product polar-code; determine a first matrix (305) by scrambling the received codeword matrix (304) using the scrambler (303); polar-decode one or more columns of the first matrix (305) using the column-decoder (302) and provide a resulting hard message or soft message (306a) to the row-decoder (301); determine a second matrix (307); polar-decode one or more rows of the second matrix (307) using the row-decoder (301) and provide a resulting hard message or soft message (306b) to the column decoder (302); wherein the scrambler (303) is configured to scramble codeword bits of the received codeword matrix (304) to determine the first matrix (305).
2. The device (300) according to claim 1, configured to: determine the second matrix (307) by scrambling the received codeword matrix (304) using the scrambler (303), wherein the scrambler (303) is configured to scramble the codeword bits of the received codeword matrix (304) to determine the second matrix (307).
3. The device (300) according to claim 1 or 2, wherein: the scrambler (303) is configured to scramble only the codeword bits of the received codeword matrix (304) to determine the first matrix (305) and/or the second matrix (307).
4. The device (300) according to one of the claims 1 to 3, wherein: the scrambler (303) is configured leave a frozen set of bits of the received codeword matrix (304) unaltered to determine the first matrix (305) and/or the second matrix (307).
5. The device (300) according to one of the claims 1 to 4, configured to: determine an arrangement of a frozen set of bits in the received codeword matrix (304); determine a scrambling instruction, from one or more scrambling instructions, based on the determined arrangement of the frozen set of bits; and determine the first matrix (305) and/or the second matrix (307) by scrambling the received codeword matrix (304) according to the determined scrambling instruction using the scrambler (303).
6. The device (300) according to claim 5, wherein: each of the one or more scrambling instructions is associated with one arrangement of one or more predetermined arrangements of the frozen set of bits in the received codeword matrix (304).
7. The device (300) according to one of the claims 1 to 6, wherein: the received codeword matrix (304) and the first matrix (305) belong to the same codebook; and/or the received codeword matrix (304) and the second matrix (307) belong to the same codebook.
8. The device (300) according to one of the claims 1 to 7, wherein: the first matrix (305) and the second matrix (307) are codeword matrices of the product polar-code.
9. The device (300) according to claim 1 or one of the claims 3 to 8, wherein: the second matrix (307) is the received codeword matrix (304).
10. The device (300) according to one of the claims 1 to 9, configured to: polar-decode all columns of the first matrix (305) in parallel using the column-decoder (302); and/or polar-decode all rows of the second matrix (307) in parallel using the row-decoder (301).
11. The device (300) according to one of the claims 1 to 10, further configured to: alternatingly polar-decode further the one or more columns of the first matrix (305) and polar-decode further the one or more rows of the second matrix (307), and exchange resulting hard messages or soft messages (306a, 306b) between the column decoder (302) and the row decoder (301).
12. The device (300) according to claim 11, configured to: modify the first matrix (305) and/or the second matrix (307) using the scrambler (303) after each of one or more of the alternations.
13. The device (300) according to one of the claims 10 to 12, configured to: perform the alternating polar-decoding of the one or more columns and of the one or more rows, respectively, until a consensus on a decoded codeword matrix (308) is reached between the row-decoder (301) and the column-decoder (302).
14. A device (400) for product polar-code encoding, the device (400) being configured to: obtain scrambling information (401) indicative of one or more scrambling instructions available at a decoding device (300) for product polar-code decoding; determine an input matrix (402) comprising a frozen set of bits, wherein an arrangement of the frozen set of bits in the input matrix (402) is determined based on the scrambling information (401); and polar-encode the input matrix (402) based on a product polar-code to obtain a codeword matrix (404); and transmit the codeword matrix (404) to the decoding device (300).
15. A method (800) for product polar-code decoding, the method (800) comprising: receiving (801) a codeword matrix (304) encoded based on a product polar-code; determining (802) a first matrix (305) by scrambling the received codeword matrix
(304) using a scrambler (303); polar-decoding (803) one or more columns of the first matrix (305) using a columndecoder (302) and providing a resulting hard message or soft message (306a) to a row-decoder (301); determining (804) a second matrix (307); polar-decoding (805) one or more rows of the second matrix (307) using the rowdecoder (301) and providing a resulting hard message or soft message (306b) to the column decoder (302); wherein determining (802) the first matrix (305) comprises scrambling codeword bits of the received codeword matrix (304).
16. A method (900) for product polar-code encoding, the method (900) comprising: obtaining (901) scrambling information (401) indicative of one or more scrambling instructions available at a decoding device (300) for product polar-code decoding; determining (902) an input matrix (402) comprising a frozen set of bits, wherein an arrangement of the frozen set of bits in the input matrix (402) is determined based on the scrambling information (401); and polar-encoding (903) the input matrix (402) based on a product polar-code to obtain a codeword matrix (404); and transmitting (904) the codeword matrix (304) to the decoding device (300).
17. A computer program comprising instructions which, when executed by a computer, cause the computer to perform a method (800, 900) according to claim 15 or 16.
EP20819723.6A 2020-12-03 2020-12-03 Devices for product polar-code encoding and decoding Pending EP4205282A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2020/084450 WO2022117190A1 (en) 2020-12-03 2020-12-03 Devices for product polar-code encoding and decoding

Publications (1)

Publication Number Publication Date
EP4205282A1 true EP4205282A1 (en) 2023-07-05

Family

ID=73698856

Family Applications (1)

Application Number Title Priority Date Filing Date
EP20819723.6A Pending EP4205282A1 (en) 2020-12-03 2020-12-03 Devices for product polar-code encoding and decoding

Country Status (3)

Country Link
EP (1) EP4205282A1 (en)
CN (1) CN116530022A (en)
WO (1) WO2022117190A1 (en)

Also Published As

Publication number Publication date
CN116530022A (en) 2023-08-01
WO2022117190A1 (en) 2022-06-09

Similar Documents

Publication Publication Date Title
US10326478B2 (en) Apparatus and method for encoding and decoding data in twisted polar code
Abbas et al. High-throughput VLSI architecture for GRAND
US7246294B2 (en) Method for iterative hard-decision forward error correction decoding
JP3451221B2 (en) Error correction coding apparatus, method and medium, and error correction code decoding apparatus, method and medium
JP4553330B2 (en) Encoding apparatus and method, decoding apparatus and method, information processing apparatus and method, and storage medium
EP3659261A2 (en) Encoder, decoder and transmitter
US20070067696A1 (en) System, transmitter, receiver, method, and computer program product for structured interleaved Zigzag coding
US7640462B2 (en) Interleaver and de-interleaver
US7231575B2 (en) Apparatus for iterative hard-decision forward error correction decoding
Cluzeau et al. Reconstruction of punctured convolutional codes
Jang et al. Rate matching for polar codes based on binary domination
US7526707B2 (en) Method and apparatus for encoding and decoding data using a pseudo-random interleaver
Hiller et al. Seesaw: An area-optimized FPGA viterbi decoder for PUFs
Alaoui et al. A low complexity soft decision decoder for linear block codes
EP4205282A1 (en) Devices for product polar-code encoding and decoding
EP2175581A2 (en) Turbo encoding and decoding communication system
Lee et al. Improved reconciliation with polar codes in quantum key distribution
Zhang et al. A flip-syndrome-list polar decoder architecture for ultra-low-latency communications
EP2406908B1 (en) Mimo communication method and devices
US8091012B2 (en) System and method for decreasing decoder complexity
CN110741562B (en) Pipelined forward error correction for vector signaling code channels
Raje et al. Review paper on study of various Interleavers and their significance
Huang et al. Efficient software method for decoding of the (71, 36, 11) quadratic residue code
Barbier et al. Overview of turbo-code reconstruction techniques
Chen et al. Fast algorithm for decoding of systematic quadratic residue codes

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20230331

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)