Effective Efficiency Advantage Assessment of Information Filter for Conventional Kalman Filter in GNSS Scenarios

The Global Navigation Satellite System (GNSS) is a widely used positioning technique. Computational efficiency is crucial to applications such as real-time GNSS positioning and GNSS network data processing. Many researchers have made great efforts to address this problem by means such as parameter elimination or satellite selection. However, parameter estimation is rarely discussed when analyzing GNSS algorithm efficiency. In addition, most studies on Kalman filter (KF) efficiency commonly have defects, such as neglecting application-specified optimization and limiting specific hardware platforms in the conclusion. The former reduces the practicality of the solution, because applications that need such analyses on filters are often optimized, and the latter reduces its generality because of differences between platforms. In this paper, the computational cost enhancement of replacing the conventional KF with the information filter (IF) is tested considering GNSS application-oriented optimization conditions and hardware platform differences. First, optimization conditions are abstracted from GNSS data-processing scenarios. Then, a thorough analysis is carried out on the computational cost of the filters, considering hardware–platform differences. Finally, a case of GNSS dynamic differencing positioning is studied. The simulation shows that the IF is slightly faster for precise point positioning and much faster for the code-based single-difference GNSS (SDGNSS) with the constant velocity (CV) model than the conventional KF, but is not a good substitute for the conventional KF in the other algorithms mentioned. The real test shows that the IF is about 50% faster than the conventional KF handling code-based SDGNSS with the CV model. Also, the information filter is theoretically equivalent to and can produce results that are consistent with the Kalman filter. Our conclusions can be used as a reference for GNSS applications that need high process speed or real-time capability.


Introduction
The Kalman filter is a widely used data-processing tool in many areas of engineering, including positioning and navigation [1]. Due to the diversity and complexity of real engineering problems, the conventional Kalman filter (KF) is not always able to get acceptable results, which necessitates improved versions for different purposes. There are some examples: for nonlinear models, the extended Kalman filter, particle filter, and cubature filter have been proposed and applied in Global Navigation Satellite System (GNSS) precise point positioning (PPP) [2,3]; for the inaccuracy of the stochastic model and coarse error, the adaptive Kalman filter, H ∞ filter, and maximum correntropy Kalman filter can be applied in algorithms such as an integrated GNSS/inertial navigation system

Filter Optimizability
With the table above, we can analyze the filter Equations (3)- (14) to determine the optimizable arithmetic operations using different options of each factor. Since the last options of each factor correspond to unoptimized situations, they will be used as references.
Factor 1: For KF, obtaining the epoch solutions Q and x is necessary for the filter update. Thus, even if the epoch solutions are not needed, they will still be obtained, and no calculation can be simplified. For IF, Equation (13) can be omitted if epoch solutions are not required, which can reduce some computational cost.
Factor 2: For KF, matrices F and W are used only in Equation (4). Assume that option A is selected and color is applied to Equation (4) as in Equation (15), where red indicates quantities that vary with epochs, and green indicates quantities that are constant. Since every computational step of this equation involves variable quantities directly or indirectly, no calculation can be simplified. Assume that option B is selected. As Equation (4) does not involve an inversion of F, the computational cost will remain unchanged. For IF, matrices F and W are used in Equations (8) and (9). Assume that option A is selected and color is applied to Equations (8) and (9) as Equations (16) and (17). Here, F −1 W and F −1 can be calculated before the filter starts, and the computational cost of a single filter update procedure can be reduced. Assume that option B is selected. The inversion of F will become easy and fast when F is diagonal, which means less computational cost: Factor 3: For KF, matrices B and R are used in Equations (5)- (7). Assume that option A is selected and color is applied to Equations (5)-(7) as in Equations (18)- (20). Since every computational step of these equations involves variable quantities directly or indirectly, no calculation can be simplified. Assume that option B is selected. As these three equations do not involve an inversion of R, the computational cost will remain unchanged. For IF, matrices B and R are used in Equations (11) and (12). Assume that option A is selected and color is applied to Equations (11) and (12) as in Equations (21) and (22). Here, the calculation of B T R −1 B in Equation (21) and B T R −1 in Equation (22) can be done beforehand and removed from the filter update of each epoch. Assume that option B is selected. The inversion of R will become easy and fast when R is diagonal, which means less computational cost: From the discussion above, we can see that, due to its computational properties, the KF happens to gain no computational cost benefit from different factor options. For each factor of a given algorithm, when the factor option A (for factors 1, 2, and 3) or B (for factors 2 and 3) is met, some computation in the filter update procedures of IF can be omitted or simplified. These optimizations of IF are summarized in Table 2.  (11) and (12) gets easier and faster.

