Cyclic Low Density Parity Check Codes With the Optimum Burst Error Correcting Capability

The paper presents a new scheme of cyclic codes suitable for the correction of burst errors. This is accomplished by the proper definition of their parity check polynomials in which the difference between orders of every two consecutive elements of the utilized polynomial is unique and in order of power of 2. In the proposed polynomials, the number of applied elements is much lower than their orders (or codes’ lengths). This leads to represent codes as a class of low-density parity check (LDPC) codes, while they do not have any 4 cycle in their Tanner graphs. Considering the properties of the circulant matrix and structure of the defined polynomials, it is proven that codes have the optimum burst error-correcting capability. This is evident for short and long length codes. Moreover, it is shown that constructed codes can be combined with Fire codes and demonstrate cyclic codes that are applicable for the simultaneous correction of random and burst errors.


I. INTRODUCTION
Cyclic codes and their shortened shapes named as shortened cyclic codes are the reputable codes for the protection of data against the burst error. Due to the high performance in the correction of errors as well as rich algebraic structure, these codes were widely used in global standards. Depending on the code's characteristics, burst errors are correctable if the allocated length of code is set greater than the length of error patterns. As a class of linear block codes, the burst errorcorrecting capability of a (n, k) cyclic code is upper bounded by the value of n−k 2 [1], where n and k are lengths of the codeword and message, respectively.
There are several methods for constructing single or multiple dimensional cyclic codes suitable for the correction of burst errors [2], [3]. As expected, multi-dimensional codes provide better error protection than the one-dimensional codes as they can correct a number of single burst errors but at the expense of more complexity in design due to utilizing two or more codes in their structures. One dimensional cyclic codes can be found either by the computer search or through an algorithm [4]- [7]. BCH codes, Fire codes and Hsu-Kasami-Chien (HKC) codes are amongst the The associate editor coordinating the review of this manuscript and approving it for publication was Zilong Liu. famous structure-based codes although the majority of them do not provide optimum error correcting capability [8], [9].
Cyclic codes can be represented as a class of low density parity-check (LDPC) codes, when the cyclic property of the code is satisfied and the number of elements applied in their parity check polynomials are much smaller than the code lengths. Cyclic LDPC codes are mainly recognized as suitable codes for random error correction, which are conventionally constructed based on either Euclidean geometry (EG) or projective geometric (PG) algorithm. The analysis reveals that their burst error-correcting capability is not the same as their burst error correcting limit as the algorithm used for correction of burst errors is not implemented based on the canonical structure of the circulant parity check matrix [10]. This paper presents a method for constructing cyclic LDPC codes with the optimum burst error-correcting capability. In parity check polynomials of these codes, the difference between two consecutive orders is in order of power of 2.
To analyze the performance of these codes, the algorithm represented in [5] is modified based on the number of submatrices defined at their parity check matrices. Considering the effect of each submatrix, in particular, those having one or two 1s in their rows, new bounds for the burst errorcorrecting capability of the code will be presented. The results obtained from this analysis are extended to verify the effect VOLUME 8, 2020 This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/ of other submatrices on the correction of bursts with the specified lengths. Based on features of the submatrices and the circulant matrix, it is proven that proposed codes have the optimum burst error-correcting capability. This is evident for short and long length codes, while their rates can be reached to 0.5. As an application, these codes are combined with Fire codes to construct codes suitable for the simultaneous correction of random and burst errors. The organization of the paper is as follows: Section II introduces the structure of the circulant parity check matrix and its application for the correction of burst errors. Sections III and IV present the structure and analysis of cyclic LDPC codes with the optimum burst errorcorrecting capability. Section V represents the application of these codes in the construction of cyclic codes suitable for the simultaneous correction of burst and random errors. Finally, Section VI summarizes the paper.

