Fast List Decoding of Polar Codes: Decoders for ... - IEEE Xplore

0 downloads 0 Views 154KB Size Report
Abstract—This work focuses on fast successive-cancellation list decoding of polar codes. We propose list decoders for five newly- identified types of nodes in the ...
2018 IEEE Wireless Communications and Networking Conference Workshops (WCNCW): Polar Coding for Future Networks: Theory and Practice

Fast List Decoding of Polar Codes: Decoders for Additional Nodes Muhammad Hanif, Maryam H. Ardakani, Masoud Ardakani Email: [email protected], [email protected], [email protected] Abstract—This work focuses on fast successive-cancellation list decoding of polar codes. We propose list decoders for five newlyidentified types of nodes in the decoding tree of a polar code. The proposed list decoders significantly improve the decoding speed by determining the best paths and calculating their corresponding path metrics without computing bit log-likelihood ratios.

special nodes can increase the decoder throughput significantly without sacrificing the bit-error-rate performance. II. BACKGROUND A binary polar code, P (N, k), of length N = 2n , where n is a positive integer, and rate k/N maps the input vector u = {u0 , u1 , · · · , uN −1 } to the output vector x = {x0 , x1 , · · · , xN −1 } such that1

I. I NTRODUCTION Polar codes, discovered by Arıkan, asymptotically achieve the capacity of a memoryless channel with low-complexity successive-cancellation (SC) decoding [1]. For short and medium code lengths, however, the performance of the SC decoder is significantly degraded with respect to maximumlikelihood (ML) performance [2]. Unfortunately, the ML decoding has very high computational complexity, even for moderate-length polar codes. As such, [2] introduced successive-cancellation list (SCL) decoding for polar codes. Despite having significantly less computational complexity than the ML decoder, the SCL decoder can achieve near ML performance even with moderate list sizes [2]. The SCL decoder works in a similar manner to the SC decoder. In particular, both decoders estimate one bit at a time. However, the SC decode keeps only a single path, whereas the SCL decoder maintains a list of L most probable paths while decoding each bit [2]. The serial decoding nature of both the SC and SCL decoders results in high decoding latencies. Thus, researches have proposed multiple schemes to reduce the decoding time of both decoders [3]–[11]. The underlying idea behind these schemes is to implement some operations in parallel to increase the decoder throughput. For example, [4] identifies and proposes low-complexity parallel decoders for rate-0 and rate-1 nodes for the SC decoder. Similarly, [5] proposes fast decoders for single-parity-check (SPC) and repetition (REP) nodes in the decoding tree of a polar code. Recently, [8] presented fast lowcomplexity decoders of five nodes (Type-I, Type-II, Type-III, Type-IV, and Type-V nodes) to further increase the decoding speed of the SC decoder. The fast SCL decoders follow a similar strategy used to reduce the decoding latency of the SC decoder. However, unlike the fast SC decoders that output only the most-probable output sequence, the fast SCL decoders maintain and output a list of most-probable paths. In particular, [9]–[11] propose list decoders for rate-0, rate-1, REP and SPC nodes to improve the decoding speed of the SCL decoder. This paper presents fast list decoders for five recentlyidentified nodes [8] in the decoder tree of a polar code. Implementing them along with the existing list decoders of

978-1-5386-1154-8/18/$31.00 ©2018 IEEE

x = uF⊗n , where F⊗n is the nth tensor power of F defined as   ⊗(n−1) O F ⊗n F = , F⊗(n−1) F⊗(n−1)

(1)

(2)

with F⊗0 = 1. The matrix F⊗n synthesizes N polarized channels from N independent copies of a given channel. Amongst the N synthesized channels, the k most reliable ones are used to carry the information. We use F to denote the index set of N − k least reliable synthesized channels. Then for every i ∈ F, ui = 0, whereas the remaining input bits contain the information bits. We denote the index set of k most reliable synthesized channels by I. After receiving the encoded vector x from the channel, the receiver provides the LLR vector of received bits, denoted by y = {y0 , y1 , · · · , yN −1 }, to the polar-code decoder. After receiving the LLRs, a polar-code decoder estimates the input ˆ and x ˆ to denote the estimated and output vectors. We use u input and output vectors, respectively. A. SC and SCL Decoding The SC and SCL decoding can be understood using a binary-tree representation of the polar code. Fig. 1 depicts a P (16, 10) code in its binary-tree representation. In order to understand the decoding operation of the SC and SCL decoders, we define the following notations. We use {{N}} to denote the set {0, 1, · · · , N − 1}. For any given R = 2t , we can represent i ∈ {{N}} as i = ψR + [[i]]t , where ψ and [[i]]t ∈ {{R}} are the quotient and remainder after division of i by R, respectively. Observe that each node in the code tree of a polar code has a bijective relationship with (ψ, t) pair. For example, the root node corresponds to (0, n), whereas the ith leaf node can be represented as (i, 0). Further, with the exception of leaf nodes, each node (φ, t) has two children: the left child (2φ, t − 1) and the right child (2φ + 1, t − 1). 1 For the sake of exposition, we consider only non-permuted polar codes as similar conclusions can be drawn for permuted-polar codes.

