In the existing multi-peak acquisition and tracking anti-spoofing method, the receiver records the largest and second largest acquisition results of the same satellite and allocates channels to track the two results. To avoid an abnormal carrier-to-noise ratio and power observations in the receiver, the power of the spoofing signal is usually not significantly higher than that of the authentic signal. Thus, when the code phases of the spoofing and authentic signals are separate, or the Doppler shift of a spoofing signal differs greatly from that of an authentic signal, the receiver can simultaneously acquire and track spoofing and authentic signals, and then extract corresponding pseudorange measurements [12].

To obtain the correct positioning results, it is necessary to group the measurements. This section discusses the measurements grouping problem under the multi-peak acquisition and tracking architecture, presents a measurements grouping algorithm based on CRDSS, and introduces a CRDSS spoofing mitigation method.

### Measurements grouping problem

Current measurements grouping methods mainly use multi-antenna or mobile antenna techniques to distinguish spoofing and authentic signals under the assumption that spoofing signals come from the same emitter [13]. The methods require additional hardware or have stringent requirements for the antenna’s motion state. In addition, these methods will fail when spoofing signals come from multiple sources. Therefore, it is necessary to study new measurements grouping methods.

When a spoofing attack significantly changes the receiver clock result, all pseudorange measurements of spoofing signals will be larger or smaller than those of the authentic ones. For example, a spoofing attack that affects the time of the power management unit (PMU) in a smart grid will affect the receiver clock result but not the positioning result [14]. In this case, we can group the measurements directly according to the numerical value of the pseudorange. Larger pseudorange measurements are categorized into one group and smaller pseudorange measurements are categorized into another group. However, the above methods will fail when the spoofing signals do not significantly change the receiver clock result. Figure 1 demonstrates such a situation. It is assumed that the spoofing signals do not change the receiver clock error. The distances from satellite i to the receiver and the spoofed position are r_{Ai} and r_{Si}, respectively. It can be seen that r_{A1} > r_{S1} and r_{A2} < r_{S2}. In this case, we cannot correctly group the measurements simply based on the values of the pseudorange measurements.

### Measurements grouping based on CRDSS

This study proposes a grouping algorithm based on CRDSS. The first step is to correct the clock error of the user. Assuming that the RDSS observation of the first satellite is available, according to Eqs. (1) and (2), the user clock error estimate can be calculated as follows:

$$ \delta t_{u,est} = \frac{1}{2c}(2\rho_{1} - l_{1} ) $$

(11)

There is a certain synergistic relationship between the pseudoranges of different authentic signals. When the receiver clock is correctly estimated, the possible user location is on a sphere whose center is the satellite position (*O*_{1}) as shown in Fig. 2. When all possible positions are identified in the search range (i.e., rectangular ABCD), an arc (green line) can be obtained. As the rectangle ABCD is much smaller than the circle *O*_{2}, the arc can be approximated as a straight line. The search range can be chosen as an area centered on a coarse initial location.

When there are multiple satellites, multiple lines can be obtained in the rectangle *ABCD*. Figure 3 shows simulation results using the actual ephemeris of BeiDou on the 100th day of 2018. There are spoofing and authentic signals in the simulation. The biases of the falsified position and clock are 300 m and 10 ns, respectively. The bias in z-axis is set to 0, and a search is performed in the xy plane. The results are shown in Fig. 3a. Blue lines are formed by authentic signals, and the black lines are formed by spoofing ones. It can be seen that all lines corresponding to authentic signals intersect at one point.

Figure 3b shows the results when the bias in the z-axis is 100 m. The results in this case are different from that shown in Fig. 3a, and the lines do not intersect at one point. The results show that when the receiver clock is correct, lines formed by different authentic measurements intersect at one point when the z-axis bias is 0. In other words, if we find the point of intersection in the search area, then the authentic position can be determined, and all measurements passing through the point can be categorized as authentic.

In actual situations, there are noises when we acquire measurements. Hence, the authentic signals may not pass perfectly through one point. However, since the ranging error induced by the noise signals is much smaller than that induced by the spoofing signals, the spoofing signals can still be distinguished from the authentic ones.

Based on the above phenomenon, we propose the following measurements grouping and spoofing mitigation algorithm. Figure 4 shows a diagram of the algorithm.

- 1.
Select an RDSS pseudorange measurement as a reference. Without loss of generality, the number of the measurement is set to 1.

- 2.
Sort the RNSS measurements. Assume that for the first *M* satellites, two different RNSS pseudorange measurements can be extracted simultaneously for each satellite, denoted as \( \rho_{k}^{(i)} ,i = 1,2;k = 1, \ldots ,M \). For the last *N* satellites, only one RNSS pseudorange measurement can be extracted for each satellite, denoted as \( \rho_{k}^{(i)} ,i = 1;k = M + 1, \ldots ,M + N \).

