A Fast Method for Blind Identification of Punctured Convolutional Codes

The existing method for blind identification of a punctured convolutional code involves searching for dual words and the puncturing pattern exhaustively. As the length of the dual words and the code rate increase, the computational complexity of this method expands exponentially. To address this problem, a fast scheme for blind identification of punctured convolutional codes is proposed. First, a recursive algorithm for solving the parity check equation set is proposed. The dual word and generator polynomial bases of the punctured convolutional code are estimated by using the recursive algorithm. After this, by using the structural properties of the generator matrix of the blocked code, possible generator matrices of the punctured convolutional code are obtained. Finally, since a generator polynomial of the parent convolutional code can be recovered from any column of its polycyclic pseudocirculant matrix, the corresponding generator matrix of the parent code and the puncturing pattern are reconstructed simultaneously from an estimation of the generator matrix of the punctured code. The reconstructed generator matrix of the parent code with a minimal constraint length is determined to be the identification result. Simulation experiments show the effectiveness of the proposed method. As there is no need to search for the dual word and puncturing pattern exhaustively, the method can achieve fast identification of punctured convolutional codes. Additionally, the method is robust to bit errors in the received sequence.


Introduction
Error correcting codes are widely used in communication systems as a means of enhancing the quality of communication [1].Since punctured convolutional codes have high code rates and can be decoded flexibly, they are often used by preference in modern communication systems across domains such as satellite communication, deep space communication and mobile communication [2].This makes blind identification of punctured convolutional codes an important issue in the fields of cognitive radio and information interception.
Blind identification of a punctured convolutional code aims to reconstruct the generator matrices of the punctured and parent codes and identify the puncturing pattern.In the case that the parent code rate is 1/2 and the punctured code rate is K/(K + 1) where K is the input dimension of the punctured convolutional encoder, an identification method has been proposed in [3].The method first of all identifies the parity check matrix of the punctured convolutional code by using Gaussian elimination algorithm to solve the parity check equation.Then, under every possible puncturing pattern, a linear equation set is established according to the orthogonality between the parity check matrix and the generator matrix of the punctured code.The generator matrices of the punctured and parent codes can be reconstructed by solving the linear equation set.The generator matrix of the parent code which has a minimal constraint length, together with the corresponding generator matrix of the punctured code and the puncturing pattern, is determined to be the identification result.However, this method requires that there exist no errors in the received sequence.It also cannot be applied in general cases where the parent code rate is 1/n with n being the codeword length of the parent convolutional code.
To address this limitation, an identification method was proposed by Cluzeau [4].First, the parity check matrix of the punctured convolutional code is estimated by searching for the dual words exhaustively.After this, a canonical generator polynomial matrix of the punctured code can be reconstructed according to the orthogonality between the parity check matrix and the generator matrix.Finally, all the possible parent code lengths and puncturing patterns are tested.Under each hypothesis, the generator matrix of the parent code and the puncturing pattern can be recovered based on the properties of the generator matrix of the blocked code.Similarly, the generator matrix of the parent code with a minimal constraint length is considered to be the identification result.Since the dual words and punctur-ing pattern are searched for exhaustively, the computational complexity of this method is quite high.If the generator matrix of the punctured code is known a priori, the generator matrix of the parent code and the puncturing pattern can be identified by using the polycyclic pseudocirculant (PCPC) matrix proposed in [5].Nevertheless, it is difficult to have a priori knowledge of the true generator matrix of a punctured code.Usually, only an equivalent generator matrix can be obtained by employing the methods for identifying convolutional codes put forward variously in [6][7][8][9][10][11][12].
In practice, the rates of most punctured and parent convolutional codes are K/(K + 1) and 1/n respectively [13].In this case, the identification of a punctured convolutional code by using the existing methods requires either an enormous amount of computation or a priori knowledge of the generator matrix of the punctured convolutional code.In order to solve the limitations of these methods, a fast method for blind identification of a punctured convolutional code is presented in this paper.In our proposed method, there is no need to search for the dual word and puncturing pattern exhaustively.It is also robust against bit errors.
The rest of this paper is organized as follows.In Sec. 2, the construction of a punctured convolutional code is briefly reviewed.In Sec. 3, a recursive algorithm for estimating the dual word and the generator polynomial bases of a punctured convolutional code is proposed.In Sec. 4, the generator matrices of the punctured and parent codes, together with the puncturing pattern, are identified simultaneously.This is done by drawing on the properties of the generator matrix of the blocked code and the PCPC matrix.The method's computational complexity is analyzed and simulation results are shown in Sec. 5. Conclusions are provided in Sec. 6.

