<?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" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/s120709666</article-id>
<article-id pub-id-type="publisher-id">sensors-12-09666</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>A Simplified Baseband Prefilter Model with Adaptive Kalman Filter for Ultra-Tight COMPASS/INS Integration</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Luo</surname><given-names>Yong</given-names></name><xref ref-type="aff" rid="af1-sensors-12-09666"><sup>1</sup></xref><xref ref-type="corresp" rid="c1-sensors-12-09666"><sup>*</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Wu</surname><given-names>Wenqi</given-names></name><xref ref-type="aff" rid="af1-sensors-12-09666"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Babu</surname><given-names>Ravindra</given-names></name><xref ref-type="aff" rid="af2-sensors-12-09666"><sup>2</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Tang</surname><given-names>Kanghua</given-names></name><xref ref-type="aff" rid="af1-sensors-12-09666"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Luo</surname><given-names>Bing</given-names></name><xref ref-type="aff" rid="af1-sensors-12-09666"><sup>1</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-12-09666">
<label>1</label> College of Mechatronics and Automation, National University of Defense Technology, Changsha 410073, China; E-Mails: <email>wenqiwu_lit@hotmail.com</email> (W.W.); <email>tt_kanghua@hotmail.com</email> (K.T.); <email>ruobing@nudt.edu.cn</email> (B.L.)</aff>
<aff id="af2-sensors-12-09666">
<label>2</label> Advance Technology Labs, Wipro Technologies, Chennai, India; E-Mail: <email>s.ravi@unswalumni.com</email></aff>
<author-notes>
<corresp id="c1-sensors-12-09666">
<label>*</label>Author to whom correspondence should be addressed; Email: <email>luoyong_nudt@hotmail.com</email>; Tel.: +86-731-8457-6305 (ext. 8209); Fax: +86-731-8457-6305 (ext. 8212).</corresp></author-notes>
<pub-date pub-type="collection">
<year>2012</year></pub-date>
<pub-date pub-type="epub">
<day>17</day>
<month>07</month>
<year>2012</year></pub-date>
<volume>12</volume>
<issue>7</issue>
<fpage>9666</fpage>
<lpage>9686</lpage>
<history>
<date date-type="received">
<day>18</day>
<month>05</month>
<year>2012</year></date>
<date date-type="rev-recd">
<day>19</day>
<month>06</month>
<year>2012</year></date>
<date date-type="accepted">
<day>27</day>
<month>06</month>
<year>2012</year></date></history>
<permissions>
<copyright-statement>© 2012 by the authors; licensee MDPI, Basel, Switzerland.</copyright-statement>
<copyright-year>2012</copyright-year>
<license>
<p>This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).</p></license></permissions>
<abstract>
<p>COMPASS is an indigenously developed Chinese global navigation satellite system and will share many features in common with GPS (Global Positioning System). Since the ultra-tight GPS/INS (Inertial Navigation System) integration shows its advantage over independent GPS receivers in many scenarios, the federated ultra-tight COMPASS/INS integration has been investigated in this paper, particularly, by proposing a simplified prefilter model. Compared with a traditional prefilter model, the state space of this simplified system contains only carrier phase, carrier frequency and carrier frequency rate tracking errors. A two-quadrant arctangent discriminator output is used as a measurement. Since the code tracking error related parameters were excluded from the state space of traditional prefilter models, the code/carrier divergence would destroy the carrier tracking process, and therefore an adaptive Kalman filter algorithm tuning process noise covariance matrix based on state correction sequence was incorporated to compensate for the divergence. The federated ultra-tight COMPASS/INS integration was implemented with a hardware COMPASS intermediate frequency (IF), and INS's accelerometers and gyroscopes signal sampling system. Field and simulation test results showed almost similar tracking and navigation performances for both the traditional prefilter model and the proposed system; however, the latter largely decreased the computational load.</p></abstract>
<kwd-group>
<kwd>COMPASS</kwd>
<kwd>ultra-tight COMPASS/INS integration</kwd>
<kwd>simplified prefilter model</kwd>
<kwd>adaptive Kalman filter</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>The global COMPASS or Beidou II is a second generation Chinese satellite navigation system being developed from its first generation predecessor, Beidou I, which was a regionally-based system [<xref ref-type="bibr" rid="b1-sensors-12-09666">1</xref>,<xref ref-type="bibr" rid="b2-sensors-12-09666">2</xref>]. By the end of 25 February 2012 eleven COMPASS satellites have been launched successfully. Currently, COMPASS is providing reliable position services to the south and southeast coastland of China and south Asian areas [<xref ref-type="bibr" rid="b3-sensors-12-09666">3</xref>].</p>
<p>Like a GPS receiver, the COMPASS receiver also faces the paradoxical situation in optimising the carrier-tracking loop bandwidth to guarantee anti-jamming capability and dynamics adaptation simultaneously, <italic>i.e.</italic>, anti-jamming capability needs a narrow bandwidth while dynamics adaptation needs a wider one [<xref ref-type="bibr" rid="b4-sensors-12-09666">4</xref>,<xref ref-type="bibr" rid="b5-sensors-12-09666">5</xref>]. Ultra-tight GPS/INS integration was actually proposed to solve this problem [<xref ref-type="bibr" rid="b6-sensors-12-09666">6</xref>–<xref ref-type="bibr" rid="b11-sensors-12-09666">11</xref>]. The basic concept behind the ultra-tight integration approach is that, the dynamics of the GPS receiver measured by an INS can be integrated with the GPS tracking loop, which results in ‘dynamic-free’ GPS signals [<xref ref-type="bibr" rid="b12-sensors-12-09666">12</xref>] that enters the tracking loop, so that GPS receiver's anti-jamming capability and dynamic adaptation can be guaranteed simultaneously. In this paper, the discussion is based on COMPASS B3 frequency signal which share many features in common with the GPS L1 frequency signal [<xref ref-type="bibr" rid="b1-sensors-12-09666">1</xref>,<xref ref-type="bibr" rid="b2-sensors-12-09666">2</xref>], and therefore the previous discussions on ultra-tight GPS/INS integration are applicable to COMPASS/INS system with minor modifications.</p>
<p>Generally, the ultra-tight GPS/INS integrated navigation systems can be classified as central architecture [<xref ref-type="bibr" rid="b6-sensors-12-09666">6</xref>,<xref ref-type="bibr" rid="b8-sensors-12-09666">8</xref>] and federated architecture [<xref ref-type="bibr" rid="b9-sensors-12-09666">9</xref>,<xref ref-type="bibr" rid="b10-sensors-12-09666">10</xref>]. In central architecture, carrier and code tracking and INS corrections are performed simultaneously in a single integrated Kalman filter, as shown in <xref ref-type="fig" rid="f1-sensors-12-09666">Figure 1</xref> [<xref ref-type="bibr" rid="b13-sensors-12-09666">13</xref>]. The kernel of its implementation lies in establishing the mathematical relationship between I/Q measurements and INS error states (position, velocity, attitude, gyroscope and accelerator bias errors), which is nonlinear. In addition, if six measurements are contained in each channel, for <italic>N</italic> channels a 6 × <italic>N</italic> dimension measurement information need to be processed. For this reason, the central architecture is difficult to implement in real-time applications, and therefore the discussion primarily focuses on the federated architecture in this paper.</p>
<p>In federated architecture, the large integrated Kalman filter is decomposed into two filters operating at different rates [<xref ref-type="bibr" rid="b7-sensors-12-09666">7</xref>], as shown in <xref ref-type="fig" rid="f2-sensors-12-09666">Figure 2</xref> [<xref ref-type="bibr" rid="b13-sensors-12-09666">13</xref>]. The code and carrier tracking loops are completed in a baseband signal pre-processing filter (prefilter for short) in each channel, and the integrated navigation filter (master filter) is used to process the output of the prefilters and restrict the INS errors. Different prefilter models and their impact on GPS signal tracking have been discussed in [<xref ref-type="bibr" rid="b14-sensors-12-09666">14</xref>,<xref ref-type="bibr" rid="b15-sensors-12-09666">15</xref>]. Generally, the normalized signal amplitude, carrier phase tracking error, carrier frequency tracking error, carrier frequency rate tracking error and code phase tracking error are included in the state space of prefilter, and the code and carrier discriminator outputs are used as measurements to ensure a linear Kalman filter implementation for the prefilter.</p>
<p>A common characteristic of traditional prefilter models is that the signal amplitude is independent of other state variables and discriminator outputs, such that the observability of normalized signal amplitude would be a substantial problem in actual implementation [<xref ref-type="bibr" rid="b16-sensors-12-09666">16</xref>]. It is well known that carrier tracking has more stringent requirements than the code tracking [<xref ref-type="bibr" rid="b4-sensors-12-09666">4</xref>,<xref ref-type="bibr" rid="b5-sensors-12-09666">5</xref>], besides, the code Doppler frequency is proportional to the carrier frequency, and the code phase can be controlled by shifting the code rate [<xref ref-type="bibr" rid="b17-sensors-12-09666">17</xref>]. Therefore, the carrier tracking is emphasized during the prefilter implementation.</p>
<p>This paper has proposed a simplified prefilter model and a corresponding adaptive Kalman filter algorithm to replace the traditional one. The state space of this simplified prefilter model consists of only carrier phase tracking error, carrier frequency tracking error and carrier frequency rate tracking error, and the two-quadrant arctangent discriminator output is used as a measurement. Since the code tracking error component has been excluded from the state space, if the code/carrier divergence was ignored it will destroy the carrier tracking process [<xref ref-type="bibr" rid="b11-sensors-12-09666">11</xref>,<xref ref-type="bibr" rid="b18-sensors-12-09666">18</xref>]. An adaptive Kalman filter algorithm was therefore used to compensate for the code/carrier divergence where the process noise covariance was tuned online based on state correction sequence [<xref ref-type="bibr" rid="b19-sensors-12-09666">19</xref>]. The performance of federated ultra-tight COMPASS/INS integration with this simplified adaptive prefilter (S-AKF for short) has been compared with the traditional filter (T-KF for short). Two sets of data, collected in a field environment and with a complex GNSS/INS signal hardware simulator respectively, were used to assess the performance. Test results showed a more or less identical tracking and navigation performance of S-AKF with that of T-KF; however, S-AKF largely reduced the computational load.</p>
<p>The remainder of this paper is organized as follows: Section 2 introduces a commonly used prefilter and integrated navigation filter models in federated GPS/INS architecture, Section 3 introduces the simplified prefilter model and corresponding adaptive Kalman filter algorithm, in addition, the COMPASS/INS integrated navigation filter model is also proposed. Section 4 evaluates the performance of S-AKF and T-KF through simulation and field experiments. The paper finishes with conclusions and an outline of future work in Section 5.</p></sec>
<sec>
<label>2.</label>
<title>Traditional Filter Model in Federated GPS/INS Integration</title>
<p>Before introducing the simplified adaptive prefilter model of ultra-tight COMPASS/INS integration, a brief introduction is given on traditional prefilter and integrated navigation model of federated GPS/INS integration. Expanding <xref ref-type="fig" rid="f2-sensors-12-09666">Figure 2</xref> for a single channel, the architecture of federated ultra-tight GPS/INS integration is shown in the <xref ref-type="fig" rid="f3-sensors-12-09666">Figure 3</xref> [<xref ref-type="bibr" rid="b7-sensors-12-09666">7</xref>,<xref ref-type="bibr" rid="b11-sensors-12-09666">11</xref>]. Prefilter and integrated navigation filter are two kernel components of this architecture.</p>
<sec>
<label>2.1.</label>
<title>Integrated Navigation Filter Model</title>
<p>Traditionally, the state vector of navigation filter is defined as [<xref ref-type="bibr" rid="b11-sensors-12-09666">11</xref>]:
<disp-formula id="FD1">
<label>(1)</label>
<mml:math id="mm1" display="block">
<mml:semantics id="sm1">
<mml:mrow>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">R</mml:mi>
<mml:mi>e</mml:mi></mml:msup></mml:mrow>
<mml:mspace width="1.0em"/>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi>e</mml:mi></mml:msup></mml:mrow>
<mml:mspace width="1.0em"/>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mi>e</mml:mi></mml:msup></mml:mrow>
<mml:mspace width="1.0em"/>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mi>b</mml:mi></mml:msup></mml:mrow>
<mml:mspace width="1.0em"/>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mi>b</mml:mi></mml:msup></mml:mrow>
<mml:mspace width="1.0em"/>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:mi mathvariant="bold-italic">T</mml:mi></mml:mrow>
<mml:mo stretchy="false">]</mml:mo></mml:mrow>
<mml:mi mathvariant="bold-italic">T</mml:mi></mml:msup></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>δ</italic><bold><italic>R</italic></bold><italic><sup>e</sup></italic> is position error, <italic>δ</italic><bold><italic>V</italic></bold><italic><sup>e</sup></italic> is velocity error, <italic>δ</italic><bold><italic>ψ</italic></bold><italic><sup>e</sup></italic> is attitude error, <italic>δ</italic><bold><italic>ω</italic></bold><italic><sup>b</sup></italic> is gyroscope bias error, <italic>δ</italic><bold><italic>A</italic></bold><italic><sup>b</sup></italic> is accelerometer bias error, <italic>δ</italic><bold><italic>T</italic></bold> = [<italic>δb δd</italic>]<italic><sup>T</sup></italic> is the clock error vector, the superscript <italic>e</italic> and <italic>b</italic> represent ECEF frame and body frame respectively.</p>
<p>The corresponding system model of navigation filter is:
<disp-formula id="FD2">
<label>(2)</label>
<mml:math id="mm2" display="block">
<mml:semantics id="sm2">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">R</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mi>b</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mi>b</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:mi mathvariant="bold-italic">T</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mi mathvariant="bold-italic">I</mml:mi></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">G</mml:mi>
<mml:mo>-</mml:mo>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mi>e</mml:mi></mml:msup>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:mn>2</mml:mn>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi></mml:msubsup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mo>-</mml:mo></mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi></mml:msubsup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mi mathvariant="bold-italic">Λ</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mspace width="0.2em"/>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">R</mml:mi>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">ψ</mml:mi>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mi>b</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mi>b</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:mi mathvariant="bold-italic">T</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>4</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>5</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>6</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD3">
<mml:math id="mm3" display="block">
<mml:semantics id="sm3">
<mml:mrow>
<mml:mtext>where</mml:mtext>
<mml:mspace width="0.4em"/>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mi>e</mml:mi></mml:msup>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mi>e</mml:mi></mml:msup>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>ω</mml:mi>
<mml:mi>e</mml:mi></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>ω</mml:mi>
<mml:mi>e</mml:mi></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">Λ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">G</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mi>μ</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mn>3</mml:mn></mml:msup></mml:mrow></mml:mfrac>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:msup>
<mml:mi>y</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:msup>
<mml:mi>z</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where [<italic>x y z</italic>] is the vehicle's current position in ECEF-frame, 
<inline-formula>
<mml:math id="mm4" display="inline">
<mml:semantics id="sm4">
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mi>y</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mi>z</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt>
<mml:mo stretchy="false">[</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>x</mml:mi></mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>y</mml:mi></mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>z</mml:mi></mml:msub>
<mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>, is the specific force vector in the body frame, 
<inline-formula>
<mml:math id="mm5" display="inline">
<mml:semantics id="sm5">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> is the body-to-Earth-frame coordinate transformation matrix, and <bold><italic>ω</italic></bold><italic><sub>e</sub></italic> is the Earth's angular rate [<xref ref-type="bibr" rid="b20-sensors-12-09666">20</xref>].</p>
<p>For the integrated navigation filter, the error components of pseudo range, pseudo range rate and pseudo range acceleration are used as measurements which are proportional to corresponding estimated states of prefilter [<xref ref-type="bibr" rid="b11-sensors-12-09666">11</xref>]. Since the emphasis was on the prefilter model, the measurement equation was deliberately omitted here, for more details please refer to [<xref ref-type="bibr" rid="b11-sensors-12-09666">11</xref>,<xref ref-type="bibr" rid="b21-sensors-12-09666">21</xref>].</p></sec>
<sec>
<label>2.2.</label>
<title>Traditional Prefilter Model</title>
<p>In federated ultra-tight GPS/INS integration, the prefilters are responsible for implementing code and carrier tracking, and also providing measurement information and corresponding measurement noise matrices for the integrated navigation filter [<xref ref-type="bibr" rid="b9-sensors-12-09666">9</xref>–<xref ref-type="bibr" rid="b11-sensors-12-09666">11</xref>]. For specific appliactions different prefilter models have been investigated [<xref ref-type="bibr" rid="b14-sensors-12-09666">14</xref>,<xref ref-type="bibr" rid="b15-sensors-12-09666">15</xref>]. A most commonly used prefilter model will be introduced here, the performance of which will be compared with that of a simplified prefilter model with an adaptive Kalman filter. The system model for the prefilter is written as follows [<xref ref-type="bibr" rid="b14-sensors-12-09666">14</xref>]:
<disp-formula id="FD4">
<label>(3)</label>
<mml:math id="mm6" display="block">
<mml:semantics id="sm6">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mi>A</mml:mi>
<mml:mo>˙</mml:mo></mml:mover></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mover accent="true">
<mml:mi>τ</mml:mi>
<mml:mo>˙</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mover accent="true">
<mml:mi>ϕ</mml:mi>
<mml:mo>˙</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mover accent="true">
<mml:mi>f</mml:mi>
<mml:mo>˙</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>˙</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi>
<mml:msubsup>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>A</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mspace width="0.2em"/>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>A</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mi>τ</mml:mi></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mi>ϕ</mml:mi></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mi>f</mml:mi></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mi>a</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mspace width="0.2em"/>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>τ</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>ϕ</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>f</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>a</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>A</italic> is the normalized signal amplitude, <italic>δØ</italic> is the carrier phase tracking error, <italic>δf</italic> is the carrier frequency error, <italic>δa</italic> is the carrier frequency rate error, <italic>δτ</italic> is the code phase error, <italic>λ</italic><sub>L1</sub> ≈ 0.19 <italic>m</italic> is the GPS L1 carrier wavelength, 
<inline-formula>
<mml:math id="mm7" display="inline">
<mml:semantics id="sm7">
<mml:mrow>
<mml:msubsup>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mi mathvariant="bold-italic">A</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">L</mml:mi>
<mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msubsup>
<mml:mo>≈</mml:mo>
<mml:mn>293</mml:mn>
<mml:mi>m</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> is the GPS <italic>CA</italic> code chip length, <italic>w<sub>A</sub></italic> is the process noise for the normalized signal amplitude, <italic>w<sub>τ</sub></italic> represents the code/carrier divergence, <italic>w<sub>Ø</sub></italic> represents the carrier phase noise due to the clock bias, <italic>w<sub>f</sub></italic> represents the carrier frequency noise due to the clock drift, and <italic>w<sub>a</sub></italic> represents the carrier phase acceleration noise due to the receiver dynamics.</p>
<p>The outputs of normalized early-minus-late envelope code discriminator and two-quadrant arctangent carrier discriminator are used as measurements, and the measurement equation is written as follows [<xref ref-type="bibr" rid="b14-sensors-12-09666">14</xref>,<xref ref-type="bibr" rid="b15-sensors-12-09666">15</xref>]:
<disp-formula id="FD5">
<label>(4)</label>
<mml:math id="mm8" display="block">
<mml:semantics id="sm8">
<mml:mrow>
<mml:mi mathvariant="bold-italic">Z</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mi>τ</mml:mi></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mi>ϕ</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mspace width="0.2em"/>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>A</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mi>τ</mml:mi></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mi>ϕ</mml:mi></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mi>f</mml:mi></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mi>a</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mi>I</mml:mi>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mi>Q</mml:mi>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:msqrt>
<mml:mo>-</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mi>I</mml:mi>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mi>Q</mml:mi>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:msqrt></mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mi>I</mml:mi>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mi>Q</mml:mi>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:msqrt>
<mml:mo>+</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mi>I</mml:mi>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mi>Q</mml:mi>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:msqrt></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo>tan</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mi>P</mml:mi></mml:msub>
<mml:mo>/</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>P</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>ν</mml:mi>
<mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>ν</mml:mi>
<mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>v</italic><sub>1</sub> and <italic>v</italic><sub>2</sub> are the output noises of code and carrier discriminators respectively.</p>
<p>As shown in <xref rid="FD4" ref-type="disp-formula">Equation (3)</xref>, the code phase error <italic>δτ</italic> is proportional to the carrier frequency error <italic>δf</italic>, and in order to decrease the state space dimension the “carrier aided code tracking process” can be implemented “outside” the prefilter. In addition, as shown in <xref rid="FD5" ref-type="disp-formula">Equation (4)</xref>, if the normalized discriminators were used the measurements would contain no information of estimated signal amplitude, and the observability of which would be a substantial problem [<xref ref-type="bibr" rid="b16-sensors-12-09666">16</xref>]. In some cases, the baseband I/Q information were used as measurements directly [<xref ref-type="bibr" rid="b14-sensors-12-09666">14</xref>,<xref ref-type="bibr" rid="b15-sensors-12-09666">15</xref>] including the signal amplitude; however, a non-linear filter algorithm is required to implement code and carrier tracking [<xref ref-type="bibr" rid="b7-sensors-12-09666">7</xref>,<xref ref-type="bibr" rid="b14-sensors-12-09666">14</xref>,<xref ref-type="bibr" rid="b15-sensors-12-09666">15</xref>]. Considering the above analysis, the code phase error and signal amplitude will be excluded from the state space of prefilter in the following discussion.</p></sec></sec>
<sec>
<label>3.</label>
<title>The Simplified Prefilter Model with Application to Federated Ultra-Tight COMPASS/INS Integration Implementation</title>
<p>A simplified prefilter model for the federated ultra-tight COMPASS/INS integration is investigated for the reduction in the calculation load, and the corresponding integrated navigation filter model is also analyzed.</p>
<sec>
<label>3.1.</label>
<title>Simplified Prefilter Model with Adaptive Kalman Filter</title>
<p>For the <italic>jth</italic> (<italic>j</italic> = 1, 2, …, <italic>N</italic>) channel, the system model of the simplified pre-filter is defined as follows (discrete form):
<disp-formula id="FD6">
<label>(5)</label>
<mml:math id="mm9" display="block">
<mml:semantics id="sm9">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>ϕ</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mi>T</mml:mi></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mn>0.5</mml:mn>
<mml:msup>
<mml:mi>T</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mi>T</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mspace width="0.2em"/>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>ϕ</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>ϕ</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>f</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>a</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where 
<inline-formula>
<mml:math id="mm10" display="inline">
<mml:semantics id="sm10">
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mo>∅</mml:mo>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> (rad) is the carrier phase tracking error at time instant <italic>k</italic>, 
<inline-formula>
<mml:math id="mm11" display="inline">
<mml:semantics id="sm11">
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> (rad/s) is the carrier frequency error at time instant <italic>k</italic>, and 
<inline-formula>
<mml:math id="mm12" display="inline">
<mml:semantics id="sm12">
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> (rad/s<sup>2</sup>) is the carrier frequency rate error at time instant <italic>k</italic>.</p>
<p>The measurement is the output of two-quadrant arctangent carrier discriminator, and the corresponding measurement model is:
<disp-formula id="FD7">
<label>(6)</label>
<mml:math id="mm13" display="block">
<mml:semantics id="sm13">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">Z</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo>tan</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:mo>/</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">[</mml:mo>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable>
<mml:mo stretchy="false">]</mml:mo>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>ν</mml:mi>
<mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>Since the navigation solution accuracy is insufficient for carrier phase tracking [<xref ref-type="bibr" rid="b14-sensors-12-09666">14</xref>], the carrier phase is modified by channel filter directly, as shown in <xref ref-type="fig" rid="f3-sensors-12-09666">Figure 3</xref>. The carrier NCO control information is provided as follows:
<disp-formula id="FD8">
<label>(7)</label>
<mml:math id="mm14" display="block">
<mml:semantics id="sm14">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>φ</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mo>-</mml:mo></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">rem</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>φ</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mo>+</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>F</mml:mi></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mover accent="true">
<mml:mi>f</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>φ</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mo>+</mml:mo></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">rem</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>φ</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mo>-</mml:mo></mml:msubsup>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>⋅</mml:mo>
<mml:msup>
<mml:mi>T</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>f<sub>IF</sub></italic> represents the centre frequency of down-converted intermediate frequency(IF) COMPASS signal, Δ<italic>f̃<sub>j,k</sub></italic> represents the carrier Doppler frequency, 
<inline-formula>
<mml:math id="mm15" display="inline">
<mml:semantics id="sm15">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>φ</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> and 
<inline-formula>
<mml:math id="mm16" display="inline">
<mml:semantics id="sm16">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>φ</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> are the carrier phases after prefilter update, 
<inline-formula>
<mml:math id="mm17" display="inline">
<mml:semantics id="sm17">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>φ</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> and 
<inline-formula>
<mml:math id="mm18" display="inline">
<mml:semantics id="sm18">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>φ</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> are the carrier phases before prefilter update, 
<inline-formula>
<mml:math id="mm19" display="inline">
<mml:semantics id="sm19">
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> represents the updated state of prefilter, the subscript <italic>k</italic> represents the current time instant, <italic>rem</italic> represents remainder after division operation, and <italic>T</italic> is the prefilter update period.</p>
<p>In <xref rid="FD8" ref-type="disp-formula">Equation (7)</xref>, the carrier Doppler frequency is obtained from corrected INS information and COMPASS ephemeris as follows:
<disp-formula id="FD9">
<label>(8)</label>
<mml:math id="mm20" display="block">
<mml:semantics id="sm20">
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mover accent="true">
<mml:mi>f</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow>
<mml:mi>c</mml:mi></mml:mfrac>
<mml:mrow>
<mml:mo>〈</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">LOS</mml:mtext>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mrow>
<mml:mtext mathvariant="italic">sat</mml:mtext></mml:mrow></mml:msubsup>
<mml:mo>-</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">usr</mml:mtext></mml:mrow></mml:msubsup></mml:mrow>
<mml:mo>〉</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>f<sub>B</sub></italic><sub>3</sub> is the carrier frequency [<xref ref-type="bibr" rid="b1-sensors-12-09666">1</xref>,<xref ref-type="bibr" rid="b2-sensors-12-09666">2</xref>], <italic>c</italic> is light velocity, <bold><italic>LOS</italic></bold><italic><sub>j,k</sub></italic> is the unit line-of-sight vector from user to satellite <italic>j</italic>, 
<inline-formula>
<mml:math id="mm21" display="inline">
<mml:semantics id="sm21">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mrow>
<mml:mtext mathvariant="italic">sat</mml:mtext></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> and 
<inline-formula>
<mml:math id="mm22" display="inline">
<mml:semantics id="sm22">
<mml:mrow>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">V</mml:mtext>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">usr</mml:mtext></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> represent the satellite and user velocity in ECEF frame respectively, and &lt;,&gt; represents vector dot operation.</p>
<p>Since the code tracking related parameter has been excluded from the state space of this simplified prefilter model, the code tracking is controlled by the carrier tracking process. The code NCO control information is provided as:
<disp-formula id="FD10">
<label>(9)</label>
<mml:math id="mm23" display="block">
<mml:semantics id="sm23">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mrow>
<mml:mtext mathvariant="italic">code</mml:mtext></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>A</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow></mml:msubsup>
<mml:mo>-</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mover accent="true">
<mml:mi>f</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>A</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">code</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">sample</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">code</mml:mtext></mml:mrow></mml:msub></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>τ</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>τ</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">code</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where 
<inline-formula>
<mml:math id="mm24" display="inline">
<mml:semantics id="sm24">
<mml:mrow>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>A</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> is the code frequency [<xref ref-type="bibr" rid="b1-sensors-12-09666">1</xref>,<xref ref-type="bibr" rid="b2-sensors-12-09666">2</xref>], <italic>f<sub>sample</sub></italic> is the sampling frequency, <italic>l<sub>code</sub></italic> is the code length [<xref ref-type="bibr" rid="b1-sensors-12-09666">1</xref>,<xref ref-type="bibr" rid="b2-sensors-12-09666">2</xref>], and [<bold><italic>A</italic></bold>] represents the nearest integer greater than or equal to <italic>A</italic>.</p>
<p><xref rid="FD9" ref-type="disp-formula">Equation (8)</xref> shows that the carrier Doppler frequency is obtained from INS information directly and <xref rid="FD10" ref-type="disp-formula">Equation (9)</xref> shows that code phase is controlled by code frequency and propagated forward sequentially. As the code frequency is obtained from carrier frequency Doppler, the feedback from traditional prefilter to code NCO computation is omitted as shown in <xref ref-type="fig" rid="f3-sensors-12-09666">Figure 3</xref> with a dashed arrow.</p>
<p>Comparing <xref rid="FD4" ref-type="disp-formula">Equations (3)</xref> and <xref rid="FD6" ref-type="disp-formula">(5)</xref>, it can be observed that the code/carrier divergence has been excluded from process noises in the simplified prefilter model resulting in degradation in the carrier tracking process [<xref ref-type="bibr" rid="b11-sensors-12-09666">11</xref>,<xref ref-type="bibr" rid="b18-sensors-12-09666">18</xref>]. Therefore, an adaptive Kalman filter was incorporated to compensate for the code/carrier divergence. Multi-model-based and innovation-based adaptive estimations are most commonly used adaptive Kalman filtering algorithms [<xref ref-type="bibr" rid="b19-sensors-12-09666">19</xref>]. Since the simplified prefilter model is already determined an innovation-based adaptive estimation was adopted here. In innovation-based adaptive estimation, the process and measurement noise covariance matrices are adapted using innovation sequences; however, since the code/carrier divergence is a process noise the adaptation emphasis is on 
<inline-formula>
<mml:math id="mm25" display="inline">
<mml:semantics id="sm25">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">Q</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> in this manuscript. The initial value of 
<inline-formula>
<mml:math id="mm26" display="inline">
<mml:semantics id="sm26">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">Q</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> is calculated as follows:
<disp-formula id="FD11">
<label>(10)</label>
<mml:math id="mm27" display="block">
<mml:semantics id="sm27">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">Q</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mn>0</mml:mn>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msup>
<mml:mi>π</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo>⋅</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mn>8</mml:mn>
<mml:msup>
<mml:mi>π</mml:mi>
<mml:mn>4</mml:mn></mml:msup>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo>⋅</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:msup>
<mml:mi>π</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow>
<mml:mn>2</mml:mn></mml:msubsup></mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msup>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>dR</italic><sup>2</sup>/<italic>dt</italic><sup>2</sup> is the vehicle's light of sight acceleration, and <italic>h</italic><sub>0</sub> and <italic>h</italic><sub>−2</sub> represent the white component and random walk of the oscillator frequency noise [<xref ref-type="bibr" rid="b22-sensors-12-09666">22</xref>].</p>
<p>The state correction sequence is used to adapt the process noise covariance matrix 
<inline-formula>
<mml:math id="mm28" display="inline">
<mml:semantics id="sm28">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">Q</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> which is computed as follows [<xref ref-type="bibr" rid="b19-sensors-12-09666">19</xref>]:
<disp-formula id="FD12">
<label>(11)</label>
<mml:math id="mm29" display="block">
<mml:semantics id="sm29">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">Q</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="bold-italic">N</mml:mi></mml:mfrac>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mn>0</mml:mn></mml:msub></mml:mrow>
<mml:mi>k</mml:mi></mml:munderover>
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mi>T</mml:mi></mml:msup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mo>-</mml:mo>
<mml:mi mathvariant="bold">Φ</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:msup>
<mml:mi mathvariant="bold">Φ</mml:mi>
<mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where 
<inline-formula>
<mml:math id="mm30" display="inline">
<mml:semantics id="sm30">
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> is the state correction sequence which is computed as:
<disp-formula id="FD13">
<label>(12)</label>
<mml:math id="mm31" display="block">
<mml:semantics id="sm31">
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>m</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo>-</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>While a standard Kalman filter, shown in <xref rid="FD14" ref-type="disp-formula">Equation (13)</xref>, is used to estimate the states of a traditional prefilter model, an adaptive Kalman filter is used for the simplified prefilter model:
<disp-formula id="FD14">
<label>(13)</label>
<mml:math id="mm32" display="block">
<mml:semantics id="sm32">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Φ</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Φ</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:msup>
<mml:mi mathvariant="normal">Φ</mml:mi>
<mml:mi mathvariant="bold-italic">T</mml:mi></mml:msup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">Q</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:msup>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:mi mathvariant="bold-italic">T</mml:mi></mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:msup>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:mi mathvariant="bold-italic">T</mml:mi></mml:msup>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold-italic">R</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">Z</mml:mi>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo>-</mml:mo>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>|</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi>k</mml:mi></mml:msub>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>Associated matrix multiplication operations in above Kalman filter algorithms are implemented to compare the computational complexities of both filter models. <xref ref-type="table" rid="t1-sensors-12-09666">Table 1</xref> shows the number of multiplication operations in detail.</p>
<p>In <xref ref-type="table" rid="t1-sensors-12-09666">Table 1</xref>, <italic>N</italic> is the window length as used in <xref rid="FD12" ref-type="disp-formula">Equation (11)</xref>. For example, if <italic>N</italic> = 5 was considered, a 
<inline-formula>
<mml:math id="mm33" display="inline">
<mml:semantics id="sm33">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>-</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>128</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>45</mml:mn></mml:mrow>
<mml:mrow>
<mml:mn>503</mml:mn></mml:mrow></mml:mfrac>
<mml:mo>≈</mml:mo>
<mml:mn>65.6</mml:mn>
<mml:mo>%</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> reduction in total number of multiplications is achieved.</p></sec>
<sec>
<label>3.2.</label>
<title>Integrated Navigation Filter</title>
<p>The COMPASS B3 frequency signal considered in this paper is BPSK modulated as GPS L1 frequency signal [<xref ref-type="bibr" rid="b1-sensors-12-09666">1</xref>,<xref ref-type="bibr" rid="b2-sensors-12-09666">2</xref>], the system model of navigation filter is almost in accordance with <xref rid="FD2" ref-type="disp-formula">Equation (2)</xref> by just replacing <italic>λ<sub>L</sub></italic><sub>1</sub> with <italic>λ<sub>B</sub></italic><sub>3</sub> and 
<inline-formula>
<mml:math id="mm34" display="inline">
<mml:semantics id="sm34">
<mml:mrow>
<mml:msubsup>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>A</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> with 
<inline-formula>
<mml:math id="mm35" display="inline">
<mml:semantics id="sm35">
<mml:mrow>
<mml:msubsup>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>A</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula>. However, as in [<xref ref-type="bibr" rid="b11-sensors-12-09666">11</xref>,<xref ref-type="bibr" rid="b23-sensors-12-09666">23</xref>], only the delta pseudorange and delta pseudorange residuals are chosen as measurements to the navigation filter. For the <italic>jth</italic> channel, the relationship between measurements and estimated states of pre-filter is as follows:
<disp-formula id="FD15">
<label>(14)</label>
<mml:math id="mm36" display="block">
<mml:semantics id="sm36">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>ρ</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ρ</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>ϕ</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo>-</mml:mo>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>ϕ</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo>-</mml:mo>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>-</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>-</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>λ<sub>B</sub></italic><sub>3</sub> is the COMPASS B3 carrier wavelength, 
<inline-formula>
<mml:math id="mm37" display="inline">
<mml:semantics id="sm37">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> and 
<inline-formula>
<mml:math id="mm38" display="inline">
<mml:semantics id="sm38">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> are the estimated state of prefilter at time instant “<italic>k</italic>” and “<italic>k</italic> − 1”.</p>
<p>The corresponding measurement equation of integrated navigation filter is as follows (only a single channel is list):
<disp-formula id="FD16">
<label>(15)</label>
<mml:math id="mm39" display="block">
<mml:semantics id="sm39">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>ρ</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ρ</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mo>-</mml:mo></mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msup>
<mml:mtext mathvariant="bold">u</mml:mtext>
<mml:mtext>T</mml:mtext></mml:msup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mo>-</mml:mo></mml:mrow>
<mml:mi>T</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">pre</mml:mtext></mml:mrow>
<mml:mtext>T</mml:mtext></mml:msubsup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>T</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:msubsup>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">pre</mml:mtext></mml:mrow>
<mml:mtext>T</mml:mtext></mml:msubsup>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>T</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:msubsup>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">pre</mml:mtext></mml:mrow>
<mml:mtext>T</mml:mtext></mml:msubsup>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi></mml:msubsup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mi>T</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mo>-</mml:mo></mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mtext>T</mml:mtext></mml:msup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mo>-</mml:mo></mml:mrow>
<mml:mi>T</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">pre</mml:mtext></mml:mrow>
<mml:mtext>T</mml:mtext></mml:msubsup>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mo>-</mml:mo></mml:mrow>
<mml:mi>T</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">pre</mml:mtext></mml:mrow>
<mml:mtext>T</mml:mtext></mml:msubsup>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi></mml:msubsup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mspace width="0.2em"/>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">R</mml:mi>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msup>
<mml:mi>ψ</mml:mi>
<mml:mi>e</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msup>
<mml:mi>ω</mml:mi>
<mml:mi>b</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mi>b</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mi>b</mml:mi></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mi>d</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>ν</mml:mi>
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>ρ</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>ν</mml:mi>
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ρ</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold>u</bold><italic><sub>pre</sub></italic> is the unit LOS vector from receiver to satellite in previous filter update period, <bold>u</bold> is the unit LOS vector from receiver to satellite in current filter update period, Δ<bold>u</bold> is the difference of above two LOS vectors.</p>
<p>The variances of measurement noises can be obtained from estimation error covariance matrices of pre-filters as follows [<xref ref-type="bibr" rid="b11-sensors-12-09666">11</xref>]:
<disp-formula id="FD17">
<label>(16)</label>
<mml:math id="mm40" display="block">
<mml:semantics id="sm40">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">R</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>ν</mml:mi>
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>ρ</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:msub></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>ν</mml:mi>
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ρ</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:msub></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi></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:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>-</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>-</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>T</mml:mi>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>-</mml:mo>
<mml:msup>
<mml:mi>T</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">B</mml:mi>
<mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi></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:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>-</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>T</mml:mi>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where 
<inline-formula>
<mml:math id="mm41" display="inline">
<mml:semantics id="sm41">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> and 
<inline-formula>
<mml:math id="mm42" display="inline">
<mml:semantics id="sm42">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> are the estimation error covariance matrix of <italic>jth</italic> prefilter at time instant “<italic>k</italic>” and “<italic>k</italic> − 1”.</p>
<p>With the simplified prefilter model and adaptive Kalman filter, the federated COMPASS/INS integration implementation process is shown in <xref ref-type="fig" rid="f4-sensors-12-09666">Figure 4</xref>, where <bold>Φ</bold> represents the system matrix of <italic>jth</italic> prefilter defined in <xref rid="FD6" ref-type="disp-formula">Equation (5)</xref>, 
<inline-formula>
<mml:math id="mm43" display="inline">
<mml:semantics id="sm43">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">R</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">prefilter</mml:mtext></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> represents the measurement noise variance of <italic>jth</italic> prefilter, 
<inline-formula>
<mml:math id="mm44" display="inline">
<mml:semantics id="sm44">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">Z</mml:mi>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">nav</mml:mtext>
<mml:mo>-</mml:mo>
<mml:mtext mathvariant="italic">filter</mml:mtext></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> represents the measurements of integrated navigation filter at current instant <italic>k</italic>, and 
<inline-formula>
<mml:math id="mm45" display="inline">
<mml:semantics id="sm45">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">R</mml:mi>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">nav</mml:mtext>
<mml:mo>-</mml:mo>
<mml:mtext mathvariant="italic">filter</mml:mtext></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> represents the measurement noise covariance of integrated navigation filter at current instant <italic>k</italic>. The flow diagram consists of the following steps:
<list list-type="order">
<list-item>
<p>COMPASS IF data was sampled through a hardware sampling system, which will be discussed in “Test description” in detail.</p></list-item>
<list-item>
<p>The acquisition process gets the initial code phase and carrier Doppler frequency for different visible satellites, which will be used to set the initial values for prefilters.</p></list-item>
<list-item>
<p>Adaptive Kalman filter algorithm is implemented in each prefilter to implement code and carrier tracking, and provide measurement information to the integrated navigation filter.</p></list-item>
<list-item>
<p>With measurement information from the prefilters and INS, a classical Kalman filter algorithm is implemented for integrated navigation filter, and the corresponding INS correction information is fed back to update INS errors.</p></list-item>
<list-item>
<p>Modified INS information and COMPASS ephemeris are used to generate carrier frequency for different satellites [<xref ref-type="bibr" rid="b21-sensors-12-09666">21</xref>].</p></list-item>
<list-item>
<p>Repeat steps (3) to (5).</p></list-item></list></p></sec></sec>
<sec>
<label>4.</label>
<title>Test Description</title>
<p>Federated COMPASS/INS integration with S-AKF and T-KF were implemented in software. Two sets of data were used to compare the performance of S-AKF and T-KF. First, data were collected using a hardware complex GNSS/INS signal simulator to assess the performance in high dynamic case. Second, field data were collected with a COMPASS B3 frequency antenna and an INS to assess the tracking performance of the above two methods.</p>
<p>The comparison of the performance of S-AKF and T-KF is made in both the tracking domain and navigation domain. In tracking domain, Phase Lock Indicator (PLI) and Doppler frequency tracking error are used to evaluate the carrier phase tracking ability. In navigation domain, the position and velocity errors in Earth Centered Earth Fixed (ECEF) frame were compared.</p>
<sec sec-type="results">
<label>4.1.</label>
<title>Simulation Test Results</title>
<p>For the simulation tests, a complex GNSS/INS signal hardware simulator was used to generate the COMPASS radio frequency(RF) signal and INS's accelerometers and gyroscopes data (INS data for short). A hardware sampling system was constructed to sample and store the digitized COMPASS IF signal and INS data. Data collection process for the simulation case is shown in <xref ref-type="fig" rid="f5-sensors-12-09666">Figure 5</xref>.</p>
<p>The data collection system consists of complex GNSS/INS signal hardware simulator, COMPASS B3 RF module, FCFR-PCIe9801 data sampling card [<xref ref-type="bibr" rid="b24-sensors-12-09666">24</xref>], RCK-I-ET224-MC electronic disk [<xref ref-type="bibr" rid="b25-sensors-12-09666">25</xref>] and FS725 rubidium clock [<xref ref-type="bibr" rid="b26-sensors-12-09666">26</xref>]. The function of each component is as follows:
<list list-type="order">
<list-item>
<p>GNSS/INS hardware simulator provides synchronized COMPASS B3 frequency RF signal and INS data; the vehicle scenario and signal strength can be configured by users for their corresponding applications.</p></list-item>
<list-item>
<p>COMPASS B3 RF module is responsible for down-converting B3 RF signal into IF signal and providing driving clock for FCFR-PCIe9801 data sampling card. A reference sampling clock from Rubidium Oscillator is used for the data sampling card.</p></list-item>
<list-item>
<p>FCFR-PCIe9801 data sampling card completes the data sampling process of IF signal and transfers the sampled data to electronic disk in real time.</p></list-item>
<list-item>
<p>RCK-I-ET224-MC electronic disk is responsible for storing sampled IF data from sampling card.</p></list-item>
<list-item>
<p>FS725 rubidium clock provides reference clock for radio frequency module.</p></list-item></list></p>
<p>The ultra-tight COMPASS/INS integration algorithm was implemented in MATLAB, and the parameters defined in baseband signal processing part are listed in <xref ref-type="table" rid="t2-sensors-12-09666">Table 2</xref>.</p>
<p>In <xref ref-type="table" rid="t2-sensors-12-09666">Table 2</xref>, <italic>h</italic><sub>0</sub> and <italic>h</italic><sub>−2</sub> are quantitative description of oscillator biases of COMPASS B3 RF module and FS725 rubidium clock. With the complex GNSS/INS signal hardware simulator, a reference trajectory with known dynamics was generated with 10 mg accelerometer bias errors and 200 deg/h gyroscope bias errors. The reference position and velocity in ECEF frame are shown in <xref ref-type="fig" rid="f6-sensors-12-09666">Figure 6(a)</xref>, where “star” represents the initial position while ‘square’ represents the end. The COMPASS signal strength was kept at −130 dBm (<italic>C</italic>/<italic>N</italic><sub>0</sub> ≈ 35 dB − Hz). The satellites 01, 02, 03, 04, 07 and 08 were visible during the simulation test, and the sky plot of the satellites is shown in <xref ref-type="fig" rid="f6-sensors-12-09666">Figure 6(b)</xref>.</p>
<sec sec-type="methods">
<label>4.1.1.</label>
<title>Tracking Domain Analysis</title>
<p>Phase lock indicator (PLI) and Doppler frequency tracking errors were used to evaluate the tracking performance. The PLI is calculated as described by [<xref ref-type="bibr" rid="b4-sensors-12-09666">4</xref>]:
<disp-formula id="FD18">
<label>(12)</label>
<mml:math id="mm46" display="block">
<mml:semantics id="sm46">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mi>L</mml:mi>
<mml:msubsup>
<mml:mi>I</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>M</mml:mi></mml:munderover>
<mml:mrow>
<mml:msubsup>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow>
<mml:mi>k</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo>-</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>M</mml:mi></mml:munderover>
<mml:mrow>
<mml:msubsup>
<mml:mi>Q</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow>
<mml:mi>k</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>M</mml:mi></mml:munderover>
<mml:mrow>
<mml:msubsup>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow>
<mml:mi>k</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>M</mml:mi></mml:munderover>
<mml:mrow>
<mml:msubsup>
<mml:mi>Q</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow>
<mml:mi>k</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mfrac></mml:mrow></mml:semantics></mml:math></disp-formula>where 
<inline-formula>
<mml:math id="mm47" display="inline">
<mml:semantics id="sm47">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> is the in-phase prompt correlator output, 
<inline-formula>
<mml:math id="mm48" display="inline">
<mml:semantics id="sm48">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">Q</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> is the quadra-phase prompt correlator output, and <italic>M</italic> = 20 is the window length chosen for calculating PLI.</p>
<p>Simplifying <xref rid="FD13" ref-type="disp-formula">Equation (12)</xref> yields:
<disp-formula id="FD19">
<label>(13)</label>
<mml:math id="mm49" display="block">
<mml:semantics id="sm49">
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mi mathvariant="bold-italic">L</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup>
<mml:mo>≈</mml:mo>
<mml:mo>cos</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mi>ϕ</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where 
<inline-formula>
<mml:math id="mm50" display="inline">
<mml:semantics id="sm50">
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:msubsup>
<mml:mo>∅</mml:mo>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> is the carrier phase tracking error of <italic>jth</italic> prefilter.</p>
<p>As shown in <xref rid="FD14" ref-type="disp-formula">Equation (13)</xref>, the value of PLI lies between +1 and −1 and a value of positive one indicates perfect phase lock.</p>
<p>The variations of PLI and Doppler frequency tracking errors for SV04 and SV05 are shown in <xref ref-type="fig" rid="f7-sensors-12-09666">Figure 7(a,b)</xref>, respectively. From these figures, the PLI values of S-AKF and T-KF are closer to +1, which indicated that both S-AKF and T-KF are in a near perfect tracking status in this case. The root mean square (RMS) of the tracking Doppler frequency errors are summarized in <xref ref-type="table" rid="t3-sensors-12-09666">Table 3</xref> where the S-AKF and T-KF showed an almost similar Doppler frequency tracking errors.</p></sec>
<sec sec-type="methods">
<label>4.1.2.</label>
<title>Navigation Domain Analysis</title>
<p>For federated COMPASS/INS integrated navigation system with S-AKF and T-KF, the estimated velocity and position errors in ECEF frame were used to compare the navigation performance as shown in <xref ref-type="fig" rid="f8-sensors-12-09666">Figure 8(a,b)</xref>, respectively.</p>
<p>The statistics of position and velocity estimation errors are summarized in <xref ref-type="table" rid="t4-sensors-12-09666">Table 4</xref> where the S-AKF and T-KF showed very closer velocity and position estimation errors.</p></sec></sec>
<sec sec-type="results">
<label>4.2.</label>
<title>Field Test Results</title>
<p>A field test was conducted to collect real COMPASS B3 frequency IF data and INS data. A COMPASS B3 frequency antenna and an INS were used to replace the complex GNSS/INS signal hardware simulator in simulation case. The corresponding data collection process in the field is shown in the <xref ref-type="fig" rid="f9-sensors-12-09666">Figure 9</xref>. The INS used in this case had 5 mg accelerometer bias errors and 150 deg/h gyroscope bias errors.</p>
<p>The antenna was located on the roof of an office building to guarantee a strong COMPASS signal (<italic>C</italic>/<italic>N</italic><sub>0</sub> ≈ 45 dB − Hz), and the INS was collocated with the antenna. A high precision GPS receiver was used to provide the truth reference of the antenna which are −2,207,210.269, 5,171,488.332 and 3,000,859.525 m in the ECEF frame. The satellites 01, 03, 04, 05, 06, 08, 09 and 10 were visible during the field test, and the sky plot of the satellites is shown in <xref ref-type="fig" rid="f10-sensors-12-09666">Figure 10</xref>.</p>
<sec sec-type="methods">
<label>4.2.1.</label>
<title>Tracking Domain Analysis</title>
<p>The variations of PLI and Doppler frequency tracking errors for SV01 and SV03 are shown in <xref ref-type="fig" rid="f11-sensors-12-09666">Figure 11(a,b)</xref> respectively. From these figures it can be observed that the PLI values of S-AKF and T-KF are closer to +1 which indicate that both S-AKF and T-KF were in a near perfect tracking status.</p>
<p>The RMS of the tracking Doppler frequency errors are summarized in <xref ref-type="table" rid="t5-sensors-12-09666">Table 5</xref>. The S-AKF and T-KF showed almost similar Doppler frequency tracking errors.</p></sec>
<sec sec-type="methods">
<label>4.2.2.</label>
<title>Navigation Domain Analysis</title>
<p>For the field test case, the estimated velocity and position errors with S-AKF and T-KF in ECEF frame are shown in <xref ref-type="fig" rid="f12-sensors-12-09666">Figure 12(a,b)</xref>, respectively. The statistics of position and velocity estimation errors are summarized in <xref ref-type="table" rid="t6-sensors-12-09666">Table 6</xref>, where the S-AKF and T-KF showed almost similar velocity and position estimation errors.</p></sec></sec></sec>
<sec sec-type="conclusions">
<label>5.</label>
<title>Conclusions and Future Work</title>
<p>This paper investigated a simplified prefilter model for the ultratight COMPASS/INS integrated system. When compared to a traditional 5-dimension state prefilter model, the normalized signal amplitude and code tracking error were excluded, and only carrier phase, carrier frequency and carrier frequency rate tracking errors were included in the state space. However, as the code is not considered and there is a possibility of code/carrier divergence resulting in degradation in the carrier tracking process, an adaptive Kalman filter has been used to compensate for the divergence. Based on the COMPASS B3 frequency signal a federated COMPASS/INS integration system was implemented in software. A hardware sampling system was constructed to collect COMPASS IF data and INS data. Simulation and field tests showed an almost similar tracking and navigation performances of federated COMPASS/INS integration with traditional prefilter model and the proposed models. However, scalar measurement prefilter model with a 3-dimension state, even with an inclusion of an adaptive Kalman filter, has been observed to have significant reduction in the calculation load when compared to a traditional 5-dimension state and 2-dimension measurement prefilter model.</p>
<p>As with the GPS case, the ultra-tight COMPASS/INS integration shows an advantage over independent COMPASS receivers, particularly in low signal-to-noise and high dynamics environment. Only a static field test and a high dynamic simulation test were conducted for this analysis, and the future work will focus on further quantifying the benefits of ultra-tight COMPASS/INS integrations. The same simulation or field test will be conducted as the COMPASS, which is still a ‘local navigation’ satellite system, evolves into a global navigation satellite system in the future. Finally, although the COMPASS IF data and INS data collection was implemented in hardware, and the ultra-tight integration part was implemented in software, the future work will focus on the hardware implementation for the entire system.</p></sec></body>
<back>
<ack>
<p>This work was supported by the National Natural Science Foundation of China (Grant No. 61104201) and Program for New Century Excellent Talents (Grant No. NCET-07-0225).</p></ack>
<ref-list>
<title>References</title>
<ref id="b1-sensors-12-09666"><label>1.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gao</surname><given-names>G.X.X.</given-names></name><name><surname>Chen</surname><given-names>A.</given-names></name><name><surname>Lo</surname><given-names>S.</given-names></name><name><surname>Lorenzo</surname><given-names>D.D.</given-names></name><name><surname>Walter</surname><given-names>T.</given-names></name><name><surname>Enge</surname><given-names>P.</given-names></name></person-group><article-title>Compass-M1 broadcast codes in E2, E5b, and E6 frequency bands</article-title><source>IEEE J. Sel. Top. Signal Process.</source><year>2009</year><volume>3</volume><fpage>599</fpage><lpage>612</lpage><pub-id pub-id-type="doi">10.1109/JSTSP.2009.2025635</pub-id></citation></ref>
<ref id="b2-sensors-12-09666"><label>2.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Gao</surname><given-names>G.X.X.</given-names></name><name><surname>Chen</surname><given-names>A.</given-names></name><name><surname>Lo</surname><given-names>S.</given-names></name><name><surname>Lorenzo</surname><given-names>D.D.</given-names></name><name><surname>Walter</surname><given-names>T.</given-names></name><name><surname>Enge</surname><given-names>P.</given-names></name></person-group><article-title>Compass-M1 broadcast codes and their application to acquisition and tracking</article-title><conf-name>Proceedings of the Institute of Navigation (ION NTM 2008)</conf-name><conf-loc>San Diego, CA, USA</conf-loc><conf-date>28– 30 January 2008</conf-date><fpage>133</fpage><lpage>141</lpage></citation></ref>
<ref id="b3-sensors-12-09666"><label>3.</label><citation citation-type="web"><article-title>Chinese COMPASS Satellite Navigation System Starts Pilot Running from this Day Onwards</article-title><comment>Available online: <ext-link xlink:href="http://news.sina.com.cn" ext-link-type="uri">http://news.sina.com.cn</ext-link> (accessed on 18 May 2012)</comment></citation></ref>
<ref id="b4-sensors-12-09666"><label>4.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Parkinson</surname><given-names>B.</given-names></name><name><surname>Spilker</surname><given-names>J.</given-names></name></person-group><source>Global Positioning System: Theory and Applications</source><publisher-name>The American Institute of Aeronautics and Astronautics (AIAA)</publisher-name><publisher-loc>Washington: DC, USA</publisher-loc><year>1996</year></citation></ref>
<ref id="b5-sensors-12-09666"><label>5.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Kaplan</surname><given-names>E.D.</given-names></name></person-group><source>Understanding GPS: Principles and Applications</source><edition>2nd ed.</edition><publisher-name>Artech House</publisher-name><publisher-loc>Norwood, MA, USA</publisher-loc><year>2005</year></citation></ref>
<ref id="b6-sensors-12-09666"><label>6.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Babu</surname><given-names>R.</given-names></name><name><surname>Wang</surname><given-names>J.L.</given-names></name></person-group><article-title>Ultra-tight GPS/INS/PL integration: A system concept and performance analysis</article-title><source>GPS Solut.</source><year>2009</year><volume>13</volume><fpage>75</fpage><lpage>82</lpage><pub-id pub-id-type="doi">10.1007/s10291-008-0097-9</pub-id></citation></ref>
<ref id="b7-sensors-12-09666"><label>7.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Sivananthan</surname><given-names>A.</given-names></name><name><surname>Weitzen</surname><given-names>J.</given-names></name></person-group><article-title>Improving optimality of deeply coupled integration of GPS and INS</article-title><conf-name>Proceedings of the Institute of Navigation (ION NTM 2009)</conf-name><conf-loc>Anaheim, CA, USA</conf-loc><conf-date>26– 28 January 2009</conf-date><fpage>426</fpage><lpage>429</lpage></citation></ref>
<ref id="b8-sensors-12-09666"><label>8.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Bernal</surname><given-names>D.</given-names></name><name><surname>Closas</surname><given-names>P.</given-names></name><name><surname>Rubio</surname><given-names>J.A.F.</given-names></name></person-group><article-title>Particle filtering algorithm for ultra-tight GNSS/INS integration</article-title><conf-name>Proceedings of the Institute of Navigation (ION GNSS 2008)</conf-name><conf-loc>Savannah, GA, USA</conf-loc><conf-date>16– 19 September 2008</conf-date><fpage>2137</fpage><lpage>2144</lpage></citation></ref>
<ref id="b9-sensors-12-09666"><label>9.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Groves</surname><given-names>P.D.</given-names></name><name><surname>Christopher</surname><given-names>J.M.</given-names></name><name><surname>Alex</surname><given-names>A.M.</given-names></name></person-group><article-title>Demonstration of non-coherent deep INS/GPS integration for optimized signal-to-noise performance</article-title><conf-name>Proceedings of the Institute of Navigation (ION GNSS 2007)</conf-name><conf-loc>Fort Worth, TX, USA</conf-loc><conf-date>25– 28 September 2007</conf-date><fpage>2627</fpage><lpage>2638</lpage></citation></ref>
<ref id="b10-sensors-12-09666"><label>10.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Lashley</surname><given-names>M.</given-names></name><name><surname>Bevly</surname><given-names>D.M.</given-names></name></person-group><article-title>A comparison of the performance of a non-coherent deeply integrated navigation algorithm and a tightly coupled navigation algorithm</article-title><conf-name>Proceedings of the Institute of Navigation (ION GNSS 2008)</conf-name><conf-loc>Savannah, GA, USA</conf-loc><conf-date>16– 19 September 2008</conf-date><fpage>2123</fpage><lpage>2129</lpage></citation></ref>
<ref id="b11-sensors-12-09666"><label>11.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Ernest</surname><given-names>J.O.</given-names></name></person-group><article-title>Analysis of an ultra-tightly coupled GPS/INS system in jamming</article-title><conf-name>Proceedings of IEEE /ION, Position, Location, and Navigation Symposium</conf-name><conf-loc>Sac Diego, CA, USA</conf-loc><conf-date>25– 27 April 2006</conf-date><fpage>44</fpage><lpage>53</lpage></citation></ref>
<ref id="b12-sensors-12-09666"><label>12.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Babu</surname><given-names>R.</given-names></name></person-group><article-title>Mitigating the correlations in INS aided tracking loop measurements: A Kalman filter based approach</article-title><conf-name>Proceedings of the institute of Navigation (ION GNSS 2004)</conf-name><conf-loc>Long Beach, CA, USA</conf-loc><conf-date>21– 24 September 2004</conf-date><fpage>1566</fpage><lpage>1574</lpage></citation></ref>
<ref id="b13-sensors-12-09666"><label>13.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Luo</surname><given-names>Y.</given-names></name><name><surname>Babu</surname><given-names>R.</given-names></name><name><surname>Wu</surname><given-names>W.Q.</given-names></name><name><surname>He</surname><given-names>X.F.</given-names></name></person-group><article-title>Double-filter model with modified kalman filter for baseband signal pre-processing with application to ultra-tight GPS/INS integration</article-title><source>GPS Solut.</source><year>2012</year><pub-id pub-id-type="doi">10.1007/s10291-011-0246-4</pub-id></citation></ref>
<ref id="b14-sensors-12-09666"><label>14.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Petovello</surname><given-names>M.</given-names></name><name><surname>Lachapelle</surname><given-names>G.</given-names></name></person-group><article-title>Comparison of vector-based software receiver implementation with application to ultra-tight GPS/INS integration</article-title><conf-name>Proceedings of the Institute of Navigation (ION GNSS 2006)</conf-name><conf-loc>Fort Worth, TX, USA</conf-loc><conf-date>26– 29 September 2006</conf-date><fpage>1790</fpage><lpage>1799</lpage></citation></ref>
<ref id="b15-sensors-12-09666"><label>15.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Won</surname><given-names>J.H.</given-names></name><name><surname>Dotterbock</surname><given-names>D.</given-names></name><name><surname>Eissfeller</surname><given-names>B.</given-names></name></person-group><article-title>Performance comparison of different forms of Kalman filter approaches for a vector-based GNSS signal tracking loop</article-title><source>Navigation</source><year>2010</year><volume>57</volume><fpage>185</fpage><lpage>199</lpage></citation></ref>
<ref id="b16-sensors-12-09666"><label>16.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Meskin</surname><given-names>D.G.</given-names></name><name><surname>Bar-Itzhack</surname><given-names>I.Y.</given-names></name></person-group><article-title>Observability analysis of piece-wise constant systems-part I: Theory</article-title><source>IEEE Trans. Aerosp. Electron. Syst.</source><year>1992</year><volume>28</volume><fpage>1056</fpage><lpage>1067</lpage><pub-id pub-id-type="doi">10.1109/7.165367</pub-id></citation></ref>
<ref id="b17-sensors-12-09666"><label>17.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Borre</surname><given-names>K.</given-names></name><name><surname>Akos</surname><given-names>D.M.</given-names></name><name><surname>Bertelsen</surname><given-names>N.</given-names></name><name><surname>Rinder</surname><given-names>P.</given-names></name><name><surname>Jensen</surname><given-names>S.H.</given-names></name></person-group><source>A Software-Defined GPS and GALILEO Receiver: A Single-Frequency Approach</source><publisher-name>Birkhauser Boston</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>2007</year></citation></ref>
<ref id="b18-sensors-12-09666"><label>18.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>O'Driscoll</surname><given-names>C.</given-names></name><name><surname>Petovello</surname><given-names>M.G.</given-names></name><name><surname>Lachapelle</surname><given-names>G.</given-names></name></person-group><article-title>Choosing the coherent integration time for Kalman filter-based carrier-phase tracking of GNSS signals</article-title><source>GPS Solut.</source><year>2011</year><volume>15</volume><fpage>345</fpage><lpage>356</lpage><pub-id pub-id-type="doi">10.1007/s10291-010-0194-4</pub-id></citation></ref>
<ref id="b19-sensors-12-09666"><label>19.</label><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><article-title>Adaptive Kalman filtering for INS/GPS</article-title><source>J. Geod.</source><year>1999</year><volume>73</volume><fpage>193</fpage><lpage>203</lpage><pub-id pub-id-type="doi">10.1007/s001900050236</pub-id></citation></ref>
<ref id="b20-sensors-12-09666"><label>20.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Groves</surname><given-names>P.D.</given-names></name></person-group><source>Principle of GNSS, Inertial, and Multisensor Integrated Navigation Systems</source><publisher-name>Artech House</publisher-name><publisher-loc>Norwood, MA, USA</publisher-loc><year>2008</year></citation></ref>
<ref id="b21-sensors-12-09666"><label>21.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>So</surname><given-names>H.</given-names></name><name><surname>Lee</surname><given-names>T.</given-names></name><name><surname>Jeon</surname><given-names>S.</given-names></name><name><surname>Kim</surname><given-names>C.</given-names></name><name><surname>Kee</surname><given-names>C.</given-names></name><name><surname>Kim</surname><given-names>T.</given-names></name><name><surname>Lee</surname><given-names>S.</given-names></name></person-group><article-title>Implementation of a vector-based tracking loop receiver in a pseudolite navigation system</article-title><source>Sensors</source><year>2010</year><volume>10</volume><fpage>6324</fpage><lpage>6346</lpage><pub-id pub-id-type="doi">10.3390/s100706324</pub-id><pub-id pub-id-type="pmid">22163552</pub-id></citation></ref>
<ref id="b22-sensors-12-09666"><label>22.</label><citation citation-type="thesis"><person-group person-group-type="author"><name><surname>Winkel</surname><given-names>J.O.</given-names></name></person-group><article-title>Modeling and Simulating GNSS Signal Structures and Receivers</article-title><source>Ph.D. Thesis</source><publisher-name>University FAF Munich</publisher-name><publisher-loc>Neubiberg, Germany</publisher-loc><year>2003</year></citation></ref>
<ref id="b23-sensors-12-09666"><label>23.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Crane</surname><given-names>R.N.</given-names></name></person-group><article-title>A simplified method for deep coupling of GPS and inertial data</article-title><conf-name>Proceedings of the Institute of Navigation (ION NTM 2007)</conf-name><conf-loc>San Diego, CA, USA</conf-loc><conf-date>22– 24 January 2007</conf-date><fpage>311</fpage><lpage>319</lpage></citation></ref>
<ref id="b24-sensors-12-09666"><label>24.</label><citation citation-type="web"><person-group person-group-type="author"><collab>User Manual</collab></person-group><comment>Available online: <ext-link xlink:href="http://www.fcctec.com" ext-link-type="uri">http://www.fcctec.com</ext-link> (accessed on 18 May 2012)</comment></citation></ref>
<ref id="b25-sensors-12-09666"><label>25.</label><citation citation-type="web"><person-group person-group-type="author"><collab>User Manual</collab></person-group><comment>Available online: <ext-link xlink:href="http://www.aquilatech.co.nz/productDetail.asp?idProduct%3DRCK-I-ET224-MC" ext-link-type="uri">http://www.aquilatech.co.nz/productDetail.asp?idProduct%3DRCK-I-ET224-MC</ext-link> (accessed on 18 May 2012)</comment></citation></ref>
<ref id="b26-sensors-12-09666"><label>26.</label><citation citation-type="web"><person-group person-group-type="author"><collab>User Manual</collab></person-group><comment>Available online: <ext-link xlink:href="http://www.thinksrs.com/downloads/PDFs/Manuals/FS725m.pdf" ext-link-type="uri">http://www.thinksrs.com/downloads/PDFs/Manuals/FS725m.pdf</ext-link> (accessed on 18 May 2012)</comment></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Tables</title>
<fig id="f1-sensors-12-09666" position="float">
<label>Figure 1.</label>
<caption>
<p>Central design of ultra-tight GPS/INS integration.</p></caption>
<graphic xlink:href="sensors-12-09666f1.gif"/></fig>
<fig id="f2-sensors-12-09666" position="float">
<label>Figure 2.</label>
<caption>
<p>Federated design of ultra-tight GPS/INS integration.</p></caption>
<graphic xlink:href="sensors-12-09666f2.gif"/></fig>
<fig id="f3-sensors-12-09666" position="float">
<label>Figure 3.</label>
<caption>
<p>Federated ultra-tight GPS/INS integration with one channel in detail.</p></caption>
<graphic xlink:href="sensors-12-09666f3.gif"/></fig>
<fig id="f4-sensors-12-09666" position="float">
<label>Figure 4.</label>
<caption>
<p>Flow diagram for federated COMPASS/INS integration complementation with the simplified prefilter model and adaptive Kalman filter.</p></caption>
<graphic xlink:href="sensors-12-09666f4.gif"/></fig>
<fig id="f5-sensors-12-09666" position="float">
<label>Figure 5.</label>
<caption>
<p>COMPASS IF data and INS data collection process with GNSS/INS hardware simulator.</p></caption>
<graphic xlink:href="sensors-12-09666f5.gif"/></fig>
<fig id="f6-sensors-12-09666" position="float">
<label>Figure 6.</label>
<caption>
<p>(<bold>a</bold>) The reference trajectory for simulation; (<bold>b</bold>) COMPSS satellite sky-plot in simulation test.</p></caption>
<graphic xlink:href="sensors-12-09666f6a.gif"/>
<graphic xlink:href="sensors-12-09666f6b.gif"/></fig>
<fig id="f7-sensors-12-09666" position="float">
<label>Figure 7.</label>
<caption>
<p>(<bold>a</bold>) Tracking performance comparison for SV04; (<bold>b</bold>) Tracking performance comparison for SV05.</p></caption>
<graphic xlink:href="sensors-12-09666f7.gif"/></fig>
<fig id="f8-sensors-12-09666" position="float">
<label>Figure 8.</label>
<caption>
<p>(<bold>a</bold>) Velocity estimation errors of S-AKF and T-KF in ECEF frame; (<bold>b</bold>) Position estimation errors of S-AKF and T-KF in ECEF frame.</p></caption>
<graphic xlink:href="sensors-12-09666f8.gif"/></fig>
<fig id="f9-sensors-12-09666" position="float">
<label>Figure 9.</label>
<caption>
<p>COMPASS IF data and IMU data collection process in field environment.</p></caption>
<graphic xlink:href="sensors-12-09666f9.gif"/></fig>
<fig id="f10-sensors-12-09666" position="float">
<label>Figure 10.</label>
<caption>
<p>COMPASS satellite sky-plot of field test.</p></caption>
<graphic xlink:href="sensors-12-09666f10.gif"/></fig>
<fig id="f11-sensors-12-09666" position="float">
<label>Figure 11.</label>
<caption>
<p>(<bold>a</bold>) Tracking performance comparison for SV01; (<bold>b</bold>) Tracking performance comparison for SV03.</p></caption>
<graphic xlink:href="sensors-12-09666f11a.gif"/>
<graphic xlink:href="sensors-12-09666f11b.gif"/></fig>
<fig id="f12-sensors-12-09666" position="float">
<label>Figure 12.</label>
<caption>
<p>(<bold>a</bold>) Velocity estimation errors of S-AKF and T-KF in ECEF frame; (<bold>b</bold>) Velocity estimation errors of S-AKF and T-KF in ECEF frame.</p></caption>
<graphic xlink:href="sensors-12-09666f12.gif"/></fig>
<table-wrap id="t1-sensors-12-09666" position="float">
<label>Table 1.</label>
<caption>
<p>Computational Complexities of Kalman filter implementation.</p></caption>
<table frame="box" rules="all">
<thead>
<tr>
<th align="center" valign="middle" rowspan="2"><bold>Operation</bold></th>
<th align="center" valign="middle"><bold>Simplified prefilter model with adaptive Kalman filter</bold></th>
<th align="center" valign="middle"><bold>Traditional prefilter model</bold></th></tr>
<tr>
<th align="center" valign="bottom">State dimension <italic>n</italic> = 3<break/>Measurement dimension <italic>l</italic> = 1</th>
<th align="center" valign="bottom">State dimension <italic>n</italic> = 5<break/>Measurement dimension <italic>l</italic> = 2</th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top"><italic>PH<sup>T</sup></italic>(<italic>R</italic> + <italic>HPH<sup>T</sup></italic>)<sup>−1</sup></td>
<td align="center" valign="top">2(<italic>n</italic><sup>2</sup><italic>l</italic> + <italic>nl</italic><sup>2</sup>) + 1 = 25</td>
<td align="center" valign="top">
<mml:math id="mm51" display="inline">
<mml:semantics id="sm51">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">(</mml:mo>
<mml:msup>
<mml:mi>n</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mi>l</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>n</mml:mi>
<mml:msup>
<mml:mi>l</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mi>l</mml:mi>
<mml:mn>3</mml:mn></mml:msup>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:msup>
<mml:mi>l</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:mi>l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>35</mml:mn></mml:mrow></mml:semantics></mml:math></td></tr>
<tr>
<td align="center" valign="top">Φ<italic>X</italic></td>
<td align="center" valign="top"><italic>n</italic><sup>2</sup> = 9</td>
<td align="center" valign="top"><italic>n</italic><sup>2</sup> = 25</td></tr>
<tr>
<td align="center" valign="top">Φ<italic>P</italic>Φ<italic><sup>T</sup></italic></td>
<td align="center" valign="top">2<italic>n</italic><sup>3</sup> =54</td>
<td align="center" valign="top">2<italic>n</italic><sup>3</sup> = 250</td></tr>
<tr>
<td align="center" valign="top"><italic>K</italic>(<italic>Z</italic> − <italic>HX</italic>)</td>
<td align="center" valign="top">1+<italic>nl</italic>=4</td>
<td align="center" valign="top"><italic>l</italic><sup>3</sup> + <italic>nl</italic> = 18</td></tr>
<tr>
<td align="center" valign="top">(<italic>I</italic> − <italic>KH</italic>)<italic><sup>P</sup></italic></td>
<td align="center" valign="top"><italic>n</italic><sup>3</sup> + <italic>n</italic><sup>2</sup><italic>l</italic>=36</td>
<td align="center" valign="top"><italic>n</italic><sup>3</sup> + <italic>n</italic><sup>2</sup><italic>l</italic> =175</td></tr>
<tr>
<td align="center" valign="top">
<mml:math id="mm52" display="inline">
<mml:semantics id="sm52">
<mml:mrow>
<mml:munderover>
<mml:mtext>∑</mml:mtext>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>N</mml:mi></mml:munderover>
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi></mml:msub></mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></td>
<td align="center" valign="top"><italic>n</italic><sup>2</sup><italic>N</italic> = 9<italic>N</italic></td>
<td align="center" valign="top">0</td></tr>
<tr>
<td align="center" valign="top">Total number of multiplications</td>
<td align="center" valign="top">128 + 9<italic>N</italic></td>
<td align="center" valign="top">503</td></tr></tbody></table></table-wrap>
<table-wrap id="t2-sensors-12-09666" position="float">
<label>Table 2.</label>
<caption>
<p>Parameters defined in software-defined COMPASS Receiver.</p></caption>
<table frame="box" rules="cols">
<thead>
<tr>
<th align="center" valign="bottom"><bold>Parameter</bold></th>
<th align="center" valign="bottom"><bold>Values</bold></th></tr>
<tr>
<th align="center" valign="bottom" colspan="2">
<hr/></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top">Coherent integration time</td>
<td align="center" valign="top">1 ms</td></tr>
<tr>
<td align="center" valign="top">Prefilter update period</td>
<td align="center" valign="top">1 ms</td></tr>
<tr>
<td align="center" valign="top">Correlator spacing</td>
<td align="center" valign="top">0.5 chip</td></tr>
<tr>
<td align="center" valign="top">Adaptive window length (<italic>N</italic>)</td>
<td align="center" valign="top">5</td></tr>
<tr>
<td align="center" valign="top"><italic>h</italic><sub>0</sub></td>
<td align="center" valign="top">1.82 × 10<sup>−21</sup> (<italic>s</italic><sup>2</sup>/Hz)</td></tr>
<tr>
<td align="center" valign="top"><italic>h</italic><sub>−2</sub></td>
<td align="center" valign="top">1.51 × 10<sup>−20</sup> (1/Hz)</td></tr></tbody></table></table-wrap>
<table-wrap id="t3-sensors-12-09666" position="float">
<label>Table 3.</label>
<caption>
<p>RMS Doppler frequency errors of tracked SVs with different prefilter models.</p></caption>
<table frame="box" rules="cols">
<thead>
<tr>
<th align="center" valign="middle" rowspan="3"><bold>Prefilter model for federated ultra-tight COMPASS/INS integration</bold></th>
<th colspan="2" align="center" valign="bottom"><bold>RMS Doppler frequency estimation error per PRN (Hz)</bold></th></tr>
<tr>
<th colspan="2" align="center" valign="bottom">
<hr/></th></tr>
<tr>
<th align="center" valign="bottom">SV = 04</th>
<th align="center" valign="bottom">SV = 05</th></tr>
<tr>
<th colspan="3" align="center" valign="bottom">
<hr/></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top">Simplified prefilter model with adaptive Kalman filter</td>
<td align="center" valign="top">3.773</td>
<td align="center" valign="top">3.094</td></tr>
<tr>
<td align="left" valign="top">Traditional prefilter model</td>
<td align="center" valign="top">3.687</td>
<td align="center" valign="top">2.974</td></tr></tbody></table></table-wrap>
<table-wrap id="t4-sensors-12-09666" position="float">
<label>Table 4.</label>
<caption>
<p>Statistics of position and velocity errors in ECEF frame with different prefilter models.</p></caption>
<table frame="box" rules="cols">
<thead>
<tr>
<th align="center" valign="top" rowspan="3"><bold>Prefilter model for federated ultra-tight COMPASS/INS integration</bold></th>
<th colspan="3" align="center" valign="top"><bold>Simplified prefilter model with adaptive Kalman filter</bold></th>
<th colspan="3" align="center" valign="top"><bold>Traditional prefilter model</bold></th></tr>
<tr>
<th colspan="6" align="center" valign="top">
<hr/></th></tr>
<tr>
<th align="center" valign="bottom">X</th>
<th align="center" valign="bottom">Y</th>
<th align="center" valign="bottom">Z</th>
<th align="center" valign="bottom">X</th>
<th align="center" valign="bottom">Y</th>
<th align="center" valign="bottom">Z</th></tr>
<tr>
<th colspan="7" align="center" valign="top">
<hr/></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top">Mean Position Error(m)</td>
<td align="center" valign="top">−13.436</td>
<td align="center" valign="top">−5.886</td>
<td align="center" valign="top">−30.279</td>
<td align="center" valign="top">−14.064</td>
<td align="center" valign="top">−6.036</td>
<td align="center" valign="top">−30.936</td></tr>
<tr>
<td align="left" valign="top">Std Position Error(m)</td>
<td align="center" valign="top">4.372</td>
<td align="center" valign="top">3.612</td>
<td align="center" valign="top">4.973</td>
<td align="center" valign="top">4.153</td>
<td align="center" valign="top">3.687</td>
<td align="center" valign="top">5.378</td></tr>
<tr>
<td align="left" valign="top">Mean Velocity Error(m/s)</td>
<td align="center" valign="top">−0.623</td>
<td align="center" valign="top">−0.267</td>
<td align="center" valign="top">−1.501</td>
<td align="center" valign="top">−0.639</td>
<td align="center" valign="top">−0.274</td>
<td align="center" valign="top">−1.406</td></tr>
<tr>
<td align="left" valign="top">Std Velocity Error(m/s)</td>
<td align="center" valign="top">0.199</td>
<td align="center" valign="top">0.207</td>
<td align="center" valign="top">0.237</td>
<td align="center" valign="top">0.188</td>
<td align="center" valign="top">0.197</td>
<td align="center" valign="top">0.244</td></tr></tbody></table></table-wrap>
<table-wrap id="t5-sensors-12-09666" position="float">
<label>Table 5.</label>
<caption>
<p>RMS Doppler frequency errors of tracked SVs with different prefilter models.</p></caption>
<table frame="box" rules="cols">
<thead>
<tr>
<th align="center" valign="middle" rowspan="3"><bold>Prefilter model for federated ultra-tight COMPASS/INS integration</bold></th>
<th colspan="2" align="center" valign="bottom"><bold>RMS Doppler frequency estimation error per PRN (Hz)</bold></th></tr>
<tr>
<th colspan="2" align="center" valign="bottom">
<hr/></th></tr>
<tr>
<th align="center" valign="bottom">SV = 01</th>
<th align="center" valign="bottom">SV = 03</th></tr>
<tr>
<th colspan="3" align="center" valign="bottom">
<hr/></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top">Simplified prefilter model with adaptive Kalman filter</td>
<td align="center" valign="top">0.663</td>
<td align="center" valign="top">0.744</td></tr>
<tr>
<td align="left" valign="top">Traditional prefilter model</td>
<td align="center" valign="top">0.613</td>
<td align="center" valign="top">0.778</td></tr></tbody></table></table-wrap>
<table-wrap id="t6-sensors-12-09666" position="float">
<label>Table 6.</label>
<caption>
<p>Statistics of position and velocity errors in ECEF frame with different prefilter models.</p></caption>
<table frame="box" rules="cols">
<thead>
<tr>
<th align="center" valign="top" rowspan="3"><bold>Prefilter model for federated ultra-tight COMPASS/INS integration</bold></th>
<th colspan="3" align="center" valign="top"><bold>Simplified prefilter model with adaptive Kalman filter</bold></th>
<th colspan="3" align="center" valign="top"><bold>Traditional prefilter model</bold></th></tr>
<tr>
<th colspan="6" align="center" valign="top">
<hr/></th></tr>
<tr>
<th align="center" valign="bottom">X</th>
<th align="center" valign="bottom">Y</th>
<th align="center" valign="bottom">Z</th>
<th align="center" valign="bottom">X</th>
<th align="center" valign="bottom">Y</th>
<th align="center" valign="bottom">Z</th></tr>
<tr>
<th colspan="7" align="center" valign="top">
<hr/></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top">Mean Position Error(m)</td>
<td align="center" valign="top">−9.231</td>
<td align="center" valign="top">−4.952</td>
<td align="center" valign="top">−18.953</td>
<td align="center" valign="top">−9.543</td>
<td align="center" valign="top">−5.011</td>
<td align="center" valign="top">−19.256</td></tr>
<tr>
<td align="left" valign="top">Std Position Error(m)</td>
<td align="center" valign="top">1.591</td>
<td align="center" valign="top">2.748</td>
<td align="center" valign="top">3.316</td>
<td align="center" valign="top">1.697</td>
<td align="center" valign="top">3.031</td>
<td align="center" valign="top">3.443</td></tr>
<tr>
<td align="left" valign="top">Mean Velocity Error(m/s)</td>
<td align="center" valign="top">−0.151</td>
<td align="center" valign="top">−0.069</td>
<td align="center" valign="top">−0.299</td>
<td align="center" valign="top">−0.164</td>
<td align="center" valign="top">−0.074</td>
<td align="center" valign="top">−0.312</td></tr>
<tr>
<td align="left" valign="top">Std Velocity Error(m/s)</td>
<td align="center" valign="top">0.030</td>
<td align="center" valign="top">0.047</td>
<td align="center" valign="top">0.052</td>
<td align="center" valign="top">0.028</td>
<td align="center" valign="top">0.049</td>
<td align="center" valign="top">0.055</td></tr></tbody></table></table-wrap></sec></back></article>
