Introduction to 5G NR Polar Codes (1)

The basic principle of Polar code

Erdal Arikan of Bilkent University in Turkey proposed Polar codes in 2008. Polar codes are the first coding schemes that can strictly prove that the Shannon limit can be reached under binary input symmetric discrete memoryless channels in theory. The Polar code has a strict structure, the generator matrix does not require additional design, and has low coding complexity. The rate matching is simple, and codewords with almost any code rate can be obtained. The Polar code has also been theoretically proven to have no error floor, so It has received extensive attention in recent years.

Polar codes are based on channel polarization, which can cause differences between multiple identical channels, resulting in better channels and poorer channels. Arikan found that using ∣ 1 0 1 1 ∣ \begin{vmatrix} 1&0\\ 1&1 \end{vmatrix}1101As a kernel matrix, the Kronecker product is used to expand the matrix, and then the expanded matrix is ​​used to combine the channels, and the channels are split in order to obtain N binary channels. After channel merging and splitting operations, the binary memoryless channel is polarized, and when the sum and capacity remain unchanged, two types of extreme channels are obtained: a class of good channels with a channel capacity close to 1 and a class of channels A bad channel whose capacity is close to 0, and as N increases, the proportion of good channels will approach the capacity of the original channel more and more.

Obviously, according to the channel polarization phenomenon, the data to be transmitted is loaded on those channels whose capacity is close to 1, and those channels whose capacity is close to 0 are not used for data transmission, so that reliable data transmission can be realized. The channel code constructed according to this idea is the polar code. When encoding, for a given code length N = 2 n N=2^nN=2Polar code of n , the encoding method is as follows: x 0 N − 1 = u 0 N − 1 GN x_{0}^{N-1}=u_{0}^{N-1}G_{N}x0N1=u0N1GN, where GN G_NGNis N ∗ NN*NNGenerator matrix of order N. SetAAA is{ 0 , . . . , N − 1 } \{0,...,N-1\}{ 0,...,N1 } , thenx 0 N − 1 x_{0}^{N-1}x0N1 = u A G N = u_{A}G_{N} =uAGN ⊕ u A c G N ( A C ) \oplus u_{A^c}G_{N}(A^C) uAcGN(AC ), among whichGN ( A ) G_{N}(A)GN( A ) isGN ( A ) G_{N}(A)GN( A ) isGN G_NGNfrom AAA is a sub-matrix with the number of rows. If fixedAAA sumu A c u_{A^c}uAc, Grab u A u_{A}uAAs the information bit input of any variable, the corresponding u A u_A can be obtaineduAThe codeword x 0 N − 1 x_0^{N-1}x0N1. In actual coding, let AAA is the KKto be encodedThe position index of the good channel corresponding to K information bits, and the set ACA^CAThe value of the position corresponding to C is fixed, usually set to 0, calledu A c u_{A^c}uAcIn order to freeze the bits, the encoding process of the Polar code needs to select the information bit position index AA through specific rulesA

The Polar code generation matrix defined by Arikan GN = BN ( G 2 ) ⊗ n G_N=B_N(G_2)^{\otimes n}GN=BN(G2)n B N B_N BNIt is a bit flip matrix, that is, perform bit flip on the binary expression of the input sequence position index, such as N = 8 N=8N=At 8 o'clock, the second position index is represented by "001", which is converted to "100" after bit flipping, that is, the input bit of the second position is exchanged with the input bit of the fifth position. This operation is helpful for decoder design, and the kernel matrix| 1 0 1 1 ∣ \begin{vmatrix} 1&0\\ 1&1 \end{vmatrix}1101, the encoding complexity is O ( N log N ) O(N logN)O ( N log N ) . _ _ In order to maintain the lower triangular structure of the generator matrix and facilitate rate matching, the Polar code generator matrix used by NR does not include a bit inversion matrix, GN= ( G 2 ) ⊗ n G_N=(G_2)^{\otimes n}GN=G2n

When the code length of the Polar code is sufficiently large, the low-complexity serial cancellation (Successive Cancellation, SC) decoding algorithm can obtain good decoding performance, and it has been proved that it can reach the channel capacity. However, in practical applications, the code length is always finite. Simulation results show that for short and medium code length Polar codes, the SC decoding performance is not very ideal. In order to improve the decoding performance, the SCL (Successive Cancellation List) decoding algorithm is adopted propose. A direct improvement of SCL decoding over SC decoding is that after each layer of path search, it is increased from allowing to keep the best one path to allowing to keep L candidate paths for the next expansion. As the number of paths L increases, the SCL decoding algorithm can obtain performance close to maximum likelihood decoding. The disadvantage is that when L is large, the complexity of the SCL decoding algorithm is high, and it will lead to the loss of its FAR performance. Therefore, NR compromises performance and complexity when designing control channel Polar codes, and all designs are based on L=8.

