A Novel Scheme of Product Polar Codes with High Efficiency and Rate Compatibility

This paper presents a new structure of product codes formed by combining two polar codes. The encoding performance of these codes is verified by implementing an exhaustive search algorithm, which determines their minimum weight specifications. Conducted analysis and simulations confirm that with the equal code length and rate, the newly proposed codes outperform the conventional polar codes in high energy per bit-to-noise ratios (Eb/N0 ≤ 5 dB). This is concluded from punctured and nonpunctured product codes.


Introduction
Polar codes are promising forward error correction (FEC) codes for the next generation of broadband networks including the fifth generation of wireless networks (5G). These codes are recognized as capacity-achieving codes under a successive cancellation (SC) decoding technique, which were initially constructed for the symmetric binary-input discrete memoryless channel (BI-DMC) [1]. However, at a short code length, their bit error rate (BER) performance is not as reliable as other known codes, such as low-density-parity-check (LDPC) and turbo codes. This limits their reputation as a good code for a wide range of applications. In order to overcome this issue, short length codes are combined with other codes to form a scheme of high-performance concatenated codes [2].
A serially concatenated code was proposed based on an inner polar code and an outer Reed-Solomon (RS-polar) code [3]. It is shown that the block error rate performance of the code is improved at the expense of increasing the length and complexity of the RS code. Eslami and Pishro-Nik showed that a high-performance concatenated code can be formed by combining polar and LDPC codes [4]. In [5], Tal and Vardy considered concatenation of a polar code with an outer cyclic redundancy check (CRC) code. The CRC code together with the usage of a list decoding algorithm concludes a high-performance code formed by the short length polar code. An alternative scheme of these codes is achieved, when the CRC code is replaced by the parity-check code [6]. In this case, parity-check codes having low multiplicity in their minimum weight are selected [7].
On the other hand, construction of a parallel concatenated code formed by two polar codes was proposed in [8]. Based on the same code length and rate, the designed code outperforms the single one. More recent work demonstrates a parallel construction of multiple polar codes having different rates [9]. Constructed code has high performance at the expense of high complexity. Alternatively, a parallel concatenated code was presented by combining a polar code with a Recursive Systematic Convolutional (RSC) code [10]. Codes obtained by this method conclude a performance better than other well-known codes (turbo codes and LDPC codes), mainly at the error floor region due to utilizing a modified interleaver, which is matched with specifications of the constituent RSC code.
The main similarity between the above-mentioned codes is the serial combination of a polar code with a nonpolar code. On the other hand, a turbo product code is based on multiple polar codes (polar-TPC) introduced in [11]. In this work, nonpunctured constituent polar codes are used to form a product code, where SCL-Chase decoding algorithm was proposed.
This paper presents a new scheme of serially concatenated codes constituted by two systematic polar codes linked by an interleaver. Codes are constructed on the basis of the message, whose length is the product of the length of constituent codes. This code can be also introduced as a polar code, as every bit of the codeword is properly polarized. Moreover, the puncturing structure of these codes will be verified. Unlike a punctured single polar code, which applies a relatively high number of punctured bits, punctured product polar codes can be constructed by removing a low number of bits applied in one of the constituent codes. This feature will allow decoders to interactively exchange their decoded information with each other and improve the error correcting capability of the code. Conducted simulations confirm that with the same rate and code length, punctured product polar codes have better performance than single punctured polar codes. In addition, it is analysed that the proposed code decoded with BP decoding has similar performance to codes decoded with the SCL-Chase-based algorithm.
The rest of the paper is organized as follows. A brief introduction of polar codes is given in Section 2. In Section 3, the structure of product polar codes and their comparison with single polar codes formed by the same rate and length are explained. Puncturing technique of the proposed code is presented in Section 4. Numerical results are given in Section 5. Finally, Section 6 concludes the paper.

