Dual code method for blind identification of convolutional encoder for ...

10 downloads 11185 Views 579KB Size Report
Nov 30, 2009 - recovery of convolutional encoder in turbocode configuration and a perfect ..... way as Rl in section III, but with data taken from corrupted.
IEEE GLOBECOM 2009, 30 Nov – 4 Dec 2009, Honolulu, Hawai’i, USA

Dual code method for blind identification of convolutional encoder for cognitive radio receiver design M. Marazin1-2 , R. Gautier1-2 , Member, IEEE and G. Burel1-2 , Senior Member, IEEE 1

Université Européenne de Bretagne, France Université de Brest; CNRS, UMR 3192 Lab-STICC, ISSTB, 6 avenue Victor Le Gorgeu, CS 93837, 29238 Brest cedex 3, France [email protected] http://www.labsticc.fr/cacs/equipe/comint/ 2

Abstract—Digital communication systems are in perpetual evolution in order to respond to the new user expectations and to new applications transmissions constraints, in term of data rate or reliability. With this fast development of new communication standards, it becomes very difficult for users and also for communications devices producers, to stay compatible with all standards used and with the oncoming ones. For that reason, cognitive radio systems seem to provide an interesting solution to this problem. The conception of intelligent receiver able to adapt itself to a specific transmission context and to blindly estimate the transmitter parameters is a promising solution for the future. In such context, new coding schemes like turbocodes, Low-Density Parity-Check (LDPC) or concatenated codes are developed to increase transmission robustness without significant degradation of the data rate. It is why we have developed a method, described in this paper, dedicated to the blind identification of convolutional encoders usually used in many standards. Moreover, an analysis of the method performances is detailed. Index Terms—Cognitive radio, intelligent receiver, blind identification, convolutional encoder, dual code.

I. I NTRODUCTION Modern digital communication systems and new Broadband Wireless Access (BWA) technologies are dedicated to allow high data rate transmissions from a transmitter to a receiver with the best reliability and Quality of Service (QoS). On the transmitter side, a communication system is composed of several different blocks, each one having a specific function, like source encoder, channel encoder or modulator... The channel coding block is essential to achieve a good immunity against channel impairments, but due to the redundancy introduced by a correcting code, it produces a decrease of the transmission rate. For that reason, new correcting codes like turbocodes, LDPC or concatenated codes are always developed to reduce the impact of the amount of redundancy introduced and to improve the correction capabilities. The arrival of new highperformance coding schemes induces that communication systems are in perpetual evolution and it becomes more and more difficult for users to follow all the changes to stay up-to-date and also to have an electronics communications device always compatible with every standard in use all around the world. In such context, cognitive radio systems provide an obvious solution to these problems. In fact, a cognitive radio receiver is an intelligent receiver able to adapt itself to a specific transmission context and to blindly estimate the

transmitter parameters for self-reconfiguration purpose with the only knowledge of the received data stream. In this paper, we consider the problem of blind identification of error-correcting codes for cognitive radio receiver design and more precisely for convolutional codes usually used in many actual communication standards. There is a few methods which have been published in this domain, for example in [1], a method based on Euclidean algorithm is proposed to identify a rate 1/2 convolutional encoder in the noiseless case. In [2], a different approach is presented to identify a rate 1/n encoder in the noisy case which is based on the Expectation Maximization algorithm. In [3], we have developed a method for blind recovery of convolutional encoder in turbocode configuration and a perfect transmission. In this paper, we present an iterative method for blind recognition of rate (n−1)/n convolutional encoder from noisy data which is based on algebraic properties of convolutional encoder [4], [5] and dual code [6]. The paper is organized as follows. In section II, some properties of convolutional codes are presented. Then, the principle of blind recognition via a dual code is described in section III in the noiseless case and the method of blind identification in the noisy case is explained in section IV. Finally, a discussion on the performances of the method is proposed in section V, and some conclusion and prospects are given in section VI. II. C ONVOLUTIONAL ENCODER AND DUAL CODE A. Principle and mathematical model Before trying to explain the method for blind reconstruction of convolutional encoder, it is important to give the main mathematical notions to describe a convolutional code and the interesting properties to achieve our goal of blind encoder recovery. A convolutional code, denoted C(n, k, K), is first defined by three parameters, k the number of inputs, n the number of outputs, K the constraint length, and also by his k × n code generator matrix given by: ⎤ ⎡ g1,1 (D) · · · g1,n (D) ⎥ ⎢ .. ... (1) G(D) = ⎣ ... ⎦ . gk,1 (D)