Construction of a Punctured Convolutional Code
The procedure for constructing a punctured convolutional code is shown in Fig. 1.
A (n,1,m) parent convolutional code, where m is the constraint length of the convolutional code, is equivalent to its Kth blocked code [4].This Kth blocked code can be denoted by a K  nK generator polynomial matrix.The construction procedure for the Kth blocked code is as follows.
Let us assume that the generator matrix of a parent code is where The polynomial g i [j] K (D) consists of the terms of g i (D) whose degree d modulo K is congruent to j.Thus, the Kth PCPC matrix Q i [K] (D) of g i (D) can be expressed as ,0 , ( ) ( ) ( ) By substituting the corresponding Kth PCPC matrix for each element in G(D) and interleaving the columns at the depth K, the generator matrix of the Kth blocked code is obtained and denoted as G [K] (D).
The puncturing pattern P is a (n  K) binary matrix where the (i, j) element in P corresponds to the [i + n(j -1)]th column in G [K] (D).If the value of an element is equal to 0, the corresponding column in G [K] (D) is deleted.Otherwise, the column is retained.Consequently, the generator matrix G p (D) of the punctured convolutional code is derived from G [K] (D) by using P.

Estimation of the Dual Word
For a punctured convolutional code with the code rate K/(K + 1) there exists a (K + 1)  1 parity check matrix H p (D), which is orthogonal to the generator matrix G p (D) of the punctured code [14], i.e., The inner product xy represents xy mod 2 in this paper.
In order to reconstruct G p (D), the parity check matrix H p (D) has to be estimated first.
Since the punctured convolutional code sequence C(D) can be expressed as C(D) = M(D)  G p (D), with M(D) being the source bit sequence, then (5) can be used to obtain the following equation According to (6), the following parity check equation set can be established where C is the received bit matrix and h is the dual word.By solving the parity check equation set, the dual word h can be estimated.Consequently, the parity check matrix H p (D) is derived.In this subsection, we proposed a recursive algorithm that can achieve fast estimation of the dual word.
Let Ĥ denote the matrix consisting of the values of the elements that were estimated in the dual word, and let hʹ denote the vector consisting of the undetermined elements.If the external degree of the punctured convolutional code is d p , the length of the dual word would be (K + 1)(d p + 1) [10].The steps of the recursive algorithm are as follows.
(2) For simplicity, only the general jth recursion of the algorithm is elaborated in this step.Let us assume that the matrix A is composed of the columns of C corresponding to the elements that were estimated in h.Let us also assume that the matrix B is composed of the columns of C corresponding to the unknown elements in .h Thus, the parity check equation set shown in (7) can now be expressed as Find the sparsest row in which the number of 1 elements is the smallest in .B If the ith row is the sparsest row, and the 1 elements are the coefficients of the unknowns h k 1 , h k 2 ,…, h k p then according to the ith equation, the modulo 2 summation value of the elements h k 1 , h k 2 ,…, h k p can be obtained as follows where a i is the ith row of .A From (9), we can get all the possible values of the vector [ĥ k 1 , ĥ k 2 ,…, ĥ k p ] T .These vectors can then be used to expand the matrix Ĥ, and the elements h k 1 , h k 2 ,…, h k p in hʹ are deleted.Once this is done, the jth recursion is finished.
If there are errors in the received bit sequence, it is probable to obtain an incorrect summation value of h k 1 , h k 2 ,…, h k p resulting from only one parity check equation.Since there are more correct equations than incorrect ones in practice, we use several parity check equations to jointly determine the summation value in each recursion.Let us assume there are N eq equations which have the same form as (9).The number of equations by which the summation value is estimated to be 1 is N 1 eq and the number of equations by which the summation value is estimated to be 0 is N 0 eq .Then, the summation value is determined according to the following rule.
When N eq  th eq ,   1 2 1 0 eq eq 1 0 eq eq 1 0 eq eq 1 , ˆˆˆ0 , .0,1 , When N eq > th eq ,   where th eq is the smallest number of parity check equations required for determining the summation value.Equation (11) denotes that the summation is assigned two possible values, 0 and 1.
The maximum probability of incorrect determination of the summation value under the threshold th eq is   eq eq eq eq 2 2 2 2 max e e 2 2 2 1 1 , 1 .
The proof of ( 12) is shown in the appendix.Equation ( 13) denotes the error probability for a parity check equation, where  is the bit error ratio and w is the weight of the dual word.According to (12), we can calculate the threshold th eq from the assumed p max .The threshold th eq increases as p max decreases.
(3) The recursion in step (2) is carried out again until all the elements in h are estimated.
As the number of estimated elements increases, more and more rows in the matrix B will contain just a single 1 element.This makes it possible to estimate the unknown elements of h one by one.

