Open Access

Improved progressive edge-growth algorithm for fast encodable LDPC codes

EURASIP Journal on Wireless Communications and Networking20122012:178

https://doi.org/10.1186/1687-1499-2012-178

Received: 14 May 2011

Accepted: 21 May 2012

Published: 21 May 2012

Abstract

The progressive edge-growth (PEG) algorithm is known to construct low-density parity-check (LDPC) codes at finite code lengths with large girths by establishing edges between symbol and check nodes in an edge-by-edge manner. The linear-encoding PEG (LPEG) algorithm, a simple variation of the PEG algorithm, can be applied to generate linear time encodable LDPC codes whose m parity bits p1, p2, ..., p m are computed recursively in m steps. In this article, we propose modifications of the LPEG algorithm to construct LDPC codes whose number of encoding steps is independent of the code length. The maximum degree of the symbol nodes in the Tanner graph is denoted by d s max ; The m parity bits of the proposed LDPC codes are divided into d s max subgroups and can be computed in only d s max steps. Since d s max m , the number of encoding steps can be significantly reduced. It has also been proved that the PEG codes and the codes proposed in this article have similar lower bound on girth. Simulation results showed that the proposed codes perform very well over the AWGN channel with an iterative decoding.

1 Introduction

Low-density parity-check (LDPC) codes, which were first proposed in the early 1960's [1] and re-discovered in 1996 [2], have recently attracted much attention due to their capacity-approaching performance and low decoding complexity. Since their re-discovery, there are many methods such as the message-passing decoding and the linear program decoding [3, 4] that have been proposed for the decoding algorithm. Also many other methods have been proposed for the construction algorithm [58]. Among the existing methods, the most successful approach for the construction of LDPC codes is the progressive-edge-growth (PEG) algorithm [5, 6]. The PEG construction builds up a Tanner graph, equivalent to a parity-check matrix, for an LDPC code in an edge-by-edge manner and maximizes the local girth at symbol nodes in a greedy algorithm. It is simple and flexible in that it can be applied in constructing codes of arbitrary length and rate. In addition, the PEG algorithm can be modified to construct linear time encodable LDPC codes. In this article, this modified algorithm is referred to as linear-encoding PEG (LPEG) algorithm. Initially, the parity-check matrix was used in decoding process for LDPC codes. But it can also be used for the encoding of LDPC codes [9]. LDPC codes with m parity bits constructed by the LPEG algorithm can be encoded with the parity-check matrix in m recursive steps [6]. Therefore, for a given code rate R, the number of encoding steps of LPEG codes grows linearly with the code length n = m/(1-R).

The objective of this article is to reduce the number of encoding steps of the LPEG codes with negligible performance loss. To reduce the number of encoding steps, we modified the LPEG algorithm to obtain two new algorithms which are referred to as fast-encoding PEG (FPEG) algorithm and modified FPEG (MFPEG) algorithm, respectively. d s max is used to denote the maximum degree of symbol nodes. The number of encoding steps of the FPEG codes grows linearly with d s max , but not the code length n. The number of encoding steps of the MFPEG codes grows linearly with ( d s max + m d s max - 1 ) . Since d s max is much smaller than m, the number of encoding steps of FPEG codes or MFEPG codes is lower than that of the LPEG codes. Moreover, to ensure that there is negligible performance loss, we proved that the PEG codes and our codes had similar lower bound on girth. This was confirmed by providing examples of the proposed codes and comparing their performance with that of the multiple serially concatenated multiple parity-check (M-SC-MPC) code, which is a class of LDPC codes of efficient encoding [10].

The remainder of this article is organized as follows. Section 2 reviews the PEG algorithm and the LPEG algorithm. Section 3 proposes the FPEG algorithm and the MFPEG algorithm. A lower bound on the girth of the FPEG algorithm is also derived in this section. Section 4 presents two examples of FPEG codes and MFPEG codes and demonstrates their performances. Finally, Section 5 concludes the article.

2 Preliminary

2.1 Progressive edge-growth algorithm

An LDPC code is a linear block code defined by a sparse parity-check matrix H having dimension m × n. A bipartite graph with m check nodes in one class and n symbol nodes in the other can be created using H as the integer-valued incidence matrix for the two classes. Such a graph is also called a Tanner graph [11]. Let V c = {c0, c1, ..., c m - 1} denote the set of check nodes and V s = {s0, s1, ..., s n- 1} denote the set of symbol nodes. E is the set of edges such that E V c × V s , with edge (c i , s j ) E if and only if h i,j ≠ 0, where h i,j denotes the entry of H at the i th row and j th column, 0 ≤ im - 1, 0 ≤ jn - 1. The PEG algorithm for constructing a Tanner graph with n symbol nodes and m check nodes is described in Algorithm 1. In this algorithm, both symbol nodes and check nodes are ordered according to their degrees in a nondecreasing order. d s j is the degree of symbol node s j , N s j l , and N ̄ s j l denote the set of all check nodes reached by a tree spreading from symbol node s j with in depth l, and its complement, respectively [6]. It was proved that [4] the PEG algorithm constructs Tanner graphs having a large girth and the lower bound on the girth was proved to be

