Sliding window and sub-block encoding and decoding of polar codes

By using sliding decoding window and polarization coding technology in the receiver, the polarized codewords are decoded sub-input vectors, which solves the problem of high block error rate caused by insufficient computing power of the receiver, and achieves efficient decoding performance improvement.

CN114430890BActive Publication Date: 2025-08-08HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN201980098201.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-07-03
Publication Date
2025-08-08
Estimated Expiration
2039-07-03

AI Technical Summary

Technical Problem

In wireless communication, insufficient computing power of the receiver results in the inability to effectively decode the polarized code generated by the transmitter, resulting in high block error rate. The prior art increases the block error rate of the system through independent transmission blocks.

Method used

Using sliding decoding window technology, polarized codewords with length N are decoded through windows of length M, polarization code and channel likelihood are used to decode sub-input vectors, and decoding performance is improved through likelihood buffer update and continuous elimination decoding algorithms.

Benefits of technology

In the case of insufficient computing power of the receiver, the block error rate performance is improved, close to the decoding effect of the full-length classic polarized code, and at the same time reduces the computational complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114430890B_ABST
    Figure CN114430890B_ABST
Patent Text Reader

Abstract

The present disclosure relates to generating polar codes and also relates to encoding and decoding data using polar codes. A method of generating a polar code includes obtaining a first matrix that is the m-th Kronecker product of a 2×2 binary lower triangular matrix, where m = log2(M / 2), M < N, and N is the length of the polar code to be generated. A second matrix can be obtained, where the inverse matrix of the second matrix is a lower triangular band matrix. A transformation matrix for the polar code can be generated by calculating the Kronecker product of the second matrix and the first matrix. An information set I that identifies reliable bit channels for the polar code can be determined. A polar codeword of length N can be obtained using the polar code, and the polar code is decoded by iteratively applying a sliding decoding window of length M to the polar codeword, where M < N.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to encoding and decoding data. More particularly, but not exclusively, the present application relates to generating polar codes and also to encoding and decoding data using such polar codes. Background Art

[0002] Channel codes are crucial in all digital communication systems. Systems for forward error correction (FEC) coding, also known as coding schemes, consist of an encoder at the transmitter and a decoder at the receiver. The encoder adds redundancy, i.e., additional redundant data, to the data being transmitted, and the decoder uses this redundancy to correct transmission errors, allowing the receiver to receive the transmitted data error-free, even if the communication channel is noisy.

[0003] Polar codes are linear block codes that rely on polarization effects, which allow the bit positions of u, called bit channels, to be sorted in order of reliability.

[0004] As the code length becomes close to infinity, polarization phenomena affect the reliability of the bit channel, which is either completely noisy or completely noiseless; in addition, the partially noiseless bit channel reaches the channel capacity.

[0005] For finite practical code lengths, the polarization of bit channels is incomplete, resulting in the presence of partially noisy bit channels. The polarization coding process involves classifying the bit channels in the input vector u into two groups: K good bit channels, which carry information bits and are indexed by an information set I; and N-K poor bit channels, which are fixed to a predetermined value (typically 0) and indexed by a frozen set F. For finite code lengths, the K best bit channels, i.e., those with the highest reliability, are selected to form the information set, while the remaining bit channels are frozen.

[0006] Polar codes are based on the basic kernel matrix . With length N = 2 n The encoding of this polar code with information length K is as follows. As mentioned above, a frozen F of size NK is selected. The bits u of the input vector u i is set to 0 for i∈F, and otherwise the bits u of the input vector u i is set as information bits. Using the transformation matrix ——represents the n-th Kronecker product——calculate the codeword x according to x=uT.

[0007] The reliability of a channel can be determined based on the following Bhattacharyya parameter:

[0008]

[0009] Where W is a binary memoryless symmetric channel, and W(y|0) and W(y|1) are transition probabilities, Y is the output letter, and Z is the Bhattacharyya parameter. The lower the Bhattacharyya parameter, the more reliable the channel. Other methods can be used to estimate the bit channel reliability. For example, the density evolution method (DE) can be used, and for additive white Gaussian noise (AWGN), the channel reliability can be determined based on the Gaussian approximation (GA). Other types of noisy channels such as binary symmetric channels (BSC) or binary erasure channels (BEC) can be modeled, for example, using Monte Carlo statistical methods.

[0010] Generally, different kernels of different sizes can be introduced into the code design to obtain multi-core polar codes. When different kernels are used, the transformation matrix takes The form is, where the subscripts a to g denote different kernel matrices and the frozenset F must be computed accordingly.

[0011] Polar code decoding is based on the Successive Cancellation (SC) decoding algorithm, which is inherently sequential. In SC decoding, decoding is performed bit by bit. SC decoding can be viewed as a binary tree search where bits are estimated at leaf nodes and the tree is traversed depth-first, with priority given to left branches. In SC decoding, the decoder starts with a hard decision for the first bit u1 of the input vector u and feeds that decision back into the decoding process. Then, a hard decision is made for the second bit u2 and the decision made for bit u2 is fed back into the decoding process. Decoding proceeds in this way until a hard decision is obtained for the last bit u N The decision of , makes all bits of the input vector u be estimated.

[0012] Successive Cancellation List (SCL) decoding is an enhanced version of SC. In SC list decoding, multiple paths are followed during decoding, and the decision on the value of the bits of the input vector is delayed until the end of the decoding process. Additional error correction can be added with the help of a cyclic redundancy check (CRC) applied as an outer code in conjunction with the polar code. SUMMARY OF THE INVENTION

[0013] In a first aspect, a method for decoding a received signal is provided. The method includes applying a window of length M to a received signal including N signal values at a first position, where M < N; decoding a first sub-input vector using a polar code and a first channel likelihood L based on the signal values obtained from the window at the first position; shifting the window position to a second position; obtaining a second channel likelihood L based on the signal values from the window at the second position and the decoded first sub-input vector; and decoding a second sub-input vector using the polar code and the second channel likelihood.

[0014] Considering communication between a transmitter and a receiver with different computing capabilities - i.e., when the receiver is less powerful than the transmitter - such as in the downlink of wireless communication. The transmitter is capable of creating a polar codeword of length N, while the receiver can only process a polar codeword of length M < N.

[0015] A possible solution to this problem is to divide the information into S = N / M blocks and transmit each block separately on different codewords of length M. However, it is well known that independent transmission increases the block error rate of the system because the information is correctly recovered only when all S codewords are correctly decoded; even a single error in one of the transmissions will cause the overall decoding to fail.

[0016] By applying a moving decoding window of length M, where M < N, and decoding using a polar code based on the windowed values. A decoder with a computing capacity M that is smaller compared to the capacity N of, for example, an encoder, can still decode a polar codeword of length N received in a single transmission. This is made possible by feeding back the already decoded sub-input vector at the first window position into the second channel likelihood on which the decoding of the second sub-input vector is based at the second window position.

[0017] Without increasing the decoding computational complexity, such a decoding process improves the block error rate (BLER) performance in the proposed asymmetric scenario where the computing capacity of the decoder at the receiver is smaller than the computing capacity of the encoder at the transmitter. In some implementations, the performance of a full-length classical polar code N may be achieved.

[0018] In an implementation of the first aspect, the number of the obtained first channel likelihood and second channel likelihood is M / 2, and the polar code has a polarity transformation matrix of size M / 2. The polar code is a classical polar code representing the n - th Kronecker product, where, according to the implementation, n = log2(M / 2).

[0019] In an implementation of the first aspect, the polar code used to decode the first sub-input vector and the second sub-input vector has the following information set: the information set includes a sub-information set (I) of the information set (I) of the polar code used to encode the input vector including the first sub-input vector and the second sub-input vector, with a length of N. t ). Therefore, the reliability of the full-length polar code N can be considered, and the performance can be improved.

[0020] In an implementation, the first aspect further includes: dividing the M windowed signal values into M / 2 likelihood values for a first subchannel and M / 2 likelihood values for a second subchannel; and generating a first channel likelihood and a second channel likelihood using the first subchannel likelihood and the second subchannel likelihood. For example, the likelihoods may be combined according to a continuous correction decoding rule applied based on a factor graph representing a polar code used to generate a codeword transmitted as the received signal value.

[0021] In an implementation, obtaining the second channel likelihood includes: updating a likelihood buffer (L0) of M / 2 likelihood values using the decoded first sub-input vector and the first sub-channel likelihood value; and using the buffer together with a buffer of the first sub-channel likelihood and a buffer of the second sub-channel likelihood at a second window position to generate the second channel likelihood.

[0022] By using a buffer, the dependence of subsequent values in the codeword on previous values (eg, according to the polar code used to generate the decoded codeword) can be cumulatively accounted for.

[0023] In an implementation of the first aspect, decoding of the first sub-input vector and the second sub-input vector is performed using continuous elimination decoding, and the decoding of the first sub-input vector and the second sub-input vector also includes: obtaining a partial sum value based on the decoded sub-input vector u(t); and updating the likelihood buffer (L0) using the partial sum value.

