• No results found

Position Velocity

4.3.4 Receiver signal processing

This section briefly describes the principles used in the IQ generator module shown in Figure 16.

4.3.4.1 Mono-channel model

As a first step we present the structure of a single channel composed of one DLL and one PLL. The structure used in the simulator for the DLL is presented in Figure 21. The main difference with what happens in the case of a real receiver is that in the simulator we neither simulate the complete GNSS signals at the input of the receiver, nor generate local replicas of the PRN code sequences in the receiver. In fact, the principle is to directly generate the code delays and carrier phases of:

• the incoming GNSS signals

• the local replicas

Thus, we are able to compute the code phase and carrier phase tracking error and we can derive the corresponding correlator outputs using the expressions presented in chapter 3 and reminded here below:

⎩⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎧ 𝐼𝐸(𝑘) =𝐴

2 . 𝑟(𝑘). 𝐾�𝑐�𝜀𝜏+𝐶𝑠

2 � . 𝑖𝑖𝑛𝑐�𝜋𝜀𝑓𝑇𝐼� cos�𝜀𝜑� + 𝑛𝐼𝐸(𝑘) 𝐼𝑃(𝑘) =𝐴

2 . 𝑟(𝑘). 𝐾�𝑐(𝜀𝜏). 𝑖𝑖𝑛𝑐�𝜋𝜀𝑓𝑇𝐼�. cos�𝜀𝜑� + 𝑛𝐼𝑃(𝑘) 𝐼𝐿(𝑘) =𝐴

2 . 𝑟(𝑘). 𝐾�𝑐�𝜀𝜏−𝐶𝑠

2 � . 𝑖𝑖𝑛𝑐�𝜋𝜀𝑓𝑇𝐼�. cos�𝜀𝜑� + 𝑛𝐼𝐿(𝑘) 𝑄𝐸(𝑘) =𝐴

2 . 𝑟(𝑘). 𝐾�𝑐�𝜀𝜏+𝐶𝑠

2 � . 𝑖𝑖𝑛𝑐�𝜋𝜀𝑓𝑇𝐼�. sin�𝜀𝜑� + 𝑛𝑄𝐸(𝑘) 𝑄𝑃(𝑘) =𝐴

2 . 𝑟(𝑘). 𝐾�𝑐(𝜀𝜏). 𝑖𝑖𝑛𝑐�𝜋𝜀𝑓𝑇𝐼�. sin�𝜀𝜑� + 𝑛𝑄𝑃(𝑘) 𝑄𝐿(𝑘) =𝐴

2 . 𝑟(𝑘). 𝐾�𝑐�𝜀𝜏−𝐶𝑠

2 � . 𝑖𝑖𝑛𝑐�𝜋𝜀𝑓𝑇𝐼�. sin�𝜀𝜑� + 𝑛𝑄𝐿(𝑘)

(4-58)

As we can see the correlator outputs depend on:

• the amplitude of the signal 𝐴

• the navigation data bit 𝑟(𝑘)

• the carrier phase tracking error 𝜀𝜑

• the code phase tracking error 𝜀𝜏

• the Doppler error 𝜀𝑓

• the correlation of the locally generated spreading code with the filtered incoming spreading code 𝐾�𝑐

• the chip spacing 𝐶𝑠

• and a correlated noise

Therefore we are able to build directly the correlator outputs since these different quantities are well known. We consider here that the amplitude is equal to 2 and that all data bits are equal to 1.

Figure 21: structure of the simulated DLL

4.3.4.1.1 Autocorrelation

In the simulator, depending on the type of signal tracked a sampled autocorrelation function is computed. In the current version of the software it is computed over the interval [-5chips ; +5chips]

and it is considered as null out of this interval.

The first step is to compute the ideal autocorrelation function of the considered signal. The corresponding expressions have been presented in chapter 3. Then we have considered the impact of the front-end filter. This filter aims at limiting the impact of disturbances which degrade the useful signal reception such as noise or interference. The drawback is that the useful signal spectrum is filtered as well. This effect must be taken into account and can be represented by impacting the shape of the autocorrelation function accordingly to the front-end filter. If we note ℎ(𝑡) the front-end filter impulse response and 𝐻(𝑓) its transfer function we can compute the correlation function of the incoming spreading code sequence with the locally generated code sequence 𝐾�𝑐(𝜀𝜏) [JULIEN, 2010]:

𝐾�𝑐(𝜀𝜏) = � 𝐻(𝑓)

+∞

−∞

𝐹𝑋(𝑓)𝐹𝑌(𝑓)𝑒−2𝑗𝜋𝑓𝑥𝑟𝑓

(4-59)

Where:

• 𝐹𝑋(𝑓) is the Fourier transform of the incoming spreading code sequence

• 𝐹𝑌(𝑓) is the Fourier transform of the locally generated spreading code sequence

