Blind Identification of Convolutional Encoder Parameters

This paper gives a solution to the blind parameter identification of a convolutional encoder. The problem can be addressed in the context of the noncooperative communications or adaptive coding and modulations (ACM) for cognitive radio networks. We consider an intelligent communication receiver which can blindly recognize the coding parameters of the received data stream. The only knowledge is that the stream is encoded using binary convolutional codes, while the coding parameters are unknown. Some previous literatures have significant contributions for the recognition of convolutional encoder parameters in hard-decision situations. However, soft-decision systems are applied more and more as the improvement of signal processing techniques. In this paper we propose a method to utilize the soft information to improve the recognition performances in soft-decision communication systems. Besides, we propose a new recognition method based on correlation attack to meet low signal-to-noise ratio situations. Finally we give the simulation results to show the efficiency of the proposed methods.


Introduction
In digital communication systems, error-correction codes are widely used. To meet high quality of services, new coding schemes are being developed ceaselessly. Therefore, for a communication receiver, it is very difficult to remain compatible with all standards used. But if it is an intelligent receiver, which is able to blindly recognize the coding parameters of a specific transmission context, it can adapt itself to the perpetual evolution of digital communications. Furthermore, the blind recognition techniques are also applied in noncooperative communications. In noncooperative communication contexts, a receiver does not know the coding parameters, so it must blindly recover the encoder before decoding. In this paper we focus on the blind recognition of coding parameters of an encoder which uses convolutional codes as error-correction coding and propose a method to take advantage of the soft information in soft-decision situations.
Some previous literatures discussed the problem of blind recognition of convolutional codes. The authors of [1][2][3] developed recognition methods in noiseless context, including the rate 1/ and / codes, where denotes the codeword length and the dimension. These methods are not suitable for noisy environment. For the case of noisy context, some algorithms were proposed in recent years [4][5][6][7]. The algorithm proposed in [7], which we call a Gauss-Jordan elimination through pivoting (GJETP) based algorithm in this paper, completely solved the blind parameter recognition of / convolutional codes with low complexity and excellent recognition performances.
However, the previous works are all discussed in harddecision situations. In modern communication systems, more and more soft-decision based algorithms are applied to improve the signal processing performances. For example, the soft-decision based decoding methods always have better performances than hard-decision situations [8][9][10][11][12]. Similarly, some soft-decision based blind recognition of block code parameters also outperforms the hard-decision one [13,14].
In Section 2 of this paper, based on [6,7] we propose a method to utilize the soft information to improve the recognition performances in soft-decision systems. And we give another two improvements about the recognition algorithm in Sections 3 and 4: (1) because the authors of [6,7] did not give a normative algorithm to automatically identify the parameter for a computer program, we propose a formalized scheme to optimize the recognition of ; (2) the authors of [6,7] did not consider the synchronization of codewords while the synchronization positions are usually 2 The Scientific World Journal unknown in a noncooperative communication context; we propose to modify the algorithm to identify the codeword synchronization.
Besides, in Section 5 we propose a correlation attack method to meet very low signal-to-noise ratio (SNR) situations, which also includes both hard-and soft-decision algorithms. This method might require more computational time, but it can push the SNR limits of the GJETP-based algorithm proposed in [7]. And we propose some strategies to reduce the searching space according to the structural analysis of the dual codes.
Finally we show the efficiency of the proposed algorithm by computer simulations in Section 6 and conclude the paper in Section 7.