[0024] In an implementation of the first aspect, updating the likelihood buffer using the partial sum value includes: calculating L0=(L0+L1)·(1-2x t ), where L0 is the likelihood buffer, L1 is the likelihood value of the first subchannel and x t is the partial sum value. The size of the buffer is M / 2.

[0025] According to the implementation of the first aspect, the first channel likelihood and the second channel likelihood are obtained by the following calculation:

[0026]

[0027] Where, L is the likelihood to be calculated, L0 is the likelihood buffer, L1 is the likelihood value of the first sub-channel and L2 is the likelihood value of the second sub-channel, and

[0028]

[0029] In an implementation of the first aspect, the steps of shifting the window, obtaining the second channel likelihood, and decoding the second sub-input vector are performed iteratively. Thus, the window can slide across the received input vector to continuously decode the sub-input vector according to the windowed bits. For example, the steps can be performed iteratively until all received signal values corresponding to the received codeword have been decoded into an input vector formed by the decoded sub-input vectors.

[0030] In a second aspect, a method of generating a polar code is provided, the method comprising: obtaining a first matrix that is the m-th Kronecker product of a 2×2 binary lower triangular matrix, where m = log2(M / 2), M < N and N is the length of the polar code to be generated; obtaining a second matrix of dimension 2S×2S, where S = N / M and the inverse matrix of the second matrix is a lower triangular band matrix; generating a transformation matrix for the polar code by calculating the Kronecker product of the second matrix and the first matrix; and determining an information set I that identifies reliable bit channels for the polar code, where a polar code of length N can be obtained using the polar code, and the polar code is decoded by iteratively applying a sliding decoding window of length M to the polar codeword, where M < N.

[0031] Thus, by appropriately selecting the first matrix and the second matrix meeting the criteria of the second aspect, a polar code of length N can be generated such that a receiver can use a sliding window mechanism to decode the polar code, processing only M received symbols per decoding operation.

[0032] In an implementation of the second aspect, the code is constructed such that a successive decoding process using a polar code of size M / 2 can be applied to the windowed M - value polar codeword during each iteration.

[0033] In an implementation of the second aspect, determining the information set includes: estimating the bit error probability and / or log-likelihood ratio of the first kernel and the second kernel having i bit channels corresponding to the first matrix and the second matrix.

[0034] For example, in an implementation, the bit error probability of each channel i can be calculated as:

[0035]

[0036] Where, P iis the bit error probability of the i-th bit channel in the core, δ is the error probability of the input channel, δ i is the bit error probability of the i-th channel.

[0037] In another implementation of the second aspect, the log-likelihood ratio of each channel i is calculated as follows:

[0038]

[0039] Among them, μ is the mean of the input log-likelihood ratio; μ i is the log-likelihood ratio of the ith channel, and φ is defined as follows:

[0040]

[0041] And φ can be approximated by curve fitting. Curve fitting can be performed using methods known in the art, for example, 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.

[0042] In an implementation, the second aspect further includes selecting a value M such that M / 2 is a length corresponding to the polar codeword decoding capability of the target device. Thus, the encoding entity can design polar codewords so that they can be decoded by a target device with known computing capabilities (e.g., the length of the polar code that the target device can decode).

[0043] In an implementation of the second aspect, the second matrix is a full binary lower triangular matrix of dimension 2S×2S. This allows for relatively simple encoding and decoding processes, for example, where encoding (and decoding) can be efficiently performed in two stages. For encoding, each M / 2 portion of the input vector can be polarity-encoded into a series of sub-input vectors using the first transformation matrix. Then, starting with the last sub-input vector, the sub-input vectors are successively added (e.g., using a bit-by-bit exclusive OR (XOR) operation) to the previous sub-input vector.

[0044] In a third aspect, a method of encoding message bits into a polar codeword is provided, the method comprising: inserting K message bits into an input vector u according to reliable channels identified by an information set I; generating a polar codeword using the input vector u based on a transformation matrix of a polar code according to the second aspect.

[0045] In an implementation of the third aspect, generating the polar codeword includes calculating the product of the input vector and the transformation matrix.

[0046] In a fourth aspect, a method of encoding message bits into a polar codeword using a polar code is provided, the method comprising: inserting K message bits into an input vector u according to reliable bit channels identified by an information set I of a polar code of length N; dividing the input vector into 2S sub-input vectors of size M / 2; encoding the sub-input vectors using a transformation matrix comprising a Kronecker product of m times of 2×2 full binary lower triangular matrices, where m = log2(M / 2); and iteratively adding corresponding bits of the encoded sub-input vectors to the immediately preceding encoded sub-input vector.

[0047] In a fifth aspect, a device for decoding a received signal is provided, the device comprising: means for applying a window of length M to the received signal comprising N signal values at a first position, where M < N; means for decoding a first sub-input vector using a polar code and a first channel likelihood L based on signal values obtained from the window at the first position; means for shifting the window position to a second position; means for obtaining a second channel likelihood L based on signal values from the window at the second position and the decoded first sub-input vector; and means for decoding a second sub-input vector using the polar code and the second channel likelihood.

[0048] In an implementation of the fifth aspect, the number of the obtained first channel likelihood and second channel likelihood is M / 2, and the polar code has a polarity transformation matrix of size M / 2.

[0049] In an implementation of the fifth aspect, the polar code for decoding the first sub-input vector and the second sub-input vector has an information set comprising a sub-information set (I t ) of the information set (I) of the polar code of length N for encoding an input vector comprising the first sub-input vector and the second sub-input vector.

[0050] In an implementation, the fifth aspect further comprises means for dividing the windowed M signal values into M / 2 likelihood values of a first channel and M / 2 likelihood values of a second channel, and the first sub-channel likelihood and the second sub-channel likelihood are used to generate the first channel likelihood and the second channel likelihood.

[0051] In an implementation of the fifth aspect, the device for obtaining the second channel likelihood is configured to: update a likelihood buffer (L0) of M / 2 likelihood values using the decoded first sub-input vector and the first sub-channel likelihood value; and use the buffer together with the buffer of the first sub-channel likelihood and the buffer of the second sub-channel likelihood at the second window position to generate the second channel likelihood.

[0052] In an implementation of the fifth aspect, the apparatus for decoding the first sub-input vector and the second sub-input vector is configured to: use successive elimination decoding; obtain a partial sum value (x t =u t ·T M / 2 ); and updating the likelihood buffer (L0) using the partial sum value.

[0053] In an implementation of the fifth aspect, using the partial sum to update the likelihood buffer includes calculating L0=(L0+L1)·(1-2x t ), where L0 is the likelihood buffer, L1 is the likelihood value of the first subchannel, and x t is the partial sum value.

[0054] In an implementation of the fifth aspect, the first channel likelihood and the second channel likelihood are obtained by calculating as follows:

[0055]

[0056] Where L is the likelihood to be calculated, L0 is the likelihood buffer, L1 is the likelihood value of the first subchannel, and L2 is the likelihood value of the second subchannel, and

[0057]

[0058] In an implementation, the fifth aspect further includes an iterative device for iterating the following steps: the steps performed by the device for shifting the window; the steps performed by the device for obtaining the second channel likelihood; and the steps performed by the device for decoding the second sub-input vector.

[0059] In an implementation of the fifth aspect, the iteration device is further configured to: iteratively execute the steps until the received signal value is decoded into an input vector formed by sub-input vectors.

[0060] In an implementation of the fifth aspect, the apparatus includes a receiver, and the receiver includes a demodulator for demodulating a received signal into a received signal value. The apparatus may be, for example, a base station node, such as an evolved Node B (eNodeB) in a Long Term Evolution (LTE) communication network, or a user equipment (UE) such as a smart phone.

[0061] In a sixth aspect, there is provided an apparatus for generating a polar code, the apparatus including: means for obtaining a first matrix which is the m-th Kronecker product of a 2×2 binary lower triangular matrix, where m = log 2(M / 2), M < N and N is the length of the polar code to be generated; means for obtaining a second matrix of dimension 2S×2S, where S = N / M and the inverse matrix of the second matrix is a lower triangular band matrix; means for generating a transformation matrix for the polar code by calculating the Kronecker product of the second matrix and the first matrix; and means for determining an information set I identifying reliable bit channels for the polar code, where a polar codeword of length N can be obtained using the polar code, and the polar code is decoded by iteratively applying a sliding decoding window of length M to the polar codeword, where M < N.

[0062] In an implementation of the sixth aspect, the code is configured such that a successive cancellation (SC) decoding process based on a polar code of size M / 2 can be applied to the windowed M values of the polar codeword during each iteration.

[0063] In an implementation of the sixth aspect, the means for determining the information set is configured to estimate the bit error probability and / or log-likelihood ratio of a first kernel and a second kernel having i bit channels corresponding to the first matrix and the second matrix.

[0064] In an implementation of the sixth aspect, the bit error probability of each channel i is calculated as follows:

[0065]

[0066] where P i is the bit error probability of the i-th bit channel in the kernel, δ is the error probability of the input channel, and δ i is the bit error probability of the i-th channel.

[0067] In an implementation of the sixth aspect, the log-likelihood ratio of each channel i is calculated as follows:

[0068]

[0069] where μ is the mean of the input log-likelihood ratio; μ iis the log-likelihood ratio of the ith channel, and

[0070]

[0071] And can be approximated by curve fitting. Curve fitting can be performed using methods known in the art, for example, 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.

[0072] In an implementation, the sixth aspect further includes means for selecting a value M such that M / 2 is a length corresponding to the polar codeword decoding capability of the target device.

[0073] In an implementation of the sixth aspect, the second matrix is a full binary lower triangular matrix with a dimension of 2S×2S.

[0074] In a seventh aspect, an apparatus for encoding message bits into a polar codeword is provided, the apparatus comprising: means for inserting K message bits into an input vector u according to a reliable channel identified by an information set I; and means for generating a polar codeword using the input vector u based on a transformation matrix of the polar code according to the sixth aspect.

[0075] In an implementation of the seventh aspect, the apparatus for generating a polar codeword is configured to calculate a product of an input vector and a transformation matrix.

[0076] In an eighth aspect, an apparatus for encoding an input vector using a polar code is provided, the apparatus comprising: means for inserting K message bits into an input vector u according to a reliable channel identified by an information set I of the polar code; means for dividing the input vector u into 2S sub-input vectors of size M / 2; means for encoding the sub-input vectors using a transformation matrix comprising an m-th Kronecker product of a 2×2 binary lower triangular matrix, where m=log2(M / 2); and means for iteratively adding corresponding bits of one or more encoded sub-input vectors to an immediately previously encoded sub-input vector.

[0077] In an implementation of the seventh and eighth aspects, the apparatus includes a transmitter including means for modulating and transmitting the encoded input vector. The apparatus in an implementation of any one of the sixth to eighth aspects may be, for example, a base station node such as an eNodeB in an LTE communication network, or a user equipment (UE) such as a smartphone.

[0078] In a ninth aspect, a computer program is provided, comprising instructions that, when executed by one or more processors, cause the method of any of the implementations of aspects 1 to 4 to be performed. For example, the computer program may be stored on a data carrier or other computer-readable medium. The computer-readable medium may be transient or non-transient.

[0079] In a tenth aspect, a device is provided, comprising one or more processors and a memory, wherein the device is configured to perform the method in any implementation of the first to fourth aspects mentioned above. In the implementation of the tenth aspect, the device is a base station (e.g., an eNodeB) or a user equipment (UE). BRIEF DESCRIPTION OF THE DRAWINGS

[0080] Embodiments will now be described, by way of example only, with reference to the accompanying drawings, in which:

[0081] Figure 1 A block diagram showing a communication system;

[0082] Figure 2 A block diagram illustrating an apparatus in a communication system;

[0083] Figure 3 A flowchart illustrating a method for generating a polar code according to an embodiment of the present invention is shown;

[0084] Figure 4 FIG1 shows a kernel matrix for generating a polar code used in an embodiment of the present invention;

[0085] Figure 5 The diagram shows a method for use in the embodiment of the present invention. Figure 3 Tanner plot of the matrix shown; and

[0086] Figure 6 A Tanner graph showing a transformation matrix of a polar code according to an embodiment of the present invention is shown;

[0087] Figure 7 1. A first kernel matrix and a second kernel matrix and a transformation matrix of a polar code according to an embodiment of the present invention are shown;

[0088] Figure 8a and Figure 8b Showing an embodiment according to the present invention Figure 7 Tanner graph of the first kernel matrix and the second kernel matrix;

[0089] Figure 9 In the embodiment of the present invention, Figure 7 Tanner graph of the transformation matrix of the polar code;

[0090] Figure 10 The embodiment according to the present invention is shown Figure 8a and Figure 8b The expression of the mean value of the log-likelihood ratio (LLR) corresponding to the bit channel in the Tanner graph;

[0091] Figure 11 shows the values of bit channel LLR averages and their corresponding rankings for a case where the input LLR average is 2 according to an embodiment of the present invention;

[0092] Figure 12 A method for encoding a message using a polar code according to an embodiment of the present invention is shown;

[0093] Figure 13 shows a decoding block for a kernel matrix used in accordance with an embodiment of the present invention;

[0094] Figure 14 Shows a sliding window decoding process according to an embodiment of the present invention;

[0095] Figure 15 A flowchart showing a decoding method according to an embodiment of the present invention;

[0096] Figure 16 is a block diagram schematically illustrating a sliding window decoding process in an embodiment of the present invention;

[0097] Figure 17 A flowchart showing a decoding method according to an embodiment of the present invention;

[0098] Figure 18a shows a Tanner diagram of a polar code according to an embodiment of the present invention, illustrating the propagation of values in a first decoding step;

[0099] Figure 18b shows a Tanner diagram of a polar code according to an embodiment of the present invention, showing the propagation of values in the second decoding step;

[0100] Figure 18c A Tanner diagram of a polar code according to an embodiment of the present invention is shown, showing the propagation of values in the third decoding step;

[0101] Figure 18d A Tanner diagram of a polar code according to an embodiment of the present invention is shown, showing the propagation of values in the fourth decoding step;

[0102] Figure 19 A device for generating a polar code according to an embodiment of the present invention is shown;

[0103] Figure 20 An apparatus for decoding a received signal value according to an embodiment of the present invention is shown;

[0104] Figure 21 An apparatus for implementing an embodiment according to the present invention is shown;

[0105] Figure 22 shows a first simulation result according to an embodiment of the present invention;

[0106] Figure 23 shows a second simulation result according to an embodiment of the present invention; and

[0107] Figure 24 A third simulation result according to an embodiment of the present invention is shown. DETAILED DESCRIPTION

[0108] Example embodiments are described below in sufficient detail to enable one of ordinary skill in the art to embody and implement the systems and processes described herein.It is important to understand that the embodiments can be provided in many alternative forms and should not be construed as limited to the examples set forth herein.

[0109] Therefore, while the embodiments may be modified in various ways and take various alternative forms, specific embodiments thereof are shown in the drawings and described in detail below as examples. No limitation to the particular forms disclosed is intended. On the contrary, all modifications, equivalents, and alternatives falling within the scope of the appended claims are intended to be included therein. Throughout the drawings and detailed description, elements of the example embodiments are represented by the same reference numerals, where appropriate.

[0110] The terms used herein to describe embodiments are not intended to limit the scope. The articles "a", "an" and "the" are singular because they have a single referenced object, however, the use of the singular in this document should not exclude the presence of more than one referenced object. In other words, unless the context clearly indicates otherwise, elements mentioned in the singular can be numbered one or more. It will also be understood that the terms "comprises", "comprising", "includes" and / or "including" when used herein specify the presence of stated features, items, steps, operations, elements and / or parts, but do not exclude the presence or addition of one or more other features, items, steps, operations, elements, parts and / or groups thereof.

[0111] Unless otherwise defined, all terms used herein (including technical and scientific terms) should be interpreted according to common practice in the art. It will also be understood that, unless otherwise expressly defined herein, commonly used terms should also be interpreted as common practice in the relevant art rather than as idealized or overly formal meanings.

[0112] Figure 1 A data communication system 100 is shown. The data to be transmitted, u, called an information word or input vector, is provided to an encoder 101, which generates a codeword x containing redundancy. This is transmitted over a noisy communication channel 102, which typically introduces errors. The noisy signal is then received by a receiver as an output vector y. The output vector y is provided to a decoder 103 at the receiver, which uses the received values to calculate an estimate of the transmitted codeword x and the transmitted data u. The set C of possible codewords is called a code or channel code. In this embodiment, a polar code is used at the encoder to encode the input vector u. Both the encoder and decoder are aware of the polar code and are therefore provided with frozen bit locations, or information sets, at each end. The decoder uses the information set (sometimes called a reliability sequence) both when determining the input vector for decoding (e.g., during continuous decoding) and when extracting message bits from the input vector.

[0113] Figure 2A wireless communication system 200 including a base station 201 and a user equipment (UE) 203 is shown, where the UE can be a portable device such as a smart phone or a tablet computer. The base station 201 includes a transmitter, and the UE includes a receiver, whereby the base station can transmit data with the UE 203, for example, on a downlink connection or an uplink connection 202 formed according to a telecommunication protocol. Embodiments of the present invention can be applied to various communication systems. For example, embodiments of the present invention can be applied to any of the following: 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), Universal Mobile Telecommunications System (UMTS), enhanced Mobile Broadband (eMBB), Ultra-Reliable Low-Latency Communications (URLLC), and massive Machine-Type Communications (mMTC) or any fifth-generation (5G) wireless communication system. For example, information or data in any of these systems encoded using traditional error-correcting codes such as Turbo codes or low density parity check (LDPC) codes on the base station 201 or the UE 203 can alternatively be encoded using codes generated according to the following embodiments.

[0114] Considering communication between a transmitter and a receiver with different computing capabilities - that is, when the receiver is not as powerful as the transmitter - for example, the downlink in the wireless communication system 200. In the following embodiments, the transmitter can encode message data to create a polar codeword of length N, while the receiver can process and decode only a polar codeword of length M < N.