37

2018 IEEE Wireless Communications and Networking Conference Workshops (WCNCW): Polar Coding for Future Networks: Theory and Practice

ψ=0

t=4

ψ=0

t=3

ψ=0

t=2

them, only those L paths are maintained that have the lowest PMs.

ψ=1 ψ=1

ψ=2

ψ=3

B. Fast SC and SCL Decoding Some of the nodes in the decoding tree can output xφ,t directly without traversing the decoding tree further. Implementing fast decoders of these nodes can significantly improve the decoding speed [3]–[11]. For example, a rate-0 node (shown by unfilled circles in Fig. 1) can be decoded without computing the LLR values of its children by noting that all the leaf nodes of a rate-0 node correspond to frozen bits. Therefore, xφ,t k = 0. Likewise, fast decoders for rate-1, REP, SPC, Type-I, Type-II, Type-III, Type-IV, and Type-V nodes improve the SC decoder throughput [4], [5], [8]. The decoders proposed in [4], [5], [8] only output a single codeword. The SCL decoder, on the other hand, maintains a list of L codewords for each bit. As such, the SC decoders of the above mentioned nodes require modifications to be used for the SCL decoder. Amongst the afore-mentioned nodes, the SCL decoders for only rate-0, rate-1, REP and SPC nodes have been proposed in [9]–[11]. To the best of authors’ knowledge, the SCL decoders for the remaining five nodes are not available in the literature. Hence, we present list decoders for the remaining nodes to improve the decoding speed of the SCL decoder. To this end, we find the following notations quite useful. For a node (ψ, t), we define A˜ψ,t = {[[i]]t : i ∈ I, and i = t 2 ψ + [[i]]t }, and A˜cψ,t = {[[i]]t : i ∈ F, and i = 2t ψ + [[i]]t }. With the defined notation, a rate-0 node corresponds to A˜ψ,t = {}; rate-1 node, to A˜ψ,t = {{R}}; REP node, to A˜ψ,t = {R−1}; SPC node, to A˜cψ,t = {0}; Type-I node, to A˜ψ,t = {R−2, R− 1}; Type-II node, to A˜ψ,t = {R − 3, R − 2, R − 1}; Type-III node, to A˜cψ,t = {0, 1}; Type-IV node, to A˜cψ,t = {0, 1, 2}; and Type-V node, to A˜ψ,t = {R − 5, R − 3, R − 2, R − 1}.

t=1 t=0

Fig. 1. Binary-tree representation of a polar code P (16, 10).