C None
Please note that the options of different factors are independent. For example, the options of factor 2 involve matrices F and W, and the options of the other two factors do not involve these two matrices. This makes the analysis easier, because the computational cost of every combination of these factor options can be expressed by the same group of basic computational cost functions. Also, for the convenience of description, the factor option combines with options a 1 , a 2 , and a 3 for factors 1, 2, and 3, respectively, where a i ∈ {A, B, C} will be called factor combination a 1 a 2 a 3 .

Computational Cost of Polynomial Formulation
The computational cost of the filters is analyzed in a very straightforward way: The filter update procedures consist of matrix operations, which are addition (including subtraction), multiplication, and the inversion of specific magnitudes. The matrix operations consist of scalar operations, which are addition (including subtraction), multiplication, and division. In this section, the computational complexities of the matrix operations are first expressed in the form of scalar operation number polynomials; then, equations to assemble polynomials for given factor combinations from a group of basic polynomials are put forward; finally, this group of basic polynomials is given. Table 3 shows the polynomials that represent the computational cost of matrix operations. Please note that two matrix inversion algorithms are included. The polynomials of addition and multiplication can be obtained easily from the definition of matrix operations. The polynomials of LU and LDLT decompositions can be obtained from their computational implementations, which can be found in Sauer's book and Sun's article [10,26]. LU decomposition calculates the lower triangular matrix L and upper triangular matrix U for a given matrix A in which A = LU; and LDLT decomposition calculates the lower triangular matrix L and diagonal matrix D for a given matrix A in which A = LDL T . Table 3. Scalar operation number polynomials of matrix operations.

Addition
Multiplication Division P typ,ope,a 1 ,a 2 ,a 3 (n, t) is used to refer to the polynomial of the filter type typ and scalar operation ope, with option combination a 1 a 2 a 3 of Table 2, where typ ∈ {KF, IF}; ope ∈ {A, M, D} (A for addition, M for multiplication, and D for division); a 1 ∈ {A, B}, a 2 ∈ {A, B, C}, a 3 ∈ {A, B, C}; n is the observation number; and t is the dimension of the system state. The values and compositions of n and t for general GNSS algorithms are discussed in Section 5.4.
Since different factor options have no effect on the computational cost of KF, we have: P KF,ope,a 1,i ,a 2,i ,a 3,i (n, t) = P KF,ope,a 1, j ,a 2, j ,a 3, j (n, t) for two arbitrary factor combinations, a 1,i a 2,i a 3,i and a 1, j a 2, j a 3, j . So, one polynomial is enough for the KF. For the IF, due to the independencies between options of different factors, Equation (24) is used to obtain the polynomial of arbitrary factor combinations a 1 a 2 a 3 , where P IF,ope,i,a i (n, t) is the polynomial representing the additional scalar operation number of option a i relative to option A of filter factor i. P IF,ope,a 1 ,a 2 ,a 3 (n, t) = P IF,ope,A,A,A (n, t) With Tables 2 and 3, we can assemble every part on the right-hand side of Equation (24) by recording matrix operations and accumulating their polynomials. Please note that F −1 , where F is asymmetrical, uses LU decomposition, and other matrix inversions use LDLT decomposition. The inversion on the diagonal matrix is done by obtaining reciprocals of diagonal entries. These polynomials are summarized in Tables 4-6.

Theoretical Analyses
In this section, the test of scalar operation time cost conducted on multiple hardware platforms is discussed first to gain insight into the differences between platforms; then, the computational cost difference between KF and IF is analyzed, considering different factor combinations, observation numbers, and parameter numbers. Then, another test is carried out to validate our analysis on various platforms; and finally, another comparison of the two filters is carried out from the perspective of GNSS algorithms.

