Selectively Precoded Polar Codes
SSelectively Precoded Polar Codes
Samir Kumar Mishra and KwangChul Kim
Device Solutions Research, Samsung Electronics
Hwaseong-si, Gyeonggi-do, South Korea { samir.mishra, marco.kim } @samsung.com Abstract —In this paper, we propose selectively precoded polar(SPP) code , built on top of Arikan’s capacity achieving polarcodes. We provide the encoding and decoding scheme for SPPcode. Simulation results show that for a target frame erasurerate (FER) of − , a (128, 64) SPP code is just 0.23 dB awayfrom the information theoretic limit at this blocklength. Further,it is also shown that such codes possess better distance propertiescompared to other contemporary polar code variants. I. I
NTRODUCTION
Polar codes introduced by Arikan [1] are the first prov-ably capacity achieving codes for the class of binary inputmemoryless symmetric (BMS) channels with low encodingand decoding complexity of order O ( N log N ) for a codeof blocklength N . Polar code is based on a phenomenon ofchannel polarization where a communication channel is trans-formed into polarized sub-channels: either completely noisy ornoiseless. Information bits are transmitted over noiseless sub-channels, while fixed or frozen bits are sent over the noisyones. Polar codes are already being used in 5G New radio(NR) for encoding and decoding of control information.Polar codes achieve channel capacity asymptotically as theblocklength N of the code approaches infinity. However, forshort blocklengths, the performance of polar codes is not goodenough. Figure 1 shows the performance of polar code andits variants for a blocklength N = 128 and rate R = 0 . for a binary input additive white gaussian noise (BI-AWGN)channel. Figure 1 also shows the BI-AWGN dispersion boundwhich is the minimum probability of error (cid:15) ∗ ( N, R ) that canbe achieved on a BI-AWGN channel by using a code ofblocklength N and rate R under maximum likelihood (ML)decoding. It can be observed clearly that there is a big gapbetween polar code with successive cancellation decoding(SCD) and the dispersion bound. This poor performance canbe partly attributed to poor distance properties of polar codesand also the sub-optimality of SCD as compared to MLdecoding [2].Since Arikan’s ground breaking work, there have beena lot of efforts to enhance the performance of polar codefor short blocklengths, a survey of which can be found in[3]. Specifically, CRC-Aided Polar codes under succesivecancellation list (SCL) decoding [2] improve the performancequite a lot. Figure 1 shows the FER performance of a (128,72) polar code combined with a (72, 64) cyclic code whichacts as CRC under SCL decoding with a list size L = 32 .This approach has been adopted to 5G NR standard and hasremained the state of the art ever since. SNR (dB) -6 -5 -4 -3 -2 -1 F E R BI-AWGN Dispersion BoundPolar code, SCDCRC Aided Polar code, SCL (L=32)PAC Code, SCL (L=128)SPP Code, SCL (L=128)
Fig. 1. FER Performance of (128, 64) polar code variants
In the Shannon Lecture at the International Symposium onInformation Theory (ISIT) 2019, Arikan presented polariza-tion assisted convolutional (PAC) codes , which are significantimprovement over the state-of-the-art polar codes [4]. Undersequential decoding, the FER performance of PAC codes isjust 0.25 dB away from the BI-AWGN dispersion bound ap-proximation at a target FER of − . Further, it was observedin [5] and [6] that nearly same FER performance can as wellbe obtained by list decoding as shown in Figure 1.In this paper, we propose selectively precoded polar (SPP)code . SPP codes can be considered to a simple generalizationof Arikan’s PAC codes. As shown in Figure 1, the FER perfor-mance of SPP code is just 0.23 dB away from the BI-AWGNdispersion bound approximation at a target FER of − .SPP codes have lesser encoding and decoding complexitycompared to PAC codes.The outline of this paper is as follows. In Section II, wefirst describe the coding scheme of SPP code. In Section III,we present numerical results and analyze them. In Section IV,we attempt to understand the good performance of SPP codeby analyzing its weight distribution and comparing with othercontemporary polar code variants. Finally, in Section V weconclude by mentioning some open problems.II. S ELECTIVELY P RECODED P OLAR C ODE
The coding scheme of a SPP code is shown in Figure 2.In Figure 2, the solid blocks refer to actual blocks used in a r X i v : . [ c s . I T ] N ov essageExtraction SelectiveDe-precoder ˆ v [ l ∗ ] SCLDecoderˆ u Demodulation ˆ d λ Λ n ys ChannelModulationPolarTransformSelectiveRate Pro fi ler d v u x Polarized Vector Channel
Precoder
A P , w Fig. 2. Coding scheme of SPP code the communication system. The dotted blocks refer to theinformation provided to these blocks. A SPP code can bedenoted as
SP P ( N, K, A , P , w ) . Here, K is the number ofinformation bits. N is the length of the codeword which ismostly a power of 2. A ⊆ { , , ..., ( N − } is the set ofinformation bit indices. P ⊆ { , , ..., ( N − } is the set ofindices where the bits need to be precoded. w is a precodingvector of length p containing 0s and 1s. R = K/N is the rateof the code. Using the polar code terminology, F = A c isthe set of frozen indices, where no information is transmitted.These indices are filled with zeros. A. Encoding scheme of SPP code
The encoding scheme of SPP code is shown in Algorithm 1and can be divided into three steps which are described below. Rate Profiling : The term rate-profiling was coined byArikan while describing PAC code [4]. A rate-profiler maps thevector of information bits denoted by d = [ d , d , ..., d K − ] toa vector of bits v = [ v , v , ..., v N − ] according to A . In otherwords, the K information bits in d are mapped to positions in v indicated by A . The rest ( N − K ) positions in v are filledwith zeros.Let us consider an example where ( N, K ) = (8 , , d = [ d , d , d , d ] and A = { , , , } . Then, v =[0 , , , d , , d , d , d ] .Arikan mentioned two methods to design A which definesthe rate-profiler [4]. First, the set A could be designed byany of the methods used for polar code construction, a goodsurvey of which can be found in [7]. In this case, A denotesthe indices of sub-channels in the polarized vector channelwith high reliability. This approach is called polar rate-profiling . Second, a Reed-Muller (RM) approach could beused. Here, given N indices { , , ..., ( N − } , we choose K indices whose binary representation have the largest Hammingweights, with ties resolved arbitrarily. This approach is called RM rate-profiling . Selective Precoding : The second step of encoding is se-lective precoding which is shown as a subroutine in Algorithm1. The inputs to the precoder are the output of rate-profiling v , along with P and w . The key idea of selective precodingis as follows. The bit at index indicated by P is replacedby a linear combination of itself and the ( p − bits that Algorithm 1:
Encoding Algorithm of SPP Code
Input : d , A , P , w , N , p Output: xv ← RateProfiler ( d , A , N ) u ← SelectivePrecoder ( v , P , w , N, p ) x ← PolarTransform ( u ) return x ; subroutine SelectivePrecoder( v , P , w , N , p ) : u ← v for i = 0 , , · · · , ( N − doif i ∈ P then u i ← PrecodeOneBit ( i, v , P , w , p ) return u subroutine PrecodeOneBit( i , v , P , w , p ) : s ← ie ← max (0 , s − p + 1) f ← w s − e a ← v es u ← (cid:76) ( af T ) // Modulo-2 sum return u precede it. The linear combination is decided by precodingvector w . Precoding is a rate-1 operation because the coderate has already been satisfied by rate profiling in Step 1.Let us continue the example stated earlier. Let w = [1 , , ,so, p = 3 . Let P = { , , , } . Thus, after precoding, we getoutput u = [0 , , , d , d , d , d , d ] . Polar Transform : The final step of encoding is to passthe precoded vector u through a Polar Transform P n to outputencoded bit vector x . x = uP n = uP (cid:78) n (1) P n is the n th Kronecker power of the basic Polar Transform P = (cid:20) (cid:21) proposed by Arikan in [1].In the absence of precoding, w = [1] and SPP code fallsback to polar code. B. Modulation, Transmission and Demodulation
The vector x is suitably modulated to a symbol vector s and transmitted through the channel. Modulation can be doneby any of the popular digital modulation schemes like M-aryphase shift keying (M-PSK) or M-ary Quadrature AmplitudeModulation (M-QAM). For example, in case of binary phaseshift keying (BPSK), bit 0 is mapped to +1 and bit 1 ismapped to -1. The channel corrupts the transmitted symbols.Specifically, the AWGN channel adds gaussian noise n withdistribution N (0 , σ n ) to the transmitted symbols. y = s + n (2)The receiver gets noise corrupted symbols y from the channel.A suitable demodulator corresponding to the modulator isused to recover the transmitted symbols from y . Preferably,a soft demodulator which can output soft decisions is used. soft decision contains both value of the detected bit andinformation about its reliability. For BPSK, soft decision λ i for a received symbol y i can be generated in the form of alog-likelihood ratio (LLR) as shown below. λ i = ln P r ( y i | s i = +1) P r ( y i | s i = −
1) = 2 y i σ n (3)Here, non-negative values of λ i indicate that a 0 was trans-mitted and negative values indicate that a 1 was transmitted.Further, a larger value of | λ i | indicates a higher confidence inthe decision. C. Decoding scheme of SPP Code
The decoder of a SPP code is a combination of three entities,a LLR based successive cancellation list (SCL) decoder [8],a selective de-precoder (SDP) and a message extraction unit.This is shown in Figure 2.Algorithm 2 describes the SCL decoding algorithm for aSPP code. A SCL decoder works in multiple stages, fromstage n to stage . n refers to the input stage of the SCLdecoder. refers to the output stage of the SCL decoder. Letthe output of the demodulator be denoted as Λ n = { λ n,i | ≤ i ≤ ( N − } (4)The usage of n in (4) means that Λ n is the vector of LLRsinput to the SCL decoder. Further, λ k,i refers to the i th LLRat stage k of the SCL decoder.SCL decoder is a sequential decoding algorithm whichoutputs LLRs λ , to λ ,N − one by one. This is becausein order to estimate the transmitted bit ˆ u i , SCL needs allpreviously decoded bits ˆ u to ˆ u i − . However, in case of aSPP code, the bits u i at the input to Polar Transform arenot original information or frozen bits at each index i . To bespecific, for each i ∈ P , the bit u i is the output of precodingstep as explained in Algorithm 1.We now focus on the combined operation of SCL decoderand the SDP in more detail. Let L denote the list size, thatis, the number of parallel decoding paths of the SCL decoder.Also, let L be the list of decoding paths. In the beginningthere is a single path in the list with index l = 0 . The initialpath metric P M ( − for this path is set to 0. In the belowdiscussion, we use the suffix [ l ] to denote parameters for thepath l in the list L .For each path l ∈ L in the list, when the current bit index i is frozen , that is, i ∈ F , the decoder knows that a 0 wastransmitted. Thus, for the path l in the list, ˆ v i [ l ] = 0 . Inaddition, if i ∈ P , precoding as per subroutine PrecodeOneBit in Algorithm 1 is done to generate ˆ u i [ l ] . A path metric P M ( i ) l is generated by using LLR decision λ ,i [ l ] and ˆ u i [ l ] as givenin [8]. If the sign of λ ,i [ l ] matches that of ˆ u i [ l ] , then the path l is not penalized. If the sign of λ ,i [ l ] does not match thatof ˆ u i [ l ] , then the path l is penalized by adding | λ ,i [ l ] | to the P M ( i ) l . In either case, ˆ u i [ l ] is fed back to the SCL decoder tohelp generate λ ,i +1 [ l ] .For each path l ∈ L in the list, when the current bit index i is an information bit index, that is, i ∈ A , the decoder Algorithm 2:
SCL Decoding Algorithm of SPP Code
Input :
Initial LLRs Λ n , A , P , w , N , p , L Output:
Recovered message bits ˆ d L ← { } // A single path in the list P M ( − ← // Initialize path metric for i ← to ( N − doif i (cid:54)∈ A thenfor l ← to ( L − do ˆ v i [ l ] ← u i [ l ] ← ˆ v i [ l ] λ ,i [ l ] ← UpdateLLR ( l, i, Λ[ l ] , β [ l ]) if i ∈ P then ˆ u i [ l ] ← PrecodeOneBit ( i, ˆ v [ l ] , P , w , p ) P M ( i ) l ← CalcPM ( P M ( i − l , λ ,i [ l ] , ˆ u i [ l ]) β [ l ] ← UpdateBits ( β [ l ] , ˆ u i [ l ]) elsefor l ← to ( L − doif |L| < L thenforeach l ∈ L do DuplicatePath ( l, i, P , w , p ) elseforeach l ∈ L do DuplicatePath ( l, i, P , w , p ) L ←
PrunePaths ( L ) l ∗ ← arg min l ∈L P M ( N − l ˆ d ← MessageExtract (ˆ v [ l ∗ ]) return ˆ d ; subroutine DuplicatePath( l , i , P , w , p ) : L ← L ∪ { l (cid:48) } // l (cid:48) is a copy of l (ˆ v i [ l ] , ˆ v i [ l (cid:48) ]) ← (0 , u i [ l ] ← ˆ v i [ l ]ˆ u i [ l (cid:48) ] ← ˆ v i [ l (cid:48) ] λ ,i [ l ] ← updateLLR ( l, i, Λ[ l ] , β [ l ]) λ ,i [ l (cid:48) ] ← updateLLR ( l (cid:48) , i, Λ[ l (cid:48) ] , β [ l (cid:48) ]) if i ∈ P then ˆ u i [ l ] ← PrecodeOneBit ( i, ˆ v [ l ] , P , w , p )ˆ u i [ l (cid:48) ] ← PrecodeOneBit ( i, ˆ v [ l (cid:48) ] , P , w , p ) P M ( i ) l ← CalcPM ( P M i − l , λ ,i [ l ] , ˆ u i [ l ]) P M ( i ) l (cid:48) ← CalcPM ( P M i − l (cid:48) , λ ,i [ l ] , ˆ u i [ l ] (cid:48) ) β [ l ] ← updateBits ( β [ l ] , ˆ u i [ l ]) β [ l (cid:48) ] ← updateBits ( β [ l (cid:48) ] , ˆ u i [ l (cid:48) ]) subroutine CalcPM(
P M , λ , u ) :if u ← (1 − sign ( λ )) then P M ← P M else
P M ← P M + | λ | return P M annot be sure which bit was transmitted. Thus, there are twooptions, either ˆ v i [ l ] = 0 or ˆ v i [ l ] = 1 . So, the number of currentpaths must be duplicated. Further, all the operations mentionedabove for frozen indices are repeated for each option of ˆ v i [ l ] .Now, due to duplication, the number of paths in the list, thatis, |L| double up. When |L| > L , the SCL decoder selects L paths with the smallest values of path metrics and discardsthe remaining L paths. The ˆ u i [ l ] generated for each of the L surviving paths are fed into the SCL decoder to help generate λ ,i +1 [ l ] for each of them.The execution of the SCL decoder is said to end when all N bits starting from the th till ( N − th bit have been processed.At the end, we have L outputs, a vector ˆ v [ l ] for each survivingpath l . Let l ∗ denote the path with the minimum value of pathmetric P M ( N − l among all surviving paths. The bits fromthis path, that is ˆ v [ l ∗ ] are sent to the message extraction unitas shown in Figure 2.Finally, the message extraction unit extracts the decoderoutput ˆ d from ˆ v [ l ∗ ] by picking up the bits from the informationbit indices given by A .As one must have easily noticed, the role of SDP is criticalto the decoding of SPP code under a SCL decoding paradigm.It stores the intermediate outputs ˆ v i [ l ] for each path. It alsoprecodes them to generate ˆ u i [ l ] which is fed back to SCLdecoder for further processing. It can also be inferred herein the interest of efficient hardware design that a single Pre-codeOneBit hardware may be used for both selective precodingand de-precoding depending upon the mode of operation forwhich it is configured.III. N
UMERICAL RESULTS AND D ISCCUSSION
For both simulation and analysis, we consider (128, 64)codes transmitted over a BI-AWGN channel. We compare ourSPP code with three contemporary polar code variants. Thefirst code is Arikan’s polar code under SCD. The second oneis a CRC-Aided polar code under SCL decoding with list size L = 32 . Here, a (128, 72) polar code is combined with a(72, 64) cyclic code which acts as CRC. In other words, an8-bit CRC is appended to the information bits before applyingpolar transform. The third code is Arikan’s PAC code which isobtained by RM rate-profiling and a rate-1 convolutional codegenerated by c = [1 , , , , , , . We use SCL decodingwith list size L = 128 for PAC codes as mentioned in [5] and[6].For simulation of SPP code, we use the following pa-rameters. The set of information bit indices A is designedby RM rate-profiling approach. The set of precoding in-dices is given by P = F . In other words, we precodethe bits at frozen indices only. The precoding vector w =[1 , , , , , , , , , , . Thus, precoding length p is equalto 11. Finally, we employ a SCL decoder with list size L = 128 for decoding.The simulation results have been shown in Figure 1. Itcan be observed clearly that both PAC code and SPP codeclearly outperform CRC-Aided polar code. At a target FER of − , both PAC code and SPP code are around 0.4 dB better TABLE IN
UMBER OF LOW WEIGHT CODEWORDS IN POLAR CODE VARIANTS
Channel Code N N N N N N Polar 688 5376 193935 0 0 0RM 0 0 94488 0 0 0PAC, RM profile 0 0 3120 2696 95828 238572SPP, RM profile 0 0 2359 1057 89189 180966 than CRC-Aided polar code. Further, SPP code is marginallybetter than PAC code, but the difference in performance isonly visible for FER below − . At a target FER of − ,PAC and SPP codes are 0.25 dB and 0.23 dB away from theBI-AWGN dispersion bound approximation respectively.It is worthwhile to note that Arikan’s PAC codes can beconsidered to be a special case of SPP code if the code designparameters are configured as follows. The set of informationbit indices A is designed by RM rate-profiling approach. Allbit indices are precoded, that is, P = { , , ..., ( N − } .The precoding vector w = [1 , , , , , , . Thus, precodinglength p is equal to 7. The decoding can be done by a SCLdecoder with list size L = 128 .Although SPP codes perform only marginally better ascompared to PAC codes, they have much lesser encodingand decoding complexity. This complexity reduction comesfrom the fact that in SPP code, precoding in the encoder anddecoder happens only for bit indices indicated by P . However,for a PAC code, such precoding happens for all N indices.Especially, for a PAC code under SCL decoding, precoding atinformation bit indices along with path duplication leads to alot of increase in complexity. On the other hand, for the SPPcode under SCL decoding used in our simulation, precodingdoes not happen during path duplication at information bitindices. This leads to a great reduction in complexity.IV. P ERFORMANCE A NALYSIS OF
SPP C
ODE
To understand the reason behind good performance of SPPcode, we did a small experiment based on [9] and repeatedin [5] for Arikan’s PAC code. We know that the performanceof a linear channel code under ML decoding is dictated by itsminimum distance d min . The higher the minimum distance,the better the performance of the code. So, we want to findout the minimum distance of SPP code and its contemporarypolar code variants.To this end, we send all zero codewords at extremely highsignal to noise ratio (SNR) and use SCL decoder to decode thechannel output. For a list of size L , L codewords will be outputfrom the SCL decoder. Among the L output codewords, onewill be an all-zero codeword, that is the transmitted codeword.The rest ( L − codewords will have as many less 1’s aspossible. These are the low weight codewords. As list sizeincreases, more and more low weight codewords will emerge.We keep a count of how many codewords of each weightare generated. Let the number of codewords of weight q bedenoted as N q . The values of N q for relevant polar codevariants is shown in Table I for a list size L = 400000 .Due to limited computation resources, we can only compile SNR (dB) -6 -5 -4 -3 -2 -1 F E R Polar code (N , N , N )RM code (N )PAC code (N , N , N , N )SPP code (N , N , N , N ) Fig. 3. Truncated Union Bound for (128, 64) polar code variants an incomplete listing of the codeword weights. Similar to [9],we found that the only weights observed up to L ≤ are those that are mentioned in Table I. For example, for bothPAC and SPP code, we observed only codewords with weights16, 18, 20, 22 and 24. Due to lack of space in Table I, wecould not mention N = 59784 for PAC and N = 126428 for SPP respectively.It is observed that both PAC code and SPP code shouldperform better than polar code because they have twice theminimum distance. Also, both PAC and SPP code shouldperform better than RM code. Although they have the sameminimum distance 16, but both PAC and SPP code havesignificantly lesser number of codewords at this distance. (bya factor of 30 for PAC and 40 for SPP). Further, SPP codeshould perform marginally better than PAC code, because ithas fewer codewords than PAC at all the distances mentionedin Table I.We can also approximate the performance of these codesunder ML decoding by using truncated union bound analysis[10]. A truncated union bound on the probability of blockerror can be constructed by ignoring those terms in the unionbound for which the weight distribution is unknown. For alinear code of rate R and a given SNR ( E b /N ) , this quantitycan be calculated as follows P e ( R, E b /N ) = 1 π (cid:90) π (cid:88) q N q exp (cid:18) − RE b N sin θ (cid:19) q dθ (5)Figure 3 shows the FER performance approximation for thechannel codes the incomplete weight distribution compiled inTable I and applying it to (5). It must be noted that both PACand SPP code easily outperform normal polar code and RMcode. Further, SPP code marginally performs better than PACcode and this is typically observed at higher SNR.V. C ONCLUSION AND F UTURE W ORK
In this paper, we proposed SPP code, along with its encod-ing and decoding schemes. In terms of FER performance for (128, 64) codes in a BI-AWGN channel, SPP code clearly out-performs other polar code variants. It also performs marginallybetter than Arikan’s PAC codes at high SNRs. SPP code isobserved to have very good distance properties similar to thatof PAC code.There are a few open problems. First, we have only con-sidered code of rate R = 0 . in this work where RM rate-profiling gives best performance. The choice of rate-profilerfor other code rates needs to be explored even for a code oflength 128. Second, the combination of precoding indices P and precoding vector w which can give best FER performanceneeds to be explored. We consider these open problems as partof future work. R EFERENCES[1] E. Arikan, “Channel polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels,”
IEEETransactions on information Theory , vol. 55, no. 7, pp. 3051–3073,2009.[2] I. Tal and A. Vardy, “List decoding of polar codes,”
IEEE Transactionson Information Theory , vol. 61, no. 5, pp. 2213–2226, 2015.[3] M. C. Cos¸kun, G. Durisi, T. Jerkovits, G. Liva, W. Ryan, B. Stein,and F. Steiner, “Efficient error-correcting codes in the short blocklengthregime,” arXiv preprint arXiv:1812.08562 , 2018.[4] E. Arıkan, “From sequential decoding to channel polarization and backagain,” arXiv preprint arXiv:1908.09594 , 2019.[5] H. Yao, A. Fazeli, and A. Vardy, “List decoding of arikan’s pac codes,” arXiv preprint arXiv:2005.13711 , 2020.[6] M. Rowshan, A. Burg, and E. Viterbo, “Polarization-adjusted convo-lutional (pac) codes: Fano decoding vs list decoding,” arXiv preprintarXiv:2002.06805 , 2020.[7] H. Vangala, E. Viterbo, and Y. Hong, “A comparative study of polar codeconstructions for the awgn channel,” arXiv preprint arXiv:1501.02473 ,2015.[8] A. Balatsoukas-Stimming, M. B. Parizi, and A. Burg, “Llr-based suc-cessive cancellation list decoding of polar codes,”
IEEE transactions onsignal processing , vol. 63, no. 19, pp. 5165–5179, 2015.[9] B. Li, H. Shen, and D. Tse, “An adaptive successive cancellationlist decoder for polar codes with cyclic redundancy check,”
IEEECommunications Letters , vol. 16, no. 12, pp. 2044–2047, 2012.[10] I. Sason and S. Shamai,