Shortened LDPC codes accelerate OSD decoding performance

Medium-length LDPC codes are in demand in certain areas such as mobile environment (Wi-Fi and Mobile WiMAX) and in telecommand links from the ground to space because of their lower latency properties. However, because of the length of these codes is rather short, decoding error rates are worse than those of long-length codes. In this paper, we show that the combination of shortened LDPC codes, whose shortened positions are properly selected, and ordered statistic decoding (OSD) significantly improves the decoding error. For the best choice of shortening positions, we used the integer programming approach. In particular, we utilized Feldman–Wainwright–Karger code polytope for this purpose. Some studies have independently reported the efficiency of shortened LDPC codes and OSD methods. This paper emphasizes that their combination results in multiplicative effectiveness.


Introduction
It is well known that long-length LDPC codes with the sum-product (SP) decoding algorithm show good decoding error properties near the Shannon limit; see sections 17. 10-17.19 of [13]. However, medium-length LDPC codes (whose length are a hundred to a few thousand bits) are adopted in some actual communication standards, such as IEEE 802.11n (Wi-Fi), 802.16e (WiMAX) and telecommand (TC) links from ground to space [4,5] because of their lower latency properties. Unfortunately, the error correction abilities of these medium-length codes are inferior to that of long-length codes. As a method that compensates for this gap, the Ordered Statistic Decoding (OSD) method [8] has been considered effective. This method uses outputs of SP decoding as reliability measure and reprocesses them to improve the output quality. However, for each reprocessing phase i, the method requires k i codewords to be processed, where k is the information bit length. Thus, up to phase p, a total number of p i=0 k i codewords will be generated. This procedure is called "Order-p reprocessing". Thus, in practice, the reprocessing procedure is limited to a relatively small number, for example at most order 4; see [2]. Due to this limitation on the reprocessing order, improvements from SP decoding are not large enough as expected, especially if the order of reprocessing is small, such as p = 1 or 2. To resolve these contradictory requirements on decoding precision and decoding time, we propose a method, that is a concatenation of the iterative decoding method (SP) and OSD method. It is known that shortened LDPC codes improve the decoding error rate to a certain extent, e.g., see [16,17] and references therein. Thus, by choosing shortened LDPC codes in some appropriate way, the number of erroneous bits in most reliable bits (MRB) are expected to be reduced, and this decreasing of errors in the MRB improves the total decoding error significantly even in the adoption of "Order-1" or "Order-2" reprocessing. Here, we used the term "-appropriately shortened LDPC codes-" for LDPC codes whose shortening positions were selected to decrease the decoding error. We compared three methods for the selection of shortening positions, namely (A): Every 8 bits, (B): Worst reliable bits [16], (C): Integer Programming based approach. We note that in method (C), the Feldman-Wainwright-Karger code polytope [7] is used for demonstrating integer programming (IP) procedure to enumerate a set of codewords with small Hamming weight. We exclude these codewords by suitably choosing shortening positions and for this choice of shortening positions, IP again plays an important role. To the best of our knowledge, the approach (C) is new in our current paper.
For the decoding time, it was suppressed to be reasonable, because we assumed a relatively small-order reprocessing scheme. We examine this in Sect. 6 with numerical experiments.
For an error-correcting performance, by appropriately choosing shortening positions of information bits, we found that Order-2 reprocessing is enough to achieve a codeword error rate (CER) of less than 10 −5 at a signal-to-noise ratio E b /N 0 = 3.0 dB. To be specific, the followings accomplish this property: where n is the code length and k the information bit length. We note that the codeword error rate level in TC links is required to be lower than 10 −5 ; see Baldi et al. [2]. Of three methods for the determination of shortening positions, method (C) seems to be effective especially in the case of a relatively high signal-to-noise ratio range. Finally, we note that the method we are proposing here is a sort of concatenation of SP and OSD methods, analogous to [2]. Hence, further concatenation with a cyclic redundancy check (CRC) as [9,14] may be possible by decreasing the number of shortening bits and using them for CRC. This paper is organized as follows. In Sect. 3, we review the shortened LDPC code, the OSD method, and their concatenation. In Sect. 4, we propose three different methods for shortening positions. We evaluate these methods through a series of numerical experiments in Sect. 5. Section 6 discusses our evaluations from the execution time.
Throughout the experiments, we assume relatively small order OSD, while keeping the ability of error correction at some satisfactory level. Thus, the execution time is also relatively small in these OSD decoding class. Finally, in Sect. 7 we discuss some topics which we leave for future research.

