Complete j-MDP Convolutional Codes

Maximum distance profile (MDP) convolutional codes have been proven to be very suitable for transmission over an erasure channel. In addition, the subclass of complete MDP convolutional codes has the ability to restart decoding after a burst of erasures. However, there is a lack of constructions of these codes over fields of small size. In this article, we introduce the notion of complete <inline-formula> <tex-math notation="LaTeX">$j$ </tex-math></inline-formula>-MDP convolutional codes, which are a generalization of complete MDP convolutional codes, and describe their decoding properties. In particular, we present a decoding algorithm for decoding erasures within a given time delay <inline-formula> <tex-math notation="LaTeX">$T$ </tex-math></inline-formula> and show that complete <inline-formula> <tex-math notation="LaTeX">$T$ </tex-math></inline-formula>-MDP convolutional codes are optimal for this algorithm. Moreover, using a computer search with the MAPLE software, we determine the minimal binary and non-binary field size for the existence of (2,1,2) complete <inline-formula> <tex-math notation="LaTeX">$j$ </tex-math></inline-formula>-MDP convolutional codes and provide corresponding constructions. We give a description of all (2,1,2) complete MDP convolutional codes over the smallest possible fields, namely <inline-formula> <tex-math notation="LaTeX">$\mathbb F_{13}$ </tex-math></inline-formula> and <inline-formula> <tex-math notation="LaTeX">$\mathbb F_{16}$ </tex-math></inline-formula> and we also give constructions for (2,1,3) complete 4-MDP convolutional codes over <inline-formula> <tex-math notation="LaTeX">$\mathbb F_{128}$ </tex-math></inline-formula> obtained by a randomized computer search.


I. INTRODUCTION
C ONVOLUTIONAL codes are especially suitable for transmitting over an erasure channel, which is the most used channel in multimedia traffic. An erasure channel is a communication channel where the receiver knows if a received symbol is correct since symbols either arrive correctly or are erased. The Internet is an important example of an erasure channel. The advantage of convolutional codes is the ability of considering a part of the sequence ("window") of any size and slide this window along the transmitted sequence depending on the erasures location to optimize the number of corrected erasures.
Crucial for the erasure correcting capability of a convolutional code are its column distances, which are limited by an upper bound, proven in [12]. Convolutional codes attaining these bounds, i.e. convolutional codes whose column distances increase as rapidly as possible for as long as possible, are called maximum distance profile (MDP) convolutional codes. In [14], the authors showed that MDP convolutional codes have optimal recovery rate. Moreover, they introduced the subclass of reverse MDP convolutional codes, which could recover more erasure patterns since they are also suitable for sliding backwards along the sequence. Finally, complete MDP convolutional codes, which are again a subclass of reverse MDP convolutional codes, have the additional benefit that they can correct even more erasure patterns than reverse MDP convolution codes, e.g. there is less waiting time when a large burst of erasures occurs and no correction is possible for some time (see [14]).
In this paper, we will introduce a new notion of convolutional codes, the so-called complete j-MDP convolutional codes, which contain the class of complete MDP convolutional codes. The column distances of these codes are maximal up to the j-th column distance. Moreover, they are also suitable for backward decoding and admit to restart the decoding after a burst of erasures if there is a window with sufficient small percentage of erasures after this burst. For small j, complete j-MDP convolutional codes have a weaker erasure correcting capability than complete MDP convolutional code but in turn are easier to construct. Moreover, if decoding has to be performed within time delay T , complete T -MDP convolutional codes are optimal and have the same performance as complete j-MDP codes with j > T and hence also the same performance as complete MDP convolutional codes.
There are some general constructions for MDP (see [2], [3], [5] and [11]) and complete MDP convolutional codes (see [9]). However, all of these constructions have the disadvantage that they only work over base fields of very large size.
This provokes the question for the minimal field size such that an MDP (respectively, complete MDP) convolutional code exists. Upper bounds on the necessary field size for the existence of MDP convolutional codes could be found in [8] and [10], for the existence of complete MDP convolutional codes in [10]. Furthermore, in [10], lower bounds for the probability that a convolutional code is MDP (respectively complete MDP) are obtained.
For some special code parameters, the precise necessary field size as well as corresponding constructions are known. In [4], (n, n − 1, 2) MDP convolutional codes where n ≥ 4 is a power of a 2, are considered. In [10], the author considered (n, 1, 1) (and (n, n − 1, 1)) MDP, reverse MDP and complete MDP convolutional codes and calculated the corresponding probabilities. In particular, [10] contains a description of all (2, 1, 1) MDP, reverse MDP and complete MDP convolutional codes over the smallest possible field F 3 . In this paper, we continue this work giving a description of all (2,1,2) complete MDP convolutional codes with minimal field size.
The paper is structured as follows. In Section 2, we start with some preliminaries about MDP, reverse MDP and complete MDP convolutional codes. In Section 3, we present a low delay erasure decoding algorithm for convolutional codes. In Section 4, we introduce complete j-MDP convolutional codes and their decoding capability. In Section 5, we study the (2, 1, 2) complete j-MDP convolutional codes and, for each j ≤ 4, we give the minimal binary and non-binary field sizes for the existence of a complete j-MDP convolutional code together with a corresponding construction. In particular, we give a complete description of all (2, 1, 2) complete MDP convolutional codes over the smallest possible fields, namely F 13 and F 16 . These results were obtained with the help of a computer search using the mathematical software Maple. In Section 6, we use a randomized computer search to find some examples of (2, 1, 3) complete 4-MDP convolutional codes and describe the computational difficulties for dealing with larger parameters. In Section 7, we describe the algorithms we used for the computer search. In Appendix, we include an illustrative sample of the computer programs we used.