II. BURST ERROR CORRECTING CYCLIC CODES
A linear code C is called a cyclic code if every cyclic shift of a codeword in C is also a codeword in C [4]. A codeword v can be represented as a n-tuple vector, which is where g(x) = 1 + g 1 x + g 2 x 2 + . . . + g n−k−1 x n−k−1 + x n−k is the generator polynomial of the code and in the order of n − k. For a (n, k) cyclic code, there exists one and only one generator polynomial, which is applied for expression of all codewords. This can be achieved by the implementing a lowcomplex shift register based encoder. For a binary cyclic code defined in Galois Field 2 (GF(2)), g i s, 1 ≤ i ≤ n − k − 1, are either 0 or 1.
It is proven that g(x) of the cyclic code is a factor of x n + 1. Hence, for a (n, k) cyclic code with the generator polynomial g(x), the corresponding parity check polynomial h(x) is defined by [4]: .
A cyclic code can be represented by its (n×n) circulant parity check matrix (H ) in the canonical form. The zeroth row of this matrix is constructed by elements of h(x) followed by n−k−1 zeros. Other rows are obtained by cyclic shifts of the zeroth row. In this paper, the representation of rows and columns of the matrix is indexed from zero. For a non-zero n-tuple over GF (2), a zero span is defined as the sequence of zeros between two 1s. The maximal zero span of the n-tuple, is the maximum length of the zero spans [10]. The maximal zero span of the circulant parity check matrix (δ) is the maximal zero span of the first row, which is given by δ = n − k − 1.
Let C 0 be the zeroth column of the matrix. The module-2 sums of the th column (C ), 1 ≤ ≤ n−k 2 − 1, with its previous columns are given by where A 0 = C 0 and 0 ≤ j < 2 −1 [10]. In this paper, module-2 sum of columns is expressed by sum.
Example 1: In a circulant matrix, for 1 ≤ ≤ 3, sums of C s are as follows: , generate a unique maximal zero span with length δ − started from the ( +1)th position [10]. In this case, a simple decoding algorithm can be implemented based on the burst-error correcting capability of the code, which is represented as B(H n ).
The circulant parity check matrix can be divided into two parts. The first part contains the first n − k rows of the matrix, while the remaining rows (or the last k rows) represent the second part of the matrix. Considering this structure, a simpler algorithm for determining burst error correcting capability of codes can be formed, when the sum of columns at the last k rows of the matrix is initially calculated.
For the fixed column , if each of A 2 −1 +j s, has a maximal zero span less than δ − , the effect of zeros positioned at the end (or second) part of the matrix is considered. Again, for the fixed column , if any of A 2 −1 +j s has the number of zeros with length greater than or equal to δ − 2 , the corresponding sum for the first rows, represented as the initial part of the matrix, will be calculated. Figure 1 shows the circulant matrix of (30,11) cyclic code with h(x) = 1 + x 2 + x 3 + x 5 + x 8 + x 11 and its two parts. For any 0 ≤ i ≤ 7, corresponding A 2 i−1 +j , 0 ≤ j < 2 i−1 , produces unique maximal zero spans at the first part of the matrix. However, for sums of the 8th column (C 8 ), all unique maximal zero spans are not provided from the first part of the matrix. For example, defineĆ 0 := [100100101101], C 3 := [000100100101], andĆ 8 := [00000001001], whose first 11 elements are the zeroth, third and eighth columns of the second part of the matrix, respectively. Their last elements are also the zeroth, third and eighth components of the zeroth row of the circulant matrix. The sum ofĆ i , i = 0, 3, 8, will beĆ 0 +Ć 3 +Ć 8 = (100000000001), which yields a zero span with the length of 10. Similarly, the sum of C 8 = [10010110100000000000000000100] with previous columns will generate the zero span with the length of δ − 8 = 10 in the first part. This means that the unique maximal zero span is not gained from the first part of the matrix and consequently the burst error-correcting capability is B(H n ) = 8.