Methods
We have examined the effectiveness of an encoding/decoding method via computer simulations, which were performed on an Intel(R) Xeon(R) E5-1660 3.70GHz processor host using gcc 4.4.7 -O3.

Shortened LDPC codes and the OSD method
In this section we review the shortened LDPC codes with SP decoding and the OSD method, and then we look for the way to combine them into a single coding algorithm. First, we introduce some notations. Let (n, k) denote code length and information bit length respectively. We assume an additive white Gaussian noise (AWGN) channel and N 0 /2 to be the two-sided noise power spectral density, thus the standard deviation of a noise is σ = √ N 0 /2 . As for modulation, binary phase-shift keying (BPSK) is assumed, whose signal energy per one information bit is denoted by E b . Thus, over a noiseless channel, outputs of the matched filters are where R is the code rate. Next, we briefly introduce the encoding algorithm, which is standard for shortened LDPC code. Assume a (n + α, k + α) base LDPC code is available. Let α be the number of shortened bits from the base LDPC code. We denote the parity check matrix of base LDPC code by H = h i,j .
We introduce the following three different methods to determine the shortening position T: We note that the length of n + α sequence is not transmitted in the above encoding process. Instead, we transmit the length of a n sequence, thus, the coding rate is k/n ( Fig. 1). Because both sender and receiver know α bits of shortening position T and they are set to be zero, hence it is not necessary to transmit these all zero bits. Next, we introduce a decoding algorithm, which is a concatenation of the SP-algorithm for shortened LDPC codes and the OSD method. We note that the following decoding algorithm is essentially the same as the hybrid decoding algorithm in [2], except for the adoption of shortened LDPC codes (for the applications of this hybrid decoding algorithm to non-binary LDPC codes, consult Baldi et al. [1]). However, as shown in the numerical experiments discussed in Sect. 5, adoption of appropriate shortened LDPC codes fairly improve error correction ability compared to the one that uses prime base LDPC codes for the OSD process.
In the following, L denotes a maximum iteration number of SP-algorithm, M is a large real number, and y = (y 1 , . . . , y k , y k+α+1 , . . . , y n+α ) (y j ∈ R, j ∈ {1, . . . , k, k + α + 1, . . . , n + α}) , a received sequence. In step (2) of the following decoding procedure, we will use accumulative log-likelihood ratio (LLR) information as in [11] owing to its efficiency. In step (3), we apply hard decision process to the outputs of SP. If this hard decision satisfy parity condition, we adopt this hard decision as the final decoding result. In step (4), positions corresponding to set T are set to large value M, since these bits include no error.

Fig. 1 Encoding process
Here we note that we do not flip any of z ′ π(n+1) , . . . , z ′ π(n+α) in step (6) since this sequence does not contain any errors.

Selection of α-shortening positions
The selection of shortening positions in α information bits is important for improving CER; see [3,16,17] and their references. Shortening techniques do not depend on the code length, however, they result in significant progress in the error correction ability when they are adopted to medium-length codes with OSD decoding. This is because, a small refinement in error rate of MRB often results in large improvement in the process of OSD decoding, as we shall see in the numerical experiments in the following sections. In the experiments, we try the following three types of shortening methods. First method is a code independent, while other two methods are code dependent one.
For the third method, we need some definitions.

