Lowered-Complexity Soft Decoding of Generalized LDPC Codes over

0 downloads 0 Views 426KB Size Report
Low Density Parity Check (GLDPC) codes with BCH constituent ... by many methods such as Message- Passing (MP) algorithm which is ... decoders are passed to the MP decoder operating on the ... Honary applied G-LDPC with Hamming codes using Chase- ... algorithm with HDD bit-flipping decoding performed on the.
Lowered-Complexity Soft Decoding of Generalized LDPC Codes over AWGN Channels 6herif I. Elsanadily

Ashraf M.Mahran

Osama M. Elghandour

Department of Communications and Electronics Faculty of engineering, Helwan university Cairo,Egypt

Department of Communications and Avionics Military Technical College Cairo,Egypt

Department of Communications and Electronics Faculty of engineering, Helwan university Cairo,Egypt

Email: sherif [email protected]

Email: [email protected]

Email: [email protected]

Due to high complexity of decoding some linear block codes, the subcodes of G-LDPC are limited to simple ones. GLDPC codes were investigated in [4] where Hamming codes were proposed as component codes and soft-input soft-output (SISO) decoders at the check nodes were studied. In [5], Honary applied G-LDPC with Hamming codes using Chasealgorithm under AWGN channel and also considered the same code under BSC channel employing the weighted bit-flipping voting method in [6].

Abstract - This paper presents a lowered complexity version of a reliability-based iterative decoding algorithm for Generalized Low Density Parity Check (GLDPC) codes with BCH constituent codes using Soft-Input Soft-Output (SISO) Chase-II algorithm. Applied to Gallager-based global LDPC code, it shows that the proposed algorithm, when employed on GLDPC with the multierror correction BCH subcodes, reduces the complexity of the conventional Soft-Decision Decoding (SDD) with Chase algorithm at a cost of slight degradation in the error performance. The approach is built on eliminating the employment of the Chase SISO decoder at the Generalized Check Nodes (GCNs) where the expected number of errors is within the correction capability of the Hard-Decision Decoder (HDD). As a case study, the decoder is considered under AWGN channel and Simulation results are presented showing the complexity and performance of the conventional and proposed algorithms.

Afterwards, Boutros in [7] investigated GLDPC codes with Bose-Chaudhuri-Hocquenghem (BCH) subcodes under AWGN channel but with ML decoding. In [8], a MP algorithm with HDD bit-flipping decoding performed on the BCH and Reed Solomon (RS) subcodes was utilized over BEC channel. In addition, iterative decoding of GLDPC codes over a binary symmetric channel (BSC) was considered in [9]. Djordjevic in [10,11] studied also the GLDPC with BCH and RS codes for use in optical communication systems.

Index terms - Iterative decoding, APP decoding, Hamming codes, Chase algorithm, low-density parity-check codes

The multi-error correcting BCH subcodes achieve higher performance; however it exposes higher complexity especially in two cases; first, when they are used with SISO Chase decoders for decoding such large codes like GLDPC; Second, when they are required to be applied in optical communication high-speed environments.

I. INTRODUCTION In the last two decades, the low-density parity-check (LDPC) [ 1] code has attracted researchers’ attention intensively and is proven to outperform turbo codes [2] for large block lengths. A LDPC code is defined as the null space of a sparse binary M × N matrix H with N variable nodes and M single parity check (SPC) check nodes, where the matrix H is the graph adjacency matrix. The LDPC code can be decoded by many methods such as Message- Passing (MP) algorithm which is the most famous and effective one.

A modified algorithm is proposed to lower the complexity of the conventional GLDPC SDD decoder which is based on Chase-II algorithm. It tends to employ the Chase SD decoders as minimum as possible to speed up the decoding process as a suitable method for use in the optical systems. The proposed algorithm is different from a previous approach by [12] to lower the complexity of Turbo Product code (TPC) with multiple-error correction BCH subcodes. it was employing the Chase decoder at every row or column input sequence in the product code and trying to reduce the number of HDDs of the test patterns already originated in the Chase decoder. The proposed algorithm will benefit from this process for further reduction in the overall decoding complexity.

By Tanner in [3], extending the sparse matrix construction of the conventional LDPC code produces a generalized code where SPC codes on the check nodes are replaced with errorcorrecting block codes, called as subcodes, component codes or constituent codes.