[0115] Code Design

[0116] According to an embodiment, it is described how to design a polar code of length N and dimension K so that the polar code can be decoded by a sliding window of size M. Designing a polar code means providing a transformation matrix T and a frozen set F (or conversely, an information set K).

[0117] Will refer to Figure 3 The process of generating polar codes according to an embodiment is described with reference to a flowchart of FIG.

[0118] The transformation matrix T can be designed as follows. In the first step 301, the first kernel matrix T is obtained. M / 2 Given S = N / M, where N is the length of the polar codeword to be generated at the encoder and M is the length of the codeword that can be processed at the target decoder, , where m = log2(M / 2) and the basic T2 polar code matrix is given by Therefore, T M / 2 is the transformation matrix of the classical polar code with a length of M / 2.

[0119] The next stage 302 is to obtain the second kernel matrix W 2S . Nuclear W 2S is a kernel defined by a full binary lower triangular matrix of size 2S×2S. The value of S is as given above, S=N / M. W 2S The kernel matrix Figure 4 501 and 502. The matrix can be redrawn as a factor graph comprising 2S input bit channels 501 and 2S output bit channels 502. The rows in the figure are interconnected by a series of summing nodes that perform XOR operations on the bit-by-bit inputs. The output of each summing node is fed into the input of the summing node in the previous row. In this way, the input values are iteratively reverse-summed starting from the last bit value in the input bit channel 501.

[0120] Then, according to the limitation In other words, the transformation matrix is defined as W obtained in 302. 2S The Kronecker (tensor) product of the kernel and the classical transformation matrix of the polar code of length M / 2. This matrix is given by a square matrix of size 2S×2S with ones on the diagonal and ones below the diagonal and zeros above the diagonal, as Figure 4 In addition, the factor graph representation of this matrix is depicted in Figure 5 The resulting Tanner graph of the transformation matrix T can be described as a multi-core polar code, and for the general case of an input vector u of size N, Figure 6 Depicted in. Figure 6The number of connections shown is illustrative and the actual number will depend on the 2S and T M / 2 The kernel size.

[0121] The Tanner graph 600 comprises a series of input channels or input rows on which the values of the input vector 601 are received. In the first stage of the graph, there is a series of T M / 2 The encoding units 602-1 to 602-2S are sequentially connected to the input lines that receive the values of the input vector u. The input vector can be regarded as a vector in the corresponding T M / 2 The input of the encoding unit receives a series of sub-input vectors u1 to u 2S , the T M / 2 The encoding unit encodes M / 2 inputs according to the classical polar code kernel, that is, for the sub-input vector u n , the coded bits are equal to u n .T M / 2 Then, according to the permutation network 602, these output bits are spanned across W 2S The coding units 604-1 to 604-2S are evenly distributed so that in the second coding stage, 2S Each output is received at a corresponding one of the inputs of encoding units 604-1 to 604-2S. M / 2 The output of the encoding unit is composed of each W 2S The first input of the encoding unit is received, and the second T M / 2 The output of the unit is respectively 2S The second input of the encoding unit is received, and so on. Then, W 2S The output of the encoding unit is reordered according to the permutation connection (reordering network) 605 to output the encoded codeword x. The permutation (reordering) is performed so that the partial vectors including the first M / 2 values of the codeword x correspond to the first M / 2 values from the four W 2S The first output of the encoding units 604-1 to 604-2S, the second partial vector including the next M / 2 values of x, corresponds to the vectors from the four W 2S The second outputs of encoding units 604-1 to 604-2S, and so on.

[0122] In the above embodiment, the second kernel matrix is chosen to be a full binary lower triangular matrix of size 2S×2S. However, other choices for the second kernel matrix are possible. In particular, the key property that enables the received codeword x to be decoded sequentially in parts, where the decoding result of each part is fed back into the decoding of the next part (i.e., by applying a sliding window), is that the inverse matrix W of the second kernel matrix W is -1As will be shown by later embodiments, it is this property that enables each received set of M values to be iteratively decoded in tuples of M / 2 value vectors (T-uples) according to the existing continuous decoding update rule. -1 The absence of "l" in each column below a certain point in the ensures that for a particular input bit u i The decoding of only needs to use a subset of the N received LLRs.

[0123] The frozen set can be designed based on the multi-core polar code mechanism. 2S The reliability of each output of is determined, and then the reliability is propagated from right to left along the Tanner graph to T M / 2 The kernel matrix is used to determine the reliability of each input bit channel. The most reliable channel is determined based on the obtained value and the frozen channel positions determined to be the remaining unreliable channels.

[0124] Therefore, it is necessary to determine the kernel W 2S The polarization equation and the kernel T M / 2 The polarization equation of . Under BEC, the bit error probability can be calculated, while under AWGN channel, the DE / GA method [5] can be used. This algorithm estimates the log-likelihood ratio (LLR) distribution of the polarization channel by tracking the mean of the polarization channel at each stage of the SC decoding tree. Given Figure 7 The kernel W depicted in 2S The block decoder indicates that the bit u of the core i The bit error probability can be calculated as follows:

[0125]

[0126] Among them, δ is the error probability of the input channel, and for the bit channel u i The LLR mean μ i It can be calculated as follows:

[0127]

[0128] where μ is the input LLR mean and the function φ can be defined as follows:

[0129]

[0130] And the bit error probability can be approximated by curve fitting. Curve fitting can be performed using methods known to those skilled in the art, for example, 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.

[0131] Using the above metric, the reliability of each bit of the input vector can be calculated; the K best bits will form the information set I, while the indices of the remaining NK bit channels form the frozen set F of the code.

[0132] The mean of the log-likelihood ratio of the bit error probability of the classical polar code kernel may be determined in an existing manner known to those skilled in the art.

[0133] Using T M / 2 Matrix and W 2S The equations for both matrices, given known error probabilities or LLR means at the output, can be traced back to determine a value that is a measure of the reliability of each bit channel in the transform matrix.

[0134] coding

[0135] Insert the K message bits into the input vector u according to the previously calculated information set I, i.e., store the values of the K message bits in the form of indices listed in I, while setting the remaining bits of u to zero. Then, calculate the codeword x according to x = u·T, where T is the transformation matrix of the code calculated as described previously. Then, by Figure 1 The codeword x is sent through the channel shown.

[0136] Alternatively, the transformation matrix T based only on the polar code can be used. M / 2 For example, there is no need to implement the matrix W 2S To calculate the codeword x, we actually give the sub-information set I calculated for t=1, ..., 2S according to the information set I. t as included in The entry set of I between t·M / 2 and (t-1)·M / 2 is reduced, and the input vectors u1, ..., u are created accordingly based on the message bits. 2S By multiplying the matrix by TM / 2 To encode each partial input vector independently to obtain partial codewords x1, ..., x 2S Finally, the codeword x is obtained by backward accumulation of the partial codewords starting from the last one, that is, ,in, A bit-wise XOR operation is applied when applied to the binary partial codeword.

[0137] Polar Code Example

[0138] As an example, generation of polar codes according to the above embodiment when N=16, M=8, and therefore S=N / M=2 will now be described.

[0139] Given M / 2=4, the first kernel matrix 701 is selected as the classical polar transformation matrix with dimension M / 2, that is, Figure 7 The second kernel matrix 702 has a dimension of 2S×2S=4×4 and uses a 4×4 full binary lower triangular matrix W4. The transformation matrix T of the generated polar code is then given by the Kronecker product of W4 and T4, thereby giving a transformation matrix 703, as shown.

[0140] Can be used separately Figure 8a and Figure 8b The Tanner graph of matrix 703 is constructed for the coding blocks of T4 and W4 as shown in FIG. Then, the full Tanner graph is as follows Figure 9 As shown, it includes four T4 units 902-1 to 902-4 and four W4 units 904-1 to 904-4 connected by a reordering (permutation) network (connection) 903 and has outputs reordered according to the reordering (permutation) network (connection) 904. The input vector can be regarded as a sequence of sub-input (partial) vectors u1 to u4 each having M / 2=4 bits, and the output vector x is provided after the reordering network 903. The bits of the encoded output vector x are then propagated through the communication channel and are received as bits received as vector y or received values (e.g., LLRs).

[0141] In this embodiment, the LLR mean is calculated as the basis for determining the reliability of each bit channel to which the bits of the input vector are applied. Therefore, for the W4 block, equation (2) can be applied, giving expressions for μ1, μ2, μ3, and μ4 as Figure 10 The corresponding expressions for the T4 block are also shown and are determined based on prior art known to those skilled in the art.

[0142] If we start at the right side of the Tanner graph and take the input mean LLR value to be μ = 2, the resulting output mean LLR for each bit channel i = 1 ... 16 is given as μ1 = {0.01, 0.40, 0.60, 3.28, 0.06, 0.85, 1.24, 5.26, 0.11, 1.17, 1.66, 6.42, 3.78, 11.5, 13.4, 32}. Low values correspond to unreliable channels and the order of the bit channels in terms of reliability is as follows Figure 11 As shown in the columns in . Taking K = 8 information channels from the N bit channels on which the message bits can be sent, the information set is I = {4, 8, 11, 12, 13, 14, 15, 16}. Conversely, the frozen set contains NK channels and includes F = {1, 2, 3, 5, 6, 7, 9, 10}. Each of the bit channels in the frozen set is set to zero in the input vector, and the message bit is placed at the position indicated by the information set. Because the frozen set F or the information set I is the inverse of the other, the frozen set F or the information set I can be provided as a component of the polar code together with the transformation matrix.

