Abstract
In this paper, a construction of \((n,k,\delta )\) LDPC convolutional codes over arbitrary finite fields, which generalizes the work of Robinson and Bernstein and the later work of Tong is provided. The sets of integers forming a (k, w)(weak) difference triangle set are used as supports of some columns of the sliding paritycheck matrix of an \((n,k,\delta )\) convolutional code, where \(n\in {\mathbb {N}}\), \(n>k\). The parameters of the convolutional code are related to the parameters of the underlying difference triangle set. In particular, a relation between the free distance of the code and w is established as well as a relation between the degree of the code and the scope of the difference triangle set. Moreover, we show that some conditions on the weak difference triangle set ensure that the Tanner graph associated to the sliding paritycheck matrix of the convolutional code is free from \(2\ell \)cycles not satisfying the full rank condition over any finite field. Finally, we relax these conditions and provide a lower bound on the field size, depending on the parity of \(\ell \), that is sufficient to still avoid \(2\ell \)cycles. This is important for improving the performance of a code and avoiding the presence of lowweight codewords and absorbing sets.
Introduction
In the last three decades, the area of channel coding gained a lot of attention, due to the fact that many researchers were attracted by the practical realization of coding schemes whose performances approach the Shannon limit. This revolution started in 1993 with the invention of turbo codes and their decoding algorithms [6]. Only few years later, researchers investigated also lowdensity paritycheck (LDPC) block codes and their message passing decoding algorithm. These codes were discovered to be also capable of capacityapproaching performances. The class of LDPC block codes was introduced by Gallager [14], in 1962. Their name is due to the fact that they have a paritycheck matrix that is sparse. The analysis of LDPC codes attracted many researchers and a lot of work arose in this direction, starting from the papers of Wiberg [38] and Mackay and Neal [21]. Moreover, in [9, 26] analytical tools were introduced to investigate the limits of the performance of the message passing iterative decoding algorithm, suggested by Tanner already in 1981, [30].
Similarly to LDPC block codes, one can consider LDPC convolutional codes. These codes are defined as the (right) kernel of a sparse sliding paritycheck matrix, which allows to still use iterative message passing decoding algorithms. Moreover, it was proven that LDPC convolutional codes are practical in different communication applications, see for instance [3, 4, 23].
In the last few years, some attempts to construct binary LDPC convolutional codes were done. Two types of constructions were mainly investigated. The first one exploits the similarity of quasicyclic block codes and timeinvariant LDPC convolutional codes, [31,32,33]. The second one regards mostly time varying convolutional codes, see for instance [5, 25, 39].
The aim of this paper is to give a combinatorial construction of LDPC convolutional codes suitable for iterative decoding. In fact, contrary to LDPC block codes for which a lot of combinatorial constructions have been derived (see for example [16, 19, 20, 29, 36, 37]), it is rare to use combinatorial tools for constructing LDPC convolutional codes.
In 1967, Robinson and Bernstein [27] used difference triangle sets for the first time to construct binary recurrent codes, which are defined as the (right) kernel of a binary sliding matrix. At that time, the theory of convolutional codes was not developed yet and the polynomial notation was not used, but now, we may regard recurrent codes as a first prototype of convolutional codes. This was the first time that a combinatorial object has been used to construct convolutional codes. Three years later, Tong in [34], used diffuse difference triangle sets to construct selforthogonal diffuse convolutional codes, defined by Massey [22]. The aim of these authors was to construct codes suitable for iterative decoding and their result was an adapted version of binary LDPC convolutional codes. In [1], the authors constructed \((n,n1)_q\) LDPC convolutional codes, whose sliding paritycheck matrix is free from 4 and 6cycles not satisfying the so called full rank condition, starting from difference triangle sets. This was a generalization of the work of Robinson and Bernstein, in which difference triangle sets were used to construct convolutional codes over the binary field, that can only avoid 4cycles. In 1971, Tong [35] was the first to generalize their construction over \({\mathbb {F}}_q\), using what we call in this paper weak difference triangle sets. However, his construction is suitable only for limited rate and in a way that the Tanner graph associated to the paritycheck matrix of these codes is free only from 4cycles.
In this paper, we give a construction of LDPC convolutional codes for arbitrary rates over arbitrary fields, using difference triangle sets and weak difference triangle sets. In particular, the use of the weak version of these combinatorial objects allows to relax the assumptions required by Robinson, Bernstein and Tong. Indeed, instead of considering sets of nonnegative integers where all the pairwise differences are distinct among all the sets, we may require only that the pairwise differences are distinct in each set. Moreover, we show that using difference triangle sets for this construction produces codes with good distance properties and we provide a bound on the field size that is sufficient to have codes with good distance and to avoid the presence of cycles not satisfying the full rank condition.
The paper is structured as follows. In Sect. 2, we start with some background about convolutional codes. Then we define difference triangle sets (DTSs) and weak difference triangle sets (wDTSs) and their scope. Finally, we introduce LDPC block and LDPC convolutional codes over finite fields of arbitrary size. In Sect. 3, we generalize the construction in [1] for LDPC convolutional codes to arbitrary rates, starting from a weak difference triangle set. We show how the parameters of the constructed convolutional code depend on the properties of the weak difference triangle set. We derive some distance properties of the codes and the exact formula for computing their density. Moreover, we show that the free distance and the column distances of convolutional codes constructed from a DTS are in some sense optimal. Finally, we present a construction of LDPC convolutional codes from a wDTS and a lower bound on the corresponding field size such that the free distance is at least 3 and such that the corresponding Tanner graph is free from 4 and 6cycles not satisfying the FRC. In Sect. 4, we start with some conditions on the underlying wDTS that ensure that the Tanner graph associated to the sliding paritycheck matrix is free from any cycle over any finite field. Afterwards, we give a lower bound for the field size sufficient to ensure that our construction provides a Tanner graph free from \(2\ell \)cycles not satisfying the FRC, for \(\ell \) odd. If \(\ell \) is even, we add some assumptions on the wDTS to be able to derive also in this case a lower bound on the field size. Finally, we modify our construction to be able to relax these conditions on the wDTS, which in turn enlarges the underlying field size.
Preliminaries
In this section, we provide the background and the known results useful for the rest of the paper.
Convolutional codes
Let q be a prime power and \({\mathbb {F}}_q\) be the finite field with q elements. Let k, n be positive integers, with \(k< n\) and consider the polynomial ring \({\mathbb {F}}_q[z]\). An \((n,k)_q\) convolutional code is defined as a submodule \({\mathcal {C}}\) of \({\mathbb {F}}_q[z]^n\) of rank k, such that there exists a polynomial generator matrix \(G(z)\in {\mathbb {F}}_q[z]^{k\times n}\), whose rows generate \({\mathcal {C}}\), i.e.
If G(z) is basic, i.e., it has a right polynomial inverse, there exists a full rowrank paritycheck matrix \(H(z)\in {\mathbb {F}}_q[z]^{(nk)\times n}\) such that
Finally, we define the degree \(\delta \) of the convolutional code \({\mathcal {C}}\) as the highest degree among the \(k\times k\) minors in G(z). When the degree \(\delta \) of the convolutional code is known, we denote \({\mathcal {C}}\) by \((n,k,\delta )_q\). We omit to specify the field when it is not needed. If G(z) is reduced, i.e. the sum of the row degrees of G(z) attains the minimal possible value, then this value is equal to \(\delta \).
Lemma 1
([13, 17]) Let \(H(z)=[h_{i,j}(z)] \in {\mathbb {F}}[z]^{(nk)\times n}\) with row degrees \(\nu _1,\nu _2, \ldots , \nu _{nk}\) and \([H]_{hr}\) be the highest row degree coefficient matrix defined as the matrix with the ith row consisting of the coefficients of \(z^{\nu _i}\) in the ith row of H(z). Then H(z) is reduced if and only if \([H]_{hr}\) is full rowrank.
It is wellknown that if \(H(z)\in {\mathbb {F}}[z]^{(nk)\times n}\) is a basic and reduced paritycheck matrix of an \((n,k,\delta )\) convolutional code \({\mathcal {C}}\), then the sum of the row degrees of H(z) is equal to \(\delta \) (see [28]) which is also equal to the maximal (polynomial) degree of the fullsize minors of H(z). If H(z) is basic but not reduced, then the sum of its row degrees is larger than \(\delta \).
There is a natural isomorphism between \({\mathbb {F}}_q[z]^n\) and \({\mathbb {F}}_q^n[z]\), which extends to the space of matrices and allows to consider a generator and a paritycheck matrix of a convolutional code as polynomials whose coefficients are matrices. In particular, we will consider \(H(z)\in {\mathbb {F}}_q^{(nk)\times n}[z]\), such that \(H(z) = H_0+H_1z +\cdots H_{\mu }z^\mu \), with \(\mu >0\). With this notation, we can expand the kernel representation \(H(z)v(z)^\top \) in the following way:
where \(r = \deg (v)\). We will refer to the representation of the paritycheck matrix of \({\mathcal {C}}\) in Eq. (1) as sliding paritycheck matrix.
Let \(v(z)=\sum _{i=0}^r v_iz^i\in {\mathbb {F}}_q^n[z]\) be a polynomial vector. We define the weight of v(z) as the sum of the Hamming weights of its coefficients, i.e. \(\mathrm {wt}(v(z)) := \sum _{i=0}^r \mathrm {wt}_H(v_i)\in {\mathbb {N}}_0,\) where \(\mathrm {wt}_H(v_i)\) denotes the Hamming weight of \(v_i\in {\mathbb {F}}_q^n\). This definition allows to endow a convolutional code \({\mathcal {C}}\subseteq {\mathbb {F}}_q[z]^n\) with a distance. We define the free distance of \({\mathcal {C}}\), denoted by \(\mathrm {d_{free}}({\mathcal {C}})\), as the minimum of the nonzero weights of the codewords in \({\mathcal {C}}\). The parameters \(\delta \) and \(\mathrm {d_{free}}\) are needed to determine respectively the decoding complexity and the error correction capability of a convolutional code with respect to some decoding algorithm. For this reason, for any given k and n and field size q, the aim is to construct convolutional codes with “small” degree \(\delta \) and “large” free distance \(\mathrm {d_{free}}\).
For any \(j \in {\mathbb {N}}_0\) we define the jth column distance of \({\mathcal {C}}\) as
where \(H_j^c\) is called jth truncated paritycheck matrix and it is defined for any \(j\in {\mathbb {N}}_0\) as
We also recall the following wellknown result.
Theorem 1
([15, Proposition 2.1]) Let \({\mathcal {C}}\subseteq {\mathbb {F}}_q[z]^n\) be an \((n,k)_q\) convolutional code. Let \(d\in {\mathbb {N}}\). Then the following properties are equivalent.