Algorithm 1. PEG algorithm

1:   for j = 0 to n - 1 do

2:      for k = 0 to d s j - 1 do

3:         if k = 0 then

             E s j 0 ← edge (c i , s j ), where E s j 0 is the first edge incident to s j and c i is a check node such that it has the lowest check-node degree under the current graph setting E s 0 E s 1 E s j - 1 .

4:         else

               expand a subgraph from s j up to depth l under the current graph setting such that the cardinality of N s j l stops increasing but is less than m, or N ̄ s j l + 1 but N ̄ s j l + 1 , then E s j k edge ( c i , s j ) , where E s j k is the k th edge incident on s j and c i is a check node picked from N ̄ s j l having the lowest check-node degree.

5:            end if

6:         end for

7:      end for
g P 2 log ( m d c max - m d c max d s max - m + 1 ) log [ ( d s max - 1 ) ( d c max - 1 ) ] - 1 + 2 ,
(1)

where d c max and d s max were the maximum degrees of the check nodes and symbol nodes, respectively.

2.2 Linear-encoding PEG algorithm

It is stated [12] (Corollary 4) that if a parity-check matrix H can be transformed into an upper or lower triangular matrix by row and column permutations, the corresponding LDPC code can be encoded in linear number of steps. Obviously, the PEG algorithm can also be tailored to construct a parity-check matrix H having upper triangular structure. The code word C and the parity-check matrix H are partitioned into C = [p, d] and H = [H p , H d ], respectively, such that
[ H p , H d ] C T = 0 ,
(2)

where the m × m component H p = h i , j p of the parity-check matrix is forced to have the upper

triangular form
H p = 1 h 1 , 2 p h 1 , m p 0 1 0 1 h m - 1 , m p 0 0 0 1
(3)
in which h ij = 1 for i = j. Hence, the parity bits p = [pl, p2, ..., p m ] can be computed according to
p i = j = i + 1 m h i , j p p j j = 1 n - m h i , j d d j
(4)
where d = {d i } is the systematic part of the code, H d = { h i , j d } is the m × (n-m) component of the partitioned parity-check matrix H and represents the summation over binary field, i.e., an XOR operation. From Equation (4), the m parity bits can be computed from p m to p1 serially in m steps. Therefore, the number of encoding steps is
T L = m .
(5)

Accordingly, the symbol node set V s in the Tanner graph is partitioned into redundant subset V s p and the information subset V s d , which contain the first m symbol nodes and the other n - m symbol nodes, respectively. The edges of the symbol nodes are then established by means of the LPEG algorithm which constructs an upper triangular pattern. As the procedure of establishing the edges of n - m information bits follows the construction of edges of V s p and is exactly the same as the PEG algorithm described in Algorithm 1, only the LPEG algorithm for constructing edges of V s p is shown in Algorithm 2.

Algorithm 2. LPEG algorithm for Establishing Edges of V s p

1:for j = 0 to m - 1 do

2:      for k= 0 to d s j - 1 do

3:         if k = 0 then

             E s j 0 edge ( c j , s j ) , where E s j 0 is the first edge incident to s j . This edge corresponds to the "1" in the diagonal line of matrix H p .

4:         else

            expand a subgraph from s j up to depth l under the current graph setting such that N ̄ s j l { c 0 , c 1 , , c j - 1 } but N ̄ s j l + 1 { c 0 , c 1 , , c j - 1 } = , or the cardinality of N s j l stops increasing, then E s j k edge ( c i , s j ) , where E s j k is the k th edge incident to s j and c i is a check node picked from the set N ̄ s j l { c 0 , c 1 , , c j - 1 } having the lowest check-node degree.

5:         end if

6:      end for

7:   end for

Note that the first column of H p corresponds to a degree-1 symbol node and the fraction of degree-1 symbol node is 1/n. It was proved that the Tanner graph of an upper or lower triangular parity-check matrix could be equivalently transformed into a pseudo-tree and the corresponding LDPC codes could also be encoded in a linear number of steps by the label-and-decide algorithm [12].

2.3 M-SC-MPC codes