II. PRELIMINARIES
In this section, we summarize the basic definitions and properties concerning MDP convolutional codes. One way to define a convolutional code is via polynomial generator matrices.
Definition 1: A convolutional code C of rate k/n is a free F[z]-submodule of F[z] n of rank k. There exists G(z) ∈ F[z] n×k of full column rank such that G(z) is called generator matrix of the code and is unique up to right multiplication with a unimodular matrix U (z) ∈ Gl k (F[z]). The degree δ of C is defined as the maximal degree of the k × k-minors of G(z). Let δ 1 , . . . , δ k be the column degrees of G(z). Then, δ ≤ δ 1 + · · · + δ k and if δ = δ 1 + · · · + δ k , G(z) is called a minimal generator matrix and max i∈{1,...,n} δ i is the memory of C. We refer to a convolutional code with rate k/n and degree δ as (n, k, δ) convolutional code.
There is a generic subclass of convolutional codes that could not only be described by an image representation via generator matrices but also by a kernel representation via the so-called parity-check matrices, which will be introduced in the following. Therefore, we need the notion of right prime and left prime polynomial matrices.
Definition 2: A polynomial matrix G(z) ∈ F[z] n×k with k < n is called right prime if it has a left k × n polynomial inverse. For k > n, it is called left prime if it has a right n × k polynomial inverse.
Definition 3: A convolutional code C is called non-catastrophic if one and therefore, each of its generator matrices is right prime.
Definition 4: If C is non-catastrophic, there exists a so-called parity-check matrix H(z) ∈ F[z] (n−k)×n of full rank, such that Throughout this paper we assume all convolutional codes to be non-catastrophic. It is always This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TIT.2020.3015698, IEEE Transactions on Information Theory 3 possible to choose a row reduced and left prime parity-check matrix and if H(z) ∈ F[z] (n−k)×n is a left prime and row reduced parity-check matrix of an (n, k, δ) convolutional code C, then the sum of the row degrees of H(z) is equal to δ (see [13]). We will need the representation by parity-check matrices to define complete MDP convolutional codes. But first of all, we want to introduce MDP convolutional codes, for which we have to consider distances of convolutional codes. For this paper, the notion of column distances plays a crucial role because column distances are important for the decoding over an erasure channel. In this kind of channel, each symbol either arrives correctly or does not arrive at all.
Definition 5: The Hamming weight wt(v) of v ∈ F n is defined as the number of its nonzero components.
. , γ and set v t = 0 ∈ F n for t ≥ γ +1. Then, for j ∈ N 0 , the j-th column distance of a convolutional code C is defined as There exist upper bounds for the column distances of a convolutional code.
Theorem 1: [12] [5] Let C be a convolutional code with rate k/n and degree δ. Then, it holds: d c j (C) ≤ (n − k)(j + 1) + 1 for j ∈ N 0 We are interested in convolutional codes whose column distances increase as rapidly as possible for as long as possible.
Definition 6: [7] A convolutional code C of rate k/n and degree δ has maximum distance profile According to [5], it is sufficient to have equality for j = L in Theorem 1 to get an MDP convolutional code.
In the following, we will provide criteria to check whether a convolutional code has a maximum distance profile. Therefore, we need the notion of trivially zero determinants.
Definition 7: Let A = [µ ij ] be a square matrix of order m over F q M and S m the symmetric group of order m. Recall that the determinant of A is given by where the sign of the permutation σ, sgn(σ), is 1 (resp. −1) according to if σ can be written as product of an even (resp. odd) number of transpositions. A trivial term of the determinant is a term of (1), µ 1σ(1) · · · µ mσ(m) , equal to zero. If A is a square submatrix of a matrix B, with entries in F q M , and all the terms of the determinant of A are trivial we say that |A| is a trivial minor of B.
Theorem 2: The following statements are equivalent: i > ν has the property that every full size minor that is not trivially zero, i.e. is formed by columns with indices 1 ≤ j 1 < · · · < j (j+1)(n−k) with j s(n−k) ≤ sn for s = 1, . . . , j, is nonzero. From the preceding theorem, one can deduce the following decoding property.
Theorem 3: [14] If d c j (C) = (n − k)(j + 1) + 1 and in any sliding window of length (j + 1)n at most (j + 1)(n − k) erasures occur in a transmitted sequence, then complete recovery is possible by iteratively decoding the symbols from left to right.
We recall reverse MDP convolutional codes, which are advantageous for use in forward and backward decoding algorithms [14].
Definition 8: [6] Let C be an (n, k, δ) convolutional code with right prime minimal generator matrix G(z), which has entries g ij (z) and column degrees δ 1 , . . . , δ k . Set g ij (z) := z δj g ij (z −1 ). Then, the code C with generator matrix G(z), which has g ij (z) as entries, is also an (n, k, δ) convolutional code, which is called the reverse code to C.
Definition 9: [14] Let C be an MDP convolutional code. If C is also MDP, C is called reverse MDP convolutional code.
Reverse MDP convolutional codes can recover This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TIT.2020.3015698, IEEE Transactions on Information Theory 4 the same amount of erasures per window as MDP convolutional codes but not only from left to right but also from right to left, which allows in total to correct more erasure patterns, see [14]. Remark 1: [14] Let C be an (n, k, δ) MDP convolutional code with (n − k) | δ. Furthermore, let H(z) = H 0 + · · · + H ν z ν be a left prime and row proper parity-check matrix of C. Then the reverse code C has parity-check matrix H(z) = H ν + · · · + H 0 z ν . Therefore, C is reverse MDP if and only if every full size minor of the matrix formed from the columns with indices j 1 , . . . , j (L+1)(n−k) with j s(n−k)+1 > sn, for s = 1, . . . , L is nonzero. Next, we introduce complete MDP convolutional codes, which are even more advantageous for decoding than reverse MDP convolutional codes as there is less waiting time when a large burst of erasures occurs and no correction is possible for some time [14].
Definition 10: H ν ∈ F (L+1)(n−k)×(ν+L+1)n is called partial parity-check matrix of the code. Moreover, C is called complete MDP convolutional code if for any of its parity-check matrices H(z), every full size minor of H which is not trivially zero is nonzero. Remark 2: (i) Every complete MDP convolutional code is a reverse MDP convolutional code. [14] (ii) A complete MDP convolutional code exists over a sufficiently large base field if and only if (n − k) | δ. [9] As for H L -when considering MDP convolutional codes -and additionally for H L -when considering reverse MDP convolutional codes -one could describe the not trivially zero full size minors of the partial parity-check matrix H by conditions on the indices of the columns one uses to form the corresponding minor.
Lemma 1: [14] A full size minor of H formed by the columns j 1 , . . . , j (L+1)(n−k) is not trivially zero if and only if In addition to the erasure correcting capability of reverse MDP convolutional codes, complete MDP convolutional codes admit the possibility to continue decoding after a window with too many erasures was received. This is described in the following theorem, which is an immediate consequence of the preceding lemma.
Theorem 4: If in a window of size (ν + L + 1)n there are not more than (L + 1)(n − k) erasures, and if between position 1 and sn and between position (ν + L + 1)n and (ν + L + 1)n − sn + 1 for s = 1, . . . , L + 1, there are not more than s(n − k) erasures, then full correction of all symbols in this interval is possible.
In case one receives one window that fulfills the properties of this theorem, one is able to recover all the erasures in this window, no matter what happens in the other windows. This might also help to recover the erasures that could not be recovered before.
The main advantage of convolutional codes is the use for sequential decoding with low delay. Here, backward decoding is not really helpful since it comes with a larger decoding delay. However, the possibility to restart the decoding after some symbols were lost is an important feature of complete MDP convolutional codes also for low delay decoding.