In the SC decoder [1], a node (φ, t) receives yφ,t , an LLR vector, and outputs hard bit estimates xφ,t . In particular, with the exception of the leaf nodes, each node upon receiving yφ,t generates LLR vectors for its children as   y φ,t +y φ,t t−1 k+2 1+e k 2φ,t−1 , (3) yk =ln φ,t y φ,t eyk + e k+2t−1 φ,t 2φ,t−1 φ,t yk2φ+1,t−1 =yk+2 )yk , (4) t−1 + (1 − 2xk where 0 ≤ k < 2t−1 is used to denote the kth entry of a vector. On the other hand, xφ,t is computed as  x2φ,t−1 ⊕ x2φ+1,t−1 , if i < 2t−1 ; φ,t i i xi = (5) 2φ+1,t−1 xi−2t−1 , otherwise, where ⊕ denotes binary XOR operation, and 0 ≤ i < 2t . The decoding process starts by setting y0,n = y. Each node, upon receiving its LLR vector, computes and passes LLR vectors to its children until the leaf nodes receive their LLR values. At the ith leaf node, i.e. node (i, 0), the ith input bit ui is estimated as  0, if i ∈ F; ˆ i = xi,0 = u (6) H(yi,0 ), otherwise, where

 H(y) =

0, 1,

when y ≥ 0; otherwise.

III. P ROPOSED D ECODERS Before presenting the list decoders for the five nodes, we first examine the contribution of a node (φ, t) on the PM of a codeword. Observe that the leaf nodes corresponding to the node (φ, t) are the nodes (2t φ + k, 0), where 0 ≤ k < 2t . Consequently, using (8), the contribution of the node (φ, t) to the PM, denoted by PMφ,t , is given by

(7)

The leaf nodes then sends xi,0 to their parents. Each node (φ, t) upon receiving x2φ,t−1 and x2φ+1,t−1 from its children, computes xφ,t using (5). Finally, the hard decision estimate of ˆ = x0,t . x is computed as x The SCL decoder [2] operates in a similar fashion. Instead of outputting only one codeword estimate, the SCL decoder maintains a list of L codeword candidates with their corresponding path metrics (PM) while decoding each bit. In particular, the PM associated with the lth candidate codeword, PMli , after estimating the ith bit is computed as [12] PMli =

i−1 



kl ,0 ln 1 + e−(1−2ˆukl )y ,

PM

φ,t

2t (φ+1)−1

=





k,0 ln 1 + e−(1−2ˆuk )y .

(9)

k=2t φ

Our proposed decoders, similar to the list decoders of the rate-0, rate-1, REP and SPC nodes [10], compute PMφ,t without traversing the whole subtree corresponding to a node. To this end, we use an important result introduced in [10, Theorem 1] for the PM computation2 . Specifically, [10] proves that t 2 −1

φ,t φ,t φ,t PM = (10) ln 1 + e−(1−2xk )yk .

(8)

k=0

ˆ kl is the estimate of the (k + 1)-th bit, and ykl ,0 is where u the LLR received by the (k + 1)-th leaf node in the path l. ˆ il = 0 for each If the (i + 1)-th bit is a frozen bit then u list, and the PMs are updated accordingly. But if the (i + 1)-th bit is an information bit, then each path generates two paths ˆ il = 0 and u ˆ il = 1. The PMs are updated corresponding to u accordingly, and a total of 2L paths are generated. Amongst

k=0 2 Although

[10] presented the equivalence of PMs for a rate-1 node, the result is valid for any node as other nodes can be considered as special cases of the rate-1 node.

38

2018 IEEE Wireless Communications and Networking Conference Workshops (WCNCW): Polar Coding for Future Networks: Theory and Practice

Another result, that will be used extensively in our proposed decoders to simplify the calculations is the following identity. ln 1 + ea − ln 1 + e−a = a. (11)

Following the approach used in the Type-I list decoder, we compute PMl000 =PMl +

For a Type-I node, xl = {xR -2 , xR -1 , · · · , xR -2 , xR -1 } [8]. As such, xl equals only one of the four codewords: C00 = {0, 0, · · · , 0, 0}, C01 = {0, 1, · · · , 0, 1}, C10 = {1, 0, · · · , 1, 0}, and C11 = {1, 1, · · · , 1, 1}. In the proposed decoder, we compute the PM contribution of the Type-I node corresponding to each codeword for each list. In particular, the PMs corresponding to the four codewords for the list l, 0 ≤ l < L, are

C. Type-III Node A Type-III node corresponds to Aˆc = {0, 1}; i.e., there are only two frozen bits in the node [8]. Therefore, xl can be one t of the 2R−2 = 22 −2 valid Type-III node codewords. Since the size of a Type-III node can be large, it is impractical to compute a total of 2R−2 L path metrics and choose the best L ones amongst them. Hence, we follow the approach used in [9]–[11] of generating candidate codewords. For each path l, we first find the ML codeword and compute its corresponding PM. Since the even-indexed and odd-indexed bits of a Type-III codeword constitute two separate SPC codes [8], we compute the ML codeword by using Wagner decoding [13]. In particular, we set xlk = H(ykl ), where H(y) is defined in (7), and 0 ≤ k < R. We then find the location of the leastreliable even-indexed and odd-indexed LLR values as

R/2−1

l l ln 1 + e−y2k + ln 1 + e−y2k+1 , (12)

k=0 R/2−1

PMl01 =PMl +



l l ln 1 + e−y2k + ln 1 + e+y2k+1 , (13)

k=0 R/2−1

PMl10 =PMl +



l l ln 1 + e+y2k + ln 1 + e−y2k+1 , (14)

k=0 R/2−1

PMl11 =PMl +



l l ln 1 + e+y2k + ln 1 + e+y2k+1 . (15)

k=0

Using (11), the calculations can be simplified as PMl00 =PMl +

R−1 



ln 1 + e

−yl k

l l (el , ol ) = ( argmin |y2k |, argmin |y2k+1 |) 0≤k