<?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'>Nested Array-Based Spatially Coupled LDPC Codes</title></titleStmt>
			<publicationStmt>
				<publisher></publisher>
				<date>2021</date>
			</publicationStmt>
			<sourceDesc>
				<bibl> 
					<idno type="par_id">10228204</idno>
					<idno type="doi">10.1109/TCOMM.2021.3061689</idno>
					<title level='j'>IEEE Transactions on Communications</title>
<idno>0090-6778</idno>
<biblScope unit="volume"></biblScope>
<biblScope unit="issue"></biblScope>					

					<author>Salman Habib</author><author>David G. Mitchell</author><author>Jorg Kliewer</author>
				</bibl>
			</sourceDesc>
		</fileDesc>
		<profileDesc>
			<abstract><ab><![CDATA[Linear nested codes, where two or more sub-codes are nested in a global code, have been proposed as candidates for reliable multi-terminal communication. In this paper, we consider nested array-based spatially coupled low-density parity-check (SC-LDPC) codes and propose a line-counting based optimization scheme for minimizing the number of dominant absorbing sets in order to improve its performance in the high signal-to-noise ratio regime. Since the parity-check matrices of different nested sub-codes partially overlap, the optimization of one nested sub-code imposes constraints on the optimization of the other sub-codes. To tackle these constraints, a multi-step optimization process is applied first to one of the nested codes, then sequential optimization of the remaining nested codes is carried out based on the constraints imposed by the previously optimized sub-codes. Results show that the order of optimization has a significant impact on the number of dominant absorbing sets in the Tanner graph of the code, resulting in a trade-off between the performance of a nested code structure and its optimization sequence: the code which is optimized without constraints has fewer harmful structures than the code which is optimized with constraints. We also show that for certain code parameters, dominant absorbing sets in the Tanner graphs of all nested codes are completely removed using our proposed optimization strategy.]]></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>Linear nested codes are error correcting codes where multiple information words are encoded separately and then are algebraically superimposed at the physical layer prior to transmission <ref type="bibr">[2]</ref>, <ref type="bibr">[3]</ref>. Nested codes are commonly used for error correction in wireless multi-terminal networks. In nested coding, each information word is associated with a codeword which belongs to a different code, also called a sub-code. Suppose, for example, there are two information words u 1 and u 2 of length k 1 and k 2 , respectively. A codeword corresponding to each information word, x i &#8712; F n 2 , i &#8712; {1, 2}, is generated via a generator matrix G i , or parity-check matrix H i , respectively. Here, x i belongs to a different sub-code C i , and the transmitted codeword x is an element of the global code C . For example, the generator matrix G of the global code is obtained by stacking the individual G 1 and G 2 matrices vertically as G1 G2 .</p><p>This material is based on work supported by the National Science Foundation under Grant Nos. ECCS-1710920, ECCS-1711056, OIA-1757207, and HRD-1914635. This paper has been presented in part at the 2019 IEEE Information Theory Workshop, Visby, Sweden <ref type="bibr">[1]</ref>.</p><p>The construction of nested regular and irregular low-density parity-check block codes (LDPC-BCs) have been considered in <ref type="bibr">[4]</ref> and <ref type="bibr">[5]</ref>. Irregular LDPC-BCs can be optimized to outperform regular LDPC-BCs in the waterfall region under belief propagation (BP) decoding; however, they generally suffer from an early onset of an error-floor, a flattening of the bit error rate (BER) performance curve in the high signal-tonoise ratio (SNR) region, and are not implementation friendly <ref type="bibr">[6]</ref>. In comparison, regular LDPC-BCs generally have better error-floor performance as a result of their minimum distance and graph properties <ref type="bibr">[7]</ref>, <ref type="bibr">[8]</ref> and lower decoder complexity; however, their performance deteriorates with increasing graph density under BP decoding <ref type="bibr">[9]</ref>, making them undesirable for the construction of nested codes that require a higher graph density than the non-nested ones.</p><p>Spatially coupled LDPC (SC-LDPC) codes <ref type="bibr">[6]</ref>, <ref type="bibr">[10]</ref>, on the other hand, are known to approach the capacity of binary input memoryless channels under BP decoding as the graph density increases <ref type="bibr">[11]</ref>. Hence, regular SC-LDPC codes are good potential candidates for nested code constructions. SC-LDPC codes are obtained by coupling, or connecting, multiple Tanner graphs corresponding to an underlying LDPC-BC. One potential obstacle of graph-based codes is that Tanner graphs contain small sub-structures called absorbing sets (ABSs) <ref type="bibr">[12]</ref> which are known to cause the BP decoder to fail. These failures are responsible for the error-floor phenomenon. However, since spatial coupling is able to reduce or eliminate many of these harmful ABSs <ref type="bibr">[13]</ref>, SC-LDPC codes have superior errorfloor performance when compared to their BC counterparts.</p><p>The optimization of SC-LDPC codes for magnetic recording channels is considered in <ref type="bibr">[14]</ref>, which generalizes <ref type="bibr">[15]</ref> for ABSs of type (4, 4(&#947; -2)), where &#947; is the column weight. Moreover, <ref type="bibr">[16]</ref> analyzes the conditions to avoid cycles of lengths 6 and 8 in SC-LDPC codes. An array-based (AB) SC-LDPC code is constructed from the Tanner graph of an AB-LDPC-BC by applying an edge-spreading technique <ref type="bibr">[17]</ref>, <ref type="bibr">[18]</ref>, <ref type="bibr">[15]</ref>. AB-SC-LDPC codes possess a regular quasi-cyclic (QC) structure that makes them more attractive for hardware implementation because different regions on the Tanner graph of AB-LDPC codes can be decoded in parallel, which improves the decoding throughput and lowers the decoding latency. Moreover, their structure also guarantees a certain minimum distance <ref type="bibr">[19]</ref> and a girth of 6 (they are free of 4-cycles). These features, in turn, guarantee the non-existence of certain harmful ABSs <ref type="bibr">[12]</ref>. Due to these advantages, we investigate the construction of nested AB-SC-LDPC codes, which, to the the column group number and the column number inside a particular column group of an AB-LDPC matrix H(&#947;, p). Therefore, each row (resp., column) of an AB matrix is given by r = qp+s (resp., c = jp+k). In this way, the location of an entry of an AB matrix (r, c) may be written as (q, s; j, k). Note that when referring to multiple row groups, we use subscripts q 0 , q 1 , . . . , and so on where q i &#8712; {0, 1, . . . , &#947;-1}, with similar subscript use for multiple row numbers, column groups, and column numbers.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Array-Based SC-LDPC Codes</head><p>AB-SC-LDPC codes can be constructed from AB-LDPC-BCs by coupling L copies of the Tanner graph G H via edge-spreading <ref type="bibr">[25]</ref>. In terms of matrices, edge-spreading is equivalent to splitting H(&#947;, p) into a sum of m+1 component block matrices of the same dimension as H(&#947;, p), such that H(&#947;, p) = H 0 + H 1 + &#8226; &#8226; &#8226; + H m , where m denotes the memory of the code. The construction involves a spreading matrix B m &#8712; F &#947;&#215;p m+1 , where an entry g &#8712; {0, 1, . . . , m} in position (i, j) of this matrix indicates that the p &#215; p circulant block in row group i, column group j, of H(&#947;, p) is copied to its corresponding position in H g <ref type="bibr">[18]</ref>. The resulting timeinvariant parity-check matrix of a terminated SC-LDPC code is denoted</p><p>and is given as</p><p>where L &gt; m + 1 is the number of column blocks (each containing p column groups), called the coupling length, and &#957; = (m + 1)p 2 is the constraint length of H(&#947;, p, L). We can also label the row and column blocks y &#8712; {0, 1, . . . , L+m-1} and v &#8712; {0, 1, . . . , L -1} in a similar way to AB-LDPC-BCs, where an individual entry (r, c) in an AB-SC-LDPC code may then be written as (y, q, s; v, j, k).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Nested Codes</head><p>A nested code consists of a group of M sub-codes</p><p>, which is a linear combination of all the codewords x i obtained from each of the sub-codes. The process of obtaining x via nested coding is expressed as</p><p>where &#8853; denotes the bitwise XOR operation and In comparison, nested dual codes of the above mentioned codes are defined using parity check matrices H i &#8712; F li&#215;n 2 , l i &#8805; n -k i , and H &#8712; F l&#215;n 2 , l &#8805; n -k, corresponding to the nested codes C i and C , respectively, which form the null spaces of matrices H i and H, respectively. Note that the matrices H i , &#8704;i, and H are considered as (potentially overlapping) sub-matrices of a larger &#292; &#8712; F b&#215;n 2 matrix, where l i &lt; b &#8804; n , &#8704;i, and l &lt; b &#8804; n, respectively. The construction details of H i and H from &#292; are discussed in <ref type="bibr">[4]</ref> for LDPC-BCs.</p><p>In the remainder of the paper, we consider H i and H to be the parity-check matrices of nested regular LDPC codes. We refer to the column weight &#969; i (resp., &#969;) of sub-code C i (resp., global code C ) as the column weight of its corresponding (regular) parity-check matrix H i (resp., H). This is the construction used in the rest of the paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>D. Absorbing Sets</head><p>In G H , suppose X &#8834; V and let N (X) be the set of all neighbors of X. Let O(X) be the set of neighbors of X with odd degree in the subgraph induced by X &#8746; N (X).</p><p>and the property that each VN in X has strictly fewer neighbors in O(X) than in C \ O(X). An (a, b) ABS is a fully ABS if, additionally, all nodes in V \ X have strictly fewer neighbors in O(X) than in C \ O(X). A minimal (a, b) ABS refers to an ABS which has the smallest possible existing value for a in a given LDPC Tanner graph, and where b is the smallest possible value for the given a. Definition 2. A block k-cycle in an AB-LDPC code is a collection of p cycles of length k, where each cycle in the collection spans the same row and column groups of the parity-check matrix.</p><p>Remark 1. A (3, 3) ABS is the minimal ABS that can exist in a column weight-3 AB-LDPC-BC code <ref type="bibr">[12]</ref>. For &#947; = 4, a (4, 4) ABS is the minimal ABS in an AB-LDPC-BC for p = 5, 7; whereas, a (5, 4) ABS is the minimal ABS in an AB-LDPC-BC for the case p = 11, 19; finally, <ref type="bibr">(6,</ref><ref type="bibr">4)</ref> ABSs exist in an AB-LDPC-BC for p &gt; 5, and it is the minimal ABS for all p &gt; 19 <ref type="bibr">[12]</ref>. For &#947; = 5, the minimal ABS in AB-LDPC-BCs is of size <ref type="bibr">(4,</ref><ref type="bibr">8)</ref>, and (5, 9) and (6, 8) ABSs are also dominant <ref type="bibr">[26]</ref>. <ref type="foot">1</ref>From the structure of dominant ABSs discussed in <ref type="bibr">[12]</ref>, <ref type="bibr">[26]</ref>, we note the following.</p><p>Remark 2. For &#947; = 3, a (3, 3) ABS in an AB-LDPC code corresponds to a 6-cycle and a (4, 2) ABS consists of two (3, 3) ABSs. Moreover, for &#947; = 4 (resp., &#947; = 5), the (4, 4), <ref type="bibr">(5,</ref><ref type="bibr">4)</ref> and (6, 4) (resp., <ref type="bibr">(4,</ref><ref type="bibr">8)</ref>, <ref type="bibr">(5,</ref><ref type="bibr">9)</ref> and (6, 8)) ABSs in an AB-LDPC code all contain at least one 6-cycle. Consequently, by minimizing the number of 6-cycles in AB-SC-LDPC codes, we also minimize the related ABSs discussed in Remark 1.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>E. Line-counting</head><p>A 6-cycle must span three distinct row and column groups of an AB matrix <ref type="bibr">[16]</ref>, <ref type="bibr">[20]</ref>. As shown in Fig. <ref type="figure">1</ref>, suppose that the columns of a 6-cycle have indices c 1 , c 2 , c 3 and that they exist in distinct column groups j 1 , j 2 , j 3 , respectively. Similarly, suppose that the rows of a 6-cycle have indices r 1 , r 2 , r 3 and they exist in distinct row groups q 1 , q 2 , q 3 , respectively. In <ref type="bibr">[24]</ref>, <ref type="bibr">(3,</ref><ref type="bibr">3)</ref> ABSs are enumerated by computing the area of a 2D polytope lying on the (j, j ) plane, j = j , where a data point (coordinate) in this polytope corresponds to a (3, 3) ABS (and hence a 6-cycle). <ref type="foot">2</ref> This technique, however, has two drawbacks: first, it is only applicable to AB-SC-LDPC codes constructed via the cutting-vector scheme <ref type="bibr">[13]</ref>, and secondly, it only works for column weight-3 AB-LDPC codes. To allow more general codes, such as the ones obtained via general edge-spreadings <ref type="bibr">[18]</ref>, a (3, 3) ABS enumeration technique, namely line-counting, was proposed in <ref type="bibr">[20]</ref> which enumerates <ref type="bibr">(3,</ref><ref type="bibr">3)</ref> ABSs by counting 6-cycles on the (c 1 , c 2 ) plane.</p><p>In this paper, we propose a variant of line-counting, called adapted line-counting (ALC), in conjunction with an optimization algorithm (more details in Section IV) to recursively optimize the entries of a B m spreading matrix in order to ensure that the resulting H(&#947;, p, L) matrix contains as few harmful ABSs as possible. In order to facilitate presentation of our ALC scheme later in Section III, the line-counting method of <ref type="bibr">[20]</ref> is briefly reviewed. We refer to a matrix region R that consists of at least six (not necessarily contiguous) circulant matrices spread across three row groups and at most p column groups, with one row group being a row group of I matrices only. A row block from a H(&#947; = 3, p, L) matrix in the case of AB-SC-LDPC codes, contains a row group of I matrices and two row groups consisting of &#963; f z mod p matrices for 0 &#8804; z &#8804; p -1 and f = 1, 2. W.l.o.g., for any 6-cycle in R, we have the following <ref type="bibr">[20]</ref> (row and column block indices in the case of AB-SC-LDPC codes are fixed and dropped for clarity):</p><p>&#8226; c 2 &gt; c 1 and w 1 p &#8804; c 1 &lt; w 2 p, w 3 p &#8804; c 2 &lt; w 4 p, where w 1 , w 2 , w 3 , w 4 are integers satisfying 0</p><p>If the 6-cycle row r 1 , incident to columns c 1 and c 2 (see Fig. <ref type="figure">1</ref>), exists in a row group of I matrices, we obtain c 2 -c 1 = np, where n = {1, 2, . . . , w 4 -w 1 -1};</p><p>&#8226; &#945;p &#8804; c 3 &lt; &#946;p, where &#945; and &#946; are integers satisfying 0 &#8804; &#945; &#8804; p -1, 1 &#8804; &#946; &#8804; p, and &#945; &lt; &#946;. The circulant matrix &#963; z , z &#8712; {0, 1, . . . , p -1}, has its nonzero elements located at (s, k), where s = z + k mod p. W.l.o.g., let q 2 (resp., q 3 ) represent the index of the row group containing all the &#963; 2z mod p (resp., &#963; z ) circulant matrices (q 2 = 2 and q 3 = 1 in an AB-LDPC-BC). The edges (ones in the parity-check matrix) corresponding to (r 2 , c 3 ) and (r 2 , c 2 ) are in rows s 2 = 2j 3 + k 3 mod p and s 2 = 2j 2 + k 2 mod p within their row group r 2 . Since these rows are identical, 2j 2 + k 2 = 2j 3 + k 3 mod p, which are rearranged as</p><p>(2) Now, considering (r 3 , c 1 ), we note that, s 3 = j 1 + k 1 mod p, and s 3 = j 3 + k 3 mod p. Since these rows are also identical, we get j 1 + k 2 = j 3 + k 3 mod p, which are rearranged as</p><p>(3) Substituting ( <ref type="formula">2</ref>) in (3), and after rearranging, we obtain</p><p>(4) Now, if the roles of q 2 and q 3 are interchanged, we obtain (via a similar procedure)</p><p>(5) Finally, by invoking the inequality &#945; &#8804; j 3 &#8804; &#946; -1 and by taking into account the corresponding 6-cycle column value c 3 as a function of c 1 and c 2 , we obtain the range of c 3 in R as <ref type="bibr">[20]</ref> &#945;p</p><p>where the inequalities in (6a) are obtained from (4), and the ones in (6b) are obtained from <ref type="bibr">(5)</ref>.</p><p>Consider Fig. <ref type="figure">2</ref> for an illustration. The grey area in Fig. <ref type="figure">2</ref>(a) is an example of a region R in an H 0 matrix containing a 6cycle (in red) with column (resp., row group) indices c 1 , c 2 , and c 3 (resp., q 1 , q 2 , and q 3 ) of H 0 . The white region in Fig. <ref type="figure">2</ref>(a) indicates all-zero circulant matrices, and the horizontal arrows represent the range of values of the columns c 1 , c 2 , and c 3 of the 6-cycle. These ranges generate vertical, horizontal and diagonal boundaries, respectively, on the (c 1 , c 2 ) plane in Fig. <ref type="figure">2(b)</ref>, and the area enclosed within these boundaries is shown in grey. In particular, the red diagonal boundaries are obtained from the first inequality in (6a). A 6-cycle with columns c 1 and c 2 exists in R if a coordinate (c 1 , c 2 ) on the line c 2 -c 1 = np lies within the grey region L on the (c 1 , c 2 ) plane. Consequently, the number of 6-cycles in R is determined by the number of integer points on the line c 2c 1 = np within L .</p><p>Note that the inequalities in (6a) and (6b) only hold for column weight-3 AB matrices where the circulant matrix shift factor is f = 1, 2. Consequently, the line-counting method of <ref type="bibr">[20]</ref> is not applicable for arbitrary column weight-3 AB-LDPC-BC matrices (for the case f &gt; 2), which will be encountered during nested code optimization. To allow for f &gt; 2, we introduce ALC in Section III-E which generalizes these inequalities. This will facilitate the nested code optimization considered in Section IV-B.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>III. NESTED AB-SC-LDPC CODES</head><p>In this section, we discuss the construction procedure of nested AB-SC-LDPC codes from the corresponding nested AB-LDPC-BCs. For nested AB-SC-LDPC codes with &#969; i = 3, 4, or 5, whose dominant ABSs are known to contain 6cycles (see Remark 2), ALC can be used directly as a tool in the construction. <ref type="foot">3</ref></p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. General Construction</head><p>We form a nested AB-LDPC-BC sub-code C i , i &#8712; {1, 2, . . . , M }, and a global code C from sub-matrices</p><p>and H(3, p), respectively, where &#969; i &gt; 3.</p><p>Let &#8486; i be the number of possible sub-codes C i for column weight &#969; i &#8805; 4. To simplify our analysis, we suppose that</p><p>but generalizations of this selection are possible. It follows from the array structure <ref type="bibr">[23]</ref> that there are &#8486; i = &#947; -&#969; i + 1, &#947; &#8805; 5, possible sub-codes, and hence &#947; should be chosen sufficiently large to construct the desired M sub-codes. Note that the design rate R i = 1 -&#969;i p of C i decreases with increasing &#969; i . As a result, constructing high rate nested codes with large &#969; i also requires a relatively large p compared to a nested code with smaller &#969; i . In turn, this also makes each sub-code optimization more computationally intensive as M increases.</p><p>Example 1. We construct the &#292;(&#947;, p) AB-LDPC-BC matrix with &#947; = 5, p = 5, and M = 2, where</p><p>There are &#8486; i = 2 possible sub-codes of column weight &#969; i = 4 in our construction. This matrix consist of submatrices: H 1 (4, 5) (black and blue row groups 0, 1, 2, and 3, with h 1 = 0), H 2 (4, 5) (black and red row groups 0, 1, 2, and 4, with h 2 = 1), and H(3, 5) (black row groups 0, 1, and 2) with corresponding column weight 4 nested sub-codes C 1 , C 2 , and a column weight-3 global code C , respectively. Explicitly, the resulting nested sub-matrices are </p><p>Nested AB-SC-LDPC matrices are constructed in a similar way, with parity-check matrices denoted as H i (&#969; i , p, L) and H(3, p, L) obtained by edge-spreading H i (&#969; i , p) and H(3, p) via spreading matrices B i,m &#8712; F &#969;i&#215;p m+1 and B m &#8712; F 3&#215;p m+1 , respectively, where the row indices of B i,m correspond to the row group indices of H i (w i , p). Since the codes are nested, the same relationship between H i (w i , p) and H(3, p) also holds for the edge-spreading matrices, i.e., B m is a sub-matrix of B i,m . An example of creating nested AB-SC-LDPC codes from the nested AB-LDPC-BCs in Example 1 is given below in Example 2.</p><p>Example 2. For memory m = 1, we first generate an edgespreading matrix</p><p>which can be used to form global AB-SC-LDPC matrix H(3, 5, L) with components (see ( <ref type="formula">1</ref>))</p><p>and corresponding global code C . Similarly, H 1 (4, 5) from ( <ref type="formula">7</ref>) can be used to generate the nested AB-SC-LDPC matrix H 1 (4, 5, L), using the example edge-spreading matrix</p><p>with components</p><p>and corresponding nested code C 1 . Note that H 1 (4, 5, 2) contains the (global) H(3, 5, 2) matrix, shown in black. The sub-matrix H 2 (4, 5, 2) is constructed in a similar fashion from the spreading matrix</p><p>Note that the order of optimization determines how good the sub-codes or the global code will be in terms of the number of harmful ABSs. We will see later in Section IV-B that for column weight-3, 4, or 5 nested AB-SC-LDPC codes, where harmful ABSs are known to contain 6-cycles, ALC can be employed effectively to speed-up the optimization procedure.</p><p>The optimization of nested AB-SC-LDPC codes may be performed in several ways. In any method, the spreading of all row groups S = {0, 1, . . . , &#947; -1} must be determined, but the results will vary depending on the order of the optimization. In the following, we consider two general exemplary methods. An example and a discussion will follow in Section III-B. Method 1: First, optimize the B m matrix, containing row groups S 0 = {0, 1, 2}, to construct the global matrix H(3, p, L) from H(3, p). Then, pick an ordering of {1, 2, . . . , M}, denoted t = (t 1 , t 2 , . . . , t M ), and by incor-porating the constraints given by B m , sequentially optimize for i = 1, 2, . . . , M , the remaining rows of each B ti,m matrix containing row groups S ti &#8838; S, i.e., those row groups S ti &#8745; (S \ &#8746; i-1 j=1 S tj ) in S ti that have not yet been determined, to construct H ti (&#969; i , p, L) from H ti (&#969; i , p). <ref type="foot">4</ref>Method 2: Again, pick an ordering t = (t 1 , t 2 , . . . , t M ) of {1, 2, . . . , M }. Here, we first optimize the nested B t1,m matrix, with row groups S t1 = {0, 1, 2, . . . , w t1 -2, w t1 -1+h t1 } to construct H t1 (&#969; t1 , p, L) from H t1 (&#969; t1 , p) (note that this nested matrix contains the global matrix corresponding to S 0 = {0, 1, 2}, and thus the global code is not independently optimized). Given the constraints of the newly generated B t1,m matrix, sequentially optimize the matrix B ti,m , i = 2, 3, . . . , M , by determining the spreading of any row groups in S ti &#8745;(S \&#8746; i-1 j=1 S tj ), to construct H ti (&#969; ti , p, L) from H ti (&#969; ti , p).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Constrained Optimization</head><p>Suppose that B t1,m is optimized first (i.e., without constraints) using Method 2. This unconstrained optimization determines any edge-spreading matrix B ti,m , for i = 1, with a set of row indices S ti &#8834; S t1 , and partially determines any edge-spreading matrix B ti,m , i &#8712; {2, 3, . . . , M } with a set of row indices S ti &#8834; S t1 , but S ti &#8745; S t1 = &#8709;. The row(s) of B ti,m that are not optimized yet are determined via constrained optimization. Although the order of constrained optimization may be chosen in an ad hoc manner, the freedom in choosing the entries of B ti,m may diminish as more edge-spreading matrices are determined prior to it. An example is provided in the following to demonstrate the constrained optimization process (which is applicable to both Methods 1 and 2, but shown only for Method 2).</p><p>Example 3. Fig. <ref type="figure">3</ref> shows the row group indices of four nested AB-LDPC-BC sub-codes using four colored boxes. The indices enclosed within the blue, red, green and black boxes, correspond to respective row groups S 1 = {0, 1, . . . , &#969; -1}, S 2 = {0, 1, . . . , &#969;, &#947; -3}, S 3 = {0, 1, . . . , &#947; -4, &#947; -2}, and S 4 = {0, 1, . . . , &#947; -3, &#947; -1} of H(&#947;, p), and they form the respective sub-matrices H 1 (&#969;, p), H 2 (&#969; + 2, p), H 3 (&#947; -2, p), and H 4 (&#947; -1, p) of H(&#947;, p), with respective column weights &#969;, &#969; +2, &#947; -2, and &#947; -1, and corresponding respective nested sub-codes <ref type="figure"/>and<ref type="figure">3</ref> &lt; &#969; &lt; &#947;. To construct an associated AB-SC-LDPC code, we select an optimization order, suppose t = (2, 1, 3, 4). First, spreading matrix B 2,m is determined. Note that this determines B 1,m since S 1 &#8834; S 2 . Next, B 3,m is partially determined, but row groups &#969; + 1, &#969; + 2, . . . , &#947; -4, &#947; -2 must now be optimized. Finally, B 4,m is partially determined by both B 2,m and B 3,m , and the only remaining row group to optimize is &#947; -1. Note that, here, the global code C corresponds to the sub-matrix H(3, p) of H(&#947;, p) with row groups 0, 1, and 2. The edge-spreading matrices are now used to construct H 1 (&#969;, p, L), H 2 (&#969; +2, p, L), H 3 (&#947; -2, p, L) and H 4 (&#947; -1, p, L), respectively, as described in Section IV-A. Recall that the goal of our nested code optimization is to minimize the number of dominant ABSs in the sub-code's Tanner graph. In terms of sub-codes, the constrained optimization order in this example would give the most freedom to code C 2 , and we would expect that code to have relatively fewer harmful ABSs. On the other hand, the nested code C 4 does not have much freedom since it contains only one undetermined row group prior to optimization, and thus it may exhibit relatively more harmful ABSs. Depending on the application, t should be chosen carefully.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Terminal Lift</head><p>QC codes are well known to facilitate hardware implementation <ref type="bibr">[6]</ref>. To simplify our code search for good nested code designs, we choose to apply a circulant-based graph lifting after the steps described in Sections III-A and III-B, which we refer to as a terminal lift with lifting factor J. This results in quasi-cyclic LDPC-BCs (QC-LDPC-BCs) and QC-SC-LDPC codes. A similar lifting procedure has been shown to be very effective for constructing QC codes <ref type="bibr">[27]</ref>. The parity-check matrices obtained by applying a terminal lift to H i (&#969; i , p, L) and H(3, p, L) are denoted as</p><p>, i = 1, 2, . . . , M , and</p><p>, respectively, with constraint length &#957; = J&#957;. A terminal lift serves two purposes: first it helps us generate sufficiently long nested codes to achieve good performance for typical applications, and second, we are able to further reduce the multiplicity of, or even eliminate, any residual ABSs in the nested Tanner graphs of H i (&#969; i , p, L) and H(3, p, L) that remain after the edgespreading construction. Note that, for comparison, we will also construct a terminally lifted LDPC-BC matrix, denoted as H(&#947;, p, J(m</p><p>, by lifting the block matrix H(&#947;, p) by a larger lifting factor J(m + 1). By incorporating m + 1 in the lifting factor we ensure that the length (number of columns) of the BC matrix is identical to the constraint length of the SC matrix. This will be helpful for comparing the performances of QC-LDPC-BCs and QC-SC-LDPC codes in Section V.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>D. 6-cycles and Dominant ABSs in AB-LDPC Codes</head><p>We now state some useful results concerning dominant objects of AB-SC-LDPC codes.</p><p>Remark 3. From Remarks 1 and 2 it is easy to note that by eliminating all 6-cycles via spatial coupling, we can also eliminate all the dominant ABSs in &#947; = 3, 4, 5 AB-SC-LDPC codes.</p><p>Note that a 6-cycle in an AB-SC-LDPC matrix spans 3 row groups and it spans at most m+1 contiguous column blocks of (1) <ref type="bibr">[18]</ref>. Let &#181; e , e = 1, 2, . . . , m+1, represent the total number of 6-cycles present in precisely e contiguous column blocks of (1), and let &#181; be the total number of 6-cycles in H(&#947;, p, L). From the repeated structure of H(&#947;, p, L) it follows that the total number of 6-cycles in H(&#947;, p, L) is &#181; = m+1 e=1 (L -e + 1)&#181; e <ref type="bibr">[18]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>E. Adapted Line Counting (ALC)</head><p>The line-counting method discussed in Section II-E is restricted to the enumeration of 6-cycles in H(3, p, L), i.e., only to row groups 0, 1, and 2. To overcome this shortcoming, we propose an ALC scheme to enable 6-cycle enumeration in general row group triples {0, q 2 , q 3 } of the larger parity-check matrix &#292;.</p><p>1) Choosing Column weight-3 Sub-matrices for ALC: To optimize the nested construction, we need to optimize each row group. Our method involves optimization with row groups of weight-3. We begin by enumerating the required sub-matrices involved in the optimization.</p><p>, where each matrix in &#950; consists of a common row group 0 and a distinct row group pair (q, q ) from all other elements of &#950; . If &#969; i -1 is odd, there is one more row group that has not appeared in any matrix in &#950; , and we need to select an additional matrix H</p><p>where either the row group q or q is not shared with a matrix in &#950; . The number of possible H</p><p>and it follows that we must select T = Z + Z distinct column weight-3 sub-matrices in H i (&#969; i , p) that have a common row group 0 in order to include all of the row groups of H i (&#969; i , p). Therefore, to optimize the nested SC matrix H i (&#969; i , p, L) corresponding to H i (&#969; i , p), it is sufficient to enumerate 6-cycles in the T sub-matrices of &#950; detailed above using ALC (details to follow in Section IV-B).</p><p>Example 4. We provide an example for choosing the required column weight-3 sub-matrices in a nested matrix for ALC, with nested column weights &#969; i = 4 and 5. In the first case, the H i (4, p) matrix has row groups 0, 1, 2, and 3. The set &#950; contains Z = 2 column weight-3 sub-matrices with a common row group 0:</p><p>i (3, p)}, with respective row groups {0, 1, 2} and {0, 1, 3} of H i (4, p). Hence, we select T = Z + Z = 1 + 1 = 2 matrices to include all row groups, e.g., &#950; = {H   </p><p>i (3, p)}, with respective row groups {0, 1, 2}, {0, 1, 3}, {0, 1, 4}, {0, 2, 3}, {0, 2, 4}, and {0, 3, 4} of H i (5, p). We must select T = Z +Z = 2+0 = 2 matrices to include all row groups, e.g.,</p><p>2) Description of ALC: Recall from Section II-E that R is contained in a column weight-3 sub-matrix of an AB paritycheck matrix, and c 1 , c 2 , c 3 are the column indices of a 6-cycle in R. We begin by extending (6) to a general column weight-3 matrix containing row group 0. Lemma 1. For ALC, the range of c 3 in R is expressed via c 1 and c 2 as</p><p>The proof is given in Appendix A. Note that ( <ref type="formula">6</ref>) is a special case of ( <ref type="formula">14</ref>) because, for parameters (&#955;, q 2 , q 3 ) taking on the values (0, 2, 1), (1, 2, 1), (1, 1, 2), and (0, 1, 2), we recover all inequalities in (6).</p><p>Proposition 1. Based on the principles of Cartesian geometry, the total number of 6-cycles in R, N R , is given by</p><p>, if some boundary conditions<ref type="foot">foot_6</ref> hold, 0, otherwise,</p><p>where the boundary conditions in <ref type="bibr">(15)</ref> (stated in <ref type="bibr">(32)</ref>) are related to the (c 1 , c 2 ) plane and the line c 2 -c 1 = np, n = 1, 2, . . . , w 4 -w 1 -1, whose length is determined by the points (&#963; 1x , &#963; 1y ), (&#963; 2x , &#963; 2y ) within these boundaries.</p><p>The proof of this proposition, including the boundary conditions, is given in Appendix B. In general, suppose a k-cycle has a row r i , i &#8712; {1, 2, . . . , k 2 -1}, in the q 0 row group. If this row is connected to columns c i and c i , i, i &#8712; {1, 2, . . . , k 2 -1} and i = i , we can obtain a line c i -c i = np on the (c 1 , c 2 , . . . , c k 2 -1 ) plane, which passes through a ( k 2 -1)dimensional region L, enclosed by the boundaries generated by the k-cycle column values. Thus, any integer point lying on this line will represent that k-cycle, allowing line-counting to be further adapted to detect and enumerate cycles of length longer than six.</p><p>Let N denote the number of regions in an AB-LDPC matrix required by ALC to compute all the 6-cycles, which is independent of p but may depend on m. In case of AB-LDPC-BCs, N = 1 as R is the entire parity-check matrix. However, N &gt; 1 for column weight-3 AB-SC-LDPC paritycheck matrices since there are multiple matrix regions with distinct row group triples and no two regions share a 6-cycle. For code optimization, these triples need to be considered only for coupling length L = m + 1, since a 6-cycle does not span more than m + 1 contiguous column blocks of a column weight-3 AB-SC-LDPC parity-check matrix (see Section III-D).</p><p>Proposition 2. N is upper bounded by (3m + 2)</p><p>The proof is given in Appendix C. An example of determining N in the case of a column weight-3 and memory m = 1 AB-SC-LDPC matrix is provided in the following.</p><p>Example 5. Determining N for memory m = 1: Note that in this case, it is necessary to optimize only two contiguous column blocks of a column weight &#969; = 3 (time-invariant) AB-SC-LDPC matrix H (z) i (3, p, L). Hence, it is sufficient to consider coupling length L = 2. Note that, for L = 2, there are three copies of the distinct row groups 0, q 2 , q 3 from H(&#947;, p) in H (z) i (3, p, 2). Recall that we locate a copy of a row group by the ordered pair (y, q), where, y &#8712; {0, 1, . . . , L + m -1 = 2} is the row block index and q is the row group index. Here, we slightly abuse notation and identify the row group index as q &#8712; {0, q 2 , q 3 }, where it is understood that q 2 identifies the second row group in a row block of H (z) i (3, p, 2) and q 3 identifies the third, respectively. We choose to do this because the values of q 2 and q 3 (corresponding to the row groups and circulants of H(&#947;, p)) will be used in ALC as described in Section III-E2.</p><p>There are two possible region configurations. The first is a single column block [H 0 H 1 ] (i.e., matrix (1) with L = 1). Here, a 6-cycle may exist in any of the 8 regions R 1 , R 2 , . . . , R 8 with row group triples {(0, 0), (0, q 2 ), (0, q 3 )}, {(0, 0), (0, q 2 ), (1, q 3 )}, {(0, 0), (0, q 3 ), (1, q 2 )}, {(0, 0), (1, q 2 ), (1, q 3 )}, {(1, 0), (0, q 2 ), (0, q 3 )}, {(1, 0), (0, q 2 ), (1, q 3 )}, {(1, 0), (0, q 3 ), (1, q 2 )}, and {(1, 0), (1, q 2 ), (1, q 3 )}, respectively. Each of these regions span p column groups and can be viewed as a block matrix similar to H(3, p) but with one or more all-zero circulant matrices.</p><p>A 6-cycle may also span an "L" shaped matrix region configuration</p><p>Seven regions of this category exist, denoted as R 9 , R 10 , . . . , R 15 , with row group triples {(0, 0), (1, q 2 ), (1, q 3 )}, {(0, q 2 ), (1, 0), (1, q 3 )}, {(0, q 3 ), (1, 0), (1, q 2 )}, {(1, 0), (1, q 2 ), (1, q 3 )}, {(1, 0), (1, q 2 ), (2, q 3 )}, {(1, 0), (1, q 3 ), (2, q 2 )}, and {(1, q 2 ), (1, q 3 ), (2, 0)}, respectively, with 2p column groups in each region. The total number of 6-cycles is obtained by enumerating the number of 6-cycles in each of the N = 15 regions as R 1 , R 2 , . . . , R 15 .</p><p>Note that, in a column weight-3 AB-LDPC matrix region R, there are at most p 2 -p block cycles<ref type="foot">foot_7</ref> of length 6, and each of them generate a separate "block-cycle region" L y , y &#8712; {1, 2, . . . , p 2 -p}, on the (c 1 , c 2 ) plane which the line c 2 -c 1 = np may intersect. The location of L y is determined by the range of values of c 1 , c 2 , and c 3 associated with the corresponding block 6-cycle. If R does not contain allzero matrices, i.e., R is the H(3, p) matrix, then regions L 1 , L 2 , . . . , L p2-p combine to form a single consecutive region L on the (c 1 , c 2 ) plane. Therefore, the total number of 6-cycles in R will be identical to the length of the line c 2 -c 1 = np passing through L , and hence, only a single line computation will be necessary to compute N R . However, if R contains one or more all-zero matrices, i.e., R is one of the matrix regions R 1 , R 2 , . . . , R 15 discussed in Example 5, then, one or more region(s) from L 1 , L 2 , . . . , L p2-p will be eliminated, depending on which block cycle(s) of R is/are eliminated due to the presence of the all-zero matrices(s). Consequently, in this case, N R will be identical to the total number of integer points lying on the line c 2 -c 1 = np within the existing block-cycle regions which may not be consecutive anymore. As a result, multiple line computations may be necessary to determine N R , depending on how many (disjoint) block-cycle regions the line c 2 -c 1 = np intersects.</p><p>3) Complexity: The conventional cycle counting method discussed in <ref type="bibr">[28]</ref> has computational complexity of 2 /p) = O(g&#947; 2 p 3 ) for AB-LDPC-BCs, where g is the girth and E = &#947;p 2 is the number of edges in the graph, respectively.</p><p>Since a column weight-3 matrix region R generates p 2 -p block-cycle regions on the (c 1 , c 2 ) plane, the number of line computations necessary for determining N R via ALC scales with O(p 2 ) since the number of arithmetic operations involved in a single line computation (corresponding to a single blockcycle region) is independent of the code parameters. Thus, due to a significantly reduced 6-cycle enumeration complexity compared to standard cycle counting algorithms, ALC is more desirable for the optimization of nested codes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>IV. AB-SC-LDPC NESTED CODE OPTIMIZATION PROCEDURE</head><p>In this section, we discuss the optimization strategy for nested AB-SC-LDPC codes in example scenarios where the nested codes have column weights &#969; i = 4 or 5, and the global code has column weight-3. First, a numerical optimization scheme is employed to determine the entries of the edgespreading matrices B i,m and B m to construct parity-check matrices H i (&#969; i , p, L) and H(&#969; = 3, p, L) from H i (&#969; i , p) and H(&#969; = 3, p), respectively. ALC is used at each optimization step to compute (and minimize) the number of 6-cycles in the nested AB-SC-LDPC parity-check matrices. Finally, a terminal lift is applied to further reduce residual ABSs in the Tanner graphs of optimized H i (&#969; i , p, L) and H(3, p, L) matrices.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. ALC-Based Guided Search</head><p>An overview of the search mechanism for determining the entries of the spreading matrices is provided in the following. For ease of notation, we refer to a given AB-LDPC-BC paritycheck matrix H <ref type="bibr">(3, p)</ref>  have been determined by optimization of another nested code (see the constrained optimization discussion in Section III-B) are copied into B and cannot be changed, the remaining entries are initially set to zero (i.e., the corresponding circulants exist in sub-matrix H 0 of ( <ref type="formula">1</ref>)) and designated to be "unfixed".</p><p>In each search iteration , either an unfixed entry of B is determined, or "fixed", referred to as forward-search, or a fixed entry of B is erased and re-evaluated, referred to as back-tracking. In a forward-search step, an integer from the set S = {0, 1, . . . , m-1} is assigned to an unfixed entry (i, j) of B, and the number of 6-cycles in the corresponding H sc matrix is computed via ALC. This procedure is repeated for all the remaining elements in S , and the one that contributes to the least number of 6-cycles in H sc is chosen for entry (i, j) of B and designated fixed. Note that there may be more than one value in S which corresponds to the same number of 6-cycles for entry (i, j). In this case, entry (i, j) is set to be one of those values that minimizes the cycles from S randomly, and the remaining candidates are stored for back-tracking. After each round of forward-search, the number of 6-cycles in H sc is given by the integer &#961; . If &#961; &#8805; &#961; -1 , then a back-tracking step is applied. In this phase, the most recently assigned entry (i, j) is designated unfixed, then the forward-search is applied and a new value is chosen for the unfixed entry randomly from the previous set of saved candidates for that The optimization procedure terminates if no more back-tracking is possible, or after a maximum number of search iterations ( max ) elapse, or if &#961; = 0, whichever occurs first.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Construction of Optimized Nested AB-SC-LDPC Codes</head><p>We outline the approach of Method 1 using ALC, which first optimizes H(3, p, L) and then the H ti (&#969; i , p, L) matrices based on the constraints given by H(3, p, L) and the ordering t, as described in Section III-A. The optimization requires the following three steps:</p><p>&#8226; Step 1: Inputs to the ALC based optimization algorithm are the H(3, p) matrix and the undetermined B m matrix. The guided search is allowed to run as described in Section IV-A until either the number of 6-cycles in H(3, p, L) obtained in an optimization iteration is 0, or until the number of optimization iterations exceed a predetermined threshold max , whichever occurs first. At the end of this step we obtain B m , and the spreading for row groups 0, 1, and 2 is permanently fixed. &#8226; Step 2: For a given sub-code index t i , inputs to the ALC based optimization algorithm are H (z) ti (3, p), consisting of row groups {0, q, q }, and a matrix B (z) ti,m &#8712; F 3&#215;p 2 which contains the rows corresponding to row groups {0, q, q } of B ti,m . Note that the row 0 of B (z) ti,m has been fixed already and cannot be changed; if the row(s) corresponding to the row groups q and/or q of B (z) ti,m are/is unfixed, then they/it will be fixed in this step. The guided search algorithm of Section IV-A is now allowed to run until either all the 6-cycles in H ti,m , are eliminated or the number of optimization iterations exceed a threshold max , whichever occurs first. This optimization step is repeated for all possible values of z from {2, 3 . . . , T }. At the end of this step, we obtain the complete B ti,m matrix. This step is repeated until all sub-codes i = 1, 2, . . . , M are set.</p><p>&#8226; Step 3: Finally, the H i (&#969; i , p, L) and H(3, p, L) matrices are constructed by edge-spreading according to B i,m . Method 2 largely follows the approach in Method 1, but here H i (&#969; i , p, L) is optimized first instead of H(3, p, L) (as described in Section III-A). Example 6. We demonstrate ALC based optimization for Method 1 using the AB-LDPC-BC from Example 1 with nested matrix &#292;(5, 5), coupling length L = 2, and memory m = 1. In Step 1, we input an all-zero 3 &#215; 5 B 1 matrix and return the optimized B 1 matrix shown earlier in <ref type="bibr">(8)</ref>. This is used to generate the optimized global SC matrix H(3, 5, 2), whose components are shown in <ref type="bibr">(9)</ref>, from H(3, 5). In Step 2, we select t = (1, 2) and first optimize the matrix B 1,1 that will be used to spread the edges of H 1 (4, 5) from ( <ref type="formula">7</ref>) to construct the optimized (with constraints) nested AB-SC-LDPC code C 1 . <ref type="foot">7</ref> Note that, for this code, H 1 (4, 5) consists of row groups 0, 1, 2, and 3, of which 0, 1, and 2 (black rows) are fixed in Step 1. Here, T = 2 and the two matrices H (z) 1 (3, p), z = 1, 2, can be chosen, say, to have row groups {0, 1, 2} and {0, 2, 3}, respectively. Since H</p><p>, p) is completely determined and there is only on row group (with index 3) to fix, we require only one optimization (z = 2). The inputs in Step 2 are the sub-matrix</p><p>of H 1 (4, 5) and the matrix B</p><p>1,1 , where the first two rows of B</p><p>(2) 1,1 , corresponding to row groups 0 and 2, were already determined in Step 1 as rows 0 and 2 of B 1 in (8), and the third row is set to all-zeros. The output is the optimized matrix</p><p>The blue row in italics of ( <ref type="formula">17</ref>) represents the only row of B</p><p>that has been optimized in this step. Now, combining B 1 and B</p><p>1,1 , all the row groups 0, 1, 2, and 3 have been fixed and we obtain the optimized edge-spreading matrix B 1,1 shown in <ref type="bibr">(11)</ref>, that is used to construct the optimized nested SC matrix H 1 (4, 5, 2), whose components are shown in <ref type="bibr">(12)</ref>. The sub-matrix H 2 (4, 5, 2) is constructed in a similar fashion to complete Step 2. Finally, the nested matrices are constructed as described in Step 3.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Optimization Complexity</head><p>Let x &#8712; {1, 2, . . . , &#969; }, &#969; &#8712; {3, &#969; i }, be the number of undetermined rows of a B matrix input to the ALC-based optimization scheme. For a given column weight-3 AB-LDPC-BC parity-check matrix H, the scheme needs to search over at most (m + 1) xp possible choices of the xp entries belonging to the undetermined rows of B, to determine the choices that minimize/eliminate the number of 6-cycles in H sc . Moreover, during a search, ALC is invoked for enumerating 6-cycles in H sc . Recall that N column weight-3 matrix regions are taken into account by ALC to compute all the 6-cycles in H sc , and therefore at most p 2 -p line computations may be necessary for each region. Therefore, the complexity of our nested code optimization scheme for a given B is O(N p 2 (m 1) xp ). Due to the high optimization complexity for large p, it may be more beneficial to choose a small value of p and then subsequently apply terminal lifting to design longer SC codes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>D. Terminal Lift</head><p>The terminal lifted matrices H i (&#969; i , p, L, J), i = 1, 2, . . . , M , and H(3, p, L, J ) may now be obtained by lifting the non-zero (resp., zero) entries of H i (&#969; i , p, L) and H(3, p, L) via randomly generated circulant (resp., all-zero) matrices of size J &#215; J. The goal of the terminal lift is to break as many remaining 6-cycles as possible in the Tanner graphs of H i (&#969; i , p, L) and H(3, p, L). In this paper, we use an exhaustive search to select circulants for the first m + 1 contiguous column blocks of (1), searching until either all 6cycles are eliminated or a maximum time duration is elapsed. Many other approaches could be considered, e.g., <ref type="bibr">[29]</ref>, <ref type="bibr">[30]</ref>. These permutations are repeated periodically for the remaining L -(m + 1) column blocks to form the complete matrix. This is first performed for any i, i.e., on H i (&#969; i , p, L, J), and then repeated for the additional row groups in the paritycheck matrices of the remaining nested codes C 1 , C 2 , . . . , C M . Note that terminally lifted QC-LDPC-BC matrices, denoted H(3, p, J(m + 1)) and H i (&#969; i , p, J(m + 1)), are obtained in similar fashion by lifting the non-zero (resp., zero) entries of H(3, p) and H i (&#969; i , p) via circulant (resp., zero) matrices with dimension J(m + 1) &#215; J(m + 1).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>V. NUMERICAL RESULTS</head><p>We now demonstrate the effectiveness of the procedure outlined in Section IV using nested AB-SC-LDPC matrices H(3, p, L), H 1 (4, p, L), and H 4 (5, p, L), with corresponding BC matrices H(3, p), H 1 (4, p), and H 4 (5, p) obtained from row groups {0, 1, 2}, {0, 1, 2, 3} and {0, 1, 2, 3, 4}, respectively, of a nested &#292;(6, p) AB-LDPC matrix. We provide 6-cycle enumeration results with syndrome former memories m = 1 and 2 in Section V-A, and computer simulation results in Section V-B with m = 2.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. ALC Enumeration Results</head><p>We first present results obtained only with the ALC-based optimization described in Section IV-B, i.e., without a terminal lift. In the case of AB-SC-LDPC codes with memory m, we compute the asymptotic average number of 6-cycles per VN given by A m = lim L&#8594;&#8734;  <ref type="table">I</ref>. The maximum number of search iterations for the ALC based optimization scheme was set to max = 10 4 . The asymptotic average results for random (Ran) nested AB-SC-LDPC matrices (non-optimized) are also presented in Table <ref type="table">I</ref>, where randomly generated B m and B i,m matrices were selected. As another benchmark for comparison, we compute the asymptotic average number of 6-cycles per VN for AB-LDPC-BCs, given by A (BC) = &#181;/p 2 , where &#181; is the total number of 6-cycles in the AB-LDPC-BC. The values of A (BC)  in the matrix H(3, p) are computed as 12, 18, and 30, for p = 5, 7, and 11, respectively, for H 1 (4, p) these values are 48, 72, and 120, respectively, whereas for H 4 (5, p), the A (BC)  values are 60 and 100, respectively, for p = 7 and 11.</p><p>By comparing the results obtained using Method 1 and 2 in Table <ref type="table">I</ref> to the uncoupled matrices (A (BC) values), we note that spatial coupling is able to significantly reduce the number of 6cycles, and hence dominant ABSs. Moreover, Method 1 results in a lower A m for the global SC-LDPC matrix H(3, p, L), but has a larger A m for the nested SC-LDPC matrices. Using Method 2, on the other hand, shows the opposite behavior -a smaller A m for the nested codes, but a moderate A m for the global code. From the Method 2 results shown in Table <ref type="table">I</ref>, we also note that, for p = 5 and m = 2, the asymptotic average is zero in all optimized column weight-3 or column weight-4 nested codes. From Table <ref type="table">I</ref>, we observe that, on average, the randomly generated nested SC-LDPC matrices possess a significantly larger value of A m (and hence they contain a larger number of dominant ABSs) when compared to nested AB-SC-LDPC matrices obtained via ALC based optimization, but still show a significant reduction when compared to AB-LDPC-BCs (A (BC) values). Note that for p = 5, the rate of the column weight-5 nested BC is zero, and hence the results for H 4 (5, 5, L) are excluded.</p><p>Finally, we note that by applying the terminal lift described in Section IV-D, even for small J, it is possible to significantly reduce, or even eliminate dominant ABSs. For example, with p = 5, 7, m = 1, 2, and p = 11, m = 2, and a lifting factor of only J = 5, we are able to completely eliminate all 6cycles. This means that, after a terminal lift of the AB-SC-LDPC nested codes obtained via Method 1 and 2 in Table <ref type="table">I</ref> the corresponding (3, 3), <ref type="bibr">(4,</ref><ref type="bibr">4)</ref>, <ref type="bibr">(5,</ref><ref type="bibr">4)</ref> and (6, 4) ABSs as described in Remark 1 are removed. Note that, by removing 6-cycles in these AB-SC-LDPC codes, we are also able to significantly reduce the number of 8-cycles and any ABSs connected to them.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Simulated Code Performance</head><p>We now consider the BP decoding performances of terminally lifted column weight-3, 4, and 5 QC-SC-LDPC nested parity-check matrices. To demonstrate the behavior, we construct H(3, p, L = 99, J = 5), H 1 (4, p, L = 99, J = 5), and H 4 (5, p, L = 99, J = 5) nested QC-SC-LDPC codes, with memory m = 2 and p = 7, 11, as described in Section V-A, and compare their performances to random (non-optimized before terminal lift) QC-SC-LDPC codes and terminally lifted nested QC-LDPC-BC parity-check matrices H(3, p, J (m + 1)), H 1 (4, p, J (m + 1)), and H 4 (5, p, J (m + 1)). <ref type="foot">8</ref>Computer simulation results are obtained over a binary additive white Gaussian noise (AWGN) channel. A sliding window BP decoder is used for decoding nested SC codes <ref type="bibr">[31]</ref>, where the window attempts to decode one block of p 2 J target symbols in each decoding instant, then the decoder shifts one block right and one block down the parity-check matrix (1), thereby decoding the entire frame after L shifts. The window length W of the decoder was selected as 4&#957; symbols, and 50 iterations were performed per window position. The terminally lifted QC-LDPC-BCs were decoded with a standard flooding BP decoder with a maximum of 50 iterations and a syndrome check stopping rule. The block length of the short LDPC-BC, obtained using J = 5, is identical to the constraint length &#957; = p 2 J(m + 1) of the SC code, whereas the long LDPC-BC, obtained using J = 20, has block length equal to the window length 4&#957; .</p><p>The bit error rate (BER) results are shown in Fig. <ref type="figure">4</ref>. As expected from the enumeration results in Section V-A, the performance of the nested QC-SC-LDPC codes, irrespective of the column weight or construction method, is much better when compared to the performance of the corresponding nested regular QC-LDPC-BCs. We observe a significant gain in the waterfall for the optimized QC-SC-LDPC codes attributed to threshold saturation effect, and no indication of an error floor. The random SC-LDPC codes do appear to display the beginning of an error floor at 2.5 dB for p = 7. When comparing the performance of the two optimization strategies, it is noticeable that both the optimized column weight-4 and 5 nested QC-SC-LDPC codes perform better under Method 2 optimization when compared to Method 1. In case of the column weight-3 code, we see the same behavior for p = 7, which can be attributed in part to the terminal lift and resulting code realization. Note that the lower bound on the decoding error probability of message passing algorithms is known to decrease linearly with the multiplicity of harmful ABSs in SC codes <ref type="bibr">[32]</ref>. Hence, the optimized nested QC-SC-LDPC codes are expected to have better error-floor performance when constructed via Method 1 or 2 compared to randomly generated QC-SC-LDPC codes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>VI. CONCLUSION</head><p>In this paper, we have considered the construction of finite length nested AB-SC-LDPC codes from nested AB-LDPC-BCs. During code construction, we ensured that each nested SC sub-code and the global code have a small number of dominant ABSs in the Tanner graph when compared to the underlying LDPC-BCs. An ALC based optimization technique was utilized to optimize the design of nested AB-SC-LDPC codes. This optimization scheme allows the enumeration of dominant ABSs (by counting 6-cycles) in arbitrary column weight-3 sub-matrices of the nested parity-check matrices, facilitating a tractable nested code optimization. We demonstrate that, by using ALC, it is possible to minimize/eliminate dominant ABSs in certain nested AB-SC-LDPC codes, irrespective of the row and column weight of the overall parity-check matrix containing all the nested matrices. We also show that, for some specific codes, dominant absorbing sets in the Tanner graphs of all nested codes are completely removed using our proposed optimization strategy. Simulation results verify the improved nested code performance under ALC based optimization.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>APPENDIX A PROOF OF LEMMA 1</head><p>Recall the labeling of a 6-cycle shown in Fig. <ref type="figure">1</ref> in case of AB matrices with parameters q i , j i , and k i , i &#8712; {1, 2, 3}. The edges corresponding to (r 2 , c 3 ) and (r 2 , c 2 ) both exist in row s 2 , hence we get s 2 = q 2 j 3 + k 3 mod p = q 2 j 2 + k 2 mod p. As a result, q 2 j 2 + k 2 = q 2 j 3 + k 3 mod p.</p><p>Similarly, considering (r 2 , c 3 ) and (r 3 , c 1 ) it is noted that s 3 = q 3 j 1 + k 1 mod p = q 3 j 3 + k 3 mod p, which gives</p><p>where j 1 &lt; j 2 . Note that ( <ref type="formula">18</ref>) and ( <ref type="formula">19</ref>) can be rearranged as k 3 -k 2 = q 2 j 2 -q 2 j 3 mod p, (20) and k 3 -k 2 = q 3 j 1 -q 3 j 3 mod p, (21) respectively. Equations ( <ref type="formula">20</ref>) and ( <ref type="formula">21</ref>) can also be written as</p><p>and k 3 -k 2 = q 3 j 1 -q 3 j 3 -&#955; 2 p,</p><p>respectively, where &#955; 1 , &#955; 2 &#8712; {1 -p, 2 -p, . . . , p -1}. By substituting <ref type="bibr">(22)</ref> in <ref type="bibr">(23)</ref>, and after rearranging we get</p><p>where j 2 &gt; j 1 , q 2 , q 3 &#8712; {1, 2, . . . , &#947; -1} and &#955; = &#955; 1 -&#955; 2 .</p><p>In general, &#945; &#8804; j 3 &#8804; &#946; -1, where 0 &#8804; &#945; &#8804; p -1, 1 &#8804; &#946; &#8804; p and &#945; &lt; &#946;. Using this inequality and from <ref type="bibr">(24)</ref> we have &#945; &#8804; q 2 j 2 -q 3 j 1 -&#955;p q 2 -q 3 &#8804; &#946; -1.  is, &#963; 1x = max(&#966; 1x , &#952; 1x , &#952; 3x ), &#963; 1y = max(&#966; 1y , &#952; 1y , &#952; 3y ), &#963; 2x = min(&#966; 2x , &#952; 2x , &#952; 4x ), &#963; 2y = min(&#966; 2y , &#952; 2y , &#952; 4y ), where the x and y subscripts indicate the x and y coordinates, respectively, on the (c 1 , c 2 ) plane. Hence, in Figs. <ref type="figure">5(a</ref>) and (b), &#963; 1 = &#952; 3 and &#963; 2 = &#952; 2 . From the principles of Cartesian geometry, the number of integer points lying on straight line connecting &#963; 1 and &#963; 2 is given as (&#963;2x-&#963;1x) 2 +(&#963;2y-&#963;1y) 2  2</p><p>. Let the y-coordinates of the points of intersection between lines l 4 and l 1 , and lines l 3 and l 2 , be denoted as &#957; 1 and &#957; 2 , respectively. Then, the total number of 6-cycles in R is expressed as N R = (&#963;2x-&#963;1x) 2 +(&#963;2y-&#963;1y) 2  2</p><p>, if (32) hold, 0, otherwise.</p><p>(</p><p>The boundary conditions that ensure line l 7 will intersect the shaded region L in Fig. <ref type="figure">5</ref> are &#952; 1y &lt; &#957; 2 , &#952; 2y &gt; &#957; 1 if q 3 &lt; q 2 , or w 3 p &lt; &#966; 2y , w 4 p &gt; &#966; 1y if q 3 &gt; q 2 , and &#952; 1x &#8804; {&#963; 1x , &#963; 2x } &#8804; &#952; 2x , &#952; 1y &#8804; {&#963; 1y , &#963; 2y } &#8804; &#952; 2y , <ref type="bibr">(32)</ref> where &#957; 1 = &#945;p + (w 2 -&#945;) </p><p>Fix a single row group of I (identity) matrices within H , and randomly select a pair of row group indices from the remaining 2(m + 1) non-I matrix row group indices in H to create a triple (representing the row group indices of a column weight-3 sub-matrix in H ). There are 2(m+1) 2 possible ways of generating these triples, with a common row group index of I matrices. However, 2 m+1 2 of these triples contain a pair of non-I matrix row group indices (q, q ) such that q = q mod 3, and row groups with these triples do not contain any 6-cycles. Thus, for a given index of an I-matrix row group in H , we obtain &#954; = 2(m+1) 2 -2 m+1 2 distinct column weight-3 matrix regions containing 6-cycles. Since there are m + 1 row group of I matrices in H , the total number of distinct column weight-3 matrix regions in H (containing 6-cycles) is (m + 1)&#954;. Now, note that the combination of the two "L" shaped matrix regions have in total 2m + 1 row groups containing I matrices only, and hence there are (2m + 1)&#954; column weight-3 matrix regions (containing 6-cycles) which span one or more column blocks of H or H . Since at least one of these regions is already in H , the number of distinct column weight-3 matrix regions (containing 6-cycles) spanning more than one column block of H or H is upper-bounded by (2m+1)&#954;. Therefore, we obtain N &lt; (m + 1)&#954; + (2m + 1)&#954; = (3m + 2)&#954;.</p></div><note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0"><p>By "dominant", we mean those ABS(s) which are empirically observed to cause the majority of failures in the high SNR regime.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1"><p>We note that line counting is performed on column weight-3 parity-check matrices throughout the paper, consequently there is an equivalence between 6-cycle and a(3,  </p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_2"><p>3) ABS and we refer to them interchangeably. In general, a 6-cycle corresponds to a (3, 3(&#947; -2)) trapping set in a column weight &#947; parity-check matrix<ref type="bibr">[15]</ref>.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_3"><p>If for &#969; i &gt; 5, the dominant ABSs in the code's Tanner do not contain 6-cycles, then ALC as stated here would not be applicable. Nonetheless, the method discussed in this section is still useful provided that a similar ABS enumeration scheme is employed for scenarios where the dominant ABSs in nested codes do not contain 6-cycles.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_4"><p>Authorized licensed use limited to: UNIVERSITY OF NEW MEXICO. Downloaded on May 14,2021 at 01:33:51 UTC from IEEE Xplore. Restrictions apply.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_5"><p>Note that the order t of sub-codes can be changed depending on priority. If codes have no overlapping row groups (other than S 0 ), the order can be chosen arbitrarily with no effect in results.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_6"><p>These boundary conditions are stated in<ref type="bibr">(32)</ref> but omitted here for brevity.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_7"><p>There are p 2 (p -1) 6-cycles in a column weight-3 AB-LPDC-BC matrix<ref type="bibr">[24]</ref>, where there are p 2 -p block cycles of length 6 with each block containing p 6-cycles.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_8"><p>Note that, since row groups 0, 1, and 2 are fixed in Step 1, t = (1, 2), and t = (2, 1) would have the same outcome.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="8" xml:id="foot_9"><p>Note that &#292;(6, p) also consists of nested sub-matrices H 2 (4, p), H 3 (4, p), and H 5 (5, p) with row groups {0, 1, 2, 4}, {0, 1, 2, 5} and {0, 1, 2, 3, 5}, respectively, but the numerical results for H i (4, p, L), i &#8712; {2, 3}, and H 5 (5, p, L) are not shown as they are similar to the results for H 1 (4, p, L), and H 4 (5, p, L), respectively.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="9" xml:id="foot_10"><p>Note that Figs. 5(a) and 5(b) reveal the difference in steepness of lines l 1 and l 2 as their gradient (q 3 /q 2 ) changes from less than 1 in Fig.5(a), to more than 1 in Fig. 5(b).(a) (b)</p></note>
		</body>
		</text>
</TEI>
