Literature DB >> 24982997

Blind identification of convolutional encoder parameters.

Shaojing Su1, Jing Zhou1, Zhiping Huang1, Chunwu Liu1, Yimeng Zhang1.   

Abstract

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.

Entities:  

Mesh:

Year:  2014        PMID: 24982997      PMCID: PMC4055125          DOI: 10.1155/2014/798612

Source DB:  PubMed          Journal:  ScientificWorldJournal        ISSN: 1537-744X


1. 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-3] developed recognition methods in noiseless context, including the rate 1/n and k/n codes, where n denotes the codeword length and k the dimension. These methods are not suitable for noisy environment. For the case of noisy context, some algorithms were proposed in recent years [4-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 k/n convolutional codes with low complexity and excellent recognition performances. However, the previous works are all discussed in hard-decision 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-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 n for a computer program, we propose a formalized scheme to optimize the recognition of n; (2) the authors of [6, 7] did not consider the synchronization of codewords while the synchronization positions are usually 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.

2. Utilizing the Soft Information

The details of the GJETP-based recognition of rate k/n convolutional encoder parameters are introduced in [7]. The algorithm includes three major sections: identification of code length n; identification of a dual code basis; identification of the generator matrix. In the first procedure, the authors of [7] propose to recognize parameter n using the following steps.

Step 1

Set the minimum and maximum value of l, that is, l min⁡ and l max⁡. Initialize l to be l min⁡.

Step 2

According to l 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.
Figure 1

Generation of the observed matrix R .

Step 3

Transform the matrix R to a lower triangular matrix G by GJETP (see [15] for details):

Step 4

Obtain the set Z as follows: where N (i) is the number of “1” in the lower part of the ith column in the matrix G ,  γ opt is an optimal threshold [6, 7], and Card{x} denotes the cardinal of x. An N (i) smaller than (L − l)γ opt/2 indicates that the ith column of R has a high probability to be dependent on the other columns.

Step 5

If l = l max⁡, execute Step 6. If l < l max⁡, let l = l + 1 and go back to Step 2.

Step 6

Output the gap between two consecutive nonzero cardinals, Z , as the estimated codeword size . The principle of this estimation is that when l = mn(m ∈ Z +) and l is larger than a parameter n (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. 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. 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. 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 L 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 n, 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.

3. Formalizing the Estimation Algorithm of n

Note that, in Step 6 shown in the previous section, the authors of [7] only give the idea of the estimation of n. 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 l that equals mn are blank. So not all the gaps between two consecutive nonzero cardinals, Z , equal n. In this case, we need a formalized algorithm to estimate the value of n 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. Let  V = [l 1, l 2,…, l ] be the vector that consists of the values of l corresponding to the detected nonzero cardinals Z in Step 6. Calculate the vector ΔV = [Δl 1, Δl 2,…, Δl ], the elements of which are calculated by Initialize a vector Q with length l max⁡ to be overall zeros and for each value of i from 1 to s − 1, we let Finally we find the maximum element in Q and output the corresponding gap value  Δl to be the estimated codeword size . 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 C(3, 2, 4) convolutional code based on correct synchronization positions with a low SNR (E /N 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:
Figure 2

The recorded vector N based on low SNR.

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:. 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.

4. 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 n (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. Figure 3 shows the recorded vector N when recognizing a C(3, 2, 4) convolutional code based on correct synchronization positions. From the figure we can estimate the key parameter n = 21, which is accordant to the C(3, 2, 4) convolutional code. But if we choose an incorrect synchronization position, as shown in Figure 4, the first nonzero element in vector N appears at the position l = 24, so the key parameter n is estimated to be 24, which is a fault estimation. In order to obtain correct parity check vectors, we must firstly locate the correct synchronization positions.
Figure 3

The recorded vector N based on correct synchronization.

Figure 4

The recorded vector N based on incorrect synchronization.

We assume that when recognizing the code length we fill the matrix R from the t 0th position from the received bit stream and the estimated code length and key parameter n are and , respectively, and then we propose the following steps  to find the correct codeword synchronization. Let τ = t 0 + 1, , and . Let . Fill the matrix R with row length l from the τth bit in the received data stream. Do the GJETP processing for R and calculate  N , the number of dependent columns. If N > 0 and , let , , and l = l − n, and go back to Step 3; otherwise, execute Step 6. If τ < t 0 + n − 1, let τ = τ + 1 and go back to Step 2.

Step 7

Let and be the newly estimations of n 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 n by in the algorithms.

5. Correlation Attack Method

5.1. Hard-Decision Situations

If the polynomial-based generator matrices of a k/n convolutional code and the dual code are G(D) and H(D), respectively, we have [16] According to the analysis of [7], H(D) has the following style: where h (D)  (1 ≤ j ≤ n − k, 1 ≤ s ≤ k) is a polynomial, coefficients of which are all in GF(2): Parameter μ ⊥ in (7) is the memory of the dual code [6, 7]. h 0(D) is also a polynomial on GF(2) as follows: And according to [7], for a realizable convolutional encoder, we have Based on (8)–(10), we can define the binary form of H(D) as follows: where It is shown in (12) that each row of the matrix H is a shift of the following (n − k) × n(μ ⊥ + 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 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 l 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 l and listing all vectors with length l to see which vectors have likelihood to be the basic parity check vectors. This can be implemented by enumerating all possible length values l, creating the observed data matrix R with row length l (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 l 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 n 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. Reduce the candidates of l. 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 l from composite numbers. 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 (l − 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 l = n(μ ⊥ + 1) and no error 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 l equals n(μ ⊥ + 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 wt(q) the Hamming weight of the vector q. In noisy environment, the expectation of wt(q) can be calculated as follows: where L 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, l = n(μ ⊥ + 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 w 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 wt(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 wt(q) are 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 L 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 L/10 and let Therefore, L should meet the following condition: The threshold δ = L/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 L 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 t 0 as follows. Set the searching range of ω; that is, set ω min⁡ and ω max⁡. 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⁡. Let  i = 1. Let  l = ω . Let t = 1; fill the data matrix R with the received data. The first bit filled into R is the tth bit in the received stream. Let j = 1. Create a vector: where h 1 = h = 1 and h 2 h 3 ⋯ h is the binary form of j with length l − 2.

Step 8

Calculate the vector q by (22) and denote by wt(q) the Hamming weight of q. If wt(q) < δ, stop the searching and output t and l to be the estimation of t 0 and ω; that is, let and . Besides, record h as h .

Step 9

If j < 2 − 1, let j = j + 1 and go back to Step 7. Otherwise, execute Step 10.

Step 10

If t < n max⁡, let t = t + 1 and go back to Step 6. Otherwise, execute Step 9. n max⁡ is the maximum of possible codeword length. n max⁡ can be set to the maximum factor of l (except l itself).

Step 11

If i < ε, go back to Step 4. Otherwise, execute Step 12.

Step 12

End the searching. If we can stop the searching from Step 8, we can recognize the codeword length n based on , , and h . According to (19), the code length n is a factor of ω. So we propose to estimate n by the following steps. List all the factors of ω (expect 1 and ω itself) to form a set where n 1 < n 2 < ⋯ Let i = 1. Let n = n . Fill the data matrix R as follows: wherewhere c   (i ≥ 1) is the th bit in the received data stream and . Calculate the vector q by q = R × h and get wt(q), the Hamming weight of q. If wt(q) < δ, stop the searching and output the current n to be the estimated codeword length:. Otherwise, execute Step 7. If i < σ, let i = i + 1 and go back to Step 3. Otherwise, execute Step 8. End the searching. After the estimation of n, we can simply get the estimation of μ ⊥ by 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 k and the  n − k  parity check vectors by the following steps. Let k = 1. Let s = 1. Create a vector x as follows: where the definition of  c   (i ≥ 1)  is the same as (40). Let l = (k + 1)(μ ⊥ + 1) and fill the elements in x into the matrix R with row length l. Enumerate all vectors h with length l, where the last element of h is 1, and calculate wt(q), where q = R × h . If any vector h can make wt(q) < δ, record and execute Step 6. Otherwise, execute Step 8. If , let  s = s + 1 and go back to Step 3. Otherwise, execute Step 7. Stop the searching, and output and the recorded vectors . If , let  k = k + 1 and go back to Step 2. Otherwise, execute Step 9. End the searching. If such recognition procedure can successfully outputvectors, we can finally recover the basic parity check matrix H 0. We write the vectors as follows:and then the parity check matrix H 0 can be estimated as follows:

5.2. Soft-Decision Situations

In hard-decision situations, we calculate wt(q) by evaluating how many vectors in R are correlated with a candidate parity check vector h. In soft decisions, we can utilize the soft output from the receiver to evaluate the reliability of each decision bit. Therefore, we can calculate the probability of each row in R to be correlated with h. For example, if a communication system uses BPSK demodulation in an additive-white-Gaussian-noise (AWGN) channel, according to the analysis in [14, 15], we can calculate the probability of c × h = 1 and c × h = 0 for given vectors c and h as follows: where σ is the noise variance, w is the Hamming weight of h, u is the jth nonzero position in h, and c is the  u th element in vector c. Based on this, wt(q) is calculated as follows: where c denotes the  ith row in R .

6. 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 L. In the simulations we assume that the signal 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 L = 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 5

Recognition performances of GJETP method.

Figure 6 shows the recognition performance of two convolutional codes for different observed matrix size, when the SNR E /N 0 = 2.36 dB. It shows that the soft information can help to make the FRR descend more rapidly when L 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.
Figure 6

Recognition performances on different size of R for soft and hard decisions.

In Figure 7, we compare the performances of convolutional encoder recognition by GJETP method and correlation attack while recognizing the coding parameters of C(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.
Figure 7

Comparison of GJETP method and correlation attack.

7. 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 n 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 fault-tolerance.
  1 in total

1.  A convolutional code-based sequence analysis model and its application.

Authors:  Xiao Liu; Xiaoli Geng
Journal:  Int J Mol Sci       Date:  2013-04-16       Impact factor: 5.923

  1 in total

北京卡尤迪生物科技股份有限公司 © 2022-2023.