···

gk,n (D)

IEEE GLOBECOM 2009, 30 Nov – 4 Dec 2009, Honolulu, Hawai’i, USA

where gi,j (D), ∀i = 1, · · · , k, ∀j = 1, · · · , n, are generator polynomials and D represents the delay operator. The memory of the i-th input, denoted μi , is defined by: μi = max deg gi,j (D) j=1,··· ,n

∀i = 1, · · · , k

(2)

which permits to define the overall memory of convolutional code as: μ = max μi = K − 1 i=1,··· ,k

(3)

For such code, the encoding process can be described by: c(D) = m(D).G(D)

(4)

where m(D) is an input sequence and c(D) the codewords sequence. One of the most important properties in error correction theory is the equivalent encoder notion. A simple way to explain this property is to say that the codewords, or by extension the encoded sequences, generated by two equivalent encoders belong to the same codeword set, but that the codewords are not generated in the same order. Theorem 1: Two rate r = k/n code generator matrices G(D) and G (D) are equivalent if and only if there is a k × k nonsingular matrix L(D) such that G(D) = L(D).G (D)

(5)

There exist many convolutional codes, but most of them do not have the good properties in term of correction performances on the receiver side. Especially, some generator matrices of a code are called catastrophic generator matrices and must be avoided. With such catastrophic matrix, a small number of channel errors may generate an unlimited number of errors after the decoding process. In practice, only optimal convolutional encoders are usually used because they have the highest error correction capabilities, and good algebraic properties ( [4], [5]) which can be judiciously exploited for blind identification. To take into account perturbation generated by the global transmission system (modulation, propagation channel, demodulation...) we consider the binary symmetric channel (BSC) to modelize the errors. If the codewords sequence c(D) is sent over a BSC, then the received sequence, denoted y(D), is: y(D) = c(D) + e(D)

(6)

where e(D) is an error pattern. We denote P e the error probability of the channel and e(i) the i-th bits of e(D) such as: P r(e(i) = 1) = P e and P r(e(i) = 0) = 1 − P e. The errors are assumed independent. In turbocodes or parallel concatenated convolutional codes, rates 1/n or (n − 1)/n optimal convolutional encoders are used. For this reason, we have decided to study the problem of the blind recovery of rate (n − 1)/n convolutional codes.

B. The dual code of the rate (n − 1)/n convolutional encoder A convolutional encoder can also be described by a dual code generator matrix, called parity check matrix, which has also excellent properties in blind recovery of convolutional encoder context. This parity check matrix is an (n − k) × n polynomial matrix which verifies the following property: Property 1: Let G(D) a generator matrix of C. If an (n − k) × n polynomial matrix, H(D), is a parity check matrix of C, then: (7) G(D).H T (D) = 0 Corollary 1: Let H(D) a parity check matrix of C. The output sequence c(D) is a codeword sequence of C if and only if: (8) c(D).H T (D) = 0 For a rate r = (n − 1)/n code, the parity check matrix is a simple row vector defined by:  (9) H(D) = h1 (D) · · · hn−1 (D) h0 (D) where hj (D) are the generator polynomials of H(D), ∀j = 0, · · · , n − 1. According to properties of optimal convolutional encoder and dual code ( [6], [7]), the memory of H(D), denoted μ⊥ , is such as: n−1

μi (10) μ⊥ = i=1

and the generator polynomials are: ⊥

hj (D) =

µ

hj (l).Dl

(11)