1.
\(d_j^c = d\).

2.
None of the first n columns of \(H_j^c\) is contained in the span of any other \(d 2\) columns and one of the first n columns of \(H_j^c\) is in the span of some other \(d1\) columns of that matrix.
Difference triangle sets
A difference triangle set is a collection of sets of integers such that any integer can be written in at most one way as difference of two elements in the same set. Difference triangle sets find application in combinatorics, radio systems, optical orthogonal codes and other areas of mathematics [7, 8, 18]. We refer to [10] for a more detailed treatment. More formally, we define them in the following way, by distinguishing between weak difference triangle sets and difference triangle sets.
Definition 1
Let N, M be positive integers. An (N, M)weak difference triangle set (wDTS) is a collection of sets \({\mathcal {T}}:=\{T_1, T_2, \ldots , T_N\}\), where for any \(1\le i\le N\), \(T_i:=\{a_{i,j} \mid 1\le j\le M\}\) is a set of nonnegative integers such that \(a_{i,1}<a_{i,2}< \cdots <a_{i,M}\) and for \(1\le i\le N\) the differences \(a_{i,j}a_{i,k}\), with \(1\le k <j \le M\) are distinct. If all the differences in all the sets are distinct, we call \({\mathcal {T}}\) a (N, M)difference triangle set (DTS).
An important parameter characterizing an (N, M)(w)DTS \({\mathcal {T}}\) is the scope \(m({\mathcal {T}})\), which is defined as
A very wellstudied problem in combinatorics is finding families of (N, M)DTSs with minimum scope. In this work, we will use the sets in a (w)DTS as supports of some columns of a sliding paritycheck matrix of a convolutional code. We will then relate the scope of the (w)DTS with the degree of the code. Since we want to minimize the degree of the code, it is evident that the mentioned combinatorial problem plays a crucial role also here.
The name “difference triangle" is derived from a way of writing the differences inside the sets composing \({\mathcal {T}}\) in a triangular form .
Example 1
(wDTS) Let \({\mathcal {T}}=\{\{1,2,4,8\}, \{1,3,7,15\}, \{1,5,10,16\}\}\). Then \({\mathcal {T}}\) is a (3, 4)wDTS.
The “triangles" associated to \({\mathcal {T}}\) are the following:
Example 2
(DTS) Let \({\mathcal {T}}=\{\{1,4,16,20\}, \{1,7,12,14\}, \{1,9,18,19\}\}\). Then \({\mathcal {T}}\) is a (3, 4)DTS.
The “triangles" associated to \({\mathcal {T}}\) are the following:
LDPC codes over arbitrary finite fields
LDPC codes are known for their performance near the Shannonlimit over the additive white Gaussian noise channel [21]. Shortly after they were rediscovered, binary LDPC codes were generalized over arbitrary finite fields. This new construction was first investigated by Davey and Mackay in 1998 in [11]. In [12], it was observed that LDPC codes defined over a finite field with q elements can have better performances than the binary ones. An LDPC code is defined as the kernel of an \(N\times M\) sparse matrix H with entries in \({\mathbb {F}}_q\). We can associate to H a bipartite graph \({\mathcal {G}}= (V,E)\), called Tanner graph, where \(V = V_s \cup V_c\) is the set of vertices. In particular, \(V_s=\{v_1,\ldots , v_N\}\) is the set of variable nodes and \(V_c=\{c_1,\ldots ,c_M\}\) is the set of check nodes. \(E\subseteq V_s\times V_c\) is the set of edges, with \(e_{n,m}=(v_n,c_m)\in E\) if and only if \(h_{n,m}\ne 0\). The edge \(e_{n,m}\) connecting a check node and a variable node is labelled by \(h_{n,m}\), that is the corresponding permutation node. For an even integer \(m=2\ell \), we call a simple closed path consisting of \(\ell \) check nodes and \(\ell \) variable nodes in \({\mathcal {G}}\) an mcycle. The length of the shortest cycle is called the girth of \({\mathcal {G}}\) or girth of H. It is proved that higher the girth is, the lower the decoding failure of the bit flipping algorithm is. Moreover, in [24] the authors showed that short cycles in an LDPC code may be harmful if they do not satisfy the so called full rank condition (FRC). This is because if the FRC is not satisfied, the short cycles produce lowweight codewords or they form absorbing sets, [2].
Moreover, in [24] and in [2] it is shown that an mcycle, with \(m=2\ell \) in an LDPC code with paritycheck matrix H can be represented, up to permutations, by an \(\ell \times \ell \) submatrix of H of the form
where \(a_i\in {\mathbb {F}}_q^*\). The cycle does not satisfy the FRC if the determinant of A is equal to 0. In this case, the cycle gives an absorbing set. Hence, it is a common problem to construct LDPC codes in which the shortest cycles satisfy the FRC.
In this work, we are interested in the convolutional counterpart of LDPC block codes, which is given by convolutional codes defined over a finite field \({\mathbb {F}}_q\) as kernel of a sparse sliding paritycheck matrix (here with sparse we mean that in particular each \(H_i\) is sparse).
Construction of LDPC convolutional codes
In this section, we use difference triangle sets to construct LDPC convolutional codes over \({\mathbb {F}}_q\). The construction was provided for \((n,n1)_q\) convolutional codes in [1]. Here, we generalize it for arbitrary n and k.
We will construct a sliding paritycheck matrix H as in (1), whose kernel defines a convolutional code. Due to the block structure of H, it is enough to consider
since H is then constructed by sliding it. It is easy to see that H does contain a cycle of length \(2\ell \) not satisfying the FRC if and only if \({\mathcal {H}}\) does. Assuming that \(H_0\) is full rank, we can perform Gaussian elimination on the matrix
which results in the block matrix
with \(A_i\in {\mathbb {F}}_q^{(nk)\times k}\) for \(i=1,\ldots , \mu \). With abuse of notation, we write \(H_0\) for \([A_0I_{nk}]\), and \(H_i\) for the matrices \([A_i  0]\).
Remark 1
If we define the matrix \({\tilde{H}}(z)=\sum _{i=0}^{\mu }A_{i}z^i\in {\mathbb {F}}_q[z]^{(nk)\times k}\), then we obtain that \( H(z)=[{\tilde{H}}(z)\ I_{nk}]\) and hence H(z) has a polynomial right inverse, i.e. H(z) is basic.
Given \(n\in {\mathbb {N}}\), with the following definition we describe how we construct the above mentioned matrix \({\bar{H}}\) from a (k, w)wDTS, which then will define an \((n,k)_q\) convolutional code.
Definition 2
Let k, n be positive integers with \(n>k\) and \({\mathcal {T}}:=\{T_1, \ldots , T_{k}\}\) be a (k, w)wDTS with scope \(m({\mathcal {T}})\). Set \(\mu =\left\lceil \frac{m({\mathcal {T}})}{nk}\right\rceil 1\) and define the matrix \({\bar{H}}\in {\mathbb {F}}_q^{(\mu +1)(nk)\times n}\), in which the lth column has weight w and support \(T_l\), i.e. for any \(1\le i \le (\mu +1)(nk)\) and \(1\le l\le k\), \({\bar{H}}_{i,l}\ne 0\) if and only if \(i \in T_l\). We say that \({\bar{H}}\) has support \({\mathcal {T}}\). The last \(nk\) columns of \({\bar{H}}\) are given by \([I_{nk},0_{nk},\ldots , 0_{nk}]^\top \). Derive the matrix \({\mathcal {H}}\) by “shifting" the columns of \({\bar{H}}\) by multiples of \(nk\) and then a sliding matrix H of the form of Eq. (1). Finally, define \({\mathcal {C}}:= \ker ({\mathcal {H}})\) over \({\mathbb {F}}_q\).
Observe that if \(k=n1\), we simply get the construction provided in [1, Definition 4].
Proposition 1
Let n, k, w be positive integers with \(n>k\), \({\mathcal {T}}\) be a (k, w)wDTS with scope \(m({\mathcal {T}})\) and set \(\mu =\left\lceil \frac{m({\mathcal {T}})}{nk}\right\rceil 1\). If \({\bar{H}}\) has support \({\mathcal {T}}\), then the corresponding code is an \((n,k,\delta )\) convolutional code with \(\mu \le \delta \le \mu (nk)\). Moreover \(H_{\mu }\) is full rank if and only if \(\delta =\mu (nk)\).
Proof
As the matrix H(z) defined in Remark 1 is basic, \(\delta \) is the maximal degree of the fullsize minors of H, which is clearly upper bounded by \(\mu (nk)\). Moreover, any minor formed by a column with degree \(\mu \) and suitable columns of the systematic part of H has degree \(\mu \), which proves the lower bound.
If \(H_{\mu }\) is full rank, it is equal to \([H]_{hr}\), and H is reduced. Hence, \(\delta \) is equal to the sum of the \(nk\) row degrees that are all equal to \(\mu \), i.e. \(\delta =\mu (nk)\). If \(H_{\mu }\) is not full rank, there are two possible cases. First, if \(H_{\mu }\) contains no allzero row, then \([H]_{hr}=H_{\mu }\) is not full rank, and hence \(\delta \) is strictly smaller than the sum of the row degrees which is \(\mu (nk)\). Second, if \(H_{\mu }\) contains a row of zeros, then the sum of the row degrees of H is strictly smaller than \(\mu (nk)\) and thus, also \(\delta \) is strictly smaller than \(\mu (nk)\). \(\square \)
Remark 2
If \(k<nk\), i.e. the rate of the code is smaller than 1/2, then (4) implies that \(H_{\mu }\) cannot be full rank. Moreover, in this case, \([H]_{hr}\) can only be full rank if at least \(n2k\) row degrees of H are zero.
Proposition 2
Let n, k, w be positive integers with \(n>k\) and \({\mathcal {T}}\) be a (k, w)wDTS. Assume \({\bar{H}}\) has support \({\mathcal {T}}\) and consider the convolutional code \({\mathcal {C}}\) constructed as kernel of the sliding paritycheck matrix corresponding to \({\bar{H}}\). If N is the maximal codeword length, i.e. for any codeword \(v(z)\in {\mathcal {C}}\), \(\deg (v)+1\le N/n\), then the sliding paritycheck matrix corresponding to \({\bar{H}}\) has density
Proof
To compute the density of a matrix, one has to divide the number of nonzero entries by the total number of entries. The result follows immediately. \(\square \)
Theorem 2
Let \({\mathcal {C}}\) be an (n, k) convolutional code with paritycheck matrix H. Assume that all the columns of \(\begin{bmatrix} A_0^\top&\cdots&A_{\mu }^\top \end{bmatrix}^\top \) defined as in (4) have weight w and denote by \(w_j\) the minimal column weight of \(\begin{bmatrix} A_0^\top&\cdots&A_{j}^\top \end{bmatrix}^\top \). For \(I\subset \{1,\ldots ,(nk)(\mu +1)\}\) and \(J\subset \{1,\ldots ,n(\mu +1)\}\) we define \([{\mathcal {H}}]_{I;J}\) as the submatrix of \({\mathcal {H}}\) with row indices I and column indices J. Assume that for some \({\tilde{w}}\le w\) all I, J with \(J\le I\le {\tilde{w}}\) and \(j_1:=\min (J)\le k\) and I containing the indices where column \(j_1\) is nonzero, we have that the first column of \([{\mathcal {H}}]_{I;J}\) is not contained in the span of the other columns of \([{\mathcal {H}}]_{I;J}\). Then