III. CYCLIC CODES WITH THE OPTIMUM BURST ERROR CORRECTING CAPABILITY
Let p(x) be a polynomial in GF (2), which is defined by where η is a positive integer (η ≥ 1). m is represented as number of elements of p(x), which is an integer value greater than or equal to 3 (m ≥ 3). Obviously, the order of ith element (2) is the parity check polynomial of the (n, k) cyclic code, where n = m−1 j=0 (2 η ) j and k = m−2 j=0 (2 η ) j . Proof: The difference between orders of the i and (i −1) For [p(x)] 2 η , the order of (i − 1)th element is given by Let n = m−1 j=0 (2 η ) j be the order of (m − 1)th element of x[p(x)] 2 η . Indeed, the value of n represents the order of the 1 The order of the zeroth element is 0.
polynomial. The order of (i − 1)th element of Refer to equation (3), it is concluded that this order is equal to the order of i th element of p(x). Similarly, the order of zeroth element of x[p(x)] 2 η , i.e. 1, is the same as the order of the first element of p(x). Therefore, except x n , elements of x[p(x)] 2 η are the same as elements of p(x). p(x) also has an element with the order of zero, which is x 0 = 1. As a result, is a factor of x n + 1 and can be represented as the parity check polynomial of (n, k) cyclic are introduced as the lowest and greatest orders of h(x), respectively.
In the defined h(x), values of n and k are odd numbers. Hence, for all codes, n−k 2 = n−k 2 . From the (n−k)th row of the parity check matrix, m−1 submatrices are defined, whose which gives the difference between orders of two consecutive elements. In this paper, the content of the ith row and jth column of the λth submatrix is denoted by Sλ i,j .
If α m−1 − α m−2 = n−k 2 , a n−k 2 × n−k 2 submatrix is formed, whose ith row, 0 ≤ i ≤ n−k 2 − 1, has only one 1 at ith column. The submatrix with such a feature is named exclusive-1 submatrix and formed in codes with η = 1. The number of submatrices (except the exclusive-1 submatrix) is given by N = m eff − 1.
For codes with exclusive-1 submatrix, be a polynomial with the order of 31 in GF (2). Refer to equation (2), this polynomial is formed by η = 1 and m = 6. Based is in order of 31 and a factor of x 63 +1, it can be considered as the parity check polynomial of a (63,31) cyclic code. The generator polynomial of this code is g( In the given p(x), α 5 = 31 and α 4 = 15. As α 5 − α 4 = n−k 2 , the circulant parity check matrix of the code includes an exclusive-1 submatrix. It also has four submatrices (N = 4) in its second part.

IV. BURST ERROR CORRECTING CAPABILITY OF PROPOSED CYCLIC CODES
In this section, the structure of submatrices is analysed to determine the longest possible zero patterns resulted from sums of columns in the second part of the parity check matrix. Considering columns selected from this part, the zero pattern VOLUME 8, 2020 obtained from their sum at the initial part of the matrix is determined. This consequently concludes the maximal zero span from the sum of columns, which is positioned at the second and initial parts of the matrix. Then, the length of obtained zero span is compared with the lengths of zero spans formed in the first part of the matrix to determine the burst-error correcting capability of the code.
Lemma 1: Let Z 1 = α m−1 − α m−2 − 1 be the difference between two greatest orders of h(x) minus one. The burst error correcting capability of (n, k) cyclic code with h(x) defined in equation (2) is upper bounded by Proof: As mentioned above, for codes with η = 1, an exclusive-1 submatrix having Z 1 +1 rows exists at the second part of the parity check matrix. In these codes, Based on this structure, at the zeroth row of the first submatrix, only content of C 0 is 1. Therefore, sums of C s at the zeroth row of the first submatrix will be 1 and consequently zero spans formed from each sum in exclusive-1 submatrix will have the length of Z 1 − . As Z 1 < δ, lengths of those zero spans will be shorter than the shortest length of zero spans formed at the first part of the matrix, i.e. δ − . Hence, only the last k − (Z 1 + 2) rows of the matrix become important in determining the maximal zero span of sum of columns.
For the th column, in order to ensure that the unique maximal zero span is from the first part of the matrix, the following condition should be satisfied: The above inequality means that all bursts with the length shorter than or equal to n−2k+Z 1 +1 2 +1 are correctable. As a result, its burst-error correcting capability is bounded by For codes with η > 1, the exclusive-1 submatrix is not defined and Z 1 +1 is the number of rows of the first submatrix In this case, Z 1 < n−k 2 −1. At the first submatrix of codes with η > 1, S1 i,i = 1, 0 ≤ i ≤ Z 1 . This means, sums of C s, 0 ≤ ≤ Z 1 , will produce zero patterns, whose lengths are Z 1 − or shorter. These lengths are shorter than δ − . At the zeroth row of the second submatrix, S2 0,0 = 1 and S2 0,Z 1 +1 = 1. Considering this, sum of columns at the zeroth row of S2 is also 1. Hence, the longest zero pattern obtained from sums will be k − (Z 1 + 2), which can be started from the first row of S2. The longest possible zero pattern generated from sums at the initial part of the matrix is Z 1 . Therefore, the maximal zero span formed at the second and initial parts of the parity check matrix will be (ζ span ) 2  On the other hand, in the first part of the matrix, the shortest zero span is (ζ span ) 2 For codes with η > 1, Z 1 < n−k 2 − 1 and n > 4k. Hence, (ζ span ) 2 > (ζ span ) 2 . This means, all bursts with length Z 1 or shorter can be correctable. As a result, (B low ) η>1 ≥ Z 1 .
Example 3: Figure 2 shows the second part as well as the first eleven rows of the parity check matrix for (127,63) cyclic code. It only includes the first 32 columns. The parity check polynomial of this code is h(  in determining the maximal zero span at the second part of the matrix. Therefore, (B low ) η=1 ≥ 17.
Example 4: Figure 3 shows the second and initial parts of the circulant matrix for (85,21) cyclic code. The parity check matrix of this code is h(x) = 1 + x + x 5 + x 21 . In the first submatrix, S1 i,i = 1, 0 ≤ i ≤ Z 1 , where Z 1 = 15. This means that at the first 16 rows of the first submatrix as well as the zeroth row of the second submatrix, sums of C s, 0 ≤ ≤ Z 1 are 1. The longest possible zero pattern formed in the second part of the matrix is started from the first row of the second submatrix. This length is k − (Z 1 + 2) = 4. At the initial part of the matrix, the longest zero pattern is 15, where = Z 1 . Based on this structure, the maximal zero span obtained from sums of C s is 18, which is shorter than δ − Z 1 = 48. Therefore, the given code can correct all bursts with length Z 1 = 15 or shorter. Hence, (B low ) η>1 ≥ 15.
Lemma 2: Cyclic codes with the h(x) given in equation (2) can correct bursts with the length of α N −α N −2 −1 or shorter.
Proof: In the second submatrix, S2 γ ,γ = 1 and Meanwhile, in the first submatrix, S1 i, In the third submatrix, S3 0,0 = 1, S3 0,α N −1 −α N −2 = 1, and S3 0,α N −α N −2 = 1. In order to have zero from sums, C 0 and C α N −1 −α N −2 should be involved. However, as mentioned in above, C α N −1 −α N −2 is one of the columns, which is not involved in the sum. As a result, sum of those columns generating the longest zero pattern at the first and second submatrices will be 1 at the zeroth row of the third submatrix. In this case, lengths of zeros formed at the first and second submatrices are (α N − α N −1 ) − [ − (α N − α N −1 ) + 1] and α N −1 − α N −2 , respectively. Hence, the length of zero span will be (ζ span ) 2 The length of this zero span is shorter than the length of the zero span formed at the first part of the matrix, i.e. (ζ span ) 2 = (2 η ) m−1 − − 1, where n − k = (2 η ) m−1 . As mentioned, when C α N −1 −α N −2 is ignored, sums of C s at the zeroth row of the third submatrix will be 1. In this case, the greatest length of the zero pattern positioned at the third and following submatrices is α N −2 − 1. Therefore, the maximal zero span placed at these submatrices and the initial part of the matrix will be α N −2 − 1 + . Obviously, for all codes defined by equation (2), δ − > α N −2 − 1 + . Hence, the length of the above zero span is shorter than the one formed at the first part of the matrix.
If C α N −1 −α N −2 is used in the sum, the longest length of the zero pattern obtained from sums of C s will be α N − (α N −1 − α N −2 + 1). This pattern is started from (α N −1 − α N −2 + 1)th row of the first submatrix. In this case, columns positioned between row of the matrix, content of C α N −2 at the zeroth row of the matrix will be placed at C α N −α N −1 of the Y th row of the matrix. Other columns with the content of 1 are either between C α N −1 −α N −2 +1 and C α N −α N −1 −1 or after C α N −α N −2 −1 . Of these columns with the content of 1, only C α N −1 −α N −2 is used in the sums of columns at the second part of the matrix. Hence, sum of selected columns at Y th row of the matrix is 1 and consequently the length of zero span formed at the second and initial parts of the matrix is 2(α N − α N −1 ) − 1. This length is shorter than the shortest length of zero spans placed at the first part of matrix, which is the value of δ−( n−k 2 −1) = 2(α N −α N −1 ). Hence, all bursts with the length of α N − α N −2 − 1 or shorter are correctable.
The above two lemmas conclude that the maximal zero span of sums of C s, 1 ≤ ≤ α N − α N −2 − 1, are positioned at the first part of the parity check matrix. To precisely determine the burst error correcting capability of codes, it is essential to consider effect of other columns positioned between C α N −α N −2 and C n−k 2 −1 . Theorem 2: A cyclic code with the parity check polynomial of h(x) given in equation (2) has the optimum burst error correcting capability.
Proof: To verify the effect of the third and following submatrices, columns positioned after C α N −α N −2 −1 are considered in sums of C s, 1 ≤ ≤ n−k 2 − 1. This leads to represent cases for the sum of C X s, α N − α N −2 ≤ X ≤ n−k 2 − 1, which generate zero patterns from a row of the first submatrix to the end of the matrix. A common point of the cases is utilizing even number columns with the content of 1 at every row of S λ s, 3 ≤ λ ≤ N to determine the maximal zero span positioned at the second and initial parts of the matrix. VOLUME 8, 2020 At a row of S λ with C X = 1, odd number of C j s 0 ≤ j ≤ X − (α N − α N −2 ) should be applied to produce zero for the sum of the selected columns. In rows with C X = 0, even number of C j s, 0 ≤ j ≤ α N −1 − α N −2 should be applied. Alternatively, it is possible to have sum of odd number of C j s with the content of 1 and a column with the content of 1 positioned between C α N −α N −2 and C X . In addition to C α N −α N −1 , for each of C j s and C j s applied in the sum, C j+(α N −α N −1 ) and C j +(α N −α N −1 ) will also be used to ensure that sum of columns remains zero in the second submatrix. Let j select be the greatest index of C j s and C j s used in the sum. Let Y = α N − 2α N −1 + j select . At Y th row of the parity check matrix, columns with the content of 1 are placed at C Y +α i , where 0 ≤ i ≤ N . Of these columns, only C j select +α N −α N −1 is used in the sum of columns positioned in the second part of the matrix. As a result, sum of columns selected from the second part of the matrix produces a zero pattern with the length of α N − 2α N −1 + j select at the initial part of the matrix. Hence, the maximal zero span positioned at the second and initial parts of the matrix will be 2(α N − α N −1 ) − 1, which is shorter than the shortest length of zero spans formed at the first part of the matrix, i.e. the value of δ − ( n−k This case is considered as the extension of the previous case as all columns with the content of 1 positioned at S λ s, 3 ≤ λ ≤ N can be applied in sums. In a row of S λ with C X = 1s, the sum of columns will be zero, when an odd number of columns with the content of 1 positioned before C X is applied. Assume C X and C j are applied in the sum, where j = X − (α N − α N −1 ). In the considered row, in addition to these two columns, there exist a number of columns with the content of 1, which are positioned at C j s, where j = j − (α N −1 − α N −U ) and 2 ≤ U ≤ λ − 1.
Based on C j 1 s and C j s applied in the sum, C j 1 s and C j s will be used to ensure that sum of columns at the second submatrix is zero, where Let j select be the greatest index of C j s and C j 1 s involved in the sum. Let Y = α N − 2α N −1 + j select . At Y th row of the parity check matrix, columns with the content of 1 are placed at C Y +α i , where 0 ≤ i ≤ N . Of these columns, only C j select +α N −α N −1 is used in the sum of columns positioned at the second part of the matrix. As a result, sum of columns selected from the second part of the matrix produces a zero pattern with the length of α N − 2α N −1 + j select at the initial part of the matrix. Hence, the maximal zero span positioned at the second and initial parts of the matrix will be 2(α N − α N −1 ) − 1, which is shorter than the shortest length of zero spans formed in the first part of the matrix, i.e. the value of δ − ( n−k 2 − 1) = 2(α N − α N −1 ). The above analyses conclude that at the initial part of the matrix, the longest zero pattern obtained from the sum of columns will be α N − 2α N −1 + (col) sel . (col) sel , 1 ≤ (col) sel ≤ α N − α N −1 − 2, is the column with the content of 1 such that the zero pattern is started from (col) sel + 1th row of the first submatrix. At the second part of the matrix, the longest zero pattern formed from the sum of columns will be α N − (col) sel − 1. As a result, the maximal zero span positioned in the second and initial parts of the matrix will be 2(α N − α N −1 ) − 1. This maximal zero span is shorter than the shortest length of zero spans formed at the first part of the matrix, i.e. δ − ( n−k 2 − 1) = n−k 2 . Therefore, all bursts with length n−k 2 or shorter are correctable.
Example 5: In the parity check matrix of (127,63) cyclic code shown in Figure 2, let X = 30. At the last row of the matrix, C X = 1. To have zero from sum of columns in this row of the matrix, odd number of columns with content of 1 positioned between C 0 and C 8 can be applied. In this case, C 0 + C 2 + C 6 + C 30 = 0. C 26 is added to this sum to provide zero at the second row of the third submatrix. C 8 and C 16 are also added to the sum, which conclude zero at the zeroth rows of the second and third submatrices. As a result, C 0 + C 2 + C 4 + C 6 + C 30 + C 8 + C 16 + C 26 will conclude zero patterns placed at the third, fourth and fifth submatrices. As C 2 , C 4 , and C 6 are used, C 18 ,C 20 , and C 22 will also be applied in the sum to produce zero pattern at the second submatrix. Among C 0 ,C 2 ,C 4 , C 6 and C 8 , C 8 has the greatest index. Hence, the zero pattern obtained from the sum of columns is started from the 9th row of the first submatrix. At 9th row of the matrix, among the mentioned columns, only C 16 with the content of 1 was used in the sum. Indeed, other columns with the content of 1 are either C 24 or placed between C 9 and C 15 . Note that as C 0 and C 8 are used, C 24 is exempted to make sure that the sum of columns remains zero at the zeroth row of the third submatrix. The sum of the mentioned columns will result in zero patterns with lengths of 22 and 9 at the second and initial parts of the matrix, respectively. Hence, the length of the zero span obtained from the sum of the above columns will be 31, which is shorter than the shortest length of zero spans formed in the first part of the matrix, i.e. the value of δ − 31 = 32.
Example 6: In the parity check matrix of (127,63) cyclic code shown in Figure 2, let X = 25. In the first row of the third submatrix, C 25 = 1. In this row, other columns with the content of 1 are C 9 and C 1 . C 0 +C 1 +C 8 +C 12 +C 14 +C 13 + C 25 will conclude zero patterns at the third, fourth and fifth submatrices. Of these columns positioned between C 0 and C 14 , C 14 has the greatest index. Therefore, j select = 14 and C j select = C 14 . Sum of the above columns with C 16 and C 17 will form a zero pattern with the length of 16, which is started from the 15th row of the first submatrix. At 15th row of the matrix, among the mentioned columns, only content of C 16 is 1. This will result in a zero pattern with the length of 15 at the initial part of the matrix. The length of the zero span obtained from the sum of above columns will be 31, which is shorter than the shortest length of zero spans formed at the first part of the matrix δ − 31 = 32. Hence, all bursts with the length of 32 or shorter are correctable.

A. SPECIAL CASE
It is possible to have a zero pattern, which is started from the zeroth row of the first submatrix with the length of α N . This is achievable from C 0 + C α N −α i , where 1 ≤ i ≤ N − 1 and C 0 = 1. Moreover, in the zeroth row of the matrix content of C 0 is 1. Sum of selected columns at the zeroth row of the matrix will be 1 because every two rows of the matrix do not have more than one common 1. Hence, the length of zero span will be α N , which is shorter than the shortest length of zero spans formed at the first part of the matrix.
Example 7: In parity check matrix of (127,63) cyclic code shown in Figure 2, there exists a sum of columns, which generates zero pattern from 10th row of the first submatrix.
In addition to C 0 and C 16 , C 1 and C 17 should be involved to ensure that the sum remains zero at the second and third submatrices. Based on C 1 , C 5 and C 21 are also summed to conclude zero from the fourth and second submatrices. Similarly, C 6 and C 22 are used to have zero from the sum of columns at the fifth and second submatrices. Zero is resulted from the sum at the zeroth rows of the third and fourth submatrices by utilizing C 24 and C 28 . Such this zero pattern will be formed, when C X s, 10 ≤ X ≤ 15, are not applied in the sum. Moreover, C 25 can not be used since its sum with already selected C 1 and C 9 will become 1 at the first row of the third submatrix. Based on the above conditions, the length of this zero pattern will be 21. At the tenth row of the matrix, amongst columns with the content of 1 only C 17 was involved in the sum. Hence, the sum of selected columns will be 1 and consequently a zero pattern with the maximum length of 10 is obtained. As a result, the length of obtained zero span will be 31, which is shorter than the shortest length of the zero spans formed at the first part of the matrix (the value of 32).
Example 8: In the parity check matrix of (85,21) cyclic code shown in Figure 3, the sum of C 0 , C 16 , and C 20 generates zero pattern with the length of 20 in the second part of the matrix. At 11th row of the matrix, among these columns, only content of C 16 is 1. Hence, the longest possible length of that sum formed at the initial part of the matrix is 12. As a result, the length of zero span is 20+11=31. This length is shorter than the shortest length of zero spans formed at the first part of the matrix, i.e. δ − = 32, where = n−k 2 − 1.

V. APPLICATION OF PROPOSED LDPC CODES FOR COMPOUND CHANNELS
Proposed cyclic LDPC codes can be combined with Fire codes to construct cyclic codes suitable for the compound channel, where burst and random errors are mixed.
For GF(2 m ), let g F (x) = (x b + 1)φ(x) be generator polynomial of (n, k) Fire code, where n is an order of 2 m − 1 and represented as n = a · b. In this case, a and b are two integers and b+1 2 ≤ m. Moreover, φ(x) is a polynomial, which divides 1 + x b + x 2b + . . . + x (a−1)b . The generator polynomial of the cyclic code applied for the compound channel is represented by the least common multiple (LCM ) of two generator polynomials as follows [4]: where g LDPC (x) is the generator polynomial of the cyclic LDPC codes constructed by η = 1. As g LDPC (x) is not order of (x + 1), the above polynomial is given by Constructed cyclic codes are capable for correction of burst errors with length b as well as t or less random errors, where t is the error correcting capability of the cyclic code. Table 1 shows a number of cyclic codes constructed on the basis of the above method. In the second column, values written in the parenthesis denote orders of elements of g(x). Some short codes are comparable with other well-known codes. For example (15,4) code can correct bursts with lengths 2 or 3, which is equal to capability of (15,5) BCH code. However, (15,4) with the minimum weight of 8 can also correct 3 random errors. The parity check polynomial of this code is h(x) = 1 + x + x 4 . As the difference between any two orders of h(x) is unique, Tanner graph of the code does not include any 4 cycle. Hence, decoding of this LDPC code can be accomplished by a hard-decision based technique (such as bit flipping), which requires lower complexity than decoding techniques applicable for (15,5) BCH code. Similarly, (63,24) cyclic codes proposed for the compound channel has the minimum weight of 12. This means that the code can correct all burst errors with length 7 as well as five random errors. This code is comparable with (63,24) BCH code, which corrects either seven random errors or burst errors with length 17 or less [10].

VI. CONCLUSION AND FUTURE WORK
This paper represented cyclic LDPC codes with the optimum burst-error correcting capability. Considering the parity check matrix of these codes, bounds for determining their burst error correction were presented. Codes have flexibility in their lengths and rates. This allowed them to be combined with Fire codes to demonstrate a new scheme of cyclic codes suitable for simultaneous correction of random and burst errors. In future work, application of these codes for correction of multiple burst errors will be followed.