Let n i , ki, and r i denote the code length, information length and parity-check length of the i th component MPC code, respectively. The encoder of each component MPC code can be implemented as r i SPC encoders as shown in Figure 1[10]. The matrix cells of the i th encoder are filled in column-wise order from top left to bottom right. The first r i - s i cells, with s i = k mod r i , are unused. When the j th row is filled, j = 1, ..., r i , the parity bit p j is calculated by XORing the elements of the row, and its value is stored in the last column, at the same row. Each component MPC code can be seen as a shortened version of a binary cyclic code with length N i = n i r i r i n i . We obtain a valid parity-check matrix H i for the i th component code, consisting of a row of n i r i identity matrix with size r i × r i . As the i th component code has length n i , the cyclic code must be shortened. This implied eliminating the first N i - n i columns of H i . H i forms a block-row of the parity-check matrix H of the serially concatenated code. Consequently, H was in the lower triangular form, consisting of identity matrices and zero matrices. The serially concatenated code has information length k, parity-check length m = i = 1 M r i and code length n = k + m.
Figure 1

Structure of M-SC-MPC encoder. The encoder of each component MPC code can be implemented as r i SPC encoders.

3 FPEG algorithm and MFPEG algorithm

In general, an ensemble of Tanner graphs is defined through degree distribution pairs. In the case of the symbol nodes, the degree distribution, from the edge perspective, is given by
ψ ( x ) = i 1 d s max ψ i x i ,
(6)
where ψ i is the fraction of Tanner graph edges which emanate from degree-i symbol nodes. The fraction of degree-i symbol nodes, from the node perspective, is given by
λ i = ψ i / i j ψ j / j .
(7)
Similarly, in the case of the check nodes, the degree distribution, from the edge perspective, is given by
φ ( x ) = i 1 d c max φ i x i ,
(8)
where φ i is the fraction of Tanner graph edges which emanate from degree-i check nodes. The fraction of degree-i check nodes, from the node perspective, is given by
ρ i = φ i / i j φ j / j .
(9)

In the following section, we introduce an FPEG algorithm and an MFPEG algorithm used to construct an upper triangular parity-check matrix.

3.1 FPEG algorithm

Example 1: Consider the parity-check matrix in (10),
H = [ H p , H d ] = H 1 H 2 H 3 = 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 .
(10)

This is a rate R = 0.5 and length n = 12 parity-check matrix that corresponds to an LDPC code C = [p1, p2, ..., p6, d1, d2, ..., d6], where d1, d2, ..., d6 are the information bits and p1, p2, ..., p6 are the parity bits. This is by no means a good LDPC code but it is an example. The parity-check matrix H in (10) can be divided into three 2 × 12 submatrices H1, H2 and H3. In each submatrix H i , the rows do not have '1's in the same column. Then, the encoding of C includes the following three steps:

Step 1 Given the submatrix H3 and the information bits d1, d2, ..., d6, compute the parity bits p5, p6 by the parity-check equations
p 5 = d 1 d 2 d 4 , p 6 = d 3 d 5 d 6 .
(11)
Step 2 Given the submatrix H2 and the information bits d1, d2, ..., d6 and parity bits p5, p6, compute the check bits p3, p4 by the parity-check equations
p 3 = d 1 d 2 d 3 p 5 , p 4 = d 4 d 5 d 6 p 6 .
(12)
Step 3 Given the submatrix H1 and the information bits d1, d2, ..., d6 and check bits p3, p4, p5, p6, compute the parity bits p1, p2 by the parity-check equations
p 1 = d 1 d 3 d 5 p 4 p 5 , p 2 = d 2 d 4 d 6 p 3 p 6 .
(13)
It is easy to see that, in general, the number of encoding steps equals the number of submatrices, M. The parity-check matrix H should satisfy the following three conditions:
  1. (A)

    The parity-check matrix H should contain an upper triangular pattern.

     
  2. (B)

    The r i rows in each submatrix H i should not have '1's in the same column.

     
  3. (C)

    The number of submatrices should not be smaller than the maximum symbol-node degree ( M = d s max ) .

     

Condition (A) guarantees that the corresponding codes are linear time encodable [12]. Condition (B) guarantees that the r i parity-check equations in submatrix H i can be used to generate r i parity bits simultaneously [10, 13, 14] while condition (C) is a necessary condition for condition (B). Observing these three conditions, the Tanner graph of the parity-check matrix H can be constructed with the proposed FPEG algorithm.

Divide all the check nodes {c0, c1, ..., cm - 1} into M separate check node groups G1, G2, ..., G M where
G i = c j = 1 i - 1 r j , , c j = 1 i r j - 1
(14)
and r1, r2, ..., r M are M positive integers such that
r 1 + r 2 + + r M = m .
(15)
Given a symbol-node-degree distribution, the FPEG algorithm for establishing edges of V s p and V s d is given in Algorithm 3. The symbol SC\G i was used to denote the check nodes contained in the set of selectable check (SC) nodes, but not in the check node group G i , where SC denote the set of check nodes available for the next round of spreading. The number of encoding steps of the FPEG codes, equaling the number of submatrices H i , is
T F = M d s max .
(16)

Algorithm 3. FPEG algorithm for establishing edges of V s p and V s d