and (2)
The following polytope is called the Feldman-Wainwright-Karger code polytope [7]: First, we determine a code set which has small Hamming weight. The set C obtained through above process represents a collection of codewords that have a small Hamming weight. Table 2 shows (a part of ) the positions that take   decide the shortening positions of the code so as to achieve this objective, we make use of the integer programming technique again. We set a positive integer K as large as possible so that the following optimization problem is feasible. We put N as the total number of shortening positions.
The vector z = (z 1 , . . . , z n ) above represents a position to be shortened. More precisely, if z i = 1 then i-th position in original codeword is shortened and its value is set to be "0". Next proposition shows any codeword up to K-th position in the set C is prohibited in the proposed shortened code. Proposition 1 Assume z = (z 1 , . . . , z n ) be a feasible solution to the integer programming problem (C). Further, if z i = 1, then we set i ∈ T in "Encoding Algorithm". Then, any codeword up to K-th position in the set C never appears in the set of codewords designed by the "Encoding Algorithm".

(Proof)
Set C K ⊂ C be the set of codewords up to K-th position in C and C be the set of codewords designed by the "Encoding Algorithm". Let x * be an element in C K with minimum Hamming weight d * . Then, from the definition of z , at least one position of x * whose bit has a value "1" is forced to be "0" in "Encoding Algorithm". Thus, x * is never contained in C . Assume any codeword of C K with Hamming weight d ( d > d * ) is not contained in C . Now let x d+1 ∈ C K be an arbitrary codeword with Hamming weight d + 1 . Then, again from the definition of z , at least one position of x d+1 whose bit has a value "1" is forced to be "0" in "Encoding Algorithm"(thus modified x d+1 has a Hamming weight less than or equal to d). Hence, by induction hypothesis, x d+1 is never contained in C , which proves the assertion.
Thus, the minimum free distance of the proposed shortened code is significantly increased compared to the original code. Hence, we can expect erroneous bits in the proposed shortened code decrease, especially in a relatively high signal-to-noise ratio environment. This minor improvement on erroneous bits accelerates total improvement on OSD decoding method.
Although we have experimented with four cases of different LDPC codes, we have demonstrated approach (C) for only the above two cases (1) and (2) (different two cases α = 40 and α = 36 ); see Table 3. This is mainly due to the limit of computation time (in our computing environment, it took about a month to obtain the result of Table 2). As we shall see in the following, method (C) shows a remarkable advantage in error correction ability, it seems worthwhile to try to explore some methods to obtain the result of (C)-I (as shown in Table 2) within more reasonable time. Combination of some probabilistic methods for weight distribution, e.g., [6,10,12,15] and IP approach might prove promising. Specifically, an approach based on the "impulse method" by Hu et al. [10] and Declercq and Fossorier [6] is known to be effective for enumerating such low weight codewords.