l=0 ⊥

= hj (0) + hj (1).D + · · · + hj (μ⊥ ).Dµ

According to [7], a convolutional encoder is realizable if the polynomial h0 (D) is a delayfree polynomial. A polynomial ∞ i f (D) = i=0 f (i).D is called a delayfree polynomial if f (0) = 1. Indeed, the generator polynomial h0 (D) is such as: ⊥

h0 (D) = 1 + h0 (1).D + · · · + h0 (μ⊥ ).Dµ

(12)

In practice, for implementation consideration, the intercepted sequence is not usually in the polynomial form: it is considered as a binary vector denoted c. So, the parity check matrix can be rewritten under binary form: ⎞ ⎛ ··· h1 h0 hµ⊥ hµ⊥ −1 ⎟ ⎜ hµ⊥ hµ⊥ −1 · · · h1 h0 H=⎝ ⎠ (13) .. .. .. .. .. . . . . . where hi , ∀i = 0, · · · , μ⊥ , are row vectors of size n and defined by:   (14) hi = h1 (i) · · · hn−1 (i) h0 (i) We denote h a vector defined by:  h = hµ⊥ hµ⊥ −1 · · ·

h0



(15)

IEEE GLOBECOM 2009, 30 Nov – 4 Dec 2009, Honolulu, Hawai’i, USA

From (13), the parity check matrix is composed of moved versions of this same vector, h. This vector (15) of size n.(μ⊥ + 1) is called a parity check of the code. From (14) and (12), the vector h0 is:   (16) h0 = h1 (0) · · · hn−1 (0) 1 Thus, we can deduce that the degree of h, denoted na , is equal to: (17) na = n.(μ⊥ + 1) and is of great interest in the blind convolutional code identification process. III. P RINCIPLE OF BLIND IDENTIFICATION OF THE RATE (n − 1)/n CONVOLUTIONAL CODE IN THE NOISELESS CASE In this part, we describe the principle of our method of blind identification when the intercepted sequence is not corrupted by errors defined here as the noiseless case. In the case of block code, an approach to recovery of the code rate has been presented in [8]. In [3], we have adapted this method to be applied to the convolutional code in the case of a perfect transmission. Its principle is to reshape columnwise the intercepted data bit stream under matrix form. This matrix, denoted Rl , is computed for different values of l, where l is the number of columns. If the codewords sequence length is L, then, the rows number of each matrix Rl , noted M , is M =  Ll , where . stands for the integer part. An example of this construction is presented in Fig. 1. For each matrix Rl , c 0 1 2 3 4 5 6 7 8 l 0 1 2 3 4 5 6 7 8

M

Figure 1.

l

Example of matrix Rl

the rank in Galois Field, GF (2), is computed and has two possible values: • If l = α.n and l ≥ na , ∀α ∈ N n−1 + μ⊥ < l n If l = α.n or l < na , ∀α ∈ N rank(Rl ) = l.



rank(Rl ) = l

(18)

rank(Rna ) = (n − 1).(μ⊥ + 1) + μ⊥ = na − 1 < na (21) Equation (21) shows that there exists only one linear relation between the columns of Rna . It is obvious that it is possible to identify all parameters of the code with only two consecutive rank deficiency matrix. The different steps of this identification process are described below. • Identification of n: The codewords size, n, is equal to the difference between two values of l corresponding to two consecutive falls of rank of Rl . ⊥ • Identification of μ and μ: Using one matrix with rank deficiency, from (18), it is possible to recovery the memory of the dual code and with (10) we obtain the memory of the code. • Identification of na : From (17), if we know n and μ⊥ , it is easy to obtain the value of na . Now, we must have to identify the parity check h for recovery the code generator matrix. We have shown that the degree of this parity check (17) is equal to na and that the rank of the matrix Rna (21) is equal to na − 1. Indeed, if we build this system: (22) Rna .hT = 0 it is possible to solve it to identify the parity check h. Finally, the generator matrix is obtained by solving the system described in prop. 1. Nevertheless, the resolution of such system may led to multiple solutions which can be reduced by taking into account the particular properties of optimal encoders. Even so, it is always possible to fail finding the true generator matrix of the code, and, instead, to find only one equivalent matrix. In this case it is theoretically impossible to distinguish equivalent matrices. This method exhibits excellent performances if the intercepted sequence is not corrupted but, it becomes inefficient if data is severely corrupted. In the next section a method for blind recovery of convolutional encoder is presented when the intercepted sequence is severely corrupted. IV. B LIND IDENTIFICATION OF THE RATE (n − 1)/n CONVOLUTIONAL CODE IN THE NOISY CASE