Utilizing the Soft Information
The details of the GJETP-based recognition of rate / convolutional encoder parameters are introduced in [7]. The algorithm includes three major sections: (1) identification of code length ; (2) identification of a dual code basis; (3) identification of the generator matrix.
In the first procedure, the authors of [7] propose to recognize parameter using the following steps.
Step 1. Set the minimum and maximum value of , that is, min and max . Initialize to be min .
Step 2. According to and a sequence of received symbols, we generate an observed data matrix R as shown in Figure 1, the numbers in which denote the arriving order of the bits in the received data stream.
Step 3. Transform the matrix R to a lower triangular matrix G by GJETP (see [15] for details): (1) Step 4. Obtain the set Z as follows: where ( ) is the number of "1" in the lower part of the th column in the matrix G , opt is an optimal threshold [6,7], and Card{ } denotes the cardinal of . An ( ) smaller than ( − ) opt /2 indicates that the th column of R has a high probability to be dependent on the other columns.
Step 6. Output the gap between two consecutive nonzero cardinals, Z , as the estimated codeword sizê. The principle of this estimation is that when = ( ∈ Z + ) and is larger than a parameter (see [7] for details), some columns of C can be determined by other columns, where C = R + E and E is the error pattern corresponding to R .
According to the GJETP algorithm, the reliability of upper part of R has larger influence on the successful detection of dependent columns in R . So if we can make the upper part of R have lower errors, the algorithm can be improved. In hard-decision situations, we cannot determine which rows in R have lower probabilities to have error decision bits. But in soft-decision situations, we can examine the reliabilities of the rows in R according to the soft-decisions bits. Therefore, here we propose the following processing procedure inserted into the steps (between Step 2 and Step 3) mentioned above.
(1) Fill the observed matrix R with the soft-decision bits.
For each row in R we find the decision bit that has the lowest reliability and record its reliability value as the reliability of the row.
(2) Arrange the rows of R according to each row's lowest reliability value to make the first row of R have the highest reliability, the second row have the second highest reliability, and so on.
(3) Obtain the hard decisions of the bits in the rearranged R and continue Step 3 mentioned above.
After this processing, the upper rows of the rearranged R have higher reliabilities and therefore have lower probabilities to include error decision bits. So the probability of successful detection of dependent columns can be improved. And as the value of rises, the improvement of the reliabilities of the upper part of R becomes more effective, so the recognition performance can be improved more obviously than the previous algorithm in [7]. After the estimation of , we use Algorithms 1 and 2 in [7] to identify other coding parameters. Note that the parity check vector recognition procedure uses the GJETP algorithm too, so the proposed rearranged steps are also applied before each GJETP processing when recognizing the parity check vectors.

Formalizing the Estimation Algorithm of
Note that, in Step 6 shown in the previous section, the authors of [7] only give the idea of the estimation of . When the noise level is high, there exists a problem that the number of error decision bits is high and some cardinals Z corresponding to the values of that equals are blank. So not all the gaps between two consecutive nonzero cardinals, Z , equal . In this case, we need a formalized algorithm to estimate the value of more exactly. This can be done by simply searching all the gaps between two consecutive nonzero cardinals and find out which gap value appears mostly. The detailed algorithm steps are listed below.
(1) Let V = [ 1 , 2 , . . . , ] be the vector that consists of the values of corresponding to the detected nonzero cardinals Z in Step 6.

Fill to
l + 1 l + 2 l + 3 2l (3) Initialize a vector Q with length max to be overall zeros and for each value of from 1 to − 1, we let (4) Finally we find the maximum element in Q and output the corresponding gap value Δ to be the estimated codeword sizê.
After taking the previously mentioned searching method we can find the most probable gap between two consecutive nonzero cardinals, that is, the estimation of the code length. An example as follows further describes the searching procedure. Figure 2 shows the recorded vector N when recognizing a (3, 2, 4) convolutional code based on correct synchronization positions with a low SNR ( / 0 = 4 dB). From the figure we can see that not all the gaps between two consecutive nonzero elements in N equal the code length, 3. If we estimate the code length by the gap between the first and the second nonzero elements in N , the estimation is not correct. Implementing the searching steps mentioned above, we can firstly obtain the vector V as follows: Then we can calculate the vector ΔV according to V as follows: Furthermore, we can calculate the vector Q by (4). In the vector Q, we have Q(3) = 4, Q(6) = Q(9) = 1, and other elements in Q equal to zero. Q(3) is the maximum element in the vector Q, so, according to Step 4 mentioned above, we can estimate the code length:̂= 3.
This example shows an implementation of the formalized algorithm proposed in this section to estimate the code length more exactly in a low SNR situation.

Recognition of Synchronization Positions
The GJETP-based dual code method proposed in [7] has good performances on convolutional encoder identifications. But unfortunately, the authors did not consider the codeword synchronization problem. In noncooperative context, the synchronization cannot usually be reached before the coding parameters are correctly estimated. The algorithm is discussed based on correct synchronization. In the case that the codeword synchronization position is unknown, we can but randomly choose a position in the received data stream to be the beginning of a codeword. The randomly chosen synchronization positions have low influence on the recognition of code length, but the recognition of key parameter (the minimal length of the rows of matrix R so that R includes dependent columns; see [7] for details) and parity check vectors are not correct. to obtain correct parity check vectors, we must firstly locate the correct synchronization positions.
We assume that when recognizing the code length we fill the matrix R from the 0 th position from the received bit stream and the estimated code length and key parameter arêand̂, respectively, and then we propose the following steps to find the correct codeword synchronization.
Step 3. Fill the matrix R with row length from the th bit in the received data stream.
Step 4. Do the GJETP processing for R and calculate N , the number of dependent columns.
Step 7. Let and be the newly estimations of and synchronization position.
The previous steps corrected the codeword synchronization. For the following procedure of parity check matrix recognition, we use to be the synchronization position to fill the matrix R and replace by in the algorithms.