Verifying the Correct Estimation of the Dual Word
Since there is only one dual word for a punctured convolutional code with the rate K/(K + 1) [15], it is essential to choose the correct one among all the estimations.To verify which one is correct, the received bit matrix C is multiplied by an estimation ĥ of the dual word.0 elements in the output vector indicate that the corresponding equations hold. 1 elements indicate that the equations do not hold.Define variables  i , (i = 1,2,…,N), where N is the number of parity check equations.If the ith equation holds, The testing statistic is defined as Let us assume the false alarm probability is p f .Since , thus based on the constant false alarm criterion, it is straightforward to obtain the detecting threshold If an estimation has a testing statistic that is larger than both the detecting threshold and the testing statistics of the other estimations, it is recognized as the dual word.

Estimation of the Generator Polynomial Bases
The parity check matrix H p (D) can be obtained from the dual word h.By using (5), a linear equation set can be established.The generator polynomial bases of the punctured convolutional code can be estimated by solving this equation set.If the degree of H p (D) is d p , i.e., deg(H p (D)) = d p , the degree of the ith row of G p (D) is e p,i = (d p + i -1)/K [3].On this basis, we can establish (d p + e p,i + 1) linear equations with (K + 1)(e p,i + 1) unknowns, which are the coefficients of the generator polynomial bases.As the number of unknowns is larger than the number of equations, the linear equation set cannot be solved by using the conventional Gaussian elimination algorithm.
The equation set can be solved by our proposed recursive algorithm, but there are some differences from the recursion outlined in Sec.3.1.First of all, because all of the equations are correct, the summation value of unknowns can be determined by only one equation in each recursion.Additionally, if there are several sparsest rows of B in which the positions of the 1 elements are identical, to make all equations hold, the dot products of the corresponding rows of A with any column of Ĥ need to be equal.Suppose the indices of these rows of B are 1 2 , , , q i i i  , then If any column of Ĥ does not satisfy (15), the column is deleted from Ĥ.The recursion is carried out until all the unknowns have been estimated.
After all the generator polynomial bases have been obtained, any combination of K generator polynomial bases may be the generator matrix G p (D) of the punctured code.Using the properties of the generator matrix of the blocked code and the PCPC matrix, we will discuss the identification of G p (D) further in Sec. 4.

