# Sage-Husa Algorithm Based on Adaptive Double Forgetting Factors
## 1 Introduction
[27] proposed a novel square root decomposition method into the Sage-Husa Kalman filter algorithm to decompose the covariance matrix to assure its non-negative definiteness and introduced an adaptive scale factor to update Kalman gain and state estimation error covariance. The aforementioned studies on enhancements to the Sage-Husa algorithm have demonstrated improved filtering performance. However, few studies have conducted a comprehensive investigation into the role of the forgetting factor within the algorithm. In the traditional Sage-Husa algorithm with the forgetting factor, the value of the forgetting factor is typically selected based on experience, and usually only one is used. However, a fixed, single forgetting factor generally lacks the adaptability required to effectively respond to dynamic system conditions. [PERSON] et al. [28] proposed the double forgetting factors as an extension of the single forgetting factor method, with two distinct factors used to update the measurement noise and system state noise, respectively. However, both forgetting factors were fixed values, which limited their ability to effectively adapt to variations in system dynamics. [PERSON] et al. [29] also proposed the concept of double forgetting factors. Two forgetting factors were used to update the statistical characteristics of process and measurement noise, respectively, but how to set the values of the two forgetting factors was not offered. [PERSON] et al. [30] adopted two forgetting factors using the limited memory index weighting method and the asymptotic memory index weighting method to adapt the different levels of fast and slow changes in the measurement noise and the statistical properties of the process noise. Two forgetting factors were fixed values. In [31], an improved Sage-Husa adaptive filtering algorithm was presented that dynamically adjusted the forgetting factor, although the parameters were determined empirically. Based on the exponential function, a transformation was applied to fit the dynamic forgetting factor [32]. To enhance adaptability to dynamic changes in time-varying noise systems, a variable adaptive forgetting factor was designed based on the ratio of the sum of the innovation variance to the trace of the innovation covariance estimation matrix, which was subsequently integrated into the Sage-Husa algorithm [33]. The application of a variable forgetting factor in the Sage-Husa algorithm is relatively limited. However, the method of variable forgetting factor has been widely used in the recursive least square (RLS) algorithm. [PERSON] et al. [34] proposed a new control mechanism for the variable forgetting factor, which is basically a gradient-based method. The dynamic equation of the mean square error can be used as a basis for deriving a dynamic equation of the gradient of the mean square error, which can then be employed to control the forgetting factor. [PERSON] et al. [35] used the simulated annealing algorithm to achieve dynamic adjustment of the forgetting factor, but the computation was relatively complex. [PERSON] et al. [36] proposed the variable forgetting factor, which was dynamically adjusted by changing its weight to adapt to the system's dynamic variations. However, the specific method for selecting the weight was not clearly explained. Different correction formulas, such as arctangent or exponential models, were developed using the residuals between the model identification values and the actual values as the variable, enabling the dynamic adjustment of the forgetting factor [37; 38; 39; 40; 41]. Based on double forgetting factors, adaptive double forgetting factors are introduced into the Sage-Husa algorithm to adaptively adjust the forgetting factors. The method proposed in this paper is based on the Sage-Husa algorithm as the foundational framework. First, it ensures the positive definiteness of the measurement noise covariance matrix and the semi-positive definiteness of the system state noise covariance matrix.