Structured root-LDPC codes and PEG-based techniques for block-fading channels

In this work, we propose structured root-low-density parity-check (LDPC) codes and design techniques for block-fading channels. In particular, quasi-cyclic root-LDPC codes, irregular repeat-accumulate root-LDPC codes and controlled doping root-LDPC codes based on progressive edge growth (PEG) techniques for block-fading channels are proposed. The proposed root-LDPC codes are both suitable for channels under F=2,3 and 4 independent fading per codeword. The performance of the proposed codes is investigated in terms of frame error rate (FER). The proposed root-LDPC codes are capable of achieving the channel diversity and outperform standard LDPC codes. For block-fading channel with F=2 our proposed PEG-based root-LDPC codes outperform PEG-based LDPC codes by 7.5 dB at a FER close to 10−3.


Introduction
The most recent IEEE wireless local area network (WLAN) 802.11ad standard [1] argues that to achieve high throughput the devices must operate with LDPC codes [2,3]. As wireless systems are subject to multipath propagation and mobility, these systems are characterized by time-varying channels with fluctuating signal strength. In applications subject to delay constraints and slowly-varying channels, only limited independent fading realizations are experienced. In such conditions also known as non-ergodic scenarios, the channel capacity is zero since there is an irreducible probability, termed outage probability [4], that the transmitted data rate is not supported by the channel. A simple and useful model that captures the essential characteristics of non-ergodic channels is the block-fading channel [5,6]. It is especially important in wireless communications with slow timefrequency hopping (e.g. cellular networks and wireless local area networks) or multi-carrier modulation using orthogonal frequency division multiplexing (OFDM) [7]. Codes designed for block-fading channels are expected to achieve the channel diversity and to offer excellent coding gains.

Prior and related works
A family of LDPC codes called root-LDPC for blockfading channels with F = 2 fading per codeword was proposed in [7]. Root-LDPC codes are able to achieve the maximum diversity of a block-fading channel and have a performance near the limit of outage when decoded using the Sum Product Algorithm (SPA). Root-LDPC codes are always designed with code rate R = 1/F, since the Singleton bound determines that this is the highest code rate possible to obtain the maximum diversity order [7]. Y. Li and M. Salehi in [8] have presented the construction of structured root-LDPC codes by means of tiling circulant matrices, i.e. by designing quasi-cyclic low-density parity-check (QC-LDPC) codes [9]. It is also shown that the QC-LDPC codes can perform as well as randomly generated root-LDPC codes over block-fading channels. Uchoa et al. in [10] proposed a PEG-based algorithm to design LDPC codes with root-check properties, thus providing root-LDPC codes with larger girths. A strategy that imposes constraints on a PEG-based algorithm which are required by root-LDPC codes was devised. This approach has provided better performance in terms of FER and BER than the works in [7,8]. Duyck et al. in [11] proposed the design of a random LDPC codes which are able to achieve full diversity in block-fading channels with F = 2 fadings. Healy and de Lamare in [12] extended the work in [11] for the case of block-fading channels with F = 3 and F = 4 fading per block transmitted. Uchoa et al. in [13] proposed iterative detection and decoding (IDD) algorithms for multiple-input multiple-output (MIMO) systems operating in block fading and fast Rayleigh fading channels.