1: for j = 0 to n - 1 do

2:    if j < m then

3:       SC = {c0, c1, ..., cj-1}.

4:    else

5:       SC = {c0, c1, ..., cn-1}.

6:    end if

7:    for k = 0 to d s j - 1 do

8:       if k = 0 then

9:          if j < m then

       E s j 0 edge ( c j , s j ) , where E s j 0 is the first edge incident to s j . This edge corresponds to the "1" in the diagonal line of matrix H p .

10:          else

       E s j 0 edge ( c j , s j ) , where E s j 0 is the first edge incident to s j and c i is a check node such that it has the lowest check-node degree under the current graph setting E s 0 E s 1 E s j - 1 .

11:          end if

12:       else

      expand a subgraph from s j up to depth l under the current graph setting such that N ̄ s j l S C but N ̄ s j l + 1 S C = , or the cardinality of N s j l stops increasing, then E s j k edge ( c i , s j ) , where E s j k is the k th edge incident to s j and c i is a check node picked from the set N ̄ s j l S C having the lowest check-node degree.

13:       end if

14:       Find out which check node group G i includes c i . SCSC\G i .

15:    end for

16: end for

Similar to the PEG algorithm, the check-node degrees are made as uniform as possible by the FPEG algorithm. Notice that the FPEG algorithm is not always valid for any given symbol-node-degree distribution. Since the column weight of H i is at most one and the columns of H are ordered according to their weights in a nondecreasing order. The weight of first r1 columns of H p is at most one, that of the next r2 columns is at most two, likewise the weight of the last r M columns is at most M. In other words, the number of columns with weight less than or equal to i should be larger than or equal to j = 1 i r j . Therefore, the FPEG algorithm is valid if and only if
n j = 1 i λ j j = 1 i r j ,
(17)

for i {1, 2, ..., M}. When the condition (17) is satisfied, it was proved that, given a symbol-node-degree distribution, for large code lengths, the probability of failing to construct an approximate upper or lower triangular parity-check matrix was negligible [15] (Theorem 1).

Theorem 3.1 The lower bound on girth of the Tanner graph constructed by the FPEG algorithm is
g F 2 log ( J d c max - J d c max d s max - J + 1 ) log [ ( d s max - 1 ) ( d c max - 1 ) ] - 1 + 2 ,
(18)

where denotes the flooring operation, J = r min ( d s max - 1 ) + 1 and rminis the minimum of {r1, r2, ..., r M }.

Proof: The proof of (18) is an adaptation of the proof of equation (1) reported in [6]. For a given symbol node s j , define its neighborhood in G k within depth l , G k , s j l , as the set consisting of check nodes in G k reached by a subgraph spreading from symbol node s j . Its complementary set, k , s j l , is defined as G k \ G k , v j l . Consider a depth-l subgraph of an irregular Tanner graph which spreads from any symbol node s j , s j V s , such that G k , s j l G k and G k , s j l + 1 = G k . By definition the depth-0 subgraph contains at most d s max check nodes, one of them is in G k . Each of the d s max check nodes gives rise to at most ( d s max - 1 ) ( d c max - 1 ) check nodes in the next round of spreading. Thus, there are at most d s max ( d s max - 1 ) ( d c max - 1 ) check nodes at depth 1, and d s max ( d c max - 1 ) check nodes of them are in G k . Similarly, there are at most d s max ( d s max - 1 ) l ( d c max - 1 ) l check nodes at depth l and d s max ( d s max - 1 ) l - 1 ( d c max - 1 ) l check nodes of them are in G k . Let l' be the largest integer such that
1 + d s max ( d c max - 1 ) + + d s max ( d s max - 1 ) l - 1 ( d c max - 1 ) l < r min .
(19)
From (19), it is easy to see that
d s max + d s max ( d s max - 1 ) ( d c max - 1 ) + + d s max ( d s max - 1 ) l ( d c max - 1 ) l < r min ( d s max - 1 ) + 1 ,
(20)
which can be simplified to
d s max [ ( d s max - 1 ) l + 1 ( d c max - 1 ) l + 1 - 1 ] ( d s max - 1 ) ( d c max - 1 ) - 1 < r min ( d s max - 1 ) + 1 .
(21)
Let t be the solution of the equation
d s max [ ( d s max - 1 ) t + 1 ( d c max - 1 ) t + 1 - 1 ] ( d s max - 1 ) ( d c max - 1 ) - 1 = r min ( d s max - 1 ) + 1
(22)
that is,
t = log ( J d c max - J d c max d s max - J + 1 ) log [ ( d s max - 1 ) ( d c max - 1 ) ] - 1 ,
(23)
where
J = r min ( d s max - 1 ) + 1 .
(24)
Then ll' = t and
g F 2 ( t + 2 ) = 2 log ( J d c max - J d c max d s max - J + 1 ) log [ ( d s max - 1 ) ( d c max - 1 ) ] - 1 + 2 .
(25)