The filtered autocorrelation function is sampled and stored. The autocorrelation value corresponding to the actual code delay estimation error 𝜀𝜏 is then obtained by a linear interpolation of this function.

Let’s denote the sampled autocorrelation function 𝐾�𝑐,𝑠(𝑖) given by:

𝐾�𝑐,𝑠(𝑖) = (𝜀𝜏𝑖)𝑖𝜖[0:𝑁]→ 𝐾�𝑐�𝜀𝜏𝑖

(4-60)

The linear interpolation of the sampled autocorrelation function is defined by

𝐾�𝑐,𝑙(𝜀𝜏) = �𝐾�𝑐,𝑠(𝑖) +𝐾�𝑐,𝑠(𝑖 + 1) − 𝐾�𝑐,𝑠(𝑖)

𝜀𝜏𝑖+1− 𝜀𝜏𝑖 . �𝜀𝜏− 𝜀𝜏𝑖+1�, 𝜀𝜏𝑖< 𝜀𝜏< 𝜀𝜏𝑖+1

0, 𝜀𝜏< 𝜀𝜏0 𝑜𝑢 𝜀𝜏 > 𝜀𝜏𝑁

(4-61)

We can make the assumption that the sampling step is small enough to consider that the true autocorrelation function can be approximated by the linear interpolation of the sampled autocorrelation function, and thus we obtain:

𝐾�𝑐(𝜀𝜏) ≈ 𝐾�𝑐,𝑙(𝜀𝜏)

Therefore, we can compute different autocorrelation values, and in particular for Early, Prompt and Late correlation values 𝐾𝐸, 𝐾𝑃, 𝐾𝐿:

𝐾𝐸 = 𝐾�𝑐�𝜀𝜏+𝐶𝑠

2 � ≅ 𝐾�𝑐,𝑙�𝜀𝜏+𝐶𝑠 2 �

-2 -1 0 1 2

We obtained the autocorrelation values for the early, late and prompt correlators.

We can observe the impact of this filtering for different modulations in the following figures. As we can see, the shape of the autocorrelation function is distorted implying a less accurate synchronization between the received signal and the local replica.

Figure 22 and 23: Impact of front-end filtering on BPSK and CBOC signals autocorrelation function

4.3.4.1.2 Correlators and discriminators

The expressions of the correlator outputs have been described several times. We can write here the final expressions of the modelled correlator outputs in presence of noise and 𝑛 multipath using equations (4-24) and (4-62):

These correlator outputs are then summed over the integration time and sent to discriminators so as to estimate the code delay tracking error as well as carrier phase tracking error. Some of the discriminators have already been presented in Chapter 3. We remind here all the discriminators available in the simulator.

DLL discriminators:

- Dot-Product (DP): 𝐷𝐷𝑃 = (𝐼𝐸− 𝐼𝐿)𝐼𝑃+ (𝑄𝐸− 𝑄𝐿)𝑄𝑃

- Early Minus Late Power (EMLP):𝐷𝐸𝑀𝐿𝑃 = �𝐼𝐸2+ 𝑄𝐸2� − �𝐼𝐿2+ 𝑄𝐿2PLL discriminators:

- Costas: 𝐷𝐶𝑜𝑠𝑣𝑎𝑠= 𝑄𝑃× 𝐼𝑃

- Atan: 𝐷𝐴𝑣𝑎𝑛= 𝑎𝑡𝑎𝑛 �𝑄𝐼𝑃

𝑃� - Atan2: 𝐷𝐴𝑣𝑎𝑛2= 𝑎𝑡𝑎𝑛2 �𝑄𝐼𝑃

𝑃

4.3.4.1.3 Loop filter and feedback computation

The outputs of the discriminators are filtered so as to build a command to the VCOs which control the locally generated replicas. We used the implementation of digital filters presented in [STEPHENS, 1995]. It is not described here.

The command is then used in the feedback computation to build a new estimate of the carrier phase and the code delay.

4.3.4.2 Multi-channel structure

The final architecture of the signal processing model is composed of two main functions:

- The tracking loops - The supervisor

The tracking loops have been presented in the previous section. In the case of the complete receiver, several couples of tracking loops (DLL+ PLL) are run at the same time, each couple tracking a different signal depending on the configuration chosen.

However, it is necessary to distribute the different tasks to the different tracking loops each task corresponding to the tracking of a particular satellite and signal of this satellite. This is the role of the supervisor. It is in charge of monitoring:

- Rise or set of satellites: so as to activate/deactivate the tracking of these satellites

- Lock status of the tracking loops: to detect loss of locks and engage if necessary a new initialization

- Elevation of satellites: so as to activate/deactivate the introduction of a measurement into the position computation according to the mask angle

This module is not further described since it is simply a software algorithm.