CONVOLUTIONAL CODES
In this section, we present a decoding algorithm for convolutional codes that recovers as many erasures as possible within a fixed decoding delay T . Assume that for a codeword v(z) = i∈N0 v i z i of C, the coefficients v 0 , . . . , v t−1 arrive (correctly) for some t ∈ N 0 and at least one component of the 0018-9448 (c) 2020 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TIT.2020.3015698, IEEE Transactions on Information Theory 5 parity-check matrix of C. Then, for each j ∈ N 0 and Where Consequently, to recover the erasures in v t , . . . , v t+j , one has to solve the system of linear euqations where v Let T be the maximal delay one can or wants to tolerate during the recovering process of the erasures of a received sequence. We will present an algorithm for general convolutional codes that recovers all erasures within a delay of T if the received erasure pattern is such that this is possible. Moreover, the algorithm recovers the first not yet corrected erasures with minimal possible delay.
There are two main variations of the decoding process. Either one assumes that one knows which erasure patterns can be corrected with the code one uses (this has then to be determined before but it is the same for every use of the same code), or one has to check during the decoding which erasure patterns can be corrected. Knowing what can be corrected means that for the used code, we know for each j, which submatrices of H j have full column rank.
If v i can be recovered solving the linear system of equations induced by H s and v t , . . . , v i−1 , v i , . . . , v i+j , go to 6, otherwise go to 5. 5: If j = T , we cannot recover the erasures in v i , set c = i and go back to 2. Otherwise, we set j = j + 1 and go back to 4. 6: Recover the erasures in v i (and if possible also erasures in v i+1 , . . . , v i+j ), solving the system of linear equations (4). Replace the erased symbols with the correct symbols and go back to 2.
The algorithm can be explained as follows: We first try to recover the first window of size n that contains erasures as fast as possible. If this is not possible within delay T , these erased components have to be declared as lost. We move to the next window but since we have not recoverable erasures before, we need to consider the matrix H s for forming the linear system of equations that is used for decoding. j . The aim of the following section is to construct convolutional codes with an optimal performance for the presented algorithm. It turns out that the optimal choice are so-called complete j-MDP codes for j = T , which will be introduced in the following section.