Test of Scalar Operation Time Cost
To measure the time cost of an individual scalar operation, a C++ program is designed. This program can do a single arithmetic operation 2 × 10 9 times and calculate the duration. This pseudo-code has several features to ensure its effectiveness: (1) it operates only three variables when measuring time cost, which can reduce memory access; (2) it performs the same set of operations (addition, multiplication, division, and empty loop) 10 times to smooth the results; and (3) by introducing a test on an empty loop, the code takes irrelevant operations into account, such as loop jump and system time query.
Due to the complexity and variety of hardware platforms, the time cost test results from different platforms are not always consistent with each other. This greatly limits the study of computational efficiency. To determine the diversity, a group of various X64 hardware platforms were selected to run the test. Their basic information and test results are shown in Table 7. Table 7. Tests of scalar operation time cost with different hardware platforms. CPU, central processing unit; OS, operating system.
To measure the time cost of an individual scalar operation, a C++ program is designed. This program can do a single arithmetic operation × 9 2 10 times and calculate the duration. This pseudo-code has several features to ensure its effectiveness: (1) it operates only three variables when measuring time cost, which can reduce memory access; (2) it performs the same set of operations (addition, multiplication, division, and empty loop) 10 times to smooth the results; and (3) by introducing a test on an empty loop, the code takes irrelevant operations into account, such as loop jump and system time query.
Due to the complexity and variety of hardware platforms, the time cost test results from different platforms are not always consistent with each other. This greatly limits the study of computational efficiency. To determine the diversity, a group of various X64 hardware platforms were selected to run the test. Their basic information and test results are shown in Table 7.  = dtD-dtEmpty dtA-dtEmpty b (26) and the ratios are plotted in Figure 1. In Figure 1, the x and y axes are a and b. The circles with numbers correspond to the test results in Error! Reference source not found.. The ranges of a and b are approximately     1,2.2 and     40,100 , respectively. Thus, a reference ratio point 1 : 1.6 : 70 is selected by minimizing the maximum differences with the circles on a or b. The triangle represents this reference ratio point, and the assessment is discussed in the next subsection. It shows that jump and system time query.
Due to the complexity and variety of hardware platforms, the time cost test results from different platforms are not always consistent with each other. This greatly limits the study of computational efficiency. To determine the diversity, a group of various X64 hardware platforms were selected to run the test. Their basic information and test results are shown in Table 7.  : industrial tablet.  (26) and the ratios are plotted in Figure 1. In Figure 1, the x and y axes are a and b. The circles with numbers correspond to the test results in Table 7. The ranges of a and b are approximately [1, 2.2] and [40, 100], respectively. Thus, a reference ratio point 1 : 1.6 : 70 is selected by minimizing the maximum differences with the circles on a or b. The triangle represents this reference ratio point, and the assessment is discussed in the next subsection. It shows that multiplication consumes about one to two times more time than addition, and division consumes about 40-100 times more time than addition.

Time Cost Analysis
Using the selected ratio set = 0 0 1: : to assemble linear combinations of the polynomials from Error! Reference source not found. through Error! Reference source not found., computational cost polynomials for each factor combination and both filters are generated, and the ratio IF KF t t for parameter number and observation number ranging from 1 to 1000 is calculated.

Time Cost Analysis
Using the selected ratio set 1 : a 0 : b 0 = 1 : 1.6 : 70 to assemble linear combinations of the polynomials from Table 4 through Table 6, computational cost polynomials for each factor combination and both filters are generated, and the ratio t IF /t KF for parameter number and observation number ranging from 1 to 1000 is calculated. The results are plotted in Figure 2. Please note that both the x and y axes and the z axis (color) are in log10 scale. Arranging color in a linear scale compresses the ratios when the IF is faster than the KF into the range of [0,1], but a log10 scale can solve this problem.