[0143] This can be done by using the Figures 7 to 10 The following encoding example of the polar code of is shown. Consider the message m = [l 1 1 0 0 0 0 1 1] that we want to use for encoding and transmission. If we use the frozen set F = {1, 2, 3, 5, 6, 7, 9, 10}, then the resulting input vector u = [ 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1], where the underlined values are frozen bits set to 0, and the message bits m are inserted across the remaining positions. Figure 7 The transformation matrix T of the encoded message x is calculated as follows:

[0144] x=u·T=[0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 1]

[0145] Alternatively, the alternative encoding method described above can be used, which does not explicitly require the generation of the transformation matrix T. According to this process, the input vector u = [0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1]. The input vector can be divided into sub-input vectors u1 to u4 of length M / 2 = 4, such that u1 = [0 0 0 1], u2 = [0 0 01], u3 = [0 0 1 0], and u4 = [0 0 0 1]. Equivalently, sub-information sets I1 to I4 can be obtained from the information set I for the full polar code, such that I1 = {4}, I2 = {4}, I3 = {3, 4}, and I4 = {1, 2, 3, 4}, and the four sub-input vectors u1 to u4 are filled in accordingly. Then, each of the sub-input vectors u1 to u4 can be encoded using the T4 classical polar transformation matrix. The resulting encoded vectors are x1 = [l 1 1 1], x2 = [l 1 1 1], x3 = [l 0 1 0], x4 = [l 1 1 1]. To generate a sliding decodable codeword, the following operations are performed:

[0146]

[0147] in, Represents a bit-by-bit XOR operation applied to the binary partial codewords x1 to x4.

[0148] This is Figure 12 It is further shown in the figure, and it can be seen intuitively that the Figure 9 The process is the same as that represented by units 903, 904-1 to 904-4, and 905 in the Tanner diagram of FIG4 , but without the explicit reference to the W4 transform matrix. In particular, it can be seen that the inverse summation corresponds to the XOR operation performed in W4 blocks 904-1 to 904-4 on the output values provided by T4 blocks 902-1 to 902-4. As will become clear from the subsequent decoding embodiments, the inverse summation is an iterative summation process that is inverted by applying a sliding window to the received signal values of codeword x encoded according to the embodiments described above.

[0149] Sliding window decoding

[0150] Sliding window decoding is performed on the polar codeword generated using the polar code designed according to the above embodiment, so that 2S polarization decoding steps are used, each polarization decoding step uses M channel signals (e.g., received signal values on which LLRs are based). Each step uses the M / 2 input bits decoded at the previous step for manipulating half of the LLRs used in decoding to output M / 2 bits of the input vector. It can be considered that Figure 13 The W2S block shown as having u1... 2Sinput channels and x1... 2S A decoding frame of decoded output values.

[0151] Usually, such as Figure 14 As shown and according to Figure 15 In a first step 1501, a window 1410 is applied to a sequence of received signal values corresponding to the likelihood of the encoded bit x received at the decoder. Figure 14 In the example shown, the received signal has N=1024 values and a window size of M=128.

[0152] Then, at the second step 1502, a sub-input vector is calculated based on the windowed value. t - where t is the number of decoding steps - comprises M / 2 bits and is calculated based on M / 2 likelihood values (LLRs) derived from the windowed values. For example, as will be seen, these are obtained by Figure 6 and Figure 9 The Tanner graph of the polar code shown above is derived by combining the values.

[0153] Once the sub-input vector u1 is calculated at the first window position, the window is shifted to another location (e.g., a second location) 1420 at 1503. Specifically, the window is shifted right by a value of M / 2 from the initial position. At 1504, a further likelihood value corresponding to the second location is determined in a similar manner to the first location, but now also taking into account the LLR values that were discarded when the window position was shifted. The further sub-input vector u2 is then decoded based on the derived likelihood (step 1505).

[0154] At 1506, a determination is made as to whether all received signal values have been decoded. In other words, all sub-input vectors constituting the input vector are decoded based on the received signal values. If the answer is "no," the process returns to step 1503, and the window is shifted by a value of M / 2 to another position 1430, and the decoding process continues. At 1504, when obtaining additional likelihood values, not only the likelihood discarded from the immediately preceding window is considered, but also all previous, but now discarded, values are considered. This can be achieved by maintaining a buffer that is updated at the end of each decoding phase by performing processing using the values that are about to be discarded. A specific embodiment describing this process will be described later.

[0155] If the answer is "yes" at step 1506, processing moves to step 1507, where the message bits / information bits are determined based on the sub-input vectors that, when concatenated, comprise the full input vector into which the information bits to be decoded are inserted. The information bits can be extracted using an information set (i.e., a reliability sequence) that specifies bit positions containing information (good channels) and bit positions containing frozen bit values (noise / bad channels). This information set is the full-length information set corresponding to the polar code of length N generated above.

[0156] exist Figure 16 A decoding example is depicted in which the window position is changed at each stage t of the decoding process. The received signal y comprises a plurality of LLR values. The LLR values are based on the signal received when the codeword corresponding to the previous encoding example, where N=16 and M=8, traverses the communication channel. In this example, two LLR values 1604, 1605 have sign errors. For example, the first window position 1601 is represented by t=1 and the shifted window position 1602 is represented by t=2. The window is shifted again to another position 1603 at t=3, but the window remains at the same position for t=4. In this example, the window is shifted by M / 2=4 values at each stage. The resulting sub-input vector u decoded at each stage t is t It is fed forward to the next decoding stage and used together with the LLR value of y at the shifted position to decode the next sub-input vector. The frozen bits indicated by the underline are the corresponding sub-information set I determined based on the information set I based on the full-length polar code. t Since only the last M / 2 values are used in the final decoding step, the window at t=4 can be considered the same as the window at t=3. Another way to look at this would be to shift the window at t=4 but extend beyond the codeword, and the values are not used and are set to infinity. The output sub-input vectors u1, u2, u3, u4 are concatenated to determine the full input vector u.

[0157] In an embodiment, the received signal value y is a log-likelihood ratio (LLR), and the decoding process is based on a successive cancellation (SC) decoding scheme. However, it should be noted that other existing polar decoding schemes (e.g., successive cancellation list (SCL) decoding) can alternatively be used to iteratively determine the value of the input vector by evaluating and updating the received values as they propagate through the Tanner graph, thereby making hard decisions on the input bits based on the propagated received values and knowledge of the positions of frozen bits according to the polar code. Furthermore, while log-likelihood ratio (LLR) values are used here, another measure based on the likelihood of received signal values (e.g., from a demodulated signal) can also be used. LLR values are computationally convenient because they avoid computational underflow when the algorithm is implemented by a processor.

[0158] Typically, log-likelihood ratios (LLRs) are propagated along the Tanner graph from right to left, and hard decisions on the decoded bits of the input vector u are passed from left to right, and the hard decisions are used to update the LLR values in subsequent branches to be consistent with the decoded bits. Initially, the LLRs of the encoded bits x of the received vector y are calculated at the receiver. The received signal is decoded bit by bit using the LLRs propagated through the graph to retrieve the transmitted input vector u (i.e., the transmitted message). For each bit u i , position i is checked against a set of information indicating the bit positions of the input vector containing frozen bits and the bit positions of the input vector containing information bits. i Position i corresponds to the frozen bit, then bit u i The value is decoded into a predetermined value u i = 0, and the decoder continues to evaluate the next bit. i is an information bit, then the corresponding LLR is recursively calculated for the bit position. Then, based on the calculated LLR, the bit u at the position is i This is usually done based on a threshold, where negative LLR values are indicated as "1" and positive values are indicated as "0". i The determination of the LLRs typically involves receiving LLR values from the previous stage in the multi-core tanner graph and updating the values according to the update rules for the core block. Each core block includes a recursive concatenation iteration of the basic T2 polar code block, and for the existing polar code core, the existing decoding rules are used. So that (u0u1).T2=(x0x1), where , and among them, λ i and l i denote the LLR at the input vector side and the LLR at the output side (ie, the received LLR value), respectively, and u iand x i Represents the hard decision on the bit value to be decoded. The hard decision update rule specifies the following:

[0159] x0=u0+u1-3

[0160] x1=u1 -4

[0161] Furthermore, the inverse update rules (i.e., proceeding from right to left in the Tanner graph) are u0=x0+x1 and u1=x1+u0+x0, which correspond to the message update equations:

[0162]

[0163] λ1=l0+l1·(1-2u0) -6

[0164] and

[0165]

