DEVICE AND METHOD FOR ENCODING OR DECODING MESSAGES BY MEANS OF A POLAR CODE

20220376707 · 2022-11-24

    Inventors

    Cpc classification

    International classification

    Abstract

    A device is configured for encoding an input sequence comprising message bits into a codeword using a polar code. The device is configured to sequentially encode each of a plurality of blocks of the input sequence by applying a sliding window to the input sequence, wherein each block of the input sequence is encoded based on an XOR operation of the block and a previous block of the input sequence to obtain a codeword block of the codeword, and sequentially output each obtained codeword block of the codeword.

    Claims

    1. A device for encoding an input sequence comprising message bits into a codeword using a polar code, the device comprising programmable hardware, wherein the device is configured to: sequentially encode each of a plurality of blocks of the input sequence by applying a sliding window to the input sequence, wherein each block of the input sequence is encoded based on an exclusive or (XOR) operation of the block and a previous block of the input sequence to obtain a codeword block of the codeword; and sequentially output each obtained codeword block of the codeword.

    2. The device of claim 1, wherein the previous block is a predetermined block or wherein the previous block is equal to the last block of the input sequence.

    3. The device of claim 1, wherein the device is further configured to apply a transformation matrix, T.sub.M/2, of a polar code of length M/2, wherein T.sub.M/2=T.sub.2.sup.⊕n, with n=log.sub.2(M) and M being a size of the sliding window, to the block and the previous block of the input sequence to obtain the codeword block of the codeword.

    4. The device of claim 2, wherein the device is further configured to calculate a first block on the basis of the predetermined block and the transformation matrix T.sub.M/2.

    5. The device of claim 1, wherein the device is further configured to: determine a reliability of bit positions of each block of the input sequence; determine an information set I.sub.i of size K.sub.i for each block of the input sequence, wherein K.sub.i corresponds to a size of a corresponding block of the message bits m.sub.i and wherein the set I.sub.i corresponds to the K.sub.i bit positions of each block of the input sequence having a highest reliability; and generate each block of the input sequence by placing the message bits m.sub.i in the positions defined by I.sub.i.

    6. A device for decoding a sequence of bits into an output sequence using a polar code, wherein the sequence of bits represents a codeword after a transmission over a communication channel, the device comprising programmable hardware, wherein the device is configured to: sequentially decode each of a plurality of blocks of the sequence of bits by applying a sliding window to obtain an auxiliary sequence; and process the auxiliary sequence to obtain the output sequence, wherein each block of the output sequence is processed based on an exclusive or (XOR) operation of a block of the auxiliary sequence and a previous block of the auxiliary sequence.

    7. The device of claim 6, wherein the device is further configured to obtain message bits from the output sequence.

    8. A method for encoding an input sequence comprising message bits into a codeword using a polar code, the method comprising: sequentially encoding each of a plurality of blocks of the input sequence by applying a sliding window to the input sequence; encoding each block of the input sequence based on an exclusive or (XOR) operation of the block and a previous block of the input sequence to obtain a codeword block of the codeword; and sequentially outputting each obtained codeword block of the codeword.

    9. A method for decoding a sequence of bits into an output sequence using a polar code, wherein the sequence of bits represents a codeword after a transmission over a communication channel, the method comprising: sequentially decoding each of a plurality of blocks of the sequence of bits by applying a sliding window to obtain an auxiliary sequence; and processing the auxiliary sequence to obtain the output sequence, wherein each block of the output sequence is processed based on an exclusive (XOR) operation of a block of the auxiliary sequence and a previous block of the auxiliary sequence.

    10. A non-transitory computer readable storage medium comprising a computer program comprising a program code for performing the method according to claim 8, when executed on a computer.

    Description

    BRIEF DESCRIPTION OF DRAWINGS

    [0033] The above described aspects and implementation forms of the present disclosure will be explained in the following description of exemplary embodiments in relation to the enclosed drawings, in which:

    [0034] FIG. 1 shows a communication system comprising a device for encoding an input sequence according to an embodiment;

    [0035] FIG. 2 shows an exemplary message encoded by a device according to an embodiment;

    [0036] FIG. 3 shows a schematic representation of matrices used to encode an input sequence according to an embodiment;

    [0037] FIG. 4 shows a schematic representation of an input sequence encoded by a device according to an embodiment;

    [0038] FIG. 5 shows a communication system comprising a device for encoding an input sequence according to an embodiment;

    [0039] FIG. 6 shows a communication system comprising a device for encoding an input sequence according to an embodiment;

    [0040] FIG. 7 shows a codeword encoded by a device according to an embodiment;

    [0041] FIG. 8 shows a method for encoding an input sequence comprising a message according to an embodiment; and

    [0042] FIG. 9 shows a method for decoding a sequence comprising a message according to an embodiment.

    DETAILED DESCRIPTION

    [0043] FIG. 1 shows a data communication system 100 comprising a device 101 (“encoder”) according to an embodiment of the present disclosure. The device 101 is configured to encode an input sequence u, which comprises the bits of a message m, into a codeword x using a polar code.

    [0044] The device 101 is generally configured to obtain the input sequence u to be transmitted (the “input sequence” may also be termed “information word” or “input vector”), and to produce the codeword x, which may contain redundancy. This codeword x may, then, be transmitted over a noisy communication channel 102 to a device 103 (“decoder”) for decoding, e.g., according to another embodiment of the present disclosure. This transmission typically introduces errors. The noisy signal may be received by the decoder 103 as a sequence of bits y (the “sequence of bits” may also termed “output vector”). The decoder 103 may then use the received bit values to calculate estimates of the transmitted codeword x and the transmitted message m. The set of possible codewords is called the code, or the channel code. In this embodiment, a polar code is used at the encoder 101 to encode the input sequence u. Both the encoder 101 and decoder 103 may know the polar code and, thus, may be aware of positions of the frozen bits F or information set I, respectively. The information set I (sometimes also called “reliability sequence”) may be used by the decoder 103 in both determining the input sequence u (e.g. during successive decoding) and in extracting the message bits m from the input sequence u.

    [0045] The encoder 101, according to the embodiment of the present disclosure, is configured to sequentially encode each of a plurality of blocks u.sub.i of the input sequence u, by applying a sliding window to the input sequence u. Each block u.sub.i of the input sequence u is encoded based on an XOR operation of the block u.sub.i and a previous block u.sub.i-1 of the input sequence u, to obtain a codeword block x′.sub.i of the codeword x′. Further, the encoder 101 is configured to sequentially output each obtained codeword block x′.sub.i of the codeword x′.

    [0046] Moreover, the decoder 103 is configured to decode the sequence of bits y into an output sequence u using the polar code. The sequence of bits y represents the codeword x after transmission over the (noisy) communication channel 102. The decoder 103, according to an embodiment of the invention, is configured to sequentially decode each of a plurality of blocks of the sequence of bits y by applying a sliding window, in order to obtain an auxiliary sequence u′. Further, the decoder 103 is configured to process the auxiliary sequence u′ to obtain the output sequence u, wherein each block of the output sequence u is processed based on an XOR operation of a block of the auxiliary sequence and a previous block of the auxiliary sequence u.sub.i-1′. Furthermore, the device 103 can be configured to obtain message bits m from the output sequence u.

    [0047] For the sake of the completeness, in the following, a summary of the theory behind the sliding window polar coding, as applied in embodiments of the present disclosure, is given.

    [0048] An exemplary sliding window polar code of length N and dimension K, which it is decodable through a sliding window of size M, may be designed as follows. Given S=N/M, its transformation matrix can be defined as T=W.sub.2S.Math.T.sub.M/2, where T.sub.M/2=T.sub.2.sup..Math.n, with m=log.sub.2(M), is the transformation matrix of a classical polar code of length M/2, while W.sub.2S is a full binary lower triangular matrix of size 2S. This matrix is given by a square matrix of size 2S×2S having ones on and below the diagonal, and zeros above the diagonal. The resulting transformation matrix T can be described as a multi-kernel polar code (see the aforementioned work of Bioglio et al.). This also permits to calculate the frozen set F accordingly.

    [0049] In the following, as also exemplarily illustrated in FIG. 2, an example of the proposed framework for a sliding window polar code of length N=16 and dimension K=8 with window size M=8 is given. It is assumed that a message m=00011110 is to be encoded. This message m can be encoded by means of the matrix T=W.sub.4 .Math.T.sub.4, wherein numerical representation of the matrices W.sub.4, T.sub.4, and T are shown as example in FIG. 3. In order to perform the encoding of the message m, the information set I or, equivalently, the frozen set of bits F is needed. For the generation matrix T, the information set I is shown in FIG. 3 and may be given by I={4,8,11,12,13,14,15,16}. Moreover, as illustrated in FIG. 3, from the information set I, sub-information sets I.sub.1={4}, I.sub.2={4}, I.sub.3={3,4}, I.sub.4={1,2,3,4} may be obtained as well as the four corresponding sub-input vectors u.sub.1 to u.sub.4 populated accordingly (see FIG. 2).

    [0050] Depending on the sub-information set I.sub.1, . . . I.sub.4, the bits of the message m may be divided in four blocks m.sub.0=0001, m.sub.1=1, m.sub.2=1 and m.sub.3=10 (see FIG. 2). The input vector blocks u.sub.i are, then, given by u.sub.0=0001, u.sub.1=0001, u.sub.2=0001 and u.sub.3=0010 (see FIG. 2). The sliding window encoder 101 may first calculate x′.sub.1=u.sub.0.Math.T.sub.4=1111 and transmits it, then other codeword block may be calculated sequentially obtaining x′.sub.2=(u.sub.1 .Math.u.sub.0).Math.T.sub.4=0000, x′.sub.3=(u.sub.2.Math.u.sub.0).Math.T.sub.4=0000 and x′.sub.4=(u.sub.3 .Math.u.sub.0).Math.T.sub.4=0101 (see FIG. 2).

    [0051] At the decoder side, received blocks may be processed in couples to recover the auxiliary input vector u′. The first input vector is retrieved as u.sub.1=u′.sub.1=0001. After the second auxiliary input vector u′.sub.2=0000 has been decoded, the second input vector block can be calculated as u.sub.2=u′.sub.1 ⊕u′.sub.2=0001 and the message block m.sub.1=1 can be extracted. The other message blocks may be calculated accordingly with the subsequent auxiliary input vectors. In FIG. 4, the exemplary input vector u, its shifted vector ū, the vector u′ obtained on the basis of ū, and the corresponding codeword x′ are shown. The transmitted codeword x′ is received after transmission of the communication channel as vector y, as shown in FIG. 1.

    [0052] The proposed polar code design and decoding procedure improves BLER performance in the Device-to-Device (D2D) scenario (see FIG. 5) without increasing the decoding computational complexity, and in some cases permitting to reach the performance of the full length polar code.

    [0053] In the following, some methods for determining the information set I are described.

    [0054] Under AWGN channel, the DE/GA method (see, e.g., H. Vangala, E. Viterbo, and Y. Hong, “A comparative study of polar code constructions for the AWGN channel”, in arXiv preprint arXiv:1501.02473, 2015) can be used to evaluate bit-channels polarization of kernel W.sub.2s tracking the LLR mean as:

    [00003] μ i = { ϕ - 1 ( 1 - ( 1 - ϕ ( μ ) ) .Math. ( 1 - ϕ ( i μ ) ) ) , i < 2 S 2 S μ , i = 2 S

    where μ is the imput LLR mean and function ϕ can be calculated as described in J. Ha, J. Kim, and S. W. McLaughlin, “Rate-compatible puncturing of low-density parity-check codes”, IEEE Transactions on Information Theory, vol. 50, no. 11, pp. 2824-2836, 2004. Using the above metrics, the reliability of each bit of the input vector u can be calculated. The K bits having the highest reliability may form the information set I, while the indices of the remaining N−K bit-channels may form the frozen set F of the code. The K message bits may then be inserted in the input vector u according to the information I set previously calculated, namely storing their values in the indices listed in I, while the remaining bits of u are set to zero. Codeword x′ is then calculated as x′=u.Math.T and transmitted through the channel 102 (see FIG. 7).

    [0055] The N channel LLRs may be stored in the vector y (see FIG. 7). Sliding window decoder 103 may perform 2S polar decoding of (M/2, K.sub.t) polar codes. Upper LLRs L.sub.0 may be initialized to zero (see FIG. 7). At step t, a sub-information set I.sub.t may be calculated from the information set I as the set of entries of I comprised between

    [00004] ( t - 1 ) .Math. M 2 + 1

    and t.Math.M/2 reduced by (t−1).Math.M/2. This sub-information set may be used as the information set of a polar code having transformation matrix T.sub.M/2. The M/2 LLRs for this decoder 103 may be calculated as follows on the basis of y: the vector

    [00005] L 1 = [ y ( ( t - 1 ) .Math. M 2 + 1 ) , .Math. , y ( t .Math. M 2 ) ]

    is extracted from y, while a second vector L.sub.2 of length M/2 is calculated as:

    [00006] L 2 ( i ) = { y ( t .Math. M 2 ) + i , t < 2 S , t = 2 S

    [0056] The LLRs to be given to the current decoder are calculated on the basis of these two vectors as =(L.sub.0+L.sub.1)custom-characterL.sub.2, where

    [00007] A B = Δ 2 tan h - 1 ( tan h A 2 .Math. tan h B 2 ) sign ( A ) .Math. sign ( B ) .Math. min ( A , B ) .

    [0057] Next, the (M/2, K.sub.t) polar code defined by I.sub.t may be decoded via SC using L as channel LLRs. Decoding can be performed with any other polar decoder (device 103), e.g. SCL. The resulting input vector u.sub.t can then used to calculate the partial sums used in the SC decoding as x.sub.t=u.sub.t.Math.T.sub.M/2; these partial sums are then used to update the upper LLRs L.sub.0 as L.sub.0=(L.sub.0+L.sub.1).Math.(1−2x.sub.t). When t=2S, decoding is concluded, and input vector u is calculated appending all the sub input vectors as u=[u.sub.1 u.sub.2 . . . u.sub.2S].

    [0058] In the following, a mathematical demonstration of the robustness of the encoding performed by the device 101 and the decoding performed by the device 103, according to embodiments of the present disclosure, is given.

    [0059] As first, the device 101 may be configured to encode portions of the input vector u independently using a classical polar code. Moreover, the sliding window encoder mechanism may be implemented by the device 101 to perform on-the-fly encoding of incoming bits of message m.

    [0060] The device 101 may divide the input vector u into 2S blocks of length M/2 as u=[u.sub.1 u.sub.2 . . . u.sub.2S] and polar encode each block independently, i.e. by matrix multiplication with channel transformation matrix of size M/2 as c.sub.i=u.sub.i.Math.T.sub.M/2. These intermediary polar codewords c.sub.i can be used to create a sliding window polar codeword x′, having a peculiar input vector u′, by transmitting first the last one and performing a XOR operation with all the subsequent polar codewords before transmission. As a consequence, the final transmitted codeword x′ is obtained as x′=[c.sub.2S|c.sub.1 ⊕c.sub.2S|c.sub.2⊕c.sub.2S| . . . |c.sub.2S-1⊕c.sub.2S].

    [0061] The rationale to obtain the described framework can be found in the structure of the channel transformation matrix of a sliding window polar code. The codeword may be created on-the-fly without waiting to collect all the bits of the message m. Starting from the original input vector u=[u.sub.1 u.sub.2 . . . u.sub.2S], this result can be obtained creating the auxiliary input vector u′=[u′.sub.1 u′.sub.2 . . . u′.sub.2S] imposing u′.sub.i=u.sub.i-1 ⊕u.sub.i with u.sub.0=0. This auxiliary input vector u′ may then have the structure u′=[u.sub.1|u.sub.1⊕u.sub.2|u.sub.2⊕u.sub.3| . . . |u.sub.2S-1⊕u.sub.2S]. Given the nested property of frozen sets, it is known that I.sub.i-1⊇I.sub.i, where I.sub.i is the information set of input vector block u.sub.i, so that u and u′ share the same frozen set and u′ is then well defined. This intermediary vector is in fact the input vector of codeword x′ calculated with the proposed framework, x′=u′.Math.T, since u′.Math.T=[u.sub.2S.Math.T.sub.M/2|(u.sub.1⊕u.sub.2S).Math.T.sub.M/2|u.sub.2 ⊕u.sub.2S).Math.T.sub.M/2| . . . |(u.sub.2S-1⊕u.sub.2S).Math.T.sub.M/2]. As a consequence, the result of sliding window decoding of transmitted codeword x′ will be the intermediary input vector u′. However, input vector u is needed to extract message bits, hence a further post processing step is needed at the receiver to retrieve message bits.

    [0062] At the side of the decoder 103, channel outcomes y corresponding to codeword x′ can be decoded by applying the sliding window. As discussed previously, the result of the decoding process is the auxiliary input vector u′. This vector has to be post-processed to retrieve the original input vector u. This process consists of performing a XOR operation of each input vector block with the previously decoded one such that u.sub.i=u′.sub.i-1 ⊕u′.sub.i with u′.sub.0=0. As a consequence, original input vector can be calculated as u=[u′.sub.1|u′.sub.1⊕u′.sub.2|u′.sub.2 ⊕u′.sub.3| . . . |u′.sub.2S-1 ⊕u′.sub.2S].

    [0063] Therefore, the proposed framework permits to create codes based on polarization that have on-the-fly encoding and decoding. The last input vector block u.sub.2S may be moved to the beginning of the message m. It can be supposed that the K bits of message m are going to be transmitted through a sliding window polar code of length N and dimension K with window size M and information set I. For each block u.sub.i forming the input vector u it is in this case possible to extract a sub-information set I.sub.i of size K.sub.i. The K message bits stored in vector m are then divided into 2S blocks as m=[m.sub.0 m.sub.1 m.sub.2 . . . m.sub.2S-1] of size K.sub.0, K.sub.1, K.sub.2, . . . , K.sub.2S-1 respectively, where |m.sub.0|=K.sub.2S and I.sub.0=I.sub.2S. Each block x′.sub.i of encoded vector x′ is then calculated as x′.sub.i=(u.sub.i-1⊕u.sub.0).Math.T.sub.M/2 for i=1, . . . , 2S, with the exception of first block that is calculated as x′.sub.1=u.sub.0.Math.T.sub.M/2. Each block of codeword x′ is then calculated using only two sub-input vectors, namely the very first and the current one.

    [0064] At the decoder 103 side, the sliding window decoding may output blocks of auxiliary input vector u′ sequentially. On-the fly decoding may calculate original input vector blocks as u.sub.i=u′.sub.i-1 ⊕u′.sub.i and extract message bits m.sub.i. Last input vector block u.sub.2S is used to calculate first message block m.sub.0.

    [0065] FIG. 6 shows a communication system 100 comprising the device 101 for encoding the input sequence u according to an embodiment.

    [0066] In particular, FIG. 6 shows the wireless communication system 100 including a base station 101 and user equipment (UE) 103 where the UE 103 may be a portable device such as a smart phone or tablet. The base station 101 includes a transmitter and the UE 103 a receiver, whereby the base station 101 is able to transmit data to the UE 103, for example, in a downlink or uplink connection 102 made according to a telecommunications protocol. Embodiments of the present disclosure may be applied in various communications systems. For example, it could be applied to any of a Global System for Mobile Communications (GSM), code division multiple access (CDMA), wideband code division multiple access (WCDMA), general packet radio service (GPRS), long term evolution (LTE), LTE frequency division duplex (FDD), LTE Time Division Duplex (TDD), a universal mobile telecommunications system (UMTS), enhanced mobile broadband (eMBB), ultra-reliable low-latency communications (URLLC) and massive machine-type communications (mMTC), or any 5th generation (5G) wireless communication system.

    [0067] FIG. 8 shows a method 800 for encoding an input sequence comprising message bits into a codeword using a polar code according to an embodiment.

    [0068] The method 800 comprises the steps of: [0069] sequentially encoding 801 each of a plurality of blocks of the input sequence, by applying a sliding window to the input sequence, [0070] encoding 802 each block of the input sequence based on an XOR operation of the block and a previous block of the input sequence, to obtain a codeword block of the codeword; and [0071] sequentially outputting 803 each obtained codeword block of the codeword.

    [0072] FIG. 9 shows a method 900 for decoding a sequence of bits into an output sequence using a polar code, wherein the sequence of bits represents a codeword after a transmission over a communication channel 102 according to an embodiment.

    [0073] The method 900 comprises: sequentially [0074] decoding 901 each of a plurality of blocks of the sequence of bits by applying a sliding window, in order to obtain an auxiliary sequence, [0075] processing 902 the auxiliary sequence to obtain the output sequence, wherein each block of the output sequence is processed based on an XOR operation of a block of the auxiliary sequence and a previous block of the auxiliary sequence.

    [0076] 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.