Hard-Decision Situations.
If the polynomial-based generator matrices of a / convolutional code and the dual code are G( ) and H( ), respectively, we have [16] G ( ) × H ( ) = 0.
Based on (8)-(10), we can define the binary form of H( ) as follows: where It is shown in (12) that each row of the matrix H is a shift of the following ( − ) × ( ⊥ + 1) matrix H 0 , which we call the basic check matrix of convolutional codes in this paper: So the recognition problem of a convolutional encoder is equivalent to the recognition of H 0 . We call the vectors in H 0 the basic parity check vectors. According to the dual code principles, we can consider H 0 to be a parity check matrix for ( ⊥ + 1) consecutive codewords. That is to say, if a row vector c includes ( ⊥ + 1) consecutive codewords, we have The Scientific World Journal  Furthermore, for a matrix C consisting of a number of such vectors, we have In this paper we say two vectors c and h are correlated if they have the same length and where the sum operator is defined in GF(2) and One solution to the recognition of H 0 is enumerating all possible length values and listing all vectors with length to see which vectors have likelihood to be the basic parity check vectors. This can be implemented by enumerating all possible length values , creating the observed data matrix R with row length (as shown in Figure 1), and trying to find the vectors which are correlated with most rows of R . If we can find such vectors, the corresponding can be considered to be a possible estimation of , which is defined to be the row length of the basic check matrix H 0 : Furthermore, we can estimate the code length and dual code memory length ⊥ by investigating the factors of the estimated . This scheme takes a very long elapsed time. Here we propose some principles to reduce the searching space.
(1) Reduce the candidates of .
According to (19), the parameter is a product of two integers which are all larger than 1. Therefore, we can drop the prime values while searching. So we just need to enumerate the values of from composite numbers.    (1) Reduce the candidates of basic parity check vectors.
We can set the first and the last bit of each candidate vector to be 1. Hence, we just need to enumerate the combinations of the middle ( −2) bits for each l-length vector.
In the noisy environment, not all the rows in R are correlated with the basic parity check vectors. R can be written as follows: where E is the error pattern corresponding to the elements in R and the elements in C are the original encoded (noiseless) bits of the received bits in R . If = ( ⊥ + 1) and no error 6 The Scientific World Journal exists in the received stream, that is, E = 0, according to (16), we have In most noisy environments, because of the existence of error bits, (21) is not always true even if equals ( ⊥ + 1). So we cannot determine whether a vector h is correlated with row vectors of R by checking the equation R × h = 0. Instead, we need to compute the likelihood of a vector h to be correlated with R and an appropriate threshold to determine whether the vector h can be considered to be a basic check vector. We now deduce the threshold below.
For a given data matrix R and vector h, we denote by q a vector calculated by R × h as follows: Equation (22) is defined in GF (2), so the elements in vector q are from the set {0, 1}. And we denote by (q) the Hamming weight of the vector q. In noisy environment, the expectation of (q) can be calculated as follows: where is the number of rows of the observed data matrix R and c is any possible form of the rows of R . Pr(c × h = 0) is the probability of c × h = 0. If the matrix R is filled with correct parameters, that is, = ( ⊥ + 1) , the first bit filled into R is the beginning of a codeword, and the vector h is a valid check vector, Pr(c × h = 0) equals the probability that the vector c has even error bits. So we can calculate the probability Pr(c × h = 0) as follows: where is the Hamming weight of h and is the channel transition probability. According to (23) and (24), we have According to binomial-distribution theories, we can calculate the variance of (q) as follows: If the data matrix R is based on incorrect parameters or h is not a valid check vector, the probability Pr(c × h = 0) is Therefore, the expectation and variance of (q) are 2 = ( (q)) = 1 2 , So we propose the threshold based on -standard deviation principle as follows: Experimentally, we suggest choosing the parameter between 6 and 8 to get a good recognition result. In (29), we must ensure that So the number of rows of the observed data matrix R should meet the following condition: The threshold and corresponding condition of are based on the prior information about the noise level, that is, the channel transition probability . If such prior information is unknown, the calculation of (29) and (31) cannot be done. In this situation, we propose to set the threshold to be /10 and let Therefore, should meet the following condition: The threshold = /10 is just an experimental value. If no parity check vector can be found based on such a threshold, we can increase the value of and redo the searching procedure. If = / ( > 2), we must choose such that that is, To implement the algorithm automatically by a computer program, we propose the following procedure to recognize the parameter defined by (19) and the codeword synchronization position 0 as follows.
Step 1. Set the searching range of ; that is, set min and max .
Step 2. List all the composite numbers between min and max to form a set where 1 < 2 < ⋅ ⋅ ⋅ < , is the number of composite numbers between min and max .
Step 5. Let = 1; fill the data matrix R with the received data. The first bit filled into R is the th bit in the received stream.
Step 8. Calculate the vector q by (22) and denote by (q) the Hamming weight of q. If (q) < , stop the searching and output and to be the estimation of 0 and ; that is, let̂0 = and̂= . Besides, record h as h .
Step 10. If < max , let = + 1 and go back to Step 6. Otherwise, execute Step 9. max is the maximum of possible codeword length. max can be set to the maximum factor of l (except itself).
Step 12. End the searching.
If we can stop the searching from Step 8, we can recognize the codeword length based on̂0,̂, and h . According to (19), the code length is a factor of . So we propose to estimate by the following steps.
Step 1. List all the factors of (expect 1 and itself) to form a set where 1 < 2 < ⋅ ⋅ ⋅ < , is the number of the factors of (expect 1 and itself); let = .
Step 5. Calculate the vector q by q = R × h and get (q), the Hamming weight of q.
Step 6. If (q) < , stop the searching and output the current to be the estimated codeword length:̂= . Otherwise, execute Step 7.
Step 8. End the searching.
After the estimation of , we can simply get the estimation of ⊥ bŷ⊥ Finally, we search all the basic check vectors to recover the basic check matrix H 0 . According to (13) and (14), we can estimate the encoder parameter and the − parity check vectors by the following steps.
Step 3. Create a vector x as follows: where the definition of ( ≥ 1) is the same as (40).
Step 4. Let = ( + 1)( ⊥ + 1) and fill the elements in x into the matrix R with row length .
Step 5. Enumerate all vectors h with length , where the last element of h is 1, and calculate (q), where q = R × h . If any vector h can make (q) < , recordĥ = h and execute Step 6. Otherwise, execute Step 8.
Step 9. End the searching.
If such recognition procedure can successfully output̂− vectorsĥ 1 ,ĥ 2 , . . . ,ĥ̂−̂, we can finally recover the basic parity check matrix H 0 . We write the vectorsĥ 1 ,ĥ 2 , . . . ,ĥ̂−â s follows: and then the parity check matrix H 0 can be estimated as follows: where is the noise variance, is the Hamming weight of h, is the th nonzero position in h , and is the th element in vector c. Based on this, (q) is calculated as follows: where c denotes the th row in R .

