Over the past year, GPS jamming has been activated in wide areas of northern Israel, aiming to disrupt the navigation capabilities of hostile aircraft. However, these disruptions also affect civilian navigation applications for residents in the north. In this project, we examined an algorithmic solution based on a modified Kalman filter with Mahalanobis distance check to address GPS jamming. The goal of the algorithm is to correct disrupted measurements in a route composed of many GPS readings and return a corrected route without the disruptions.
The algorithm was implemented in Python in a generic way, allowing it to work with a variety of models. In the project, we used real measurements recorded with the STRAVA app, which we converted into Python arrays. To evaluate the performance of the algorithm, we added noise to the measurements to simulate common GPS jamming scenarios, such as shifting the measurement location to Beirut Airport. This was done by replacing entire sequences of measurements with sequences of measurements in Beirut, with a fixed probability.
We tested for which error probabilities and for which lengths of incorrect measurement sequences the algorithm returns high-quality results that closely match the actual route without the errors. We measured the accuracy of the algorithm using several quality metrics and found that for an error probability of up to 15% and incorrect measurement sequences no longer than 28 consecutive measurements, the algorithm successfully corrects the route.
We concluded that a Kalman filter-based algorithm can effectively handle GPS jamming in many cases, although there may still be instances where the disruptions prevent the algorithm from converging on the correct route.