(19)

We can note that if a block code C(n, k) is used, the relation (18) becomes: n−1 < l ∀l = α.n (20) n In this case, the matrix Rl would have presented a rank deficiency for all l = α.n. But, for a convolutional encoder, the memory introduced by the code implies that the rank of the matrix Rl (18), for l = α.n < na , is always equal to α.n. rank(Rl ) = l.

So, the first matrix Rl which exhibits a rank deficiency is obtained for l = na and its rank is given by:

l the M × l matrix constructed in the same Let us note R way as Rl in section III, but with data taken from corrupted codewords sequence. In this case, y = c, and in spite of the redundancy introduced by the code, all these matrices are full rank matrices even in the configuration with l = α.n and l ≥ na . The dependency between columns is lost due to the erroneous bits introduced by the transmission channel. So, in such erroneous context, the previous method cannot be applied to identify the parameters of the code. In [9], a method for blind detection of the interleaver size from a block coded

IEEE GLOBECOM 2009, 30 Nov – 4 Dec 2009, Honolulu, Hawai’i, USA

and interleaved sequence, corrupted by the channel, has been presented. We have adapted this method for blind identification of the size of codewords n and of the value of na in the case of convolutional codes. In this section, we propose to replace the rank criterion which indicates the number of independent l , by a method permitting to evaluate columns of the matrix R the columns which are probably dependent. With this method, it becomes possible to detect values of l where the matrices Rl seem to be degenerated rank. l The principle of this method is to convert each matrix R into a lower triangular matrix noted Gl with the Gauss Jordan Elimination Through Pivoting (adapted in GF (2)): l .Bl = Gl Al .R

(23)

where Al is a rows permutation matrix of size M × M and Bl a matrix describing the columns combination of size l × l. In the noiseless case and for l = na , the last column of the lower triangular matrix Gl is a null column. In this way, we will try to detect a linear form according to the number of ones in the lower part of each column in the triangular matrix. Let Nl (i) be the number of ones in the lower parts of column i in the matrix Gl . We will show that this variable has two different behaviors depending on l. • If l = α.n or l < na In this case, Nl (i) follows a Binomial distribution with parameters B(M − l, 0.5). • If l = α.n and l ≥ na In this configuration, because of redundancy introduced by the code, it exists at least one column of Gl such that Nl (i) follows a Binomial distribution with parameters B(M − l, P ). Here, P is a probability that one element of the i-th column of Gl is equal to “1”: 1 + (1 − 2.P e)wi (24) 2 where wi is the Hamming weight of the i-th column of Bl . This value, wi , represents the necessary number of columns of Rl to obtain the i-th column of Gl . For the other columns, Nl (i) follows a Binomial distribution with parameters B(M − l, 0.5) According to the laws of probability of Nl (i), it is possible to define a threshold, denoted γ, which will allow to decide l is dependent on the other if the i-th column of the matrix R l is dependent columns. We decided that the i-th column of R if: (M − l).γ (25) Nl (i) ≤ 2 and this column is independent if: P =1−

(M − l).γ (26) 2 For obtaining at least one dependent column, we realize the Gaussian Elimination process (23) for different value of l and with γ = 0.6. After this step, it is possible to estimate an optimal threshold [9]. This optimal threshold, denoted γopt , is chosen to minimize the sum of the missing probabilities. Nl (i) >