Simulation Results
In this section we show the simulation results of the blind recognition of the convolutional coding parameters by utilizing the method introduced in this paper. The simulations include three parts corresponding to our proposed recognition algorithm on different noise level and different observed matrix size . In the simulations we assume that the signal The Scientific World Journal 9 is transmitted on a binary symmetry channel (BSC) which is corrupted by AWGN. For the GJETP-based recognition method, we show the false recognition ratios (FRR) in Figure 5 for several convolutional codes in different channel conditions when the observed window size = 200. We compare the proposed soft-decision based method with the hard-decision based algorithm proposed in [7]. We can see from the simulation results that when the soft information is introduced into the recognition algorithm, the recognition performances can be improved obviously. And as the SNR rises, the FRR curves descend more rapidly on soft-decision algorithm. Figure 6 shows the recognition performance of two convolutional codes for different observed matrix size, when the SNR / 0 = 2.36 dB. It shows that the soft information can help to make the FRR descend more rapidly when is rising. That is to say, in soft-decision situations, we can improve the recognition performance by increasing the number of rows in the data matrix of R , while the hard-decision based algorithm cannot.
In Figure 7, we compare the performances of convolutional encoder recognition by GJETP method and correlation attack while recognizing the coding parameters of (2, 1, 3). GJETP method is based on Gauss elimination on R , so the influences of error bits are easily diffused during Gauss eliminating. Therefore, the fault-tolerance of GJETP method is limited. Correlation attack method can avoid this problem, so the recognition performance can be improved in low SNR situations.

Conclusions
This paper proposes the methods of utilizing soft information to improve the recognition performance of convolutional encoder parameters. And we propose a formalized estimation of the parameter and synchronization positions. When introducing the soft information the recognition performance can be obviously improved and the simulations show the efficiency of the proposed methods. Besides, we propose a new algorithm to recover the basic parity check matrix by correlation attack. Although this method takes longer elapsed time, it can push the SNR limits of the GJETP method, and some principles are proposed to reduce the searching space. If the channel quality is well, the GJETP method has advantages on short computational delay. For a worse channel quality such that the GJETP does not work, correlation attack method has a significant advantage on its higher faulttolerance.