Multi-level encoding and multi-level decoding of information bits

Through the multi-level encoding and decoding system combining ensemble segmentation marking and Cartesian plane segmentation technology, the problem of high complexity of multi-level encoding and decoding systems in the prior art is solved, and the spectrum efficiency of low-complexity decoding and high noise tolerance is achieved promote.

CN119137866APending Publication Date: 2024-12-13HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280095428.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-04-28
Publication Date
2024-12-13

AI Technical Summary

Technical Problem

The existing multi-stage encoding and decoding systems have problems such as high complexity, high log-likelihood calculation complexity, and increased number of storage subconstellations in high-order modulation and capacity implementation codes, especially in additive Gaussian white noise channels. Poor performance on the top.

Method used

Using multi-stage encoder and decoder, the information bits are encoded and decoded through component codes, and the complexity of the decoding level is reduced by using set segmentation marks and Cartesian plane segmentation technology, and the log-likelihood is simplified by rotation and shift transformation. Reduce storage and computing burden than computing.

Benefits of technology

Low complexity demapping and spectrum efficiency improvement are achieved, the log-likelihood ratio calculation complexity is reduced, and noise tolerance and spectrum efficiency are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119137866A_ABST
    Figure CN119137866A_ABST
Patent Text Reader

Abstract

The invention relates to a multi-level encoder and a corresponding multi-level decoder. The present invention relates to a multi-level encoder comprising m sub-encoders for encoding K information bits by m component codes, each component code having a length of N in a codeword having a total length of mN, where m, K and N are integers, where m < = N and K < = N, and the encoder is configured to: store the K information bits as a message u; the message u is divided into m sub-information vectors u (i), i = 1,..., m, the lengths of the m sub-information vectors are K (1),..., K (m), and K (1) +... + K (m) = K; encoding each sub-information vector in the m sub-information vectors u (i) into m sub-code words c (1),..., c (m) through the m sub-encoders; mapping the m sub-codewords c (1),..., c (m) to N symbols obtained from 2m constellation points having a modulation format (e.g., 2m-QAM) to form a vector x; using a set-partitioning (SP) mark to mark each symbol in the N symbols as a character string of m bits, and using a set-partitioning (SP) mark to mark each symbol in the N symbols as a character string of m bits; the vector x is transmitted over a communication channel. The proposed SP flag for 2m-QAM supports multi-level decoding with low complexity in which the same decision grid with a checkerboard 0 / 1 structure remains fixed at each decoding level (independent of the decisions made on the bits that have been decoded) while changing the position of the received symbols.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an encoder for encoding information bits and a decoder for decoding information bits. The encoder of the present invention is a multi-stage encoder and the decoder is a multi-stage decoder. The present invention also relates to corresponding encoding and decoding methods. Technical Background

[0002] Channel codes are essential in all digital communication systems. A forward error correction (FEC) coding system, also commonly referred to as a coding scheme, consists of an encoder at the transmitting end and a decoder at the receiving end. The encoder adds redundancy to the data to be transmitted, i.e., appends redundant data, and the decoder uses this redundancy to correct transmission errors so that the receiver obtains error-free transmitted data despite the noise of the communication channel. For example, Figure 1 As shown, the data u to be transmitted (called the information word) is provided to the encoder, which produces a codeword x including redundancy. The codeword is then sent through a noisy communication channel, which usually introduces errors. The output vector y after the channel is provided to the decoder, which produces an estimate of the codeword sent and the data sent. The set C of possible codewords is called a code, or channel code, and this code will be particularly concerned below.

[0003] Polar codes are linear block codes that rely on polarization effects (see, e.g., E. Arikan, “Channel polarization: A method for constructing capacity achieving codes for symmetric binary-input memoryless channels”, IEEE Transactions on Information Theory, Vol. 55, No. 7, pp. 3051–3073, July 2009), which allow to sort the bit positions of the data u to be transmitted, also called bit channels, in order of reliability. As the code length increases, polarization phenomena affect the reliability of the bit channels, which are either completely noisy or completely noiseless. More importantly, the fraction of noise-free bit channels tends to the channel capacity.

[0004] For finite practical code lengths, the polarization of the bit channels is incomplete and, therefore, there are partially noisy bit channels. The polar coding process consists in classifying the bit channels in u into two groups: K bit channels that will carry information bits and are indexed by the information set I, and N–K bit channels that are fixed to a predefined value (usually 0) and indexed by a frozen set F. In the case of finite code length, the K best bit channels (i.e., the bit channels with the highest reliability) are selected to form the information set, while the remaining bit channels are frozen. Polar code decoding is usually based on a successive cancellation (SC) decoding algorithm, which is sequential in nature. SC list (SCL) decoding is an enhanced version of SC, where it is performed multiple times during decoding and the decision is postponed to the end of the decoding process and is usually performed with the help of a cyclic redundancy check (CRC).

[0005] Bandwidth efficiency is a key issue in the development of future wireless telecommunication systems. The use of higher-order modulation and capacity realization codes is a promising direction to improve bandwidth efficiency. Bit-interleaved coded modulation (BICM) is a commonly used technique in this field, however, it is known to be suboptimal over additive white Gaussian noise (AWGN) channels. Multi-level coding (MLC) combined with multi-stage decoding (MSD) looks more promising, but it is more complex and more sensitive to code design. Structurally, polar codes are the best candidates for component codes of MLC / MSD systems. Multi-level polar codes (MLPC) and a series of design principles have been proposed. Multilevel polar codes (MLPC) of length mN are a type of code that can be used in 2 m A multi-level code with component polar codes of length N on a binary constellation. The component polar code design can be based on the polarization effect of the virtual channel at each decoding level. This effect depends on the modulation scheme used in the transmission. It has been shown that MLPC can provide better performance if set-partitioning (SP) marking is used in high-order modulation schemes.