[0166] exist Figure 16 Another embodiment of the decoding process is provided in . Assume that there are N channel LLRs stored in a vector y comprising received values of codewords sent over a noisy channel. The decoder performs (M / 2, K t ) t = 1 ... 2S polarization decoding steps of the polarization code, where K t Sub-information set I t For the transformation matrix T M / 2 The value t indicates the decoding window position for the M signal values derived as stated below.

[0167] In initialization step 1701, the upper LLRs L0 (LLR buffer) are initialized to zero. These upper LLRs are called because they are related to the LLRs propagated downward from the upper branch in the Tanner graph derived from the previous decoding window t. The input vector y is initialized with the LLR values corresponding to the values of the signal received at the decoder. The information set I is initialized with the reliability sequence of the full multi-core polar code used to encode the received signal. The step counter t is initialized to t = 1.

[0168] At step 1702, the sub-information set I is calculated based on the information set I. t is the set of entries of I containing the values for the current decoding window defined by t. t The value of The value of I between t·M / 2 and t·M / 2 is reduced by (t-1)·M / 2; Obviously, K t =|I tThis sub-information set will be used as the transformation matrix T with the classical polar code M / 2 The information set of the polar code.

[0169] The next step is to extract the subchannel LLR L1 and LLR L2 from the received signal value y. Based on y, the M / 2 LLR for the decoder is calculated as follows:

[0170]

[0171] This vector is extracted from y, and at the same time, a second vector L2 of length M / 2 is calculated as follows:

[0172]

[0173] Then, the first subchannel LLR L1 and the second subchannel LLR L2 are used to derive the channel LLRL in step 1604. Based on these two vectors, the channel LLR L to be used for the current decoding step is calculated as follows:

[0174]

[0175] in,

[0176]

[0177] When applied to the decoding frame W 2S This can be derived according to equation (5) stated above based on the update rule for the existing successive elimination decoding when the branches of the Tanner graph are detected.

[0178] Next, at steps 1705 and 1706, L is used as the channel LLR via SC decoding and based on the classical polar code T M / 2 The Tanner graph of the block is given by I t Limited (M / 2, K t ) polar code is decoded. Successive elimination decoding generates the sub-input vector u t (Step 1605). In SC decoding, the pair input vector u can also be used t The hard decisions made on the bits are used to calculate the partial sum x used in SC decoding t , so that x t =u t ·T M / 2 Therefore, SC decoding provides u t and x t Both as output.

[0179] Then, in step 1707, using the partial sum x t Let's update the LLR L0 as follows:

[0180] L0=(L0+L1)·(1-2x t ) -10

[0181] Again, when applied to W 2S When the nodes of the Tanner graph of the block are added, this is based on the classic continuous decoding update rule, in particular the update equation 6 mentioned above.

[0182] Furthermore, at step 1708, it is determined whether t = 2S. If t = 2S, decoding ends, and at step 1709, the input vector u is calculated by appending all decoded sub-input vectors to form u = [u1 u2 ... u 2S ].

[0183] If, at step 1708, it is determined that t is not equal to 2S, processing returns to step 1702, where t is incremented by 1 at step 1710 and another decoding step is performed. Increasing the value of t by 1 has the following effect: except for the last position, the decoding window is shifted right by M / 2 values, where the L1 value is the last M / 2 values of the received signal and the L2 value is taken to be infinity. Thus, as will be appreciated, a standard successive cancellation decoder can be used to decode received signal values of codewords encoded according to the earlier described embodiments of multi-core polar codes.

[0184] Now it will follow Figures 7 to 12 The example code generation and encoding examples shown and described above describe an example of a decoding process using continuous decoding when applied to a polar code where N = 16. Assume that the following polar-coded binary sequence from the encoding example above has been generated and transmitted on the channel:

[0185] u=[ 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1]

[0186] x=u·T=[0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 1]

[0187] In the initialization step, the following are received as channel LLRs,

[0188] y={1.3,-0.2,0.5, 0.2 ,-1.1,0.7,-0.5,1.1,0.8, 0.5, 1.0, -0.4, -1.0, -0.8, -1.4, -0.6}

[0189] And take the following as the information set,

[0190] I={4, 8, 11, 12, 13, 14, 15, 16}

[0191] In addition, the M / 2=4 LLR buffer values (upper LLR values) are set to zero, so that

[0192] L0=[0 0 0 0]

[0193] The channel LLR values shown underlined have sign errors due to noise in the channel. As will be demonstrated, the error correction properties of the polar code will enable the correct input vector u and encoded bit value x to be decoded from the channel LLRs.

[0194] Figures 18a to 18d An example implementation is shown in which the Tanner graph becomes populated with determined values at each of the four decoding stages t=1...4. First, consider all t=1 and Figure 18a , based on the received value y, L1 = {1.3, -0.2, 0.5, 0.2} and L2 = {-1.1, 0.7, -0.5, 1.1}. The L1 and L2 values are propagated across the permutation network 904 so that the L1 and L2 values are provided to the first and second rows, respectively, in the W4 decoding blocks 904-1 ... 904-4. Because there is no upper LLR for the first iteration, the buffer L0 is zero and L0 + L1 = L1, and thus the channel LLR is . The channel LLR L is propagated across the permutation network 903 so that the channel LLR L is provided at the output of the first T4 polar coding block 902-1. Therefore, these values can be decoded continuously across the polar coding blocks using the sub-information set I1={4}. The resulting decoded sub-input vector u1=[0 0 0 1] and the partial sum x1=[1 1 11]. The partial sum is propagated from left to right and is used to update the upper LLR buffer according to L0=(L0+L1)·(1-2x1)=L1·(1-2x1)={-1.3, 0.2,-0.5,-0.2}.

[0195] exist Figure 18bThe next stage is shown at t = 2. The decoding window shifts by 4 values, and the subchannel LLRs become L1 = {-1.1, 0.7, -0.5, 1.1} and L2 = {0.8, 0.5, 1.0, -0.4}. The L1 and L2 values propagate across the permutation network 904, such that the L1 and L2 values are provided to the second and third rows, respectively, of the W4 decoding blocks 904-1 ... 904-4. The buffer L0 updated at the end of the first stage equals {-1.3, 0.2, -0.5, -0.2}, and therefore, L0 + L1 = {-2.4, 0.9, -1.0, 0.9}.

[0196] Therefore, the channel LLR is . The channel LLR L is propagated across the permutation network 903 so that it is provided at the output of the second T4 polar coding block 902-2. Again, these values are decoded continuously across the polar coding blocks using the sub-information set I2 = {4} derived from the information set I values corresponding to the bit positions of the second sub-input vector. The resulting decoded sub-input vector is u2 = [0 0 0 1] and the partial sum x2 = [1 1 11]. The upper LLR buffer is updated according to L0 = (L0 + L1) (1-2x2) = {-1.3, 0.2, -0.5, -0.2}.

[0197] Figure 18c The third stage, t = 3, is shown. The decoding window is shifted by 4 values, and the subchannel LLRs become L1 = {0.8, 0.5, 1.0, -0.4} and L2 = {-1.0, -0.8, -1.4, -0.6}. The L1 and L2 values are propagated across the permutation network 904, such that the L1 and L2 values are provided to the third and fourth rows, respectively, in the W4 decoding blocks 904-1 ... 904-4. Buffer L0 is {-1.3, 0.2, -0.5, -0.2} from the previous update, and therefore, L0 + L1 = {3.2, -0.4, 2.0, -1.3}.

[0198] Therefore, according to The channel LLRs are derived. The channel LLRs L are propagated across the permutation network 903, resulting in the channel LLRs L being provided at the output of the third T4 polar coding block 902-3. Again, these LLR values are used to perform continuous decoding across polar coding blocks using a sub-information set I3 = {3, 4} derived from the information set I values corresponding to the bit positions of the second sub-input vector. The resulting decoded sub-input vector is u3 = [0 0 0 1] and the partial sum x3 = [1 1 1 1]. The upper LLR buffer is updated according to L0 = (L0 + L1) (1-2x3) = {-3.2, -0.4, -2.0, -1.3}.

[0199] Then, the decoding proceeds to the final stage \(t = 4\), effectively shifting the window such that only the last four values are within the decoding window. This means that the sub-channel LLRs become \(L1=\{-1.0, -0.8, -1.4, -0.6\}\) and \(L2 = \{\infty,\infty,\infty,\infty\}\). The \(L1\) values propagate across the permutation network 904 such that the \(L1\) values are provided to the fourth rows in the \(W4\) decoding blocks 904-1 … 904-4 respectively. The buffer \(L0=\{-3.2, -0.4, -2.0, -1.3\}\), and thus, \(L0 + L1=\{-4.2, -1.2, -3.4, -1.9\}\).

[0200] Therefore, in accordance with the channel LLRs are derived. The channel LLRs \(L\) propagate across the permutation network 903 such that the channel LLRs \(L\) are provided at the output of the third \(T4\) polar encoding block 902-3. Again, these LLR values are used to perform successive decoding across the polar encoding blocks using the sub-information set \(I4=\{1, 2, 3, 4\}\) derived from the \(I\) values corresponding to the bit positions of the second sub-input vector. The resulting decoded sub-input vector is \(u4 = [0\ 0\ 0\ 1]\). Since this is the final decoding step, the steps of determining the partial sum value \(x4\) and updating the buffer \(L0\) are redundant and can be omitted.