IV. COMPLETE j-MDP CONVOLUTIONAL CODES
It turns out to be hard to find constructions of MDP and especially complete MDP convolutional codes over fields of small size. In this section, we introduce a new class of codes, the so-called complete j-MDP convolutional codes, which are easier to obtain than complete MDP convolutional codes and are optimal for bounded delay decoding.
Definition 11: Let (n − k) | δ and C be an (n, k, δ) convolutional code with left prime parity- (3) We call C a complete j-MDP convolutional code if all fullsize minors of H j that are not trivially zero are nonzero.
Note that according to Definition 10, a complete L-MDP convolutional code is the same as a complete MDP convolutional code. Moreover, it follows 0018-9448 (c) 2020 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TIT.2020.3015698, IEEE Transactions on Information Theory 6 from Theorem 2 that the colummn distances of a complete j-MDP convolutional code reach the upper bound of Theorem 1 up to the j-th column distance.
The following lemma is an easy consequence of Lemma 1.
Lemma 2: A full size minor of H j formed by the columns j 1 , . . . , j (j+1)(n−k) is not trivially zero if and only if Furthermore, the following lemma implies that the number of erasure patterns that could be corrected with an (n, k, δ) complete j-MDP convolutional code and the necessary field size for the existence of such a code increase with j.
Lemma 3: If for some i = 0, . . . , L, C is a complete i-MDP convolutional code, then C is also a complete j-MDP convolutional code for all j ≤ i.
Proof: Without loss of generality, we could assume i = j + 1 (the rest follows per induction). Let a ∈ F be any not trivially zero fullsize minor of H j and A ∈ F (j+1)(n−k)×(j+1)(n−k) be the matrix consisting of the corresponding columns of H j , i.e. det(A) = a. Denote the indices of the columns of H j that were used to form A by l 1 , . . . , l (j+1)(n−k) . Consider the fullsize minor of H i formed by the union of columns with indices l 1 , . . . , l (j+1)(n−k) and of n − k of the last n columns of H i . This fullsize minor of H i , which we denote by b, is not trivially zero and as C is a complete i-MDP convolutional code, it is nonzero. Moreover, it holds b = a · det(D) where D is a (n − k) × (n − k) submatrix of H 0 . Hence a = 0 and consequently, C is a complete j-MDP convolutional code.
The definition of complete j-MDP convolutional codes as well as the preceding lemma imply that the class of complete j-MDP convolutional codes contains the complete MDP convolutional codes, but it neither contains the reverse MDP convolutional codes nor is it contained in the class of MDP convolutional codes. However, complete j-MDP convolutional codes are optimal for bounded delay decoding as the following theorem states.
Theorem 5: Complete j-MDP convolutional codes are optimal for sequential erasure decoding with maximal delay T = j (using the algorithm of the preceding section), i.e. if an erasure pattern cannot be corrected within delay j by a complete j-MDP convolutional code, it cannot be corrected by any other convolutional code with the same parameters.
Proof: Decoding within delay j means solving linear systems of equations whose coefficient matrices are submatrices of H s with s ≤ j; see step 4 of the algorithm. By definition and the preceding lemma, complete j-MDP convolutional codes have the property that all these coefficient matrices for which this is possible have full column rank. Hence, they are optimal for this kind of decoding.
The following theorem describes which erasure patterns can be corrected by a complete j-MDP convolutional code.
Theorem 6: If C is a complete j-MDP convolutional code, then it has the following decoding properties: (1) If in any sliding window of length (j + 1)n at most (j + 1)(n − k) erasures occur, complete recovery is possible.
(2) If in a window of size (ν + j + 1)n there are not more than (j + 1)(n − k) erasures, and if between position 1 and sn and between position (ν + j + 1)n and (ν + j + 1)n − sn + 1, for s = 1, ..., j, there are not more than s(n − k) erasures, then full correction of all symbols in this interval is possible.
Proof: Property (1) is a consequence of Theorem 2 and Theorem 3 and property (2) follows from Lemma 2.
In the following section, we will apply the results of this section to the (2, 1, 2) complete j-MDP convolutional codes that we will construct there.
The aim of this section is the construction of (2, 1, 2) complete j-MDP convolutional codes over fields with minimum possible field size. For these code parameters, we have ν = 2, L = 4 and the following partial parity-check matrix: 0018-9448 (c) 2020 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TIT.2020.3015698, IEEE Transactions on Information Theory where H i ∈ F 1×2 for i = 0, 1, 2. To construct complete j-MDP convolutional codes, one needs left prime parity-check matrices. As , H(z) is left prime if and only if h 1 (z) and h 2 (z) are coprime.