[0006] There are two main drawbacks of MLPC demapping via quadrature amplitude modulation (QAM). First, the subconstellation of a partially decoded symbol depends on the decisions made on previously decoded bits. Therefore, each symbol has a specific subconstellation that should be stored in the memory, while the number of subconstellations doubles at each decoding level. Second, the complexity of the log-likelihood-ratio (LLR) calculation depends on the number of constellation symbols and grows exponentially with the increase of the modulation order. These problems are not specific to MLPC decoding, but they are common to every MLC / MSD system.

[0007] Furthermore, current SP notation for QAM constellations requires the storage of multiple sub-constellations at the receiver or decoder. At each decoding stage, a decision made on a bit removes half of the constellation points of the QAM constellation for the next decoding step, however, the constellation points removed depend on the decision made. Furthermore, finding the nearest constellation point for a received symbol requires calculating the Euclidean distance between the symbol and each constellation point.

[0008] Therefore, there is a need for an improved encoder for encoding information bits and an improved decoder for decoding information bits. Summary of the invention

[0009] The object of the present invention is to provide such an improved encoder and decoder. In particular, one object is to overcome the above mentioned disadvantages.

[0010] These and other objects are achieved by what is presented in the attached independent claims. Advantageous implementations are further defined in the dependent claims.

[0011] In order to better understand the solutions of the present invention, some theoretical considerations are given below.

[0012] The function of an example MLC / MSD system with m stages is as follows Figure 2 This system consists of m component codes of length N, resulting in a total code of length mN bits, which is sent through N symbols. At the sending end, the K information bits stored in the message u (data to be sent) are divided into m sub-information vectors of length K, (1) , K (2) ,……,K (m) , where K (1) +K (2) +…+K (m)= K, and each sub-information vector is encoded by one of the m component codes. It should be noted that the lower level has lower reliability and is more susceptible to transmission errors, so K (l) ≤K (l+1) It should be noted that the design of multi-level codes is beyond the scope of the present invention. (l) ,N) component code will K (l) sub-information bits as input and encode the sub-information bits into a sub-codeword c consisting of N bits. (l) If the component code is a polar code, the resulting MLC is called a multi-level polar code (MLPC), K (l) The sub-information bits are stored in a sub-input vector u of length N before being encoded. (l) At the end of the multi-stage coding stage, the m sub-codewords c (1) 、c (2) ,……,c (m) is mapped to the slave modulation 2 m The ith coded symbol consists of the ith coded bit of each subcodeword appended. The first bit is the subcodeword c. (1) The ith coded bit of is, and the second bit is the subcodeword c (2) The i-th coded bit of , and so on. Therefore, a vector x consisting of N constellation points is obtained and then sent through a noisy communication channel.

[0013] At the receiving end, multi-stage decoding (MSD) is performed by sequentially decoding the component codes from the first stage to the last stage and adjusting the constellation points available at a certain stage based on the previously decoded component codes. First, a vector y consisting of N symbols is received from the channel. Each symbol represents a constellation point that is modified by the channel noise. This received vector y is initially decoded by the first stage decoder of the MSD system. The log-likelihood-ratio (LLR) used by the component code decoder is calculated based on the received vector y. In practice, the constellation points are divided into two sets and The constellation points with 0 and 1 in the first position are collected respectively. In this way, if y i represents the i-th symbol of vector y, then its LLR That is, the i-th LLR passed to the first-level decoder is calculated as:

[0014]

