 Research
 Open Access
 Published:
A construction of the highrate regular quasicyclic LDPC codes
EURASIP Journal on Wireless Communications and Networking volume 2019, Article number: 14 (2019)
Abstract
In this paper, a scheme to construct the highrate regular quasicyclic lowdensity paritycheck (QCLDPC) codes is developed based on the finite geometry lowdensity paritycheck (LDPC) codes. To achieve this, we first decompose the EGLDPC 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 6cycles of the block submatrices. In the simulation, seven regular QCLDPC 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.
Introduction
Lowdensity paritycheck (LDPC) codes [1], which is one of the main errorcorrecting codes, has been widely used in various practical applications [2, 3]. However, the highrate regular QCLDPC 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 paritycheck matrices of highrate codes are far more dense than those of lowrate 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 highrate regular QCLDPC codes.
Although both QCLDPC and turbo codes [5, 6] are capable of achieving the near Shannon limit performances, the QCLDPC codes in general are easier to implement in practices [7, 8]. For this reason, many schemes have been developed for designing regular QCLDPC codes, such as FGLDPC codes [9, 10] and LDPC codes of combinatorial designs [11]. These schemes are also employed in constructing the highrate regular QCLDPC codes [12, 13].
However, the highrate regular QCLDPC 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 classI circulant EGLDPC codes [9, 12] and cyclic difference families (CDFs) [14].
In this paper, we utilize the construction of the FGLDPC codes [9, 10] to develop a scheme for designing the highrate regular QCLDPC codes. The designing procedure proceeds as follows: We first decompose the EGLDPC or PGLDPC 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 6cycles of the block submatrices. In the simulation, we use this scheme to construct four regular QCLDPC 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 QCLDPC 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.
A review of cyclic finite geometry LDPC codes
This section gives a brief review of FGLDPC codes and introduces some definitions as well as notations that are used throughout the rest of the paper.
An mdimensional 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}mtuples (a_{0},a_{1},⋯,a_{m−1}) where a_{i}∈GF(2^{s}) for each i=0,1,…,m−1.
Defining the entrywise addition and multiplication for mtuples 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:
Thus, there are:
lines in EG(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 paritycheck 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 ith coset contains a line passing the jth point, and is equal to 0 otherwise.
Construction method
In this section, we proceed with the procedure of the construction of the highrate regular (QCLDPC) 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 6cycles of it. (3) Eliminate the 6cycles.
Decomposition of EG code matrix
Following [9], we can construct a 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:
For simplicity, we define an operation Ψ to represent:
which implies that each row of the cyclic matrix W has the identical weight.
We assume that the positive integer 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:
Thus, the set \(\mathcal {L}=\{0\,,1\,,2\,,\ldots \,,c \cdot b1 \}\) can be partitioned into:
where we define π^{(0)}+i={i,c+i,2c+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 quasicyclic matrix H_{qc} as:
Let r_{i} represent the row weight of Ψ(w_{i}) for i=0,1,2,…,c−1 respectively. Choosing a positive integer 1≤λ< maxi=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:
The resulting subset comprised of Ψ(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×bk_{1} matrix Hqc′ as:
Identifying the 6cycles
In this section, we develop a procedure to eliminate 6cycles in (11). For this purpose, without loss generality, we assume that we are given:
where the row weight 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:
The first row of (12) is therefore equal to:
In order to eliminate 6cycles, we transform matrix (12) into a new matrix of form (17). This leads us to introduce the operation φ which is defined as:
Therefore, we transform (14) into:
The transformation \(\mathcal {T}\) maps \(\hat {\mathbf {h}}\) in (16) to a b×(kb+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:
where we have \(\rho = \sum \limits _{i=0}^{k1}r_{i}\) with 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:
Clearly, from the definition, the total number of the oblique line segments of the form (19) is ρ. Thus, the set of all the oblique line segments is:
We define the distance between two oblique lines as:
From [15], it follows that the possible of 6cycles appeared in a paritycheck matrix is one of the following forms shown in Fig. 1.
Case 1: Assume that 6cycle 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:
If \({d_{0}\over {d_{1}}}\) is not equal to either \(1\over {2}\) or 2, then we delete such a subset comprised of these three oblique line segments. The remaining subsets constitute Ω_{3} which can be represented as:
Clearly, each subset of three oblique line segments \(\{l_{p_{i_{j}}}, l_{p_{i_{j+1}}}, l_{p_{i_{j+2}}}\}\) in Ω_{3} satisfies:
Figure 2 shows that 6cycles are constituted by three oblique lines.
Case 2: Assume that 6cycle 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:
If the computed distance d_{0},d_{1}, and d_{2} are not satisfied to any of these equations listed in the following set:
then we delete such a subset comprised of these four oblique line segments. The remaining subsets constitute Ω_{4} which can be represented as:
Figure 3 shows that 6cycles are constituted by four oblique line segments.
Case 3: Assume that 6cycle 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:
If the computed distance d_{0},d_{1},d_{2}, and d_{3} are not satisfied to any of these equations listed in the following set:
then we delete such a subset of these five oblique line segments. The remaining subsets constitute Ω_{5} which can be represented as:
Figure 4 shows that 6cycles are constituted by five oblique line segments.
Eliminating 6cycles
In the following, we proceed with the procedure to eliminate 6cycles.
Step 1: Construct Γ which is defined as:
where Ω_{3}, Ω_{4}, and Ω_{5} are defined by (23), (27), and (30), respectively.
Step 2: Find the oblique line segment \(l_{p_{i_{0}}}\) that appears in the maximal number subsets of Γ. Delete all the subsets of Γ containing this oblique line segment \(l_{p_{i_{0}}}\) and collect all the remaining subsets of Γ to form an new subset Γ_{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:
Step 3: In view of (12), we construct 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 prechosen 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}.
Thus, Q_{j} for 0≤j≤k−1 has the size of (r_{j}−λ). We define 1×b vector s_{j}:
For each s_{j}, we utilize the inverse of the map φ defined in (15) to yield a b×b matrix S_{j} as follows:
where the operation Ψ is defined in (5). Thus, the quasicyclic matrix S
In view of Hqc′ and S defined in (12) and (36), respectively, the quasicyclic encoding paritycheck matrix \(\mathbf {H}_{\text {qc}}^{(1)}\) is therefore equal to:
The operator ⊕ in (37) is defined as the entrywise XOR operations of matrices Hqc′ and S. From the construction procedure from (12) to (37), it follows that matrix \(\mathbf {H}_{\text {qc}}^{(1)}\) is regular and quasicyclic with its column and row weight being λ and kλ, respectively.
Another regular quasicyclic paritycheck matrix
Substituting \(\mathbf {H}_{\text {qc}}^{(1)}\) for Hqc′ 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 quasicyclic paritycheck 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.
Result and discussion
In example 1 of this section, we utilize the procedure from (4) to (37) to construct a regular quasicyclic (4095,3781) LDPC code as well as (38) to construct regular quasicyclic (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 quasicyclic (2925,2341) LDPC code and a regular quasicyclic (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 quasicyclic (6930,6301) LDPC code and a regular quasicyclic (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–18] to construct six (4095,3771), (4095,3729), (16383,14923), (8176,7156), (1020,935), and (2850,2280) QCLDPC codes. The simulation results in the following examples show that the procedure from (4) to (38) is an effective scheme to yield the highrate regular QCLDPC codes with moderate code lengths.
Example 1: Following the scheme of [9], we first construct a regular (4095,3367) EGLDPC 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 paritycheck matrix of the constructed (4095,3367) EGLDPC 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 quasicyclic 315×4095 paritycheck matrix \(\mathbf {H}_{\text {qc}}^{(1)}\) defined in (37) as well as a 630×8190 paritycheck 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 quasicyclic (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 quasicyclic 630×7560 paritycheck matrix \(\mathbf {H}_{\text {qc}}^{(2)}\) defined in (38). The null space of this \(\mathbf {H}_{\text {qc}}^{(2)}\) also renders a regular quasicyclic (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) QCLDPC code with the coding rate being 0.92.
Figure 5 shows the performances of these codes where it (a) represents the bit error rate (BER) and (b) depicts the frame error rate (FER). In these figures, the circle, box, and diamond solid lines respectively represent the performances of the regular quasicyclic (4095,3781), (7560,6931), and (8190,5161) LDPC codes. The star dotted line corresponds to the performance of the (4095,3771) QCLDPC code generated by [16].
Example 2: Following the scheme of [9], we first construct a regular (4095,3367) EGLDPC 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 paritycheck matrix of the constructed (4095,3367) EGLDPC 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 quasicyclic 585×2925 and 91×1091 paritycheck 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) QCLDPC code with the coding rate being 4/5 and 11/12, respectively.
Figure 6 shows the performances of these codes where it (a) represents the bit error rate (BER) and (b) depicts the frame error rate (FER). In these figures, the circle and box solid lines respectively represent the performances of the regular quasicyclic (2925,2341) and (1092,1001) LDPC codes. The circle and box dotted line corresponds to the performance of the (2850,2280) and 1020,935 QCLDPC code generated by [17, 18].
Example 3: Following the scheme of [9], we first construct a regular (4095,3367) EGLDPC 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 paritycheck matrix of the constructed (4095,3367) EGLDPC 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 quasicyclic 630×6930 paritycheck matrix \(\mathbf {H}_{\text {qc}}^{(2)}\) defined in (38). The null space of \(\mathbf {H}_{\text {qc}}^{(2)}\) renders a regular quasicyclic (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) QCLDPC code with the coding rates of both codes being 0.91.
Figure 7 shows the performances of these codes where it (a) represents the bit error rate (BER) and (b) depicts the frame error rate (FER). In these figures, the circle solid line represents the performance of the regular quasicyclic (6930,6301) LDPC code constructed from the procedure from (4) to (38). The box and diamond dotted lines respectively correspond to the performances of the (4095,3729) and (16383,14923) QCLDPC codes yielded from [16].
Example 4: Following the scheme of [9], we first construct a regular (4095,3367) EGLDPC 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 paritycheck matrix of the constructed (4095,3367) EGLDPC 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 quasicyclic 910×7280 paritycheck matrix \(\mathbf {H}_{\text {qc}}^{(2)}\) defined in (38). The null space of this \(\mathbf {H}_{\text {qc}}^{(2)}\) renders a regular quasicyclic (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) QCLDPC code with the coding rate being 0.875.
Figure 8 shows the performances of these codes where it (a) represents the bit error rate (BER) and (b) depicts the frame error rate (FER). In these figures, the circle solid line represents the performance of the regular quasicyclic (7280,6371) LDPC code yielded from the procedure of (4)–(38). The box dotted line corresponds to the performance of the (8176,7156) QCLDPC code (example 7 of [16]) generated by the scheme of [16].
Conclusion
We have presented a scheme to construct the highrate regular quasicyclic lowdensity paritycheck QCLDPC codes. The construction procedure is based on the FGLDPC codes in which we first decompose the EGLDPC 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 6cycles of the block submatrices. Three regular QCLDPC 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.
Abbreviations
 BER:

Bit error rate
 CDFs:

Cyclic difference families
 EGLDPC:

Euclidian geometry lowdensity paritycheck
 FER:

Frame error rate
 FGLDPC:

Finite geometry lowdensity paritycheck
 LDPC:

Lowdensity paritycheck
 PGLDPC:

Projective geometry lowdensity paritycheck
 QCLDPC:

Quasicyclic lowdensity paritycheck
References
 1
R. Gallager, Lowdensity paritycheck codes. IRE Trans. Inform. Theory.8(1), 21–28 (1962).
 2
N. Balasuriya, C. B. Wavegedara, Improved symbol value selection for symbol flippingbased nonbinary LDPC decoding. EURASIP J. Wirel. Commun. Netw.2017(1), 105 (2017).
 3
K. Kwon, T. Kim, J. Heo, Precoded LDPC coding for physical layer security. EURASIP J. Wirel. Commun. Netw.2016(1), 283 (2016).
 4
A. Tasdighi, A. H. Banihashemi, author=Sadeghi, M.R., Symmetrical constructions for regular girth8 QCLDPC codes. IEEE Trans. Commun.65(1), 14–22 (2017).
 5
S. K. Chronopoulos, G. Tatsis, V. Raptis, P. Kostarakis, in Proceedings of the 2nd PanHellenic Conference on Electronics and Telecommunications. A parallel turbo encoderdecoder scheme (Thessaloniki, 2012).
 6
S. K. Chronopoulos, G. Tatsis, P. Kostarakis, Turbo codes—a new PCCC design. Commun. Netw.3(4), 229–234 (2011).
 7
B. Bangerter, E. Jacobsen, Ho. Minnie, et al, Highthroughput wireless LAN air interface. Intel Technol. J.7(3), 47–57 (2003).
 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.16e2005 and IEEE Std 802.162004/Cor 12005 (Amendment and Corrigendum to IEEE Std 802.162004), vol., no., pp.0_1822, 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, Lowdensity paritycheck codes based on finite geometries: a rediscovery and new results. IEEE Trans. Inform. Theory. 47(7), 2711–2736 (2001).
 10
H. Tang, J. Xu, Y. Kou, S. Lin, K. AbdelGhaffar, On algebraic construction of Gallager and circulant lowdensity paritycheck codes. IEEE Trans. Inform. Theory. 50(6), 1269–1279 (2004).
 11
B. Vasic, O. Milenkovic, Combinatorial constructions of lowdensity paritycheck codes for iterative decoding. IEEE Trans. Inform. Theory. 50(6), 1156–1176 (2004).
 12
N. Kamiya, Highrate quasicyclic lowdensity paritycheck codes derived from finite affine planes. IEEE Trans. Inform. Theory. 53(4), 1444–1459 (2007).
 13
M. Fujisawa, S. Sakata, A construction of high rate quasicyclic regular LDPC codes from cyclic difference families with girth 8. IEICE Trans. Fundam. Electron. Commun. Comput. Sci.90(5), 1055–1061 (2007).
 14
C. J. Colbourn, J. H. Dinitz, CRC handbook of combinatorial design. Math. Gaz.81(81), 44–48 (1996).
 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 quasicyclic lowdensity paritycheck codes (Nanjing, 2015), pp. 230–233.
 16
Q. Huang, Q. Diao, S. Lin, K. AbdelGhaffar, in 2011 Information Theory and Applications Workshop. Cyclic and quasicyclic LDPC codes: new developments (La Jolla, 2011), pp. 1–10.
 17
S. Vafi, N. Majid, Combinatorial designbased quasicyclic 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).
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.
Author information
Affiliations
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.
Corresponding author
Correspondence to Jia Xiang Zhao.
Ethics declarations
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.
Additional information
Authors’ information
QM is a graduate student at the College of Electronic Information and Optical Engineering at Nankai University. His research interests include digital signal processing and error control coding.
JXZ is a professor at the College of Electronic Information and Optical Engineering at Nankai University. His research interests include biological signal processing, highspeed digital transmission algorithm, and error control coding.
WX is a professor at Tianjin Polytechnic University. Her research interests include digital signal processing and error control coding.
LL is serving as a communications engineer in IP Technology Research Department at Huawei Technologies Co., Ltd.
Rights and permissions
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.
About this article
Received
Accepted
Published
DOI
Keywords
 Highrate
 Regular
 Quasicyclic
 Lowdensity paritycheck (LDPC) code