It is well known that this is true if and only if the resultant
is a factor of a nontrivial fullsize minor of H j . Hence, that all nontrivial fullsize minors of H j are nonzero implies that the resultant is nonzero. Therefore, it is enough to consider the nontrivial fullsize minors of H j to show complete j-MDP without having to take care of the resultant.
Remark 3: In [1], it is shown that for (n, k, δ) convolutional codes with (n−k) | δ, if the nontrivial fullsize minors of H L are nonzero, then the paritycheck matrix is left prime. The proof presented there can be easily adapted to show that if also k | δ, then it is enough to consider H L−1 , i.e. if all nontrivial fullsize minors of H L−1 are nonzero, than H is left prime. As H L−1 is a submatrix of H L−1 , this shows in a more general setup that for (2, 1, 2) complete j-MDP convolutional codes with j ≥ 3 we do not need to consider the resultant (which of course can be seen easier for this special parameters as mentioned before).
However, for j ≤ 2, we have to consider the resultant in addition to the fullsize minors of H j for the construction of (2, 1, 2) complete j-MDP convolutional codes.
In the following section, for all j ∈ {0, . . . 4}, we will determine the smallest field as well as the smallest binary field over which a (2, 1, 2) complete j-MDP convolutional code exists and give constructions for such codes. According to Theorem 6 such a code has the following decoding properties: If in every window of size 2 there is not more than 1 erasure, full recovery is possible. Moreover, if this condition is violated at some point but later there is window of size 6 with at most 1 erasure, this erasure can be recovered and there is enough guard space to start again with the decoding. This means that full recovery is possible if every second symbol is erased but any burst of two or more erasures cannot be corrected. This should be illustrated with the following example.
Example 1: Assume that we have the following erasure pattern where x denotes an erasure and √ a correctly received symbol In the first three windows of size two the erasures could be recovered but not the two erasures in the fourth window. However, after these two erasures, which have to be declared as lost, there is a window of size 6 with only 1 erasure, which could be recovered. Moreover, this enables us to start the decoding again and to recover also the 2 erasures in the last two windows of size 2.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TIT.2020.3015698, IEEE Transactions on Information Theory 8 In the following sections, we will consider (2, 1, 2) complete j-MDP convolutional codes with j ≥ 1. According to Lemma 3 these codes are also complete 0-MDP and hence we know that all entries of the coefficients of H(z) have to be nonzero.
B. (2, 1, 2) complete 1-MDP and complete 2-MDP convolutional codes In this section, we treat both (2, 1, 2) complete 1-MDP and (2, 1, 2) complete 2-MDP convolutional codes since the minimum binary field size for their existence is the same, which will be shown in the following.
Proof: For the existence of a (2, 1, 2) complete 1-MDP convolutional code over F it is necessary to have four pairwise linearly independent vectors in F 2 where additionally all entries of these vectors have to be nonzero. This is not possible if |F| ≤ 4.
Some of the results in this and the next section were obtained with the help of computer search using Maple, so we will not write a formal proof. An explanation of the algorithms used is given in section VII. The following is one of these results: with Remark 4 one has 126 × 7 such codes. An example for such a code is given by To determine the minimum (possibly non binary) field size for the existence of such codes, one has to check the existence over F 5 and F 7 . Again with the help of computer search using Maple, we obtain the following two theorems.
Theorem 9: There exist 20 × 4 2 values for 6 such that H(z) = 2 i=0 H i z i is the left prime parity-check matrix of an (2, 1, 2) complete 1-MDP convolutional code over F 5 , i.e. with Remark 4 one has 20 × 4 such codes. An example for such a code is given by According to Theorem 6 an (2, 1, 2) complete 1-MDP convolutional code has the following decoding properties: (1) If in every window of size 4, there are at most 2 erasures, then complete recovery is possible (forward and backward). According to Theorem 6 an (2, 1, 2) complete 2-MDP convolutional code has the following decoding properties: (1) If in every window of size 6, there are at most 3 erasures, then complete recovery is possible (forward and backward).
(2) If in one window of size 10, there are at most 3 erasures (and they are distributed according to the conditions of Theorem 6, i.e. not too many at the edges), then full recovery in this window is possible.
We want to compare the performances of (2, 1, 2) complete 1-MDP and (2, 1, 2) complete 2-MDP convolutional codes with the performances of (2, 1, 2) MDP and (2, 1, 2) reverse MDP convolutional codes. We already saw that within delay j complete j-MDP convolutional codes are optimal but also for larger delay, they can be compared to MDP and reverse MDP convolutional codes. The smallest field over which a (2, 1, 2) MDP convolutional code could exist is F 7 (see [8]). Such a code could correct forward if in each window of size 10 there are at 0018-9448 (c) 2020 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TIT.2020.3015698, IEEE Transactions on Information Theory 9 most 5 erasures. As each reverse MDP convolutional code is an MDP convolutional code, the minimum field size for a (2, 1, 2) reverse MDP convolutional code is at least 7. Such a code could correct forward and backward if in each window of size 10 there are at most 5 erasures, see [14]. It is possible to find erasures patterns that a (2, 1, 2) complete 1-MDP and hence also a (2, 1, 2) complete 2-MDP convolutional code can correct and a (2, 1, 2) reverse MDP and hence also a (2, 1, 2) MDP convolutional code not. Example 2: The following erasure pattern could be completely corrected with a (2, 1, 2) complete 1-MDP convolutional code but not with a (2, 1, 2) reverse MDP convolutional code: 11 12 13 Again x denotes an erasure and √ a correctly received symbol and the second line of the table numbers the windows of size 2.
Proof: As the union of the first five windows of size 2 forms a window of size 10 with 6, i.e. more than 5, erasures this pattern cannot be corrected forward with a (2, 1, 2) MDP convolutional code. As also the union of the last five windows of size 2 contains more than 5 erasures, backward decoding with a (2, 1, 2) reverse MDP convolutional code is also not possible. However, correction with a (2, 1, 2) complete 1-MDP convolutional code is possible with the following steps: 1) The union of the size-2-windows 5 to 8 forms a window of size 8 with 2 erasures, which can be recovered. 2) As the erasures in windows 5 and 6 are already recovered it is possible to recover the erasures in windows 3 and 4 with backward decoding (window of size 4 with 2 erasures). 3) After steps 1 and 2, the union of the size-2windows 2 to 5 forms a window of size 8 with 1 erasure, which can be recovered. 4) Windows 1 and 2 form now a window of size 4 with 2 erasures that can be recovered with forward decoding. 5) Windows 9 and 10 form a window of size 4 with 2 erasures that can now be recovered with forward decoding. 6) Windows 11 and 12 form a window of size 4 with 2 erasures that can now be recovered with forward decoding. 7) Windows 12 and 13 form now a window of size 4 with 2 erasures that can now be recovered with backward decoding. For further explanation about sliding window decoding with MDP, reverse MDP and complete MDP convolutional codes, see [14].
On the other hand, there are also erasure patterns that can be corrected by a (2, 1, 2) MDP convolutional code but not by a (2, 1, 2) complete 2-MDP convolutional code but they are harder to find and moreover, according to Theorem 5, they can only exist if one can tolerate a delay larger than j = 2.
Example 3: The following erasure pattern could be corrected with a (2, 1, 2) MDP convolutional code if the tolerated decoding delay is at least 4 but not with a (2, 1, 2) complete 2-MDP convolutional code: x x x √ x x √ √ √ √ Proof: As we have a window of size 10 with 5 erasures, erasure recovery is possible with a (2, 1, 2) MDP convolutional code with delay 4. However, neither decoding property (1) nor decoding property (2) of a (2, 1, 2) complete 2-MDP convolutional code enable any recovery. The results in this section were all obtained with the help of Maple. We found the following: Theorem 11: For r ≤ 3, there exists no (2, 1, 2) complete 3-MDP convolutional code over F 2 r .
The preceding theorem implies that the minimum binary field size for an (2, 1, 2) complete MDP convolutional code is at least 16. The following theorem states that it is exactly 16 and gives a complete description of all such codes.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication.  6 and so there are exactly 15 × 120 (2, 1, 2) complete MDP convolutional codes over F 2 4 . Two possibilities are given in the following example.
Example 4: If β = γ = 1, i 1 = 0, k = 1 and j = 0 we obtain If β = γ = 1, i 1 = 2, k = 8 and j = 1 we obtain Next, we present the minimum size of a (finite) prime field F p for which we have a (2, 1, 2) complete MDP convolutional code. We were again able to find a complete description of all such codes.
Theorem 13: There exists no (2, 1, 2) complete 3-MDP or complete MDP convolutional code over F q , for q = p r ≤ 11 an odd prime power. Moreover, there are 240 × 12 (2, 1, 2) complete 3-MDP convolutional codes over F 13 and a (2, 1, 2) convolutional code over F 13 is complete MDP if and only if where 2 is a primitive element of F 13 , β, γ ∈ F 13 \ {0}, i 1 ∈ {0, . . . , 11}, i 2 = i 1 + 6 mod 12, i 3 = i 4 = 2i 1 + 1 + 6j mod 12 for j = 0, 1. For these code parameters, we have ν = 3, L = 6 and the following partial parity-check matrix: where H i ∈ F 1×2 for i = 0, 1, 2, 3. Again, to construct complete j-MDP convolutional codes, one needs left prime parity-check matrices. As , H(z) is left prime if and only if h 1 (z) and h 2 (z) are coprime. It is well known that this is true if and only if the resultant is a factor of a nontrivial fullsize minor of H j . Hence, that all nontrivial fullsize minors of H j are nonzero implies that the resultant is nonzero. Therefore, it is enough to consider the nontrivial fullsize minors of H j to show complete j-MDP without having to take care of the resultant. However, for j ≤ 4, one has to make sure that also the resultant is nonzero. The probability of finding this type of codes increases for larger fields, so after randomly looking for (2, 1, 3) complete 4-MDP convolutional codes over F 64 without success we were able to find 4 such codes over F 128 . If the finite field is F 128 then any of the following examples gives us (2, 1, 3) complete 4-MDP convolutional codes, since the corresponding resultants are nonzero.