[0015] Then the LLR vector l(1) Provided to the first-level component code decoder. The component code decoder outputs a binary vector It means the front K (1) The estimate of the message bits (or the input vector u of the MLPC (1) Then the binary vector is transformed into Encoded to calculate Represents the first level codeword c (1) The bits that make up this estimated codeword are used to reduce the constellation size for the next decoding step. In fact, if a symbol is decoded as 0, its new constellation is If the symbol is decoded as 1, the constellation is For the next step of decoding, the constellation points will be divided again into two subsets, collecting the constellation points with 0 and 1 in the second position. However, in this case, the subsets also depend on the decisions made at the first level of decoding. Usually, at decoding level l, the subsets of two constellation points depend on the symbol y i , so they are called and Now, the multi-stage decoding technique is repeated at each decoding stage. At level l, the LLR is calculated as follows:

[0016]

[0017] Among them, σ 2 represents the AWGN channel variance, Indicates constellations Middle distance i At the end of the last decoding stage, the combined binary vector To get an estimate of the messages sent

[0018] MLC / MSD systems with m-level can be m The two-dimensional QAM constellation with SP marking is naturally modulated. The two-dimensional QAM constellation with SP marking is widely used in wireless and optical transmission due to its good noise tolerance. SP marking allows increasing the average Euclidean distance between constellation points at each level, thereby improving spectrum efficiency. m -QAM two-dimensional constellation (where m is an even number) is composed of 2 m / 2 ×2 m / 2A subset of the Cartesian plane formed by points on a grid of points. This grid is usually centered on the intersection of the axes, and the vertical and horizontal distances of the points to their nearest neighbors are 2. SP notation was first proposed by G. Ungerboeck in "Trellis-coded modulation with redundant signal sets Part I: Introduction", IEEE Communications Magazine, Vol. 25, No. 2, pp. 5–11, February 1987, and consists in dividing the constellation points into two subsets, one assigned to bit value 0 and the other to bit value 1, such that the minimum distance between two points in the same subconstellation is minimized. Each subconstellation is again divided into two subsets following the same minimum distance maximization strategy. This process is repeated until a subconstellation is formed by a single point. A scheme for SP marking of conventional constellations (including QAM) was proposed by GD Forney in "Coset codes. I. Introduction and geometrical classification", IEEE Transactions on Information Theory, Vol. IT-34, No. 5, pp. 1123–1151, September 1988.

[0019] Based on the above, according to a first aspect, the present invention relates to a multi-stage encoder, comprising m sub-encoders, wherein the m sub-encoders are used to encode K information bits by m component codes, and in a codeword with a total length of mN, the length of each component code is N, wherein m, K and N are all integers, wherein m≤N and K≤N, and the encoder is used to:

[0020] – storing the K information bits into the message u;

[0021] – Divide the message u into m sub-information vectors u (i) , i=1, ..., m, with lengths of K respectively (1) ,……,K (m) , where K (1) +…+K (m) =K;

[0022] – The m sub-information vectors u are converted into (i) Each sub-information vector in is encoded as m sub-codewords c (1) ,……,c (m) ;

[0023] – The m sub-codewords c (1) ,……,c (m) Mapping to 2 with modulation formatm N symbols obtained from constellation points to form a vector x;

[0024] – marking each of the N symbols as a string of m bits;

[0025] – Sending the vector x through a communication channel.

[0026] For example, this provides an advantage that a low complexity demapper can be implemented on the decoder side. Furthermore, this provides an advantage that the spectral efficiency is improved. The marking may be a set partitioning marking. This provides an advantage that a good noise tolerance is achieved.

[0027] In a preferred embodiment, the encoder is configured to mark each of the N symbols as the string of m bits as follows: if the first constellation point A has coordinates (α, β), then

[0028] ○ Determine the symbol S of the first constellation point A A ;

[0029] ○According to the symbol S A , assign the first bit value of the label of the point A to 0 or 1; for i=1, ..., m-1

[0030] ■ Based on the i+1 and i-th bit values, determine the second constellation point A i =(α i ,β i ), wherein the first bit value is the first bit value;

[0031] ■ Determine the second constellation point A i The symbol S Ai ;

[0032] ■Based on the symbol S Ai Determine the i+1th bit value;

[0033] ■ Assign the i+1th bit value to the label of the point A.

[0034] This provides an advantage that the spectrum efficiency is improved.

[0035] In an implementation of the first aspect, the coordinates (α, β) and (α i ,β i ) are Cartesian coordinates.

[0036] This offers the advantage that well-known coordinates can be easily implemented.

[0037] In an implementation of the first aspect, the encoder is further configured to determine the symbol S of the first constellation point A based on the following formula: A :

[0038] S A =sign(([β+α+d] 2d –d) 2 +([β–α] 2d –d) 2 –([β+α] 2d –d) 2 –([β–α+d] 2d –d) 2 ),

[0039] Wherein, d is the distance of the constellation points.

[0040] This offers the advantage that simple formulas can be easily implemented.

[0041] In an implementation of the first aspect, for i=1, the encoder is configured to calculate the second constellation point A based on the following formula: 1 The coordinates (α 1 ,β 1 ):

[0042]

[0043] Here, a represents the value of the previously allocated bit.

[0044] This offers the advantage that simple formulas can be easily implemented.

[0045] In an implementation of the first aspect, the constellation point has 2 m Quadrature Amplitude Modulation A two-dimensional modulation format where m is an even number.

[0046] This offers the advantage that a good noise tolerance can be achieved.

[0047] According to a second aspect, the present invention relates to a multi-stage decoder comprising m sub-decoders. The decoder is configured to:

[0048] – A vector y is received through a communication channel, comprising a set of N symbols, where m and N are both integers and m≤N, where each received symbol y i (l)A constellation point in a set of constellation points corresponding to a two-dimensional modulation format, wherein the set of constellation points is divided into two subsets of constellation points, including a first subset of bits assigned to a value of 0 and a second subset of bits assigned to a value of 1, so that the minimum distance d in the same subset is maximized, and wherein the vector y has coordinates (α, β) and components y i (l) , i = 1, ..., N, and l = 1, ..., m;

[0049] – Based on the corresponding received symbol y i (l) Determine the log-likelihood ratio

[0050] – Based on the log-likelihood ratio, the first-level sub-decoder determining a bit value;

[0051] – Based on the bit value, the symbol y i (l) Transform to get each symbol y i (l) Get the new symbol y i (l +1) , wherein the transformation includes rotation and shift;

[0052] – Based on the new symbol y i (l+1) Determine the next log-likelihood ratio

[0053] – Based on the next log-likelihood ratio Determine the next bit value,

[0054] - decoding the vector y based on the bit value and the next bit value.

[0055] This provides an advantage in that the log-likelihood ratio computational complexity is reduced. Furthermore, this provides an advantage in that the decoder does not have to keep track of the sub-constellation points at each decoding stage, but can simply modify the received symbols while always maintaining the same constellation. Furthermore, the number of constellation points is halved at each decoding stage.

[0056] In an implementation of the second aspect, the constellation point has 2 m Quadrature Amplitude Modulation A two-dimensional modulation format where m is an even number.

[0057] This offers the advantage that a good noise tolerance can be achieved.

[0058] In an implementation of the second aspect, the decoder is configured to generate a decision grid as a Cartesian plane segmentation, wherein centers of squares of the decision grid represent constellation symbols.

[0059] In an implementation of the second aspect, the decoder is further configured to: i (l) =(α,β) to calculate the new symbol y i (l+1) , where (α, β) is the received symbol y i (l) The coordinates of

[0060] Among them, if l is an odd number, then:

[0061] ○ If the received symbol y i (l) is decoded to 0, then:

[0062]

[0063] ○ If the received symbol y i (l) is decoded to 1, then:

[0064]

[0065] Among them, if l is an even number, then:

[0066] ○ If the received symbol y i (l) is decoded to 0, then:

[0067]

[0068] ○ If the received symbol y i (l) is decoded to 1, then:

[0069]

[0070] In an implementation of the second aspect, the decoder is further configured to convert the log-likelihood ratio Calculated as:

[0071]

[0072] in,[·] 2d represents the truncation operation modulo 2d, and σ represents the channel variance.

[0073] This provides an advantage of reducing the computational complexity of the log-likelihood ratio.

[0074] According to a third aspect, the invention relates to a method for a multi-stage encoder, the multi-stage encoder comprising m sub-encoders, the m sub-encoders being used to encode K information bits by m component codes, each component code having a length of N in a codeword having a total length of mN, wherein m, K and N are integers, wherein m≤N and K≤N. The method comprises:

[0075] – storing the K information bits into the message u;

[0076] – Divide the message u into m sub-information vectors u (i) , i=1, ..., m, with lengths of K respectively (1) ,……,K (m) , where K (1) +…+K (m) =K;

[0077] – The sub-information vector u is encoded by the m sub-encoders (i) Each sub-information vector in is encoded as m sub-codewords c (1) ,……,c (m) ;

[0078] – The m sub-codewords c (1) ,……,c (m) Mapping to 2 with modulation format m N symbols obtained from constellation points to form a vector x;

[0079] – marking each of the N symbols as a string of m bits;

[0080] – Sending the vector x through a communication channel.

[0081] In an implementation manner of the third aspect, the step of marking each of the N symbols as a string of m bits includes:

[0082] If the first constellation point A has coordinates (α, β), then:

[0083] ○ Determine the symbol S of the first constellation point A A ;

[0084] ○According to the symbol S A , assign the first bit value of the label of the point A to 0 or 1; for i=1, ..., m-1

[0085] ■ Based on the i+1 and i-th bit values, determine the second constellation point A i =(α i ,β i), wherein the first bit value is the first bit value;

[0086] ■ Determine the second constellation point A i The symbol S Ai ;

[0087] ■Based on the symbol S Ai Determine the i+1th bit value;

[0088] ■ Assign the i+1th bit value to the label of the point A.

[0089] According to a fourth aspect, the present invention relates to a method for a multi-stage decoder comprising m sub-decoders. The method comprises:

[0090] – A vector y is received through a communication channel, comprising a set of N symbols, where m and N are both integers and m≤N, where each received symbol y i (l) A constellation point in a set of constellation points corresponding to a two-dimensional modulation format, wherein the set of constellation points is divided into two subsets of constellation points, including a first subset of bits assigned to a value of 0 and a second subset of bits assigned to a value of 1, so that the minimum distance d in the same subset is maximized, and wherein the vector y has coordinates (α, β) and components y i (l) , i = 1, ..., N, and l = 1, ..., m;

[0091] – Based on the corresponding received symbol y i (l) Determine the log-likelihood ratio

[0092] – Based on the log-likelihood ratio, the first-level sub-decoder determining a bit value;

[0093] – Based on the bit value, the symbol y i (l) Transform to get each symbol y i (l) Get the new symbol y i (l +1) , wherein the transformation includes rotation and shift;

[0094] – Based on the new symbol y i (l+1) Determine the next log-likelihood ratio

[0095] – Based on the next log-likelihood ratio Determine the next bit value,

[0096] - decoding the vector y based on the bit value and the next bit value.

[0097] According to a fifth aspect, the present invention relates to a computer program comprising instructions, which, when the computer program is executed by a computer, cause the computer to perform the method according to the third aspect or the fourth aspect.

[0098] It should be noted that all devices, elements, units and devices described in this application can be implemented in software or hardware elements or any combination thereof. All steps performed by various entities described in this application and the functions described to be performed by various entities are intended to indicate that the corresponding entities are used to perform the corresponding steps and functions. Although in the description of the following specific embodiments, the specific functions or steps performed by the external entity are not reflected in the description of the specific detailed elements of the entity performing the specific steps or functions, it should be clear to the technician that these methods and functions can be implemented by corresponding software or hardware elements or any combination thereof. BRIEF DESCRIPTION OF THE DRAWINGS

[0099] In conjunction with the accompanying drawings, the following description of specific embodiments illustrates various aspects and implementations of the present invention. In the drawings:

[0100] Figure 1 A schematic diagram of an exemplary system including an encoder and a decoder is shown;

[0101] Figure 2 A schematic diagram of an exemplary system including an encoder and a decoder is shown;

[0102] Figure 3 A schematic diagram of a system including an encoder and a decoder provided in an embodiment of the present invention is shown;

[0103] Figure 4 shows a mark for a constellation diagram provided by an embodiment of the present invention;

[0104] Figure 5 An example of marking and demodulation provided by an embodiment of the present invention is shown;

[0105] Figure 6 A schematic diagram showing a chessboard structure of a decision grid with constellation points provided by an embodiment of the present invention is shown;

[0106] Figure 7 The boundaries of different constellations on the decision grid provided by the embodiment of the present invention are shown;

[0107] Figure 8 shows a mark for a constellation diagram provided by an embodiment of the present invention;

[0108] Fig. 9shows a mark for a constellation diagram provided by an embodiment of the present invention;

[0109] Fig.10 A method for a multi-stage encoder provided by an embodiment of the present invention is shown;

[0110] Fig.11 A method for a multi-stage decoder provided by an embodiment of the present invention is shown. DETAILED DESCRIPTION

[0111] Figure 3 A schematic diagram of a system 300 including an encoder 301 and a decoder 303 provided in an embodiment of the present invention is shown.

[0112] The multi-stage encoder 301 includes m sub-encoders for encoding K information bits by m component codes. In a codeword with a total length of mN, the length of each component code is N, where m, K and N are all integers, where m≤N and K≤N.

[0113] The encoder 301 is used to store K information bits into the message u. In addition, the encoder 301 is used to divide the message u into m sub-information vectors u (i) , i = 1, ..., m, the lengths are K (1) ,……,K (m) , where K (1) +…+K (m) = K. The encoder 301 is used to convert the m sub-information vectors u through m sub-encoders. (i) Each sub-information vector in is encoded as m sub-codewords c (1) ,……,c (m) , and m sub-codewords c (1) ,……,c (m) Mapping to 2 with modulation format m The encoder 301 is used to mark each of the N symbols as a string of m bits. Finally, the encoder 310 is used to send the vector x through the communication channel 302.

[0114] The encoder 301 may also be used to mark each of the N symbols as a string of m bits as follows: If the first constellation point A has coordinates (α, β), the encoder 301 is used to determine the sign S of the first constellation point A. A , and according to the sign S A , assigning the first bit value of the label of point A to 0 or 1. Then, for i=1, ..., m-1, the encoder 301 is used to determine the second constellation point A based on i+1 and the i-th bit value i =(α i,β i ), wherein the first bit value is the first bit value; determining the second constellation point A i The symbol (sign) S Ai ; Based on the sign S Ai Determine the i+1th bit value; assign the i+1th bit value to the label of point A.

[0115] In order to achieve low complexity demapping at the receiving end (specifically the decoder 303 side), a marking method can be used at the transmitting end (specifically the encoder 301 side). For example, given a constellation point, the following describes how to assign a string of m bits to the constellation point. Specifically, given a constellation point A with Cartesian coordinates (α, β), its first bit value is assigned by checking the sign of A:

[0116] s A =sign(([β+α+d] 2d –d) 2 +([β–α] 2d –d) 2 –([β+α] 2d –d) 2 –([β–α+d] 2d –d) 2 )

[0117] In the above formula, if s A If is positive, the assigned bit is 0, otherwise it is 1. This formula is valid for all bit levels.

[0118] Next, for i=1, the second constellation point A can be calculated based on the bit value and the position of the next bit to be calculated. 1 If i represents the position of the next bit and a represents the value of the previously calculated bit, then point A 1 The Cartesian coordinates (α 1 ,β 1 ) can be calculated as follows:

[0119]

[0120] After moving, the symbol (sign)s A1 Evaluate to assign the next bit value and then calculate point A 2 , and so on. When all l bit values ​​are assigned, the process ends.

[0121] In summary, the proposed SP marking for QAM constellations allows low-complexity demapping for MLC decoding. The marking can be stored for future transmissions.

[0122] For example, taking the 16-QAM constellation as an example, the above method is used to retrieve Figure 4 First, consider Figure 5 (a) shows the constellation point A, which has Cartesian coordinates Where d is the distance of the constellation point. For this point:

[0123] Therefore, the first bit is 0. Afterwards, the encoder 301 can be used to calculate A 1 In this case, a = 0 and i = 2, so

[0124]

[0125] The point is Figure 5 (b) is shown. Figure 5 In (b), the achievable constellation points are only the 8 shown, because each constellation point can be reached by two different 16-QAM constellation points. Now, in order to calculate the second bit of the marker, the encoder 301 can be used to calculate:

[0126] Therefore, the second bit is 1. To calculate A 2 , a=1 and i=3, the encoder 301 can be used to calculate:

[0127]

[0128] Proceeding in this way, point A is labeled 0111, as Figure 4 Similarly, consider Figure 5 The constellation point B shown in (a) has Cartesian coordinates

[0129] Therefore, let a = 1 and i = 2, then:

[0130]

[0131] like Figure 5 (b) is shown. To find the value of the second bit, the encoder 301 can be used to calculate:

[0132]

[0133] Therefore, the second bit is 0. Since a=0 and i=3:

[0134]

[0135] Continuing with the proposed method, this point B is labeled 1010 .

[0136] After being acquired, the vector x is sent to the multi-stage decoder 303 through the communication channel 302 .

[0137] The multi-stage decoder 303 includes m sub-decoders. The decoder 303 is used to receive a vector y including a set of N symbols through the communication channel 302, where m and N are both integers and m≤N. Each received symbol y i (l) A constellation point in a set of constellation points corresponding to a two-dimensional modulation format, wherein the set of constellation points is divided into two subsets of constellation points, including a first subset of bits assigned to a value of 0 and a second subset of bits assigned to a value of 1, so that the minimum distance d in the same subset is maximized, and wherein the vector y has coordinates (α, β) and components y i (l) , i=1,...,N, and l=1,...,m.

[0138] The decoder 303 is further configured to decode the received symbol y based on the received symbol y. i (l) Determine the log-likelihood ratio And through the l-level sub-decoder based on the log-likelihood ratio In addition, the decoder 303 is used to determine the bit value by i (l) Transform to get each symbol y i (l) Get the new symbol y i (l+1) , wherein the transformation includes rotation and shift. Then, the decoder 303 is used to generate a new symbol y based on the new symbol y. i (l+1) Determine the next log-likelihood ratio And based on the next log-likelihood ratio Determine the next bit value. Finally, the decoder 303 is used to decode the vector y based on the bit value and the next bit value.

[0139] The SP marking strategy proposed above reduces the complexity of LLR calculations at the decoder 303 (or the receiving end in general). The same "constellation" can be maintained at each decoding level, while the received symbols change based on the decisions made during decoding. In fact, after decoding the component codes at a certain level, it is proposed to "move" the points representing the received symbols instead of deleting half of the constellation points. In this way, the decoder 303 does not have to keep track of the sub-constellation points at each decoding level, but only needs to modify the received symbols based on the decoding results, while always maintaining the same constellation. Of course, the number of constellation points is halved at each decoding level, but only the boundaries of the constellation change, while the overall structure of the 0 / 1 checkerboard structure remains unchanged (see Figure 6 ).

[0140] First, a decision grid can be created, i.e., a Cartesian plane partition with a chessboard structure. The centers of the squares of the grid can represent constellation symbols, which can be used to find the nearest constellation point. The structure of the proposed decision grid is shown in Figure 6 As shown, the dark gray area represents 0 and the white area represents 1. Figure 7 In the figure, the boundaries of different QAM constellations or different decoding levels are highlighted: the boundary of the level l constellation is determined by the 2 m–l QAM is given.

[0141] From 2 m -QAM 2D constellation, where m is an even number and the minimum distance is d, the following describes how to shift the received symbol y at the first stage i =y i (1) , in order to obtain the new symbol y for decoding the second-level code i (2) The movement rules depend on the decision made by the decoder 303:

[0142]

[0143] Following these rules, we can move the received vector y = y (1) Each component of , thereby obtaining a new vector y (2) , this new vector can be used to calculate LLR to decode the second-level code. After decoding, y (2) The point in will be moved again to obtain the vector y to be used in the next decoding arrangement (3) The rules for second-level decoding are slightly different: In general, the rules for decoding even and odd levels are different. However, for levels with the same parity, the rules are always the same. In this case:

[0144] ●If the symbol y i (2)is decoded as 0, the point is first multiplied by to zoom, shift right Then shift down Finally, rotate 45° clockwise.

[0145] ●If the symbol y i (2) is decoded as 1, the point is first multiplied by To zoom, shift left Then shift down Finally, rotate 45° counterclockwise.

[0146] In short, according to the previous level point or the corresponding received symbol y i (1) =(α,β) calculation point or new symbol y i (l+1) The general rules are as follows:

[0147] If l is an odd number, then:

[0148] ●If the symbol y i (l) is decoded as 0, the point is first multiplied by To scale, rotate 45° clockwise, and then shift upwards That is, the new symbol is given by:

[0149] ●If the symbol y i (l) is decoded as 1, the point is first multiplied by To scale, rotate 45° counterclockwise, and then shift upwards That is, the new symbol is given by:

[0150] If l is even, then:

[0151] ●If the symbol y i (l) is decoded as 0, the point is first multiplied by to zoom, shift right Then shift down Finally, rotate 45° clockwise, and the new sign is given by:

[0152] ●If the symbol y i (l) is decoded as 1, the point is first multiplied by To zoom, shift left Then shift down Finally, rotate 45° clockwise, and the new sign is given by:

[0153] It should be noted that the level rules can be swapped without changing the overall method, while obtaining different markings. For example, if the symbol y i (l) is decoded as 1, then the rule for 0 can be applied, and vice versa. The proposed shifting rule applies markings to the original QAM constellation. The mapping of constellation symbols to bit strings can be performed, for example, by running a hard decision decoder following the shifting rule and assigning bit values ​​using a decision grid. Figure 4 , Figure 8 and Fig. 9 Some embodiments of the proposed disclosure are shown, namely, SP markings of QAM constellations of different sizes caused by the above-mentioned shifting rules. Specifically, Figure 4 shows an example of SP marking for a 16-QAM constellation, Figure 8 shows an example of SP marking for a 4-QAM constellation, Fig. 9 An example of SP marking for a 64-QAM constellation is shown.

[0154] In the following, a method for calculating the LLRs is presented. In this example, a decision grid is used which is always the same and does not depend on the encoding level. In fact, if the previously described procedure of changing the position of the received points or symbols is applied, the overall structure of the SP grid remains unchanged. At each level, the only thing that changes is the boundaries of the constellation. If the point or symbol is within the boundaries, the low-complexity LLR calculation method proposed below can be used, otherwise the classical method based on finding the closest constellation point can be used. The number of grid points included in the boundaries depends on the decoding level, i.e. decoding level l includes 2 l The shape of the boundary is composed of 2 l The QAM constellation contour of points is given.

[0155] The decision grid has a chessboard 0 / 1 structure, for example, similar to a chessboard with squares of side d. In the following, a decision grid is created that is based on the points The square at the center is given the value 0. It should be noted that different choices of values ​​provide different labels but do not change the overall idea. The decision grid described is as follows Figure 6 This design allows the use of the same decision grid at each level and has a low-complexity LLR calculation formula. In fact, if the received point is within the horizontal boundary, the nearest constellation point can be calculated by mapping the received point to the center of the grid. Figure 7 For a point within the boundaries of the decision grid shown, if y i (l) =(α,β), then its LLR It can be calculated as follows:

[0156]

[0157] In the above formula, [·] 2d represents a truncation operation modulo 2d. If the point lies outside the bounds, the general approximation described previously can be used. However, since the grid is the same at each level, only one set of constellation points should be stored at each level, reducing the storage requirements of the demapper.

[0158] At the decoder 303, the proposed low-complexity demapper can be used. At level l, the symbol y i (l) can be used to calculate LLR using the proposed decision grid mechanism When all symbol LLRs are calculated, they can be provided to the decoder of the component code at level l. After decoding the component code, a bit representing a hard decision on the lth bit of the symbol is associated with each symbol y i (l) This bit is used together with the parity check l to calculate the new symbol y i (l+1) , and repeat this process until l=m.

[0159] For example, at decoder 303, assuming d = 2 and the variance is σ 2 = 0.7, a single point y with Cartesian coordinates (–1.77, –2.40) is received on an AWGN channel. Figure 5 (a). To perform the demodulation of the first bit, if y1 (1) =y, then its LLR It can be calculated as:

[0160]

[0161] LLR is negative. This value is given to the level 1 decoder which returns a value of 1. Now, the received point can be moved to:

[0162]

[0163] like Figure 5 As shown in (b), its LLR can be evaluated as:

[0164]

[0165] Again, the LLR is negative. After 2-level decoding, the second bit is evaluated as 1, and the point can be moved to:

[0166]

[0167] The demodulation process continues in this manner until the level 4 code is decoded.

[0168] This SP marking for QAM constellations allows low complexity demapping for MLC decoding. This is because the same decision grid is used at each decoding level and the LLRs are calculated by a simple formula without the need to find the nearest constellation point. The performance of the LLR calculation has been shown to be comparable to state-of-the-art extrema methods. A direct application of the proposed method is in the modulation of multi-level polar codes.

[0169] In the present invention, a new QAM marking method is proposed that is able to address the two shortcomings discussed in the previous section. The proposed marking has two unique features. First, the same sub-constellation is used for all symbols at a given decoding level, independent of the decisions made on the bits that have been decoded. The other decision grids are imposed by the proposed marking, and the decision grids for each level remain the same, independent of the decisions made at the previous level. This feature allows avoiding tracking demapper branches, i.e. avoiding tracking the sub-constellation of each partially decoded symbol. Secondly, the proposed marking ensures that the leftmost bit has a checkerboard 0 / 1 structure at each level. In fact, the leftmost bit symbol of the unique sub-constellation of a given level is the same for all sub-constellations at each level. If only the leftmost symbol of the sub-constellation is considered, the same SP marking is used at each level, where the number of points is halved at each decoding level. This allows keeping the LLR calculation complexity small by reducing the number of comparisons for LLR calculation.

[0170] In other words, these two results are obtained by reversing the common demapping technique: the standard demapper changes the constellation while keeping the received symbol fixed, while in the present invention it is proposed to keep the constellation fixed while changing the position of the received symbol. In fact, the received symbol is represented by a point in a Cartesian system and the demapping consists in finding the nearest constellation point described in the same system. When a decision is made for a certain bit of the received symbol, it is proposed to move the symbol by rotation and translation in order to find its position in the next level unique sub-constellation. These operations are easy to perform on hardware, so the demapping method is simpler compared to the state-of-the-art methods.

[0171] Fig.10 A schematic diagram of a method 1000 for a multi-stage encoder 301 provided by an embodiment is shown.

[0172] The multi-stage encoder 301 includes m sub-encoders, which are used to encode K information bits through m component codes, and in a codeword with a total length of mN, the length of each component code is N. m, K and N are all integers, where m≤N and K≤N. The method 1000 includes: step 1001, storing K information bits in a message u; step 1002, dividing the message u into m sub-information vectors u(i), i=1,...,m, and having lengths of K(1),...,K(m), respectively, where K(1)+...+K(m)=K. The method 1000 also includes: step 1003, encoding each sub-information vector in the sub-information vector u(i) into m sub-codewords c(1),...,c(m) through m sub-encoders; step 1004, mapping the m sub-codewords c(1),...,c(m) to a 2-bit modulation format having a modulation format. m The method 1000 further includes: step 1005, marking each of the N symbols as a string of m bits; and step 1006, sending the vector x through a communication channel.

[0173] Fig.11 A schematic diagram of a method 1100 for a multi-stage decoder 303 provided by an embodiment is shown.

[0174] The multi-stage decoder 303 includes m sub-decoders. The method 1100 includes: step 1101, receiving (1101) a vector y including a set of N symbols through the communication channel 302. m and N are both integers, and m≤N. In addition, each received symbol yi(l) corresponds to a constellation point in a constellation point set of a two-dimensional modulation format, wherein the constellation point set is divided into two constellation point subsets, including a first subset assigned to bits with a value of 0 and a second subset assigned to bits with a value of 1, so that the minimum distance d in the same subset is maximized. The vector y has coordinates (α, β) and components yi(l), i=1,...,N, and l=1,...,m. In addition, the method 1100 includes: step 1102, determining a log-likelihood ratio based on the corresponding received symbol yi(l) Step 1103: using the level 1 sub-decoder based on the log-likelihood ratio Determine (1103) the bit value. In addition, the method 1100 includes: step 1104, based on the bit value, transform the symbol yi(l) to obtain a new symbol yi(l+1) for each symbol yi(l), wherein the transformation includes rotation and shift. The method 1100 also includes: step 1105, based on the new symbol yi(l+1), determine the next log-likelihood ratio Step 1106, based on the next log-likelihood ratio Determine the next bit value; Step 1107, decode the vector y based on the bit value and the next bit value.

[0175] The invention has been described in conjunction with various embodiments as examples and implementations. However, from a study of the drawings, the invention and the independent claims, other variations will be understood and implemented by those skilled in the art in implementing the claimed subject matter. In the claims and in the specification, the word "comprising" does not exclude other elements or steps, and "a" does not exclude a plurality. A single element or other unit may fulfil the functions of several entities or items described in the claims. The enumeration of certain measures in mutually different dependent claims does not indicate that a combination of these measures cannot be used in an advantageous implementation.

Claims

1. A multi-stage encoder (301), It is characterized in that The invention comprises m sub-encoders, wherein the m sub-encoders are used to encode K information bits by using m component codes, wherein in a codeword having a total length of mN, the length of each component code is N, wherein m, K and N are all integers, wherein m≤N and K≤N, and the encoder (301) is used to: – storing the K information bits into the message u; – Divide the message u into m sub-information vectors u (i) , i=1, ..., m, with lengths of K respectively (1) ,……,K (m) , where K (1) +…+K (m) =K; – The m sub-information vectors u are converted into (i) Each sub-information vector in is encoded as m sub-codewords c (1) ,……,c ( m ) ; – The m sub-codewords c (1) ,……,c (m) Mapping to 2 with modulation format m N symbols obtained from constellation points to form a vector x; – marking each of the N symbols as a string of m bits; - Sending the vector x via a communication channel (302).

2. The encoder (301) according to claim 1, It is characterized in that The encoder (301) is used to mark each of the N symbols as the string of m bits as follows: if the first constellation point A has coordinates (α, β), then o Determine the symbol S of the first constellation point A A ; oAccording to the symbol S A , assigning the first bit value of the label of point A to 0 or 1; For i = 1, ..., m – 1 ■ Based on the i+1 and i-th bit values, determine the second constellation point A i =(α i ,β i ), wherein the first bit value is the first bit value; ■ Determine the second constellation point A i The symbol S Ai ; ■Based on the symbol S Ai Determine the i+1th bit value; ■ Assign the i+1th bit value to the label of the point A.

3. The encoder (301) according to claim 2, It is characterized in that The coordinates (α, β) and (α i ,β i ) are Cartesian coordinates.

4. The encoder (301) according to claim 2, It is characterized in that The encoder (301) is further configured to determine the symbol S of the first constellation point A based on the following formula: A : s A =sign(([β+α+d] 2d -d) 2 +([β-α] 2d -d) 2 -([β+α] 2d -d) 2 -([β-α+d] 2d -d) 2 ), Wherein, d is the distance of the constellation points.

5. The encoder (301) according to claim 2 or 3, It is characterized in that For i=1, the encoder (301) is used to calculate the second constellation point A based on the following formula 1 The coordinates (α 1 ,β 1 ): Here, a represents the value of the previously allocated bit.

6. The encoder (301) according to any one of the preceding claims, It is characterized in that The constellation points have 2 m Quadrature Amplitude Modulation A two-dimensional modulation format where m is an even number.

7. A multi-stage decoder (303) comprising m sub-decoders, It is characterized in that The decoder (303) is used for: - receiving a vector y comprising a set of N symbols via a communication channel (302), where m and N are both integers and m≤N, where each received symbol y i (l) A constellation point in a set of constellation points corresponding to a two-dimensional modulation format, wherein the set of constellation points is divided into two subsets of constellation points, including a first subset of bits assigned to a value of 0 and a second subset of bits assigned to a value of 1, so that the minimum distance d in the same subset is maximized, and wherein the vector y has coordinates (α, β) and components y i (l) , i = 1, ..., N, and l = 1, ..., m; – Based on the corresponding received symbol y i (l) Determine the log-likelihood ratio – Based on the log-likelihood ratio, the first-level sub-decoder determining a bit value; – Based on the bit value, the symbol y i (l) Transform to get each symbol y i (l) Get the new symbol y i (l+1) , wherein the transformation includes rotation and shift; – Based on the new symbol y i (l+1) Determine the next log-likelihood ratio – Based on the next log-likelihood ratio Determine the next bit value, - decoding the vector y based on the bit value and the next bit value.

8. The decoder (303) according to claim 7, It is characterized in that The constellation points have 2 m Quadrature Amplitude Modulation A two-dimensional modulation format where m is an even number.

9. The decoder (303) according to claim 7 or 8, It is characterized in that The decoder (303) is used to generate a decision grid as a Cartesian plane partition, wherein the centers of the squares of the decision grid represent constellation symbols.

10. The decoder (303) according to any one of claims 7 to 9, It is characterized in that The decoder (303) is further configured to: i (l) =(α,β) to calculate the new symbol y i (l+1) , where (α, β) is the received symbol y i (l) The coordinates of Among them, if l is an odd number, then: o If the received symbol y i (l) is decoded to 0, then: o If the received symbol y i (l) is decoded to 1, then: Among them, if l is an even number, then: o If the received symbol y i (l) is decoded to 0, then: o If the received symbol y i (1) is decoded to 1, then:

11. The decoder (303) according to any one of claims 7 to 10, It is characterized in that The decoder (303) is further configured to convert the log-likelihood ratio Calculated as: in,[·] 2d represents the truncation operation modulo 2d, and σ represents the channel variance.

12. A method (1000) for a multi-stage encoder, It is characterized in that The multi-stage encoder comprises m sub-encoders, the m sub-encoders are used to encode K information bits by m component codes, in a codeword of total length mN, the length of each component code is N, wherein m, K and N are all integers, wherein m≤N and K≤N, and the method comprises: – storing (1001) the K information bits into the message u; – Divide the message u into (1002)m sub-information vectors u (i) , i=1, ..., m, with lengths of K respectively (1) ,……,K (m) , where K (1) +…+K (m) =K; – The sub-information vector u is encoded by the m sub-encoders (i) Each sub-information vector in is encoded (1003) as m sub-codewords c (1) ,……,c (m) ; – The m sub-codewords c (1) ,……,c (m) Mapping (1004) to 2 with modulation format m N symbols obtained from constellation points to form a vector x; - marking (1005) each of the N symbols as a string of m bits; - sending (1006) the vector x via the communication channel (302).

13. The method (1000) according to claim 12, It is characterized in that The step of marking (1005) each of the N symbols as a string of m bits comprises: If the first constellation point A has coordinates (α, β), then: o Determine the symbol S of the first constellation point A A ; oAccording to the symbol S A , assigning the first bit value of the label of point A to 0 or 1; For i = 1, ..., m – 1 ■ Based on the i+1 and i-th bit values, determine the second constellation point A i =(α i ,β i ), wherein the first bit value is the first bit value; ■ Determine the second constellation point A i The symbol S Ai ; ■Based on the symbol S Ai Determine the i+1th bit value; ■ Assign the i+1th bit value to the label of the point A.

14. A method (1100) for a multi-stage decoder comprising m sub-decoders, It is characterized in that The method comprises: - receiving (1101) a vector y comprising a set of N symbols via a communication channel (302), where m and N are both integers and m≤N, where each received symbol y i (l) A constellation point in a set of constellation points corresponding to a two-dimensional modulation format, wherein the set of constellation points is divided into two subsets of constellation points, including a first subset of bits assigned to a value of 0 and a second subset of bits assigned to a value of 1, such that a minimum distance d in the same subset is maximized, and wherein the vector y has coordinates (α, β) and components y i (l) , i = 1, ..., N, and l = 1, ..., m; – Based on the corresponding received symbol y i (l) Determine (1102) the log-likelihood ratio – Based on the log-likelihood ratio, the first-level sub-decoder Determine (1103) the bit value; – Based on the bit value, the symbol y i (l) Transform to get each symbol y i (l) Get (1104) new symbol y i (l+1) ,in, The transformation includes rotation and displacement; – Based on the new symbol y i (l+1) Determine (1105) the next log-likelihood ratio – Based on the next log-likelihood ratio determining (1106) the next bit value, - Decode the vector y based on the bit value and the next bit value (1107).

15. A computer program comprising instructions, It is characterized in that When the computer program is executed by a computer, the instructions cause the computer to perform the method according to any one of claims 12 to 14.