The remainder of this paper is organized as follows. In Section II, we introduce first the structure of the GLDPC code with binary BCH component codes. In Section III, we present a full description of the Chase decoding procedure. In Section IV, the proposed algorithm is presented. In section V, the simulation results are given. Finally, we conclude the paper in section VI.

Using powerful decoders at these Genralized Check Nodes (GCNs) operating in parallel, G-LDPC coding schemes can be constructed and better performance than LDPC can be obtained. Decisions obtained by the parallel check node decoders are passed to the MP decoder operating on the bipartite graph of the global LDPC code.

‹,(((



resultant matrix has a full rank. The column weight j is chosen in this paper to be 2 to obtain the largest overall code rate. GLDPC matrix with (7,4,3) BCH as subcode is shown as a simple example in Fig. 1.

II. CONSTRUCTION OF GLDPC CODES Tanner generalized LDPC codes in [3] by allowing all variable (symbol) nodes of the LDPC graph that are connected to a check node to be a specified word of a block code rather than satisfying a single parity check (SPC). Therefore, we can define the graph of a GLDPC code with the same adjacency matrix H of a LDPC code, but with a different interpretation of the check nodes as illustrated in the example of GLDPC with (7,4,3) BCH constituent code in Fig. 1.

Fig. 1.

III. THE SISO CHASE DECODER AT GCN The presented decoding algorithm of Generalized LDPC is the suboptimum MP algorithm with the Chase-2 algorithm [14] employed as APP decoding on the generalized check nodes. Our method will use the extended double-error BCH as a subcode due to its high error correcting capability and therefore a better performance will be obtained. For simplicity, all generalized check nodes are represented with the same eBCH code of parameters (n,k,d). First, Let us consider transmitting a binary codeword of length N of (N,j,n) GLDPC code On a Gaussian channel using binary symbols {+1,-1}. The observed vector at the receiver denoted ܴ and given by ܴ ൌ ܺ ൅ ‫ ܩ‬where ܺ is the modulated vector of ܰ symbols and ‫ ܩ‬is the vector of ܰ channel noise samples.

graph of (N,2,7) GLDPC code

The new parity check matrix of this generalized code as depicted in Fig. 2 can be constructed as following: In every row of H , each “ 1” is replaced with a column from the parity check matrix of the block code (subcode) at the check node and each zero is replaced with a zero column vector. As proved by Tanner, random assignment of columns of the subcode parity check matrix to the positions of variable nodes can produce good codes with better minimum distance.

The received codeword includes varieties of component codewords located at positions according to the code graph where every GCN connected to n symbol nodes forming a specified word of the (n,k,d) eBCH code. At any GCN ܽ, the input to the Chase decoder is ܴ௔ ൌ ሼ‫ݎ‬ଵ ǡ ǥ ǡ ‫ݎ‬௜ ǡ Ǥ Ǥ ǡ ‫ݎ‬௡ } corresponding to the transmitted vector ܺ௔ ൌ ሼ‫ݔ‬ଵ ǡ ǥ ǡ ‫ݔ‬௜ ǡ Ǥ Ǥ ǡ ‫ݔ‬௡ } and its hard demodulated values ܻ௔ ൌ ሼ‫ݕ‬ଵ ǡ ǥ ǡ ‫ݕ‬௜ ǡ Ǥ Ǥ ǡ ‫ݕ‬௡ }. Second, a set of codewords is chosen as followed by Chase to be the most probable ones that contain the transmitted codeword with the least number of errors. That can be achieved by exploiting the reliability information and inverting all possible combinations of the p=ቔ݀ൗʹቕ demodulated symbols with the least reliable positions (LRPs). The reliability information is defined in [15] in the loglikelihood ratio (LLR) of decision ‫ݕ‬௜ as ୔୰ሼ௫ ୀାଵȀ௥ ሽ



Ȧሺ‫ݕ‬௜ ሻ ൌ ސ ቀ୔୰ሼ௫೔ ୀିଵȀ௥೔ ሽቁ ൌ ቀఙమቁ ‫ݎ‬௜ ೔

Fig. 2.



(1)

