• 沒有找到結果。

Decoding Algorithms of LDPC Codes in IEEE 802.16e OFDMA

5.4 Simulation Results and Analysis

5.4.1 Determine the Number of Iterations

One of the most important factors of concern when decoding the received codewords is the iteration number. As the number becomes larger, the correct codewords are more likely to be exactly decoded. But using more iterations, the cost is that the latency is increased.

Therefore we need to choose a proper iteration number in decoding. In Fig. 5.1, we show the simulation results with different iteration numbers, for the LDPC codes at rate 1/2 and length 576 with QPSK modulation and and BP decoding.

In Fig. 5.1, the BER curve of iteration 10 is obviously degenerated by the reason of less iterations. The BER curves are almost the same when the iteration numbers are 20, 30, 50, and 70. To avoid the degradation associated with low iteration numbers, we adopt 50 as the iteration number in the other simulations.

5.4.2 Use of All-Zero Codewords in Simulation

We have described the LDPC code encoder specified in IEEE 802.16e in Section 2.2.2. In Fig. 5.2, we show the simulation results of LDPC code with random data which would be encoded by the LDPC encoder and all zero codeword respectively when code rate 1/2, length 576, QPSK, and BP decoding are adopted. This result depicts that the BER curves almost have no difference when the random data and all zero codeword are transmitted. From the theoretical view, this result can also be expected. This is due to that the LDPC codes are in the class of linear codes. For the sake of simplicity (or faster simulation speed) and without loss of generality, we will take the all zero codeword as the transmitted codeword in the

1 1.5 2 2.5 3 3.5 4

Different Iterations with Rate 1/2, Length 576, QPSK, BP

Iteration 10 Iteration 20 Iteration 30 Iteration 50 Iteration 70

Figure 5.1: Decoding performance at different iteration numbers.

other simulations.

5.4.3 Performance of the IEEE 802.16e LDPC Codes under the BP Algorithm

In this section, we simulate different modulation types, codeword lengths, and code rates specified in IEEE 802.16e standard respectively.

Figure 5.3 depicts the performance of the code at rate 1/2 and length 576, under different modulation schemes with BP decoding with iteration 50. As we expect in advance, the performance of QPSK is better than that of 16QAM and the performance of 16QAM is

1 1.5 2 2.5 3 3.5 4 4.5 5

Comparison of Random Data and All Zero Codeword with Rate 1/2, Length 576, QPSK, BP

Random Data All Zero Codeword

Figure 5.2: Performance of random data versus all-zero codeword.

also better than that of 64QAM. From Fig. 5.3, the coding gain values of QPSK, 16QAM, and 64QAM modulation are 6.6589 dB, 6.6511 dB, and 8.4999 dB respectively when the bit error rate is 10−5. The coding gain values of QPSK and 16QAM modulation are almost the same, but the coding gain of 64QAM modulation is larger than the coding gain of other two modulation types about 1.8 dB.

Figure 5.4 depicts four different codeword lengths, that are 576, 1152, 1728, and 2304 when code rate 1/2, QPSK, and BP decoding with iteration 50 are adopted. We have some observations from Fig. 5.4. First, as the codeword is longer, the improved performance is obtained. Second, for the codeword length 2304, the bit error rate reaches about 10−9 and only Eb/N0 2.5 dB is needed. The coding gain between length 2304 curve and uncoded curve is about 8 dB when the bit error rate is 10−6. This coding gain value somehow depicts the

2 4 6 8 10 12 14 16 18 20

Different Modulation with Rate 1/2, Length 576, and BP

Uncoded QPSK

Figure 5.3: Performance of the rate-1/2 code, length 576 code.

error correcting ability of LDPC codes is really amazing.

Figure 5.5 depicts six different code rate types, that are 12, 23A, 23B, 34A, 34B, and 56 when length 576, QPSK, and BP decoding with iteration 50 are adopted. There are some observations can be obtained from Fig. 5.5. As the code rate is higher, the performance is worse. Besides, we notice that the two BER curves of 23A and23B are very close, but still have some difference. We can explain why this little difference exists from the view of threshold previously obtained by density evolution method. We have obtained some threshold results in Table 2.6. From Table 2.6, the threshold of 23A is larger than that of 23B. Moreover, the difference of threshold for code rate 23A and 23B is only about 0.012 dB. Thus we reasonably anticipate the BER curves are very close, and the curve for 23A is a little better than that of

