<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="2.3" xml:lang="EN">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Neurorobot.</journal-id>
<journal-title>Frontiers in Neurorobotics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Neurorobot.</abbrev-journal-title>
<issn pub-type="epub">1662-5218</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fnbot.2024.1374531</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Neuroscience</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>A novel Gaussian sum quaternion constrained cubature Kalman filter algorithm for GNSS/SINS integrated attitude determination and positioning system</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Dai</surname> <given-names>Qing</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="https://loop.frontiersin.org/people/2639846/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/funding-acquisition/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Xiao</surname> <given-names>Guo-Rui</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Zhou</surname> <given-names>Guo-Hua</given-names></name>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<uri xlink:href="https://loop.frontiersin.org/people/1584631/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Ye</surname> <given-names>Qian-Qian</given-names></name>
<xref ref-type="aff" rid="aff4"><sup>4</sup></xref>
<role content-type="https://credit.niso.org/contributor-roles/funding-acquisition/"/>
<role content-type="https://credit.niso.org/contributor-roles/visualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Han</surname> <given-names>Shao-Yong</given-names></name>
<xref ref-type="aff" rid="aff5"><sup>5</sup></xref>
<xref ref-type="aff" rid="aff6"><sup>6</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x002A;</sup></xref>
<uri xlink:href="https://loop.frontiersin.org/people/1955541/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/visualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>College of Urban Construction, Luoyang Polytechnic</institution>, <addr-line>Luoyang</addr-line>, <country>China</country></aff>
<aff id="aff2"><sup>2</sup><institution>Institute of Geospatial Information, Information Engineering University</institution>, <addr-line>Zhengzhou</addr-line>, <country>China</country></aff>
<aff id="aff3"><sup>3</sup><institution>School of Information Engineering and Technology, Changzhou Vocational Institute of Industry Technology</institution>, <addr-line>Changzhou</addr-line>, <country>China</country></aff>
<aff id="aff4"><sup>4</sup><institution>School of Data Science and Artificial Intelligence, Wenzhou University of Technology</institution>, <addr-line>Wenzhou</addr-line>, <country>China</country></aff>
<aff id="aff5"><sup>5</sup><institution>School of Mathematics and Computer Science, Tongling University</institution>, <addr-line>Tongling</addr-line>, <country>China</country></aff>
<aff id="aff6"><sup>6</sup><institution>College of Electrical Engineering, Zhejiang University</institution>, <addr-line>Hangzhou</addr-line>, <country>China</country></aff>
<author-notes>
<fn fn-type="edited-by" id="fn0001">
<p>Edited by: Alex Minetto, Polytechnic University of Turin, Italy</p>
</fn>
<fn fn-type="edited-by" id="fn0002">
<p>Reviewed by: Ning Liu, Beijing Information Science and Technology University, China</p>
<p>Soumi Dutta, Sister Nivedita University, India</p>
</fn>
<corresp id="c001">&#x002A;Correspondence: Shao-Yong Han, <email>hanshaoyong@zuaa.zju.edu.cn</email></corresp>
</author-notes>
<pub-date pub-type="epub">
<day>07</day>
<month>06</month>
<year>2024</year>
</pub-date>
<pub-date pub-type="collection">
<year>2024</year>
</pub-date>
<volume>18</volume>
<elocation-id>1374531</elocation-id>
<history>
<date date-type="received">
<day>22</day>
<month>01</month>
<year>2024</year>
</date>
<date date-type="accepted">
<day>24</day>
<month>05</month>
<year>2024</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x00A9; 2024 Dai, Xiao, Zhou, Ye and Han.</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Dai, Xiao, Zhou, Ye and Han</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>The quaternion cubature Kalman filter (QCKF) algorithm has emerged as a prominent nonlinear filter algorithm and has found extensive applications in the field of GNSS/SINS integrated attitude determination and positioning system (GNSS/SINS-IADPS) data processing for unmanned aerial vehicles (UAV). However, on one hand, the QCKF algorithm is predicated on the assumption that the random model of filter algorithm, which follows a white Gaussian noise distribution. The noise in actual GNSS/SINS-IADPS is not the white Gaussian noise but rather a ubiquitous non-Gaussian noise. On the other hand, the use of quaternions as state variables is bound by normalization constraints. When applied directly in nonlinear non-Gaussian system without considering normalization constraints, the QCKF algorithm may result in a mismatch phenomenon in the filtering random model, potentially resulting in a decline in estimation accuracy. To address this issue, we propose a novel Gaussian sum quaternion constrained cubature Kalman filter (GSQCCKF) algorithm. This algorithm refines the random model of the QCKF by approximating non-Gaussian noise with a Gaussian mixture model. Meanwhile, to account for quaternion normalization in attitude determination, a two-step projection method is employed to constrain the quaternion, which consequently enhances the filtering estimation accuracy. Simulation and experimental analyses demonstrate that the proposed GSQCCKF algorithm significantly improves accuracy and adaptability in GNSS/SINS-IADPS data processing under non-Gaussian noise conditions for Unmanned Aerial Vehicles (UAVs).</p>
</abstract>
<kwd-group>
<kwd>GNSS/SINS integrated attitude determination and positioning system</kwd>
<kwd>nonlinear non-Gaussian system</kwd>
<kwd>Gaussian mixture model (GMM)</kwd>
<kwd>Gaussian sum filter algorithm</kwd>
<kwd>quaternion cubature Kalman filter algorithm</kwd>
</kwd-group>
<counts>
<fig-count count="11"/>
<table-count count="4"/>
<equation-count count="46"/>
<ref-count count="56"/>
<page-count count="13"/>
<word-count count="10760"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="sec1">
<label>1</label>
<title>Introduction</title>
<p>Currently, Global Navigation Satellite Systems (GNSS) and Strapdown Inertial Navigation Systems (SINS) have experienced rapid development in both military and civilian fields. However, a single navigation technology, although it has its advantages in a specific environment, generally performs poorly in conventional occasions and may even fail to complete the task (<xref ref-type="bibr" rid="ref17">Groves, 2008</xref>; <xref ref-type="bibr" rid="ref30">Noureldin et al., 2013</xref>). Therefore, combining GNSS and SINS to form a GNSS/SINS integrated positioning and attitude determination system (GNSS/SINS-IADPS) can maximize their advantages and compensate for each other&#x2019;s limitations (<xref ref-type="bibr" rid="ref41">Teunissen and Montenbruck, 2017</xref>; <xref ref-type="bibr" rid="ref15">Farrell and de Haag, 2020</xref>). At present, GNSS/SINS-IADPS has become one of the key technologies in aviation, aerospace and land navigation systems, and receives more attention in military strike, civil aviation, economic construction, and scientific research in various countries (<xref ref-type="bibr" rid="ref24">Li and Chen, 2022</xref>; <xref ref-type="bibr" rid="ref5">Boguspayev et al., 2023</xref>). The foundation of GNSS/SINS-IADPS relies on attitude representation methods, which include the attitude quaternion method, Rodrigues parameters and so on (<xref ref-type="bibr" rid="ref34">Savage, 1998</xref>; <xref ref-type="bibr" rid="ref27">Markley, 2003</xref>). The attitude quaternion method, in particular, has increasingly garnered attention in the realm of GNSS/SINS-IADPS data processing due to its advantages of avoiding singularities, requiring less computational effort, offering higher accuracy, and enabling complete attitude maneuvers. Consequently, filter algorithms predicated on the attitude quaternion have become a pivotal technology for the processing of GNSS/SINS-IADPS data processing (<xref ref-type="bibr" rid="ref33">Ryzhkov, 2021</xref>; <xref ref-type="bibr" rid="ref28">Micha&#x0142; et al., 2022</xref>). However, in practical applications, the mathematical model of GNSS/SINS-IADPS is frequently nonlinear. As such, investigating quaternion-based nonlinear filter algorithms is pivotal for enhancing the efficacy of GNSS/SINS-IADPS data processing (<xref ref-type="bibr" rid="ref1">Ali and Mirza, 2010</xref>; <xref ref-type="bibr" rid="ref54">Zhu et al., 2021</xref>).</p>
<p>For a long time in the past, the quaternion extended Kalman filter (QEKF) algorithm has been an important method of quaternion based nonlinear filter algorithm, but this approximately linearized suboptimal filter algorithm has the defect of high-order truncation errors (<xref ref-type="bibr" rid="ref18">Gui and de Ruiter, 2018</xref>). To overcome the limitations of QEKF algorithm, the quaternion unscented Kalman filter (QUKF) algorithm approximates the probability density distribution of the nonlinear system through the sigma point set, avoiding the linearization errors and solving the Jacobi matrix. Although the filtering estimation performance is improved, frequent switching of quaternions and modification of Rodrigues parameters during iteration result in a large computational burden (<xref ref-type="bibr" rid="ref23">Julier et al., 2000</xref>; <xref ref-type="bibr" rid="ref8">Chang et al., 2013</xref>; <xref ref-type="bibr" rid="ref6">Challa et al., 2016</xref>). The Cubature Kalman filter (CKF) algorithm employs a set of cubature points generated by the third-order sphere-phase diameter cubature rule to approximate the probability density distribution of nonlinear system, which has a more rigorous theoretical basis and better numerical stability than the unscented Kalman Filter algorithm (<xref ref-type="bibr" rid="ref3">Arasaratnam et al., 2010</xref>; <xref ref-type="bibr" rid="ref52">Zhang et al., 2019</xref>; <xref ref-type="bibr" rid="ref9">Chang et al., 2021</xref>). By combining it with the attitude quaternion method, the obtained quaternion cubature Kalman filter (QCKF) algorithm shows the characteristics of simple implementation, good convergence, high precision, and suitability for high-dimensional systems (<xref ref-type="bibr" rid="ref16">Geng et al., 2021</xref>; <xref ref-type="bibr" rid="ref38">Swati, 2022</xref>; <xref ref-type="bibr" rid="ref42">Wang et al., 2023</xref>). Furthermore, the quaternion augmented cubature Kalman filter (QACKF) algorithm enhances the estimation accuracy of QCKF algorithm to some extent, but its computational complexity is significantly higher than that of QCKF algorithm (<xref ref-type="bibr" rid="ref47">Wang et al., 2017</xref>). For this reason, Huang et al. studied the quaternion state switching cubature Kalman filter (QSSCKF) algorithm, which ensured the filtering estimation accuracy while effectively reducing the computation amount (<xref ref-type="bibr" rid="ref20">Huang et al., 2020</xref>). However, the use of quaternions as state variables is bound by normalization constraints in practical applications. If these constraints are overlooked during data processing, the resulting accuracy of the filter and the positive quality of covariance will be compromised (<xref ref-type="bibr" rid="ref21">Huang et al., 2016</xref>; <xref ref-type="bibr" rid="ref32">Qiu and Qian, 2018</xref>). In addition, these previous studies are based on the assumption that the random model is the white Gaussian noise, and the actual process noise and measurement noise in GNSS/SINS-IADPS deviate from ideal Gaussian distribution. That is to say, GNSS/SINS-IADPS is a nonlinear non-Gaussian system. In such case, if the random model is mismatched, it may affect the accuracy of filtering estimation and even lead to accuracy divergence in severe cases (<xref ref-type="bibr" rid="ref12">Duong and Chiang, 2012</xref>; <xref ref-type="bibr" rid="ref48">Wang et al., 2020</xref>; <xref ref-type="bibr" rid="ref39">Taghizadeh and Safabakhsh, 2023</xref>). Therefore, if the QCKF algorithm can be extended to take into account both the effect of non-Gaussian noise and normalization constraints, it will show better estimation performance.</p>
<p>Researchers have proposed various adaptive filter algorithms to address the problem of non-Gaussian noise in state estimation, which are mainly divided into functional model based adaptive filter and stochastic model based adaptive filter (<xref ref-type="bibr" rid="ref29">Mohamed and Schwarz, 1999</xref>; <xref ref-type="bibr" rid="ref7">Chang, 2014</xref>; <xref ref-type="bibr" rid="ref13">Elmezayen and El-Rabbany, 2021</xref>; <xref ref-type="bibr" rid="ref22">Jiang et al., 2021</xref>; <xref ref-type="bibr" rid="ref50">Yang et al., 2021</xref>; <xref ref-type="bibr" rid="ref49">Wu et al., 2022</xref>). The Sage-Husa filter algorithm can obtain real-time statistical data on current epoch process noise and measurement noise. However, when the moving carrier generates a large disturbance, it is difficult for this kind of filter algorithm to distinguish between the model error and measurement noise, thus affecting the estimation results (<xref ref-type="bibr" rid="ref35">Song et al., 2022</xref>; <xref ref-type="bibr" rid="ref10">Chen et al., 2023</xref>). The fading filter algorithm makes the algorithm meet the optimality through a fading factor, but this method is limited to dealing with non-Gaussian process noise only (<xref ref-type="bibr" rid="ref37">Sun et al., 2022</xref>; <xref ref-type="bibr" rid="ref46">Wang et al., 2022</xref>). The robust adaptive filter algorithm can handle non-Gaussian noise in both process and measurement noise. When these two types of noise are present, the algorithm can achieve the purpose of stable state estimation results by adjusting the adaptive factor and equivalent weight matrix factor, but this method requires redundant measurement values (<xref ref-type="bibr" rid="ref11">Dong et al., 2023</xref>). Nonetheless, in the context of the aforementioned research, when dealing with non-Gaussian noise problems, the stochastic model of noise is usually covered by a Gaussian distribution with greater variance.</p>
<p>The Gaussian mixture model (GMM) offers an alternative approach to address the issue of non-Gaussian noise through its multi-mode approximation technique. After being processed by its multi-mode approximation method, it has higher accuracy compared to the traditional extended variance Gaussian distribution approximation method (<xref ref-type="bibr" rid="ref2">Alspach and Sorenson, 1972</xref>). In recent years, the filter random model has been optimized by GMM, which has gradually been recognized as a superior approach, attracting attention in target tracking, speech recognition, signal analysis, navigation integrity monitoring, and other aspects (<xref ref-type="bibr" rid="ref36">Sun et al., 2020</xref>; <xref ref-type="bibr" rid="ref56">Zickert and Yarman, 2021</xref>; <xref ref-type="bibr" rid="ref55">Zhu et al., 2022</xref>; <xref ref-type="bibr" rid="ref51">Yu et al., 2023</xref>). The literature sequentially delves into the nonlinear optimization problem associated with the Gaussian sum filter (GSF) algorithm grounded in GMM, such as the Gaussian sum extended Kalman filter (GSEKF) algorithm, Gaussian sum unscented Kalman filter (GSUKF) algorithm, Gaussian sum quadrature Kalman Filter (GSQKF) algorithm, and Gaussian sum cubature Kalman filter (GSCKF) algorithm, and these studies have to some extent optimized the integrated navigation information fusion algorithm (<xref ref-type="bibr" rid="ref43">Wang and Cheng, 2015</xref>; <xref ref-type="bibr" rid="ref31">Qian et al., 2021</xref>; <xref ref-type="bibr" rid="ref45">Wang et al., 2021</xref>; <xref ref-type="bibr" rid="ref4">Bai et al., 2022</xref>). While numerous algorithms have been put forward to optimize the random model of nonlinear filter algorithms under non-Gaussian noise conditions based on GMM, there are limited reports on research on quaternion-based algorithm in GNSS/SINS-IADPS data processing for UAVs.</p>
<p>To tackle the issue of random model mismatch under non-Gaussian noise conditions and quaternions normalization constraints affecting the QCKF algorithm, which leads to degradation in estimation accuracy during GNSS/SINS-IADPS data processing for UAVs, a novel Gaussian sum quaternion constrained cubature Kalman filter (GSQCCKF) algorithm is proposed in this paper. The algorithm combines the GMM principle with the two-step projection method and improves the QCKF algorithm. Firstly, multiple sub-filters are decomposed using GMM. Secondly, the quaternion is restricted by the two-step projection method to achieve the purpose of quaternion normalization in attitude determination. Finally, simulation and experiments in GNSS/SINS-IADPS data processing for UAVs are conducted to verify the improvement of estimation accuracy and adaptability for GSQCCKF. The outcomes demonstrate that the proposed GSQCCKF algorithm significantly mitigates the adverse effects of non-Gaussian noise on state estimation, substantially improving both accuracy and adaptability in the GNSS/SINS-IADPS data processing utilized on UAVs.</p>
</sec>
<sec id="sec2">
<label>2</label>
<title>Preliminaries and problem formulation</title>
<sec id="sec3">
<label>2.1</label>
<title>Mathematical models for GNSS/SINS-IADPS</title>
<p>We have adopted an integrated navigation system composed of single antenna GNSS and SINS, which is tightly integrated in combination. This tightly integrated GNSS/SINS-IADPS has better navigation accuracy and anti-interference performance than the individual attitude determination and positioning technology of GNSS and SINS, so it is widely used in numerous scientific fields. In the GNSS/SINS-IADPS, the QEKF algorithm is generally used to fuse GNSS and SINS navigation information. To use the QEKF algorithm, it is customary to use the linearized GNSS/SINS-IADPS mathematical model. However, when the GNSS/SINS-IADPS works in high maneuverability, it will show obvious nonlinear characteristics. At this time, if the GNSS/SINS-IADPS mathematical model is linearized, the estimation accuracy will be reduced because of the linearization error. Therefore, in order to cope with linearization errors, need to establish the nonlinear mathematical model of GNSS/SINS-IADPS. The nonlinear mathematical models consist of two components: state-space equation and measurement equation.</p>
<p>The state estimate of GNSS/SINS-IADPS at epoch <inline-formula>
<mml:math id="M1">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> is defined in <xref ref-type="disp-formula" rid="EQ1">formula (1)</xref>.</p>
<disp-formula id="EQ1">
<label>(1)</label>
<mml:math id="M2">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi>&#x03B4;</mml:mi>
<mml:mstyle mathvariant="bold">
<mml:mi>q</mml:mi>
</mml:mstyle>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>&#x03B4;</mml:mi>
<mml:mstyle mathvariant="bold">
<mml:mi>v</mml:mi>
</mml:mstyle>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>&#x03B4;</mml:mi>
<mml:mstyle mathvariant="bold">
<mml:mi>p</mml:mi>
</mml:mstyle>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>&#x03B5;</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mo>&#x2207;</mml:mo>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M3">
<mml:mrow>
<mml:mi>&#x03B4;</mml:mi>
<mml:mstyle mathvariant="bold">
<mml:mi>q</mml:mi>
</mml:mstyle>
</mml:mrow>
</mml:math>
</inline-formula> is attitude quaternion errors, <inline-formula>
<mml:math id="M4">
<mml:mrow>
<mml:mi>&#x03B4;</mml:mi>
<mml:mstyle mathvariant="bold">
<mml:mi>v</mml:mi>
</mml:mstyle>
</mml:mrow>
</mml:math>
</inline-formula> is velocity errors, <inline-formula>
<mml:math id="M5">
<mml:mrow>
<mml:mi>&#x03B4;</mml:mi>
<mml:mstyle mathvariant="bold">
<mml:mi>p</mml:mi>
</mml:mstyle>
</mml:mrow>
</mml:math>
</inline-formula> is position errors, <inline-formula>
<mml:math id="M6">
<mml:mstyle mathvariant="bold">
<mml:mi>&#x03B5;</mml:mi>
</mml:mstyle>
</mml:math>
</inline-formula> is the gyroscope biases drift, <inline-formula>
<mml:math id="M7">
<mml:mo>&#x2207;</mml:mo>
</mml:math>
</inline-formula> is the accelerometer biases drift. The state-space equation of GNSS/SINS-IADPS is described as follows:</p>
<disp-formula id="EQ2">
<label>(2)</label>
<mml:math id="M8">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>g</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>w</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M9">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the state prediction, <inline-formula>
<mml:math id="M10">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mo>&#x22C5;</mml:mo>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a nonlinear function, <inline-formula>
<mml:math id="M11">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>g</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the system noise driven matrix, <inline-formula>
<mml:math id="M12">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>w</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the process noise. Assuming that <inline-formula>
<mml:math id="M13">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>w</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is characterized as white Gaussian noise, it can be represented mathematically as <inline-formula>
<mml:math id="M14">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>w</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>~</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>Q</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The measurement <inline-formula>
<mml:math id="M15">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of the measurement equation is composed of the corrected pseudo-range and pseudo-range rate, which have been adjusted for the satellite clock bias, tropospheric delay, and ionospheric delay. Then, according to the state prediction <inline-formula>
<mml:math id="M16">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> determined in <xref ref-type="disp-formula" rid="EQ2">formula (2)</xref> and measurement <inline-formula>
<mml:math id="M17">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the measurement equation of GNSS/SINS-IADPS is established:</p>
<disp-formula id="EQ3">
<label>(3)</label>
<mml:math id="M18">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>v</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M19">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mo>&#x22C5;</mml:mo>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a nonlinear measurement function; <inline-formula>
<mml:math id="M20">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the measurement noise, which is caused by receiver noise, multipath effects, and orbit prediction errors. Assuming that the measurement noise&#x2009;<inline-formula>
<mml:math id="M21">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>&#x2009;is characterized as white Gaussian noise, it can be represented mathematically as <inline-formula>
<mml:math id="M22">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>~</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>R</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula></p>
</sec>
<sec id="sec4">
<label>2.2</label>
<title>Quaternion cubature Kalman filter algorithm</title>
<p>The QCKF algorithm is a Gaussian filter algorithm that estimates the posterior distribution of the probability density function (PDF) of a nonlinear function by utilizing a set of cubature points, thereby circumventing the necessity for linearization of the nonlinear function (<xref ref-type="bibr" rid="ref16">Geng et al., 2021</xref>; <xref ref-type="bibr" rid="ref38">Swati, 2022</xref>; <xref ref-type="bibr" rid="ref42">Wang et al., 2023</xref>). The concrete implementation procedures of the QCKF algorithm are outlined below:</p>
<p>Step 1: The selection of the cubature points <inline-formula>
<mml:math id="M23">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is accomplished through the utilization of the third-order sphere-phase diameter cubature rule in formulas (<xref ref-type="disp-formula" rid="EQ4">4</xref>, <xref ref-type="disp-formula" rid="EQ5">5</xref>).</p>
<disp-formula id="EQ4">
<label>(4)</label>
<mml:math id="M24">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x03BE;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="EQ5">
<label>(5)</label>
<mml:math id="M25">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03BE;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:msqrt>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22EE;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mo>&#x22EF;</mml:mo>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22EE;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22EE;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mo>&#x22EF;</mml:mo>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22EE;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>here, the Cholesky decomposition of the matrix <inline-formula>
<mml:math id="M26">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be obtained as <inline-formula>
<mml:math id="M27">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math id="M28">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the covariance pertains to the state estimation at epoch <inline-formula>
<mml:math id="M29">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula>
<mml:math id="M30">
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22EF;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math id="M31">
<mml:mi>n</mml:mi>
</mml:math>
</inline-formula> is the dimension of the state estimation, that is, the overall quantity of cubature points is double the dimensionality of the state estimation.</p>
<p>Step 2: Prediction.</p>
<p>The propagated cubature points <inline-formula>
<mml:math id="M32">
<mml:mrow>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are estimated through the nonlinear function <inline-formula>
<mml:math id="M33">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mo>&#x22C5;</mml:mo>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, which can be expressed in <xref ref-type="disp-formula" rid="EQ6">formula (6)</xref>.</p>
<disp-formula id="EQ6">
<label>(6)</label>
<mml:math id="M34">
<mml:mrow>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>Then, the state prediction <inline-formula>
<mml:math id="M35">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> at epoch <inline-formula>
<mml:math id="M36">
<mml:mi>k</mml:mi>
</mml:math>
</inline-formula> can be computed, as illustrated in <xref ref-type="disp-formula" rid="EQ7">formula (7)</xref>.</p>
<disp-formula id="EQ7">
<label>(7)</label>
<mml:math id="M37">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>m</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The state prediction covariance <inline-formula>
<mml:math id="M38">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be derived, as depicted in <xref ref-type="disp-formula" rid="EQ8">formula (8)</xref>.</p>
<disp-formula id="EQ8">
<label>(8)</label>
<mml:math id="M39">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>m</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2217;</mml:mo>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>Q</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>Step 3: Update.</p>
<p>The cubature points&#x2009;<inline-formula>
<mml:math id="M40">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>&#x2009;can be re-estimated in <xref ref-type="disp-formula" rid="EQ9">formula (9)</xref>.</p>
<disp-formula id="EQ9">
<label>(9)</label>
<mml:math id="M41">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x03BE;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M42">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The propagated cubature points <inline-formula>
<mml:math id="M43">
<mml:mrow>
<mml:msubsup>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:msub>
<mml:mtext>&#x00A0;</mml:mtext>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be estimated by applying the nonlinear function <inline-formula>
<mml:math id="M44">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mo>&#x22C5;</mml:mo>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, which is expressed in <xref ref-type="disp-formula" rid="EQ10">formula (10)</xref>.</p>
<disp-formula id="EQ10">
<label>(10)</label>
<mml:math id="M45">
<mml:mrow>
<mml:msubsup>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:msub>
<mml:mtext>&#x00A0;</mml:mtext>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>Subsequently, the measurement prediction <inline-formula>
<mml:math id="M46">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be computed, as illustrated in <xref ref-type="disp-formula" rid="EQ11">formula (11)</xref>.</p>
<disp-formula id="EQ11">
<label>(11)</label>
<mml:math id="M47">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>m</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
<mml:msubsup>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:msub>
<mml:mtext>&#x00A0;</mml:mtext>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The covariance <inline-formula>
<mml:math id="M48">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of the measurement prediction, cross-covariance <inline-formula>
<mml:math id="M49">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of the measurement prediction, and the filter gain <inline-formula>
<mml:math id="M50">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>K</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be derived, as depicted in <xref ref-type="disp-formula" rid="EQ12">formulas (12)</xref>&#x2013;<xref ref-type="disp-formula" rid="EQ12">(14)</xref>, respectively.</p>
<disp-formula id="EQ12">
<label>(12)</label>
<mml:math id="M51">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>m</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
<mml:msubsup>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:msub>
<mml:mtext>&#x00A0;</mml:mtext>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2217;</mml:mo>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mtext>&#x00A0;</mml:mtext>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>R</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="EQ13">
<label>(13)</label>
<mml:math id="M52">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>m</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2217;</mml:mo>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mtext>&#x00A0;</mml:mtext>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="EQ14">
<label>(14)</label>
<mml:math id="M53">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>K</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</disp-formula>
<p>Subsequently, the state estimation <inline-formula>
<mml:math id="M54">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and its covariance <inline-formula>
<mml:math id="M55">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> at epoch <inline-formula>
<mml:math id="M56">
<mml:mi>k</mml:mi>
</mml:math>
</inline-formula> can be obtained, which are expressed in <xref ref-type="disp-formula" rid="EQ15">formulas (15)</xref> and <xref ref-type="disp-formula" rid="EQ16">(16)</xref>.</p>
<disp-formula id="EQ15">
<label>(15)</label>
<mml:math id="M57">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>K</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="EQ16">
<label>(16)</label>
<mml:math id="M58">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>K</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>K</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</disp-formula>
</sec>
<sec id="sec5">
<label>2.3</label>
<title>The limitation of QCKF algorithm</title>
<p>The wavelet transform method is employed to analyze the statistical properties of SINS errors, and Allan variance analysis is utilized to scrutinize the statistical characteristics of GNSS residuals (<xref ref-type="bibr" rid="ref14">El-Sheimy et al., 2008</xref>; <xref ref-type="bibr" rid="ref44">Wang et al., 2018</xref>; <xref ref-type="bibr" rid="ref53">Zhang et al., 2020</xref>). From the analysis results, it was found that SINS errors and GNSS residuals do not conform to the distribution of zero-mean white Gaussian noise. Instead, the SINS errors and GNSS residuals remnants are a mixed distribution of Gaussian noise and non-Gaussian noise (<xref ref-type="bibr" rid="ref14">El-Sheimy et al., 2008</xref>; <xref ref-type="bibr" rid="ref44">Wang et al., 2018</xref>; <xref ref-type="bibr" rid="ref53">Zhang et al., 2020</xref>). Since the QCKF algorithm is based on the white Gaussian noise hypothesis, this hypothesis may lead to suboptimal estimation results for GNSS/SINS-IADPS due to the random model mismatch inherent in the QCKF algorithm.</p>
<p>In addition, the quaternion normalization problem exists in the attitude quaternion of state estimation. Neglecting the quaternion constraint during filtering calculations may result in a decline in the estimation accuracy, potentially leading to covariance singularity.</p>
<p>Therefore, to enhance the QCKF algorithm estimation performance of the GNSS/SINS-IADPS under non-Gaussian noise environments, it is necessary to further refine the random model of QCKF algorithm and optimize its algorithm model employed in the GNSS/SINS-IADPS.</p>
</sec>
</sec>
<sec id="sec6">
<label>3</label>
<title>Gaussian sum quaternion constrained cubature Kalman filter algorithm</title>
<p>The QCKF algorithm based on the assumption of white Gaussian noise is difficult to obtain ideal performance in state estimation due to the influence of random model mismatch and the oversight of quaternion normalization. In this section, a novel GSQCCKF algorithm is proposed, which is based on the QCKF algorithm framework. The aim of this algorithm is to address the state estimation problem of QCKF algorithm used in non-Gaussian noise environment for GNSS/SINS-IADPS data processing. The steps involved in the GSQCCKF algorithm are described as follows.</p>
<sec id="sec7">
<label>3.1</label>
<title>Modeling of non-Gaussian probability density function by GMM</title>
<p>Non-Gaussian noise can be modeled as a multi-component system based on the degree of nonlinearity or the maximum eigenvalue of the covariance matrix (<xref ref-type="bibr" rid="ref26">Maebashi et al., 2008</xref>; <xref ref-type="bibr" rid="ref25">Liu et al., 2014</xref>; <xref ref-type="bibr" rid="ref31">Qian et al., 2021</xref>). The PDF of <inline-formula>
<mml:math id="M59">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="EQ1">formula (1)</xref> can be approximately expressed as follows:</p>
<disp-formula id="EQ17">
<label>(17)</label>
<mml:math id="M60">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2248;</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">;</mml:mi>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x03BC;</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">,</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mspace width="0.25em"/>
<mml:mo>,</mml:mo>
<mml:mspace width="0.25em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">	</mml:mi>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M61">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the weight of the <inline-formula>
<mml:math id="M62">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> Gaussian component, <inline-formula>
<mml:math id="M63">
<mml:mrow>
<mml:mi mathvariant="normal">N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">;</mml:mi>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x03BC;</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the <inline-formula>
<mml:math id="M64">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> Gaussian component with a mean of <inline-formula>
<mml:math id="M65">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x03BC;</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and a variance of <inline-formula>
<mml:math id="M66">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math id="M67">
<mml:mi>I</mml:mi>
</mml:math>
</inline-formula> signifies the total number of Gaussian components.</p>
<p>Correspondingly, the PDF of the process noise <inline-formula>
<mml:math id="M68">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>w</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="EQ2">formula (2)</xref> and the PDF of the measurement noise <inline-formula>
<mml:math id="M69">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>v</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="EQ3">formula (3)</xref> can be approximately expressed as follows:</p>
<disp-formula id="EQ18">
<label>(18)</label>
<mml:math id="M70">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>w</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2248;</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>J</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03B1;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>w</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mi mathvariant="normal">;</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>w</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>Q</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mspace width="0.25em"/>
<mml:mo>,</mml:mo>
<mml:mspace width="0.25em"/>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>J</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03B1;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="EQ19">
<label>(19)</label>
<mml:math id="M71">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>v</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2248;</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>L</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>v</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mi mathvariant="normal">;</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>R</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mspace width="0.25em"/>
<mml:mo>,</mml:mo>
<mml:mspace width="0.25em"/>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>L</mml:mi>
</mml:munderover>
<mml:mspace width="0.25em"/>
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M72">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03B1;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the weight of the <inline-formula>
<mml:math id="M73">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> Gaussian component, <inline-formula>
<mml:math id="M74">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>w</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mi mathvariant="normal">;</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>w</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>Q</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the <inline-formula>
<mml:math id="M75">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> Gaussian component with a mean of <inline-formula>
<mml:math id="M76">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>w</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and a variance of <inline-formula>
<mml:math id="M77">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>Q</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math id="M78">
<mml:mi>J</mml:mi>
</mml:math>
</inline-formula> represents the total number of Gaussian components; <inline-formula>
<mml:math id="M79">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the weight of the <inline-formula>
<mml:math id="M80">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> Gaussian component, <inline-formula>
<mml:math id="M81">
<mml:mrow>
<mml:mi mathvariant="normal">N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>v</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mi mathvariant="normal">;</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>R</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the <inline-formula>
<mml:math id="M82">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> Gaussian component with a mean of <inline-formula>
<mml:math id="M83">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and a variance of <inline-formula>
<mml:math id="M84">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>R</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math id="M85">
<mml:mi>L</mml:mi>
</mml:math>
</inline-formula> represents the total number of Gaussian components.</p>
</sec>
<sec id="sec8">
<label>3.2</label>
<title>Gaussian sum quaternion cubature Kalman filter algorithm</title>
<p>Following the implementation of the non-Gaussian PDF through GMM, the prediction and update on each sub-filters are carried out.</p>
<p>Step 1: Prediction.</p>
<p>The cubature points <inline-formula>
<mml:math id="M86">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are formulated utilizing the third-order sphere-phase diameter cubature rule.</p>
<disp-formula id="EQ20">
<label>(20)</label>
<mml:math id="M87">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x22C5;</mml:mo>
<mml:msub>
<mml:mi>&#x03BE;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M88">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is derived through Cholesky decomposition of <inline-formula>
<mml:math id="M89">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, which can be expressed as <inline-formula>
<mml:math id="M90">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math id="M91">
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>I</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>By propagating the cubature points <inline-formula>
<mml:math id="M92">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> through the nonlinear function <inline-formula>
<mml:math id="M93">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mo>&#x22C5;</mml:mo>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, we can obtain <inline-formula>
<mml:math id="M94">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>|</mml:mo>
</mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> The state prediction <inline-formula>
<mml:math id="M95">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is calculated as follows:</p>
<disp-formula id="EQ21">
<label>(21)</label>
<mml:math id="M96">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:msubsup>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>|</mml:mo>
</mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>w</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>Subsequently, the covariance of state prediction <inline-formula>
<mml:math id="M97">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> can be derived, as depicted in <xref ref-type="disp-formula" rid="EQ22">formula (22)</xref>.</p>
<disp-formula id="EQ22">
<label>(22)</label>
<mml:math id="M98">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:msubsup>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>|</mml:mo>
</mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msubsup>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>|</mml:mo>
</mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:msup>
<mml:mtext>&#x00A0;</mml:mtext>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">	</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mspace width="0.25em"/>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>w</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">	</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>w</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>Q</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mspace width="0.25em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M99">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denotes the weight of the cubature points.</p>
<p>Step 2: Update.</p>
<p>The cubature points are assessed:</p>
<disp-formula id="EQ23">
<label>(23)</label>
<mml:math id="M100">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>&#x03BE;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>Here,</p>
<disp-formula id="E1"><mml:math id="M101">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>S</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math></disp-formula>
<p>By propagating the cubature points <inline-formula>
<mml:math id="M102">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> through the nonlinear function <inline-formula>
<mml:math id="M103">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mo>&#x22C5;</mml:mo>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the propagated cubature points can be obtained as: <inline-formula>
<mml:math id="M104">
<mml:mrow>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>&#x2009;The measurement prediction <inline-formula>
<mml:math id="M105">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is calculated as follows:</p>
<disp-formula id="EQ24">
<label>(24)</label>
<mml:math id="M106">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The covariance matrix of measurement prediction <inline-formula>
<mml:math id="M107">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the cross-covariance <inline-formula>
<mml:math id="M108">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the filter gain <inline-formula>
<mml:math id="M109">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>K</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the state estimation <inline-formula>
<mml:math id="M110">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and its corresponding covariance <inline-formula>
<mml:math id="M111">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> can be derived, as depicted in <xref ref-type="disp-formula" rid="EQ25">formulas (25)</xref>&#x2013;<xref ref-type="disp-formula" rid="EQ29">(29)</xref>, respectively.</p>
<disp-formula id="EQ25">
<label>(25)</label>
<mml:math id="M112">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msubsup>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">	</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>k</mml:mi>
<mml:mtext>&#x00A0;</mml:mtext>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">	</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>k</mml:mi>
<mml:mtext>&#x00A0;</mml:mtext>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>R</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mspace width="0.25em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
<disp-formula id="EQ26">
<label>(26)</label>
<mml:math id="M113">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:msubsup>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>|</mml:mo>
</mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">	</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>k</mml:mi>
<mml:mtext>&#x00A0;</mml:mtext>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mspace width="0.25em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
<disp-formula id="EQ27">
<label>(27)</label>
<mml:math id="M114">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>K</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="EQ28">
<label>(28)</label>
<mml:math id="M115">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>K</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="EQ29">
<label>(29)</label>
<mml:math id="M116">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>K</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mi>K</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>Here,</p>
<disp-formula id="E2"><mml:math id="M117">
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>L</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math></disp-formula>
<p>Step 3: Global point estimate.</p>
<p>The state estimation<inline-formula>
<mml:math id="M118">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and its covariance matrix <inline-formula>
<mml:math id="M119">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are computed as</p>
<disp-formula id="EQ30">
<label>(30)</label>
<mml:math id="M120">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="EQ31">
<label>(31)</label>
<mml:math id="M121">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">	</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mspace width="0.25em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M122">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the weight of the <inline-formula>
<mml:math id="M123">
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> Gaussian component, which is calculated as <xref ref-type="disp-formula" rid="EQ32">formula (32)</xref>.</p>
<disp-formula id="EQ32">
<label>(32)</label>
<mml:math id="M124">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03B1;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>L</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03B1;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>&#x03B2;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
<p>In this regard, the PDF of the <inline-formula>
<mml:math id="M125">
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> Gaussian component is given by, and its computation can be expressed as follows:</p>
<disp-formula id="EQ33">
<label>(33)</label>
<mml:math id="M126">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x03C0;</mml:mi>
<mml:msubsup>
<mml:mi>&#x03C3;</mml:mi>
<mml:mi>g</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
<mml:mi>exp</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mtext>&#x00A0;</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C3;</mml:mi>
<mml:mi>g</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>From <xref ref-type="disp-formula" rid="EQ32">formulas (32)</xref> and <xref ref-type="disp-formula" rid="EQ33">(33)</xref>, it is evident that the weight <inline-formula>
<mml:math id="M127">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> of the Gaussian component adaptively modifies in response to the innovation <inline-formula>
<mml:math id="M128">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mstyle mathvariant="bold">
<mml:mi>z</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mtext>&#x00A0;</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>, thereby enhancing the robustness of the filter algorithm.</p>
<p>Step 4: Gaussian component reduction.</p>
<p>From <xref ref-type="disp-formula" rid="EQ20">formula (20)</xref> to <xref ref-type="disp-formula" rid="EQ30">(30)</xref>, it can be found that after step 3 the number of Gaussian components reaches <inline-formula>
<mml:math id="M129">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. If <inline-formula>
<mml:math id="M130">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mo>&#x003E;</mml:mo>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, there will be a mismatch between the number of Gaussian components at epoch k and epoch k&#x2009;&#x2212;&#x2009;1 when the recurrence operation is performed at epoch k. It can be seen that the total number of Gaussian components will increase with each iteration of filtering, which will eventually lead to an exponential increase in filtering recursion. Therefore, it is necessary to reduce the number of Gaussian components after each iteration, this ensures that the total number of Gaussian components in the state estimation remains <inline-formula>
<mml:math id="M131">
<mml:mi>I</mml:mi>
</mml:math>
</inline-formula>. Gaussian component merging generally employs a quasi-Bayesian approximation, but the threshold selection depends on experience. Here, we adopt a different approach, by arranging the weight values of the Gaussian components in descending order, the Gaussian components are then sequentially labeled as <inline-formula>
<mml:math id="M132">
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22EF;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>I</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, while retaining <inline-formula>
<mml:math id="M133">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> components, then the weight value <inline-formula>
<mml:math id="M134">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>I</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> of the <inline-formula>
<mml:math id="M135">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> Gaussian component at epoch <inline-formula>
<mml:math id="M136">
<mml:mi>k</mml:mi>
</mml:math>
</inline-formula> can be calculated:</p>
<disp-formula id="EQ34">
<label>(34)</label>
<mml:math id="M137">
<mml:mrow>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>I</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The mean of state estimation <inline-formula>
<mml:math id="M138">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>I</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and its covariance <inline-formula>
<mml:math id="M139">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>I</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> corresponding to the <inline-formula>
<mml:math id="M140">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> Gaussian component is shown in <xref ref-type="disp-formula" rid="EQ35">formulas (35)</xref> and <xref ref-type="disp-formula" rid="EQ35">(36)</xref>, respectively.</p>
<disp-formula id="EQ35">
<label>(35)</label>
<mml:math id="M141">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>I</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mrow>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mover accent="true">
<mml:mi>&#x03C9;</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="EQ36">
<label>(36)</label>
<mml:math id="M142">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>I</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x03C9;</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
<mml:mtext>&#x00A0;</mml:mtext>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>I</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mspace width="0.25em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">	</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>I</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mspace width="0.25em"/>
<mml:mspace width="0.25em"/>
<mml:mspace width="0.25em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M143">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x03C9;</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>I</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the regularization weight. Through the aforementioned procedures, <inline-formula>
<mml:math id="M144">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> Gaussian components and the <inline-formula>
<mml:math id="M145">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> Gaussian component as described in <xref ref-type="disp-formula" rid="EQ35">formulas (35)</xref> and <xref ref-type="disp-formula" rid="EQ36">(36)</xref> are employed for the filtering recursion in the subsequent epoch. It is evident that following the merging of Gaussian components, the overall number of Gaussian components within the filter algorithm remains unchanged.</p>
</sec>
<sec id="sec9">
<label>3.3</label>
<title>Two-step projection method</title>
<p>The two-step projection method (<xref ref-type="bibr" rid="ref40">Tang et al., 2012</xref>; <xref ref-type="bibr" rid="ref19">Huang, 2017</xref>) is employed herein to address quaternion constraint problem. In the initial step, the unconstrained state estimation distribution is projected onto the constrained surface so that the attitude estimation distribution complies with the quaternion constraint. However, this action may result in a reduction in the variance of attitude estimation. In the subsequent step, the constrained state estimation distribution is projected onto the constrained surface so that the mean of the attitude estimation satisfies the quaternion constraint. Simultaneously, the attitude estimation variance is compensated, to enhance the accuracy of attitude estimation while ensuring quaternion normalization. The specific processing steps are outlined as follows:</p>
<p>Step 1: the mean of constrained state estimation distribution <inline-formula>
<mml:math id="M146">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and its covariance <inline-formula>
<mml:math id="M147">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>P</mml:mi>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be computed, which are detailed below:</p>
<disp-formula id="EQ37">
<label>(37)</label>
<mml:math id="M148">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x03C7;</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="EQ38">
<label>(38)</label>
<mml:math id="M149">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>P</mml:mi>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mi>&#x03C9;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x03C7;</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x03C7;</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M150">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x03C7;</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>&#x03C6;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> <inline-formula>
<mml:math id="M151">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x03C7;</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>S</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x03BE;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> <inline-formula>
<mml:math id="M152">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>P</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>S</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>S</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math id="M153">
<mml:mrow>
<mml:mi>&#x03C6;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mo>&#x22C5;</mml:mo>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the constraint function.</p>
<p>Step 2: the ultimate state estimation <inline-formula>
<mml:math id="M154">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and its covariance <inline-formula>
<mml:math id="M155">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>P</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be calculated:</p>
<disp-formula id="EQ39">
<label>(39)</label>
<mml:math id="M156">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>&#x03C6;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="EQ40">
<label>(40)</label>
<mml:math id="M157">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>P</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>P</mml:mi>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x02DC;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
</sec>
<sec id="sec10">
<label>3.4</label>
<title>GSQCCKF algorithm structure</title>
<p>The GSQCCKF algorithm is implemented in five stages, as illustrated in <xref ref-type="fig" rid="fig1">Figure 1</xref>.</p>
<fig position="float" id="fig1">
<label>Figure 1</label>
<caption>
<p>The flow diagram of proposed GSQCCKF algorithm.</p>
</caption>
<graphic xlink:href="fnbot-18-1374531-g001.tif"/>
</fig>
<p>Stage 1: State estimation, process noise, and measurement noise are modeled by GMM, as shown in <xref ref-type="disp-formula" rid="EQ17">formulas (17)</xref>&#x2013;<xref ref-type="disp-formula" rid="EQ19">(19)</xref>.</p>
<p>Stage 2: The prediction of GSQCKF algorithm at epoch <inline-formula>
<mml:math id="M158">
<mml:mi>k</mml:mi>
</mml:math>
</inline-formula> is calculated, as shown in <xref ref-type="disp-formula" rid="EQ20">formulas (20)</xref>&#x2013;<xref ref-type="disp-formula" rid="EQ22">(22)</xref>.</p>
<p>Stage 3: The Update of GSQCKF algorithm at epoch <inline-formula>
<mml:math id="M159">
<mml:mi>k</mml:mi>
</mml:math>
</inline-formula> is calculated, as shown in <xref ref-type="disp-formula" rid="EQ23">formulas (23)</xref>&#x2013;<xref ref-type="disp-formula" rid="EQ29">(29)</xref>.</p>
<p>Stage 4: Global point estimate (<xref ref-type="disp-formula" rid="EQ30">formulas 30</xref>&#x2013;<xref ref-type="disp-formula" rid="EQ33">33</xref>) and then perform Gaussian component reduction (<xref ref-type="disp-formula" rid="EQ34">formulas 34</xref>&#x2013;<xref ref-type="disp-formula" rid="EQ36">36</xref>).</p>
<p>Stage 5: The two-step projection method is applied to deal with the quaternion normalization issue, and the output of state estimation at epoch <inline-formula>
<mml:math id="M160">
<mml:mi>k</mml:mi>
</mml:math>
</inline-formula>, as shown in <xref ref-type="disp-formula" rid="EQ39">formulas (39)</xref> and <xref ref-type="disp-formula" rid="EQ40">(40)</xref>.</p>
</sec>
</sec>
<sec id="sec11">
<label>4</label>
<title>Performance evaluation and discussion</title>
<p>In this section, the performance of the GSQCCKF algorithm was assessed, then, a comparative analysis was conducted on the performance of four different algorithms (GSQCCKF, QEKF, QCKF, and QCCKF).</p>
<sec id="sec12">
<label>4.1</label>
<title>Simulations and analysis</title>
<p>The performance of proposed GSQCCKF algorithm was evaluated by the Monte Carlo simulations, which were based on the design of a dynamic UAV equipped with a GNSS/SINS-IADPS. The flight trajectory of the UAV is depicted in <xref ref-type="fig" rid="fig2">Figure 2</xref>, which includes a variety of maneuvering states, such as climbing, level flight, turning and descending. The initial attitude of UAV was set as roll 0&#x00B0;, pitch 0&#x00B0;, and yaw 0&#x00B0;, while its initial speed was specified as 0&#x2009;m/s in East, 120&#x2009;m/s in North, and 0&#x2009;m/s in Up. The initial position of UAV was established at 110.2&#x00B0; longitude, 34.0&#x00B0; latitude, and 2000&#x2009;m altitude. Additionally, the initial attitude error of UAV was specified as roll 1 &#x201C;, pitch 1 &#x201C;, yaw 1.5 &#x201C;, while its initial velocity error was set at 0.3&#x2009;m/s in the East, 0.3&#x2009;m /s in the North, 0.3&#x2009;m/s in the Up direction, and the initial position error of UAV was defined as 10&#x2009;m longitude, 10&#x2009;m latitude, and 10&#x2009;m altitude. The SINS parameter configurations of the GNSS/SINS-IADPS are presented in <xref ref-type="table" rid="tab1">Table 1</xref>. The GNSS measurement was simulated based on the satellite constellation and epoch information on June 13, 2023. The pseudo range observation error of the GNSS receiver was <inline-formula>
<mml:math id="M161">
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mspace width="0.25em"/>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and the sampling frequency of the GNSS receiver was 1&#x2009;Hz.</p>
<fig position="float" id="fig2">
<label>Figure 2</label>
<caption>
<p>The UAV flight trajectory.</p>
</caption>
<graphic xlink:href="fnbot-18-1374531-g002.tif"/>
</fig>
<table-wrap position="float" id="tab1">
<label>Table 1</label>
<caption>
<p>Parameters of SINS.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top">Parameter</th>
<th align="center" valign="top">Value</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="middle">Constant drift of gyroscope</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M162">
<mml:mrow>
<mml:mn>0.1</mml:mn>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">o</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi mathvariant="normal">h</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle">Random walk coefficient of gyroscope</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M163">
<mml:mrow>
<mml:mn>0.01</mml:mn>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">o</mml:mi>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi mathvariant="normal">h</mml:mi>
</mml:msqrt>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle">Zero bias of accelerometer</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M164">
<mml:mrow>
<mml:mn>0.001</mml:mn>
<mml:mspace width="thickmathspace"/>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="normal">g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle">Random walk coefficient of accelerometer</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M165">
<mml:mrow>
<mml:mn>0.0001</mml:mn>
<mml:mspace width="thickmathspace"/>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">g</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:msqrt>
<mml:mi>s</mml:mi>
</mml:msqrt>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left" valign="middle">Sampling rate</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M166">
<mml:mrow>
<mml:mn>50</mml:mn>
<mml:mi mathvariant="normal"></mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">Hz</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>White Gaussian noise scenario and non-Gaussian noise scenario were simulated separately. For each scenario, 100 Monte Carlo simulations were carried out, and each simulation time was 1,500&#x2009;s. The configuration of the computing platform used in the simulation is as follows. CPU: Inter Core i7-12700, 2.9GHZ; Internal memory: DDR4 16GB; Simulation software: Matlab R2020b. The precision of each filter estimation was assessed using the root mean square error (RMSE), which is mathematically expressed in <xref ref-type="disp-formula" rid="EQ41">formula (41)</xref>.</p>
<disp-formula id="EQ41">
<label>(41)</label>
<mml:math id="M167">
<mml:mrow>
<mml:mi mathvariant="normal">RMSE</mml:mi>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>X</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M168">
<mml:mi>N</mml:mi>
</mml:math>
</inline-formula> signifies the total number of Monte Carlo simulations; <inline-formula>
<mml:math id="M169">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the reference; <inline-formula>
<mml:math id="M170">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>X</mml:mi>
<mml:mo>&#x00AF;</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> signifies the estimation.</p>
<sec id="sec13">
<label>4.1.1</label>
<title>White Gaussian noise scenario</title>
<p>In this scenario, both process noise and observation noise are simulated as white Gaussian noise, the covariance of which are defined in <xref ref-type="disp-formula" rid="EQ42">formula (42)</xref>.</p>
<disp-formula id="EQ42">
<label>(42)</label>
<mml:math id="M171">
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>Q</mml:mi>
</mml:mstyle>
<mml:mo>=</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>0.01</mml:mn>
</mml:mrow>
<mml:mo>&#x2218;</mml:mo>
</mml:msup>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi mathvariant="normal">h</mml:mi>
</mml:msqrt>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>I</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>&#x00D7;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x00D7;</mml:mo>
<mml:mn>0.0001</mml:mn>
<mml:mi>g</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:msqrt>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:msqrt>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>I</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>&#x00D7;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mn>0</mml:mn>
</mml:mstyle>
<mml:mrow>
<mml:mn>9</mml:mn>
<mml:mo>&#x00D7;</mml:mo>
<mml:mn>9</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mn>10</mml:mn>
<mml:mi mathvariant="normal">m</mml:mi>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:msqrt>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mn>5</mml:mn>
<mml:mi mathvariant="normal">m</mml:mi>
<mml:mo>/</mml:mo>
<mml:msup>
<mml:mi mathvariant="normal">s</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>/</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="E3">
<mml:math id="M172">
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mi>R</mml:mi>
</mml:mstyle>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>25</mml:mn>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>I</mml:mi>
</mml:mstyle>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>&#x00D7;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The RMSE of attitude and position results calculated by four different algorithms (QEKF, QCKF, QCCKF, and GSQCCKF) under white Gaussian noise scenario are shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>, where the epoch range ranges from 0&#x2009;s to 1500s.</p>
<fig position="float" id="fig3">
<label>Figure 3</label>
<caption>
<p>RMSEs of the attitude and position obtained by four different algorithms for the white Gaussian noise scenario. <bold>(A)</bold> Attitude. <bold>(B)</bold> Position.</p>
</caption>
<graphic xlink:href="fnbot-18-1374531-g003.tif"/>
</fig>
<p>Additionally, the average RMSEs (ARMSEs) for each algorithm are also computed and presented in <xref ref-type="fig" rid="fig4">Figure 4</xref> for ease of comparison.</p>
<fig position="float" id="fig4">
<label>Figure 4</label>
<caption>
<p>ARMSEs of the position and attitude obtained by four different algorithms for the white Gaussian noise scenario. <bold>(A)</bold> Attitude. <bold>(B)</bold> Position.</p>
</caption>
<graphic xlink:href="fnbot-18-1374531-g004.tif"/>
</fig>
<p>As is evident from <xref ref-type="fig" rid="fig3">Figures 3</xref>, <xref ref-type="fig" rid="fig4">4</xref>, QEKF, QCKF, QCCKF, and GSQCCKF, these four algorithms all demonstrate convergence in the white Gaussian noise scenario. Our analysis reveals that the QEKF algorithm exhibits the highest estimation error. This can be attributed to the fact that when the initial attitude error is present in the QEKF algorithm, the high-order truncation error within the filter leads to a reduction in estimation accuracy and filtering stability. In contrast, algorithms of QCKF, QCCKF, and GSQCCKF are all derived from the QCKF algorithm framework. The QCKF algorithm computes the state estimation and its covariance using a set of cubature points, thus enabling algorithms of QCKF, QCCKF, and GSQCCKF to mitigate the impact of nonlinear function linearization errors inherent in the QEKF algorithm on estimation accuracy.</p>
<p>In comparison to the QCKF algorithm, both the QCCKF algorithm and the GSQCCKF algorithm exhibit a marked enhancement in estimation accuracy. This is because both of them consider the quaternion constraint in the state estimation, so the filter gain calculated by these two algorithms is also constrained, which further improves the estimation accuracy of attitude and position. It is noteworthy that the computational accuracy of the QCCKF algorithm and the GSQCCKF algorithm are similar to each other. This outcome is attributable to the fact that the QCCKF algorithm is based on the assumption of white Gaussian noise, while the GSQCCKF represents an enhancement of the QCCKF, grounded in the GMM approach. In white Gaussian noise scenario, both the QCCKF algorithm and the GSQCCKF algorithm are capable of converging, resulting in similar estimation accuracies.</p>
</sec>
<sec id="sec14">
<label>4.1.2</label>
<title>Non-Gaussian noise scenario</title>
<p>In non-Gaussian noise scenario, non-Gaussian process noise is modeled and generated by the model <inline-formula>
<mml:math id="M173">
<mml:mrow>
<mml:mn>0.9</mml:mn>
<mml:mi mathvariant="normal">N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mn>0</mml:mn>
</mml:mstyle>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>Q</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.9</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mn>0</mml:mn>
</mml:mstyle>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mn>10</mml:mn>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>Q</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> while the non-Gaussian measurement noise is also modeled and generated by the model <inline-formula>
<mml:math id="M174">
<mml:mrow>
<mml:mn>0.9</mml:mn>
<mml:mi mathvariant="normal">N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mn>0</mml:mn>
</mml:mstyle>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>R</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.9</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">N</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mstyle mathvariant="bold">
<mml:mn>0</mml:mn>
</mml:mstyle>
<mml:mi mathvariant="normal">,</mml:mi>
<mml:mn>10</mml:mn>
<mml:msub>
<mml:mstyle mathvariant="bold">
<mml:mi>R</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> The RMSEs of attitude and position which result from four different algorithms (QEKF, QCKF, QCCKF, and GSQCCKF) are shown in <xref ref-type="fig" rid="fig5">Figure 5</xref> and their corresponding ARMSEs are illustrated in <xref ref-type="fig" rid="fig6">Figure 6</xref>, where the epoch range ranges from 0&#x2009;s to 1500s.</p>
<fig position="float" id="fig5">
<label>Figure 5</label>
<caption>
<p>RMSEs of the attitude and position obtained by four different algorithms for the non-Gaussian noise scenario. <bold>(A)</bold> Attitude. <bold>(B)</bold> Position.</p>
</caption>
<graphic xlink:href="fnbot-18-1374531-g005.tif"/>
</fig>
<fig position="float" id="fig6">
<label>Figure 6</label>
<caption>
<p>ARMSEs of the attitude and position obtained by four different algorithms for the non-Gaussian noise scenario. <bold>(A)</bold> Attitude. <bold>(B)</bold> Position.</p>
</caption>
<graphic xlink:href="fnbot-18-1374531-g006.tif"/>
</fig>
<p>As can be observed from <xref ref-type="fig" rid="fig5">Figures 5</xref>, <xref ref-type="fig" rid="fig6">6</xref>, the estimation errors of QEKF algorithm, QCKF algorithm, and QCCKF algorithm increase significantly in the non-Gaussian noise scenario when compared to the white Gaussian noise scenario. Taking the yaw estimation results as example, the yaw ARMSEs calculated by algorithms of QEKF, QCKF, and QCCKF increased from 0.39&#x2032;, 0.31&#x2032;, 0.29&#x2032; to 0.61&#x2032;, 0.47&#x2032;, 0.44&#x2032;, with error increase rates approximately 56.41, 52.61, and 51.72%, respectively. In contrast, the variation of the estimation error of GSQCCKF algorithm is the smallest. And the ARMSE calculated by the GSQCCKF algorithm changes from 0.28&#x2032; to 0.36&#x2032;, resulting in an error increase rate of about 28.57%. It indicates that the GSQCCKF algorithm exhibits the highest estimation accuracy in the presence of non-Gaussian noise. The reason for this phenomenon lies in the fact that the GSQCCKF algorithm enhances the filtering estimation accuracy by refining the random model through GMM, and this optimization method can make the adaptability of the algorithm more effectively to mitigate the impact of non-Gaussian noise on the GNSS/SINS-IADPS data processing.</p>
</sec>
<sec id="sec15">
<label>4.1.3</label>
<title>Computational performance</title>
<p>The computational time per epoch run, for four different algorithms (QEKF, QCKF, QCCKF, and GSQCCKF), as shown in <xref ref-type="table" rid="tab2">Table 2</xref>. In addition, the computational efficiency of them was compared in <xref ref-type="fig" rid="fig7">Figure 7</xref>.</p>
<table-wrap position="float" id="tab2">
<label>Table 2</label>
<caption>
<p>Computational time per epoch run of four different algorithms.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top" rowspan="2">Algorithm</th>
<th align="center" valign="top" colspan="2">The average time spent per epoch (ms)</th>
</tr>
<tr>
<th align="center" valign="top">White Gaussian noise scenario</th>
<th align="center" valign="top">Non-Gaussian noise scenario</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="middle">QEKF</td>
<td align="center" valign="middle">5.42</td>
<td align="center" valign="middle">5.75</td>
</tr>
<tr>
<td align="left" valign="middle">QCKF</td>
<td align="center" valign="middle">6.76</td>
<td align="center" valign="middle">7.34</td>
</tr>
<tr>
<td align="left" valign="middle">QCCKF</td>
<td align="center" valign="middle">7.35</td>
<td align="center" valign="middle">8.21</td>
</tr>
<tr>
<td align="left" valign="middle">GSQCCKF</td>
<td align="center" valign="middle">15.15</td>
<td align="center" valign="middle">16.43</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig position="float" id="fig7">
<label>Figure 7</label>
<caption>
<p>Relative computational efficiencies of four different algorithms. <bold>(A)</bold> White Gaussian noise scenario. <bold>(B)</bold> Non-Gaussian noise scenario.</p>
</caption>
<graphic xlink:href="fnbot-18-1374531-g007.tif"/>
</fig>
<p>As depicted in <xref ref-type="table" rid="tab2">Table 2</xref> and <xref ref-type="fig" rid="fig7">Figure 7</xref>, it reveals that the changes of computation time for all these four algorithms are relatively similar in white Gaussian noise scenario and non-Gaussian noise scenario. The QEKF algorithm exhibits the shortest computational time. However, the computational time of QCKF algorithm is at least 27.57% longer than that of QEKF algorithm, due to the complex and time-consuming process involved in cubature transformation calculations. Further, the computational time of the QCCKF algorithm is at least 15.19% larger than that of the QCKF algorithm owing to the calculation of the quaternion constraint. Due to the complexity of the computational process, the GSQCCKF algorithm takes the longest computational time, approximately twice that of QCCKF algorithm, as it performs distributed filtering and global point estimation at each iteration. Fortunately, the Gaussian components are trimmed and merged during the processing, preventing exponential growth in computational time (accounting for approximately 285.76% of QEKF). Furthermore, with the significant increase in computing power today, the millisecond-level operation time of GSQCCKF algorithm (16.43&#x2009;ms) can still meet the real-time data processing requirements of GNSS/SINS-IADPS. In conclusion, despite its increased computational time, the GSQCCKF algorithm remains capable of handling high-dynamic navigation for GNSS/SINS-IADPS equipped on UAVs.</p>
<p>The simulation analysis and comparison conducted in sections 4.1.1, 4.1.2, and 4.1.3 reveal that the proposed GSQCCKF algorithm can effectively refine the random model of filter algorithm and mitigate the impact of non-Gaussian noise on the estimation performance in the GNSS/SINS-IADPS under non-Gaussian noise conditions. As a result, the GSQCCKF algorithm exhibits a higher level of computational accuracy and adaptability when compared to algorithms of QEKF, QCKF, and QCCKF. Despite the increased computational time, the GSQCCKF algorithm remains suitable for real-time solution of GNSS/SINS-IADPS under dynamic navigation states.</p>
</sec>
</sec>
<sec id="sec16">
<label>4.2</label>
<title>Experiments and analysis</title>
<p>The performance of GSQCCKF algorithm was evaluated by experiments using UAV that involved a diverse range of maneuvers. The experimental data were collected continuously for a duration of 70&#x2009;min on September 15, 2023, in Zhengzhou, China (114.0&#x00B0;E, 34.3&#x00B0;N).</p>
<p>The UAV is equipped with a GNSS/SINS-IADPS, the parameters of which are detailed in <xref ref-type="table" rid="tab3">Table 3</xref>. The GNSS reference station is located on the ground, with a maximum distance of 20&#x2009;km from the UAV. The UAV is also equipped with a GNSS receiver, which processes the paired data between it and the GNSS reference station to obtain the differential GPS (DGPS) data with an accuracy of better than 0.1&#x2009;m. This DGPS data serves as a reference value for assessing the performance of different algorithms.</p>
<table-wrap position="float" id="tab3">
<label>Table 3</label>
<caption>
<p>System parameters of GNSS/SINS-IADPS.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top">Sensors</th>
<th align="left" valign="top">Parameter</th>
<th align="center" valign="top">Value</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="middle">SINS</td>
<td align="left" valign="middle">Gyroscope constant drift</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M175">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mo>&#x2218;</mml:mo>
</mml:msup>
<mml:mo>/</mml:mo>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td/>
<td align="left" valign="middle">Random walk coefficient of gyroscope</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M176">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>0.6</mml:mn>
</mml:mrow>
<mml:mo>&#x2218;</mml:mo>
</mml:msup>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi>h</mml:mi>
</mml:msqrt>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td/>
<td align="left" valign="middle">Zero deviation of angular velocity meter</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M177">
<mml:mrow>
<mml:mn>40</mml:mn>
<mml:mspace width="thickmathspace"/>
<mml:mi>&#x03BC;</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td/>
<td align="left" valign="middle">Random walk coefficient of accelerometer</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M178">
<mml:mrow>
<mml:mn>80</mml:mn>
<mml:mspace width="thickmathspace"/>
<mml:mi>&#x03BC;</mml:mi>
<mml:mi>g</mml:mi>
<mml:mo>&#x22C5;</mml:mo>
<mml:msqrt>
<mml:mi>h</mml:mi>
</mml:msqrt>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td/>
<td align="left" valign="middle">Sampling rate</td>
<td align="center" valign="middle">100/Hz</td>
</tr>
<tr>
<td align="left" valign="middle">GNSS</td>
<td align="left" valign="middle">Position measurement noise</td>
<td align="center" valign="middle">15 / m</td>
</tr>
<tr>
<td/>
<td align="left" valign="middle">Sampling rate</td>
<td align="center" valign="middle">10 / Hz</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The starting position of the UAV was 34.654&#x00B0; latitude, 109.193&#x00B0; longitude, and an altitude of 2,683 meters. The initial velocity for the eastern, northern, and up direction are 180&#x2009;m/s, 60&#x2009;m/s, and 40&#x2009;m/s, respectively. Other initial parameters are the same as the simulation. Four different algorithms (QEKF, QCKF, QCCKF, and GSQCCKF) were, respectively, used for GNSS/SINS-IADPS data processing. The test accuracy is measured by 3D positioning error, calculated in <xref ref-type="disp-formula" rid="EQ43">formula (43)</xref>.</p>
<disp-formula id="EQ43">
<label>(43)</label>
<mml:math id="M179">
<mml:mrow>
<mml:mi>&#x0394;</mml:mi>
<mml:mi>p</mml:mi>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mi>&#x0394;</mml:mi>
<mml:msup>
<mml:mi>&#x03BB;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mi>&#x0394;</mml:mi>
<mml:msup>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mi>&#x0394;</mml:mi>
<mml:msup>
<mml:mi>h</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</disp-formula>
<p>here, <inline-formula>
<mml:math id="M180">
<mml:mrow>
<mml:mi>&#x0394;</mml:mi>
<mml:mi>&#x03BB;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the positioning error in longitude; <inline-formula>
<mml:math id="M181">
<mml:mrow>
<mml:mi>&#x0394;</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the positioning error in latitude; <inline-formula>
<mml:math id="M182">
<mml:mrow>
<mml:mi>&#x0394;</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the positioning error in altitude.</p>
<p>To ascertain whether the process noise and measurement noise encountered during experiments are non-Gaussian noise, Allan variance analysis is carried out on the inertial element, the results of which are depicted in <xref ref-type="fig" rid="fig8">Figure 8</xref>. The findings indicate that the noise of the inertial element exhibited by the inertial element utilized in the experiments is not white Gaussian noise, but rather a complex noise term encompassing angle random walk, rate slope, quantization noise, and bias instability.</p>
<fig position="float" id="fig8">
<label>Figure 8</label>
<caption>
<p>Accelerometer Allan variance results.</p>
</caption>
<graphic xlink:href="fnbot-18-1374531-g008.tif"/>
</fig>
<p>The statistical properties of the pseudo-range noise of satellites with different cutoff angle are shown in <xref ref-type="table" rid="tab4">Table 4</xref> and <xref ref-type="fig" rid="fig9">Figure 9</xref>. Notably, G14 has a higher cutoff angle while G22 possesses a lower cutoff angle. As observed from <xref ref-type="table" rid="tab4">Table 4</xref> and <xref ref-type="fig" rid="fig9">Figure 9</xref>, the kurtosis value of the pseudo noise of the G22 satellite is significantly less than 3, that is, it shows negative kurtosis. Consequently, it can be deduced that the pseudo-range noise of G22 exhibits pronounced non-Gaussian characteristics.</p>
<table-wrap position="float" id="tab4">
<label>Table 4</label>
<caption>
<p>Statistical characteristics of the pseudo-range noise.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top" rowspan="2">Satellite</th>
<th align="center" valign="top" colspan="3">Pseudo-range noise</th>
</tr>
<tr>
<th align="center" valign="top">Mean value (m)</th>
<th align="center" valign="top">Variance (m)</th>
<th align="center" valign="top">Kurtosis</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="middle">G14</td>
<td align="center" valign="top">0.153</td>
<td align="center" valign="top">0.22</td>
<td align="center" valign="top">3.06</td>
</tr>
<tr>
<td align="left" valign="middle">G22</td>
<td align="center" valign="top">0.995</td>
<td align="center" valign="top">0.87</td>
<td align="center" valign="top">0.90</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig position="float" id="fig9">
<label>Figure 9</label>
<caption>
<p>Non-Gaussian characteristics of the pseudo-range noise.</p>
</caption>
<graphic xlink:href="fnbot-18-1374531-g009.tif"/>
</fig>
<p>According to <xref ref-type="fig" rid="fig8">Figure 8</xref> and <xref ref-type="table" rid="tab4">Table 4</xref> as well as <xref ref-type="fig" rid="fig9">Figure 9</xref>, the SINS errors and the pseudo-range noise of GNSS present in this experiment data are not white Gaussian noise, but rather non-Gaussian noise.</p>
<p>The 3D positioning error curves of four different algorithms (QEKF, QCKF, QCCKF, and GSQCCK) for the epoch range ranging from 100s to 1100s are illustrated in <xref ref-type="fig" rid="fig10">Figure 10</xref>. The 3D positioning ARMSEs of different algorithms based on 1,000 sets of data and 4,000 sets of data are shown in <xref ref-type="fig" rid="fig11">Figure 11</xref>. It is worth noting that the epoch ranges for the 1,000 sets of data encompass the epoch from 100&#x2009;s to 1100s, while the epoch range for the 4,000 sets of data spans from 100&#x2009;s to 4,100&#x2009;s.</p>
<fig position="float" id="fig10">
<label>Figure 10</label>
<caption>
<p>3D positioning errors of UAV for experiments.</p>
</caption>
<graphic xlink:href="fnbot-18-1374531-g010.tif"/>
</fig>
<fig position="float" id="fig11">
<label>Figure 11</label>
<caption>
<p>RMSEs of UAV 3D positioning for experiments with different datasets.</p>
</caption>
<graphic xlink:href="fnbot-18-1374531-g011.tif"/>
</fig>
<p>As depicted in <xref ref-type="fig" rid="fig10">Figures 10</xref>, <xref ref-type="fig" rid="fig11">11</xref>, the period ranges from 100&#x2009;s to 1100s reveals that the QEKF algorithm is susceptible to linearization errors, resulting in a substantial RMSE of approximately 17.01&#x2009;m. In contrast, the QCKF algorithm employs a set of cubature points to compute the mean and its covariance, thereby mitigating the linearization error associated with the nonlinear function. Consequently, the QCKF algorithm exhibits a more accurate positioning performance compared to the QEKF algorithm, with the RMSE of approximately 16.38&#x2009;m. Moreover, because the QCCKF algorithm considers the constraint condition of quaternion, the RMSE is slightly reduced compared with the QCKF algorithm, reaching 16.07&#x2009;m. Notably, the maximum variation range of the 3D positioning error curves of GSQCCKF algorithm is narrower than that of observed in algorithms of QEKF, QCKF, and QCCKF. This can be attributed to the GSQCCKF algorithm&#x2019;s use of GMM to accurately modeling the random model, resulting in the smallest RMSE of approximately 15.45&#x2009;m. Therefore, the same conclusion as the simulation can be obtained, that is, compared with the other three algorithms (QEKF, QCKF, QCCKF), the GSQCCKF algorithm can achieve the best estimation accuracy and adaptability in GNSS/SINS-IADPS data processing.</p>
<p>It can also evident from <xref ref-type="fig" rid="fig11">Figure 11</xref> that, an increase in the experiment data from 1,000 sets to 4,000 sets, the estimation accuracy of four different algorithms (QEKF, QCKF, QCCKF and GSQCCKF) is reduced (QEKF from 17.01to 17.76&#x2009;m, QCKF from 16.38 to 16.82&#x2009;m, QCCKF from 16.07 to 16.54&#x2009;m, and GSQCCKF from 15.45 to 15.63&#x2009;m). Notably, the estimation accuracy of GSQCCKF algorithm is always better than the other three filter algorithms. When the experiment data comprises 1,000 sets, the 3D positioning RMSEs of GSQCCKF algorithm are about 9.18, 5.545, and 3.70% higher than those of QEKF, QCKF and QCCKF, respectively. As the experiment data increases to 4,000 sets, the accuracy advantage of GSQCCKF algorithm becomes even more pronounced, which is about 11.01, 6.89, and 5.27% higher than those of QEKF, QCKF, and QCCKF, respectively. This shows that the GSQCCKF algorithm possesses robust processing capabilities for non-Gaussian noise and significantly enhances the GNSS/SINS-IADPS estimation accuracy. Furthermore, the GSQCCKF algorithm maintains high accuracy in long-sailing GNSS/SINS-IADPS applications.</p>
</sec>
</sec>
<sec sec-type="conclusions" id="sec17">
<label>5</label>
<title>Conclusion</title>
<p>This paper introduces a novel Gaussian sum quaternion constrained cubature Kalman filter algorithm to tackle the limitations of using QCKF algorithm in the non-Gaussian environments for GNSS/SINS-IADPS. The primary contributions of this research are summarized as follows:</p>
<list list-type="order">
<list-item>
<p>The framework of GSQCCKF algorithm is set up. Firstly, the QCKF algorithm based on attitude quaternion for nonlinear/Gaussian systems is presented, followed by an analysis of its limitations. Secondly, the idea of GMM is introduced, which employs a set of Gaussian distributions to approximate the PDF of non-Gaussian variables, including process noise, measurement noise, and state estimation. Thirdly, the combination of QCKF algorithm and GMM produces the proposed GSQCCKF algorithm used for nonlinear non-Gaussian system estimation, which essentially consists of a set of parallel QCKFs.</p>
</list-item>
<list-item>
<p>In order to address the quaternion normalization problem in attitude estimation of the proposed GSQCCKF algorithm, a two-step projection method is proposed to resolve the quaternion constraint issue. This approach further enhances the accuracy and numerical stability of GSQCCKF algorithm for GNSS/SINS-IADPS data processing.</p>
</list-item>
</list>
<p>Results of simulation and experimentation demonstrate that the proposed GSQCCKF algorithm exhibits a remarkable ability to counteract the adverse effects of non-Gaussian noise on state estimation for GNSS/SINS-IADPS, and it demonstrates significantly enhanced estimation accuracy and adaptability in comparison with algorithms of QEKF, QCKF, and QCCKF.</p>
<p>The GSQCCKF algorithm proposed in this article also has limitations. Theoretically, the GSQCCKF algorithm are unable to adjust to time-varying non-Gaussian noise. In practical terms, due to the non-stationary nature of challenging operation environments of GNSS/SINS-IADPS data processing for UAVs, the non-Gaussian noise may vary over time. The inability to effectively mitigate the impact of such time-varying non-Gaussian noise in the GSQCCKF algorithm could potentially distort the performance of GNSS/SINS-IADPS. Future research efforts should focus on discussing modeling approaches for time-varying non-Gaussian noise in GNSS/SINS-IADPS data processing for UAVs.</p>
</sec>
<sec sec-type="data-availability" id="sec18">
<title>Data availability statement</title>
<p>The data analyzed in this study is subject to the following licenses/restrictions: the data that support the findings of this study are available from the corresponding author upon reasonable request. Requests to access these datasets should be directed to QD, <email>daiqing@lypt.edu.cn</email>.</p>
</sec>
<sec sec-type="author-contributions" id="sec19">
<title>Author contributions</title>
<p>QD: Funding acquisition, Writing &#x2013; original draft, Writing &#x2013; review &#x0026; editing. G-RX: Methodology, Writing &#x2013; original draft. G-HZ: Formal analysis, Validation, Writing &#x2013; review &#x0026; editing. Q-QY: Visualization, Writing &#x2013; review &#x0026; editing. S-YH: Validation, Visualization, Writing &#x2013; original draft, Writing &#x2013; review &#x0026; editing.</p>
</sec>
</body>
<back>
<sec sec-type="funding-information" id="sec20">
<title>Funding</title>
<p>The author(s) declare that financial support was received for the research, authorship, and/or publication of this article. This research was funded by the National Natural Science Foundation of China (grant no. 42274045), the Henan Province Science and Technology Research Projects (grant no. 242102241067), the Key Research Funding Projects for Higher Education Institutions in Henan Province (grant no. 24A420003), and the Scientific Research Project of Wenzhou University of Technology (grant no. ky202208).</p>
</sec>
<sec sec-type="COI-statement" id="sec21">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="sec22">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="ref1"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ali</surname> <given-names>J.</given-names></name> <name><surname>Mirza</surname> <given-names>M. R. U. B.</given-names></name></person-group> (<year>2010</year>). <article-title>Performance comparison among some nonlinear filters for a low cost SINS/GPS integrated solution</article-title>. <source>Nonlinear Dynam.</source> <volume>61</volume>, <fpage>491</fpage>&#x2013;<lpage>502</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s11071-010-9665-y</pub-id></citation></ref>
<ref id="ref2"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Alspach</surname> <given-names>L. D.</given-names></name> <name><surname>Sorenson</surname> <given-names>W. H.</given-names></name></person-group> (<year>1972</year>). <article-title>Nonlinear Bayesian estimation using Gaussian sum approximations</article-title>. <source>IEEE Trans. Autom. Control</source> <volume>17</volume>, <fpage>439</fpage>&#x2013;<lpage>448</lpage>. doi: <pub-id pub-id-type="doi">10.1109/TAC.1972.1100034</pub-id></citation></ref>
<ref id="ref3"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Arasaratnam</surname> <given-names>I.</given-names></name> <name><surname>Haykin</surname> <given-names>S.</given-names></name> <name><surname>Hurd</surname> <given-names>R. T.</given-names></name></person-group> (<year>2010</year>). <article-title>Cubature Kalman filtering for continuous-discrete systems: theory and simulations</article-title>. <source>IEEE Trans. Signal Process.</source> <volume>58</volume>, <fpage>4977</fpage>&#x2013;<lpage>4993</lpage>. doi: <pub-id pub-id-type="doi">10.1109/TSP.2010.2056923</pub-id></citation></ref>
<ref id="ref4"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bai</surname> <given-names>J. G.</given-names></name> <name><surname>Ge</surname> <given-names>Q. B.</given-names></name> <name><surname>Li</surname> <given-names>H.</given-names></name> <name><surname>Xiao</surname> <given-names>J. M.</given-names></name> <name><surname>Wang</surname> <given-names>Y. L.</given-names></name></person-group> (<year>2022</year>). <article-title>Aircraft trajectory filtering method based on Gaussian-sum and maxi-mum Correntropy Square-root cubature Kalman filter</article-title>. <source>Cogn. Comput. Syst.</source> <volume>4</volume>, <fpage>205</fpage>&#x2013;<lpage>217</lpage>. doi: <pub-id pub-id-type="doi">10.1049/ccs2.12049</pub-id></citation></ref>
<ref id="ref5"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Boguspayev</surname> <given-names>N.</given-names></name> <name><surname>Akhmedov</surname> <given-names>D.</given-names></name> <name><surname>Raskaliyev</surname> <given-names>A.</given-names></name> <name><surname>Kim</surname> <given-names>A.</given-names></name> <name><surname>Sukhenko</surname> <given-names>A.</given-names></name></person-group> (<year>2023</year>). <article-title>A comprehensive review of GNSS/INS Integra-tion techniques for land and air vehicle applications</article-title>. <source>Appl. Sci.</source> <volume>13</volume>:<fpage>4819</fpage>. doi: <pub-id pub-id-type="doi">10.3390/app13084819</pub-id></citation></ref>
<ref id="ref6"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Challa</surname> <given-names>S. M.</given-names></name> <name><surname>Moore</surname> <given-names>G. J.</given-names></name> <name><surname>Rogers</surname> <given-names>J. D.</given-names></name></person-group> (<year>2016</year>). <article-title>A simple attitude unscented Kalman filter: theory and evaluation in a Magne-tometer-only spacecraft scenario</article-title>. <source>IEEE Access.</source> <volume>4</volume>, <fpage>1845</fpage>&#x2013;<lpage>1858</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ACCESS.2016.2559445</pub-id></citation></ref>
<ref id="ref7"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chang</surname> <given-names>G. B.</given-names></name></person-group> (<year>2014</year>). <article-title>Robust Kalman filtering based on Mahalanobis distance as outlier judging criterion</article-title>. <source>J. Geod.</source> <volume>88</volume>, <fpage>391</fpage>&#x2013;<lpage>401</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s00190-013-0690-8</pub-id></citation></ref>
<ref id="ref8"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chang</surname> <given-names>L. B.</given-names></name> <name><surname>Hu</surname> <given-names>B. Q.</given-names></name> <name><surname>Chang</surname> <given-names>G. B.</given-names></name></person-group> (<year>2013</year>). <article-title>Modified unscented quaternion estimator based on quaternion averaging</article-title>. <source>J. Guid. Control. Dyn.</source> <volume>37</volume>, <fpage>305</fpage>&#x2013;<lpage>309</lpage>. doi: <pub-id pub-id-type="doi">10.2514/1.61723</pub-id></citation></ref>
<ref id="ref9"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chang</surname> <given-names>Y. Z.</given-names></name> <name><surname>Wang</surname> <given-names>Y. Q.</given-names></name> <name><surname>Shen</surname> <given-names>Y. Y.</given-names></name> <name><surname>Ji</surname> <given-names>C. G.</given-names></name></person-group> (<year>2021</year>). <article-title>A new fuzzy strong tracking cubature Kalman filter for INS/GNSS</article-title>. <source>GPS Solutions</source> <volume>25</volume>:<fpage>120</fpage>. doi: <pub-id pub-id-type="doi">10.1007/s10291-021-01148-5</pub-id></citation></ref>
<ref id="ref10"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>Y.</given-names></name> <name><surname>Yan</surname> <given-names>H.</given-names></name> <name><surname>Li</surname> <given-names>Y. C.</given-names></name></person-group> (<year>2023</year>). <article-title>Vehicle state estimation based on sage&#x2013;Husa adaptive unscented Kalman filtering</article-title>. <source>World Electr. Veh. J.</source> <volume>14</volume>:<fpage>167</fpage>. doi: <pub-id pub-id-type="doi">10.3390/wevj14070167</pub-id></citation></ref>
<ref id="ref11"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dong</surname> <given-names>J. Q.</given-names></name> <name><surname>Lian</surname> <given-names>Z. Z.</given-names></name> <name><surname>Xu</surname> <given-names>J. C.</given-names></name> <name><surname>Yue</surname> <given-names>Z.</given-names></name></person-group> (<year>2023</year>). <article-title>UWB localization based on improved robust adaptive cubature Kalman filter</article-title>. <source>Sensors</source> <volume>23</volume>:<fpage>2669</fpage>. doi: <pub-id pub-id-type="doi">10.3390/s23052669</pub-id>, PMID: <pub-id pub-id-type="pmid">36904872</pub-id></citation></ref>
<ref id="ref12"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Duong</surname> <given-names>T. T.</given-names></name> <name><surname>Chiang</surname> <given-names>W. K.</given-names></name></person-group> (<year>2012</year>). <article-title>Non-linear, non-Gaussian estimation for INS/GPS integration</article-title>. <source>Sens. Lett.</source> <volume>10</volume>, <fpage>1081</fpage>&#x2013;<lpage>1086</lpage>. doi: <pub-id pub-id-type="doi">10.1166/sl.2012.2267</pub-id></citation></ref>
<ref id="ref13"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Elmezayen</surname> <given-names>A.</given-names></name> <name><surname>El-Rabbany</surname> <given-names>A.</given-names></name></person-group> (<year>2021</year>). <article-title>Real-time GNSS precise point positioning using improved robust adaptive Kalman filter</article-title>. <source>Surv. Rev.</source> <volume>53</volume>, <fpage>528</fpage>&#x2013;<lpage>542</lpage>. doi: <pub-id pub-id-type="doi">10.1080/00396265.2020.1846361</pub-id></citation></ref>
<ref id="ref14"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>El-Sheimy</surname> <given-names>N.</given-names></name> <name><surname>Hou</surname> <given-names>H. Y.</given-names></name> <name><surname>Niu</surname> <given-names>X. J.</given-names></name></person-group> (<year>2008</year>). <article-title>Analysis and modeling of inertial sensors using Allan variance</article-title>. <source>IEEE Trans. Instrum. Meas.</source> <volume>57</volume>, <fpage>140</fpage>&#x2013;<lpage>149</lpage>. doi: <pub-id pub-id-type="doi">10.1109/TIM.2007.908635</pub-id></citation></ref>
<ref id="ref15"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Farrell</surname> <given-names>J.</given-names></name> <name><surname>de Haag</surname> <given-names>M. U.</given-names></name></person-group> (<year>2020</year>). <source>Position, navigation, and timing technologies in the 21st century</source>. <publisher-loc>Hoboken, NJ</publisher-loc>: <publisher-name>Wiley</publisher-name>.</citation></ref>
<ref id="ref16"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Geng</surname> <given-names>J. J.</given-names></name> <name><surname>Xia</surname> <given-names>L. Y.</given-names></name> <name><surname>Wu</surname> <given-names>D. J.</given-names></name></person-group> (<year>2021</year>). <article-title>Attitude and heading estimation for indoor positioning based on the adaptive cubature Kalman filter</article-title>. <source>Micromachines</source> <volume>12</volume>:<fpage>79</fpage>. doi: <pub-id pub-id-type="doi">10.3390/mi12010079</pub-id>, PMID: <pub-id pub-id-type="pmid">33451172</pub-id></citation></ref>
<ref id="ref17"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Groves</surname> <given-names>D. P.</given-names></name></person-group> (<year>2008</year>). <source>Principles of GNSS, inertial, and multisensor integrated navigation systems</source>. <publisher-loc>London</publisher-loc>: <publisher-name>Artech House</publisher-name>.</citation></ref>
<ref id="ref18"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gui</surname> <given-names>H. C.</given-names></name> <name><surname>de Ruiter</surname> <given-names>H. J. A.</given-names></name></person-group> (<year>2018</year>). <article-title>Quaternion invariant extended Kalman filtering for spacecraft attitude estimation</article-title>. <source>J. Guid. Control. Dyn.</source> <volume>41</volume>, <fpage>863</fpage>&#x2013;<lpage>878</lpage>. doi: <pub-id pub-id-type="doi">10.2514/1.G003177</pub-id></citation></ref>
<ref id="ref19"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Huang</surname> <given-names>W.</given-names></name></person-group> (<year>2017</year>). <article-title>Quaternion constrained cubature Kalman filter attitude estimation based on uncertain measurements</article-title>. <source>J. Harb. Inst. Technol.</source> <volume>49</volume>, <fpage>116</fpage>&#x2013;<lpage>121</lpage>. doi: <pub-id pub-id-type="doi">10.11918/j.issn.201509022</pub-id></citation></ref>
<ref id="ref20"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Huang</surname> <given-names>Y.</given-names></name> <name><surname>Wu</surname> <given-names>L. H.</given-names></name> <name><surname>Yu</surname> <given-names>Q.</given-names></name></person-group> (<year>2020</year>). <article-title>Underwater square-root cubature attitude estimator by use of quaternion-vector switch-ing and geomagnetic field tensor</article-title>. <source>J. Syst. Eng. Electron.</source> <volume>31</volume>, <fpage>804</fpage>&#x2013;<lpage>814</lpage>. doi: <pub-id pub-id-type="doi">10.23919/JSEE.2020.000055</pub-id></citation></ref>
<ref id="ref21"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Huang</surname> <given-names>W.</given-names></name> <name><surname>Xie</surname> <given-names>H. S.</given-names></name> <name><surname>Shen</surname> <given-names>C.</given-names></name> <name><surname>Li</surname> <given-names>J. P.</given-names></name></person-group> (<year>2016</year>). <article-title>A robust strong tracking cubature Kalman filter for spacecraft attitude estimation with quaternion constraint</article-title>. <source>Acta Astronaut.</source> <volume>121</volume>, <fpage>153</fpage>&#x2013;<lpage>163</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.actaastro.2016.01.009</pub-id></citation></ref>
<ref id="ref22"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jiang</surname> <given-names>C.</given-names></name> <name><surname>Zhang</surname> <given-names>S. B.</given-names></name> <name><surname>Li</surname> <given-names>H.</given-names></name> <name><surname>Li</surname> <given-names>Z.</given-names></name></person-group> (<year>2021</year>). <article-title>Performance evaluation of the filters with adaptive factor and fading factor for GNSS/INS integrated systems</article-title>. <source>GPS Solutions</source> <volume>25</volume>:<fpage>130</fpage>. doi: <pub-id pub-id-type="doi">10.1007/s10291-021-01165-4</pub-id></citation></ref>
<ref id="ref23"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Julier</surname> <given-names>S.</given-names></name> <name><surname>Uhlmann</surname> <given-names>J.</given-names></name> <name><surname>Durrant-Whyte</surname> <given-names>F. H.</given-names></name></person-group> (<year>2000</year>). <article-title>A new method for the nonlinear transformation of means and covariances in filters and estimators</article-title>. <source>IEEE Trans. Autom. Control.</source> <volume>45</volume>, <fpage>477</fpage>&#x2013;<lpage>482</lpage>. doi: <pub-id pub-id-type="doi">10.1109/9.847726</pub-id></citation></ref>
<ref id="ref24"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>B. F.</given-names></name> <name><surname>Chen</surname> <given-names>G. E.</given-names></name></person-group> (<year>2022</year>). <article-title>Improving the combined GNSS/INS positioning by using tightly integrated RTK</article-title>. <source>GPS Solutions</source> <volume>26</volume>:<fpage>144</fpage>. doi: <pub-id pub-id-type="doi">10.1007/s10291-022-01331-2</pub-id></citation></ref>
<ref id="ref25"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>Y.</given-names></name> <name><surname>Dong</surname> <given-names>K.</given-names></name> <name><surname>Wang</surname> <given-names>H. P.</given-names></name> <name><surname>Liu</surname> <given-names>J.</given-names></name> <name><surname>He</surname> <given-names>Y.</given-names></name> <name><surname>Pan</surname> <given-names>L. N.</given-names></name></person-group> (<year>2014</year>). <article-title>Adaptive Gaussian sum squared-root cubature Kalman filter with Split-merge scheme for state estimation</article-title>. <source>Chin. J. Aeronaut.</source> <volume>27</volume>, <fpage>1242</fpage>&#x2013;<lpage>1250</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.cja.2014.09.007</pub-id></citation></ref>
<ref id="ref26"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Maebashi</surname> <given-names>K.</given-names></name> <name><surname>Suematsu</surname> <given-names>N.</given-names></name> <name><surname>Hayashi</surname> <given-names>A.</given-names></name></person-group> (<year>2008</year>). <article-title>Component reduction for Gaussian mixture models</article-title>. <source>IEICE Trans. Inf. Syst.</source> <volume>E91-D</volume>, <fpage>2846</fpage>&#x2013;<lpage>2853</lpage>. doi: <pub-id pub-id-type="doi">10.1093/ietisy/e91-d.12.2846</pub-id></citation></ref>
<ref id="ref27"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Markley</surname> <given-names>F. L.</given-names></name></person-group> (<year>2003</year>). <article-title>Attitude error representations for Kalman filtering</article-title>. <source>J. Guid. Control. Dyn.</source> <volume>26</volume>, <fpage>311</fpage>&#x2013;<lpage>317</lpage>. doi: <pub-id pub-id-type="doi">10.2514/2.5048</pub-id></citation></ref>
<ref id="ref28"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Micha&#x0142;</surname> <given-names>G.</given-names></name> <name><surname>Micha&#x0142;</surname> <given-names>W.</given-names></name> <name><surname>Cezary</surname> <given-names>S.</given-names></name> <name><surname>Mariusz</surname> <given-names>K.</given-names></name> <name><surname>Albert</surname> <given-names>Z.</given-names></name> <name><surname>Krystian</surname> <given-names>B.</given-names></name></person-group> (<year>2022</year>). <article-title>Quaternion attitude control system of highly maneuverable aircraft</article-title>. <source>Electronics</source> <volume>11</volume>, <fpage>1</fpage>&#x2013;<lpage>13</lpage>. doi: <pub-id pub-id-type="doi">10.3390/electronics11223775</pub-id></citation></ref>
<ref id="ref29"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mohamed</surname> <given-names>A. H.</given-names></name> <name><surname>Schwarz</surname> <given-names>K. P.</given-names></name></person-group> (<year>1999</year>). <article-title>Adaptive Kalman Filtering for INS/GPS</article-title>. <source>J. Geod.</source> <volume>73</volume>, <fpage>193</fpage>&#x2013;<lpage>203</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s001900050236</pub-id></citation></ref>
<ref id="ref30"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Noureldin</surname> <given-names>A.</given-names></name> <name><surname>Karamat</surname> <given-names>B. T.</given-names></name> <name><surname>Georgy</surname> <given-names>J.</given-names></name></person-group> (<year>2013</year>). <source>Fundamentals of inertial navigation, satellite-based positioning and their integration</source>. <publisher-loc>Berlin Heidelberg</publisher-loc>: <publisher-name>Springer</publisher-name>.</citation></ref>
<ref id="ref31"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Qian</surname> <given-names>C.</given-names></name> <name><surname>Song</surname> <given-names>C. Y.</given-names></name> <name><surname>Li</surname> <given-names>S.</given-names></name> <name><surname>Chen</surname> <given-names>Q. W.</given-names></name> <name><surname>Guo</surname> <given-names>J.</given-names></name></person-group> (<year>2021</year>). <article-title>Algorithm of Gaussian sum filter based on SGQF for nonlinear non-Gaussian models</article-title>. <source>Int. J. Control. Autom. Syst.</source> <volume>19</volume>, <fpage>2830</fpage>&#x2013;<lpage>2841</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s12555-020-0490-x</pub-id></citation></ref>
<ref id="ref32"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Qiu</surname> <given-names>Z. B.</given-names></name> <name><surname>Qian</surname> <given-names>H. M.</given-names></name></person-group> (<year>2018</year>). <article-title>Modified multiplicative quaternion cubature Kalman filter for attitude estimation</article-title>. <source>Int. J. Adapt. Control Sign. Process.</source> <volume>32</volume>, <fpage>1182</fpage>&#x2013;<lpage>1190</lpage>. doi: <pub-id pub-id-type="doi">10.1002/acs.2895</pub-id></citation></ref>
<ref id="ref33"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ryzhkov</surname> <given-names>L. M.</given-names></name></person-group> (<year>2021</year>). <article-title>Quaternion attitude determination by vector measurement</article-title>. <source>Int. Appl. Mech.</source> <volume>57</volume>, <fpage>613</fpage>&#x2013;<lpage>617</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s10778-021-01111-4</pub-id></citation></ref>
<ref id="ref34"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Savage</surname> <given-names>G. P.</given-names></name></person-group> (<year>1998</year>). <article-title>Strapdown inertial navigation integration algorithm design part 1: attitude algorithms</article-title>. <source>J. Guid. Contr. Dynam.</source> <volume>21</volume>, <fpage>19</fpage>&#x2013;<lpage>28</lpage>. doi: <pub-id pub-id-type="doi">10.2514/2.4228</pub-id></citation></ref>
<ref id="ref35"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Song</surname> <given-names>H. R.</given-names></name> <name><surname>Cheng</surname> <given-names>S. X.</given-names></name> <name><surname>Xu</surname> <given-names>Z. X.</given-names></name> <name><surname>Zang</surname> <given-names>N</given-names></name></person-group>. <article-title>Research on PPP/INS algorithm based on sequential Sage-Husa adaptive filtering</article-title>. <conf-name>China Satellite Navigation Conference (CSNC 2022) Proceedings, Beijing, China</conf-name>, <conf-loc>26&#x2013;28 April 2022</conf-loc>; <publisher-name>Springer Nature Singapore</publisher-name>: <publisher-loc>Singapore</publisher-loc>, (<year>2022</year>).</citation></ref>
<ref id="ref36"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sun</surname> <given-names>L. L.</given-names></name> <name><surname>Cao</surname> <given-names>Y. H.</given-names></name> <name><surname>Wu</surname> <given-names>W. H.</given-names></name> <name><surname>Liu</surname> <given-names>Y. T.</given-names></name></person-group> (<year>2020</year>). <article-title>A multi-target tracking algorithm based on Gaussian mixture model</article-title>. <source>J. Syst. Eng. Electron.</source> <volume>31</volume>, <fpage>482</fpage>&#x2013;<lpage>487</lpage>. doi: <pub-id pub-id-type="doi">10.23919/JSEE.2020.000020</pub-id></citation></ref>
<ref id="ref37"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sun</surname> <given-names>B.</given-names></name> <name><surname>Zhang</surname> <given-names>Z. W.</given-names></name> <name><surname>Liu</surname> <given-names>S. C.</given-names></name> <name><surname>Yan</surname> <given-names>X. B.</given-names></name> <name><surname>Yang</surname> <given-names>C. X.</given-names></name></person-group> (<year>2022</year>). <article-title>Integrated navigation algorithm based on multiple fading factors Kalman filter</article-title>. <source>Sensors</source> <volume>22</volume>:<fpage>5081</fpage>. doi: <pub-id pub-id-type="doi">10.3390/s22145081</pub-id>, PMID: <pub-id pub-id-type="pmid">35890765</pub-id></citation></ref>
<ref id="ref38"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Swati</surname></name></person-group> (<year>2022</year>). <article-title>Continuous discrete cubature quadrature Kalman filter</article-title>. <source>Asian J. Control</source> <volume>24</volume>, <fpage>483</fpage>&#x2013;<lpage>493</lpage>. doi: <pub-id pub-id-type="doi">10.1002/asjc.2505</pub-id></citation></ref>
<ref id="ref39"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Taghizadeh</surname> <given-names>S.</given-names></name> <name><surname>Safabakhsh</surname> <given-names>R.</given-names></name></person-group> (<year>2023</year>). <article-title>Low-cost integrated INS/GNSS using adaptive H&#x221E; cubature Kalman filter</article-title>. <source>J. Navig.</source> <volume>76</volume>, <fpage>1</fpage>&#x2013;<lpage>19</lpage>. doi: <pub-id pub-id-type="doi">10.1017/S0373463322000583</pub-id></citation></ref>
<ref id="ref40"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tang</surname> <given-names>X. J.</given-names></name> <name><surname>Liu</surname> <given-names>Z. B.</given-names></name> <name><surname>Zhang</surname> <given-names>J. S.</given-names></name></person-group> (<year>2012</year>). <article-title>Square-root quaternion cubature Kalman filtering for spacecraft attitude estimation</article-title>. <source>Acta Astronaut.</source> <volume>76</volume>, <fpage>84</fpage>&#x2013;<lpage>94</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.actaastro.2012.02.009</pub-id></citation></ref>
<ref id="ref41"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Teunissen</surname> <given-names>J. G. P.</given-names></name> <name><surname>Montenbruck</surname> <given-names>O.</given-names></name></person-group> (<year>2017</year>). <source>Springer handbook of global navigation satellite systems</source>. <publisher-loc>Berlin Heidelberg</publisher-loc>: <publisher-name>Springer</publisher-name>.</citation></ref>
<ref id="ref42"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>J. W.</given-names></name> <name><surname>Chen</surname> <given-names>X. Y.</given-names></name> <name><surname>Shi</surname> <given-names>C. F.</given-names></name></person-group> (<year>2023</year>). <article-title>A novel robust iterated CKF for GNSS/SINS integrated navigation applications</article-title>. <source>Eurasip J. Adv. Sign. Process.</source> <volume>1</volume>:<fpage>83</fpage>. doi: <pub-id pub-id-type="doi">10.1186/s13634-023-01044-9</pub-id></citation></ref>
<ref id="ref43"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>L.</given-names></name> <name><surname>Cheng</surname> <given-names>X. H.</given-names></name></person-group> (<year>2015</year>). <article-title>Algorithm of Gaussian sum filter based on high-order UKF for dynamic state estimation</article-title>. <source>Int. J. Contr. Autom. Syst.</source> <volume>13</volume>, <fpage>652</fpage>&#x2013;<lpage>661</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s12555-014-0114-4</pub-id></citation></ref>
<ref id="ref44"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>D. J.</given-names></name> <name><surname>Dong</surname> <given-names>Y.</given-names></name> <name><surname>Li</surname> <given-names>Q. S.</given-names></name> <name><surname>Li</surname> <given-names>Z. Y.</given-names></name> <name><surname>Wu</surname> <given-names>J.</given-names></name></person-group> (<year>2018</year>). <article-title>Using Allan variance to improve stochastic modeling for accurate GNSS/INS integrated navigation</article-title>. <source>GPS Solutions</source> <volume>22</volume>:<fpage>53</fpage>. doi: <pub-id pub-id-type="doi">10.1007/s10291-018-0718-x</pub-id></citation></ref>
<ref id="ref45"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>L.</given-names></name> <name><surname>Gao</surname> <given-names>W.X.</given-names></name> <name><surname>Wang</surname> <given-names>L.</given-names></name> <name><surname>Hu</surname> <given-names>F.Z.</given-names></name></person-group> <article-title>Design and analysis of Gaussian sum high-order CKF for nonlinear/non-Gaussian dynamic state estimation</article-title>. <conf-name>2021 33rd Chinese Control and Decision Conference (CCDC)</conf-name>. <publisher-name>IEEE</publisher-name>: <publisher-loc>Kun-ming</publisher-loc> (<year>2021</year>).</citation></ref>
<ref id="ref46"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>Z. P.</given-names></name> <name><surname>Li</surname> <given-names>X.</given-names></name> <name><surname>Zhu</surname> <given-names>Y. B.</given-names></name> <name><surname>Li</surname> <given-names>Q.</given-names></name> <name><surname>Fang</surname> <given-names>K.</given-names></name></person-group> (<year>2022</year>). <article-title>Integrity monitoring of global navigation satellite system/inertial Navi-gation system integrated navigation system based on dynamic fading filter optimisation</article-title>. <source>IET Radar Sonar Navig.</source> <volume>16</volume>, <fpage>515</fpage>&#x2013;<lpage>530</lpage>. doi: <pub-id pub-id-type="doi">10.1049/rsn2.12199</pub-id></citation></ref>
<ref id="ref47"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>D. J.</given-names></name> <name><surname>Lv</surname> <given-names>H. F.</given-names></name> <name><surname>Wu</surname> <given-names>J.</given-names></name></person-group> (<year>2017</year>). <article-title>Augmented cubature Kalman filter for nonlinear RTK/MIMU integrated navigation with non-additive noise</article-title>. <source>Measurement</source> <volume>97</volume>, <fpage>111</fpage>&#x2013;<lpage>125</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.measurement.2016.10.056</pub-id></citation></ref>
<ref id="ref48"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>G. C.</given-names></name> <name><surname>Xu</surname> <given-names>X. S.</given-names></name> <name><surname>Zhang</surname> <given-names>T.</given-names></name></person-group> (<year>2020</year>). <article-title>M-M estimation-based robust cubature Kalman filter for INS/GPS integrated navigation system</article-title>. <source>IEEE Trans. Instrum. Meas.</source> <volume>70</volume>, <fpage>1</fpage>&#x2013;<lpage>11</lpage>. doi: <pub-id pub-id-type="doi">10.1109/TIM.2020.3021224</pub-id></citation></ref>
<ref id="ref49"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wu</surname> <given-names>Y. L.</given-names></name> <name><surname>Chen</surname> <given-names>S. A.</given-names></name> <name><surname>Yin</surname> <given-names>T. T.</given-names></name></person-group> (<year>2022</year>). <article-title>GNSS/INS tightly coupled navigation with robust adaptive extended Kalman filter</article-title>. <source>Int. J. Automot. Technol.</source> <volume>23</volume>, <fpage>1639</fpage>&#x2013;<lpage>1649</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s12239-022-0142-7</pub-id></citation></ref>
<ref id="ref50"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>Z. H.</given-names></name> <name><surname>Li</surname> <given-names>Z. K.</given-names></name> <name><surname>Liu</surname> <given-names>Z.</given-names></name> <name><surname>Wang</surname> <given-names>C. C.</given-names></name> <name><surname>Sun</surname> <given-names>Y. W.</given-names></name> <name><surname>Shao</surname> <given-names>K. F.</given-names></name></person-group> (<year>2021</year>). <article-title>Improved robust and adaptive filter based on non-holonomic constraints for RTK/INS integrated navigation</article-title>. <source>Meas. Sci. Technol.</source> <volume>32</volume>:<fpage>105110</fpage>. doi: <pub-id pub-id-type="doi">10.1088/1361-6501/ac0370</pub-id></citation></ref>
<ref id="ref51"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yu</surname> <given-names>B.</given-names></name> <name><surname>Zhang</surname> <given-names>Y. Z.</given-names></name> <name><surname>Xie</surname> <given-names>W. S.</given-names></name> <name><surname>Zuo</surname> <given-names>W. J.</given-names></name> <name><surname>Zhao</surname> <given-names>Y. M.</given-names></name> <name><surname>Wei</surname> <given-names>Y. L.</given-names></name></person-group> (<year>2023</year>). <article-title>A network traffic anomaly detection method based on Gaussian mixture model</article-title>. <source>Electronics</source> <volume>12</volume>:<fpage>1397</fpage>. doi: <pub-id pub-id-type="doi">10.3390/electronics12061397</pub-id></citation></ref>
<ref id="ref52"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>L.</given-names></name> <name><surname>Li</surname> <given-names>S.</given-names></name> <name><surname>Zhang</surname> <given-names>E.</given-names></name> <name><surname>Chen</surname> <given-names>Q. W.</given-names></name> <name><surname>Guo</surname> <given-names>J.</given-names></name></person-group> (<year>2019</year>). <article-title>Improved square root adaptive cubature Kalman filter</article-title>. <source>IET Signal Process.</source> <volume>13</volume>, <fpage>641</fpage>&#x2013;<lpage>649</lpage>. doi: <pub-id pub-id-type="doi">10.1049/iet-spr.2018.5029</pub-id></citation></ref>
<ref id="ref53"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>Q.</given-names></name> <name><surname>Niu</surname> <given-names>X. J.</given-names></name> <name><surname>Shi</surname> <given-names>C.</given-names></name></person-group> (<year>2020</year>). <article-title>Impact assessment of various IMU error sources on the relative accuracy of the GNSS/INS systems</article-title>. <source>IEEE Sensors J.</source> <volume>20</volume>, <fpage>5026</fpage>&#x2013;<lpage>5038</lpage>. doi: <pub-id pub-id-type="doi">10.1109/JSEN.2020.2966379</pub-id></citation></ref>
<ref id="ref54"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhu</surname> <given-names>T. G.</given-names></name> <name><surname>Liu</surname> <given-names>Y.</given-names></name> <name><surname>Li</surname> <given-names>W. K.</given-names></name> <name><surname>Li</surname> <given-names>K. L.</given-names></name></person-group> (<year>2021</year>). <article-title>The quaternion-based attitude error for the nonlinear error model of the INS</article-title>. <source>IEEE Sensors J.</source> <volume>21</volume>, <fpage>25782</fpage>&#x2013;<lpage>25795</lpage>. doi: <pub-id pub-id-type="doi">10.1109/jsen.2021.3118039</pub-id></citation></ref>
<ref id="ref55"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhu</surname> <given-names>W. Q.</given-names></name> <name><surname>McBrearty</surname> <given-names>W. I.</given-names></name> <name><surname>Mousavi</surname> <given-names>S. M.</given-names></name> <name><surname>Ellsworth</surname> <given-names>L. W.</given-names></name> <name><surname>Beroza</surname> <given-names>C. G.</given-names></name></person-group> (<year>2022</year>). <article-title>Earthquake phase association using a Bayesian Gaussian mixture model</article-title>. <source>J. Geophys. Res. Solid Earth</source>. <volume>5</volume>:<fpage>127</fpage>. doi: <pub-id pub-id-type="doi">10.1029/2021JB023249</pub-id></citation></ref>
<ref id="ref56"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zickert</surname> <given-names>G.</given-names></name> <name><surname>Yarman</surname> <given-names>C. E.</given-names></name></person-group> (<year>2021</year>). <article-title>Gaussian mixture model decomposition of multivariate signals</article-title>. <source>Signal Image Video Process.</source> <volume>16</volume>, <fpage>429</fpage>&#x2013;<lpage>436</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s11760-021-01961-y</pub-id></citation></ref>
</ref-list>
</back>
</article>