Numerical experiments
For our experiments, we used four different LDPC codes, which have a systematic structure (WiMAX code, Wi-Fi code and two CCSDS codes). We evaluated error correction ability with codeword error rate (CER), which is defined as the ratio of the number of  (1) In this case, we used (n + α, k + α, α) = (576, 288, 36) IEEE 802.16e (WiMAX) LDPC code as the base code. Thus, (n, k) = (540, 252) , and hence coding rate is R = k/n = 0.467 . The result for this case is shown in Fig. 2. In the figure, label SP shows the CER of the "original" (576,288) LDPC code with the SP-algorithm, and OSD1 stands for the result of Order-1 OSD method applied to base LDPC code. SH A , SH B and SH C are the results of α bit shortened codes whose shortening positions were determined by (A), (B) and (C) as described in the previous section, respectively. SHOSD1 A , SHOSD1 B and SHOSD1 C are the proposed methods which apply the Order-1 OSD method to SH A , SH B and SH C , respectively. SH B , SH C and OSD1 showed almost the same CER abilities (whereas SH A is inferior to those). However, we observed that SHOSD1 A , SHOSD1 B and  SHOSD1 C accomplished CER under 10 −5 at E b /N 0 = 3.0 dB and 3.5 dB and constantly overperformed the result of OSD-1 decoding. In particular, the SHOSD1 C is superior even if compared to SHOSD1 A and SHOSD1 B at E b /N 0 = 3.0 dB and 3.5 dB. Table 4 shows the effectiveness of the OSD effect for the base and shortened LDPC codes. As shown in Table 4, the SH A /SHOSD1 A and SH B /SHOSD1 B ratios are, in most cases, superior to the SP/OSD ratio, except at 3.0 dB and 3.5 dB. However, SH C /SHOSD1 C shows a far superior improvement rate compared with the other three cases. This indicates that if we properly select shortening positons, the OSD effect is accelerated by the corresponding shortened codes. Table 5 shows the number of excluded codewords, out of No.1 through No.900, appearing in Table 2 by methods (A), (B) and (C), respectively. From this, we see that the number of excluded codewords by method (C) is larger than those with methods (A) and (B). Figure 3 gives the distribution of the number of codewords which are not covered by each of the shortening methods (A), (B) and (C). The horizontal axis indicates the code weight, while the vertical gives the number of (log scaled) codewords uncovered by respective methods. Method (A) and (B) remain considerable amount of uncovered codewords (especially for a low weight distribution, such as 13 and 16), whereas the method (C) keeps only three uncovered codewords at a weight 23. The error correction ability at 3.0 dB and 3.5 dB appears to be affected by these numbers of uncovered numbers of codewords with small Hamming weight in Table 5.
(2)-1 In this case, we used (n + α, k + α, α) = (648, 324, 40) IEEE 802.11n (Wi-Fi) LDPC code as the base code. Therefore, (n, k) = (608, 284) , and hence coding rate is R = k/n = 0.467 . The result for this case is shown in Fig. 4. All labels mean the same as in Fig. 2. We can see that SH A , SH B , SH C and OSD1 show almost the equivalent CER abilities. On the other hand, we observe that SHOSD1 A , SHOSD1 B and SHOSD1 C accomplish CER under 10 −5 at E b /N 0 = 2.5 dB and constantly overperform OSD-1 decoding. In particular, the SHOSD1 B and SHOSD1 C results at E b /E 0 = 3.0 dB are strong compared to those of SHOSD1 A . Table 6 shows the efficiency of the OSD effect   Table 5 Number of covered (inhibited) codewords appearing in Table 2   for the base and shortened LDPC codes. As shown in Table 6, the ratios SH A /SHOSD1 A , SH B /SHOSD1 B and SH C /SHOSD1 C , except for the case of 3.0 dB for SH A /SHOSD1 A , are superior to the ratio SP/OSD, which means that the proposed method accelerates the OSD effect. As a possible cause that SHOSD1 A loses its efficiency at E b /E 0 = 3.0 dB , we mention the following. First, as shown in Table 7, the covered codewords for methods (B) and (C) are relatively large (771 and 793) compared to the number for method (A). Second, from Fig. 5, we observe similarity in the distribution of the number of uncovered codewords for the methods (B) and (C), although the distribution with method (B) has non-zero value at weight 20. On the other hand, the distribution of the number of the uncovered codewords for method (A) has non-zero value at low Hamming weight (at 15,18,19). This likely causes the degradation of CER at E b /E 0 = 3.0 dB for method SHOSD1 A .
(2)-2 Next, we examine the same IEEE 802.11n (Wi-Fi) LDPC code as a base code for a different parameter, specifically, (n + α, k + α, α) = (648, 324, 36) . Thus, (n, k) = (612, 288) and hence R = k/n = 0.471 . The results are shown in Fig. 6, with its efficiency in Table 8, the number of covered codewords for each method in Table 9, and the distribution of the number of uncovered codewords for each Hamming weight of codeword in Fig. 7. We observed almost the same tendency as in the case of α = 40.
(3) In this case, we used (n + α, k + α, α) = (256, 128, 16) CCSDS LDPC code as the base code see; [4]. Thus, (n, k) = (240, 112) , and hence coding rate is R = k/n = 0.467 . Table 2  The result for this case is shown in Fig. 8. In the figure, the meanings of SP, SH A and SH B are the same as in Fig. 2. OSD2 shows the result from the Order-2 OSD method applied to the base LDPC code. SHOSD2 A and SHOSD2 B are proposed methods that apply the Order-2 OSD method to SH A and SH B respectively. We found that the error correction ability of OSD2 is superior to those of SH A and SH B . We observed that SHOSD2 A and SHOSD2 B accomplish CER under 10 −5 at E b /N 0 = 3.5 dB and constantly outperforms the result of OSD-2 decoding. As an interesting finding, we observe in this case CER of SHOSD2 A constantly outperforms SHOSD2 B , although not so significant degree. Table 10 shows the efficiency of OSD effect for a base and shortened LDPC codes. From   this table, we see that ratios SH A /SHOSD2 A and SH B /SHOSD2 B consistently improve the ratio of SP/OSD2. Hence, in this case, by shortening the base LDPC code, the OSD effect was accelerated.