2

3B. In our simulation, these two curves really follow the threshold analysis. By the similar

1 2 3 4 5 6 7 8 9 10 11 12

Different Length with Rate 1/2, QPSK, and BP

Uncoded QPSK Length 576 Length 1152 Length 1728 Length 2304

Figure 5.4: Performance of the rate-1/2 code at different codeword lengths, under QPSK modulation and BP decoding.

method, we also easily explain the relationship between the two BER curves of 34A and 34B from Table 2.6.

Table 5.2 shows the relation between the N oEb value when BER is 10−5, girth when length is 576, and the threshold for all code rate. As the threshold is larger, we need less channel

Eb

N o to reach BER 10−5.

5.4.4 Performance of Balanced BP Decoding Algorithm

We have described the concept of balanced BP decoding algorithm in Section 5.2.2. We depict the performance of conventional BP decoding and balanced BP decoding in Fig. 5.6

Table 5.2: Relation between N oEb, Girth, and Threshold

Code Rate 12 23A 23B 34A 34B 56

Eb

No under BER 10−5(dB) 2.9691 4.9506 5.1603 5.9819 5.9730 6.9898

Girth under Length 576 6 6 6 4 6 6

Threshold 0.9273 0.7282 0.7163 0.6358 0.6446 0.5607

1 2 3 4 5 6 7 8 9

Different Code Rate with Length 576, QPSK, and BP

Rate 1/2

Figure 5.5: Performance of different code rates at codeword length 576, under QPSK mod-ulation and BP decoding.

when length 576, rate 12, and QPSK are applied. We observe that these two curves with different decoding algorithms are almost the same. Therefore, in our future fixed-point DSP implementation, we can consider balanced BP decoding to reduce the clock cycles.

1 1.5 2 2.5 3 3.5 4 4.5 5 10−6

10−5 10−4 10−3 10−2 10−1 100

Eb/No (dB)

Comparison of Conventional BP and Balanced BP decoding with Rate 1/2, Length 576, QPSK

Conventional Balanced

Figure 5.6: Conventional BP and balanced BP decoding with length 576, rate 1/2 code, and QPSK modulation.

5.4.5 Choose Appropriate Early Termination Parameters

In Section 5.5, we described the concept of early termination. Here we consider the appro-priate parameters for early termination. First we define some parameters. Type 1 early termination means when two consecutive incoming LLR values are over 2 or under −2, then we set the convergence outcome immediately without further iteration. Type 2 early termi-nation means when all incoming LLR values are over 2 or under −2 one time or when two consecutive incoming LLR values are over 1 or under −1, we set the convergence outcome immediately without further iteration. From the complexity view, type 2 early termination is simpler than type 1, but the performance may be an issue. Fig. 5.7 shows some performance

1 1.5 2 2.5 3 3.5 4 4.5 5

Early Termination with Rate 1/2, Length 576, QPSK, BP

BP

BP with Early Type1 BP with Early Type2

Figure 5.7: Effects of differenct ways of early termination.

results for conventional BP decoding, BP decoding with type 1 early termination, and BP decoding with type 2 early termination. The code rate 12, length 576, and QPSK are applied.

From Fig. 5.7, BP decoding with type 1 early termination has a better performance than the one with type 2 early termination at high SNR values. Conventional BP decoding still has the best performance of all three methods. Considering the trade-off between complexity and performance, we adopt the type 1 early termination as the early termination scheme in our next simulation.

We are also interested in the pdf of reduced iteration number for type 1 early termination besides the performance. Fig. 5.8 shows the pdf with lengths 576 and 2304. When Eb/N0 is

0 5 10 15 20 25 30 35 40 45 50

PDF for Different Length and with Early Termination and rate 1/2, QPSK, AWGN, BP

Length 576 when Eb/No 2dB Length 2304 when Eb/No 2dB

Figure 5.8: Distribution of iteration numbers for codes of different lengths.

2 dB, code rate 12 and QPSK are applied. It shows the probability of iteration number 50 is about 0.075 for the pdf of length 576, but the one is almost zero for the pdf of length 2304.