Design of NR Polar Code

The design principle of the NR control channel Polar code is to introduce new features based on the Arikan basic Polar code and according to the transmission characteristics of the control channel. Since the base station is not very sensitive to the decoding complexity, the CA (CRC-aid)-Polar code, which is the most mature research in the academic circle, is used for the transmission of the uplink control information; the study found that when the bits of the uplink control information are very short, the introduction of PC( Parity Check) bits (PC-CA Polar codes) can significantly improve the performance of CA-Polar codes; the downlink control channel introduces early termination (Early Termination, ET ) feature, that is, the decoding can be ended in advance to achieve the effect of reducing power consumption and decoding delay, that is, the Distributed CRC Polar code.

CA-Polar code

Although the SCL decoding algorithm can significantly improve the BLER performance compared with the SC decoding algorithm, the path with the largest metric value among the L surviving paths at the end of decoding may not necessarily be the correct path. Considering that TB- CRC or CB-CRC, so the verification function of CRC can be used to assist path identification, thereby greatly improving the error correction performance of Polar codes.

The flowchart of the encoding and decoding scheme of the CA-polar code is shown in the figure below:
insert image description here

source sequence ddd The CRC sequence generated by the CRC encoder is appended to the sequenceddAfter d get the sequenceuuu , second orderuuu is sent to the Polar code encoder to obtain the code word sequenceccc . OrderuuThe bits in u are placed on the Polar code encoder according to the reliability of the bit sub-channel. At this time, the bit position is actually divided into three parts: information bit, CRC bit and frozen bit, and 0 is placed in the frozen bit position. When decoding, the decoding process of CRC bits is the same as that of information bits. At the end of SCL decoding, the CRC decoder will check L candidate decoding paths. The decoding sequence on the path is used as the final decoding resultd ^ \hat{d}d^ output.

The simulation shows that when small packets are transmitted on the control channel, the BLER performance of CA-Polar under the SCL decoding algorithm is significantly better than that of tail-biting convolutional codes, LTE-Turbo codes and LDPC codes used in LTE control channels. CRC sequences of different lengths will Affects the frame error rate performance and false alarm rate performance of the system. 24bit CRC is used in NR design. In the scenario where the subcarrier spacing is 15K, if SCL decoding with L=8 is used, the FAR can reach 2 − 21 2^{-21}22 1 . CA-Polar code is adopted by NR as uplink control informationKUCI > 19 K_{UCI}>19KUCI>1 9 o'clock coding scheme.

PC-CA Polar code

The study found that introducing a small number of parity bits can increase the minimum codeword resume of the Polar code and improve the decoding success rate of the L survival paths. This is the PC-CA Polar code. When the information bits are very short, the bit error performance of PC-AC Polar code is due to CA-Polar code, so PC-CA Polar is adopted as NR uplink control information size 12 ≤ KUCI ≤ 19 12 \ leq K_{UCI} \leq 1912KUCI1 9 o'clock coding scheme.

The encoding and decoding scheme of the PC-CA Polar code is shown in the figure below:
insert image description here
Compared with the CA-Polar code, the PC-CA Polar code is cascaded with a PC bit encoder after the CRC encoder, and both PC and CRC bits participate in the decoding end. path screening, while only CRC bits are used for error checking. The position indices of J PC bits are divided into two sets, where J − J ′ JJ’JJ' PC bits are placed at the least reliableJ − J ' JJ'JJOn the position with the smallest row weight in the Polar code generation matrix corresponding to other non-frozen bit positions other than the least reliable bit position index, if the number of bit position indices corresponding to the row with the smallest row weight is more than J' J 'J , choose the most reliableJ ′ J'J' position index to place these PC bits.

When decoding, you can choose not to expand the PC bits, but use the generation method of the PC bits to directly calculate the PC bits according to the information bits and CRC bits obtained through decoding. Since the participation of PC bits in decoding will improve the minimum distance of the codeword, it is easier to find the best path. In the NR standard, the PC bits are generated by an XOR operation on the information bits by a circular shift register.

Distributed CRC Polar码

The reception of the downlink control channel requires the UE to blindly detect the PDCCH, which has a great impact on the power consumption of the UE. Therefore, the standard adopts the Distributed CRC Polar code scheme in the downlink control channel PDCCH and the downlink broadcast channel PBCH to support the early stop function of Polar code decoding.

