# GNSS Spoofing Detection and Mitigation Based on Maximum Likelihood Estimation
## 5 Simulation Results  
In the previous section, the MLE-based anti-spoofing countermeasure is presented, and the theoretical performance is derived. In this section, theoretical and simulation detection probabilities and the receiver operating characteristic (ROC) curves are provided to validate the analytical results. Spoofing validation probabilities are also evaluated. GPS L1 C/A signals are employed in the simulations. The common simulation parameters are given as follows. The coherent integration time is 1 ms; the signals are sampled at a rate of 5 MHz; and the false alarm probability is set to \(10^{-6}\). In Figure 5, detection probabilities for different numbers of satellites and a fixed false alarm probability are compared. For simplicity and clarity, all of the \(C/N_{0}\) of the authentic signals are equal, and those of the spoofing signals are set to 50 dB-Hz. The code phase differences between authentic, and spoofing signals for different PRNs are all set to 600 m. Thus, the correlation peaks of authentic and spoofing signals are separate. Theoretical results are shown with different types of lines ('T'). Estimation-cancellation results are shown with black markers ('EC'). Corresponding noncoherent integration results of \(M\) satellites are also provided for comparison, shown with blue markers ('NC'). Figure 5 demonstrates that the noncoherent integration results are almost the same as the theoretical results, but the estimation-cancellation results are slightly lower than the theoretical curves due to the small power loss of the authentic signals in the cancellation procedure. It also shows that the detection performance is better when more signals are processed simultaneously. Figure 6 shows the ROC curves for different numbers of satellites. All of the \(C/N_{0}\) of the authentic signals are set to 31 dB-Hz, and the \(C/N_{0}\) of the spoofing signals and the code phase differences are the same as those in Figure 5. Similar to Figure 5, the noncoherent integration results match the theoretical results well, and the detection probabilities of the estimation-cancellation algorithm are slightly lower than the theoretical results. Figures 5 and 6 demonstrate that the detection performance can be evaluated with Equations (21) and (22) when the code phases of spoofing and authentic signals are separate. Figure 5: Detection probabilities versus \(C/N_{0}\) for different numbers of satellites and a fixed false alarm probability \(P_{fa}=10^{-6}\). \(C/N_{0}\) of all of the spoofing signals are 50 dB-Hz. ‘T’ represents the theoretical results. ‘NC’ represents corresponding noncoherent integration results. ‘EC’ represents the estimation-cancellation results. Figure 7 shows the spoofing validation probabilities for different numbers of satellites. The simulation parameters are the same as those in Figure 5. Since the \(C/N_{0}\) of the spoofing signals are very high, \(P_{V1}=1\) and \(P_{V}=P_{V2}\). Results show that the probability of spoofing validation is higher when more signals are processed. Then, we consider the situation when the peaks of the MLE cost function formed by spoofing and authentic signals are overlapped. Figure 8 shows the detection probabilities versus code phase difference between spoofing and authentic signals for different numbers of satellites when \(C/N_{0}=45\) dB-Hz. The detection probability is zero when the code phases of the spoofing and authentic signals are aligned, and it increases as the code phase difference increases. When only one signal is processed, the detection probability is one only when the code phase difference is larger than 250 m, and when 12 signals are processed simultaneously, the detection probability is one as long as the code phase difference is larger than 60 m. Figure 8 demonstrates that not only more numbers of satellites, but also larger code phase differences can improve the detection performance. This improvement  
Figure 6: ROC curves for different numbers of satellites.