Time Cost Analysis
Using the selected ratio set = 0 0 1: : 1: 1.6 : 70 a b to assemble linear combinations of the polynomials from Error! Reference source not found. through Error! Reference source not found., computational cost polynomials for each factor combination and both filters are generated, and the ratio IF KF t t for parameter number and observation number ranging from 1 to 1000 is calculated.
The results are plotted in Figure 2. Please note that both the x and y axes and the z axis (color) are in log10 scale. Arranging color in a linear scale compresses the ratios when the IF is faster than the KF into the range of [0,1], but a log10 scale can solve this problem. From the plot, we can make the following conclusions: 1. From all 18 panels, we can see that the properties of the observational model affect the relative computational efficiency performance most obviously when > n t is satisfied, but the impacts of different types of dynamic models or whether epoch solutions are required are not very distinguishable. This can be explained by the following. (a) When > n t holds, R is larger than M and F, and its inversion dominates the overall computational cost. (b) When < n t holds, although the complexities of −1 F and −1 I depend on the corresponding filter characteristics and seem to influence the computational cost, the inversion in the computation of M, which uses inefficient LU decomposition and has invariant complexity to filter characteristics, dominates the overall computational cost and suppresses the impact of the dynamic model and the requirement of epoch solutions.
2. By comparing the panels of 3 : A and 3 : B with the panels of 3 : C, we see that when the observational model is fixed or when R is diagonal, the IF shows much less time cost than the KF when > n t . Since the time cost differences are so large in such a situation, replacing the KF with  From the plot, we can make the following conclusions:

1.
From all 18 panels, we can see that the properties of the observational model affect the relative computational efficiency performance most obviously when n > t is satisfied, but the impacts of different types of dynamic models or whether epoch solutions are required are not very distinguishable. This can be explained by the following. (a) When n > t holds, R is larger than M and F, and its inversion dominates the overall computational cost. (b) When n < t holds, although the complexities of F −1 and I −1 depend on the corresponding filter characteristics and seem to influence the computational cost, the inversion in the computation of M, which uses inefficient LU decomposition and has invariant complexity to filter characteristics, dominates the overall computational cost and suppresses the impact of the dynamic model and the requirement of epoch solutions.

2.
By comparing the panels of 3:A and 3:B with the panels of 3:C, we see that when the observational model is fixed or when R is diagonal, the IF shows much less time cost than the KF when n > t.
Since the time cost differences are so large in such a situation, replacing the KF with the IF can reduce the time duration of the filter update to be almost negligible, but when n < t is satisfied, there is no big difference when using both filters.

3.
From the panels of 3:C, we see that, for algorithms with a changeable, nondiagonal matrix R, the IF has no computational efficiency advantage, but it will not be obviously slower than the KF, either. 4.
The decorrelation process in some studies, which is needed only when option C of factor 3 is satisfied, generally can be achieved by an n × n LDLT decomposition on matrix R, and enables option C of factor 3 to be handled as option B [16,18]. However, since the major computational advantage of option B compared with C is the omission of the n × n LDLT decomposition on R, the conclusions in those studies may not hold when R is nondiagonal. This can be proved by comparing the panels of 3:B with the panels of 3:C.

Applicability Assessment
Our analysis is still based on a given platform assumption that the time-cost ratio between addition, multiplication, and division is 1 : 1.6 : 70; thus, it is important to determine the maximum error dratio of replacing a real value from hardware platforms with the given result. In this subsection, the assessment is carried out by (1) giving a scalar operation time-cost ratio set at 1 : a 0 : b 0 = 1 : 1.6 : 70; (2) giving another ratio set 1 : a : b; (3) for 1 ≤ t ≤ 10000, 1 ≤ n ≤ 10000, and all 18 factor combinations, searching for the largest relative error (dratio) as Equations (27)-(29); and (4) plotting the largest error as a function of a and b. Figure 3 shows the result. dratio = log 10 (ratio(a 0 , b 0 )) − log 10 (ratio(a, b)) log 10 (ratio(a, b)) t typ (x, y, z) = xP typ,A,a 1 ,a 2 ,a 3 (n, t) + yP typ,M,a 1 ,a 2 ,a 3 (n, t) + zP typ,D,a 1 ,a 2 ,a 3 (n, t) satisfied, there is no big difference when using both filters. 3. From the panels of 3 : C, we see that, for algorithms with a changeable, nondiagonal matrix R, the IF has no computational efficiency advantage, but it will not be obviously slower than the KF, either. 4. The decorrelation process in some studies, which is needed only when option C of factor 3 is satisfied, generally can be achieved by an × n n LDLT decomposition on matrix R, and enables option C of factor 3 to be handled as option B [16,18]. However, since the major computational advantage of option B compared with C is the omission of the × n n LDLT decomposition on R, the conclusions in those studies may not hold when R is nondiagonal. This can be proved by comparing the panels of 3 : B with the panels of 3 : C.