In the CA-Polar code, the CRC encoder is linearly encoded and generates a systematic code, so the CRC encoder must correspond to a generator matrix GCRC G_{CRC}GCRC, the information bits are multiplied by the generator matrix to obtain the CRC bits, and the generator matrix is ​​determined by the CRC polynomial and is related to the length of the information bits. A simple example, the information bit length is 11bit, and the CRC length is 8bit. The input of the CRC encoder is d = { d 0 , d 1 , . . . , d 10 } d = \{ d_0,d_1,...,d_{10} \}d={ d0,d1,...,d10} , then the output of the CRC encoder isc = { c 0 , c 1 , . . . , c 18 } c = \{ c_0,c_1,...,c_{18} \}c={ c0,c1,...,c18} , using the interleaved pattern[ 10 , 9 , 8 , 4 , 11 , 0 , 5 , 12 , 6 , 1 , 13 , 2 , 14 , 3 , 15 , 7 , 16 , 17 , 18 ] [10,9,8 ,4,11,0,5,12,6,1,13,2,14,3,15,7,16,17,18][10,9,8,4,11,0,5,12,6,1,13,2,14,3,15,7,16,17,1 8 ] Replace c to get vector c', from the perspective of generating matrix, equivalently generate matrixGCRC G_{CRC}GCRCPerform substitution to get G' CRC G'_{CRC}GCRC, it can be seen that many of the last 8 CRC bits are replaced before the information bits, and all the information bits that have a verification relationship with the CRC bits are also replaced before the corresponding CRC bits, so that the decoding part The CRC can be performed on the information bits, and if the verification fails, the decoding will be stopped, thereby realizing the ET function. So the Distributed CRC Polar code is concatenated with an interleaver after CRC encoding (the knowledge of the interleaver changes the check order of the CRC, but does not change the original check relationship). Its encoding block diagram is as follows:
insert image description here

It is not difficult to prove that for the same CRC generator polynomial, the CRC generation matrix under different information bit lengths has a nested relationship, so the interleaving mode corresponding to any information bit length can be obtained by designing the interleaving mode according to the maximum information bit length. NR downlink control information currently supports The maximum length is 140bit, and 24bit CRC is added, so the maximum interleaving length is K max = 164 bit K_{max}=164bitKmax=164bit

sequence design

Since the input of the Polar code encoder is of length NNA sequence u of N , in order to fit the lengthKKThe information bit encoding of K needs to determine the information bit set and the frozen bit set, which is inseparable from the sequence construction technology. The sequence construction of the Polar code means that according to the reliability of the bit channel, the bit channel with high reliability is selected to place the information bits, and the bit channel with low reliability is placed into the frozen channel. There are two main types of sequence construction methods commonly used at present.

1. Random search methods mainly include Monte-Carlo method, density evolution-based method, Gaussian approximation method, and FRANK construction method; Polar sequences that are early enough based on random methods are obtained under special channels (such as AWGN channels) Yes, there will inevitably be a certain correlation with the channel, which is the so-called channel sensitivity.

2. PW (Polarization Weight) structure. The sequence construction method has nothing to do with the specific channel, and the performance is almost the same as that of the Gaussian approximation design sequence in the AWGN channel; therefore, the PW sequence has been widely concerned in the discussion of the NR Polar code sequence, and it is a very good implementation scheme.

Kernel generation matrix GN G_{N}GNThe construction method determines the Polar code length NNN must be an integer power of 2, and the code length becomes the mother code length of the Polar code. In order to reduce the decoding complexity of the base station and the terminal, NR limits the maximum mother code length of the Polar code. The maximum mother code length N max = 512 bitN_{max}=512bitNmax=5 1 2 b i t , the maximum mother code length used by the uplink control channel is 1024bit. In order to reduce the complexity of implementation, another feature of the sequence design is the nested design, that is, the shorter downlink sequence is used as a subset of the uplink sequence. Since the length of the Polar code mother code must be an integer power of 2, the short mother code The betting winning sequence must be a subset of the corresponding sequence of the long mother code, which is the nesting feature of the NR Polar code sequence.

The NR system chooses to use the AWGN channel performance as the screening criterion for the Polar code sequence design scheme. In order to ensure the AWGN performance, the random search method is used to determine the sequence with the best performance. Polar code sequence Q = Q 0 , Q 1 , . . . , QN max − 1 Q={Q_0,Q_1,...,Q_{N_{max}-1}}Q=Q0,Q1,...,QNmax1, where 0 ≤ Q i ≤ N max − 1 0 \leq Q_{i} \leq N_{max}-10QiNmax1 indicates the bit index before encoding,N max = 1024 bit N_{max}=1024bitNmax=1024bit W ( Q i N m a x ) W(Q_{i}^{N_{max}}) W(QiNmax) Q i Q_{i} QiReliability of W ( Q 0 ) < W ( Q 1 ) < . . . < W ( QN max − 1 ) W(Q_0)<W(Q_1)<...<W(Q_{N{max }-1})W(Q0)<W(Q1)<...<W(QN m a x 1)

Guess you like

Origin blog.csdn.net/daijingxin/article/details/127132077