This is perhaps because the performance of length 2304 is better than the one of length 576, it does not need so many iterations to converge. Another effect is that the pdf of length 576 is more concentrated toward left than the one of length 2304. This is perhaps because when doing the early termination technique, we need to conform all 576 bits to the termination criteria for length 576, but for length 2304, we must conform all 2304 bits to the termination criteria. Hence, it is reasonable to do more iterations for length 2304.

Figure 5.9 shows the pdf of code rate 12, length 576, and QPSK under different Eb/N0 values. It shows almost all iteration number is 50 for length 576 when Eb/N0 is 1 dB. But

0 5 10 15 20 25 30 35 40 45 50

PDF for Different Eb/No with Early Termination and Length 576 rate 1/2, QPSK, and BP

Length 576 for Eb/No=1dB Length 576 for Eb/No=2dB Length 576 for Eb/No=3dB

Figure 5.9: Distribution of iteration numbers at different SNR values.

after increasing the Eb/N0 value, the pdf is toward to the left side, this means we need less iterations for larger Eb/N0 values under the same length condition.

5.4.6 Compare Early Termination and Parity Check Termination

Generally, in the decoding iteration step, the decoded codeword checks with the parity check matrix to insure the decoded codeword is correct when the maximum iteration is not reached.

If the syndrome is a zero vector, we stop the iteration to reduce the iteration number. If not, the decoding iteration continues until the maximum iteration is reached. Therefore, we can view the parity check step as a kind of early termination, so we name it “parity check termination”.

In Figure 5.10, we compare the performance difference of early termination and parity

check termination when code rate 12, length 576, QPSK, and BP decoding are applied.

Obviously, from Fig. 5.10 there is almost no difference. But we just want to choose one kind of “early termination” technique to avoid the waste. Then we compare the iteration numbers in Fig. 5.11. As the Eb/N0 is larger, “early termination” needs a slightly higher iteration number than the “parity check termination,” but the early termination technique only needs “compare” operations and some space to store the temporary comparison results unlike parity check termination technique needs XOR operations and “compare” operations.

Therefore, under the consideration of iteration number and computational complexity, we choose the early termination, not the parity check termination to early stop the decoding step.

5.4.7 Performance of Some Reduced-Complexity Decoding Algo-rithms [30]

Figures 5.15, 5.13, and 5.14 show the BER performance of different decoding algorithms for length 576, six code rates and three modulation types. The maximum iteration is 50 and early termination technique is used. Besides, the α parameter in normalized BP-based decoding is 1.25, and the β parameter in offset BP-based decoding is 0.25.

In some sub-figures, the BP-based decoding algorithm suffers a 0.3 or 0.4 dB degradation in performance, compared with BP decoding. When QPSK is applied, the two reduced-complexity algorithms have even a slightly better performance than the BP algorithm. These results are not surprising, because at medium or short code lengths, the BP algorithm is not optimum. This is because the number of short cycles in their Tanner graphs influences the BP decoding performance depended on the amount of correlation between messages, and the two reduced-complexity BP-based algorithms seem to outperform the BP algorithm by reducing the negative effect of correlations. The normalized BP-based algorithm slightly outperforms

1 1.5 2 2.5 3 3.5 4 4.5 5

Comparison of Parity Check and Early Termination with Rate 1/2, Length 576, QPSK, BP

Only Parity Check When Decoding Only Early Termination When Decoding

Figure 5.10: Comparison of the performance of parity check termination and early termina-tion.

the offset BP-based algorithm, but may also be slightly more complex to implement. When 16QAM and 64QAM are applied, the BP approach has slightly better performance than the two improved approaches, but the performance of these three decoding approaches are very close.

Figure 5.15 shows the BER performance of different decoding algorithms for code types of

1

2, 23A, and 34B. Each sub-figure has two different lengths, 576 and 2304, and one modulation type, 16QAM.

For rate 12 and 23A, their girth is 6 for both length 576 and 2304. For rate 34B, its girth

1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 0

5 10 15 20 25 30 35 40 45 50

Eb/No (dB)

Iteration

Using Different Methods to Stop Iterate

Parity Check Termination Early Termination

Figure 5.11: Comparison of the iteration numbers of parity check termination and early termination.

is 6 and 4 for length 576 and 2304 respectively. From Fig. 5.15, the performance of these two improved decoding does not always have better performance than BP decoding by the reason of girth 4 or 6 for length 576 and 2304. But their performance is still very close.