VII. DESCRIPTION OF MAPLE ALGORITHMS
AND FUTURE WORK In this section we give a description of the Maple algorithms and present a table with all results about the minimum field size of a (2, 1, 2) complete j-MDP convolutional codes, for j = 1, 2, 3, 4 (see fig.  1).
Our Maple algorithms for (2, 1, 2) complete j-MDP convolutional codes has the following steps: For each k ∈ {2, 3, 4, 5}, 1) calculate all nonzero full size minors, and find out how many are different, of the k × 14 submatrices of (5) Figure 1. For each j ∈ {1, 2, 3, 4} and for the smallest binary and prime field, we present: • the number of all full size minors, • the number of different minors, • the number of irreducible factors, • the number of solutions and an example or the complete description. • the percentage of solutions in relation to all the possible (nonzero) values for a, b, c and d. In the Maple algorithms for (2, 1, 3) complete 4-MDP convolutional codes we also found all irreducible factors of all full size minors of the 5 × 16 submatrix formed by the first 5 rows and first 16 columns of the matrix (6). Then we did a randomized computer search of elements a, b, c, d, e, f ∈ F 128 such that all these irreducible factors are nonzero. For the four examples exhibited in section VI we then calculated the corresponding resultant and fortunately found that it was nonzero for all cases.
In our future work we intent to study also complete j-MDP convolutional codes with other rates. A next step would be to consider rate 1/3 or 2/3. In particular, if the maximal delay for decoding is 2, (3, 1, 2) complete 2-MDP convolutional codes respective (3, 2, 2) complete 2-MDP convolutional codes are the optimal choice and it seems reasonable to find such codes with the methods we used for (2, 1, 2) complete MDP convolutional codes.   0018-9448 (c) 2020 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TIT.2020.3015698, IEEE Transactions on Information Theory 13 code over a binary field. Afterwards all solutions over F 16 are produced. A similar code can be obtained over other prime fields. For the randomized computer search of (2, 1, 3) complete 4-MDP convolutional codes over F 128 we use the following algorithm, after creating 6 sets irredfactval where we put all the 571 irreducible factors.