A set Z of error patterns with all possible errors confined to p LRPs positions of Y is used to modify Y yielding list of test patterns ܶ ௤ (q‫ א‬ሼͳǡ Ǥ Ǥ ǡ ʹ௣ ሽǡ ܶ ௤ ൌ ܼ ௤ ൅ ܻ). Then every ܶ ௤ in the list is decoded using algebraic (Berlekamp-Massey) decoder [16] and the valid decoded codeword ‫ ܥ‬௤ is stored in a list ȳ as a candidate codeword.

Parity check matrix of GLDPC code with random assignment

Starting with a M x N parity check matrix H of a regular LDPC code with column weight J and row weight n, the n nonzero column positions will be randomly assigned to obtain obtain a M ( n — k) x N parity check matrix ‫ீܪ‬௅஽௉஼ . To simplify the construction as followed by Gallager [13], the parity matrix H of the (N,j,n) GLD code is partitioned into j separate submatrices where each one with weight one in every column. The symbol nodes are indexed b ‫ א‬ሼͳǡ Ǥ Ǥ ǡ ܰሽ and the generalized check node a ‫ א‬ሼͳǡ Ǥ Ǥ ǡ ‫ܯ‬ሽǤ The obtained code has ሺ௡ି௞ሻ௝ overall rate ൒ ͳ െ and equality is achieved if the ௡

Decision codeword ‫ܦ‬௔ ൌ ሼ݀ଵ ǡ ǥ ǡ ݀௜ ǡ Ǥ Ǥ ǡ ݀௡ } should be chosen from this list as it is obtained using the rule [17] ‫ܦ‬௔ ൌ ‫ ܥ‬௤ if ȁܴ௔ െ ‫ ܥ‬௤ ȁଶ ൑ ȁܴ௔ െ ‫ ܥ‬௟ ȁଶ for every ߡ ‫ א‬ȳ

(2)

Now, the output soft value of every decoded symbol of the subcode should be calculated to be sent back on the connected edges to the GLDPC symbol nodes as followed by the MP algorithm in an iterative method to obtain a final decision after



TABLE I THE ACTIONS OF PROPOSED ALGORITHM

Syndrome of demodulated vector ܵ௔ ൌ ܻ௔ Ǥ ‫ܪ‬௕௖௛

Number of contained errors (e)

Action taken ( method of estimating the decision ‫ܦ‬௔)

Calculation model of extrinsic information ᇱ ‫ݎ‬௔ǡ௜

ܵ௔ଵ ൌ ܵ௔ଷ ൌ Ͳ

0

Nothing (The demodulated vector is the decision codeword)

ᇱ ‫ݎ‬௔ǡ௜ ൌ ߚᇱ ‫݀ݔ‬௜

ܵ௔ଵ ൌ Ͳǡ ܵ௔ଷ ് Ͳ

>2

Apply TP-reduced Chase algorithm [12]

Pyndiah model [15]

ሺܵ௔ଵ ሻଷ ْ ܵ௔ଷ ൌ Ͳ

1

Apply HDD (Berlekamp-Massey algorithm)

ᇱ ‫ݎ‬௔ǡ௜ ൌ ߚᇱ ‫݀ݔ‬௜

else

2

Apply HDD (Berlekamp-Massey algorithm)

ᇱ ൌ ߚᇱ ‫݀ݔ‬௜ ‫ݎ‬௔ǡ௜

certain number of iterations or a syndrome condition should be satisfied.

IV.THE PROPOSED ALGORITHM The Chase-II-based SISO decoder at any given GCN ܽ ,as illustrated before, generates ʹ௣ test patterns based on perturbing the ‫ ݌‬LRPs in the demodulated vector of length n. therefore ʹ௣ HDDs should be employed to get the decision codeword. The proposed approach will calculate first the syndromes of the demodulated vector ܻ௔ (without the extended parity bit inserted in the beginning of the sequence).

Two codewords ‫ ܥ‬ାଵሺ௜ሻ and ‫ି ܥ‬ଵሺ௜ሻ from two sets of ȍ with minimum Euclidean distance from R are to be determined to calculate the reliability of decision at the output of the softinput decoder [15]. The decision ‫ܦ‬௔ is one of them and the second one ‫ܤ‬௔ ൌ ሼܾଵ ǡ ǥ ǡ ܾ௜ ǡ Ǥ Ǥ ǡ ܾ௡} called as competing codeword of D with ܾ௜ ് ݀௜ should be found. The soft outputs are generated in the LLR domain outgoing from GCN ܽ using the following approximation formula