1 1.5 2 2.5 3 3.5 4 4.5 5

Different Decoding Algorithms with Rate 1/2, Length 576, QPSK BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

4 5 6 7 8 9

Different Decoding Algorithms with Rate 1/2, Length 576, 16QAM

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

6 7 8 9 10 11

Different Decoding Algorithms with Rate 1/2, Length 576, 64QAM

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

1 2 3 4 5 6 7

Different Decoding Algorithms with Rate 2/3A, Length 576, QPSK

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

6 7 8 9 10 11

Different Decoding Algorithms with Rate 2/3A, Length 576, 16QAM

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

9 9.5 10 10.5 11 11.5 12 12.5 13

Different Decoding Algorithms with Rate 2/3A, Length 576, 64QAM

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

Figure 5.12: Performance of different decoding algorithms with rate 12 and 23A, length 576.

1 2 3 4 5 6 7

Different Decoding Algorithms with Rate 2/3B, Length 576, QPSK

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

6 7 8 9 10 11

Different Decoding Algorithms with Rate 2/3B, Length 576, 16QAM

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

9 9.5 10 10.5 11 11.5 12 12.5 13

Different Decoding Algorithms with Rate 2/3B, Length 576, 64QAM

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

1 2 3 4 5 6 7 8 9

Different Decoding Algorithms with Rate 3/4A, Length 576, QPSK

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

6 7 8 9 10 11 12 13

Different Decoding Algorithms with Rate 3/4A, Length 576, 16QAM

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

9 10 11 12 13 14 15 16

Different Decoding Algorithms with Rate 3/4A, Length 576, 64QAM

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

Figure 5.13: Performance of different decoding algorithms with rate 23B and 34A, length 576.

1 2 3 4 5 6 7 8

Different Decoding Algorithms with Rate 3/4B, Length 576, QPSK

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

6 7 8 9 10 11 12 13

Different Decoding Algorithms with Rate 3/4B, Length 576, 16QAM

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

9 10 11 12 13 14 15 16

Different Decoding Algorithms with Rate 3/4B, Length 576, 64QAM

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

4 5 6 7 8 9

Different Decoding Algorithms with Rate 5/6, Length 576, QPSK

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

7 8 9 10 11 12 13 14

Different Decoding Algorithms with Rate 5/6, Length 576, 16QAM

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

11 12 13 14 15 16

Different Decoding Algorithms with Rate 5/6, Length 576, 64QAM

BP Decoding Min−Sum Decoding

Normalized BP−Based Decoding with α 1.125 Offset BP−Based Decoding with β 0.125

Figure 5.14: Performance of different decoding algorithms with rate 34B and 56, length 576.

4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9

Different Decoding Algorithms with Rate 1/2, Length 576 and 2304, 16QAM

BP Decoding, Length 576 Min−Sum Decoding, Length 576

Normalized BP−Based Decoding, Length 576 with α 1.125 Offset BP−Based Decoding, Length 576 with β 0.125 BP Decoding, Length 2304

Min−Sum Decoding, Length 2304

Normalized BP−Based Decoding, Length 2304 with α 1.125 Offset BP−Based Decoding, Length 2304 with β 0.125

4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9

Different Decoding Algorithms with Rate 2/3A, Length 576 and 2304, 16QAM

BP Decoding, Length 576 Min−Sum Decoding, Length 576

Normalized BP−Based Decoding, Length 576 with α 1.125 Offset BP−Based Decoding, Length 576 with β 0.125 BP Decoding, Length 2304

Min−Sum Decoding, Length 2304

Normalized BP−Based Decoding, Length 2304 with α 1.125 Offset BP−Based Decoding, Length 2304 with β 0.125

4 6 8 10 12 14 16

Different Decoding Algorithms with Rate 3/4B, Length 576 and 2304, 16QAM

BP Decoding, Length 576 Min−Sum Decoding, Length 576

Normalized BP−Based Decoding, Length 576 with α 1.125 Offset BP−Based Decoding, Length 576 with β 0.125 BP Decoding, Length 2304

Min−Sum Decoding, Length 2304

Normalized BP−Based Decoding, Length 2304 with α 1.125 Offset BP−Based Decoding, Length 2304 with β 0.125

Figure 5.15: Performance of different decoding algorithms with rate 12, 23A, and 34B.

Chapter 6

相關文件