# A construction of the high-rate regular quasi-cyclic LDPC codes

- 163 Downloads

## Abstract

In this paper, a scheme to construct the high-rate regular quasi-cyclic low-density parity-check (QC-LDPC) codes is developed based on the finite geometry low-density parity-check (LDPC) codes. To achieve this, we first decompose the EG-LDPC code into a set of the block submatrices with each of them being cyclic. Utilizing the decomposed structure, we then construct an auxiliary matrix to facilitate us for identifying and eliminating 6-cycles of the block submatrices. In the simulation, seven regular QC-LDPC codes with code rates being 4/5, 7/8, 10/11, 11/12, and 12/13 of moderate code lengths are constructed with this scheme. The performances of these codes demonstrate the effectiveness of the proposed scheme.

## Keywords

High-rate Regular Quasi-cyclic Low-density parity-check (LDPC) code## Abbreviations

- BER
Bit error rate

- CDFs
Cyclic difference families

- EG-LDPC
Euclidian geometry low-density parity-check

- FER
Frame error rate

- FG-LDPC
Finite geometry low-density parity-check

- LDPC
Low-density parity-check

- PG-LDPC
Projective geometry low-density parity-check

- QC-LDPC
Quasi-cyclic low-density parity-check

## 1 Introduction

Low-density parity-check (LDPC) codes [1], which is one of the main error-correcting codes, has been widely used in various practical applications [2, 3]. However, the high-rate regular QC-LDPC codes which are prone to the hardware implementation [4] and particularly suited for many practical applications can be constructed only for very restricted code parameters, such as code rate and code length. This is primarily due to the fact that for a given code length, especially short or moderate code lengths, the parity-check matrices of high-rate codes are far more dense than those of low-rate codes, which could lead to making more short cycles. Therefore, it is imperative to research on the schemes that offer a flexibly choosing the code rate and length of the high-rate regular QC-LDPC codes.

Although both QC-LDPC and turbo codes [5, 6] are capable of achieving the near Shannon limit performances, the QC-LDPC codes in general are easier to implement in practices [7, 8]. For this reason, many schemes have been developed for designing regular QC-LDPC codes, such as FG-LDPC codes [9, 10] and LDPC codes of combinatorial designs [11]. These schemes are also employed in constructing the high-rate regular QC-LDPC codes [12, 13].

However, the high-rate regular QC-LDPC codes constructing from the above schemes usually have very restricted code parameters. That is, for a given coding rate, the above schemes only offer extremely limited choices of the code length. Some examples of these are the class-I circulant EG-LDPC codes [9, 12] and cyclic difference families (CDFs) [14].

In this paper, we utilize the construction of the FG-LDPC codes [9, 10] to develop a scheme for designing the high-rate regular QC-LDPC codes. The designing procedure proceeds as follows: We first decompose the EG-LDPC or PG-LDPC code into a set of the block submatrices with each of them being cyclic. We then construct a *φ* transformation which acts on the first line of the obtained block submatrices to yield an auxiliary matrix \(\mathcal {T}\left (\hat {\mathbf {h}}\right)\) for identifying and cancelling 6-cycles of the block submatrices. In the simulation, we use this scheme to construct four regular QC-LDPC codes with the code rates being 11/12 and 12/13 which have the code lengths 7560, 1092 and 4095, 8190, respectively. Furthermore, we also employ the same scheme to construct three regular QC-LDPC codes with code rates being 4/5, 7/8, and 10/11 whose lengths are 2925, 7280, and 6930. The performances of these codes demonstrate the effectiveness of the proposed scheme.

## 2 A review of cyclic finite geometry LDPC codes

This section gives a brief review of FG-LDPC codes and introduces some definitions as well as notations that are used throughout the rest of the paper.

An *m*-dimensional finite Euclidean geometry over the field GF(2^{s}) with *m* and *s* being the two positive integers, denoted EG(*m*,2^{s}), is a set of 2^{s}*m*-tuples (*a*_{0},*a*_{1},⋯,*a*_{m−1}) where *a*_{i}∈GF(2^{s}) for each *i*=0,1,…,*m*−1.

*m*-tuples of EG(

*m*,2

^{s}), the set EG(

*m*,2

^{s}) forms a vector space over GF(2

^{s}). There are 2

^{ms}points in EG(

*m*,2

^{s}). Therefore, let