The proof is completed.

Figure 2 depicts the lower bounds on PEG Tanner graphs and the lower bounds on FPEG Tanner graphs for regular d s max = 3 , d c max = 6 codes and d s max = 4 , d c max = 8 codes with varying m and R = 0.5. Note that due to the flooring operation in (1) and (25), there are almost vertical transitions shown in Figure 2. A step size of 100 was used when varying the value of m. It can be seen that, for the same d s max and d c max , the PEG Tanner graph and the FPEG Tanner graph have similar lower bound on girth. It can also be seen that for small values of m, the girth can be 4. To avoid girth 4, equation below is used,
Figure 2

Lower bounds on two PEG Tanner graphs and two FPEG Tanner graphs. This figure depicts the lower bounds on PEG Tanner graphs and the lower bounds on FPEG Tanner graphs for regular d s max = 3 , d c max = 6 codes and d s max = 4 , d c max = 8 codes with varying m and R = 0.5.

2 log ( J d c max - J d c max d s max - J + 1 ) log [ ( d s max - 1 ) ( d c max - 1 ) ] - 1 + 2 6 ,
(26)
which can be simplified to
t = log ( J d c max - J d c max d s max - J + 1 ) log [ ( d s max - 1 ) ( d c max - 1 ) ] - 1 1 ,
(27)
that is
1 + d s max ( d c max - 1 ) < r min .
(28)
Assume r min = m d s max , then
1 + d s max ( d c max - 1 ) < m d s max d c max < m d s max - 1 d s max + 1 .
(29)
Hereafter in this article, for a given m, it was assumed M = d s max for two reasons: First, from (16) it can be seen that the number of encoding steps is least when M = d s max . Second, from (18) it is easy to see that J grows linearly with rmin and larger J value leads to larger lower bound on g F . It is also easy to see that the maximum
r min = m M
(30)

is achieved when M = d s max . Therefore, the maximum g F is achieved when M = d s max .

Note that there are degree-1 symbol nodes in the corresponding FPEG Tanner graph and the fraction of degree-1 symbol nodes is r1/n. The existence of degree-1 symbol nodes is a necessary condition for a linear-encoding algorithm such as the label-and-decide algorithm and the LPEG algorithm [5, 12]. However, it was stated that the outbound extrinsic messages of degree-1 nodes would not be updated during the iterative decoding process [16, 17]. Consequently, the degree-1 symbol nodes would cause many problems such as mismatching of extrinsic information transfer (EXIT) functions and the halting of mutual information evolution. In the following section, we will introduce a modified FPEG algorithm, which construct LDPC codes with only one degree-1 symbol node.

3.2 MFPEG algorithm

A simple modification of the FPEG algorithm can be applied to construct LDPC codes which have only one degree-1 symbol node. This modified algorithm is called MFPEG algorithm in this article. The MFPEG algorithm is almost the same as the Algorithm 3 except for line 14. Therefore, we only describe the modified part in Algorithm 4.

Algorithm 4. MFPEG algorithm

1: Find out which check node group G i includes c i .

2: if i = 1 (the first check node group G1) then
S C S C .
3: else
S C S C \ G i .

4: end if

In a parity-check matrix corresponding to a Tanner graph generated by the MFPEG algorithm, the r1 rows of the submatrix H1 can have '1's in the same column. Consequently,
{ p 1 , p 2 , , p r 1 }
should be computed serially, from p r 1 to p1, in r1 steps by the parity-check equations in H1 and the parity bits
p j = 1 i - 1 r j + 1 , p j = 1 i - 1 r j + 2 , , p j = 1 i r j
for i = 2 , 3 , , d s max are computed, in parallel, in one step by the parity-check equations in H i . Totally, the number of encoding steps of the MFPEG codes is
T M = ( d s max - 1 ) + r 1 ( d s max - 1 ) + r min ( d s max + m d s max - 1 ) ,
(31)
where the equality is achieved when r1 is the minimum of {r1, r2, ..., r M }. In fact, the MFPEG algorithm has loosened the condition (A) and is a combination of the LPEG algorithm and the FPEG algorithm. Therefore, for a given degree distribution pair, we have the following equalities:
g F g M g L ,
(32)

where g M is the lower bound on girth of the MFPEG Tanner graph.

Note that, since both of LPEG codes and MFPEG codes have only one degree-1 symbol node (FPEG codes have r1 degree-1 symbol nodes), they may have the same symbol-node-degree distribution. As shown in Figure 3, the encoder of the proposed FPEG and MFPEG codes can be implemented as r i SPC encoder and one quasi-random interleaver, thus increasing complexity, compared to MPC encoder.
Figure 3

Structure of the proposed encoder. The encoder of the proposed FPEG and MFPEG codes can be implemented as r i SPC encoder and one quasi-random interleaver.