- 3.
Select one RNSS observation \( \rho_{1}^{(R)} \) corresponding to the first satellite. Here, set *R *= 1. Assume that this measurement is authentic. Calculate receiver clock error \( \delta t_{u,est} \) based on Eq. (11).

- 4.
Calculate the modified RNSS range measurements based on the user’s clock estimation:

$$ \begin{aligned} r_{k}^{(i)} & = \rho_{k}^{(i)} - c\delta t_{u,est} ,\quad i = 1,2;k = 1, \ldots ,M \\ r_{k}^{(i)} & = \rho_{k}^{(i)} - c\delta t_{u,est} ,\quad i = 1;k = M + 1, \ldots ,M + N \\ \end{aligned} $$

(12)

- 5.
Select the measurements belonging to the first *M* satellites: \( r_{k}^{(i)} \), \( i = 1,2;k = 1, \ldots ,M \).

- 6.
Calculate statistic \( d_{min} \) with \( r_{k}^{(i)} \) chosen in step 5 according to the following process:

Select possible z coordinate \( z_{u} \) in the preset range, numbered \( i_{z} \).

Select possible x coordinate \( x_{u} \) in the preset range, numbered \( i_{x} \).

Calculate y coordinate using the following equation:

$$ y_{u,k}^{(i)} = y_{k} - [r_{k}^{(i)} - (x_{k} - x_{u} )^{2} - (z_{k} - z_{u} )^{2} ]^{1/2} $$

(13)

Then 2*M* points can be obtained: \( (x_{u} [i_{x} ],y_{u,k}^{(i)} [i_{x} ,i_{z} ]),i = 1,2;k = 1, \ldots ,M \).

Denote \( (x_{u} [i_{x} ],y_{u,1}^{(R)} [i_{x} ,i_{z} ]) \) as point *A*.

Calculate the distance from *A* to \( (x_{u} [i_{x} ],y_{u,k}^{(1)} [i_{x} ,i_{z} ]) \) and \( (x_{u} [i_{x} ],y_{u,k}^{(2)} [i_{x} ,i_{z} ]) \), \( k = 2, \ldots ,M \), denoted as \( d_{A,k}^{(1)} \) and \( d_{A,k}^{(2)} \), respectively. Then we can obtain \( d_{A,k}^{\text{min} } = \hbox{min} \{ d_{A,k}^{(1)} ,d_{A,k}^{(2)} \} \).

Calculate \( d_{\text{min} }^{(1)} [i_{x} ,i_{z} ] = \sum\nolimits_{k = 2}^{M} {d_{A,k}^{\text{min} } } \), which is the cost function corresponding to the RNSS measurement \( \rho_{1}^{(1)} \).

- 7.
Similarly, assume that the second RNSS measurement of satellite 1 is authentic. Set *R *= 2 in step 3 and repeat step 3 to 6, \( d_{\text{min} }^{(2)} [i_{x} ,i_{z} ] \) can be obtained.

- 8.
Calculate the final cost function: \( d_{min} [i_{x} ,i_{z} ] = \hbox{min} \{ d_{\text{min} }^{(1)} [i_{x} ,i_{z} ],d_{\text{min} }^{(2)} [i_{x} ,i_{z} ]\} \).

- 9.
Find the minimum value of the cost function, and get the corresponding \( x_{u} \) and \( z_{u} \). Then \( y_{u} \) can be calculated with Eq. (13). \( u_{est}^{c} = [x_{u} ,y_{u} ,z_{u} ] \) is rough estimate of the receiver position. The *M* measurements that are closer to \( u_{est}^{c} \) are authentic. The remaining *M* measurements are falsified.

- 10.
Deal with the left *N* measurements. Calculate \( r_{k}^{(i)} = \rho_{k}^{(i)} - c\delta t_{u,est} \), \( k = M + 1, \ldots ,M + N \) with Eq. (12), and then calculate the following statistic:

$$ b_{k} = ||r_{k}^{(i)} - ||u_{k} - u_{\text{est}}^{c} ||\;|| $$

(14)

where *u*_{k} is the *k*th satellite position. If \( b_{k} \) is smaller than a preset threshold, then \( r_{k}^{(i)} \) and the corresponding RNSS measurement are judged as authentic.

- 11.
Calculate the positioning results by using authentic measurements obtained in step 9 and 10. Spoofed positioning results can also be obtained using the remaining observations.

It should be noted that when measurement noise is considered, the lines of the authentic signals may not intersect exactly at one point, as shown in Fig. 3a. When the bias induced by spoofing signals is small, these signals may be mistakenly categorized as authentic ones. However, such spoofing signals will not significantly change the navigation solution, and spoofing signals which induce large bias can still be recognized and excluded.