The numbers of dependent columns detected, denoted Q(l), are such as:   (M − l).γopt Q(l) = Card i ∈ {1, · · · , l} |Nl (i) ≤ 2 (27) So, the gap between two non-zero cardinals, Q(l), is equal to the size of codeword, denoted n ˆ . Let I be a set of values of l where the cardinal is non-zero. From matrix Bi , ∀i ∈ I, it is possible to build a basis of dual code, that is to say a set of linear form. Let us denote i , where Zi is a (M − i) × i matrix Zi , a sub-matrix of R i . If bj represents the composed of the M − i last rows of R j-th column of Bi , we decide that bj is a linear form close to the dual code if: d(Zi .bj ) ≤ (M − i).γopt

(28)

We noted D a set of all detected linear forms. For an optimal convolution code, we have seen that the parity check h is the linear form of dual code of the smallest degree. Among the set of detected linear form, D, we shall ˆ this linear form try to find that of smaller degree. We noted h and nˆa this degree. To identify the other parameters, we follow the same steps described in section III. So, according to (17) and (10), with ˆ and nˆa , it is possible to estimate the memory of the n ˆ, h code and according to prop. 1, we will be able to estimate a generator matrix of code C. At the output of this algorithm, two situations may occur. The first one arise when the true encoder or an optimal encoder is identified and the second one, when no optimal encoder is identified. In the second situation, it is possible to increase the probability of detect an encoder by realizing a new iteration of this algorithm. For each iteration, the same data set is used  but with a new permutation of the rows of the matrix R, these permutations yielding a virtual new realization of the intercepted sequence. Indeed, during the Gauss Elimination process (23), if the pivots are erroneous these errors will be propagated in the matrix Gl . Doing permutation increases the probability to obtain a non-erroneous pivots. V. A NALYSIS AND PERFORMANCES In this section, for clarity and concision of the presentation, we will restrict the analysis to optimal convolutional encoder: C(2, 1, 7) and C(3, 2, 3). Moreover, we build all the matrices l with l = 2, · · · , 100 and M = 200, which implies a R received bit stream of only 20000 bits. For example, for the UMTS standard [10] which allows reach a bit rate up to 2Mbps, 20000 bits represents only a duration of 10ms and the future standards will reach higher data rates. Taking into account the amount of data required to perform the blind identification is very important to prove that our algorithm is well adapted for implementation in a realistic context. For each simulation, 1000 Monte Carlo Trials are run. Before analyzing in detail the global performances in term of probability of detection of our algorithm (in this context the detection includes the complete identification of the encoders) we will

IEEE GLOBECOM 2009, 30 Nov – 4 Dec 2009, Honolulu, Hawai’i, USA 1

investigate the influence of the number of iterations to obtain an optimal probability of detection. The number of iterations will be a compromise between detection performances and processing delay introduced in the reception chain. Moreover, due to the relative small amount of data used by the iterative process to generate virtual new realizations, the number of iterations is also theoretically limited to preserve statistical independence during the pivots selection process. To evaluate this number of iterations, let λx→y be the gain between the x-th iteration and the y-th iteration defined by: λx→y

Pdet (y) − Pdet (x) = Pdet (x)

(29)

where Pdet (i) is the probability to detect the true encoder at the i-th iteration. This gain, λx→y , will be expressed in percentage. • C(2, 1, 7) convolutional encoder: Fig. 2 shows the probability to detect the true encoder, denoted Pdet and called probability of detection, versus Pe , for 1, 5 and 50 iterations. For this code, we can see that the optimal 1

Probability of detection

0.8

0.6

0.4 Iteration 1 Iteration 5 Iteration 50

0.2

0

Figure 2. iterations

0

0.005

0.6

0.4 Iteration 1 Iteration 10 Iteration 50

0.2

0

Figure 3. iterations

0

0.005

0.01 0.015 0.02 0.025 Channel error probability: Pe

0.03

0.035

C(3, 2, 3): Probability of detection versus Pe for 1, 10 and 50