Applicability Assessment
Our analysis is still based on a given platform assumption that the time-cost ratio between addition, multiplication, and division is 1 : 1.6 : 70 ; thus, it is important to determine the maximum error dratio of replacing a real value from hardware platforms with the given result. In this subsection, the assessment is carried out by (1)   , with maximum relative errors less than around 10%. Since efficiency analyses are often biased by multiple factors that are hard to control and quantify, such as thermal  Figure 3 shows that the ratio sets of all the platforms we tested previously can be replaced with 1 : a 0 : b 0 = 1 : 1.6 : 70, with maximum relative errors less than around 10%. Since efficiency analyses are often biased by multiple factors that are hard to control and quantify, such as thermal dissipation, and the results differ from time to time, such a relative error upper bound is acceptable and will not affect the overall conclusions.

Time-Cost Ratio Prediction on General GNSS Positioning and Navigation Algorithms
To optimize the computational complexity of general GNSS positioning and navigation algorithms, we can analyze the result from the last subsection to determine which is the fastest filter for a given algorithm. Table 8 shows the compositions and numbers of parameters and observations in GNSS algorithms, wherLU e s stands for satellite number. Table 9 shows the number of parameters, number of observations, and factor combination of each considered GNSS algorithm, where the dynamic feature of the position parameter is achieved by setting the proper process noise. GNSS systems in use are the Global Positioning System (GPS), BeiDou Navigation Satellite System (BDS), Galileo, and Global'naya Navigatsionnaya Sputnikovaya Sistema (GLONASS), and dual-frequency observations are used in all algorithms. Figure 4 demonstrates the variations of computational cost ratio to number of satellites, ranging from 3 to 45.   Table 9. Number of parameters, number of observations, and factor combination of GNSS algorithms. CV: constant velocity.

Case Study
To verify the consistency between the analyses so far and filter performance in real data-processing scenarios, a case study based on the GNSS pseudo-range dynamic positioning algorithm with the constant velocity (CV) model is conducted. Generally, undifferenced and double-differenced (DD) algorithms are used in applications more than single-differenced (SD) algorithms. Compared with the SD model, the DD model has fewer observations and parameters, and thus is more computationally efficient using conventional KF; also, the DD model is important for integer ambiguity resolution. Our test will emphasize the correlation between DD observations, and show that SD pseudo-range positioning, which uses uncorrelated observations, is much more efficient when using the IF. Aside from the SD model, this section also involves the CV model and Doppler observations. With proper process noise, dynamic models such as CV and CA will at least not degrade the results of dynamic positioning, and the closer the real dynamic characteristics to the given model, the better the solution. Since the CV model introduces velocity parameters into the filter, information about velocity is required to make the model really effective, and Doppler observations exactly suit the need. So, the test uses Doppler observations along with pseudo-range observations. In this section, the GNSS single-differenced/double-differenced dynamic positioning algorithm with the CV model is briefly introduced; then, the details of the test are provided, and finally, the test result is studied.

GNSS Differencing Positioning Algorithm Using Pseudo-Range and Doppler Observations
The linearized observation equations of GNSS pseudo-range and Doppler observations are: where ρ is pseudo-range observations; D is Doppler observations; v is observation error; [x r1 , y r1 , z r1 ] and [x s1 , y s1 , z s1 ] are the positions of receiver r1 and satellite s1, respectively; .
x s1 , . y s1 , . z s1 are the velocity of receiver r1 and satellite s1, respectively; R r1,s1 = (x r1 − x s1 ) 2 + (y r1 − y s1 ) 2 + (z r1 − z s1 ) 2 is the distance between the satellite and the receiver; is the relative velocity between the satellite and the receiver; c is light speed in a vacuum; dt r1 and dt s1 are the clock offsets of receiver r1 and satellite s1, respectively; ∆ . t r1 and ∆ . t s1 are the clock drifts of receiver r1 and satellite s1, respectively; ∆other denotes all other systematic errors not appearing in the equations; and ( * ) 0 indicates the approximate value of ( * ) and also where it is linearized.
For two receivers, r1 and r2, if r2 is fixed on the ground, we have the single-differenced (SD) equations: where ∆ indicates differencing between receivers. Further, after differencing between a selected reference satellite and other satellites, we have the double-differenced (DD) equations: where ∇ indicates differencing between satellites.
Generally, for one GNSS system, two receivers, and s satellites, using only pseudo-range and Doppler observations, the SD model has 2 × s differenced observations and the DD model has 2 × (s − 1) differenced observations. The DD model seems to have a little advantage in computational cost. However, since such differencing will change matrix R, the computational cost difference between the two models using IF needs further study. Assuming s = 3, we have matrix R of the undifferenced model as Equation (33). Then matrix R of the SD and DD models is as Equations (34) and (35), respectively. It can be seen that the DD model will transform R to nondiagonal.