Basic Structure of Polar Codes
Let N = 2 n ðn ∈ ℤ, n > 0Þ and K be the length and dimension of a ðN, KÞ polar code, respectively. The rate of this code is where WðYjXÞ is the channel transitional probability of input alphabet X = f0, 1g and output alphabet Y, x ∈ X, y ∈ Y. For binary erasure channel (BEC) with ZðW 1 Þ = 0:5, the reliability of bit channels can be recursively determined by [ where ZðW  (3) is channel-independent [12]. This means, the same rule can be used for constructing codes for any binary-input channel [12]. However, it shows that for the additive white Gaussian noise (AWGN) channel, with zero mean and variance N 0 /2, the code works better if equation (2) is initialized by [13][14][15] Z W where E c = RE b and E b is the energy spent per bits. In this case, the coded bits (x) are modulated by binary phase shift keying (BPSK) modulation. Hence, channels with low ZðWÞ values are referred to as noiseless channels (or good channels). Let A ℐ be the set of good channels. Similarly, A c ℐ denotes the frozen set, which specifies the set of bad channels. Let u = ½u 1 u 2 ⋯ u N be a message vector of length N. In this vector, there are K message bits (u Aℐ ) and N − K frozen bits (u A c ℐ = 0). The codeword vector is generated by x = uG N , where G N is a N × N generator matrix.
In systematic polar encoding, the codeword is split into two parts [16]. This can be written as x = ðx ℬ x ℬ c Þ, where ℬ is an arbitrary subset of f1, 2,⋯, Ng. These parts are recognized as message and parity parts of the codeword, respectively. In this case, where G P Q is a P × Q generator matrix formed by taking rows of P indices and columns of Q indices of G N . In general, frozen bits are set to the value of zero. Hence, u A c ℐ is a zero vector and x ℬ c can be calculated as 2.1. Effect of the Minimum Weight on the Performance of Polar Code. The minimum weight (d min ) of a systematic polar code is determined based on the weights of its rows, whose indices are elements of A ℐ . This is given by [10,17] 2

Wireless Communications and Mobile Computing
where ωðbÞ is the number of ones in the binary expansion of b. In polar codes, the lowest expected parity weight of the codeword is one [4]. This means that d min of the code is obtained from messages, whose weights are not greater than d min − 1. Based on this property and using equation (7), Table 1 gives minimum weight specifications of different polar codes. In this table, N d min gives the multiplicity of the minimum weight determined by an exhaustive search algorithm, which considers all possible messages with weight no greater than d min − 1 of the code. As a class of linear block codes, performance of polar codes can be analysed by its Input-output weight enumerating function (IOWEF), which is given by [18] where A ω,h is the number of codewords with weight h obtained from messages with weight ω. Based on IOWEF, the conditional weight enumerating function (CWEF) of the code is defined by This leads to expressing the upper bound of the probability of error for the code decoded by a maximum likelihood decoding technique as follows: where E b /N 0 is the signal-to-noise ratio per bit. The above bound can also be represented as where Here, N ω,j gives the number of codewords generated by an input message with weight ω, whose parity-check bits have weight j. With a good approximation, the above probability is given by The relative contribution of each weight to the overall BER is given by Example 1. The IOWEF of (8, 4) systematic polar code is given by The CWEF of this code is A (11) and (12), probability of error of the code Considering (12) and CWEF of the code, it is evident that the effect of codewords with weight 4 on the performance of the code is much higher than that with weight 8. Figure 1 shows the relative contribution of the three lowest weights of (16,8) and (32, 16) polar codes. It is clearly observed that by increasing ðE b /N 0 Þs, the minimum weight has the highest effect on the performance of code. Figure 2 shows the relative contribution of low weights of (32, 8) and (64, 16) polar codes with R = 1/4. The weight distributions of these short length codes conclude minimum weights with high multiplicities. Considering the probability of error given in equation (10), the existence of either the minimum weight with a high multiplicity 3 Wireless Communications and Mobile Computing or a low minimum weight relative to the length of the codeword will deteriorate performance of the polar code. As shown in the figures, this is more sensible at the medium to high ðE b /N 0 Þs.

Structure of Product Polar Codes (PPCS)
Product codes are represented as one of the most wellknown codes, whose high error-correcting capability is guaranteed due to their high minimum weight. Figure 3(a) shows the basic structure of product codes. In this code, every message with length K = K 1 × K 2 is converted to K 2 blocks with length K 1 . The ðN 1 , K 1 Þ outer code encodes every block and generates K 2 codewords with length N 1 . Codewords obtained from the first encoder are transposed to construct N 1 blocks of length K 2 , which are considered as the message for the ðN 2 , K 2 Þ (inner) code. Finally, codewords obtained from the second encoding are multiplexed to form a codeword with length N = N 1 × N 2 for the concatenated code. The minimum weight of product codes     [19], where d min1 and d min2 are minimum weights of the ðN 1 , K 1 Þ and ðN 2 , K 2 Þ constituent codes, respectively. The product code can be viewed as a serially concatenated code, which is formed by ðN 1 * K 2 , K 1 * K 2 Þ outer and ðN 1 * N 2 , N 1 * K 2 Þ inner codes. This structure is shown in Figure 3(b). Indeed, the ðN 1 , K 1 Þ outer code encodes K 2 blocks of messages with length K 1 ⋅ K 2 * N 1 codewords obtained from this encoding which are interleaved to form N 1 messages with length K 2 . Finally, every K 2 bit message is encoded by the ðN 2 , K 2 Þ code to conclude a codeword with a length of N 1 * N 2 [20].
The behaviour of the product code allows us to analyse its performance by utilizing the uniform interleaver with length N 1 K 2 , which maps information with length ℓ into all distinct as seen in [18]. The analysis conducted by the uniform interleaver represents the average performance of the code. Indeed, for each value of the signal-to-noise ratio, there will always be an interleaver, which provides better performance for the code compared to the uniform interleaver. In this case, the CWEF of the product code is expressed by [18] where are the number of codewords with weight ℓ obtained to form messages with weight ω of the outer code and CWEF of the inner code, respectively. As A C N 1 i ðL, HÞ = ½A C i ðL, HÞ N 1 from (9), we have Let f ðL, HÞ = A C i ðL, HÞ. Based on the Leibnitz theorem, the above equation is given by The third term is expressed as In product polar codes with the R = 1/4 constituent by two half rate polar codes, the minimum weight obtained from messages with weight of d min is 2d min [4]. Hence, the lowest order of H obtained from the third term will be 2 d min . By contrast, for the first and second terms, the expected lowest order of H is d min as they are only formed by one derivative. Therefore, for different ðE b /N 0 Þs, the third term will not be as effective as the first and second terms on the performance of the code. This will be more evident, when the value of E b /N 0 increases. Continuing the Leibnitz theorem for the first and second terms, CWEF of the inner code is approximately given by

Message bits
Parity bits on rows Parity bits on columns Parity bits on parity bits Figure 3: (a) Two-dimensional codeword structure of product polar codes. (b) The encoding structure of product polar codes.

Wireless Communications and Mobile Computing
For L = 0, f N 1 −1 ðL, HÞ = 1. Hence, Similarly, ω,ℓ . Therefore, CWEF of the product code is finalised as follows: As shown in Section 1.1, codewords with the minimum weight have the most effect on the performance of the code at the medium to high signal-to-noise ratios. Therefore, equation (24) can be approximately given by As the lowest order of H obtained from A C i d min ðHÞ is 2d min , more simplified CWEF of the product code is given by On the other hand, the CWEF of a single polar code with rate R ′ and minimum weight of d min ′ is approximately given by where A is number of codewords with the weight of d min ′ generated from messages with weight ω. Based on R ′ = R and d min ′ = ðd min Þ 2 , Table 2 shows conditions for different product codes with R = 1/4, which satisfy A C PR ω ðHÞ < A C SP ω ðHÞ. Considering (10), this inequality concludes that the product polar code can produce a lower upper bound of probability of error than that obtained from the single polar code. Conditions are formed by A ω,d min ′ , which assumes that the multiplicity of the minimum weight obtained from the product code is much greater than that generated by the single code. It is observed that the expected lower probability of error for the product code is guaranteed by ðE b /N 0 Þs that are applicable in communication systems.
In particular cases, multiplicity of minimum weight of the product code can be similar or even smaller than the multiplicity of the minimum weight of the single code. This will provide a better condition for the product code to outperform the single code at the error floor region. Figure 4 shows the probability of error for the (64, 16) code. In these graphs, only the minimum weight specifications of the code are considered in (13). Based on the exhaustive search algorithm, multiplicity of 196 for the minimum weight of the (64, 16) product code is obtained. From Table 1, it is observed that codes have the same minimum weight but the product code generates lower multiplicity for the minimum weight. This consequently provides a better error correcting compared to the single polar code. Again, the improvement should be mainly observed at the medium to high ðE b /N 0 Þs, where the practical behaviour of codes is matched with the calculated P b ðeÞs [18].

Reliability of Bit Channels for Product Polar Codes.
The codeword obtained from the product polar encoding can be expressed as a N 1 × N 2 matrix. This matrix can also be represented by two K 1 × N 1 and ðN 2 − K 2 Þ × N 1 submatrices, which denote the codeword of the outer code and parity bits of the inner code, respectively. The reliability of bits for the first and second submatrices is directly determined from equation (2). In every row of the first submatrix, computation is initialized by the value given in equation (3). Therefore, bits positioned at the same column will have the same reliability value. The reliability of bits at the inner code is determined on the basis of reliability of interleaved bits obtained from the first submatrix. Indeed, reliabilities calculated from K 1 rows of the first submatrix are considered as the initialized values for determining the reliability of bits positioned at the second submatrix. Table 3 shows the reliability of bit channels for the (16, 4) product polar code constituted by two (4, 2) polar codes, which are recursively calculated by equation (2). In this case, channels are considered as binary AWGN and followed the polar code construction method proposed in [13][14][15] with E b /N 0 = 0 dB. In the first encoding, reliability of bits positioned at the first two rows is obtained. This is accomplished when α ≤ i ≤ n 2 ðK 2 = 2 α , N 2 = 2 n 2 , n 2 = f1, 2, 3, ⋯g, α = n 2 − 1Þ is applied for equation (2). In this case, ZðW ðjÞ 2 α−1 Þs, 1 ≤ j ≤ K 2 , are channel reliabilities of bits placed in one column of the first submatrix. Then, from these calculated values, those reliabilities positioned at one column of the matrix are applied as ZðW j ′ 2 Þ, 1 ≤ j ′ ≤ 2, to determine reliabilities of parity bits for codewords of the ðN 2 , K 2 Þ polar code. All of the reliabilities relevant to the inner code are expressed as ZðW j′ 4 Þ, 1 ≤ j ′ ≤ 4 in equation (2). This table also gives the reliabilities of bit channels for the single (16, 4) polar code. Similar to the single code, the product code effectively polarizes the channel as either good or bad channels. Such recognition allows us to construct polar codes with arbitrary lengths and R > 1/4 originated from the main product polar code when a number of codeword bits are punctured. 6 Wireless Communications and Mobile Computing

A Puncturing Technique for Product Polar Codes
A ðN, KÞ polar code is punctured by removing a number of rows and columns from the generator matrix. Let X be the number of punctured bits. The codeword length and rate of the newly designed code are N − X and K/ðN − XÞ, respec-tively. In product polar codes, puncturing can be conducted on one of its constituent codes. The rate of these codes formed by two constituent ðN 1 , K 1 Þ and ðN 2 , K 2 Þ codes is determined by   where φ is the number of bits removed from the ðN 1 , K 1 Þ code.
In order to have R p equal to the rate of the ðN − X, KÞ single polar code (N = N 1 × N 2 , K = K 1 × K 2 ), the following condition should be satisfied: This means a lower number of bits punctured from one of the constituent codes are required in comparison with the number of punctured bits applied for the single code.
Based on the two-dimensional structure of the codeword, φ rows or columns representing the most unreliable bits of a constituent code will be removed. The structure of punctured codewords for the (64, 16) product code is given by where C ði,jÞ , ði, jÞ ∈ fA ℐ g, and A ℐ = f4, 6, 7, 8g are message bits and the rest are parity bits. In this matrix,"×" denotes position of punctured bits. This code is constructed by two (8, 4) polar codes. For a punctured code formed based on a low value of φ, it is possible to do the puncturing by selecting bits that are not adjacent to each other [21]. In this code, the first and fifth bits of the (8,4) code have the lowest reliabilities. Hence, the information positioned at the mentioned columns (first and fifth columns) of the matrix is punctured. In this case, at every decoding step of the outer code, there would be at least one valid (nonpunctured) information, which assists the decoder to recover the original codeword.
On the other hand, based on transposing the received information, at the second decoder, some adjacent information is recognized as punctured information. However, as shown in Figure 5, due to interactive iterative decoding of the product code, in every iteration, decoded information obtained from two decoders is exchanged with each other. This allows both decoders to effectively recover the original information transmitted over the noisy channel. Regardless the error floor effect, existence of a good error correcting performance is expected from the medium to high ðE b /N 0 Þs, where the first decoder has a better chance to correctly decode the received information.
By contrast, in a single polar code formed by a high number of punctured bits, it is possible to puncture adjacent bits or those having high reliability. This is mainly evident for codes with X ≥ K/2 [21]. Moreover, as interactive iterative decoding is not conducted for a single polar code, it is expected that with the same rate and length, punctured product polar codes outperform punctured single polar codes.

4.1.
Puncturing Effect on the Channel Reliability for SPC and PPC. The reliability of the bit channel can effect error performance of the punctured code. Puncturing a bit ultimately deletes its bit-channel reliability. This consequently reduces the overall bit-channel reliability (Z sum ) of the code and mitigates decoding performance. The overall reliability of a polar code is defined by As mentioned above, the Z sum value is reduced, when bits are punctured. Therefore, it is essential to keep Z sum as high as possible to have a good performance for the punctured code. Let ζ be the overall reliability of nonpunctured bits of a punctured code, which is given by where ZðW ðjÞ N Þ is the bit-channel reliability value of the j-th bit of the codeword and A p represents the set of indices applied for punctured codeword bits. Obviously, for A p = 0, the code is considered as a nonpunctured one. From (29) and (30), the below inequality can be observed Therefore, if ζ is tightly upper bounded, punctured bits have less effect on the code performance. This requires careful selection of puncturing bits so that the calculated ζ remains close to Z sum of the code.
As mentioned before, in product polar codes, a lower of number of bits are punctured from their constituent codes compared to a single punctured code. Hence, less effect of punctured bits on the performance of product code compared to the single code is expected.

Numerical Results
The bit error rate (BER) and frame error rate (FER) performances of different product and single polar codes transmitted over the AWGN channel are verified. Codes are modulated by BPSK and decoded by the soft-in soft-out belief propagation method mentioned in [16]. For product codes, four iterations are considered for the interactive decoding between two constituent decoders. For single systematic polar codes, decoding is accomplished by 60 iterations. A successive cancellation list with cyclic redundancy check (SCL-CRC) decoding is performed with the list size of either L = 4 or L = 8. Moreover, m-bit CRC code is applied. This means m bits added to the message bits. Figure 6 shows the performance of (64, 16) codes. It is observed that the product code has a similar BER performance to the single code with SCL-CRC (L = 8 and m = 4) decoding. Constituent half rate codes are decoded by 30 iterations. In addition, at E b /N 0 = 4:5 dB, this code shows a performance better than the single polar code. The product code provides significantly better performance than SPC with BP decoding. Figure 7 shows the performance of two product codes and their performance with BCH-polar [22] and RS-polar [23] codes. Constituents of both product codes are based on non-half rate polar codes. It shows that the (256, 42) product code with rate R = 1/6 has close FER performance with BCHbased polar code. In addition, the (512, 171) product code is constituted by (32, 19) and (16,9) polar codes. At E b /N 0 = 4:0 dB, this code has 2.0 dB and 0.85 dB gain in BER performance compared to RS-polar and LDPC-polar codes,    Figure 8 shows the performance of the (800, 256) product and (768, 256) single polar codes. In this case, the product code is constructed by two (32, 16) polar codes, which are decoded by BP decoding, including 90 iterations. Due to interactive iterative decoding applied in the product code, one decoder can properly recover punctured information from a block of information and deliver them to the second decoder for the next step of decoding. It is observed that the product code provides similar performance to decoding based SPC, while outperforming the single polar code decoded by BP decoding. Figure 9 shows the BER and FER performances of the (3196, 1024) product and (3072, 1024) single polar codes. Again, 90 iterations were considered for BP decoding of constituent codes. It is observed that the product code has a better BER performance compared to the single code. It also has similar FER performance with the single code decoded by the SCL-CRC technique with L = 4 and m = 4.
Furthermore, BER performance of the (256 2 , 239 2 ) product polar code and polar-TPC proposed in [11] are analysed in Figure 10. Codes are modulated by quadrature phase shift keying (QPSK). Sixty (60) iterations are applied for BP decoding of the product polar code. It is concluded that the product code decoded by ten and twenty interactive iterations has similar performance to polar-TPC decoded by the SCL-Chase algorithm with the list size of L = 8 and L = 32, respectively.

Conclusions and Future Work
The paper presented a product coding scheme of polar codes formed by two different rates of polar codes. The conducted analysis and simulation results confirmed that the constructed product codes outperform the conventional polar codes. This is mainly evident in the medium to high signalto-noise ratios, which is applicable for both nonpunctured and punctured codes. In the future work, a modification of the structure of punctured product polar codes will be followed aimed at improving their performance.

Data Availability
Data sharing not applicable to this article as no data sets were generated or analysed during the current study.