Contributions
We propose in this work three structures to design root-LDPC codes which are quasi-cyclic, repeat and accumulate and controlled doping. Preliminary results toward PEG-based algorithm to design QC-LDPC codes with root-check properties for block-fading channel with F = 3, 4 fading per codeword were reported in [14]. Here, in this work we present a more detailed analysis of quasi-cyclic root-check-based LDPC codes. Furthermore, initial results for a PEG-based algorithm to design irregular repeat-accumulate (IRA) LDPC codes with root-check properties for block-fading channels were discussed in [15]. Here, we present a more detailed analysis of irregular repeat-accumulate and accumulate IRAA root-check structure for F = 2, 3 independent fading. In general, the parity check bits of root-LDPC codes are not in full diversity. Boutros in [16] proposed a controlled doping via high order root-LDPC codes, which are able to guarantee full diversity for the parity check bits. Such a design becomes really important when iterative detection and decoding (IDD) is used in spread spectrum [17,18] and MIMO systems [19][20][21]. In IDD systems, the detector and the decoder exchange their extrinsic information in an iterative way. Therefore, if the parity bits are not in full diversity, the overall IDD system performance will lead to a degradation in terms of bit error rate (BER) instead of improvements as stated in [17].
In this paper, we also propose a novel full diversity controlled doping root-check RA-based LDPC codes for block-fading channels of F = 2, 3, 4 fading which includes the code rates R = 1 2 , R = 1 3 and R = 1 4 . The main contributions of this work can be summarized as follows: • Root-LDPC codes for block-fading channels including structured, unstructured, controlled doping and RA designs are developed. • New PEG-based algorithms for several root-LDPC code structures are presented. • A comprehensive simulation study of root-LDPC codes and design algorithms is detailed.
The rest of this paper is organized as follows. In Section 2, we describe the system model. In Section 3, we discuss the prior and related works on the design of root-LDPC codes and their structure. In Section 4, the proposed PEG-based quasi-cyclic root-LDPC codes, irregular repeat-accumulate root-LDPC codes and controlled doping root-LDPC codes and their structure are presented. In Section 5, a discussion of which a root-LDPC code is more appropriate for a specific scenario is provided. In Section 6, the simulation results are shown, while Section 7 concludes the paper.

System model
Consider a block-fading channel, where F is the number of independent fading blocks per codeword of length N. Following [8], the tth received symbol is given by: where φ returns the smallest integer not smaller than φ, h f is the real Rayleigh fading coefficient of the f th block, s t is the transmitted signal, and n g t is additive white Gaussian noise with zero mean and variance N 0 /2. In this paper, we assume that the transmitted symbols s t are binary phase shift keying (BPSK) modulated. We assume that the receiver has perfect channel state information and that the SNR is defined as E b /N 0 , where E b is the energy per information bit. The information transmission rate is R = K/N, where K is the number of information bits per codeword of length N. For the case of a block-fading channel, we consider R = 1/F, since then it is possible to design a practical diversity achieving code [8]. The performance of a communication system in a non-ergodic block-fading channel can be investigated by means of the outage probability [4], which is defined as: where P(φ) is the probability of event φ and I is the mutual information. The mutual information I G , for Gaussian channel inputs is [8]: so that an outage occurs when the average mutual information among blocks is smaller than the attempted information transmission rate.

Root-LDPC codes
Root-LDPC codes are those which use the graph structure comprising special root-check nodes to ensure full diversity on the block fading channel with greatest possible code rate. These root-checks offer connection from each information node in the graph to the parity bits affected by fading coefficients distinct from that affecting the information node in question. Thus, the information node can be recovered provided at least one fading coefficient is large enough. Since for each information node there is a root-check node for all other fading coefficients, the rootchecks appear as identity matrices in the parity-check matrix of the root-LDPC codes. The properties offered by the root-check node structure are full single-iteration convergence on the noise-free block binary erasure channel and thus full diversity performance on the block fading channel of (1) [7]. In this section, the parity check matrix of the most relevant root-LDPC codes are discussed. The number of fadings considered are F = 2, 3 and 4 which correspond to code rates R = 1 2 , 1 3 and 1 4 .

Random root-LDPC codes
Here, we will introduce some definitions and the notation adopted in this work. The binary LDPC code in systematic form is specified by its parity-check matrix H: where I N−K is the identity matrix of size (N-K) and P is an (N-K)-by-K matrix. Then the generator matrix for the code is: where (·) T refers to the transpose operation. The variable node degree sequence D s is defined to be the set of column weights of H as designed and is prescribed by the variable node degree distribution λ(x) as described in [22]. Moreover, D s is arranged in nondecreasing order. The first proposed root-LDPC codes were devised by Boutros et al. in [7]. Therefore, the general structure of the parity-check matrix for a random root-LDPC code for F = 2 can be defined as 1i 2i 1p 2p where the nodes (1i and 2i) represent the information symbols that are sent over two independent fadings, the same happens to nodes (1p and 2p) which are the parity symbols; (1c and 2c) are the check nodes. In the paritycheck matrix H, there are eight sub-matrices of size N 4 × N 4 . I is an identity sub-matrix, 0 is a null sub-matrix, H 1i and H 2i are sub-matrices of Hamming weight 2 connected to the information symbols, H 1p and H 2p are also submatrices of Hamming weight 3 connected to the parity symbols. In a similar fashion, it can be devised for the case of F = 3 as stated in [7].