Test Settings
Our test used four GNSS datasets collected by two receivers. One receiver (named master) was fixed on the ground, and the other (named rover) was mounted on a van. The major information about the datasets is shown in Table 10.
The data-processing program was implemented in C++ language, with Eigen 3 as the linear algebra library [27]. The hardware platform was No. 11 in Table 7. The CV dynamic model in use was Equation (36), where t 0 is the epoch interval. The SD model corresponds to factor combination BAB, and the DD model corresponds to factor combination BAC. The filters contained six (three for position and three for velocity) or 10 (the six just mentioned, plus two for clock offsets and two for clock drifts) parameters when using the DD or SD model, respectively. Pseudo-range and Doppler observations were used. By using timing tools offered by the operating system, the running duration of each filter update cycle was collected.  Figure 9 shows the total filter update time durations.   The data-processing program was implemented in C++ language, with Eigen 3 as the linear algebra library [27]. The hardware platform was No. 11 in Table 7. The CV dynamic model in use was Equation (36), where 0 t is the epoch interval. The SD model corresponds to factor combination BAB, and the DD model corresponds to factor combination BAC. The filters contained six (three for position and three for velocity) or 10 (the six just mentioned, plus two for clock offsets and two for clock drifts) parameters when using the DD or SD model, respectively. Pseudo-range and Doppler observations were used. By using timing tools offered by the operating system, the running duration of each filter update cycle was collected.  Figure 9 shows the total filter update time durations.     From the plots above, it can be seen that: 1. From Figure 5 to Figure 9, when the SD model is used, the IF takes about only 0.375-0.5 times the time duration of the KF, but when the DD model is used, this ratio is about 1.1. The average number of satellites in each dataset ranged from 15 to 20. Using that range and the number of parameters mentioned at the beginning of this section, we can read from Figure 4 that the predicted time-cost ratio ranges from 0.3 to 0.5 for the SD model, and from 1 to 1.05 for the DD model, which has good consistency with the test result. 2. From Figure 5 to Figure 8, the plots of time duration ratios and number of satellites have some dependency. This can be seen most easily from dataset 3, which has the most concentrated satellite number and time duration ratio distributions among all four. 3. From Figure 9, for the overall time duration, the KF runs obviously faster with the DD model than with the SD model, which can be attributed to fewer parameters and observations. The IF runs much faster with the SD model than with the DD model, which is consistent with our analysis that the computational advantage of IF over KF comes mostly from the assumption that matrix R is diagonal.   From the plots above, it can be seen that: 1. From Figure 5 to Figure 9, when the SD model is used, the IF takes about only 0.375-0.5 times the time duration of the KF, but when the DD model is used, this ratio is about 1.1. The average number of satellites in each dataset ranged from 15 to 20. Using that range and the number of parameters mentioned at the beginning of this section, we can read from Figure 4 that the predicted time-cost ratio ranges from 0.3 to 0.5 for the SD model, and from 1 to 1.05 for the DD model, which has good consistency with the test result. 2. From Figure 5 to Figure 8, the plots of time duration ratios and number of satellites have some dependency. This can be seen most easily from dataset 3, which has the most concentrated satellite number and time duration ratio distributions among all four. 3. From Figure 9, for the overall time duration, the KF runs obviously faster with the DD model than with the SD model, which can be attributed to fewer parameters and observations. The IF runs much faster with the SD model than with the DD model, which is consistent with our analysis that the computational advantage of IF over KF comes mostly from the assumption that matrix R is diagonal.   From the plots above, it can be seen that: 1. From Figure 5 to Figure 9, when the SD model is used, the IF takes about only 0.375-0.5 times the time duration of the KF, but when the DD model is used, this ratio is about 1.1. The average number of satellites in each dataset ranged from 15 to 20. Using that range and the number of parameters mentioned at the beginning of this section, we can read from Figure 4 that the predicted time-cost ratio ranges from 0.3 to 0.5 for the SD model, and from 1 to 1.05 for the DD model, which has good consistency with the test result. 2. From Figure 5 to Figure 8, the plots of time duration ratios and number of satellites have some dependency. This can be seen most easily from dataset 3, which has the most concentrated satellite number and time duration ratio distributions among all four. 3. From Figure 9, for the overall time duration, the KF runs obviously faster with the DD model than with the SD model, which can be attributed to fewer parameters and observations. The IF runs much faster with the SD model than with the DD model, which is consistent with our analysis that the computational advantage of IF over KF comes mostly from the assumption that matrix R is diagonal. From the plots above, it can be seen that:

Test Results and Analysis
1.
From Figure 5 to Figure 9, when the SD model is used, the IF takes about only 0.375-0.5 times the time duration of the KF, but when the DD model is used, this ratio is about 1.1. The average number of satellites in each dataset ranged from 15 to 20. Using that range and the number of parameters mentioned at the beginning of this section, we can read from Figure 4 that the predicted time-cost ratio ranges from 0.3 to 0.5 for the SD model, and from 1 to 1.05 for the DD model, which has good consistency with the test result. 2.
From Figure 5 to Figure 8, the plots of time duration ratios and number of satellites have some dependency. This can be seen most easily from dataset 3, which has the most concentrated satellite number and time duration ratio distributions among all four. 3.
From Figure 9, for the overall time duration, the KF runs obviously faster with the DD model than with the SD model, which can be attributed to fewer parameters and observations. The IF runs much faster with the SD model than with the DD model, which is consistent with our analysis that the computational advantage of IF over KF comes mostly from the assumption that matrix R is diagonal.

Conclusions
In this paper, we studied the computational differences between KF and IF, considering computational optimization specified by characteristics of different GNSS-related positioning and navigation algorithms, and the practicality of the results on various hardware platforms.
The major contributions and conclusions of this work are as follows: 1.
Algorithm-specified optimizations of the IF were abstracted from GNSS-related positioning and navigation algorithms and tested theoretically. Among all three tested factors, the observation model was shown to impact the computational complexity of the IF the most. Also, the dynamic model and the solution requirement (whether epoch solutions are needed) were shown to influence the complexity. 2.
Performance differences between the KF and IF in specific GNSS-related scenarios were studied. The IF did not perform better than the KF for algorithms with differencing between satellites or when using IMU data, while it seems to be a good alternative to the KF with better computational efficiency for GNSS-only algorithms with independent observations, especially those with fewer parameters, e.g., code-SDGNSS.

3.
Differences between hardware platforms were studied to quantify the maximum error of applying our works on different platforms. Fifteen computers covering different CPU series from Intel and Advanced Micro Devices (AMD), operating systems of different versions of Windows and Linux, and desktop PCs, laptops, workstations, and servers were tested. The results show that the maximum error of using our calculated computational cost ratios to approximate those of other platforms is less than 10%, which guarantees the practicality of our conclusions on most X64 platforms. However, other platforms such as X86 and ARM still need further study. 4.
SD and DD GNSS algorithms with the constant velocity dynamic model were chosen as case studies to study the performance differences between the KF and IF in real data-processing scenarios. The results show that the SD-KF model is, on average, 22% slower than the DD-KF model, which is consistent with it having slightly more parameters. However, the SD-IF model not only runs much faster than the DD-IF model (an average of 49% faster) but it also runs much faster than two KF models (average 55% and 45% faster than the SD-KF and DD-KF models, respectively). Funding: This research was funded by the Natural Science Foundation of Shandong Province, grant number ZR2017MD021.

Conflicts of Interest:
The authors declare no conflict of interest.