(the gain between the 10th iteration and the 50th iteration is close to zero). As for C(2, 1, 7) code, with Pe above 10−2 , the performances increase significantly with the number of iterations. In table Tab. I, the gain between the 1st iteration and 10th iteration is represented. The blind identification of this encoder is more difficult than with the former (C(2, 1, 7)) at the same channel error probability, but it is essentially due to the code properties. The C(3, 2, 3) code introduces less redundancy and consequently a lower correction capability. It is clear that the algorithm performances depend on the number of iterations. As explained in V-A, in practice the maximum number of iterations has to be bounded to limit the processing delay. A method allowing to determine the optimal number of iterations as a function of parameters of the code and Pe is under consideration B. Probability of detection performances

0.01 0.015 0.02 0.025 0.03 Channel error probability: Pe

0.035

0.04

C(2, 1, 7): Probability of detection versus Pe for 1, 5 and 50

performances are obtained with 5 iterations. The gain between the 5th iteration and the 50th iteration is close to zero. The gain between the 1st iteration and the 5th iteration, represented in the table Tab. I, is very large. Indeed, at Pe equal to 3.10−2 , λ1→5 is close to 112%. After 1 iteration Pdet is close to 0.4, and 0.8 after 5 iterations. Table I C(2, 1, 7) AND C(3, 2, 3) DETECTION GAIN Pe C(2, 1, 7): λ1→5 (%) C(3, 2, 3): λ1→10 (%)

Probability of detection

A. The detection gain produced by the iterative process

0.8

0.01 0.1% 1.6%

0.02 13.5% 150%

0.03 112% 315%

• C(3, 2, 3) convolutional encoder: For this code, the probability of detection versus Pe for 1, 10 and 50 iterations are represented in Fig. 3. With this encoder, 10 iterations are necessary to obtain optimal performances

To analyze performances of our method, we define three probabilities: 1) Probability of detection Pdet : Probability to identify the true encoder; 2) Probability of false-alarm Pf a : Probability to identify an optimal encoder but not the true one; 3) Probability of miss Pm : Probability to identify no optimal encoder In order to evaluate the relevance of our results, it is important to compare them with the correction capability of the code. For that, we denote BERr , the theoretical residual bit error rate obtained after decoding of the corrupted data stream with a hard decision [7]. Regarding the current standards, for example UMTS, for QoS reason of real time service the residual bit error rates is considered acceptable if it is between 10−3 and 10−7 in urban zone and between 10−3 and 10−4 in rural zone. Thus, we consider here that the acceptable BERr must be close to 10−5 . For the C(2, 1, 7) code, the different probabilities are represented in Fig. 4 after 5 iterations. To show the good performances of our algorithm, the limit of the 10−5 acceptable BERr is also plotted. We can see that the probability to

IEEE GLOBECOM 2009, 30 Nov – 4 Dec 2009, Honolulu, Hawai’i, USA 1

Probabilities

0.8 BERr10−5

0.4 Pdet Pfa Pm Acceptable BERr

0.2

0

0

Figure 4.

0.005

0.01 0.015 0.02 0.025 0.03 Channel error probability: Pe

0.035

0.04

C(2, 1, 7): Detection probabilities for 5 iterations

identify the true encoder is close to 1 for all Pe which involve a BERr after decoding lower than 10−5 (which correspond to a Pe = 0.0189). For Pe greater than 0.02, Pf a increases faster than Pm , which implies that our algorithm may find an optimal encoder different from true one, but Pdet is still greater than 0.8 for Pe included in [0.02, 0.03] which corresponds to a BERr of 10−4 . For Pe > 0.038, the Pf a becomes lower than Pdet , but in this case BERr becomes greater than 3.10−4 which is not acceptable for QoS consideration, which means that this encoder will not be used in practice in such configuration. The same probabilities for the C(3, 2, 3) code are shown in Fig. 5 for 10 iterations. With this encoder, at first sight our 1

0.6

BERr>10−5

BERr

Suggest Documents