Table 7 Number of covered (inhibited) codewords appearing in
(4) In this case we used (n + α, k + α, α) = (512, 256, 32) CCSDS LDPC code as the base code see; [4,5]. Thus, (n, k) = (480, 224) , and hence coding rate is R = k/n = 0.467 . The results for this case is shown in Fig. 9. All captions are the same as in Fig. 8. SH A , SH B and OSD2 show almost the same CER abilities. On the other hand, SHOSD2 A and SHOSD2 B accomplish CER under 10 −5 at E b /N 0 = 3.0 dB and consistently improve the OSD-2 decoding result. As in case (3), the CER of SHOSD2 A slightly better than that of SHOSD2 B . Table 11 shows the efficiency of the OSD effect for the base and shortened LDPC codes. As shown in Table 11, we see that SH A /SHOSD2 A and SH B /SHOSD2 B constantly improve the ratio of SP/OSD2. Therefore, as in case (3), by shortening the base LDPC code, the OSD effect was accelerated.

Execution time evaluation
The decoding algorithm we presented in this paper is a kind of hybrid type decoding algorithms and its structure is analogous to that of Baldi et al. [2]. As explained in [2], most decoding trials end with procedure (3) of the decoding algorithm. Moreover, we assumed a relatively small order OSD reprocessing procedure (in the experiment discussed in the previous section order one and two reprocessing was used), thus, the Table 9 Number of covered (inhibited) codewords appearing in Table 2 (1) and (2) ( α = 40 ) of the previous section respectively. Here "OSD1" represents the average execution time for Order-1 OSD process (without the time for Sum-product part) and similarly, "SHOSD1 A " shows the average execution time for OSD process with shortened LDPC code and shortening method (A). OSD ratio refers to the percentage of OSD trials, i.e., the ratio of SP decoding failure. The labels OSD1/SP and SHOSD1 A /SP refer to the execution time ratios. We note execution times shown in these tables are based on Intel(R) Xeon(R) E5-1660 3.70GHz processor host using gcc 4.4.7 -O3. Both Tables 12 and 13 show that the execution times for OSD and SHOSD1 A do not depend on the signal to noise ratio E b /N 0 . From Table 12, we can observe that in the case, E b /N 0 is relatively low ( = 1.0 dB ), execution times of SP and OSD1 (or SHOSD1 A ) do not show a remarkable difference (OSD1/SP=SHOSD1 A /SP = 1.27 ). On the other hand, in the case, E b /N 0 is relatively high ( = 2.0 dB ), execution times of OSD1 and SHOSD1 A are approximately three times longer than that of SP. However, in the case Eb/N 0 = 2.0 dB , OSD ratio is only 2.08 %, so about 98 % of instances are sufficient for SP decoding, as we have noted at the beginning of this section, that most of decoding trials end at procedure (3) of decoding algorithm. Thus, even from the viewpoint of the total execution time, OSD-based decodings do not seem to lose their advantage (high precision decoding property) compared with SP decoding even in a relatively high E b /N 0 circumstance. Almost same tendency can be observed in Table 13.

Results and discussion
An effective way to increase the OSD decoding ability was presented. As mentioned regarding the experiments described in Sect. 5, by determining T appropriately, CER can be reduced. In particular the method (C), which is based on mathematical programming,  seems to be effective. However, this method requires a collection of the codewords that have a small Hamming weight as shown in Table 2. Obtaining these tables via only mathematical programming as in method (C)-(I) is a computationally very hard task. Hence, hybrid methods with some heuristic approaches are desirable; see [6,10,12,15].