4 Examples and simulation results

In this section, we provide two examples of the proposed codes and compare them with the M-SC-MPC codes [10] and LPEG codes. In this article, we denote LPEG codes, FPEG codes and MFPEG codes with M submatrices by M-LPEG codes, M-FPEG codes, and M-MFPEG codes respectively. In the first example it is shown that, In comparison to the M-SC-MPC codes which have the same number of encoding steps as FPEG codes, FPEG codes have better error correcting performance. In the second example, it is shown that for a given symbol-node-degree distribution, FPEG codes and MFPEG codes have similar error correcting performance but less encoding steps. In computing the error correcting performance, in terms of the bit error rate (BER), we assume BPSK transmission over the AWGN channel. The decoding algorithm used here is the log-likelihood sum-product algorithm and the maximum iteration number is set to be 50.

Example 2: An M-SC-MPC code consists of M MPC encoders and offers a flexible code rate and code length with low encoding complexity [10]. The encoding process of an M-SC-MPC code includes M steps, where M is also the maximum symbol-node degree, d s max . Clearly, for the same maximum symbol-node degree, the number of encoding steps of M-SC-MPC codes is the same as those of FPEG codes. Therefore, we will compare the performance of FPEG codes and M-SC-MPC codes, provided that the number of encoding steps and the symbol-node-degree distributions are the same.

For the rate 3/4, in [10], the authors considered the following M-SC-MPC codes:

  • 4-SC-MPC: n = 1196, r1 = 59, r2 = 73, r3 = 78, r4 = 89;

  • 5-SC-MPC: n = 1268, r1 = 53, r2 = 55, r3 = 59, r4 = 67, r5 = 83;

  • 6-SC-MPC: n = 1204, r1 = 45, r2 = 46, r3 = 47, r4 = 49, r5 = 53, r6 = 61.

The symbol-node degree distribution and check-node degree distributions of these codes from node perspective are shown in Tables 1 and 2, respectively. Using the same symbol-node-degree distribution, we construct the M-FPEG codes with the FPEG algorithm for M = 4, 5, 6. The BER performance comparisons of these codes are given in Figure 4. It is shown that an M-FPEG code performs better than that of the corresponding M-SC-MPC code. At BER = 10-4, the advantage of the M-FPEG codes against the M-SC-MPC codes are about 0.1, 0.7, and 0.3 dB, respectively, for M = 4, 5, 6.
Table 1

Symbol-node-degree distributions of the M-SC-MPC codes

Code

λ 1

λ 2

λ 3

λ 4

λ 5

λ 6

4-SC-MPC

0.0744

0.0652

0.0610

0.7993

  

5-SC-MPC

0.0655

0.0528

0.0465

0.0434

0.7918

 

6-SC-MPC

0.0510

0.0440

0.0410

0.0390

0.0382

0.7874

Table 2

Check-node-degree distributions of M-SC-MPC codes

Code

ρ 13

ρ 14

ρ 15

ρ 16

ρ 17

ρ 18

ρ 19

ρ 20

ρ 21

ρ 22

ρ 23

4-SC-MPC

0.1672

0.5618

0.0736

0.1572

0.0401

      

5-SC-MPC

  

0.1893

0.0726

0.0662

0.1640

0.4637

0.0442

   

6-SC-MPC

      

0.0532

0.1495

0.2757

0.4585

0.0631

Figure 4

BER performance of FPEG codes in comparison with M-SC-MPC codes. The BER performance comparisons of these codes are given in Example 2.

Example 3: We construct M-LPEG codes, M-FPEG codes and M-MFPEG codes with the LPEG algorithm, FPEG algorithm and MFPEG algorithm, respectively, for M = 4 , 5 , 6 , ( d s max = 4 , 5 , 6 ) . The code length is n = 1000, the parity-check length is m = 500 and the code rate is R = 0.5. For the purpose of performance comparison, the optimal degree distributions given in [[18], Table I] are used in this example. The fraction of Tanner graph edges which emanate from degree-1 symbol nodes of M-LPEG codes, M-FPEG codes and M-MFPEG codes can be obtained from that of the degree-i symbol nodes by the following formula:
ψ 1 * = ψ i - ψ i * ,
(33)
where ψ i is the original fraction of Tanner graph edges which emanate from degree-i symbol nodes and ψ i * is the new fraction used in this example. Note that if the number of degree-2 symbol nodes of the Tanner graph of H is larger than or equal to n - m, any combination of n - m degree-2 columns forms cycles. Thus we can improve the error floor performance by reducing the fraction
λ 2 = ψ 2 / 2 j ψ j / j ,
(34)
if the fraction of degree-2 symbol nodes is higher than the optimal value given in [19]. Therefore, for the original degree distributions ψ i given in [[18], Table I], we obtained the degree-1 symbol nodes from the degree-2 symbol nodes by
ψ 1 * = ψ 2 - ψ 2 * .
(35)
The original node degree distributions are given in the Table 3 and in the simulation of this example, the degree distributions from edge perspective are given in Table 4.
Table 3