(i)
\({\tilde{w}}+1\le \mathrm {d_{free}}({\mathcal {C}})\le w+1\),

(ii)
\(\min (w_j,{\tilde{w}})+1\le d_j^c({\mathcal {C}})\le w_j+1\).
Proof
(i) Without loss of generality, we can assume that the first entry in the first row of \(H_0\) is nonzero. Denote the first column of \({\mathcal {H}}\) by \([h_{1,1},\ldots ,h_{1,(nk)\mu }]^\top \). Then, \(v(z)=\sum _{i=0}^r v_iz^i\) with
for \(i\ge 1\) is a codeword with \(\mathrm {wt}(v(z))=w+1\) as the weight of the first column of \({\mathcal {H}}\) is equal to w. Hence \(\mathrm {d_{free}}\le w+1\).
Assume by contradiction that there exists a codeword \(v(z)\ne 0\) with weight \(d\le {\tilde{w}}\). We can assume that \(v_0\ne 0\), i.e. there exists \(i\in \{1,\ldots ,n\}\) with \(v_{0,i}\ne 0\). We know that \({\mathcal {H}} v^{\top }=0\) and from (4) we obtain that there exists \(j\in \{1,\ldots ,n\}\) with \(j\ne i\) and \(v_{0,j}\ne 0\) and we can assume that \(i\le k\).
Now, we consider the homogeneous system of linear equations given by \({\mathcal {H}} v^{\top }=0\) and we only take the rows, i.e. equations, where column i of \({\mathcal {H}}\) has nonzero entries. Moreover, we define \({\tilde{v}}\in {\mathbb {F}}^d\) as the vector consisting of the nonzero components of \(v_0, v_1, \ldots , v_{\deg (v)}\). We end up with a system of equations of the form \([{\mathcal {H}}]_{I;J}{\tilde{v}}^{\top }=0\) where \([{\mathcal {H}}]_{I;J}\) fulfills the assumptions stated in the theorem. But this is a contradiction as \({\tilde{v}}^{\top }\) has all components nonzero and therefore \([{\mathcal {H}}]_{I;J}{\tilde{v}}^{\top }=0\) implies that the first column of \([{\mathcal {H}}]_{I;J}\) is contained in the span of the other columns of this matrix.
(ii) The result follows from Theorem 1 with an analogue reasoning as in part (i). \(\square \)
Remark 3
With the assumptions of Theorem 2, if \({\tilde{w}}=w\), one has \(d_j^c=\mathrm {d_{free}}\) for \(j\ge \mu \). Moreover, if \({\bar{H}}\) has support \({\mathcal {T}}\), one achieves higher column distances (especially for small j) if the elements of \({\mathcal {T}}\) are small.
Corollary 1
If \({\mathcal {T}}\) is a (k, w)DTS and \({\mathcal {C}}\) is an (n, k) convolutional code constructed from \({\mathcal {T}}\) as in Definition 2, then one has that:

(i)
\(\mathrm {d_{free}}({\mathcal {C}})= w+1\),

(ii)
\( d_j^c({\mathcal {C}})= w_j+1\).
Proof
As already mentioned in [27], matrices \({\mathcal {H}}\) constructed from a DTS have the property that for every pair of columns, their supports intersect at most once. Since \([{\mathcal {H}}]_{I;J}\) as defined in Theorem 2 has the property that all entries in the first column are nonzero, all other columns have at most one nonzero entry. But this implies that the first column cannot be in the span of the other columns and thus, the requirements of Theorem 2 are fulfilled for \({\tilde{w}}=w\), which proves the corollary. \(\square \)
Remark 4
If \(nk>1\), it is not necessary to have a DTS to obtain that all columns of \({\mathcal {H}}\) intersect at most once since one only has to consider shifts of columns by multiples of \(nk\). Therefore, we still need to consider a set \({\mathcal {T}}= \{T_1,\ldots , T_k\}\) such that all the differences \(a_{i_1,j_1}a_{i_1,s_1}\) and \(a_{i_2,j_2}a_{i_2,s_2}\) for \(i_1\ne i_2\) are different, i.e. two differences coming from different triangles of \({\mathcal {T}}\) have always to be different, but \(a_{i,j_1}a_{i,s_1}\) and \(a_{i,j_2}a_{i,s_2}\), i.e. differences coming from the same triangle, only have to be different if \((nk)\mid (a_{i,j_1}a_{i,j_2})\).
Example 3
Consider \(n=3\), \(k=1\) and \(T_1=\{1,2,3\}\). It holds \(21=32\) but since \(32\) is not divisible by \(nk=2\), this does not matter and we still get that all columns of \({\mathcal {H}}\) intersect at most once. For example for \(\mu =1\), we get
From Corollary 1 we know that if we use a DTS to construct the paritycheck matrix of the code, then the values of the nonzero entries are not important to achieve good distance properties. In the following, we present a construction that achieves also quite large distances if one takes the sets in a wDTS as support sets for the columns of the nonsystematic part of \({\bar{H}}\). Moreover, in Sect. 4, we show that this construction ensures that the Tanner graph associated to H is free from cycles of arbitrary length not satisfying the FRC if the size of the underlying field is sufficiently large and the wDTS fulfills some additional properties.
Definition 3
Let k, n be positive integers with \(n>k\) and \({\mathcal {T}}:=\{T_1, \ldots , T_{k}\}\) be a (k, w)wDTS with scope \(m({\mathcal {T}})\). Set \(\mu =\left\lceil \frac{m({\mathcal {T}})}{nk}\right\rceil 1\) and let \(\alpha \) be a primitive element for \({\mathbb {F}}_q\), so that every nonzero element of \({\mathbb {F}}_q\) can be written as power of \(\alpha \). For any \(1\le i \le (\mu +1)(nk)\), \(1\le l\le k\), define
Obtain the matrix \({\mathcal {H}}^{\mathcal {T}}\) by “shifting" the columns of \({\bar{H}}^{\mathcal {T}}\) by multiples of \(nk\) and then a sliding matrix \(H^{\mathcal {T}}\) of the form of Eq. (1). Finally, define \({\mathcal {C}}^{\mathcal {T}}:= \ker ({\mathcal {H}}^{\mathcal {T}})\) over \({\mathbb {F}}_q\).
Example 4
Let \({\mathbb {F}}_q:=\{0,1,\alpha , \ldots , \alpha ^{q2}\}\) and \({\mathcal {T}}\) be a (2, 3)wDTS, such that \(T_1:=\{1,2,6\}\) and \(T_2:=\{1,2,4\}\). Then, with the notation above,
which leads to the following sliding matrix.
The code constructed here is a \((3,2)_q\) convolutional code. In this example, one has \(d_0^c=2\), \(d_1^c=d_2^c=d_3^c=d_4^c=3\) and \(d_5=\mathrm {d_{free}}=4\).
The next theorem is a generalization of [1, Theorem 12] to any rate.
Theorem 3
Let w, n, k be positive integers with \(n>k\) and \({\mathcal {T}}\) be a (k, w)wDTS with scope \(m({\mathcal {T}})\) and \(q>(\mu +1)(nk)(k1)+1=\lceil \frac{m({\mathcal {T}})}{nk}\rceil (nk)(k1)+1\). Let \({\mathcal {C}}^{\mathcal {T}}\) be the \((n,k)_q\) convolutional code defined from \({\mathcal {T}}\), as defined in Definition 3 and consider \({\mathcal {H}}^{\mathcal {T}}\) as in (3). Then, all the \(2\times 2\) minors in \({\mathcal {H}}^{\mathcal {T}}\) that are nontrivially zero are nonzero.
Proof
The only \(2\times 2\) minors to check are the ones of the form \(\begin{vmatrix}a_1&a_2\\ a_3&a_4 \end{vmatrix}\). By definition of wDTS, the support of any column of \({\mathcal {H}}^{\mathcal {T}}\) intersects the support of its shift at most once. This ensures that the columns of all these minors are the shift of two different columns of \({\bar{H}}^{\mathcal {T}}\). Moreover, all the elements in the minor are powers of \(\alpha \). In particular, let \(1\le i,r \le (\mu +1)(nk)\), \(1\le j,\ell \le k\) (note that \(j<\ell \) or \(\ell <j\) according to which columns from \({\bar{H}}^{\mathcal {T}}\) are involved in the shifts). Hence we have that:
which is 0 if and only if \(r\ell = rj \mod (q1)\). Since it holds that \(0\le j < \ell \le k\) or \(0\le \ell < j \le k\) and \(1\le r \le (\mu +1)(nk)\), this cannot happen. \(\square \)
The following theorem is a generalization of [1, Theorem 13] for any rate. However, in the proof in [1] there is a computation mistake, hence we put the correct version below.
Theorem 4
Let w, n, k be positive integers with \(n>k\) and \({\mathcal {T}}\) be a (k, w)wDTS with scope \(m({\mathcal {T}})\), \(w\ge 3\). Let \({\mathcal {C}}^{\mathcal {T}}\) be the \((n,k)_q\) convolutional code defined from \({\mathcal {T}}\), as in Definition 3 with \({\mathcal {H}}^{\mathcal {T}}\) as defined in (3) and assume that \((\mu +1)(nk)>2\). Assume also that \(q=p^N\), where \(p>2\) and
Then, all the \(3\times 3\) minors in \({\mathcal {H}}^{\mathcal {T}}\) that are nontrivially zero are nonzero.
Proof
We need to distinguish different cases.
Case I The \(3\times 3\) minors are of the form
with \(a_i \ne 0\) for any i. As we observed in Theorem 3, in this case all the columns are shifts of three different columns from \({\bar{H}}^{\mathcal {T}}\), since each column can intersect any of its shifts at most once. Observe that we can write a minor of this form as
where \(1\le i,l,t \le (\mu +1)(nk)\), \(r,s \in {\mathbb {Z}}\) are possibly negative, with \(r\ne s\), and \(1\le j,u,m\le k\) representing the index of the column from which the selected element comes from (or if the selected elements belongs to the shift of some column, j, u, m are still the indexes of the original column). Due to symmetry in this case we can assume \(r,s\in {\mathbb {N}}\) and \(1\le i,l,t \le (\mu +1)(nk)3\). Moreover, \((\mu +1)(nk) +1\le i+r, l+r, t+r\le (\mu +1)(nk)  1\) and \((\mu +1)(nk)\le i+r+s, l+r+s, t+r+s \le (\mu +1)(nk)\). This determinant is 0 if and only if
Without loss of generality we can assume that \(j<u<m\) and it turns out that the maximum exponent in Eq. (5) is \(ru+rm+sm\) while the minimum is \(ru + rj + sj\). Let \(M:=ru+rm+sm  (ru + rj + sj)\). It is not difficult to see that the maximum value for M is \(((\mu +1)(nk)1)(k1)\) hence this determinant can not be zero because \(\alpha \) is a primitive element for \({\mathbb {F}}_q\) and, by assumption, \(q=p^N\), where \(N>M\).
Case II The \(3\times 3\) minors are of the form
As in the first case, we can assume that the minor is given by
with the same bounds on the variables as before. But, in this case \(j\ne u,m\) but u can be equal to m. Indeed, the first column intersects the other two in two places, which means that they are not all shifts of the same column. However, the second and third ones can belong to the same column. This determinant is 0 when \(\alpha ^{ru+sm}+\alpha ^{rj+sj} \alpha ^{rm+sm}=0\). In this case, according to the different possibilities for j, u, m and r, s we check the maximum and the minimum exponent. We present here only the worst case for the field size, which is obtained when \(j<u<m\), \(r<0\). We see that the minimum exponent is \(rj+sj\) and the maximum is \(rj+sm\). We consider \(M:=rj+smrjsj\) and we check what is the maximum value that M can reach. It is not difficult to see that this is \((\mu +1)(nk)(k1)\). When \(p=p^N\), with \(N>M\), the considered determinant is never 0.
Case III The \(3\times 3\) minors are of the form
with \(a_i \ne 0\) for any i. We can assume that, the minor is given by
with the same bounds on the variables as in previous cases. However, this time \(1\le j<u<m\le k\). After some straightforward computations, we get that this determinant is 0 if and only if
In the worst case, consider \(M:=ru+rj+su  (rm+rj+sj) = r(um)+s(uj)\) with \(r<0\). We immediately see that the maximum value that M can reach is \((\mu +1)(nk)(k2)+1\), hence this determinant can not be zero because \(\alpha \) is a primitive element for \({\mathbb {F}}_q\) and, by assumption, \(q=p^N\), where \(N>M\).
Case IV The \(3\times 3\) minors are of the form
In this case, we can have that the three considered columns come from different shifts of the same one, hence we allow that some (or all) among j, u, m are equal. Arguing as before, we notice that these minors are given by
This determinant is 0 whenever \(r(uj) + s(mj)  (q1)/2=0 \mod (q1)\). Analyzing all the possibilities we can have according to r, s being negative or positive and j, u, m being equal or different, after some computations, we obtain that, whenever \(q>2(k1)((\mu +1)(nk)1)+1\), the considered determinant is never 0. And this is the case for our field size assumption. \(\square \)
Observe that Case IV of Theorem 4 corresponds to the lower bound for the field size sufficient to avoid the presence of 6cycles not satisfying the FRC. Hence, we have the following result.
Corollary 2
Let \({\mathcal {C}}^{\mathcal {T}}\) be an (n, k) convolutional code constructed from a (k, w) wDTS \({\mathcal {T}}\) and satisfying the conditions of Theorems 3 and 4. Then, \(d_{free}({\mathcal {C}}^{\mathcal {T}})\ge 3\) and the code is free from 4 and 6cycles not satisfying the FRC.
Remark 5
If \({\mathcal {C}}^{\mathcal {T}}\) is an (n, k) convolutional code constructed from a (k, w) wDTS \({\mathcal {T}}\) and satisfying the conditions of Theorems 3 and 4, such that \(H_{\mu }\) has no zero row and \(nk\le \min \{3,k\}\), then, it follows from Proposition 1 that \(\delta =\mu (nk)\).
Example 5
Consider the \((3,2)_q\) code constructed in Example 4. Note that \(\mu = 5\), hence, for \(q>11\) we can avoid all the 6cycles not satisfying the FRC (Case IV of Theorem 4).
Excluding 2\(\ell \)cycles not satisfying the FRC
In this section, we give some conditions that ensure that the Tanner graph associated to the sliding paritycheck matrix of a convolutional code constructed via a difference triangle set is free of \(2\ell \)cycles not satisfying the FRC.
First of all we recall from Sect. 2.3 that a \(2\ell \)cycle can be represented by an \(\ell \times \ell \) submatrix of \({\mathcal {H}}\) that up to column and row permutations is of the form
where \(a_i\in {\mathbb {F}}_q^*\).
Remark 6
Observe that
hence it is clear that the Tanner graph associated to H can only contain \(2\ell \)cycles for
At first, we will investigate conditions on the wDTS used to construct the convolutional code that ensure that the associated Tanner graph contains no cycles at all independently of the nonzero values of the sliding paritycheck matrix and hence also independently of the underlying finite field.
Proposition 3
If \({\mathcal {C}}\) is an (n, k) convolutional code whose paritycheck matrix has support \({\mathcal {T}}\) where \({\mathcal {T}}\) is a (k, w)wDTS with the property that none of the differences \(a_{i,j}a_{i,m}\) for \(1\le i\le k\) and \(1\le m<j \le w\) is divisible by \(nk\), then each pair of columns that is next to each other in A as in (7) consists of shifts of different columns of \({\bar{H}}\). In particular, at most \(\lfloor \frac{\ell }{2}\rfloor \) columns of A can be shifts of the same column of \({\bar{H}}\).
Proof
The fact that none of the differences in the set is divisible by \(nk\) implies that the support of any column of \({\bar{H}}\) does not intersect the support of any of its shifts (by multiples of \(nk\)). Since the supports of neighbouring columns of A intersect, they have to be shifts of different columns of \({\bar{H}}\). \(\square \)
Corollary 3
If \({\mathcal {C}}\) is an (n, k) convolutional code whose paritycheck matrix has support \({\mathcal {T}}\) where \({\mathcal {T}}\) is a (k, w)wDTS with the property that \(T_1=\cdots =T_k\) and none of the differences \(a_{1,j}a_{1,m}\) for \(1\le m<j \le w\) is divisible by \(nk\), then the Tanner graph associated to the paritycheck matrix H of \({\mathcal {C}}\) is free from \(2\ell \) cycles (over every base field), with \(\ell >1\) not satisfying the FRC.
Theorem 5
Assume that \({\mathcal {C}}\) is an (n, k) convolutional code constructed from an (k, w)DTS \({\mathcal {T}}\) with \(a_{i,1}=1\) for all \(1\le i\le k\), where \((nk)\) does not divide any of the nonzero differences \(a_{i_1,j}a_{i_2,m}\) for \(1\le i_1, i_2\le k\) and \(1\le m, j \le w\). Then, the Tanner graph associated to the paritycheck matrix H of \({\mathcal {C}}\) is free from cycles of any size (over every base field) not satisfying the FRC.
Proof
Assume by contradiction that \({\mathcal {H}}\) contains up to permutations a submatrix A of the form (7). As the supports of the first two columns of A intersect, they have to be shifts of different columns of \({\bar{H}}\). The supports of such shifts can only intersect once and the entries of this intersection come from the first row of \({\bar{H}}\). Applying the same reasoning to the intersection of the supports of the second and third column of A, implies that \(a_2\) and \(a_3\) in A both come from the first row of \({\bar{H}}\) which is not possible. This shows the result. \(\square \)
Example 6
Consider the (2, 3)DTS \({\mathcal {T}}=\{T_1,T_2\}\) with \(T_1=\{1,2,5\}\) and \(T_2=\{1,3,9\}\). The set of all occurring nonzero differences \(a_{i_1,j}a_{i_2,m}\) is \(\{1,2,3,4,6,7,8\}\), i.e. none of them is divisible by 5. Hence the matrix \(H(z)=H_0+H_1z\) with \(H_0=[{\bar{H}}_0\ I_5]\) and \(H_1=[{\bar{H}}_1\ 0_5]\), where
and
full rank, i.e. \(\delta =1\), is the paritycheck matrix of an \((7,2,1)_q\) convolutional code that is free of cycles of any size for any prime power q.
Next, we want to relax the conditions on the wDTS used for construction of the convolutional code but still exclude cycles in the Tanner graph of the sliding paritycheck matrix that do not fulfill the FRC by using the construction from Definition 3 and considering sufficiently large field sizes.
To ensure that the considered cycle does not satisfy the FRC, we have to guarantee that \(\det A\ne 0\) as an element of \({\mathbb {F}}_q\). It is easy to check that
Let \({\mathcal {T}}\) be a (k, w)wDTS and let \({\mathcal {C}}^{\mathcal {T}}\) be the convolutional code defined from \({\mathcal {T}}\), with \({\mathcal {H}}^{\mathcal {T}}\) as defined in (3). Each matrix representation A of a \(2\ell \)cycle comes from selecting \(\ell \) rows and \(\ell \) columns of \({\mathcal {H}}^{\mathcal {T}}\). Moreover, in each column of A, exactly two positions are nonzero. Let \(\alpha \) be a primitive element for \({\mathbb {F}}_q\), let \(s_1, \ldots , s_{\ell } \in {\mathbb {N}}\) be the indexes of the columns of \({\mathcal {H}}^{\mathcal {T}}\), selected to form the cycle, (we consider \(s_i\) also if we select the shift of the ith column) hence we have that \(1\le s_h\le k\).
We can write A in the following form:
where \(i_h\in {\mathbb {Z}}\) and \(i_h\) is equal to a difference from \(T_{s_{h+1}}\) for \(h=1,\ldots \ell 1\) and \(i_1+ \cdots + i_{\ell 1}\) is equal to a difference from \(T_{s_1}\). Moreover, \(1\le r_h+i_1+\ldots +i_g\le (\mu +1)(nk)\) for \(h=1,\ldots ,\ell \) and \(g=0,\ldots ,\ell 1\).
We want to estimate the sufficient field size to have that this determinant is nonzero and therefore, we distinguish two cases.
\(\mathbf{Case I: }\) Assume that \(\ell \) is odd. In this case, the determinant of a matrix of the form (7) is given by
Hence, if the characteristic of the field is \(p>2\), it is equal to 0 in \({\mathbb {F}}_q\) if and only if
which is equivalent to
and hence
It is then enough to consider q bigger than the maximum value that can be reached by the function
Now, note that \(i_h\) can be also negative but in general, we can say that \(i_h\le (\mu +1)(nk)1\). Moreover, \(s_is_1\le k1\). Hence, if we can ensure that
with this construction we have a convolutional code whose sliding paritycheck matrix is associated to a Tanner graph free from \(2\ell \)cycles, with \(\ell \) odd, not satisfying the FRC.
Remark 7
Observe that in Theorem 4, we computed a more accurate estimation of the field size for getting rid of the \(2\ell \) cycles, for \(\ell = 3\), namely, \(q>2(\mu +1)(nk)(k1)2(k1)+1\). The computation above shows that with \(q>4(\mu +1)(nk)(k1)4(k1)+1\) we do not have 6cycles not satisfying the FRC. This difference is due to the possibility of a better estimation of the terms in the above inequality.
With the discussion above we have proved the following result.
Theorem 6
Let n, k, w be positive integers with \(n>k\), \({\mathcal {T}}\) be a (k, w)wDTS and \({\mathcal {C}}^{\mathcal {T}}\) be the \((n,k)_q\) convolutional code constructed from \({\mathcal {T}}\) with \(q=p^N\) and \(p>2\). A sufficient condition for obtaining a code whose sliding paritycheck matrix is free from \(2\ell \)cycles not satisfying the FRC with \(\ell \) odd is to choose a field size \(q>2(\mu +1)(nk)(\ell 1)(k1)2(k1)(\ell 1)+1\), where \(\mu =\left\lceil \frac{m({\mathcal {T}})}{nk}\right\rceil 1\) is the degree of the paritycheck matrix of \({\mathcal {C}}^{\mathcal {T}}\).
Example 7
Consider again the code constructed in Example 4. From Remark 6, we know that the highest length that we can have for a cycle is \(10 = 2\cdot 5\), but for q odd with \(q>41\) all the 10cycles satisfy the FRC.
\(\mathbf{Case II: }\) Assume that \(\ell \) is even. In this case, the determinant of a matrix of the form (7) is given by
After some straightforward computation, it is easy to see that this determinant is equal to 0 in \({\mathbb {F}}_q\) if and only if
which is equivalent to
and hence
for \(i:=(i_1,\ldots , i_{\ell 1})\) and \(s:=(s_1,\ldots ,s_\ell )\).
Moreover, we have the following constraints:

1.
\( (\mu +1)(nk)+1\le i_h \le (\mu +1)(nk)1\) for \(h=1,\ldots ,\ell 1\)

2.
\(k+1\le s_{h+1}s_1\le k1\), for \(h=1,\ldots ,\ell 1\);
We have to find conditions on the corresponding wDTS to ensure that f(i, s) is nonzero when viewed as an element of \({\mathbb {Z}}\) and then, we can determine a lower bound for q in order that it is also nonzero modulo \(q1\).
Using Proposition 3, we know that if none of the differences in the difference triangle set is divisible by \(nk\), then not all the values \(s_1,\ldots ,s_{\ell }\) can be identical. In particular, there is at least one \(h\in \{2,\ldots ,\ell \}\) such that \(s_hs_1\ne 0\).
Theorem 7
Let \(\ell \) be an even integer, k, n, w be integers such that \(n>k\), \({\mathcal {T}}\) be a (k, w)wDTS and \({\mathcal {C}}^{\mathcal {T}}\) be the \((n,k)_q\) convolutional code constructed from \({\mathcal {T}}\). Assume that \({\mathcal {T}}\) fulfills the conditions of Proposition 3 and has the property that f(i, s) is nonzero in \({\mathbb {Z}}\) for all \(s_1,\ldots ,s_{\ell }\in \{1,\ldots ,k\}\) not all equal if \(i_h\) is equal to a difference from \(T_{s_{h+1}}\) for \(h=1,\ldots \ell 1\) and \(i_1+ \cdots + i_{\ell 1}\) is equal to a difference from \(T_{s_1}\) and \(q>((\mu +1)(nk)1)\left( (k1)\frac{\ell }{2}+(k2)\frac{\ell 2}{2}\right) +1\). Then, the Tanner graph associated to the sliding paritycheck matrix of \({\mathcal {C}}^{\mathcal {T}}\) is free from \(2\ell \)cycles that do not satisfy the FRC.
Proof
The conditions of the theorem ensure that f(i, s) is nonzero in \({\mathbb {Z}}\). Moreover, it follows from Proposition 3 that
is an upper bound for f(i, s). Hence, the result follows. \(\square \)
Next, we want to give an example for a convolutional code that fulfills the conditions of the preceding theorem.
Example 8
Let \(n=7\) and \(k=2\) and \(T_1=\{1,2,5,9\}\) and \(T_2=\{1,2,4,10\}\), i.e. \(\mu =1\). Note that \(T_1\) is no difference triangle in the strict sense as \(95=51\) but as \(nk=5\) does not divide \(95\), we can still use it for the construction of our code (see Remark 4). We get
Form Remark 6 one knows that with these parameters it is not possible to have cycles of length \(2\ell \) for \(\ell >4\). Moreover, from Theorem 3, we obtain that we can exclude 4cycles not fulfilling the FRC if \(q>11\) and from Theorem 4, that we can exclude 6cycles not fulfilling the FRC if \(q>19\) and q is odd. We will show that with the help of the preceding theorem, we can also exclude 8cycles in \({\mathcal {H}}^T\) that do not fulfill the FRC or in other words, all \(2\ell \)cycles for any \(\ell \) in \({\mathcal {H}}^{\mathcal {T}}\) fulfill the FRC for \(q>19\). First, from Proposition 3, we know that in the matrix A representing any 8cycle we necessarily have \(s_1=s_3\) and \(s_2=s_4\) and each column of \({\bar{H}}^{\mathcal {T}}\) is involved once unshifted and once shifted by 5. We get \(f(i,s)=\pm (i_1+i_3)\) and have to exclude that \(i_1\ne i_3\). Considering \({\mathcal {H}}^{\mathcal {T}}\), we realize that 8cycles are only possible for \(s_1=s_3=1\) and \(s_2=s_4=2\) and \(i_1\in \{\pm 8,\pm 9\}\) and \(i_3\in \{\pm 2,\pm 3\}\). Hence, for \(q>9\cdot 2+1=19\), the corresponding convolutional code is free from 8cycles not fulfilling the FRC and hence, free from \(2\ell \)cycles not fulfilling the FRC for any \(\ell \).
To conclude this section, we will modify our construction from Definition 3 in order to further relax the conditions on the underlying wDTS and still ensuring that we have no cycles not fulfilling the FRC. However, this will come with the cost of a larger field size.
Definition 4
Let k, n be positive integers with \(n>k\) and \({\mathcal {T}}:=\{T_1, \ldots , T_{k}\}\) an (k, w)wDTS with scope \(m({\mathcal {T}})\). Set \(\mu =\left\lceil \frac{m({\mathcal {T}})}{nk}\right\rceil 1\) and let \(\alpha \) be a primitive element for \({\mathbb {F}}_q\). Moreover, let P be a prime (with properties that will be determined later). For any \(1\le i \le (\mu +1)(nk)\), \(1\le l\le k\), define
Theorem 8
Let k, n, w be positive integers with \(n>k\) and \({\mathcal {T}}\) be a DTS with \(a_{i,1}=1\) for all \(1\le i\le k\) and \({\mathcal {C}}\) be an \((n,k)_q\) convolutional code constructed from \({\bar{H}}^{({\mathcal {T}})}\). If \(P>\ell k\) and \(q>kP^{(\mu +1)(nk)}\frac{P^{2\ell }1}{P^{2\ell }P^{2\ell 1}}+1\), then the Tanner graph associated to the sliding paritycheck matrix contains no cycles of size \(2\ell \) not fulfilling the FRC.
Proof
As with the construction from Definition 3, we obtain that \(\det (A)=0\) if and only if a certain linear combination \({\tilde{f}}(i,s)\) of exponents of P with \(2\ell \) coefficients from \(\{1,\ldots , k\}\) is zero. As the exponents correspond to row indices before a possible shift and the unshifted columns only intersect in the first row, all exponents that are equal to any other exponent are equal to 1. Moreover, as exponents from the same column of A cannot be the same, at most \(\ell \) exponents can be equal to 1. In summary, we obtain that \({\tilde{f}}(i,s)\) is of the form \({\tilde{f}}(i,s)=Px + P^{e_1}x_1+\cdots +P^{e_t}x_t\) with natural numbers \(1<e_1<\cdots <e_t\le (\mu +1)(nk)\), \(t\in \{\ell ,\ldots ,2\ell \}\), \(x_j\in \{k,\ldots ,k\}\setminus \{0\}\) for \(j=1,\ldots ,t\) and \(x\in \{\ell k,\ldots ,+\ell k\}\). Since m was chosen to be a prime larger than \(\ell k\), \({\tilde{f}}(i,s)\) is nonzero in \({\mathbb {Z}}\). Furthermore, \({\tilde{f}}(i,s)\le k\sum _{i=0}^{2\ell 1}P^{(\mu +1)(nk)i}=kP^{(\mu +1)(nk)}\frac{P^{2\ell }1}{P^{2\ell }P^{2\ell 1}}\) and hence it cannot be zero modulo \(q1\). \(\square \)
Finally, we illustrate our modified construction with an example.
Example 9
If we take the DTS \({\mathcal {T}}=\{\{1,2,5\},\{1,3,8\}\}\) to construct an \((6,2)_q\) convolutional code, we have \(m({\mathcal {T}})=8\) and \(\mu =1\). If we want that the girth of the corresponding paritycheck matrix is at least 12, we have to choose \(P>10\), i.e. \(P=11\). To get the desired property it would be sufficient if the field size is larger than \(4.716\times 10^8\). If it is sufficient to have a girth of at least 8, it would be enough to choose \(P=7\) and the sufficient field size decreases to \(1.35\times 10^7\).
Conclusion
In the past years, several authors tried to algebraically construct LDPC convolutional codes with good distance properties. In the present paper, we provided a combinatorial construction of LDPC convolutional codes of arbitrary rate and over arbitrary fields, with the aid of (weak) difference triangle sets. This construction produces codes with good distance properties. Finally, we provided a lower bound on the field size that is sufficient to have codes with good distance and to avoid the presence of cycles in the associated Tanner graph not satisfying the full rank condition, which is desirable for minimizing the decoding failure of this type of codes.
References
Alfarano G.N., Lieb J., Rosenthal J.: Construction of rate \((n1)/n\) nonbinary LDPC convolutional codes via difference triangle sets. In: 2020 IEEE International Symposium on Information Theory (ISIT), 2020, pp. 138–143, https://doi.org/10.1109/ISIT44484.2020.9174510.
Amiri B., Kliewer J., Dolecek L.: Analysis and enumeration of absorbing sets for nonbinary graphbased codes. IEEE Trans. Commun. 62(2), 398–409 (2014).
Bates S., Chen Z., Dong X.: Lowdensity paritycheck convolutional codes for ethernet networks. In: PACRIM. 2005 IEEE Pacific Rim Conference on Communications, Computers and signal Processing. 2005, pp. 85–88, https://doi.org/10.1109/PACRIM.2005.1517231.
Bates S., Elliott D.G., Swamy R.: Termination sequence generation circuits for lowdensity paritycheck convolutional codes. IEEE Trans. Circuits Syst. I 53(9), 1909–1917 (2006).
Battaglioni M., Baldi M., Chiaraluce F., Lentmaier M.: Girth properties of timevarying SCLDPC convolutional codes. In: 2019 IEEE International Symposium on Information Theory (ISIT), pp. 2599–2603, https://doi.org/10.1109/ISIT.2019.8849323.
Berrou C., Glavieux A., Thitimajshima P.: Near Shannon limit errorcorrecting coding and decoding: Turbocodes. 1. In: Proceedings of ICC’93IEEE International Conference on Communications, vol. 2, pp. 1064–1070, https://doi.org/10.1109/ICC.1993.397441.
Chee Y.M., Colbourn C.J.: Constructions for difference triangle sets. IEEE Trans. Inf. Theory 43(4), 1346–1349 (1997).
Chen Z., Fan P., Jin F.: Disjoint difference sets, difference triangle sets, and related codes. IEEE Trans. Inf. Theory 38(2), 518–522 (1992).
Chung S.Y., Richardson T.J., Urbanke R.L.: Analysis of sumproduct decoding of lowdensity paritycheck codes using a Gaussian approximation. IEEE Trans. Inf. Theory 47(2), 657–670 (2001).
Colbourn C.J.: Difference triangle sets. In: Colbourn C.J., Dintz J (eds.) The CRC Handbook of Combinatorial Designs, pp. 312–317. CRC Press, Boca Raton (1996).
Davey M.C., MacKay D.J.: Low density parity check codes over GF(q). In: IEEE Communications Letters, vol. 2, no. 6, pp. 165–167, June 1998, https://doi.org/10.1109/4234.681360.
Davey M.C., MacKay D.J.: Monte Carlo simulations of infinite low density parity check codes over GF(q). In: Proceedings of International Workshop on Optimal Codes and Related Topics, pp. 9–15. Citeseer (1998).
Forney G.: Convolutional codes I: algebraic structure. IEEE Trans. Inf. Theory 16(6), 720–738 (1970).
Gallager R.: Lowdensity paritycheck codes. IRE Trans. Inf. Theory 8(1), 21–28 (1962).
GluesingLuerssen H., Rosenthal J., Smarandache R.: StronglyMDS convolutional codes. IEEE Trans. Inf. Theory 52(2), 584–598 (2006).
Johnson S.J., Weller S.R.: Regular lowdensity paritycheck codes from combinatorial designs. In: Proceedings 2001 IEEE Information Theory Workshop (Cat. No. 01EX494), pp. 90–92. IEEE (2001), https://doi.org/10.1109/ITW.2001.955146.
Kailath T.: Linear Systems, vol. 156. PrenticeHall, Englewood Cliffs (1980).
Klove T.: Bounds and construction for difference triangle sets. IEEE Trans. Inf. Theory 35(4), 879–886 (1989).
Kou Y., Lin S., Fossorier M.: Construction of low density parity check codes: a geometric approach. In: Proceedings of the 2nd International Symposium on Turbo Codes and Related Topics, pp. 137–140 (2000).
Kou Y., Lin S., Fossorier M.P.: Lowdensity paritycheck codes based on finite geometries: a rediscovery and new results. IEEE Trans. Inf. theory 47(7), 2711–2736 (2001).
MacKay D.J., Neal R.M.: Near Shannon limit performance of low density parity check codes. Electron. Lett. 32(18), 1645–1646 (1996).
Massey J.L.: Threshold Decoding. MIT, Cambridge (1963).
Oswald P., Shokrollahi A.: Capacityachieving sequences for the erasure channel. IEEE Trans. Inf. Theory 48(12), 3017–3028 (2002).
Poulliat C., Fossorier M., Declercq D.: Design of regular \((2, d_c)\)LDPC codes over GF(\(q\)) using their binary images. IEEE Trans. Commun. 56(10), 1626–1635 (2008).
Pusane A.E., Smarandache R., Vontobel P.O., Costello D.J.: Deriving good LDPC convolutional codes from LDPC block codes. IEEE Trans. Inf. Theory 57(2), 835–857 (2011).
Richardson T.J., Urbanke R.L.: The capacity of lowdensity paritycheck codes under messagepassing decoding. IEEE Trans. Inf. Theory 47(2), 599–618 (2001).
Robinson J.P., Bernstein A.: A class of binary recurrent codes with limited error propagation. IEEE Trans. Inf. Theory 13(1), 106–113 (1967).
Rosenthal J.: Connections between linear systems and convolutional codes. In: Codes, Systems, and Graphical Models, pp. 39–66. Springer, Berlin (2001).
Rosenthal J., Vontobel P.O.: Constructions of LDPC codes using Ramanujan graphs and ideas from Margulis. In: Proceedings of the 38th Allerton Conference on Communication, Control, and Computing (2000).
Tanner R.: A recursive approach to low complexity codes. IEEE Trans. Inf. Theory 27(5), 533–547 (1981).
Tanner R.M.: Errorcorrecting coding system. US Patent 4,295,218 (1981).
Tanner R.M.: Convolutional Codes from Quasicyclic codes: A Link Between the Theories of Block and Convolutional Codes. University of California, Santa Cruz, Computer Research Laboratory (1987).
Tanner R.M., Sridhara D., Sridharan A., Fuja T.E., Costello D.J.: LDPC block and convolutional codes based on circulant matrices. IEEE Trans. Inf. Theory 50(12), 2966–2984 (2004).
Tong S.Y.: Systematic construction of selforthogonal diffuse codes. IEEE Trans. Inf. Theory 16(5), 594–604 (1970).
Tong S.Y.: Charactercorrecting convolutional selforthogonal codes. Inf. Control 18, 183–202 (1971).
Vasic B., Milenkovic O.: Combinatorial constructions of structured lowdensity parity check codes for iterative decoding. IEEE Trans. Inf. Theory, vol 50, no. 6, pp. 1156–1176, June 2004, https://doi.org/10.1109/TIT.2004.828066.
Vasic B., Milenkovic O.: Combinatorial constructions of lowdensity paritycheck codes for iterative decoding. IEEE Trans. Inf. Theory 50(6), 1156–1176 (2004).
Wiberg N.: Codes and decoding on general graphs. PhD thesis (1996).
Zhou H., Goertz N.: Cycle analysis of timeinvariant LDPC convolutional codes. In: 2010 17th International Conference on Telecommunications, pp. 23–28. IEEE (2010), https://doi.org/10.1109/ICTEL.2010.5478744.
Acknowledgements
The authors acknowledge the support of Swiss National Science Foundation Grant No. 188430. Julia Lieb acknowledges also the support of the German Research Foundation Grant LI 3101/11.
Funding
Open Access funding provided by University Zurich.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
This work is an extension of the 5 pages conference paper “Construction of Rate \((n1)/n\) NonBinary LDPC Convolutional Codes via Difference Triangle Sets” [1], which will appear in Proceedings of IEEE International Symposium on Information Theory 2020.
Communicated by K. T. Arasu.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Alfarano, G.N., Lieb, J. & Rosenthal, J. Construction of LDPC convolutional codes via difference triangle sets. Des. Codes Cryptogr. 89, 2235–2254 (2021). https://doi.org/10.1007/s10623021009125
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10623021009125
Keywords
 LDPC codes
 Difference triangle sets
 Convolutional codes
Mathematics Subject Classification
 11T71
 68R05
 94B10