Preliminary Reconstruction of the Generator Matrix of the Punctured Code
The mathematical structure of the generator matrix of the blocked code satisfies Property 1.
Property 1 [4]: Let Z be the K  K matrix consisting of an upper diagonal of 1, a D in the bottom left corner and 0 everywhere else.The generator matrix G [K] (D) of the Kth blocked code can be expressed as G [K] where M is a K  n polynomial matrix.
The generator matrix G p (D) of the punctured code is obtained by deleting corresponding columns of the matrix G [K] (D) according to the puncturing pattern.Since there is no zero vector in the puncturing pattern [3], we can get the following corollary based on Property 1.
Corollary 1: The dot product of Z -(K -i) with the ith column of G p (D), (1  i  (K -1)) and the dot product of Z j -2 with the jth column of G p (D), (3  j  (K + 1)) are columns in G [K] (D), where Z -1 represents the inverse of the matrix Z.
According to Corollary 1, it is possible to determine partial rows of the generator matrix G p (D).Then, all the estimations of the generator matrix G p (D), denoted as Ĝ p (D), can be obtained by using the preliminary reconstruction result and the rest of the generator polynomial bases.

Determination of the Generator Matrices of the Punctured and Parent Codes and the Puncturing Pattern
Property 2 [5]: Define a matrix β, 1 2 Let the vector the lth column of the Kth PCPC matrix of the generator polynomial g i (D) and then g i (D) can be expressed as ( , ) ,( , ) 1 ( ) ( ).
According to Property 2, a parent generator polynomial can be recovered from any column of its PCPC matrix.The generator matrix G p (D) contains one or more columns of the Kth PCPC matrix of each generator polyno-mial of the parent code.Thus, the generator polynomial of the parent code can be recovered from G p (D).After a parent generator polynomial has been recovered, its Kth PCPC matrix can be obtained.If a column of the PCPC matrix exists in G p (D), the element in the corresponding position of the puncturing pattern is 1.Otherwise, the element is 0. Consequently, the puncturing pattern is identified.
The possible generator matrix Ĝ(D) of the parent code and the corresponding puncturing pattern P ̂ can be derived from Ĝ p (D).The generator matrix of the parent code with the smallest constraint length, together with the corresponding generator matrix of the punctured code and the puncturing pattern, is the identification result.

Computational Complexity Analysis
The computation of the proposed method is intensive in estimating the dual word and verifying the correctness of the dual word estimations.Let us define one operation as an addition or multiplication between two elements in GF (2).Assume the length of the dual word is L, the number of parity check equations is N and the number of the dual word estimations is n 1 .Thus, the upper bound of the computation required for estimating the dual word is N(2L -3)n 1 operations.In fact, because the number of unknowns in each estimation differs, the upper bound is very relax.Verifying the correctness of the estimations requires N(2L -1)n 1 operations.Combining the computation of these two parts, we derive the computational complexity of the proposed method is O(NLn 1 ).For comparison, the computational complexity of Cluzeau's method is O(NL2 L ) [4].Since n 1 << 2 L , the computational complexity of our method is much lower than Cluzeau's.

Verification of the Effectiveness of the Proposed Method
The identification of the punctured convolutional code with the generator matrix is considered in this experiment.The corresponding parent generator matrix is The estimation results for the dual word of the punctured convolutional code by using our proposed recursive algorithm are shown in Fig. 2. As shown in Fig. 2, more than one estimation of the dual word are obtained by using our recursive algorithm.However, only one estimation can make all of the parity check equations hold after verifying these estimations.Consequently, the binary vector T [0 11111 0 1 0 111 0 1 0 0 1 0 11 0 1 0 11110] is regarded as the identification result of the dual word.
By using the identified dual word, the parity check matrix T 2 5 Furthermore, all the generator polynomial bases are derived by using p ˆ( ).
According to Property 1, the dot product of Z -2 with the first column of Ĝ p (D) and the dot product of Z -1 with the second column of Ĝ p (D) should be polynomial vectors that do not contain a term with a negative degree.Therefore, we can determine the second and the third rows of Ĝ p (D) are ) Thus, the degrees of the polynomial vectors obtained by the dot product of Z 2 with the third column of Ĝ p (D) and the dot product of Z with the forth column of Ĝ p (D) cannot be larger than 2. Therefore, we can determine that the first Consequently, the reconstruction result of the punctured generator matrix is

G
Furthermore, according to Property 2, the parent generator polynomial

P
The experimental results indicate the proposed identification method is effective.