Original symbol-node-degree distribution in [18]

d s m a x

ψ 2

ψ 3

ψ 4

ψ 5

ψ 6

4

0.3835

0.0424

0.5741

  

5

0.3266

0.1196

0.1840

0.3699

 

6

0.3324

0.2463

0.1102

 

0.3111

Table 4

New symbol-node-degree distribution

Code

ψ 1 *

ψ 2 *

ψ 3

ψ 4

ψ 5

ψ 6

4-LPEG

0.0010

0.3825

0.0424

0.5741

  

5-LPEG

0.0010

0.3455

0.1196

0.1840

0.3699

 

6-LPEG

0.0010

0.3314

0.2463

0.1102

 

0.3111

4-FPEG

0.1250

0.2585

0.0424

0.5741

  

5-FPEG

0.1000

0.2466

0.1196

0.1839

0.3699

 

6-FPEG

0.0830

0.2594

0.2463

0.1102

 

0.3111

4-MFPEG

0.0010

0.3825

0.0424

0.5741

  

5-MFPEG

0.0010

0.3455

0.1196

0.1840

0.3699

 

6-MFPEG

0.0010

0.3314

0.2463

0.1102

 

0.3111

Note that the symbol-node-degree distributions from node perspective for the LPEG, FPEG, and MFPEG algorithms can be calculated from edge distribution with the formula (7) and the check-node-degree distribution is not needed as the check-node degrees are made as uniform as possible by the LPEG algorithm [6] and the proposed FPEG and MFPEG algorithms. From (1) and (18), it is clear that the maximum check-node degree d c max is necessary to derive the lower bound on girth. However, the value d c max can be obtained easily in the simulation program. The lower bound on girth, girth and average cycle length of the simulated codes are given in Table 5 and their number of encoding steps are given in Table 6. From Equations (5), (16), (31), and Table 6, it can be seen that T F < T M < T L for these given symbol-node degree distributions. The simulation results are shown in Figure 5. It is shown that, compared to the LPEG codes, the FPEG codes perform better in the waterfall region but worse in the error floor region. However, the MFPEG codes perform similarly to the LPEG codes.
Table 5

Girth lower bound, girth and average cycle length for m = 500, n = 1000, and R = 0.5

Code

d c m a x

Girth

Lower bound

Average cycle length

4-LPEG

8

7

6

8.02

5-LPEG

6

8

6

7.99

6-LPEG

6

8

6

7.486

4-FPEG

6

7

6

7.49

5-FPEG

6

8

6

7.308

6-FPEG

6

8

6

7.126

4-MFPEG

6

7

6

8.142

5-MFPEG

6

8

6

7.876

6-MFPEG

6

8

6

7.532

Table 6

Number of encoding steps For m = 500, n = 1000, and R = 0.5

d s m a x

T L (LPEG)

T F (FPEG)

T M (MFPEG)

4

500

4

128

5

500

5

104

6

500

6

88

Figure 5

BER performance of FPEG codes and MFPEG codes in comparison with LPEG codes. The BER performance comparisons of these codes are given in Example 3.

5 Conclusion

In this article, we introduced the FPEG algorithm and the MFPEG algorithm for generating fast encodable LDPC codes. The number of encoding steps of the FPEG codes grows linearly with d s max , not the code length n. The number of encoding steps of the MFPEG codes grows linearly with ( d s max + m d s max - 1 ) . Moreover, we derived a lower bound on girth of the FPEG codes which is shown to be similar to that of PEG codes. By examples and simulations, it is shown that compared to the M-SC-MPC codes the FPEG codes have the same number of encoding steps but better error correcting performance, and compared to the LPEG codes the FPEG codes have similar error correcting performance but less encoding steps. Variants of M-SC-MPC codes, in which the degree of freedom is exploited, have been proposed in [20, 21]. Considering these variants of M-SC-MPC codes in the design of fast-encodable LDPC codes is an open issue for future research.

Declarations

Acknowledgements

This study was supported by World Class University (R32-2008-000-20014-0) NRF, Korea. It was also supported partly by the National Nature Science Foundation of China (61104154), Specialized Research Fund for Natural Science Foundation of Shanghai (10ZR1401600) and Fundamental Research Funds for the Central Universities (11D10417).

Authors’ Affiliations

(1)
School of Information Science and Technology, Donghua University
(2)
Engineering Research Center of Digitized Textile and Fashion Technology, Ministry of Education, Donghua University
(3)
Division of Electronics and Information Engineering, Chonbuk National University

