• 沒有找到結果。

As widely reported in many research documents, decoding LDPC codes by the SPA can result in relatively large BERs at low to moderate SNR in AWGN channels. These relatively

large BERs usually appear in the form of error floor at high SNR, i.e., the BERs descend much slowly or even stop decreasing at high SNR, and this error floor phenomenon is more evident especially for short block length LDPC codes.

From a series of studies, a major failure pattern that causes the error floor phenomenon is the “trapping set [9].” We say that a sub-graph of a Tanner graph is an (a, b) trapping set if it contains a variable nodes and b odd degree neighboring check nodes that are connected to these variable nodes. When these a variable nodes are erroneous while the remaining bits are correct, it can be observed that only these b check nodes can possibly send correct messages to these a variable nodes. Hence, the the trapping sets, in particular with smaller values of a and b, are the dominant error patterns in the error floor region.

Chapter 3

BCH Code Selection and Iterative Decoding for The Concatenated Coding System

In this chapter, a selection method for the outer BCH codes will be proposed.

Specifically, for an LDPC code, it has been known that the error floor is majorly con-tributed by the dominant trapping sets. Our initial idea is therefore that by concatenating a proper outer code, this problem can be alleviated. With this in mind, for the concatenated coding scheme in this thesis, the outer BCH codes are chosen to eliminate those trapping sets and hence improve the BER in the error floor region.

Nevertheless, increasing the error capability of the outer code is usually done at the expense of the code rate. This implies that there is a trade-off between the code rate and the BER performance in such a choice of BCH codes. It then leads to the objective in our design: to improve the BER in the error floor region without much rate loss.

Other than introducing a selection method for the outer BCH codes in Section 3.1, a decision-feedback-aided decoding is presented. In general, iterative decoding between inner and outer codes in a concatenated coding scheme must use soft-decision decoding for both the outer code and the inner code. However, in our system, the outer BCH code is hard-decision

decoded. So in Section 3.2, we propose an iterative decoding algorithm for our concatenated system such that the outer BCH code does not need to be soft-decision decoded. Via this way, the inner decoder and the outer decoder can cooperate with each other to enhance the overall BER performance.

Finally, Section 3.3 introduces more iterative decoding ideas that can be used in our concatenated coding system.

3.1 The Selection of Outer BCH Codes

Since we wish to choose outer BCH codes to eliminate the ill effect of those trapping sets, a search of the dominated trapping sets must be first performed for a given inner QC-LDPC code. The collected (a, b) trapping sets are then classified according to the values of parameters a and b.

The scenario we are concerned with is as follows. Under the premise that the codeword length of the outer BCH code has been determined, and a LDPC code codeword comprises β BCH code codewords, if an (a, b) trapping set with a = t occurs, those t errors might simultaneously fall into a single BCH code block in the worst case. To ensure that such an error pattern can be removed by the BCH code decoder, a t-error correctable BCH code must be chosen. In fact, by this selection, not only the trapping sets with a ≤ t are guaranteed to be cleaned up by the outer BCH code but also part of the trapping sets with a > t can be possible corrected as long as β > 1. Note that if the code rate of the resulting concatenated system is higher than the system requirement, we may further increase the correcting capability of the BCH code for further improvement at the price of decreasing the code rate, i.e., e.g., choosing a (t + 1)-error correctable BCH code.

As a contrast, if the code rate of the resulting system is lower than the desire, we could

increase the codeword length of BCH codes to improve the code rate without much sacrificing the error correcting capability. As such, since the value of β is decreased, the “extra” error correcting capability for the trapping sets with a > t may be degraded.

3.2 Decision Feedback-Aided Iterative Decoding

After selecting proper BCH coders according to the proposed rule in the previous section, simulations are performed and show that our choice does improve the BER in the error floor region. However, a little performance loss can also be observed in the waterfall region due to the rate loss.

To compensate this BER performance degradation in the waterfall region, and also in-spired by the success of iterative decoding, we design an novel iterative decoding strategy for our concatenated coding system: namely, to feedback information from the β algebraic BCH code decoders to the LDPC code decoder.

It is worth mentioning that one can of course employ a soft-decision decoding algorithm for BCH codes and result in an iterative decoding naturally; however, such approach will evidently lose the advantage of the fully developed hardware implementation of algebraic decoders. In order to maintain this hardware superiority of hard-decision BCH decoders, we propose an alternative yet simple solution.