[0201] The derived sub-input vectors \(u1 = [0\ 0\ 0\ 1]\), \(u2 = [0\ 0\ 0\ 1]\), \(u3 = [0\ 0\ 0\ 1]\), \(u4 = [0\ 0\ 0\ 1]\) can be concatenated, and the decoded input vector \(u\) is: [0\ 0\ 0\ 1\ 0\ 0\ 0\ 1\ 0\ 0\ 1\ 0\ 0\ 0\ 0\ 1]

[0203] According to the information set \(I\), the decoded message is thus:

[0204] \(m = [1\ 1\ 1\ 0\ 0\ 0\ 0\ 1]

[0205] And the decoded message matches the message used as the original encoding of the multi-core polar code generated according to the present embodiment.

[0206] Figure 19 is a block diagram of a device for generating a polar code according to an embodiment of the present invention. Figure 19 The illustrated device 1900 includes a first obtaining unit 1901, a second obtaining unit 1902, a generating unit 1903, and an information set unit 1904.

[0207] The first obtaining unit 1901 obtains a first matrix as the \(m\)-th Kronecker product of a \(2\times2\) binary lower triangular matrix, where \(m=\log2(M / 2)\), \(M < N\), and \(N\) is the length of the polar code to be generated.

[0208] The second obtaining unit 1902 obtains a second matrix with a dimension of 2S×2S, where S=N / M, and the inverse matrix of the second matrix is a lower triangular band matrix.

[0209] The generating unit 1903 generates a transformation matrix for the polar code by calculating the Kronecker product of the second matrix and the first matrix.

[0210] The information set unit 1904 determines an information set I for identifying a reliable bit channel for the polar code.

[0211] The selections made by the first selection unit and the second selection unit are such that a polar codeword of length N can be obtained using a polar code that can be decoded by iteratively applying a sliding decoding window of length M to the polar codeword, where M <N。

[0212] Additionally, an encoder 1910 may be provided that receives a polar code from apparatus 1900 and uses the polar code to encode a message to be sent over a communication channel. Furthermore, a transmitter 1920 (which may include an antenna) may be provided that is capable of transmitting the encoded message data across the channel, for example, by modulating a signal and transmitting the signal via the antenna.

[0213] Figure 19 The devices 1900, 1910 and 1920 shown may implement Figures 3 to 10 Each step in the method shown. To avoid repetition, the detailed description is not repeated. The apparatus 1900 for generating polar codes, the encoder 1910, and the transmitter 1920 may be embodied in a base station element of a communication network or a user device such as a smartphone or tablet.

[0214] Figure 20 is a block diagram of an apparatus for decoding a received signal according to an embodiment of the present invention. Figure 20 The device 2000 shown includes a window unit 2001 , a first decoding unit 2002 , a shift unit 2003 , a likelihood obtaining unit 2004 and a second decoding unit 2005 .

[0215] The window unit 2001 applies a window of length M to a received signal containing N signal values at a first position, where M <N。

[0216] The first decoding unit 2002 decodes the first sub-input vector using the polar code and the first channel likelihood L based on the signal value obtained from the window at the first position.

[0217] The shifting unit 2003 shifts the window position to a second position.

[0218] The channel likelihood obtaining unit 2004 obtains a second channel likelihood L based on the signal value from the window at the second position and the decoded first sub-input vector.

[0219] The second decoding unit 2005 decodes the second sub-input vector using the polar code and the second channel likelihood.

[0220] A receiver 2020 may be provided which receives a signal to be decoded, for example via a communications network, and provides the signal to the apparatus 2000. A demodulator 2010 may be provided which demodulates a signal received at the receiver 2020 before providing the signal to the apparatus 2000 for decoding.

[0221] Figure 20 The devices 2000, 2010 and 2020 shown may implement Figures 15 to 17 and Figures 18a to 18d Each step in the method shown is not described in detail in order to avoid repetition. Apparatuses 2000, 2010 and 2020 may be located in any network element, for example, in a user equipment or a base station.

[0222] Figure 21 is a schematic block diagram of a device according to another embodiment of the present invention. Figure 21 The device 2100 shown can be configured to implement each step and method in the aforementioned method implementation. The device 2100 can be applied to a base station or terminal in various communication systems. Figure 21In the illustrated embodiment, the device 2100 includes a processing unit (including one or more processors) 2101, a memory 2102, a transmitter / receiver circuit 2103, and an antenna 2104. The processing unit 2101 controls the operation of the device 2100 and may also be referred to as a central processing unit (CPU). The memory 2102 may include a read-only memory and a random access memory (RAM), and the memory 2102 provides instructions and data to the processing unit 2101. A portion of the memory 2102 may also include a non-volatile random access memory (NVRAM). In practical applications, the device 2100 may be embedded in a wireless communication device, or may be a wireless communication device, such as a mobile phone or other portable communication device such as a smart phone or tablet. The transmitter / receiver circuit 2103 may be coupled to the antenna 2104. The components of the device 2100 are coupled together via a bus system 2105, wherein, in addition to the data bus, the bus system 2105 may also include a power bus, a control bus, and a status signal bus. However, for clarity of description, Figure 21 All buses are labeled as bus system 2105.

[0223] The method disclosed in the embodiments of the present invention can be applied in the processing unit 2101. During the implementation process, each step of the method can be completed by using the integrated logic circuit of the hardware in the processing unit 2101 or the instructions in the form of software. These instructions can be implemented and controlled by using the processing unit 2101. Configured to execute the method disclosed in the embodiments of the present invention, the foregoing processing unit may include a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or another programmable logic device, discrete gate or transistor logic devices, or discrete hardware components; and the foregoing processing unit may implement or execute each disclosed method, step, and logic block diagram in the embodiments of the present invention. The general-purpose processor may be a microprocessor, or the processor may be any common processor or decoder, etc. Referring to the steps of the method disclosed in the embodiments of the present invention can be directly executed and completed by the hardware decoding processor, or executed and completed by the combination of the hardware and software modules in the decoding processor. The software module may be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, or a register. The storage medium is located in the memory 2102, and the processing unit 2101 reads the information in the memory 2102 and references the hardware to complete the steps of the method. For example, the memory 2102 may store information about the obtained polarization code, frozen set, or information set for the processing unit 2101 to use during encoding or decoding.

[0224] The communication system or communication device according to the embodiments of the present invention may include device 1900, device 2000, or device 2100.

[0225] The sliding window design and the block error rate (BLER) performance of the decoding of the polarization code in the embodiments of the present disclosure can be compared with the independent block transmission and the optimal full polarization code transmission. Specifically, consider the following scenario: In this scenario, the transmitter must send K bits to the receiver at a rate R = K / N, that is, the transmitter should send N bits. However, due to limited decoding capabilities, the receiver can process only M < N bits each time it receives.

[0226] Compare three strategies:

[0227] - Independent transmission (IND) in the prior art: The transmitter divides K message bits into S = N / M messages of K' = K / S bits, which are independently encoded using S polar codes of length M and dimension K' and transmitted. If all S blocks are correctly decoded, the transmission is successful.

[0228] - Best case full polar code (full, FULL): The transmitter ignores the limitations at the receiver and sends codewords obtained using full (N, K) polar codes. This case serves as a benchmark for the best possible BLER performance achievable by polar codes in transmission.

[0229] - Sliding Window (SW) decoding process as described above: The transmitter designs polar codewords and encodes the polar codewords according to the code generation and encoding embodiments described above. The receiver uses the above embodiment, i.e. Figure 15 and Figure 17 Decoding process.

[0230] In the following, performance results under SC (SCL-1 in the figure) decoding and SCL decoding are shown. Figure 22 The case where N=1024, K=256 and M=256, i.e. with a ratio R=1 / 4, is studied, and Figure 23 A similar scenario was studied where K = 128 and ratio R = 1 / 8. Figure 22 It is shown that the proposed solution is slightly better than IND in the case of SC decoding, but far worse than full polar codes; this gap is eliminated in the case of SCL, while IND cannot improve its performance. Figure 23 It is shown that the proposed solution allows a gain of up to 1 dB compared to the prior art, even if the result is still far from optimal. Figure 24 The case where N = 1024, K = 512, and M = 512—that is, with a ratio R = 1 / 2—was studied. In this case, the gain is still about 1 dB compared to IND. In general, simulations show that embodiments of the present invention consistently provide better block error rates than existing solutions, and in some cases, embodiments of the present invention can even achieve the best BLER performance.

[0231] Those skilled in the art will appreciate that, in conjunction with the examples described in the embodiments disclosed in this specification, the units and algorithm steps can be implemented by electronic hardware or a combination of computer software and electronic hardware. Whether the functions are performed by hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present invention.

[0232] Those skilled in the art can clearly understand that, for the purpose of convenience and brief description, the detailed working processes of the aforementioned systems, devices and units can refer to the corresponding processes in the aforementioned method implementation, and the details are no longer described in this document.

[0233] In the embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described are only exemplary. For example, the unit division is only a logical function division, and there can be other divisions in the actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not performed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be implemented through some interfaces. The indirect coupling or communication connection between devices or units can be implemented in electronic, mechanical or other forms.

[0234] Units described as separate parts may or may not be physically separate, and parts shown as units may or may not be physical units, may be located in one location, or may be distributed across multiple network units. Some or all of the units may be selected based on actual needs to achieve the purpose of the solution of the embodiment.

[0235] In addition, the functional units in the embodiments of the present invention may be integrated into one processing unit, or each of the units may exist physically separately, or two or more units may be integrated into one unit.

[0236] When a function is implemented in the form of a software functional unit and is sold or used as an independent product, the function can be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the present invention can be implemented in the form of a software product in essence or in part or in part of a technical solution that contributes to the prior art. A computer software product is stored in a storage medium and includes several instructions for instructing a computer device (which can be a personal computer, a server or a network device) to execute all or part of the steps of the method described in the embodiment of the present invention. The aforementioned storage medium includes: any medium that can store program code, such as a USB flash drive, a removable hard disk, a read-only memory (ROM), a random access memory (RAM), a disk or an optical disk.

[0237] The present invention may be embodied in other specific devices and / or methods. The described embodiments are to be considered in all respects as illustrative and not restrictive. In particular, the scope of the invention is indicated by the appended claims rather than by the description and drawings herein. All changes that come within the meaning and range of equivalents of the claims are intended to be embraced within their scope.

Claims

1. A method for decoding a received signal, the method comprising: Applying a window of length M to a received signal comprising N signal values at a first position, where M < N; Decoding a first sub-input vector using a polar code and a first channel likelihood L based on the signal values obtained from the window at the first position; Shifting the window position to a second position; Obtaining a second channel likelihood L based on the signal values from the window at the second position and the decoded first sub-input vector; and Decoding a second sub-input vector using the polar code and the second channel likelihood, where the number of the obtained first channel likelihood and second channel likelihood is M / 2, and the polar code has a polarity transformation matrix of size M / 2.

2. The method according to claim 1, wherein The polar code used to decode the first sub-input vector and the second sub-input vector is a sub-information set (I) of the polar code information set (I) with a length of N. t ), the information set (I) is used to encode an input vector including the first sub-input vector and the second sub-input vector.