ᇱ ‫ݎ‬௔ǡ௜ ൌቀ

ȁோೌ ି஻ೌ ȁమ ିȁோೌ ି஽ೌ ȁమ ସ

ቁ ݀௜

For extended BCH2 (double-error correction), the algorithm computes two syndromes ܵ௔ଵ and ܵ௔ଷ as following: ܵ௔ଵ ൌ ‫ݕ‬௔ଶ  ْ ‫ݕ‬௔ଷ ‫ ْ ݔ‬ǥ Ǥ Ǥْ ‫ݕ‬௔ǡ௡ିଵ௫ ೙షయ ْ ‫ݕ‬௔ǡ௡ ‫ ݔ‬௡ିଶ ȁ௫ୀఈ ,

(3)

ܵ௔ଷ ൌ ‫ݕ‬௔ଶ ْ ‫ݕ‬௔ଷ ‫ ْ ݔ‬ǥ Ǥ Ǥْ ‫ݕ‬௔ǡ௡ିଵ௫ ೙షయ ْ ‫ݕ‬௔ǡ௡ ‫ ݔ‬௡ିଶ ȁ௫ୀఈయ (6) If the competing codeword ‫ܤ‬௔ is not found, the following alternative and efficient formula [17] is used

Where ɲ is the primitive element of GF(ʹ௠ ሻ that

generates the BCH code polynomial. ᇱ ‫ݎ‬௔ǡ௜

ൌ ߚ‫݀ݔ‬௜ ‫ ߚ݄ݐ݅ݓ‬൒ Ͳ

(4)

According to the values of the syndromes as illustrated in Table I , the algorithm estimates the number of errors contained in the sequence.

where ߚ is a reliability factor. With taking into account the difference in the standard deviation of the samples at the input and output of the SISO decoder in the decoding steps, a scaling factor, ߙǡ preferred to be put for faster convergence rate as follows ܹሺ‫ ݐ‬൅ ͳሻ ൌ ܴ ൅ ߙሺ‫ݐ‬ሻܹሺ‫ݐ‬ሻ

If the number of errors is zero (e = 0), it is highly probable that the demodulated vector is the valid transmitted codeword and no need for any decoding operations. If Ͳ ൏ ݁ ൑ ʹ, the algorithm may depend on the HDD (Berlekamp-Massey algorithm) and the decoding output is the decision. In these two previous conditions, the out soft values can be estimated as a case of high probability that the decision is correct as following:

(5)

ᇱ ‫ݎ‬௔ǡ௜ ൌ ߚᇱ ‫݀ݔ‬௜

ƍ ‫ݎ‬௔ǡ௜

By subtracting the soft input ‫ݎ‬௔ǡ௜ from the soft output for each ݅ ‫ א‬ሼͳǡʹǡ Ǥ Ǥ ǡ ݊ሽܽ‫ܽܰܥܩݐ‬, the extrinsic information during the ‫ ݐ‬െ ‫ ݄ݐ‬iteration ,ܹሺ‫ݐ‬ሻ , is obtained. It is then multiplied by the scaling factor, ߙሺ‫ݐ‬ሻ, added to the channel observed values ܴ and the result is considered as a priori information for the decoder at the next ሺ‫ ݐ‬൅ ͳሻ-iteration.

(7)



With ߚ is chosen to be evolved with the decoding iterations, ߚᇱ ሺ‫ݐ‬ሻ ൌ ሾͲǤͶǡͲǤ͸ǡͲǤͺǡͳǡͳǡͳǡ Ǥ Ǥ ሿ If ݁ ൐ ʹ, the Chase algorithm is needed to extract a decision codeword but will not decode a complete list of ʹ௣ test patterns (TPs). The proposed algorithm in this case will benefit from the lowered-complexity TP-reduced algorithm in [12]. For more elaboration, The Lowered-complexity soft decoding algorithm is described in Table II.



decoder. It is shown that a considerable reduction occur especially after EbNo=2dB.

TABLE II PSEUDOCODE OF LOWERED-C OMPLEXITY SOFT DECODING ALGORITHM

--------------------------------------------------------------------------Lowered-complexity soft decoding Algorithm: Initialize the input soft values to SISO decoder at each GCN node a ( ሺ଴ሻ ܴ௔ і ܴ௔ ) Initialize iteration ‫ݐ‬і 0 Repeat iteration (‫ ݐ‬ାା ) // horizontal process - Each GCN node a concurrently executes the following code (SISO decoding): - Perform BPSK demodulating over the soft-valued sequence ሺ௧ିଵሻ ሺ௧ሻ ܴ௔ and outputs the hard demodulated vector ܻ௔ ଵ ଷ - Compute the syndromes ܵ௔ and ܵ௔ of the demodulated ሺ௧ሻ word ܻ௔ according to the equation (6) ଵ If ܵ௔ ൌ ܵ௔ଷ =0 then: ሺ௧ሻ - Set ܻ௔ as the decision word ‫ܦ‬௔ ᇱ - Compute the output soft values ‫ݎ‬௔ǡ௜ ǡ ݅ ൌ ͳǡʹǡ Ǥ Ǥ ǡ ݊ according to equation (7) Else if ܵ௔ଵ ൌ Ͳǡ ܵ௔ଷ ് Ͳ then: ሺ௧ିଵሻ - Determine the ‫ ݌‬LRPs in the input soft vector ܴ௔ ሺ௧ሻ - Construct a set of ʹ௣ test sequences from ܻ௔ (Chase-II algorithm) - Apply the TP-reduced Chase algorithm [12] Else: - Apply HDD with Berlekamp-Massey algorithm and the decoded word is considered as the decision ‫ܦ‬௔ ᇱ - Compute the output soft values ‫ݎ‬௔ǡ௜ ǡ ݅ ൌ ͳǡʹǡ Ǥ Ǥ ǡ ݊ according to equation (7) End if

Fig. 4 and Fig. 5 illustrate the error performance of the conventional and proposed algorithms with using ‫= ݌‬3 and 4 respectively. The simulations are done with code lengths N=2048 and 4096. It is noted that there is a slight degradation in the performance of the proposed decoder as a result of reducing the check operations performed by the conventional Chase algorithm; however, it is only observed in the low-SNR region. Better performance is obtained with increasing the code length of GLDPC.

// vertical process - Perform normal MP algorithm at each VN node b - Send the soft values to the connected GCNs ሺ௧ሻ

Fig. 3. Performance of GLDPC with (64,51) ext-BCH subcodes (‫= ݌‬3)

ሺ௧ሻ

- Compute the final estimate ‫ݎ‬௕ ǡ ܾ ൌ ͳǡʹǡ Ǥ Ǥ ǡ ܰ as ‫ݎ‬௕ ൌ ሺ଴ሻ ሺ௧ሻ ‫ݎ‬௕ ൅ σ ‫ݎ‬௕ǡ௜ ǡ ݅ ൌ ͳǡʹ (column weight j=2) - Compute the hard decision on each bit ‫ݒ‬ො௕ according to the sign of ሺ௧ሻ the final estimate ‫ݎ‬௕ Until overall syndrome satisfied (ܸ෠ Ǥ ‫ ் ܪ‬ൌ Ͳ) or ‫ ݐ‬ൌ ‫ݐ‬௠௔௫ . (max. num. of iterations)

--------------------------------------------------------------------------V. SIMULATION RESULTS The GLDPC codes simulated here by Matlab are constructed based on Gallager representation (construction1B) [13] with (64,51) eBCH subcode chosen with double-error correction capability to exploit the multiple calculated syndroms, while keeping a moderate code rate (ܴ ؆ ͲǤ͸). Therefore, for keeping this rate, only GLDPC codes with column weight (j=2) are considered. Fig. 4. Performance of GLDPC with (64,51) ext-BCH subcodes (‫= ݌‬4)

The computational complexity of the proposed algorithm is estimated by the number of Hard Decision Decoding processes (Berlekamp Massey algorithm) employed at GCNs. As shown in Fig. 3, the number of HDDs in the proposed decoder is calculated for two numbers of LRPs (‫= ݌‬3,‫= ݌‬4) and up to 5 iterations (Im=5). For clarification, the number of HDDs is normalized to the one of the conventional Chase



[11] Djordjevic, L. Xu, T. Wang, "Multidimensional turbo product and generalized LDPC codes with component RS codes suitable for use in beyond 100 Gb/s optical transmission", Proc. 9th Int. Conf. TELSIKS, pp. 402-405, 2009 [12] G. T. Chen, L. Cao, L. Yu, and C. W. Chen, “Test-pattern-reduced decoding for turbo product codes with multi-error-correcting eBCH codes,” IEEE Trans. Commun., vol. 57, no. 2, pp. 307–310, Feb. 2009. [13] R. G. Gallager, Low-Density Parity-Check Codes. Cambridge, MA: M.I.T. Press, 1963. [14] D. Chase, “A class of algorithms for decoding block codes with channel measurement information,” IEEE Trans. Inform. Theory, vol. IT-18, pp. 170–179, Jan. 1972. [15] R. M. Pyndiah, “Near-optimum decoding of product codes: Block turbo codes,” IEEE Trans. Commun., vol. 47, pp. 1003–1010, Aug. 1998. [16] J. L. Massey, “Shift-register synthesis and BCH decoding,” IEEE Trans. Inform. Theory, vol. IT-15, pp. 122–127, Jan. 1969 [17] R. Pyndiah, A. Glavieux, A. Picart, and S. Jacq, “Near optimum decoding of products codes,” in Proc. IEEE GLOBECOM’94 Conf., vol. 1/3, San Francisco, CA, Nov.–Dec. 1994, pp. 339–343. Fig. 5. Comparison of computational complexity of proposed and conventional SISO decoding algorithms for decoding (64,51)-eBCH-based GLDPC codes with length N=4096 for various values of ‫ ݌‬and Im

VI. CONCLUSION An adaptive soft decision decoding for eBCH-based GLDPC is proposed. The results lead to a considerable reduction in the SISO decoding operations performed at GCNs compared to conventional Chase SISO decoders with little losses in the error performance. This scheme can be used in low error-rate applications such as optical communications systems. It can be used with a high code rate in real time applications if multi-core high speed processors are provided to overcome any decoding latency.

REFERENCES [1]

D. J. C. MacKay and R. M. Neal, “Near Shannon limit performance of low density parity check codes,” Electron. Lett. vol.32, pp. 1645-1646, 1996. [2] Berrou, C., Glavieux, A.: ‘Near optimum error correcting coding and decoding: turbo-codes’, IEEE Trans. Commun., 1996, 44, pp. 1261–1271 [3] Tanner, M.: ‘A recursive approach to low complexity codes’, IEEE Trans. Inf. Theory, 1981, IT-27, pp. 533–547 [4] Lentmaier, M., Zigangirov, K.S.: ‘On generalized low-density paritycheck codes based on Hamming component codes’, IEEE Commun. Lett., 1999, 3, (8), pp. 248–250 [5] S. Hirst and B. Honary, “Application of Efficient Chase Algorithm in Decoding of Generalized Low-Density Parity-Check Codes,” IEEE Commun. Lett., vol. 6. No 9, pp. 385-387, Sep. 2002. [6] S. Hirst and B. Honary, “Decoding of generalized low-density parity check codes using weighted bit-flip voting,” IEE Proc.Commun.. vol. 149. issue 9, pp. 1-5, Feb. 2002. [7] J. Boutros, O. Pothier and G. Zemor, “Generalized low density (Tanner) codes,” Proceedings ICC ’99. vol. 1, no. 9, June 1999, pp. 441-445. [8] Mladinovic, N., Fossorier, M.P.C.: ‘Generalized LDPC codes with reedsolomon and BCH codes as component codes for binary channels’ (Globecom, 2005) [9] Mladinovic, N., Fossorier, M.P.C.: ‘Generalized LDPC codes and generalized stopping sets’, IEEE Trans. Commun., 56, pp. 201– 212, 2008. [10] Djordjevic, O. Milenkovic, and B. Vasic, "Generalized LowDensity Parity-Check Codes for Optical Communication Systems," Lightwave Technology, vol. 23, no. 5, pp. 1939-1946, 2005



Suggest Documents