Quasi-cyclic root-LDPC codes
Following the idea of Boutros et al. in [7], Li and Salehi in [8] devised a quasi-cyclic root-LDPC codes. The paritycheck matrix H of a QC-LDPC code can be defined as [23]: where H ij is an n × n circulant or all-zeros matrix, and c and w are two positive integers with c < w. The null space of H gives a QC-LDPC code over GF (2) of length N = wn. The rank of H is at most cn. Hence the code rate is at least w−c w . For the case of quasi-cyclic root-LDPC codes the paritycheck matrix follows the same idea as (6), although the sub-matrices become a set of quasi-cyclic matrices. Consequently, I becomes and for H 1p we define it as H 1p = 0 I 4,5 I 4,6 I 4,7 I 5,4 0 I 5,6 I 5,7 I 6,4 I 6,5 0 I 6,7 I 7,4 I 7,5 I 7,6 0 , where each I i,j is a circulant permutation matrix, a circulant matrix with row and column weights 1. Each 0 is a null matrix. The matrix H 2i is similarly formed of tiled circulant permutation matrices with random cyclic shift and constrained random placement of the non-null matrices to achieve the required column and row weights.
The matrix H 2p has the same form as (10) in order that the parity part of the matrix has full rank, but with distinct random cyclic shifts [8]. The example presented in Eqs. (8), (9) and (10) are for a regular QC-root-LDPC code C (3,6). QC-root-LDPC codes were proposed with the aim of providing fast encoding and to save memory to store the generator matrix. Li and Salehi in [8] have shown that the QC-LDPC codes can perform as well as randomly generated root-LDPC codes [7] over block-fading channels.

Unstructured full-diversity LDPC codes
Duyck et al. in [11] proposed the design of random LDPC codes which are able to achieve full diversity in block-fading channels with F = 2 fading. The principle proposed in [11] is to allow a small reduction in coding rate in order to produce random codes that may achieve the diversity of the channel, i.e. the error rate achieved by the code behaves as 1 SNR 2 . However, as these codes achieve the desired error rate performance but do not have the maximal rate allowed by the Singleton bound, they may be called full-diversity codes but not blockwise maximum-distance separable (MDS) codes [24]. Specifically, the codes of [11] place the requirements that the nodes associated with the information bits have weight d v = 2 and do not participate in any stopping sets. The code rate is R ∼ = 0.5.
The design of such LDPC codes was achieved by requiring that the number of check nodes in the graph be greater than N 2 , i.e. that the rate be less than 1 2 , and that the weight of the first N 2 variable nodes is 2 and that the graph be constructed by the PEG algorithm [25], which maximizes cycle length at each placement, ensuring under these conditions no cycles in the sub-graph comprised of the first N 2 variable nodes alone. The requirement of recoverability for the worst-case scenario is equivalent to the requirement that no information variable node v inf ∈ V inf , affected by α 1 , is an element of any stopping set found among the variable nodes This requirement must hold for all i = 2, · · · , F for the information variable nodes to be recoverable on the block binary erasure channel and thus for the code to achieve full diversity on the block fading channel. The paritycheck matrix for this general case, with variable node subset labels and the corresponding fading coefficients are given in Fig. 1. 1 3 In (11), a code graph is shown for the case of F = 3 fading per codeword [12] by means of imposing null matrices on the parity-check matrix, along with restrictions on the cycles present in the sub-graphs of the code. The structured matrices H α,1 H α 2 and H α,2 H α 3 must be constructed by the PEG algorithm, as in [11], ensuring the extrinsic connections to V 2 and V 3 , respectively. The constraints on the code sub-graphs result in the variable nodes of V 1 having weight 4. The distribution of the nodes in V 2 and V 3 is unconstrained and may be irregular. In addition to this weight constraint, each of the sub-matrices H α,1 H α 2 and H α,2 H α 3 are constrained to have a rate less than 1 2 , and so the final graph will have a rate less than 1 3 .

Unstructured full-diversity rate 1 4
The code graph achieving the requirements on stopping sets among V 1 , · · · , V 4 containing information variable nodes is presented in (12) [12]. We can see that with each additional fading coefficient considered, a straightforward graph expansion is carried out, effectively nesting the F − 1 diversity achieving graph in the code capable of full-diversity performance on the channel with F fading coefficients.

Proposed PEG-based root-LDPC codes
In this section, the proposed PEG-based root-LDPC codes are discussed. The number of fadings considered are F = 2, 3 and 4 which correspond to code rates R = 1 2 , 1 3 and 1 4 .

