This invention relates to the field of mobile telecommunications and more particularly to the reduction of interference in a femtocell network.
Communications in a femtocell network may be affected by interference generated by communications from an adjacent macrocell.
The scrambling code used on the uplink of the terminal 130 has to be determined to eliminate interference. The literature does not describe any multi-user detection algorithm capable of functioning in blind mode, without knowledge of the scrambling code. Detection in blind mode means that the femtocell base station 120 does not receive any information from the macrocell and particularly the transmission parameters from the different users of the macrocell.
On the other hand, as soon as the scrambling code is known, the signal received from the terminal 130 can be estimated locally and its contribution can be subtracted in the receiver of the terminal 120.
When the macrocell network is of the CDMA 2000 type, determination in blind mode is made even more complex by the fact that each user of this system uses a specific scrambling code. Furthermore, since the signal emitted by the user is spectrally spread, the estimate of the scrambling code must be made at a low signal-to-noise ratio.
One purpose of this invention is to propose a method of estimating a scrambling code used by an uplink of a CDMA 2000 system, for example to eliminate the interference generated in an adjacent femtocell.
This invention is defined as a method for estimating a scrambling code used on an uplink of a terminal in a CDMA 2000 system, the signal emitted by the terminal on said link being scrambled using the scrambling code, and then spectrally spread using a spreading code and shaped by means of a shaping filter, this scrambling code being generated by a generator comprising a shift register looped back on itself, in which:
Advantageously, it can be checked that the receiver is well synchronised with the scrambling code by:
In the differential processing, differential values may be obtained by Ui,j(k)=y(4k+i+j)y(4k+i)*, i=0, . . . , 3 and j=i+1, 3, in which y(k) represents a sample at the output from the matched filter.
The iterative decoding is preferably a decoding by passing belief messages between variable nodes and constraint nodes, said constraints being provided by the polynomial generating the scrambling code.
The content of the scrambling code generator shift register can be obtained by:
The second M-sequence may be the same generator polynomial as the first M-sequence and the M-sequence may be decimated by a factor of 4 from the second M-sequence.
The content a0s of the shift register of the scrambling code generator may be determined from the content aGal of the shift register of the generator of said second M-sequence according to the Galois representation using a0s=(Gi+j+Gi)−1aGal where G is the state transition matrix of the scrambling code generator in the Galois representation and i, j are integers such that i=0, . . . , 3 and j=i+1, 3.
Other characteristics and advantages of the invention will become clear after reading the embodiments of the invention with reference to the appended drawings among which:
The basic idea of the invention is to obtain a blind estimate of the scrambling code from a differential multiplication at the output from a filter matched to the transmission channel.
It is worthwhile summarising the processing in a CDMA 2000 emitter before precisely describing this blind estimation method.
After interleaving in 210, a Walsh-Hadamard (W-H) modulation is made on each 6-bit packet in 220. More precisely, there is one W-H sequence at the output from the modulator 220 for each packet. The module 230 performs a pseudo-random masking of the signal as a function of the service throughput. Signal chips are then scrambled using a long code in 240 and are multiplied in phase and in quadrature by spreading sequences in 250. The frequency spread I and Q components are then modulated in 260 by BPSK modulators before being amplified in 270, filtered by a shaping filter in 280, and modulated at the RF frequency in 290.
There is a long code (or scrambling code) specific to each emitter.
The scrambling mechanism is shown in detail in
The scrambling code (or long code) itself is obtained from a maximum length sequence, also called M-sequence. Note that such a sequence may be generated by means of a shift register looped back on itself, for which the taps correspond to the coefficients of a primitive polynomial. If the degree of this polynomial is q, the period of the M-sequence is 2q−1.
The values supplied by the stages of the register are masked by means of a logical AND with a 42-bit binary mask and the values thus masked are added modulo 2, in 420. Thus, the summator 420 supplies a new bit at each offset of the register. The sequence of bits provided by the summator gives the scrambling code.
The output from the summator 420 can be expressed as follows:
where s0(k) is the M-sequence if there is no masking, k is a time index, i is the rank of the stage in the register and m(i), i=0, . . . , r−1 (r=42 in the CDMA2000 system) is the binary mask specific to the user.
It can be shown that if s0(k) is an M-sequence then s0(k)⊕s0(k+n), in other words the sum of two offset versions of the same sequence is also an M-sequence of the same generating polynomial. It can be deduced that s(k) given by expression (2) is still an M-sequence of the same generating polynomial but corresponding to a different initial state of the shift register.
In the following, we will consider the scenario shown in
We will assume that the receiver of the base station 120 in the femtocell network is synchronised with the macrocell. In practice, it is possible to determine the beginning of each frame by means of the pilot channel (on which a spectrally spread pilot is transmitted) and adjusting relative to a time reference using the Synchronization Channel Message message (which provides the offset of the spreading code at a precise instant Sys-Time). This time reference is the clock reference derived from the GPS system.
The detail of the synchronisation mechanism is described in document 3GPP2 CS002-A entitled “Physical Layer Standard for CDMA2000 Spread Spectrum Systems—Release A”, Jun. 9, 2000, available on the MI site. In the following it is assumed that the base station receiver is synchronised with the beginning of the frame.
It is also assumed that the receiver knows the spreading sequences and the polynomial generating the scrambling code. On the other hand, the receiver does not know a priori the binary mask used by the terminal 130 and therefore its scrambling code.
The signal received by the base station 120 from the terminal 130 can be expressed as follows:
r(k)=(H1I+jH2Q)e+η(k) (3)
where e is the chip vector, before spectral spreading, in other words the product of W-H sequences by the scrambling code, I and Q are diagonal matrices, the elements of which are the spreading sequences in phase and quadrature respectively, and H1, H2 are matrices modelling shaping of the channels in phase and in quadrature (with an over sampling factor equal to 2) and η(k) is a noise sample on the channel assumed to be Additive Gaussian (AWGN).
The received signal r(k) is firstly filtered by means of a filter matched to the spreading code, to the pulse shaping (filtering 280 in
where θ is the phase shift introduced by the channel, S(k) is the chip of the scrambling code generated at time kTc (where Tc the chip period of the W-H sequences), Wn(i) is the ith chip of the nth Walsh-Hadamard sequence, └x┘ designates the integer value of x and n(k) is a noise sample assumed to be white, Gaussian, centred and with variance σ2.
Due to the repetition of the symbols in the W-H sequence in scrambling, the following relations are obtained as explained above in relation to
y(4k)=eiθS(4k)Wn(k)+n(4k)
y(4k+1)=eiθS(4k+1)Wn(k)+n(4k+1)
y(4k+2)=eiθS(4k+2)Wn(k)+n(4k+2)
y(4k+3)=eiθS(4k+3)Wn(k)+n(4k+3) (5)
The result is thus a series of four samples y(4k+i), i=0, . . . , 3 at the output from the matched filter corresponding to a single chip Wn(k) in the W-H sequence.
Differential processing is then applied on this series of samples. More precisely, this processing consists of calculating the Hermitian product of two samples in the series, namely, setting Ui,j(k)=y(4k+i+j)y(4k+i)*:
U
i,j(k)=S(4k+i+j)S(4k+i)+S(4k+i+j)eiθWn(k)n(4k+i)*+S(4k+i)eiθWn(k)n(4k+i+j)*+n(4k+i+j)n(4k+i)* (6)
In other words, if the last three noise terms are grouped together in the form of a noise sample vi,j(k):
U
i,j(k)=S(4k+i+j)S(4k+i)+vi,j(k) (7)
The result obtained is thus differential values Ui,j(k), i=0, . . . , 3, j=i+1, . . . , 3, that then only depend on the scrambling code and not on the W-H sequence emitted by the user 130 or the phase shift introduced by the channel.
Chip S(k)=±1 in the scrambling code is related to bit s(k) in this code by S(k)=2s(k)−1. Setting Xij(k)=S(4k+i+j)S(4k+i) and xij=(1+Xij(4k))/2, we obtain:
x
ij(4k)=s(4k+i+j)+s(4k+i) (8)
obviously, the addition being binary.
Therefore, for given values of i, j, the xij(4k) sequence is the sum of two M-sequences decimated by a factor of 4 and offset (by j bits).
Considering that decimation of an M-sequence by a power of 2 is nothing more than an offset version of this sequence and that the sum of two offset versions of a single M-sequence gives an offset version of this sequence, it can be understood that for a given pair (i, j), xij(4k) is an M-sequence with the same generating polynomial as s(k), presenting, at a given time, a different content of the shift register.
Having made these clarifications, we will describe
In step 510, the received signal is sampled at twice the chip frequency 1/Tc, of the spreading codes used in the cell of the CDMA 2000 macrocell network.
In step 520, the signal received r(k) (by the receiver in the femtocell base station 120) is filtered by filtering matched to the spreading code, to shaping of pulses and possibly to the channel transfer function. A sampled filtered signal y(k) is obtained at the chip frequency of the scrambling code as explained above.
In step 530, a differential processing of samples of the filtered signal is applied corresponding to the same symbol in a W-H sequence emitted by the user. The result obtained is differential values Uij(k) as stated above. The calculation may be made for one or several pairs or even all pairs (i, j), i=0, . . . , 3, j=i+1, . . . , 3.
Steps 510 to 530 have already been described and therefore will not be repeated in detail herein.
At step 540, differential values Ui,j(k), i=0, . . . , 3, j=i+1, . . . , 3 output from the previous step are iteratively decoded to obtain the Xi,j(k) sequences. Considering that the bit sequence xi,j(4k) is an M-sequence obtained by the generating polynomial g(x) given by (1), it can be decoded using a belief propagation decoding algorithm as described for example in the article by K. M. Chugg and M. Zhu entitled “A New Approach to Rapid PN Code Acquisition Using Iterative Message Passing Techniques”, IEEE Journal on Selected Areas in Communications, vol. 25, no. 5, May 2005. A generating polynomial maximum sequence generator:
g(x)=g0+g1x+ . . . +grxr (9)
can be seen as a parity matrix encoder with size (M−r)×M:
where M is the number of successive bits considered at the output from the generator. This parity matrix reflects constraints between bits in the M-sequence, and the encoder, like LDPC encoders, may be represented by a sequence of variable nodes and a sequence of constraint nodes. Decoding is then carried out iteratively, by passing messages between the variable nodes and the constraint nodes.
In this case, the observable values are values Ui,j(k). The algorithm can be used to estimate at each iteration soft values (for example log-likelihood ratios LLRs) of the bits xij(4k). The bits xij(4k) are then obtained by means of a hard decision on these LLRs.
At step 550, the content of the shift register for the scrambling code s(k) is deduced from the previous step. This content is a 42 bit word a0s=(a0s, a1s, . . . , ar-1s)T (where r=42) that univocally defines the code.
The content of the shift register of the M-sequence generator xij(4k) is determined at the beginning of the frame in step 610. Due to the connection between the stages of the register in Fibonacci representation, the content of the shift register is the word formed by xij(4k), k=0, . . . , 41.
The content of the shift register of the non-decimated M-sequence generator xij(k) is determined starting from the content of this shift register. Note that the decimated sequence xij(4k) has the same generator polynomial as the original sequence xij(k), but has a different register content at a given reference time.
The content of the shift register for the decimated sequence may be obtained in a Fibonacci representation of the generator as shown in
More precisely, denoting aFib1/4 the vector of size r=42 giving the content of the shift register in the Fibonacci representation of the sequence generator xij(4k), and aFib the content of the shift register for the decimated sequence xij(k) we obtain
a
Fib
=T
undecim
1/2
T
undecim
1/2
a
Fib
1/4 (11)
in which Tundecim1/2 is a matrix of size r×r giving the state change between the decimated sequence and the original sequence, for a decimation by a factor of ½.
Matrix Tundecim1/2 may be obtained using the method described in detail in the article mentioned above. The first step to achieve this is to calculate the root of the inverted polynomial a−1 of the generating polynomial (g−1(x)=g(x)x−r) of the non-decimated sequence, Tundecim1/2 is then the binary matrix of which the ith line is given by the decomposition coefficients aik:
where p is an integer satisfying the congruence relation 2p=1 mod (2r−1), for example p=2r-1.
It can be shown that the following relations are satisfied for even lines and odd lines respectively:
a
−2ip
=a
−i (13-1)
a
−(2i+1)p
=a
−p-i (13-2)
The even lines in the Tundecim1/2 matrix are obtained directly from (12) and (13-1). For odd lines, the remainder of the polynomial division of a−p-i by the inverse polynomial g−1 is calculated, namely:
The odd line 2i+1 is then given by coefficients ci,k by virtue of (12), (13-2) and (14).
Finally, the content of the shift register aFib is obtained for the non-decimated sequence.
At step 630, the content of the shift register in the Galois representation is determined from the content of the shift register in the Fibonacci representation.
In general, if the content of the shift register in the Fibonacci representation is denoted aFib and the content of the shift register in the Galois representation is denoted aGal and if the Fibonacci representation to Galois representation state transposition matrix is denoted TGF we obtain:
a
Gal
T
GF
a
Fib (15)
in which the elements of the transposition matrix are given as follows, using the notation conventions given in
TGF
ij
GF
=g(i−j) if j≦i and TijGF=0 else (16)
Note that for the CDMA 2000 system, the order of stages in the shift register is the inverse of the order in
In other words, if I is the set of indexes defined by {7, 9, 11, 15, 16, 17, 20, 21, 23, 24, 25, 26, 32, 35, 36, 37, 39, 40, 41, 42}, g(q)=1 if qεI and g(i)=0 otherwise.
At step 640, the content of the shift register a0s=(a0s, . . . , ar-1s)T of the scrambling code generator s(k) is determined. Note that after decimation of the differential values, we have:
x
ij(k)=s(k+i+j)+s(k+i) (17)
for i=0, . . . , 3 and j=i+1, . . . , 3.
Therefore, the M-sequence xij(k) is a delayed version of the M-sequence s(k).
If the state transition matrix for the sequence generator s(k) in the Galois representation is denoted G, that is, using the conventions in
The content of the sequence register s(k+i), denoted ais, is deduced from the content of the sequence s(k), a0s, by applying the state change matrix i times, namely ais=Gia0s and therefore according to (17):
a
Gal=(Gi+j+Gi)a0S (19)
The vector aGal is calculated for the pair(s) (i, j), i=0, . . . , 3, j=i+1, . . . , 3 taken into account the differential calculation.
Consequently, the content of the offset generator generating the scrambling code is given by:
a
0
S=(Gi+j+Gi)−1aGal=(Gi+j+Gi)−1TGFTundecim1/2Tundecim1/2aFib1/4 (20)
Returning to
We recall that, in step 530, the differential values Ui,j(k)=y(4k+i+j)y(4k+i)* are obtained from the output from the matched filter. These differential values are qualified as “observed”.
Once the content a0S of the shift register of the scrambling code generator has been estimated in step 550, the sequence s(k) can be generated from this state and therefore the sequences S(4k+i+j) and S(4k+i) can also be generated.
The next step is to calculate differential values Xij (k)=S(4k+i+j)S(4k+i) corresponding to sequence s(k).
The differential values observed are then correlated with the calculated differential values, namely:
The correlation being made on a sequence of L samples each time.
The result of the correlation V is compared with a predetermined threshold λ.
If V>λ, it is concluded that the receiver is well synchronised with the scrambling code. Otherwise, the receiver is not synchronised.
Knowing the scrambling code and the spreading code of the terminal 130, the receiver of the base station 120 can estimate symbols emitted by the terminal, namely 6-bit packets encoded by the W-H sequences. It can then regenerate the contribution to the received signal output from this terminal using the scrambling code, the spreading code, the shaping filter and the pulse response of the channel. This contribution is then subtracted from the received signal in a manner known as such, to eliminate interference due to the terminal 130. If necessary, this operation may be repeated in parallel or in series to eliminate interference of several users of the CDMA 2000 macrocell system.
Number | Date | Country | Kind |
---|---|---|---|
12 52340 | Mar 2012 | FR | national |