Performance Analysis of the Proposed Method
First, the robustness of the proposed method to bit errors in the received sequence is analyzed.The estimation of the dual word is a key step in the method.The correct identification of the punctured convolutional code depends on the correct estimation of the dual word.The dual word estimations of the (3,2,2) and (4,3,2) punctured convolutional codes are considered respectively.The number of parity check equations is 4000.The threshold th eq in the recursive algorithm is assumed to be 4.In the situations of different bit error ratios, the correct estimation ratios for the dual words of the two punctured convolutional codes by using our recursive algorithm and the matrix analysis algorithm [9] are shown in Fig. 3  As illustrated in Fig. 3 and Fig. 4, the robustness of our recursive algorithm to bit errors is much better than that of the matrix analysis algorithm.Additionally, under the same bit error ratio, the correct estimation ratio for the dual word of the (3,2,2) punctured convolutional code is larger than that for the (4,3,2) punctured convolutional code.The reason is that the length of the dual word of the (4,3,2) punctured convolutional code is larger and so there are more unknowns to be estimated.
The second experiment analyzes the relationship between the correct estimation ratio for the dual word and the threshold th eq in the recursive algorithm.The same (3,2,2) punctured convolutional code as that used in the first experiment is considered.Let the value of the threshold th eq be 2, 3, 4 and 5 respectively.The other experimental conditions are the same as those in the second experiment.The correct estimation ratios in the cases of different thresholds are shown in Fig. 5.
Figure 5 shows that under the same bit error ratio, the correct estimation ratio increases along with the increase of the threshold th eq .The experimental result also verifies the correctness of the theoretical analysis in Sec. 3

Conclusion
A fast method for blind identification of a punctured convolutional code is presented in this paper.First, the dual word and generator polynomial bases are estimated by using the proposed recursive algorithm.Second, based on the structural properties of the blocked matrix, the generator matrix of the punctured convolutional code is reconstructed preliminarily.Finally, using the relationship between a generator polynomial of the parent code and its corresponding PCPC matrix, we can determine the reconstruction result of the generator matrix of the punctured code and recover the generator matrix of the parent code and the puncturing pattern simultaneously.As the dual word and the puncturing pattern do not need to be searched for exhaustively, the computational complexity of the proposed method is much lower than that of Cluzeau's method.Moreover, the method is also robust to bit errors in the received sequence.
where p e is the error probability for a parity check equation.
When N eq  th eq and N eq = 2n + 1, event B denotes that the determination of the summation value is incorrect.Thus, the probability that event B occurs is .
When N eq = 2n + 3, event C denotes that the determination of the summation value is incorrect.The probability that event C occurs is According to ( 9), ( 10), ( 11) and ( 12), it follows that ( ) ( ).
Based on above analysis, we derive that if th eq is an odd number, the maximum error probability for the determination is   eq eq eq eq 1 1 max 1 e e 2 1 1 .
Otherwise, if th eq is an even number, the maximum error probability for the determination is   eq eq eq eq max e e 2 1 1 .
Combining ( 14) and (15), we obtain the relationship between the threshold th eq and the maximum error probability p max for the determination of the summation value of unknowns is   eq eq eq eq 2 2 2 2 max e e 2 2 2 1 1 .


Let the hypothesis H 1 denote the estimation of the dual word is correct and the hypothesis H 0 denote the estimation is incorrect.The probability distributions of1 N i i    inthe cases of hypotheses H 1 and H 0 are shown as follows[16]

Fig. 2 .
Fig. 2. Estimation of the dual word of the punctured convolutional code.
the first column of Ĝ p (D). Comparing Ĝ p (D) with Q ̂1[3] (D), we can determine the first row of the puncturing pattern is [1,0,1].In the same way, the other generator polynomial of the parent code and rows of the puncturing pattern are obtained by using the other columns of Ĝ p (D).Eventually, the reconstruction results of the parent generator matrix and the puncturing pattern are

Fig. 5 .
Fig. 5. Correct estimation ratios in the case of different thresholds th eq . .1.