3. The method according to claim 1 or 2, further comprising: Dividing the windowed M signal values into M / 2 likelihood values of a first sub-channel and M / 2 likelihood values of a second sub-channel; And generating the first channel likelihood and the second channel likelihood using the first sub-channel likelihood and the second sub-channel likelihood.

4. The method according to claim 3, wherein: Obtaining the second channel likelihood includes: Updating a likelihood buffer (L0) of M / 2 likelihood values using the decoded first sub-input vector and the first sub-channel likelihood values, and Using the buffer together with the buffer of the first sub-channel likelihood and the buffer of the second sub-channel likelihood of the window at the second position to generate the second channel likelihood.

5. The method according to claim 1 or 2, wherein: The steps of shifting the window, obtaining the second channel likelihood, and decoding the second sub-input vector are iteratively executed.

6. A method for generating a polar code, the method comprising: Obtaining a first matrix that is the m-th Kronecker product of a 2×2 binary lower triangular matrix, where m = log2(M / 2), M < N and N is the length of the polar code to be generated; Obtaining a second matrix of dimension 2S×2S, where S = N / M and the inverse matrix of the second matrix is a lower triangular band matrix; Generating a transformation matrix for the polar code by calculating the Kronecker product of the second matrix and the first matrix; and Determining an information set I that identifies reliable bit channels for the polar code, where a polar codeword of length N is obtained using the polar code, and the polar code is decoded by iteratively applying a sliding decoding window of length M to the polar codeword, where M < N, where, during each iteration, a successive decoding process of a polar code of size M / 2 is applied to the windowed M values of the polar codeword.

7. The method according to claim 6, wherein: Determining the information set includes: Estimating the bit error probability and / or the log-likelihood ratio of a first kernel and a second kernel having i-bit channels corresponding to the first matrix and the second matrix.

8. The method according to claim 6 or 7, wherein: The second matrix is a full binary lower triangular matrix.

9. A method for encoding message bits into a polar codeword, the method comprising: Inserting K message bits into an input vector u according to reliable channels identified by an information set I; Generating a polar codeword using the input vector u by calculating the product of the input vector and a transformation matrix generated according to any one of claims 6 to 8.

10. A method for encoding message bits into a polar codeword, the method comprising: Inserting K message bits into an input vector u according to reliable bit channels identified by an information set I of a polar code of length N; Dividing the input vector u into 2S sub-input vectors of size M / 2, where S = N / M; Encoding the sub-input vectors using a transformation matrix including m Kronecker products of 2×2 full binary lower triangular matrices, where m = log2(M / 2); Iteratively adding corresponding bits of one or more encoded sub-input vectors to the immediately preceding encoded sub-input vector to generate the polar codeword using the input vector u based on a polarity transformation matrix of size M / 2 according to the polar code, where M is the length of the polar codeword processed at a target decoder.

11. A device for decoding a received signal, the device being configured to: A window of length M is applied at a first position to a received signal comprising N signal values, wherein M < N; Decoding a first sub-input vector using a polar code and a first channel likelihood L based on signal values obtained from the window at the first position; Shifting the window position to a second position; Obtaining a second channel likelihood L based on signal values from the window at the second position and the decoded first sub-input vector; and Decoding a second sub-input vector using the polar code and the second channel likelihood, where the number of the obtained first channel likelihood and second channel likelihood is M / 2, and the polar code has a polarity transformation matrix of size M / 2.

12. The device according to claim 11, wherein The polar code used to decode the first sub-input vector and the second sub-input vector is a sub-information set (I) of the polar code information set (I) with a length of N. t ), the information set (I) is used to encode an input vector including the first sub-input vector and the second sub-input vector.

13. The device according to claim 11 or 12, further configured to: Divide M windowed signal values into M / 2 likelihood values of a first sub-channel and M / 2 likelihood values of a second sub-channel, and generate the first channel likelihood and the second channel likelihood using the first sub-channel likelihood and the second sub-channel likelihood.

14. The device according to claim 13, wherein The device is configured to obtain the second channel likelihood by: Updating a likelihood buffer (L0) of M / 2 likelihood values using the decoded first sub-input vector and the first sub-channel likelihood values, and Using the buffer together with buffers of the first sub-channel likelihood and the second sub-channel likelihood of the window at the second position to generate the second channel likelihood.

15. The device according to claim 11 or 12, further configured to: Iteratively perform the steps of shifting the window, obtaining the second channel likelihood, and decoding the second sub-input vector.

16. A device for generating a polar code, the device being configured to: Obtain a first matrix that is the m-th Kronecker product of 2×2 binary lower triangular matrices, where m = log 2(M / 2), M < N and N is the length of the polar code to be generated; Obtaining a second matrix of dimension 2S×2S, where S = N / M and the inverse matrix of the second matrix is a lower triangular band matrix; Generating a transformation matrix for the polar code by calculating the Kronecker product of the second matrix and the first matrix; and Determining an information set I identifying reliable bit channels for the polar code, wherein the polar code is used to obtain a polar codeword of length N, and the polar code is decoded by iteratively applying a sliding decoding window of length M to the polar codeword, wherein M <N, The apparatus is further configured to apply a continuous decoding process based on a polar code of size M / 2 to the windowed M-valued polar codeword during each iteration.

17. The apparatus according to claim 16, configured to determine the information set by: The bit error probabilities and / or log-likelihood ratios of a first kernel and a second kernel having i bit channels corresponding to the first matrix and the second matrix are estimated.

18. The device according to claim 16 or 17, wherein The second matrix is a full binary lower triangular matrix with a dimension of 2S×2S.

19. An apparatus for encoding message bits into polar codewords, the apparatus being configured to: Insert K message bits into the input vector u according to the reliable channel identified by the information set I; A polar codeword is generated using the input vector u by calculating the product of the input vector u and a transformation matrix of the polar code generated according to any one of claims 6 to 8.

20. An apparatus for encoding message bits into polar codewords, the apparatus being configured to: Insert K message bits into the input vector u according to the reliable channel identified by the information set I of the polar code; The input vector u is divided into 2S sub-input vectors of size M / 2, where S = N / M; The sub-input vector is encoded using a transformation matrix comprising an m-th Kronecker product of a 2×2 binary lower triangular matrix, where m=log2(M / 2), and Iteratively adding corresponding bits of one or more coded sub-input vectors to an immediately previously coded sub-input vector to generate the polar codeword using the input vector u based on a polar transformation matrix of size M / 2 according to the polar code, where M is a length of the polar codeword for processing at a target decoder.

21. A computer-readable storage medium storing a computer program, the computer program comprising instructions which, when executed by one or more processors, cause the method of any one of claims 1 to 10 to be performed.

22. A communication device, comprising a processor coupled to a memory, the memory being configured to store instructions, the processor being configured to execute the instructions, so that the communication device performs the method according to any one of claims 1 to 10.