Our proposal relies on a premise that owing to the superior error correcting capability of the inner LDPC code, the noisy received signals are mostly corrected back to its original transmission values after the LDPC code decoding. In addition, by our selection of BCH codes, it is reasonable to expect that most of the residual errors can be removed by the outer BCH code decoders. This implies that the decoding results of BCH codes are very trustworthy. Therefore, our main idea is to feedback these decoding results to the LDPC

code decoder and do the LDPC decoding. This may make the LDPC code decoder re-generating even more reliable outputs, and hence form a positive interaction cycle between the inner and outer decoders.

Some notations that will be used later are introduced first. Let S denote the set of indices in an LDPC codeword of length NLDPC that correspond to those BCH decoder inputs, out of which valid BCH codewords can be obtained by the BCH decoder. Hence, if β out of β BCH decoders output valid BCH codewords (i.e., decode successfully), then the size of S is exactly β · KBCH. Notably, the direct correspondences between the β · KBCH input bits of the BCH encoders and the LDPC codeword are well defined since both the BCH codes and the LDPC code are systematic. Denote by ˆdi the estimate of the ith bit in an LDPC codeword obtained from the previous outer 1 iteration, where 1 ≤ i ≤ NLDPC. With these notations, we are ready to describe the decision feedback-aided iterative decoding for our proposed concatenated coding system.

3.2.1 Decision Feedback-Aided Iterative Decoding between Alge-braic and Bit-Flipping Algorithms

In the first outer iteration of the decision feedback-aided iterative decoding, the LDPC code is decoded by the original bit-flipping algorithm as have been described in Subsection 2.2.1. Starting from the second outer iteration, the decoding procedure of the LDPC code is changed to the following:

Step 0. Initialization: With the availability of S and { ˆdi} obtained from the previous outer iteration, the value of the ith variable node, ˆzi, is obtained from the ith received

1There are two iterations in our decision feedback-aided iterative decoding algorithm. They are the internal iterations of the LDPC decoder and the external iterations between the BCH decoders and the LDPC decoder. For convenience, the former will be referred to as inner iterations, while the latter will be named outer iterations.

value yi via hard-decision as:

Step 1. Bit to Check Message Update: Each variable node sends its value to its neighboring check nodes. Afterwards, each check node calculates whether the parity-check is satisfied or not in terms of the messages obtained from the variable nodes. Set Qj = 1 if the j-th parity-check equation is satisfied; otherwise, set Qj = −1. In other words,

Qj = Y

i∈N (j)

(1 − 2ˆzi) , ∀ 1 ≤ j ≤ M (3.2)

If all Qj = 1, then output ˆz and stop the algorithm.

Step 2. Check to Bit Message Update: Each check node sends its Q-value to its neighboring variable nodes. Set Fi = 1 if all check equations associated to check nodes that are connected to the ith variable node are “not satisfied;” otherwise, set Fi = 0. Flip the value of the variable node if Fi = 1. Specifically,

Fi = Y If ˆz is a valid LDPC codeword or the maximum number of (inner) iterations is reached, output ˆz and stop the algorithm; else go to Step 1.

3.2.2 Decision Feedback-Aided Iterative Decoding between Alge-braic and Sum-Product Algorithms

In the first outer iteration of the decision feedback-aided iterative decoding, the LDPC code is decoded by the original sum-product algorithm as have been described in Subsection

2.2.2. Starting from the second outer iteration, the decoding procedure of the LDPC code extrinsic information passing from check node cj to variable node vi.

Step 1. Bit to Check Message Update: Denote by Li,j the extrinsic information passing from variable node vi to check node cj. Then, assign for 1 ≤ i ≤ NLDPC, and for

Step 3. Codeword Test: Compute the reliability Di of the ith bit as

Di = Ri if i ∈ P ∪ S

P

j∈M(i)Ei,j+ Ri otherwise , (3.8) For 1 ≤ i ≤ NLDPC, obtain the hard-decision result:

ˆ

zi = 1 if Di ≤ 0

0 if Di > 0 (3.9)

If HˆzT = 0, output ˆz as the decoded result and stop the algorithm; else if the maximum number of (inner) iterations is reached, stop the algorithm; else go to Step 1.

3.3 Additional Modifications on Decision Feedback-Aided Iterative Decoding

