<?xml-model href='http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng' schematypens='http://relaxng.org/ns/structure/1.0'?><TEI xmlns="http://www.tei-c.org/ns/1.0">
	<teiHeader>
		<fileDesc>
			<titleStmt><title level='a'>Using Minors to Construct Generator Matrices for Quasi-Cyclic LDPC Codes</title></titleStmt>
			<publicationStmt>
				<publisher></publisher>
				<date>06/26/2022</date>
			</publicationStmt>
			<sourceDesc>
				<bibl> 
					<idno type="par_id">10366059</idno>
					<idno type="doi">10.1109/ISIT50566.2022.9834862</idno>
					<title level='j'>2022 IEEE International Symposium on Information Theory (ISIT)</title>
<idno></idno>
<biblScope unit="volume"></biblScope>
<biblScope unit="issue"></biblScope>					

					<author>Roxana Smarandache</author><author>Anthony Gomez-Fonseca</author><author>David G. Mitchell</author>
				</bibl>
			</sourceDesc>
		</fileDesc>
		<profileDesc>
			<abstract><ab><![CDATA[This paper gives a simple method to construct generator matrices with polynomial entries (and hence offers an alternative encoding method to the one commonly used) for all quasi-cyclic low-density parity-check (QC-LDPC) codes, even for those that are rank deficient. The approach is based on constructing a set of codewords with the desired total rank by using minors of the parity-check matrix. We exemplify the method on several well-known and standard codes. Moreover, we explore the connections between the minors of the parity-check matrix and the known upper bound on minimum distance and provide a method to compute the rank of any parity-check matrix representing a QC-LDPC code, and hence the dimension of the code, by using the minors of the corresponding polynomial parity-check matrix.]]></ab></abstract>
		</profileDesc>
	</teiHeader>
	<text><body xmlns="http://www.tei-c.org/ns/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>I. INTRODUCTION</head><p>Quasi-cyclic LDPC (QC-LDPC) codes, are attractive for implementation purposes since they can be encoded with low complexity using simple feedback shift-registers <ref type="bibr">[1]</ref> and their structure leads to efficiencies in decoder design <ref type="bibr">[2]</ref>. Moreover, QC-LDPC codes can be shown to perform well compared to random LDPC codes for moderate block lengths <ref type="bibr">[3]</ref>, <ref type="bibr">[4]</ref>. However, unlike typical members of an asymptotically good protograph-based LDPC code ensemble, the QC sub-ensemble does not have linear distance growth. Indeed, if the protograph base matrix consists of only ones and zeros, then the minimum Hamming distance is bounded above by (n c + 1)!, where n c is the number of check nodes in the protograph, regardless of the lifting factor N <ref type="bibr">[5]</ref>. This result was extended to multiedge protographs in <ref type="bibr">[6]</ref>. Significant effort has been made in the coding theory community to design QC-LDPC code matrices with minimum distance and girth approaching these bounds, see <ref type="bibr">[3]</ref>, <ref type="bibr">[4]</ref>, <ref type="bibr">[7]</ref>- <ref type="bibr">[10]</ref> and references therein.</p><p>As a result of the rich structure of QC-LDPC codes, their matrix representations have been studied in a number of works. These include methods to construct a generator in standard form (e.g., <ref type="bibr">[1]</ref>), which allows high throughput systematic encoding but the resulting generator matrix is typically dense. The sparse parity-check matrix is often represented as an array of circulant permutations, which facilitate efficient implementation, and will typically have a number of linearly dependent rows. Although Gaussian elimination can be employed to compute the rank with a complexity of O(n 3 ), it is desirable to have an analytic way to compute the rank, particularly for classes of algebraic QC-LDPC codes. Methods to compute the rank of QC-LDPC codes have been investigated, including approaches involving Fourier transforms <ref type="bibr">[11]</ref>, <ref type="bibr">[12]</ref> and the matrix polynomial representation <ref type="bibr">[13]</ref>. However, these approaches are limited to certain code parameters.</p><p>In this paper, we will use some previous results by Smarandache and Vontobel <ref type="bibr">[6]</ref> to show how to construct polynomial generator matrices in various forms, including in standard form. The matrices are interesting from both the perspective of allowing for an encoding alternative to the methods in <ref type="bibr">[1]</ref> as well as from the resulting codewords that are constructed from the method. In particular, the rows of the generator matrices we construct are codewords with relatively small weight, in some cases, equal to the minimum distance of the code. We exemplify these methods on some known codes. Our approach employs the minors of the polynomial matrix which also allow for a most general formula to compute the rank of any paritycheck matrix representing a QC-LDPC code, and hence, the dimension of any QC-LDPC code.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>II. DEFINITIONS, NOTATIONS AND BACKGROUND</head><p>We use the following notation. For any positive integer L, [L] denotes the set {1, 2, . . . , L}. For any matrix M , we let M I,J be the sub-matrix of M that contains only the rows of M whose index appears in the set I and only the columns of M whose index appears in the set J ; if I equals the set of all row indices of M , we will simply write M J . We use the shorthand M J \i for M J \{i} . If I and J have the same cardinality, we use &#8710; I,J = det(H I,J ), and</p><p>As usual, an LDPC code C is described as the null space of a parity-check matrix H to which we associate a Tanner graph <ref type="bibr">[14]</ref> in the usual way. The girth of the Tanner graph, denoted by girth(H), is the length of its shortest cycle.</p><p>A protograph <ref type="bibr">[15]</ref>, <ref type="bibr">[16]</ref> is a small bipartite graph represented by an n c &#215; n v parity-check or base biadjacency matrix B with non-negative integer entries b ij . The paritycheck matrix H of a protograph-based LDPC block code can be created by replacing each non-zero entry b ij by a sum of b ij non-overlapping N &#215;N permutation matrices and a zero entry by the N &#215; N all-zero matrix. Graphically, this operation is equivalent to taking an N -fold graph cover, or "lifting", of the protograph. We denote the N &#215;N circulant permutation matrix where the entries of the N &#215;N identity matrix I are shifted to the left by r positions modulo N as I r . A quasi-cyclic (QC) LDPC code of length n = n v N is a protograph-based LDPC code, for which the N &#215; N lifting permutation matrices are all circulant matrices I r . Thus a QC code has an n c N &#215; n v N parity-check matrix H of the form</p><p>where the N &#215; N sub-matrices H i,j are circulant; applying equal circular shifts to each length-N sub-blocks of a codeword results in a codeword. With the help of the well-known isomorphism between the ring of circulant matrices over the binary field F 2 and the ring F 2 [x]/(x N -1) of F 2 -polynomials modulo x N -1 (see, e.g., <ref type="bibr">[17]</ref>), a QC LDPC code can also be described by an n c &#215; n v polynomial parity-check matrix over F 2 [x]/(x N -1). In particular, with the n c N &#215; n v N parity-check matrix H described above we associate the polynomial parity-check matrix</p><p>where h i,j (x) &#8712; F 2 [x]/(x N -1). Moreover, with any vector c = (c 1,0 , . . . , c 1,N -1 , . . . , c nv,0 , . . . , c nv,N -1 ) in F nvN</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>2</head><p>, we associate the polynomial vector c(x) = c 1 (x), . . . , c nv (x)</p><p>We note the simple technique described in <ref type="bibr">[6]</ref> to construct codewords of codes described by polynomial parity-check matrices, which extends a codeword construction technique by MacKay and Davey <ref type="bibr">[5,</ref><ref type="bibr">Theorem 2]</ref>.</p><p>Lemma 1. Let C be the QC code defined by the n c &#215; n v polynomial parity-check matrix H(x) over F 2 [x]/(x N -1). Let S be an arbitrary size-(n c +1) subset of [n v ] and let c(x) = c 1 (x), c 2 (x), . . . , c nv (x) be a length-n v vector defined by</p><p>We also note the following bound from <ref type="bibr">[6]</ref> based on the codewords created with Lemma 1:</p><p>where min * takes the minimum positive value of a set.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>III. A GENERATOR MATRIX FOR A QC CODE GIVEN BY H</head><p>This section, and the two theorems within, give an alternative approach to the method in <ref type="bibr">[13]</ref> to compute the rank of H by computing full minors of the polynomial matrix H(x). Moreover, it provides both a sparse generator matrix and a 1 The determinant of an m &#215; m-polynomial</p><p>, where the summation is over all m! permutations of the set [m]. Then det T transposes the polynomials, i.e., the exponents are taken with the negative sign modulo N . systematic generator matrix for the associated code C. This method also yields the known upper bounds on the minimum distance of the code C, see <ref type="bibr">[6]</ref>.</p><p>Let H be the n c N &#215; n v N parity-check matrix of a QC code C and let H(x) be its corresponding polynomial parity-check matrix over</p><p>If there exists a subset S of size n c of [n v ], and for simplicity and w.l.o.g. we assume that S = [n c ], such that</p><p>where</p><p>equivalent generator polynomial matrices for C:</p><p>with notation as above, and where the matrix I m&#215;m is the identity matrix of size</p><p>Proof: The proof is a relatively straightforward consequence of Lemma 1 and is omitted for space constraints. Remark 3. In Theorem 2, we give two (new) equivalent representations for both H(x) and G(x), the first one both matrices are sparse, while the second, is a systematic representation, both of which could be of interest to design efficient encoding and decoding algorithms. Note that the first representation of G(x) contains the codewords from which the upper bound (1) can be deduced, see also <ref type="bibr">[6]</ref>, and hence provides a sparse representation that would be amenable to high throughput encoding following approaches such as <ref type="bibr">[1]</ref>. The systematic version, as is typical, is not as sparse and, in most cases, the row codewords have weight larger than this upper bound. However, the systematic form may also be of interest, e.g., to avoid the need for encoder inverse operations.</p><p>In the following we give two examples and show how this method of creating sets of codewords based on the full size minors of a n c &#215; (n c + 1) submatrix of H(x) can also display codewords of the weight equal to the minimum distance. The upper bound (1) on the minimum distance given by the minimum of the weights of these codewords is relevant because it is shown to be tight. Example 4. (AR4JA codes) Let H(x) be the polynomial parity-check matrix given by</p><p>The rows of the matrix G(x) below are linearly independent codewords for the code C given by H, and since</p><p>, the matrix G(x) has rank 2N = 8 and thus, forms a generator matrix for the code C:</p><p>Note that the vectors (&#8710; T 245 , &#8710; T 145 , 0, &#8710; T 125 , &#8710; T 124 ), (&#8710; T 345 , 0, &#8710; T 145 , &#8710; T 135 , &#8710; T 134 ), (0, &#8710; T 345 , &#8710; T 245 , &#8710; T 235 , &#8710; T 234 ), are also codewords, where &#8710; 145 = det(H 145 ) = x + 1, &#8710; 245 = det(H 245 ) = 0, and &#8710; 345 = det(H 345 ) = x, but they are linear combinations of the ones displayed in the matrix G(x), so they are not needed for the generator matrix. Displaying them is useful, however, since the nonzero minimum of the weights of the five codewords gives an upper bound on the minimum distance of the code (see <ref type="bibr">(1)</ref>), in this case, the codeword (&#8710; T 245 , &#8710; T 145 , 0, &#8710; T 125 , &#8710; T 124 ) = (0, x + 1, 0, x + 1, 0) has weight 4, which is in fact the minimum distance of the code; this code has parameters <ref type="bibr">[20,</ref><ref type="bibr">8,</ref><ref type="bibr">4]</ref>.</p><p>Multiplying the two rows of G by (x 3 + x 2 + 1) -1 = x 2 + x + 1 gives a generator matrix in standard form,</p><p>is a polynomial parity-check matrix in systematic form.</p><p>We exemplify the method also on a 4N &#215; 8N , N = 16, irregular matrix.</p><p>Example 5. Let H (128,64) , shown below, be the 4N &#215; 8N , N = 16, protograph-based matrix of the [128, 64, 14] irregular, multi-edge protograph specified by the NASA Consultative Committee for Space Data Systems (CCSDS) <ref type="bibr">[16]</ref>, <ref type="bibr">[18]</ref>:</p><p>Let S = {5, 6, 7, 8}. We use the notation &#8710; abcd = det(H {a,b,c,d} ) and compute &#8710; 5678 = x 14 +x 12 +x 3 , which is invertible in F 2 [x]/(x 16 +1), since x 16 +1 = (x+1) 16 has only (x + 1) as irreducible factor in F 2 [x]. We compute &#8710; -1 5678 = (x 14 +x 12 +x 3 ) -1 = x 13 +x 12 +x 11 +x 10 +x 9 +x 8 +x 7 +x+1, so that we can compute the values &#948; abcd &#8710; abcd (&#8710; S ) -1 that appear in the the systematic parity-check matrix H (x) and the systematic generator matrix G(x) given as </p><p>&#948;2568 =x 14 + x 13 + x 12 + x 10 + x 9 + x 6 + x 3 + 1, &#948;2567 =x 11 + x 5 + x 4 + 1, &#948;3678 = x 15 + x 11 + x 8 + 1, &#948;3578 =(x + 1)(x 14 + x 12 + x 10 + x 7 + x 6 + x 4 + 1), &#948;3568 =x 15 + x 12 + x 11 + x 9 + x 7 + x 5 + x 2 + x + 1, &#948;3567 =x 14 + x 11 + x 10 + x 9 + x 5 + x 2 + x + 1, &#948;4678 =x 15 + x 12 + x 11 + x 10 + x 8 + x 6 + x 4 + x 2 , &#948;4578 =x 14 + x 10 + x 8 + x 7 + x 6 + x 5 + x 4 + x 2 , &#948;4568 =x 15 + x 11 + x 10 + x 7 + x 5 + x 4 + x 3 + x 2 , &#948;4567 =x 15 + x 14 + x 12 + x 10 + x 5 + x + 1, where &#948; T abcd is the transpose of &#948; abcd , which changes the exponents to their negatives modulo N .</p><p>A sparser but "systematic-like" generator matrix is, however, the following,</p><p>with a corresponding "systematic-like" parity-check matrix</p><p>2022 IEEE International Symposium on Information Theory (ISIT) &#8710;2578 = (x + 1)(x 14 + x 12 + x 10 + x 4 ) + 1, &#8710;2568 = (x 2 + 1)(x 12 + x 11 + x 5 + x 2 + x) + x + 1, &#8710;2567 = x 12 + x 9 + x 8 + x 2 + x + 1, &#8710;3678 = x 13 + x 12 + x 9 + x 7 + x 6 + x 4 + x 3 + x 2 , &#8710;3578 = x 13 + x 11 + x 9 + x 8 + x 4 + x 2 , &#8710;3568 = x 14 + x 11 + x 9 + (x + 1)(x 4 + x 2 + 1), &#8710;3567 = x 15 + x 14 + x 12 + x 10 + x 9 + x 6 + x 4 + 1, &#8710;4678 = x 15 + x 10 + x 5 + x 2 , &#8710;4568 = x 15 + x 11 + x 10 + x 9 , &#8710;4578 = x 14 + x 13 + x 12 + x 11 + x 9 + x 7 ,</p><p>The rows of the matrix G (x) represent codewords of weight that equal the upper bound on the minimum distance from (1). The last row, for example, gives d min (C) &#8804; 24.</p><p>If instead we take S = {1, 5, 6, 8}, the polynomial &#8710; 1578 = x 15 + x 11 + x 10 + x 9 + x 8 + x 6 + x 3 + 1 is not invertible in F 2 [x]/(x 16 + 1), so we cannot obtain the identity matrix. B. Case of n c N &#215; n v N rank deficient matrices H This section considers the case in which, for any subset S of size In this case, we can still construct the matrix G 1 of codewords similar to the one formed in Section III-A:</p><p>However, unlike the case in which &#8710; S is invertible, this matrix does not generate the entire code C, but only a subcode of C because its rank is lower that the dimension of the code. In this case, we will need to add to this matrix a few rows of "obvious" codewords to increase the rank. We exemplify this on the famous [155, 64, 20] Tanner code below. All 3 &#215; 3 minors and X 31 + 1 have common factor (x + 1), so H(x) does not have any irreducible 3 &#215; 3 submatrix H S .</p><p>Let S = {1, 2, 3}, and &#8710; 123 det(H 123 ) = x 28 + x 18 + x 16 + x 14 + x 9 + x 8 . The matrix</p><p>is a matrix of two codewords. It has rank 60, so it only generates a subcode of C (of the same minimum distance 20).</p><p>To increase its rank and, thus, obtain a full generator matrix, we need to add some linearly independent codewords to this matrix. One would hope that the entire matrix of codewords</p><p>has the correct rank, but this is not the case since three of the 5 codewords above are linear combinations of the remaining two, and the rank of the matrix above is still 60 over F 2 . Although these 3 codewords are not necessary to construct a generator matrix, displaying them is useful, nonetheless, since they give the known upper bound on the minimum distance (1), d min (C) &#8804; 4 &#8226; 6 = 24, see <ref type="bibr">[6]</ref>. However, the matrix</p><p>, where f = 1 + x + x 2 + &#8226; &#8226; &#8226; + x 30 , has the correct rank 64, and its rows are codewords for the code given by H. Therefore, it is a generator matrix for the [155, 64, 20] Tanner code. This generator matrix is sparse and in "systematic-like" form. We can make it more systematic in the following way. Since gcd(&#8710; 123 , f ) = 1, over the polynomial ring F 2 [x], there exist A(x), B(x) &#8712; F 2 [x], A = (x 3 + 1)(x 25 + x 5 ) + (x + 1)(x 18 + x 15 + x 14 + x 9 + x) B = (x + 1)(x 25 + x 22 + x 16 + x 12 + x 10 + 1) + x 9 ,</p><p>Adding the first row of G multiplied by A with the fifth row of G, and adding the second row of G multiplied by A with the sixth row of G, we obtain The following theorem gives the formula for the rank over F 2 of a scalar matrix using the computation of the degree of the minors of the corresponding polynomial matrix. Theorem 7. Let H be a n c N &#215; n v N matrix over F 2 and H(x) be the corresponding n c &#215; n v polynomial matrix. For all i &#8712; [n c ], we define the following in F 2 [x]:</p><p>, where gcd(0/0, x N + 1) gcd(0, x N + 1) = x N + 1. Then,</p><p>Proof: In F 2 [x], H(x) is equivalent (after elementary row and column operations that leave its rank invariant) to its Smith normal form diag( &#947;1 &#947;0 (x), &#947;2 &#947;1 (x), . . . ,</p><p>Taking the gcd of the entries with (x N +1), we obtain a matrix equivalent to H(x) in F 2 [x]/(x N +1), therefore, the rank over F 2 of the n c N &#215; n v N matrix H is equal to the sum of the ranks of the circulant matrices associated to</p><p>x 30 + x 24 x 12 + x 14 x<ref type="foot">foot_2</ref> + x 13 x + x 9 &#63737; &#63739; be a 3 &#215; 5 polynomial matrix in F 2 [x]. Depending on N , its Tanner graph can have girth 6. We will keep N variable, and compute the rank of the 3N &#215; 5N matrix H obtained from H(x) in the ring F 2 [x]/(x N + 1). We obtain (the following include relevant Magma commands):</p><p>Therefore, the same matrix gives a code of larger dimension if N is even. For example, N = 44, gives H of rank 128, and the code of dimension 92, while N = 45 gives a slightly longer code that has the same dimension 92.</p><p>We end with a theorem that shows how to obtain an equivalent upper triangular form for H(x) and thus, to provide an alternative proof to Theorem 7. 3 The proof is based on simple computations of determinants. Theorem 9. Let H(x) = (h ij ) i,j by an n c &#215; n v polynomial matrix. We assume, w.l.o.g, that gcd(</p><p>, where the determinants and the divisions are performed in F 2 [x] first, followed by the modular operation mod (x N +1).</p><p>Example 10. Let H(x) be the polynomial parity-check matrix of Example 6. We compute &#947; 1 = 1, Note that there could be N for which simpler equivalent triangular forms can be obtained. For values N for which</p><p>where &#948; I,J &#8710; I,J mod x N +1, the denominator &#947; i-1 can be dropped in Theorem 9. For example, the matrix H 2 (x) below gives also the same [155, 64, 20] code as H(x), for N = 31:</p><p>x 8</p><p>x 16 0 x 10 + x 6 x 20 + x 8 x 12 + x 9 x 20 + x 18 0 0 &#948; IV. CONCLUDING REMARKS This paper shows how to obtain a generator matrix for an LDPC code using minors of the polynomial parity-check matrix. The resulting matrices can be presented in several forms that may facilitate efficient encoder implementation as well as minimum distance analysis. Moreover, the approach was shown to provide a formula for the dimension of any QC-LDPC code based on the minors of its polynomial paritycheck matrix.</p></div><note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_0"><p>By equivalent, we mean that a matrix can be obtained from an equivalent matrix by applying elementary row operations (we call them row equivalent), which would not change its row space nor its null space, and column permutations, which might change these both, leaving invariant all the important parameters of the corresponding code and its Tanner graph.2022 IEEE International Symposium on Information Theory (ISIT)</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_1"><p>Authorized licensed use limited to: UNIVERSITY OF NEW MEXICO. Downloaded on October 07,2022 at 21:45:41 UTC from IEEE Xplore. Restrictions apply.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2"><p>Note that<ref type="bibr">[13]</ref> only addresses the nc = 3 case.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3"><p>We perform elementary row and column permutations to obtain this form.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_4"><p>Note that we can also compute the rank over F 2 of H from the equivalent form H 1 .2022 IEEE International Symposium on Information Theory (ISIT)</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2022" xml:id="foot_5"><p>IEEE International Symposium on Information Theory (ISIT)</p></note>
		</body>
		</text>
</TEI>