QC PEG-based root-LDPC codes
Preliminary results on the design of a PEG-based quasicyclic root-LDPC codes for block-fading channel with F = 3, 4 fadings per codeword were presented by Uchoa et al.
in [14]. The codes generated by this strategy can achieve a significant performance in terms of FER with respect to the theoretical limit. These codes can save up to 3 dB in terms of signal to noise ratio to achieve the same FER when compared to other codes. A root-LDPC code requires a designer to divide both variable and check nodes in F equal parts. Following the root-check-based structure reported in [7], the paritycheck matrix becomes: where the subscripts represent the variable nodes (information and parity, respectively) under a specific fading block. The parity-check matrix of (13) can be reordered to H =[ S 1 , · · · , S F P 1 , · · · , P F ], with the blocks S i associated with information nodes and the blocks P i associated with parity nodes. In order to obtain the generator matrix, the sub-matrix B formed by parity matrices P 1 , · · · , P F must be a non-singular matrix, which means it is invertible under GF(2) [8].
To design a practical code for F = 3 which is able to achieve the channel diversity, the highest possible rate of such a code is R = 1 F = 1 3 . As a result, the parity-check matrix for R = 1 3 can be defined as in (14), where the n × n matrices H ij are circulant matrices of column and row weight as required by the degree distribution of the code, I ij are n × n circulant permutation matrices, while 0 is an all-zeros matrix. The notation I ij was used to reinforce that such connections are the root-check connections [7]. The restrictions that should be imposed are only the I ij to be placed in the positions described in (14) and the upper and down triangular sub-matrices in the parity part, B, of H. In order to perform a PEG-based design, the only restriction imposed is that the sub-matrices I ij and the upper and down sub-matrices of (14) are kept. The other submatrices can be placed following a quasi-cyclic PEG-based algorithm.
The parity-check matrix for F = 4 with code rate R = 1 4 is structured similarly to (14), and the same restrictions may be imposed to the design to construct a PEG-based QC-root-LDPC code for this scenario.

Proposed design algorithm
Here, we introduce some definitions and notations. Then, we present the pseudo-code of our proposed algorithm for PEG-based quasi-cyclic root-LDPC codes. The blockfading channels with F = 3 and F = 4 are considered.
In extending to a greater number of fadings, F > 4, the general structure presented is maintained, with the information variable nodes for each fading possessing root-check identity matrices connecting to parity variable nodes in each of the other fading blocks only, ensuring the upper and lower triangular sections of parity bits observed in (14). The placement of the remaining cyclic sub-matrices is required to maintain this relationship and provide satisfactory final code degree distribution. The LDPC code is specified by its sparse parity-check matrix The variable node degree sequence D s is defined as the set of column weights of the designed H and is prescribed by the variable node degree distribution λ(x) as described in [22]. Moreover, D s is arranged in a nondecreasing order. The proposed algorithm, called QC-PEG root-LDPC, constructs H by operating progressively on variable nodes to place the edges required by D s . The variable node of interest is labelled v j and the candidate check nodes are individually referred to as c i . The PEG root-LDPC algorithm chooses a check node c i to connect to the variable node of interest v j by expanding a constrained sub-graph from v j up to maximum depth l. The set of check nodes found in this sub-graph are denoted N l v j while the set of check nodes of interest, those not currently found in the sub-graph, are denoted N l v j . For the QC-PEG root-LDPC algorithm, a check node is chosen at random from the minimum weight check nodes of this set.
To impose the root-LDPC structure, it is necessary simply to initialize the graph with root-check connections, which appear as the identity matrices in the parity-check matrix of the code, and to ensure no additional edge placement is made either in the identity matrices or the null matrices specified by the root-LDPC structure. This is achieved in the PEG algorithm by modification of the indicator vector presented in [10]. Zeros in the indicator vectors, as presented in the following section, exclude check nodes from the expanded tree of the PEG algorithms and this exclude edge placement connecting to those check nodes.

Pseudo-code for the QC-PEG-root-LDPC algorithm
Initialization: A matrix of size M × N is created with the circulant permutation matrices I i,j in the positions shown in (14) and zeros in all other positions. We define the indicator vectors z 1 , · · · , z F 2 for the R = 1 3 case as: The indicator vectors for the construction of the QC-PEG-root-LDPC code with R = 1 4 designed similarly to (14) but for the channel with F = 4 are:

16
, v ALT (0: (11− These indicator vectors are modelled on that of the original PEG algorithm [25], indicating submatrices for which placement is permitted, thus imposing the required form. The degree sequence as defined for LDPC codes must be altered to take into account the structure imposed by root-LDPC codes, namely the circulant permutation matrices, I i,j , of (14) and similarly the structure defined by (16). The pseudo-code for our proposed QC-PEG root-LDPC algorithm is detailed in Algorithm 1, where the indicator vector, z i , is taken from (15), (16) for constructing codes of rate R = 1 3 , R = 1 4 , respectively.

Algorithm 1 QC-PEG root-LDPC Algorithm
Place edge at random among minimum weight submatrices permitted by the indicator z j , with a random first edge placement within the chosen submatrix, in column

5.
Place remaining edges in the submatrix by circulant shift of the first placement.

6.
Null the entry in the indicator vector z j in the position of the chosen submatrix, preventing further placements in that submatrix. 7.

8.
Expand the PEG subtree from the (j−1)·N F 2 -th variable node to depth l such that the tree contains all check nodes allowed by the indicator vector or the number of nodes in the tree does not increase with an expansion to the (l+1)-th level.

9.
Place edge connecting the (j−1)·N F 2 -th variable node to a check node chosen randomly from the set of minimum weight nodes which were added to the subtree at the last tree expansion.

10.
Place remaining edges in the submatrix by circulant shift of the first placement.

11.
Null the entry in the indicator vector z j in the position of the chosen submatrix, preventing further placements in that submatrix.

13.
end for 14. end for

RA-based root-LDPC codes
Preliminary results on the PEG-based design of irregular repeat-accumulate (IRA) LDPC codes [26] with rootcheck properties were reported in [15]. We considered a block-fading channel with F = 2 and F = 3. Here, in this section, we synthesize the most relevant information on the design of IRA root-LDPC codes.
A repeat-accumulate (RA) code consists of a serial concatenation, through an interleaver, of a single rate 1/q repetition code with an accumulator having transfer function 1 1+D , where q is the number of repetitions for each group of K information bits. Figure 2 shows a typical repeat-accumulate code block diagram. The implementation of the transfer function 1 1+D is identical to an accumulator, although the accumulator value can be only 0 or 1 since the operations are over the binary field ( [27] pp. 267-279). As discussed in ( [27] pp. 267-279), to ensure a large minimum Hamming distance, the interleaver should be designed so that consecutive 1s at its input are widely separated at its output. The RA-based codes proposed in [15] were systematic. The main limitation of RA codes on Gaussian channels is the code rate, which cannot be higher than 1 2 . This limitation is not relevant for block-fading channels as the rate is constrained to be R ≤ 1 2 in order to achieve a diversity order greater than or equal to 2.
Irregular repeat-accumulate (IRA) codes generalize the concept of RA codes by changing the repetition rate for each group of K information bits and performing a linear combination of the repeated bits which are sent through the accumulator. Furthermore, IRA codes are typically systematic. IRA codes allow flexibility in the choice of the repetition rate for each information bit so that high-rate codes may be designed. Their irregularity allows operation closer to the capacity limit ( [27] pp. 267-279).
The parity-check matrix for a systematic RA and IRA codes has the form H = H u H p , where H p is a square dual-diagonal matrix given by For RA codes, H u is a regular matrix having column weight q and row weight 1. For IRA codes, H u has irregular columns and rows weights. The generator matrix (GM) can be obtained as where I K is an identity matrix of dimension K × K, and the matrix H −T p is the well-known inverse transpose of (18).

IRA root-LDPC rate 1 2
The design of a root-LDPC code with an IRA structure imposes some constraints in terms of parity-check matrix to guarantee the root-check properties. Following the notation adopted in [28], for the case of a systematic rate 1 2 with F = 2, the parity-check matrix must be like where H 2 and H 3 are N 4 × N 4 sub-matrices with Hamming weight two and three, respectively, while 0 N 4 is a null submatrix with dimension N 4 × N 4 . Therefore, to impose the RA structure and root-check properties the parity-check matrix of an IRA root-LDPC is where H p is a dual diagonal matrix with dimension N 4 × N 4 .

IRA root-LDPC rate 1 3
For the case of rate 1 3 with F = 3, we followed a similar structure to the one adopted in [7,14]. The accumulator used is a transfer function given by 1 1+D+D N 9 as suggested by [29] for the Gaussian channel, and used here to improve coding gain by allowing a more complete connection between the parity bits and the root-check identity matrix through H p . As a result of the root-check structure of the graph where each root-check identity matrix must connect through a matrix of size N 9 × 2N 9 to a set of parity bits affected by some other fading coefficient, H p must be redefined as 1 0 · · · · · · · · · · · · · · · 0 where H p1 and H p2 are sub-matrices with dimensions N 9 × 2N 9 . Therefore, the parity-check matrix H = H u |H p for this particular case of an IRA root-LDPC rate 1 3 as where H 1 and I N 9 are sub-matrices with dimensions N 9 × N 9 and H 1 is a sub-matrix with Hamming weight equal to 1. The null sub-matrices 0 on the right-hand side of (24) have dimensions N 9 × 2N 9 while on the left-hand side the dimensions are N 9 × N 9 .

IRAA root-LDPC design
The general structure of an irregular repeat-accumulate and accumulate (IRAA) encoder can be seen in Fig. 3. In this figure, some b extra parity bits are indicated in addition to the normal p parity bits. The b parity bits can be punctured to obtain a higher code rate. For instance, in general an IRAA code has rate 1/3 without puncturing, while by puncturing b parity-checks a code with rate 1/2 can be obtained. The parity-check matrix of an IRAA LDPC code can be represented by where 1 must be a sub-matrix with rows and columns with Hamming weight one. In order to obtain IRAA root-LDPC codes some constraints must be imposed on the standard IRAA design. We have noticed that the IRAA root-LDPC codes led to a more flexible rate compatible code. For further details refer to [15].

IRAA root-LDPC rate 1 2
We applied the root-check structure from (20) in (25) to obtain the following parity-check matrix for rate 1/2

Controlled doping root-LDPC codes design
Boutros in [16] proposed a controlled doping via high order root-LDPC codes. Such root-LDPC codes are able to guarantee full diversity for the parity check bits. First of all, we have made some modifications in the original doped root-LDPC code parity-check matrix described in [16].

Controlled doping root-LDPC codes R = 1 2
The modifications we have made was to take the advantages of easy encodability of IRA-based LDPC codes. Furthermore, a PEG-based design to improve the local girth of the generated LDPC codes was considered. Doping refers to the diversity achieved in the parity bits of the root-LDPC graph, and when incidental is called uncontrolled. Controlled doping is used to intentionally improve the energy coefficient of information bits after solving parity bits. The energy coefficients relate the error rate achieved with the messages passed in decoding, in terms of the fading coefficients to which the code word is subjected [30]. Then, the parity bit should transmit a high-confidence message to a new information bit. Diversity population evolution (DPE) is an analytic method for studying the propagation of diversity in the graph during iterative decoding of a root-LDPC code [30]. Uncontrolled doping corresponds to a DPE steady-state parameter p ∞ = 7.82 % for a C(3, 6) regular root-LDPC code [16]. Controlled doping can achieve a fraction p ∞ as high as 100 %. The sub-matrix (18) is modified as for the root-LDPC-III code of [16] by introducing a smaller identity matrix for the parity bits. Therefore, the root-LDPC code with 50 % of controlled doping, H p is redefined, to ensure a lower-triangular form and thus efficient encoding, as where I is an identity matrix, 0 is a null matrix, P is a permutation matrix with Hamming weight 1, DD is a dual diagonal matrix and all sub-matrices of H p are N 8 × N 8 in dimension. Accordingly, the final parity-check matrix becomes where subscripts in P 1 and P 2 means that are distinct permutation sub-matrices with hamming weight 1. The sub-matrices H 1i and H 2i are in dimension N 4 × N 4 . P 1 and P 2 are in dimension N 8 × N 8 . The PEG algorithm will work through the sub-matrices H 1i and H 2i .

Controlled doping root-LDPC codes R = 1 3
The parity-check matrix for the case of code rate R = 1 3 has followed a similar design as for an IRA root-LDPC code rate R = 1 3 in (24). Therefore, the parity-check matrix for the proposed PEG controlled doping root-LDPC code (PEG-CDRC LDPC) has the structure as presented in (32), where the subscripts of P i in (32) means that are distinct permutation sub-matrices. The sub-matrices of Eq. (32) are all N 9 × N 9 in dimension. In addition, the left-hand side of (32) are connected to the information symbols while the right-hand side are connected to the parity check bits.

Controlled doping root-LDPC codes R = 1 4
For the case of rate 1 4 with F = 4, the root-LDPC code structure with controlled doping is produced by a similar expansion of the parity-check matrix as from the graph for F = 2 to the graph for F = 3 described above. However, in addition, we have adjusted the part of the matrix associated with the parity bits to account for the dimension requirements of the root-LDPC structure at this rate, where each of the four H p matrices have dimension 3N 16 × 3N 16 and as such have been adjusted to take the structure of (33).
and the matrices I, P and DD are as defined previously for the cases of F = 2 and F = 3. Note in particular that the permutation matrices P each have distinct cyclic shifts.

Proposed design algorithm
Here, we introduce some definitions and a specific notation. Then, the construction for the proposed codes is carried out by the pseudo-code previously introduced in Algorithm 2, along with appropriate initialization and using the indicator vectors defined in the following. In this work, the scenarios of a block-fading channel with F = 2, F = 3 and F = 4 are considered. In extending to a greater number of fadings, F > 4, the general structure presented is maintained.

Pseudo-code for the PEG-CDRC LDPC algorithm
Initialization: A matrix of size M × N is created with the identity matrices I, dual diagonal matrices DD and parity matrices P i in the correct positions and zeros in all other positions, as shown in (31) and (32), and similarly for the code for the F = 3 channel, using instead H p of (33). We define the indicator vectors z 1 , · · · , z F for the cases R = 1 2 , R = 1 3 and R = 1 4 respectively as:

Discussion
In this section, we analyse the advantages and disadvantages of different types of PEG-based root-LDPC codes discussed in the previous sections.
In terms of performance, the PEG-based root-LDPC codes are able to get closer to the outage curve than their counterpart root-LDPC codes. However, the complexity of encoding standard PEG-based root-LDPC codes can be prohibitive for some hardware implementations.
The quasi-cyclic PEG-based root-LDPC codes have the advantage of performing better than quasi-cyclic root-LDPC codes and both codes require low memory to store the parity-check matrix. Moreover, quasi-cyclicbased LDPC codes can be encoded by using simple shift registers.
RA PEG-based root-LDPC codes have the advantage of being simple to encode and also simple to design the parity-check matrix. Furthermore, the parity part of an RA-based parity-check matrix is a dual diagonal which is straightforward to obtain the generator matrix ( [27] pp. 267-279). Such codes perform very close to the channel capacity which is usually upper-bounded by the outage curve. In addition, RA-based LDPC codes can provide: low complexity to encode, simplicity on the design of the parity-check matrix and low memory is required to store them. On the other hand, the main limitation of RA-based codes is the code rate, which cannot be higher than 1 2 . In the case of unstructured full-diversity LDPC codes, they draw an important path in terms of designing the parity-check matrix which avoids the constraints that must be imposed to produce root-check-based LDPC codes. Nonetheless, they require a more complex encoding process which is the same complexity as the case of random LDPC codes.
As discussed previously, the PEG-controlled doping root-LDPC codes are able to guarantee full diversity for the parity check bits. These LDPC codes are relevant for the case of IDD in MIMO systems. The results presented in [31] demonstrate how useful are PEG-CDRC LDPC codes for MIMO systems in a block-fading channel. In addition, our proposed PEG-CDRC LDPC codes have the advantage of being RA-based encodable which are simple to encode and the parity-check matrix is easily designed.

Simulations
The performance of the proposed PEG-based root-LDPC codes for block-fading channels with F = 2, F = 3 and F = 4 independent fading blocks is analysed. The block length of the codes for rates R = 1 2 and R = 1 4 is N = 1024 while for rate R = 1 3 the block length is N = 900. Iterative message passing is employed at the decoder with a maximum of 5 iterations for rate R = 1 2 and for rates R = 1 3 and R = 1 4 a maximum of 20 iterations were used. The Gaussian outage limit in (3) is drawn in dashed line in each figure for reference.
In Fig. 4, we compare the FER performance among the proposed PEG-CDRC LDPC codes, IRA PEG root-LDPC code, IRAA PEG root-LDPC codes, QC-PEG-root-LDPC and PEG-root-LDPC, random root-LDPC and PEG-based LDPC [25] codes, all for R = 1 2 . From the results, it can be noted that the proposed PEG-CDRC LDPC code, IRAA-PEG root-LDPC code and PEG-root-LDPC code achieve the same FER performance. Moreover, note that all rootcheck-based codes are able to achieve the full diversity order of the channel, while (non root-check based) PEG LDPC codes fail to achieve full diversity. The PEG-based root-LDPC codes outperform the PEG LDPC code by 7.5 dB at a FER between 10 −2 and 10 −3 .
In Fig. 5, we compare the FER performance between the proposed PEG-CDRC LDPC, QC-PEG-root-LDPC, IRA PEG root-LDPC code, IRAA PEG root-LDPC codes, QC-PEG LDPC codes and PEG-root-LDPC code, all for R = 1 3 . From the results, it can be seen that the best performance is achieved by the proposed quasi-cyclic PEG root-LDPC code. IRA-PEG root-LDPC and IRAA-PEG root-LDPC have in average the same performance in terms of FER. The PEG-CDRC LDPC code is performing marginally worse than IRA and IRAA PEG root-check based LDPC codes. It was required to sacrifice the FER performance of the proposed PEG-CDRC LDPC codes to guarantee the full diversity of the parity check bits. Moreover, note that the proposed CDRC-LDPC code outperforms the QC-PEG LDPC code consistently across the range of FER considered, with an improvement of 2 dB below a FER of 10 −3 . The proposed QC-PEG-root-LDPC code outperforms the QC-PEG LDPC code by about 3.5 dB, also between a FER of 10 −3 and 10 −4 . In Fig. 6, we compared the FER performance between the proposed PEG-CDRC LDPC, QC-PEG-root-LDPC codes, IRA-PEG-root-LDPC and QC-PEG LDPC codes all for R = 1 4 . The codeword length is N = 1024 bits. From the results, it can be noted that the proposed PEG-CDRC LDPC code outperforms the QC-PEG LDPC code by about 1.5 dB while the proposed QC-PEG-root-LDPC code outperforms the QC-PEG LDPC code by about 2.5 dB. In addition, note that only the PEG-based root-LDPC codes are able to achieve the full-diversity order of the channel. For the PEG-CDRC LDPC code, the FER of the whole code word is also included at both 20 and 100 maximum decoder iterations. Note that the whole code word error rate at 20 maximum decoder iterations is dominated by the unsatisfactory performance of the parity bits, but at the higher maximum number of decoder iterations the whole code word FER has converged to that of the information bits, demonstrating that the controlled doping has had the desired effect. Recall that the doping used leads to p ∞ = 100 %, which is the percentage of variable nodes corrected after an arbitrarily large number of decoder iterations, and so this behaviour is expected from the PEG-CDRC code. Finally note that both IRA-PEG-root-LDPC and PEG-CDRC codes exhibit a loss in performance with respect to the QC-PEG-root-LDPC code. This results from the combined repeat-accumulate and root-LDPC structures found in the graphs of those codes, which offer a reduction in encoding complexity and diversityachieving performance at the expense of reduced coding gain. Figure 7 shows the average number of iterations required by the proposed PEG-CDRC LDPC codes, IRA PEG root-LDPC code, IRAA PEG root-LDPC codes, PEGroot-LDPC, random root-LDPC and PEG-based LDPC [25] codes, all for R = 1 2 . The decoder was operated to a maximum of 5 iterations and with the zero syndrome stopping criterion in place. For the entire SNR region, in average, we can observe that the proposed PEG rootcheck-based LDPC codes require less decoding iterations than standard PEG LDPC code. It must be mentioned that for medium to high SNR the average required number of iterations is less than 2 iterations. The average number of iterations, less than 2 at medium to high SNR, corroborates with hardware friendly capabilities of structured LDPC codes [8].

Conclusion
Novel PEG-based algorithms have been proposed to design controlled doping root-LDPC codes, IRA root-LDPC codes, IRAA root-LDPC codes and quasi-cyclic root-LDPC codes for F ≥ 2 fading blocks. Based on simulations, the proposed methods were compared to non-root-LDPC codes. The results demonstrate that the root-check-based LDPC codes generated by our proposed algorithm outperform standard LDPC codes. Furthermore, for the case of rate R = 1 2 the PEGbased root-LDPC codes outperform the PEG LDPC code by about 7.5 dB. As mentioned before, the proposed