From simulations, we sense that the outer BCH code decode may feedback incorrect infor-mation to the LDPC code decoder when the error correcting capability of the BCH code is too small. This occurs especially when the BCH code decoder outputs a valid but wrong codeword. In principle, this probability is roughly inversely proportional to the error correct-ing capability of the BCH code. In order to ensure the exactness of the feedback information from the BCH code decoder to the LDPC code decoder, we have experimented three strate-gies that will respectively introduce in the following subsections. In Subsection 3.3.1, an extra single parity-check (SPC) code will be added to the BCH code so as to ensure the exactness of the feedback information to the LDPC code decoder. In Subsection 3.3.2, the condition of the feedback strategy will become stricter. In Subsection 3.3.3, a modification on the outer BCH code will be tested. To ease the referring of the above three modifications, we will respectively call the modifications in Subsections 3.3.1, 3.3.2 and 3.3.3 as Strategy 1, Strategy 2 and Strategy 3.

3.3.1 Strategy 1: Concatenation of SPC, BCH and LDPC Codes

There exists an implicit condition for executing the feedback scheme, i.e., at least one BCH code decoder decodes successfully. Hence, the error correcting capability of the outer BCH code must not be too small; otherwise, the decoded result may still be wrong and another valid BCH codeword is outputted even if the BCH code decoder decodes successfully.

To further secure the exactness of the feedback information, we add an extra single parity-check (SPC) code to double-parity-check the validity of the output BCH codewords. This will only result in a small rate loss, and the additional system complexity is almost minimized.

Figure 3.1: Block diagram of concatenation of the SPC, BCH and LDPC codes.

Consider the new system that comprises β identical (NSPC, KSPC) systematic SPC codes, β identical (NBCH, KBCH) systematic BCH codes and an (NLDPC, KLDPC) systematic LDPC code as shown in Figure 3.1. In this scheme, the number of information bits becomes βKSPC, and NSPC = KSPC + 1. Specifically, the βKSPC bits are first divided to β disjoint groups of size KSPC. Each group is then independently encoded by its corresponding SPC code encoder. This results in β SPC codewords.

The SPC codewords are then fed into the following BCH code encoders, which gener-ate β BCH codewords. Afterwards, the output β BCH codewords are aggreggener-ated as the information bits to the LDPC code encoder, which in turns generate an LDPC codeword of length NLDPC. Similar to what have been stated in Section 2.1, q zeros will be padded to β BCH codewords in order to balance the total number of bits in β BCH codewords and the required number of bits for the LDPC code encoder.

As aforementioned, the SPC code is used to detect the errors that the BCH code decoders make. It can cooperate with either the BFA or the SPA when being applied to the decision feedback-aided iterative decoding. The procedures are basically the same as what we have described in the previous section. In the first outer iteration, the LDPC code decoder produces decoding outputs ˆz of length NLDPC. Based upon this hard-decision sequence ˆz, the BCH decoders then output the estimates ˆd of the information bits of BCH codes by using an algebraic decoding algorithm. Additionally, the results ˆdare double-checked to see whether they form a valid codeword of the SPC code. As a result, the set S is re-defined as the set of indices in an LDPC codeword of length NLDPC that correspond to those SPC decoder inputs, out of which valid SPC codewords and also valid BCH codewords can be obtained. By the re-defined S, the second outer iteration can be performed, following the steps described in Section 3.2.

3.3.2 Strategy 2: Explicit Feedback Condition on the Euclidean Distance

In this subsection, instead of adding an SPC code, we add an explicit condition under which the information bits in S can be feedbacked. Hence, the system structure in Figure 2.1 remains and no rate loss is resulted.

The decoding procedure is modified as follows. In the first outer iteration, the LDPC code decoder generates hard-decision sequence ˆz. Based on this hard-decision sequence ˆ

z, the BCH code decoders then output the estimates ˆd of the information bits of BCH codes by using an algebraic decoding algorithm. We then generate β BCH codewords with respect to the estimated information sequence ˆd. Afterwards, for the ith BCH codeword just generated, where 1 ≤ i ≤ β, we compute the Euclidean distance u(i)BCH between this BCH codeword and the elements in its corresponding positions in channel output y. We also

compute the Euclidean distance u(i)LDPC between ˆz and y by taking into consideration only the elements corresponding to the the respective positions about the ith BCH codeword.

Again, the correspondences between BCH codewords and y are well defined since the LDPC code is systematic. From our simulations, we notice that the portion of the decoded results dˆ that generates the ith BCH codeword is correct with higher probability if u(i)BCH is smaller than u(i)LDPC. Therefore, we redefine the set S as follows: S is the set of indices in an LDPC codeword of length NLDPC that correspond to those BCH decoder inputs, out of which valid BCH codewords can be obtained by the BCH decoder and also its respective u(i)BCH is smaller than u(i)LDPC. By the re-defined S, the second outer iteration can be performed, following the steps described in Section 3.2.

