# Performance Analyses of a RAIM Algorithm for Kalman Filter with GPS and NavIC Constellations
## 1 Introduction
Reference [16] designs a computationally efficient KF RAIM algorithm for GNSS receivers. It checks measurement inconsistencies in the range domain, models time correlated errors, and requires Schmidt KF (SKF) as the navigation processor. A KF integrity monitoring algorithm is proposed in [17] for robot localization. It monitors faults within a time window with innovation-based test statistics and is also robust against previous faults. In [10] a navigation system of GNSS, INS, and an odometer is developed, and tight PLs are produced with ARAIM for precise point positioning. A parallel processing strategy coupled with the efficient software design of [18] shows that real-time operations of a substantially large number of KF banks are feasible on a GPU for integrity monitoring. In [19], an FDE scheme is presented with the colored noise of KF represented as a first order autoregressive model. Fault detection tests for a real-time kinematic application show improved FDE performance and lower false alarm rates. An adaptive interactive multiple model framework is described in [12] to switch between Huber KF and RAIM for robustness and reliability. The proposed model offers better positioning performance than individual sub-models for a relative navigation system with GNSS and ultra wideband observations. Reference [20] discusses a Kalman integrated PL approach with empirically tuned parameters. It demonstrates better performance of the new approach over two other methods for an autonomous vehicle state estimation with GNSS, INS, and an odometer. A sliding window-based FDE method is proposed in [21] for integrated GNSS-INS. It is shown to improve positioning accuracy over that without fault exclusion. RAIM algorithms for advanced nonlinear filters [22] and vector receivers [23] are also described in the literature. Five of the aforementioned references discuss KF-based PL calculations. Among them, [10; 15] perform fault detection in the position domain, [16; 17] follow range domain methods, and [20] assumes that fault detection and mitigation have been executed. This paper attempts to explore range domain methods further for their relatively low architectural complexity. To this end, it extends the work in [16], which uses an SKF [24] navigation processor and carrier-smoothed pseudoranges for absolute positioning. SKF accounts for measurement errors as \"consider parameters\" without estimating them. As explained in the prior work, it allows the formation of two simultaneous fault detection tests, each with terms of a finite number of epochs. This ensures that the KF PLs do not grow with time. However, the methodology assumes a 100-second time constant for all errors, which is unrealistic, and hence, an important limitation of the work. In addition, the algorithm is validated with simulated range and range rate measurements, not generated by processing GNSS signals with a receiver. Therefore, the measurements do not properly represent the carrier smoothing of code. Fault detection performance is also not analyzed. In order to address the above shortcomings, first, realistic error models of the carrier-smoothed pseudorange measurements are integrated into KF RAIM. More precisely, the error covariance matrix for fault detection is modified to capture the temporal variations of individual errors with different time constants. Uncertainties of the model parameters are also taken into account. Performance of the modified KF RAIM is then evaluated with the simulated signals of GPS and NavIC for aircraft navigation during different phases of flight. Intermediate frequency (IF) data are post-processed by a developed GPS L1-NavIC L5 software receiver to generate carrier-smoothed code and precise range rate measurements for RAIM. Some salient features of KF RAIM are also studied to gain insights into its working principles. Performance analyses show that WLS RAIM [25] used for comparison purposes has lower PLs than the KF RAIM.