References

  1. Gallager RG: Low density parity check codes. IEEE Trans Inf Theory 1962, IT-8(1):21-28.MathSciNetView ArticleMATHGoogle Scholar
  2. MacKay DJC, Neal RM: Near Shannon limit performance of low density parity check codes. IEE Electron Lett 1996, 32(18):1645-1646. 10.1049/el:19961141View ArticleGoogle Scholar
  3. Feldman J, Wainwright MJ, Karger DR: Using linear programming to decode binary linear codes. IEEE Trans Inf Theory 2005, 51(3):954-972. 10.1109/TIT.2004.842696MathSciNetView ArticleMATHGoogle Scholar
  4. Taghavi N MH, Siegel PH: Adaptive methods for linear programming decoding. IEEE Trans Inf Theory 2008, 54(12):5396-5410.MathSciNetView ArticleMATHGoogle Scholar
  5. Hu XY, Eleftheriou E, Arnold DM: Progressive edge-growth Tanner graphs. In IEEE Global Telecommunications Conf. (GLOBECOM). Volume 2. San Antonio, TX; 2001:995-1001.View ArticleGoogle Scholar
  6. Hu XY, Eleftheriou E, Arnold DM: Regular and irregular progressive edge-growth Tanner graphs. IEEE Trans Inf Theory 2005, 51(1):386-398.MathSciNetView ArticleMATHGoogle Scholar
  7. Jiang X, Lee MH: Large girth quasi-cyclic LDPC codes based on the chinese remainder theorem. IEEE Commun Lett 2009, 13(5):342-344.View ArticleGoogle Scholar
  8. Jiang X, Lee MH: Large girth non-binary LDPC codes based on Euclidean geometries and finite fields. IEEE Signal Process Lett 2009, 16(6):521-524.View ArticleGoogle Scholar
  9. Haley D, Grant A, Buetefuer J: Iterative encoding of low-density parity-check codes. In IEEE Globecom 2002. Volume 2. Taipei, Taiwan, Roc; 2002:1289-1293.Google Scholar
  10. Baldi M, Cancellieri G, Carassai A, Chiaraluce F: LDPC codes based on serially concatenated multiple parity-check codes. IEEE Commun Lett 2009, 13(2):142-144.View ArticleGoogle Scholar
  11. Tanner RM: A recursive approach to low complexity codes. IEEE Trans Inf Theory 1981, IT-27(6):533-547.MathSciNetView ArticleMATHGoogle Scholar
  12. Lu J, Moura JMF: Linear time encoding of LDPC codes. IEEE Trans Inf Theory 2010, 56(1):233-249.MathSciNetView ArticleGoogle Scholar
  13. Jiang X, Lee MH: Semi-random LDPC codes with efficient encoding. IEE Electron Lett 2009, 45(24):1259-1260. 10.1049/el.2009.2314View ArticleGoogle Scholar
  14. Tee JSK, Taylor DP, Martin PA: Multiple serial and parallel concatenated single parity-check codes. IEEE Trans Commun 2003, 51(10):1666-1675. 10.1109/TCOMM.2003.818085View ArticleGoogle Scholar
  15. Freundlich S, Burshtein D, Litsyn S: Approximately lower triangular ensembles of LDPC codes with linear encoding complexity. IEEE Trans Inf Theory 2007, 53(4):1484-1494.MathSciNetView ArticleMATHGoogle Scholar
  16. Yue G, Ping L, Wang X: Generalized low-density parity-check codes based on Hadamard constraints. IEEE Trans Inf Theory 2007, 53(3):1058-1079.MathSciNetView ArticleMATHGoogle Scholar
  17. Garcia-Frias J, Zhong W: Approaching Shannon performance by iterative decoding of linear codes with low-density generator matrix. IEEE Commun Lett 2003, 7(6):266-268.View ArticleGoogle Scholar
  18. Richardson T, Shokrollahi MA, Urbanke R: Design of capacityapproaching irregular low-density parity-check codes. IEEE Trans Inf Theory 2001, 47(2):619-637. 10.1109/18.910578MathSciNetView ArticleMATHGoogle Scholar
  19. Weng W, Ramamoorthy A, Wesel R: Lowering the error floors of irregular high-rate ldpc codes by graph conditioning. In VTC. Volume 4. Los Angeles, California; 2004:2549-2553.Google Scholar
  20. Baldi M, Cancellieri G, Chiaraluce F, De Amicis A: Design of permuted serially concatenated multiple parity-check codes. In Proc SoftCOM. Volume 1. Split, Croatia; 2010:285-289.Google Scholar
  21. Baldi M, Cancellieri G, Chiaraluce F, De Amicis A: Irregular M-SC-MPC codes for wireless applications. In Proc 2010 European Wireless Conference, EW. Volume 1. Lucca, Italy; 2010:369-376.View ArticleGoogle Scholar

Copyright

© Jiang et al; licensee Springer. 2012

This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.