3.3.3 Strategy 3: Shortening the Outer BCH Code

It is obvious that if some of the information bits transmitted are known to the receiver, then the outer iterations can evidently improve the error performances by broadcasting these correct values. Hence, in this subsection, we propose to fix λ information bits as zeros for each BCH coder so that they can serve as the known information bits at the receiver to help improving the error performance.

Consider a concatenated coding scheme that comprises β identical (NBCH, KBCH) system-atic BCH coders and an (NLDPC, KLDPC) systematic LDPC coder as shown in Figure 3.2.

Among the KBCH information bits feeding into each BCH encoder, λ of them are fixed as zeros. Hence, the total number of effective information bits for the entire system is reduced to βKBCH , where KBCH = KBCH− λ. Similar to what have been stated previously, these βKBCH bits are divided into β groups of size KBCH . After appending λ bits of zeros to each group, they are then fed into (NBCH, KBCH) BCH code encoders. This results in β BCH codewords. Afterwards, the β BCH codewords are aggregated as the information bits to the

LDPC code encoder. If necessary, q extra zeros will be appended to these β ·NBCHaggregated bits, where KLDPC = βNBCH+ q. The LDPC code encoder then generates a length-NLDPC

LDPC codeword.

Figure 3.2: Block diagram of concatenated coding system with λ information bits being fixed as zeros.

Note that the q + βλ extra zeros are not transmitted since the values of these bits are prior known at the receiver. Therefore, this strategy will only cause a small rate loss and the new code rate is given by:

βKBCH

NLDPC− βλ − q = βKBCH− βλ NLDPC− βλ − q.

The set P is redefined as those indices corresponding to these βλ + q zeros. Moreover, these

λ zeros can be used to double-check whether the decoding outputs of the BCH decoder are valid BCH codewords or not. Notably, with this setting, a valid BCH codeword must be one, of which the component bits equal zeros in these λ specific positions. The detail of the decision feedback-aided iterative decoding procedure is then the same as that described in Section 3.2.

In comparison with Section 3.1, the strategy just proposed in this subsection increases the correcting capability of the outer BCH codes at a price of a little rate loss. Hence, in our simulations, a little performance loss can be observed at the waterfall region. More simulation results as well as discussions regarding them will be introduced in the next chapter.

Chapter 4

Simulation Results

In this chapter, simulation results are provided to demonstrate the effectiveness of our selec-tion method for BCH codes as well as the proposed iterative decoding algorithm. Specifically, simulation results are summarized in Section 4.1, and discussions on them are given in Sec-tion 4.2.

4.1 System Settings

For all cases, the number of iterations for the inner LDPC decoder is 100. The maximum number of (outer) iterations between the inner and outer decoders is denoted by ξ. The condition to execute the outer iteration is that at least one of the BCH code decoders decodes successfully.

In our simulations, the (6350, 5878) regular QC-LDPC code C1 and (4590, 3835) regular QC-LDPC code C2 [10] are adopted. For C1, the minimum value of a among its dominant trapping sets is 4; hence, we choose the (255, 223, 4) and (511, 475, 4) 4-errors correctable BCH codes as its outer codes. By performing similar trapping set search onto C2, the minimum value of a is again 4; hence, the (255, 223, 4) and (511, 475, 4) BCH code can also be used as the outer codes for C2.

We list the maximum number of outer iterations for each code combination as follows.

• The maximum number of outer iterations for the (255, 223, 4) BCH code and C1 is 5878/255 ≈ 23. As can be seen from our computation, this number is exactly the number of BCH codes concatenated to the LDPC code. Since after each outer iteration, at least one additional BCH code decoder should claim to be successful in decoding, it is clear that at most 23 outer iterations are required to have all BCH code decoders obtaining valid codewords.

• The maximum number of outer iterations for the (511, 475, 4) BCH code and C1 is 5878/511 ≈ 11.

• The maximum number of outer iterations for the (255, 223, 4) BCH code and C2 is 3835/255 ≈ 15.

• The maximum number of outer iterations for the (511, 475, 4) BCH code and C2 is 3835/511 ≈ 7.

Now we illustrate the details of all figures.

1. Figures 4.1-4.4 show the BER performances of feedback decoding introduced in

1. Figures 4.1-4.4 show the BER performances of feedback decoding introduced in

相關文件