*α*be a primitive element of EG(

*m*,2

^{s}). All the elements of EG(

*m*,2

^{s}) can be represented as the power of

*α*, i.e., \(0=\alpha ^{-\infty }\,,\,1=\alpha ^{0}\,,\,\alpha \,,\,\ldots \,,\,\alpha ^{2^{ms}-2}\). For any point

*α*∈EG(

*m*,2

^{s}) and any nonorigin point

*β*∈EG(

*m*,2

^{s}), the line

*L*

_{α}(

*β*) through

*α*parallel to

*β*comprised of 2

^{s}points is:

*m*,2

^{s}). Any line of EG(

*m*,2

^{s}) has 2

^{(m−1)s}lines parallel to it. Every point in EG(

*m*,2

^{s}) has:

lines passing through it. The lines of EG(*m*,2^{s}) can be partitioned into *k* cosets where any two lines of EG(*m*,2^{s}) belong to the same coset if and only if they are parallel to each other.

Recall that *α* is a primitive element of EG(*m*,2^{s}). The parity-check matrix **H**_{EG} of the Euclidean geometry code is a *k*×(2^{ms}−1) matrix whose columns correspond to the ordered \(1=\alpha ^{0}\,,\,\alpha \,,\,\ldots \,,\,\alpha ^{2^{ms}-2}\phantom {\dot {i}\!}\). The rows of **H**_{EG} correspond to the cosets in EG(*m*,2^{s}) which do not contain the lines passing through the origin. That is, the (*i*,*j*) entry in **H**_{EG} is equal to 1 if the *i*th coset contains a line passing the *j*th point, and is equal to 0 otherwise.

## 3 Construction method

In this section, we proceed with the procedure of the construction of the high-rate regular (QC-LDPC) codes through the following three steps: (1) Construct an *n*×*n* EG code and transform it into a proper form. (2) Utilize the transformed EG code matrix to construct an auxiliary matrix for identifying 6-cycles of it. (3) Eliminate the 6-cycles.

### 3.1 Decomposition of EG code matrix

*n*×

*n*Euclidean geometry code

**W**over the field EG(

*m*=2,2

^{s}), where

*n*=2

^{ms}−1. The constructed matrix

**W**which is cyclic can be expressed by its first row

**w**=(

*ω*

_{0},

*ω*

_{1},…,

*ω*

_{n−1}) as:

which implies that each row of the cyclic matrix **W** has the identical weight.

*n*can be factored as

*n*=

*c*×

*b*where

*b*≠1 and

*c*≠1 are positive integers with

*b*being odd throughout the rest of this paper. Define the subset:

*π*

^{(0)}+

*i*={

*i*,

*c*+

*i*,2

*c*+

*i*,…,(

*b*−1)

*c*+

*i*} for

*i*=0,1,…,

*c*−1. We use

*π*to denote the partition of the indices in \(\mathcal {L}\) defined in (7) for the rest of this paper. Using this partitioning, we obtain a

*b*×

*n*quasi-cyclic matrix

**H**

_{qc}as:

*r*

_{i}represent the row weight of Ψ(

**w**

_{i}) for

*i*=0,1,2,…,

*c*−1 respectively. Choosing a positive integer 1≤

*λ*< max

*i*=0,1,…,

*c*−1{

*r*

_{i}}, we eliminate all the Ψ(

**w**

_{k}) (0≤

*k*≤

*c*−1) whose row weights are less than

*λ*from the set:

**w**

_{i})’s in (9) whose row weights are greater than or equal to

*λ*is therefore represented as:

It follows \(r_{i_{k}} \geq \lambda \) for 0≤*k*≤*k*_{1}−1. Since the row weight of **H**_{qc} defined in (8) is 2^{s}, we choose the parameter *λ* satisfying *c*<2^{s}/*λ* that ensures the subset (10) is not a null set.

We define a *b*×*b**k*_{1} matrix **H**qc′ as:

### 3.2 Identifying the 6-cycles

*r*

_{i}of Ψ(

**v**

_{i}) for each

*i*satisfying 0≤

*i*≤

*k*−1 is at least

*λ*which is described in the previous section. The vector

**v**

_{i}with 0≤

*i*≤

*k*−1 is:

*φ*which is defined as:

The transformation \(\mathcal {T}\) maps \(\hat {\mathbf {h}}\) in (16) to a *b*×(*k**b*+*b*−1) matrix is defined as:

Examing (17), we see that the first row of \(\mathcal {T}(\hat {\mathbf {h}})\) is obtained through adding *b*−1 zeros to the end of the vector \(\hat {\mathbf {h}}\). Each of the rest rows of \(\mathcal {T}(\hat {\mathbf {h}})\) is the circular shift of the row above it.

The set \(L(\hat {\mathbf {h}})\) comprised of the indices corresponding to the nonzero entries of \(\hat {\mathbf {h}}\) in (16) is defined as:

*r*

_{i}representing the row weight of Ψ(

**v**

_{i}). We define an oblique line segment \(l_{p_{i}}\) which starts from

*p*

_{i}and forms a descending diagonal from left to right in \(\mathcal {T}(\hat {\mathbf {h}})\),i.e., \(l_{p_{i}}\) constituting of the set of the entries of \(\mathcal {T}(\hat {\mathbf {h}})\) as follows:

*ρ*. Thus, the set of all the oblique line segments is:

**Case 1**: Assume that 6-cycle is comprised of three oblique line segments from (20). Therefore, from (20), the total number of subsets comprised of three oblique line segments is \(\dbinom {\rho }{3}\). For each subset comprised of three oblique line segments \(\left \{l_{p_{i_{0}}}, l_{p_{i_{1}}}, l_{p_{i_{2}}}\right \}\) from (20), we employ (21) to compute:

_{3}which can be represented as:

_{3}satisfies:

**Case 2**: Assume that 6-cycle is comprised of four oblique line segments from (20). Therefore, from (20), the total number of subsets comprised of four oblique line segments is \(\dbinom {\rho }{4}\). For each subset comprised of four oblique line segments \(\{l_{p_{i_{0}}}, l_{p_{i_{1}}}, l_{p_{i_{2}}}, l_{p_{i_{3}}}\}\) from (20), we employ (21) to compute:

*d*

_{0},

*d*

_{1}, and

*d*

_{2}are not satisfied to any of these equations listed in the following set:

_{4}which can be represented as:

**Case 3**: Assume that 6-cycle is comprised of five oblique line segments from (20). Therefore, from (20), the total number of subsets comprised of five oblique line segments is \(\dbinom {\rho }{5}\). For each subset comprised of five oblique line segments \(\{l_{p_{i_{0}}}, l_{p_{i_{1}}}, l_{p_{i_{2}}}, l_{p_{i_{3}}}, l_{p_{i_{4}}}\}\) from (20), we employ (21) to compute:

*d*

_{0},

*d*

_{1},

*d*

_{2}, and

*d*

_{3}are not satisfied to any of these equations listed in the following set:

_{5}which can be represented as:

### 3.3 Eliminating 6-cycles

In the following, we proceed with the procedure to eliminate 6-cycles.

where Ω_{3}, Ω_{4}, and Ω_{5} are defined by (23), (27), and (30), respectively.

_{1}. Repeat this process on the subset Γ

_{1}to obtain \(l_{p_{i_{1}}}\) and Γ

_{2}. We continue this process till Γ

_{k}for

*k*being some positive integer becomes a null set. In this process, we also obtain an ordered set of oblique line segments which is:

*k*subsets

*Q*

_{0},

*Q*

_{1},…,

*Q*

_{k−1}with

*Q*

_{j}for 0≤

*j*≤

*k*−1 being comprised of the oblique line segments \(l_{p_{i_{j}}}\) in Ω

_{order}satisfying:

where ⌊·⌋ denotes the rounding down operation. Recall that *r*_{j} for 0≤*j*≤*k*−1 is the row weight of Ψ(**v**_{j}) in (12) and *λ* is the pre-chosen positive integer introduced above Eq. (9). If there are more than (*r*_{j}−*λ*) oblique line segments of Ω_{order} satisfy (33), then only the first (*r*_{j}−*λ*) oblique line segments appeared in the ordered set Ω_{order} are chosen to form *Q*_{j}. If there are less than (*r*_{j}−*λ*) oblique line segments of Ω_{order} satisfy (33), we arbitrarily choose oblique line segments satisfying (33) from (20) that do not belong to Ω_{order}.

*Q*

_{j}for 0≤

*j*≤

*k*−1 has the size of (

*r*

_{j}−

*λ*). We define 1×

*b*vector

**s**

_{j}:

**s**

_{j}, we utilize the inverse of the map

*φ*defined in (15) to yield a

*b*×

*b*matrix

*S*

_{j}as follows:

**S**

**H**qc′ and

**S**defined in (12) and (36), respectively, the quasi-cyclic encoding parity-check matrix \(\mathbf {H}_{\text {qc}}^{(1)}\) is therefore equal to:

The operator ⊕ in (37) is defined as the entry-wise XOR operations of matrices **H**qc′ and **S**. From the construction procedure from (12) to (37), it follows that matrix \(\mathbf {H}_{\text {qc}}^{(1)}\) is regular and quasi-cyclic with its column and row weight being *λ* and *k**λ*, respectively.

### 3.4 Another regular quasi-cyclic parity-check matrix

**H**qc′ and proceeding the procedure from (12) to (36) with

*λ*=0, we can get a new

**S**

^{(1)}from (36). Then, we can construct another regular quasi-cyclic parity-check matrix \(\mathbf {H}_{\text {qc}}^{(2)}\) as follows:

\(\mathbf {H}_{\text {qc}}^{(2)}\) and \(\mathbf {H}_{\text {qc}}^{(1)}\) have the same row and column weight.

## 4 Result and discussion

In example 1 of this section, we utilize the procedure from (4) to (37) to construct a regular quasi-cyclic (4095,3781) LDPC code as well as (38) to construct regular quasi-cyclic (7560,6931) and (8190,7561) LDPC codes where the coding rates of all these three codes are 12/13.

In example 2, we utilize the procedure from (4) to (37) to construct a regular quasi-cyclic (2925,2341) LDPC code and a regular quasi-cyclic (4095,3781) LDPC code where the coding rates of all these two codes are 4/5 and 11/12, respectively.

In example 3 and example 4, the procedure of (4)–(38) is also employed to separately construct a regular quasi-cyclic (6930,6301) LDPC code and a regular quasi-cyclic (7280,6370) LDPC code with the coding rate 10/11 and 7/8, respectively. As a comparison of the performance, we also utilize the schemes from [16, 17, 18] to construct six (4095,3771), (4095,3729), (16383,14923), (8176,7156), (1020,935), and (2850,2280) QC-LDPC codes. The simulation results in the following examples show that the procedure from (4) to (38) is an effective scheme to yield the high-rate regular QC-LDPC codes with moderate code lengths.

**Example 1:** Following the scheme of [9], we first construct a regular (4095,3367) EG-LDPC code over the field EG(2,2^{6}). Since we have 4095=*c*×*b* with *c*=13 and *b*=315, the procedure from (4) to (8) suggests that the parity-check matrix of the constructed (4095,3367) EG-LDPC code can be decomposed into 13 submatrices of size *b*×*b* shown in (8). Of the 13 submatrices of size *b*×*b*, choose the parameter *λ*=4 to perform (9) to (11) where parameter *λ* is introduced above Eq. (9). Then, we select the first *k*=13 submatrices and perform (12) to (37) and (38) separately which yields a regular quasi-cyclic 315×4095 parity-check matrix \(\mathbf {H}_{\text {qc}}^{(1)}\) defined in (37) as well as a 630×8190 parity-check matrix \(\mathbf {H}_{\text {qc}}^{(2)}\) defined in (38) respectively. The null spaces of \(\mathbf {H}_{\mathrm { qc}}^{(1)}\) and \(\mathbf {H}_{\text {qc}}^{(2)}\) render a regular quasi-cyclic (4095,3781) LDPC code as well as a (8190,7561) LDPC code with the coding rate 12/13. Similarily, we also choose the first *k*=12 submatrices and perform (12) to (38) which yields a regular quasi-cyclic 630×7560 parity-check matrix \(\mathbf {H}_{\text {qc}}^{(2)}\) defined in (38). The null space of this \(\mathbf {H}_{\text {qc}}^{(2)}\) also renders a regular quasi-cyclic (7560,6931) LDPC code with the coding rate 11/12. As a comparison, we also employ the procedure of [16] to construct the (4095,3771) QC-LDPC code with the coding rate being 0.92.

**Example 2:** Following the scheme of [9], we first construct a regular (4095,3367) EG-LDPC code over the field EG(2,2^{6}). Since we have 4095=*c*×*b* with *c*=7, *b*=585, and *c*=45, *b*=91, the procedure from (4) to (8) suggests that the parity-check matrix of the constructed (4095,3367) EG-LDPC code can be decomposed into 7 and 45 submatrices of size *b*×*b* shown in (8). Of 7 and 45 submatrices of size *b*×*b*, choose the parameters *λ*=4 and *λ*=3 to perform (9) to (11) where parameter *λ* is introduced above Eq. (9). Then, we select separately the first *k*=5 and *k*=12 submatrices then perform (12) to (37) which yields a regular quasi-cyclic 585×2925 and 91×1091 parity-check matrix \(\mathbf {H}_{\text {qc}}^{(1)}\) both defined in (37). As a comparison, we also employ the procedure of [17, 18] construct the (2850,2280) and(1020,935) QC-LDPC code with the coding rate being 4/5 and 11/12, respectively.

**Example 3:** Following the scheme of [9], we first construct a regular (4095,3367) EG-LDPC code over the field EG(2,2^{6}). Since we have 4095=*c*×*b* with *c*=13 and *b*=315, the procedure from (4) to (8) suggests that the parity-check matrix of the constructed (4095,3367) EG-LDPC code can be decomposed into 13 submatrices of size *b*×*b* shown in (8). Of 13 submatrices of size *b*×*b*, choose the parameter *λ*=4 to perform (9) to (11) where parameter *λ* is introduced above Eq. (9). Then, we select the first *k*=11 submatrices and perform (12) to (38) which yields a regular quasi-cyclic 630×6930 parity-check matrix \(\mathbf {H}_{\text {qc}}^{(2)}\) defined in (38). The null space of \(\mathbf {H}_{\text {qc}}^{(2)}\) renders a regular quasi-cyclic (6930,6301) LDPC code with the coding rate 10/11. As a comparison, we also employ the procedure of [16] to construct the (4095,3729) and (16383,14923) QC-LDPC code with the coding rates of both codes being 0.91.

**Example 4:** Following the scheme of [9], we first construct a regular (4095,3367) EG-LDPC code over the field EG(2,2^{6}). Since we have 4095=*c*×*b* with *c*=9 and *b*=455, the procedure from (4) to (8) suggests that the parity-check matrix of the constructed (4095,3367) EG-LDPC code can be decomposed into nine submatrices of size *b*×*b* shown in (8). Of the nine submatrices of size *b*×*b*, choose the parameter *λ*=4 to perform (9) to (11) where parameter *λ* is introduced above Eq. (9). Then, we select the first *k*=8 submatrices and perform the procedure from (12) to (38) which yields a regular quasi-cyclic 910×7280 parity-check matrix \(\mathbf {H}_{\text {qc}}^{(2)}\) defined in (38). The null space of this \(\mathbf {H}_{\text {qc}}^{(2)}\) renders a regular quasi-cyclic (7280,6371) LDPC code with the coding rate 7/8. As a comparison, we also employ the procedure of [16] to construct the (8176,7156) QC-LDPC code with the coding rate being 0.875.

## 5 Conclusion

We have presented a scheme to construct the high-rate regular quasi-cyclic low-density parity-check QC-LDPC codes. The construction procedure is based on the FG-LDPC codes in which we first decompose the EG-LDPC code into a set of the block submatrices with each of them being cyclic. Then, we exploit the decomposed structure to produce an auxiliary matrix to facilitate us for identifying and eliminating 6-cycles of the block submatrices. Three regular QC-LDPC codes with code rates being 7/8, 10/11, and 11/12 of moderate code lengths are constructed in the simulation. The performances of these codes demonstrate the effectiveness of the proposed scheme.

## Notes

### Acknowledgements

We would like to thank the anonymous reviewers for their insightful comments on the paper, as these comments led us to an improvement of the work.

### Funding

This work was supported by the National Natural Science Funds for the Nankai University (No. 61771262).

### Availability of data and materials

Not applicable.

### Authors’ contributions

JXZ and QM contributed to the main idea and drafted manuscript. QM and WX contributed to the algorithm design, performance analysis, and simulations. LL helped revise the manuscript. All authors read and approved the final manuscript.

### Competing interests

The authors declare that they have no competing interests.

### Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

## References

- 1.R. Gallager, Low-density parity-check codes. IRE Trans. Inform. Theory.
**8**(1), 21–28 (1962).MathSciNetCrossRefGoogle Scholar - 2.N. Balasuriya, C. B. Wavegedara, Improved symbol value selection for symbol flipping-based non-binary LDPC decoding. EURASIP J. Wirel. Commun. Netw.
**2017**(1), 105 (2017).CrossRefGoogle Scholar - 3.K. Kwon, T. Kim, J. Heo, Pre-coded LDPC coding for physical layer security. EURASIP J. Wirel. Commun. Netw.
**2016**(1), 283 (2016).CrossRefGoogle Scholar - 4.A. Tasdighi, A. H. Banihashemi, author=Sadeghi, M.R., Symmetrical constructions for regular girth-8 QC-LDPC codes. IEEE Trans. Commun.
**65**(1), 14–22 (2017).Google Scholar - 5.S. K. Chronopoulos, G. Tatsis, V. Raptis, P. Kostarakis, in
*Proceedings of the 2nd Pan-Hellenic Conference on Electronics and Telecommunications*. A parallel turbo encoder-decoder scheme (Thessaloniki, 2012).Google Scholar - 6.S. K. Chronopoulos, G. Tatsis, P. Kostarakis, Turbo codes—a new PCCC design. Commun. Netw.
**3**(4), 229–234 (2011).CrossRefGoogle Scholar - 7.B. Bangerter, E. Jacobsen, Ho. Minnie, et al, High-throughput wireless LAN air interface. Intel Technol. J.
**7**(3), 47–57 (2003).Google Scholar - 8.IEEE Standard for Local and Metropolitan Area Networks Part 16: Air Interface for Fixed and Mobile Broadband Wireless Access Systems Amendment 2: Physical and Medium Access Control Layers for Combined Fixed and Mobile Operation in Licensed Bands and Corrigendum 1," in IEEE Std 802.16e-2005 and IEEE Std 802.16-2004/Cor 1-2005 (Amendment and Corrigendum to IEEE Std 802.16-2004), vol., no., pp.0_1-822, 2006 https://doi.org/10.1109/IEEESTD.2006.99107. http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1603394&isnumber=33683.
- 9.Y. Kou, S. Lin, M. P. C. Fossorier, Low-density parity-check codes based on finite geometries: a rediscovery and new results. IEEE Trans. Inform. Theory.
**47**(7), 2711–2736 (2001).MathSciNetCrossRefGoogle Scholar - 10.H. Tang, J. Xu, Y. Kou, S. Lin, K. Abdel-Ghaffar, On algebraic construction of Gallager and circulant low-density parity-check codes. IEEE Trans. Inform. Theory.
**50**(6), 1269–1279 (2004).MathSciNetCrossRefGoogle Scholar - 11.B. Vasic, O. Milenkovic, Combinatorial constructions of low-density parity-check codes for iterative decoding. IEEE Trans. Inform. Theory.
**50**(6), 1156–1176 (2004).MathSciNetCrossRefGoogle Scholar - 12.N. Kamiya, High-rate quasi-cyclic low-density parity-check codes derived from finite affine planes. IEEE Trans. Inform. Theory.
**53**(4), 1444–1459 (2007).MathSciNetCrossRefGoogle Scholar - 13.M. Fujisawa, S. Sakata, A construction of high rate quasi-cyclic regular LDPC codes from cyclic difference families with girth 8. IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
**90**(5), 1055–1061 (2007).CrossRefGoogle Scholar - 14.C. J. Colbourn, J. H. Dinitz, CRC handbook of combinatorial design. Math. Gaz.
**81**(81), 44–48 (1996).zbMATHGoogle Scholar - 15.W. Wen, M. Ai, J. Qiu, L. Liu, in
*2015 IEEE International Conference on Progress in Informatics and Computing (PIC)*. Novel construction and cycle analysis of quasi-cyclic low-density parity-check codes (Nanjing, 2015), pp. 230–233.Google Scholar - 16.Q. Huang, Q. Diao, S. Lin, K. Abdel-Ghaffar, in
*2011 Information Theory and Applications Workshop*. Cyclic and quasi-cyclic LDPC codes: new developments (La Jolla, 2011), pp. 1–10.Google Scholar - 17.S. Vafi, N. Majid, Combinatorial design-based quasi-cyclic LDPC codes with girth eight. Digit. Commun. Netw. https://doi.org/10.1016/j.dcan.(2018).
- 18.H. Park, S. Hong, J. S. No, IEEE Trans. Commun.
**61**(8), 3108–3113 (2013).Google Scholar

## Copyright information

**Open Access** This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.