<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Robot. AI</journal-id>
<journal-title>Frontiers in Robotics and AI</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Robot. AI</abbrev-journal-title>
<issn pub-type="epub">2296-9144</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">868608</article-id>
<article-id pub-id-type="doi">10.3389/frobt.2022.868608</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Robotics and AI</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>GNSS NLOS Signal Classification Based on Machine Learning and Pseudorange Residual Check</article-title>
<alt-title alt-title-type="left-running-head">Ozeki and Kubo</alt-title>
<alt-title alt-title-type="right-running-head">GNSS NLOS Signal Classification</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Ozeki</surname>
<given-names>Tomohiro</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1635621/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Kubo</surname>
<given-names>Nobuaki</given-names>
</name>
<uri xlink:href="https://loop.frontiersin.org/people/1779769/overview"/>
</contrib>
</contrib-group>
<aff>
<institution>Department of Maritime Systems Engineering</institution>, <institution>Tokyo University of Marine Science and Technology</institution>, <addr-line>Tokyo</addr-line>, <country>Japan</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1246218/overview">Li-Ta Hsu</ext-link>, Hong Kong Polytechnic University, Hong Kong SAR, China</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1418472/overview">Yanlei Gu</ext-link>, Ritsumeikan University, Japan</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1675398/overview">Rui Sun</ext-link>, College of Civil Aviation Nanjing University of Aeronautics and Astronautics, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Tomohiro Ozeki, <email>d222003@edu.kaiyodai.ac.jp</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Smart Sensor Networks and Autonomy, a section of the journal Frontiers in Robotics and AI</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>05</day>
<month>05</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>9</volume>
<elocation-id>868608</elocation-id>
<history>
<date date-type="received">
<day>03</day>
<month>02</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>31</day>
<month>03</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Ozeki and Kubo.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Ozeki and Kubo</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>Global navigation satellite system (GNSS) positioning has recently garnered attention for autonomous driving, machine control, and construction sites. With the development of low-cost multi-GNSS receivers and the advent of new types of GNSS, such as Japan&#x2019;s Quasi-Zenith Satellite System, the potential of GNSS positioning has increased. New types of GNSS directly increase the number of line-of-sight (LOS) signals in dense urban areas and improve positioning accuracy. However, GNSS receivers can observe both LOS and non-line-of-sight (NLOS) signals in dense urban areas, and more NLOS signals are observed under static conditions than under dynamic conditions. The classification of LOS and NLOS signals is important, and various methods have been proposed, such as C/N0, using three-dimensional maps, fish-eye view, and GNSS/inertial navigation system integration. Multipath detection based on machine learning has also been reported in recent years. In this study, we propose a method for detecting NLOS signals using a support vector machine (SVM) classifier modeled with unique features that are calculated by receiver independent exchange format-based information and GNSS pseudorange residual check. We found that using both the SVM classifier and GNSS pseudorange residual check effectively reduced the error due to NLOS signals. Several static tests were conducted near high-rise buildings that are likely to receive some NLOS signals in downtown Tokyo. For all static tests, the percentage of positioning errors within 10&#xa0;m in the horizontal positioning error was improved by &#x3e;80% by detecting and eliminating satellites receiving NLOS signals.</p>
</abstract>
<kwd-group>
<kwd>GNSS</kwd>
<kwd>multipath</kwd>
<kwd>support vector machine</kwd>
<kwd>DGNSS</kwd>
<kwd>NLOS</kwd>
<kwd>pseudorange residual</kwd>
</kwd-group>
<contract-sponsor id="cn001">Japan Society for the Promotion of Science<named-content content-type="fundref-id">10.13039/501100001691</named-content>
</contract-sponsor>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>Global navigation satellite system (GNSS) positioning has recently been used in autonomous driving, machine control, and at construction sites. The development of new low-cost multi-GNSS receivers and the advent of new types of GNSS, such as the Quasi-Zenith Satellite System (QZSS) in Japan, have increased the potential of GNSS positioning. One of the greatest advantages of GNSS positioning is the ease with which absolute positions may be obtained, such as in the Earth-centered, Earth-fixed coordinate system (ECEF). Heights can be obtained from barometers and precision maps, but there are limited ways to easily obtain horizontal positions, which is another advantage conferred by GNSS positioning. Additionally, the advent of new types of GNSS has increased the number of line-of-sight (LOS) signals and improved positioning accuracy in challenging locations, such as dense urban areas. However, GNSS receivers observe both LOS signals and non-line-of-sight (NLOS) signals in these areas. NLOS signals have large multipath errors, which is the reason for the degrading positioning accuracy in dense urban areas (<xref ref-type="bibr" rid="B3">Kubo et al., 2020</xref>). Under kinematic conditions, the environment around the GNSS antenna is dramatically changed and the GNSS receiver is less likely to track NLOS signals, but under static conditions, the environment around the GNSS antenna is unchanged and more NLOS signals can be tracked by the GNSS receiver (<xref ref-type="bibr" rid="B4">Kubo et al. (2017)</xref>. This can be a significant challenge, for example, in the case of landslide monitoring and parking locations.</p>
<p>Classifying LOS and NLOS signals correctly is essential for improving GNSS positioning accuracy, and various methods of achieving such improvements have been proposed, such as C/N0, the use of three-dimensional (3D) maps, or fish-eye view. <xref ref-type="bibr" rid="B3">Kubo et al. (2020)</xref> proposed a method for classifying NLOS signals using continuous C/N0 time series, where NLOS signals were detected by analyzing the C/N0 time series and GNSS pseudorange residual check calculated by the least-squares method, through which the differential GNSS (DGNSS) positioning result was dramatically improved. Classification methods using machine learning have also been proposed recently. <xref ref-type="bibr" rid="B10">Suzuki and Amano (2021)</xref> proposed that the correlation output of a GNSS signal can be classified using machine learning. They used the shape of a multi-correlator for features, and 97.7% of the NLOS signals were correctly discriminated. However, it is difficult to obtain the shape of a multi-correlator when using a commercial GNSS receiver. <xref ref-type="bibr" rid="B15">Xu et al. (2018)</xref> proposed a classification method based on machine learning and using receiver independent exchange format (RINEX)-based information. They compared various machine learning algorithms including k-nearest neighbors, neural network, support vector machine (SVM), and decision tree, and SVM was most effective for classifying LOS and NLOS signals. <xref ref-type="bibr" rid="B14">Xu et al. (2020)</xref> proposed a classification method based on an SVM using RINEX and estimated positions using GNSS shadow matching after classification, and the mean error in the cross-street direction was decreased from 10.27 to 1.44&#xa0;m. Despite this, 3D maps are not suitable for commercial use because of their uncertain availability and computational cost. For large-scale commercial use, a positioning method that can be handled by a single software program, with as little additional equipment and cost as possible, is preferred. The goal of this study was to detect NLOS signals using an SVM classifier modeled with unique features and, thus, to improve horizontal DGNSS positioning results in an urban area.</p>
</sec>
<sec id="s2">
<title>2 Materials and Methods</title>
<sec id="s2-1">
<title>2.1 SVM Classifier</title>
<p>An SVM is a supervised learning tool that generates input&#x2013;output mapping functions from a set of labeled training data (<xref ref-type="bibr" rid="B13">Wang, 2005</xref>). In this study, the SVM classifier outputted LOS and NLOS signals and defined LOS signals as negative and NLOS signals as positive. We implemented an SVM classifier using Scikit-learn (<xref ref-type="bibr" rid="B7">Pedregosa et al., 2011</xref>), an open-source machine learning library for the Python programming language. The SVM classifier implemented by Scikit-learn requires tuning of the parameters called &#x201c;hyper-parameters.&#x201d; We chose a radial basis function kernel (RBF), which is generally used for nonlinear classification, while the other parameters were selected using a grid search (<xref ref-type="bibr" rid="B6">Min and Lee, 2005</xref>).</p>
<p>
<xref ref-type="bibr" rid="B14">Xu et al. (2020)</xref> previously used four features&#x2014;the signal-to-noise ratio (SNR), elevation angle (EA), normalized pseudorange residual (NPR), and pseudorange rate consistency (PRC). As for the SNR and EA, it is well known that both are closely related to the NLOS signal (<xref ref-type="bibr" rid="B12">Tokura and Kubo et al., 2017</xref>). SNR can be obtained by RINEX, and EA can be calculated by the satellite position estimated by the ephemeris and the approximate user position.</p>
<p>The pseudorange residual is valid for use with machine learning (<xref ref-type="bibr" rid="B1">Hsu, 2017</xref>). It is calculated by the least-squares method and usually becomes large for NLOS signals. However, the positioning result from the least-squares method has large errors under multipath environments and the pseudorange residual does not perfectly indicate the difference between LOS and NLOS signals. For this reason, the pseudorange residual was normalized at each epoch. The NPR can be expressed as<disp-formula id="equ1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>where <inline-formula id="inf1">
<mml:math id="m2">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf2">
<mml:math id="m3">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> were calculated by the maximum and minimum pseudorange residuals at each epoch, respectively, and <inline-formula id="inf3">
<mml:math id="m4">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the pseudorange residual of satellite <inline-formula id="inf4">
<mml:math id="m5">
<mml:mi>s</mml:mi>
</mml:math>
</inline-formula>.</p>
<p>PRC is defined as the difference in the changing rate of pseudorange from the pseudorange and Doppler shift (Hsu, L. (2017). The changing rate of pseudorange from the pseudorange can be expressed as<disp-formula id="equ2">
<mml:math id="m6">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>P</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>where <inline-formula id="inf5">
<mml:math id="m7">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the pseudorange in the <inline-formula id="inf6">
<mml:math id="m8">
<mml:mi>i</mml:mi>
</mml:math>
</inline-formula> th epoch. The changing rate of the pseudorange can also be calculated by the Doppler shift as<disp-formula id="equ3">
<mml:math id="m9">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>&#x3c1;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x394;</mml:mtext>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>where <inline-formula id="inf7">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the wavelength of satellite <inline-formula id="inf8">
<mml:math id="m11">
<mml:mi>s</mml:mi>
</mml:math>
</inline-formula>, <inline-formula id="inf9">
<mml:math id="m12">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the Doppler shift of satellite <inline-formula id="inf10">
<mml:math id="m13">
<mml:mi>s</mml:mi>
</mml:math>
</inline-formula> in unit of Hz, and <inline-formula id="inf11">
<mml:math id="m14">
<mml:mrow>
<mml:mtext>&#x394;</mml:mtext>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the time difference of <inline-formula id="inf12">
<mml:math id="m15">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf13">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. PRC can be expressed as<disp-formula id="equ4">
<mml:math id="m17">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mi>R</mml:mi>
<mml:mi>C</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>P</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The pseudorange can be estimated by the receiver-code tracking loop, and the Doppler shift can be estimated by the frequency tracking loop in the GNSS receiver. For an LOS signal, the PRC is 0, but for an NLOS signal, the PRC is not always 0 because the receiver-code tracking loop is more affected by multipaths than by the frequency tracking loop.</p>
<p>Previous studies have shown that there are more methods other than just these four to characterize NLOS signals. <xref ref-type="bibr" rid="B12">Tokura and Kubo (2017)</xref> proposed an SNR-based satellite selection method that uses the magnitude of variability in the SNR (hereafter, the &#x201c;SNR fluctuation magnitude&#x201d; or SFM). Because NLOS signals exhibit large fluctuations in their SNR time series, the SFM is an indicator of the magnitude of such fluctuations. <xref ref-type="bibr" rid="B12">Tokura and Kubo (2017)</xref> calculated the SFM using the moving standard deviation of the difference between the observed and estimated SNRs, which sets the elevation-dependent threshold of the SNR (<xref ref-type="bibr" rid="B11">Suzuki et al., 2004</xref>; <xref ref-type="bibr" rid="B5">Kubo et al., 2005</xref>; <xref ref-type="bibr" rid="B8">Shirai &#x26; Kubo, 2012</xref>). The disadvantage of this approach is that it is difficult to set this threshold. Instead, we calculated the SFM in this study by moving the standard deviation of the SNR, expressed as<disp-formula id="equ5">
<mml:math id="m18">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>F</mml:mi>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>N</mml:mi>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>N</mml:mi>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>where <italic>N</italic> is the window size and <inline-formula id="inf14">
<mml:math id="m19">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>N</mml:mi>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the SNR in the <inline-formula id="inf15">
<mml:math id="m20">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> th epoch and <inline-formula id="inf16">
<mml:math id="m21">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>N</mml:mi>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the mean of the SNR. <xref ref-type="fig" rid="F1">Figure 1</xref> shows a comparison of the LOS and NLOS SFM time series in a multipath environment. The window size was set to 120 epochs. The LOS of the mean residual was 1.56 m, but that of the NLOS was 55.90&#xa0;m. These results indicate that SFM can be a good indicator of LOS versus NLOS signals.</p>
<fig id="F1" position="float">
<label>FIGURE1</label>
<caption>
<p>LOS and NLOS time series of the magnitude of fluctuation in the SFM.</p>
</caption>
<graphic xlink:href="frobt-09-868608-g001.tif"/>
</fig>
<p>We generated a classifier with five features&#x2014;SNR, EA, NPR, PRC, and SFM. For the SFM, the window size for calculating the moving standard deviation influenced the accuracy of the SVM classifier. In this study, we set various window sizes (30, 60, 90, 120, 180, and 240 epochs) and considered the best window size for the accuracy of the SVM classifier. The SVM classifier was then used to classify all signals that could be used for positioning at each epoch.</p>
</sec>
<sec id="s2-2">
<title>2.2 Datasets</title>
<p>Three datasets were used in this study; <xref ref-type="fig" rid="F2">Figure 2</xref> shows the data collection locations. The area around Tokyo Station is surrounded by skyscrapers over 100&#xa0;m in height, and the DGNSS positioning error easily reached 100&#xa0;m. Locations A and B are marked in <xref ref-type="fig" rid="F2">Figure 2</xref>. For all datasets, a U-blox F9P and a standard patch antenna (ANN-MB-00&#x2013;00) installed on the roof of a parked car (U-blox, Switzerland) were used. In the reference station, a U-blox F9P was used and the GNSS antenna was a Trimble Zephyr 2 Geodetic (Trimble, Inc., United States). All datasets were recorded at 1&#xa0;Hz.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Map showing locations A and B relative to Tokyo Station.</p>
</caption>
<graphic xlink:href="frobt-09-868608-g002.tif"/>
</fig>
<p>The upper part of <xref ref-type="fig" rid="F3">Figure 3</xref> shows detailed images around location A and the antenna. As can be seen, it was likely that NLOS signals would be received from the higher buildings at the azimuth of 290&#xb0;. There were several high-rise buildings of different heights and several trees on both sides of the antenna. The lower part of <xref ref-type="fig" rid="F3">Figure 3</xref> shows detailed images around location B and the antenna. As in location A, it was also likely at this location that NLOS signals would be received from the higher buildings at the azimuth of 180&#xb0;, and there were several high-rise buildings of different heights on both sides of the antenna.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Environment of location A (upper) and environment of location B (lower). The white circle represents the location of the GNSS antenna.</p>
</caption>
<graphic xlink:href="frobt-09-868608-g003.tif"/>
</fig>
<p>Datasets (1) and (2) were collected at location A but were 50&#xa0;cm apart when comparing the precise position. Dataset (3) was collected at location B. All datasets were accompanied by reference station data obtained at the Tokyo University of Marine Science and Technology Etchujima Campus located &#x223c;3&#xa0;km from Tokyo Station. <xref ref-type="table" rid="T1">Table 1</xref> shows the dates and times when the datasets were collected. As for the reference position, we adopted an RTK-GNSS Fix solution outputted by U-blox F9P, and we confirmed that this position was correct to an accuracy of approximately 5&#xa0;cm in post-processing by positioning software developed by our laboratory.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Details of each dataset.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Datasets</th>
<th align="center">Location</th>
<th align="center">Date and time (GPS tow [s])</th>
<th align="center">Train or test</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">(1)</td>
<td align="center">Location A</td>
<td align="center">03/04/2020, 461880&#x2013;463500</td>
<td align="center">Train</td>
</tr>
<tr>
<td align="left">(2)</td>
<td align="center">Location A</td>
<td align="center">27/05/2020, 540181&#x2013;541800</td>
<td align="center">Test</td>
</tr>
<tr>
<td align="left">(3)</td>
<td align="center">Location B</td>
<td align="center">18/04/2020, 277379&#x2013;279005</td>
<td align="center">Test</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Dataset (1) and reference station data were used for training the SVM classifier, and datasets (2) and (3) were used for testing the SVM classifier. For datasets (1) and (2), the locations of data collection were almost the same, but the collection times differed. The locations and times of data collection were different for datasets (1) and (3). Therefore, these datasets were suitable for evaluating the SVM classifier.</p>
</sec>
<sec id="s2-3">
<title>2.3 Labels</title>
<p>In the testing and evaluation of our SVM classification, we estimated accurate pseudorange residuals and determined the labels for classification. <xref ref-type="bibr" rid="B3">Kubo et al. (2020)</xref> proposed an estimation of the precise receiver clock error and pseudorange residuals. Pseudorange measurements include errors from the receiver clock, satellite clock, ionosphere, troposphere, and multipath &#x2b; noise. In pseudorange positioning, the multipath &#x2b; noise error is the residual of the pseudorange<disp-formula id="equ6">
<mml:math id="m22">
<mml:mrow>
<mml:mi mathvariant="bold-italic">P&#xa0;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3c1;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold-italic">d</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">rcv</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">d</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">sat</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">ion</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">tropo</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">mp</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b5;</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>where <italic>P</italic> is the pseudorange (m), <inline-formula id="inf17">
<mml:math id="m23">
<mml:mi>&#x3c1;</mml:mi>
</mml:math>
</inline-formula> is the geometrical range (m), <italic>c</italic> is the speed of light (m/s), <inline-formula id="inf18">
<mml:math id="m24">
<mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the receiver clock error (m), <inline-formula id="inf19">
<mml:math id="m25">
<mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the satellite clock error (m), <italic>ion</italic> is the ionospheric error (m), <italic>tropo</italic> is the tropospheric error (m), <italic>mp</italic> is the multipath error (m), and <inline-formula id="inf20">
<mml:math id="m26">
<mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the noise error (m).</p>
<p>In this study, the predicted geometrical range was set as the distance between the reference position of the antenna and the satellite position estimated by ephemeris. The satellite clock, ionospheric, and tropospheric errors are considered to be in part eliminated by the DGNSS correction data, which were calculated at the base station. Additionally, the clock bias of GPS and other satellite systems was eliminated by the DGNSS correction data. Therefore, a receiver clock was needed to estimate the multipath &#x2b; noise. If the receiver clock was estimated within a few meters, then the multipath &#x2b; noise can be estimated with the same accuracy. Usually, the receiver clock error was estimated by pseudorange positioning and estimation accuracy if the receiver clock errors were within several meters under open sky conditions. However, in multipath environments, the estimation accuracy of receiver clock errors deviated over tens of meters because of multipath errors. In this study, we tracked a strong signal from the Japanese QZSS even near high-rise buildings in Tokyo as at least one QZSS remained at a very high EA &#x3e; 80&#xb0;. In practice, the accuracy of the pseudorange of the highest satellite is within 1.0&#xa0;m. Using the receiver clock error estimated with the pseudorange of the highest EA and reference positions of the antenna, the multipath &#x2b; noise could be expected within 1.0&#xa0;m. The NLOS signal multipath errors usually exceed 10&#xa0;m. Here, if the multipath errors exceeded 10&#xa0;m, they represented an NLOS signal.</p>
</sec>
<sec id="s2-4">
<title>2.4 Analytical Strategy</title>
<p>Multipath errors caused by NLOS signals generally have a greater impact on the pseudorange than the carrier phase, and the accuracy of carrier-phase positioning, such as real-time kinematic, is affected by the pseudorange positioning. In this study, we adopted DGNSS positioning as it is suitable for evaluating positioning errors because it is less affected by tropospheric, ionospheric, and satellite clock errors. <xref ref-type="table" rid="T2">Table 2</xref> shows the common parameters of our analysis.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Common analytical parameters.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Item</th>
<th align="center">Parameter</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">GNSS receiver</td>
<td align="left">U-blox F9P (rover/base)</td>
</tr>
<tr>
<td align="left">GNSS antenna</td>
<td align="left">ANN-MB-00-00 (rover)/Trimble Zephyr 2 Geodetic (base)</td>
</tr>
<tr>
<td align="left">Mask angle</td>
<td align="left">15&#xb0;</td>
</tr>
<tr>
<td align="left">Minimum SNR</td>
<td align="left">30&#xa0;dB-Hz</td>
</tr>
<tr>
<td align="left">Threshold for residuals</td>
<td align="left">10&#xa0;m</td>
</tr>
<tr>
<td align="left">Satellites</td>
<td align="left">GPS/QZSS/GALILEO/BDS/GLONASS</td>
</tr>
<tr>
<td align="left">Interval</td>
<td align="left">1&#xa0;Hz</td>
</tr>
<tr>
<td align="left">Minimum satellites</td>
<td align="left">5</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>
<xref ref-type="fig" rid="F4">Figure 4</xref> shows the workflow of this study. We extracted five features (SNR, EA, NPR, PRC, and SFM) and determined labels for classification during training. To validate the SFM, we generated two SVM classifiers&#x2014;SVM classifier (1), which used four features (SNR, EA, NPR, and PRC), and SVM classifier (2), which used five features (SNR, EA, NPR, PRC, and SFM). During the testing phase, signals classified as NLOS were excluded by DGNSS positioning. There were five outputs.<list list-type="simple">
<list-item>
<p>&#x30fb;Output (1) was the DGNSS position from satellites that could be observed and used to assess the effect of pseudorange residual check.</p>
</list-item>
<list-item>
<p>&#x30fb;Output (2) was the DGNSS position from satellites that were not excluded by the pseudorange residual check.</p>
</list-item>
<list-item>
<p>&#x30fb;Output (3) was the DGNSS positioning using SVM classifier (1).</p>
</list-item>
<list-item>
<p>&#x30fb;Output (4) was DGNSS positioning using SVM classifier (2).</p>
</list-item>
<list-item>
<p>&#x30fb;Output (5) was the DGNSS positioning using SVM classifier (2) and pseudorange residual check.</p>
</list-item>
</list>
</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Workflow of training (upper) and testing (lower).</p>
</caption>
<graphic xlink:href="frobt-09-868608-g004.tif"/>
</fig>
<p>For the SFM, we set various window sizes (30, 60, 90, 120, 180, and 240 epochs) and considered the best window size from the results of the SVM classifier accuracy across all datasets.</p>
<p>The positioning software developed by our laboratory was used. As for the pseudorange residual check, the position and pseudorange residuals were first calculated by the least-squares method using all satellites. If the maximum pseudorange residual exceeded the threshold, the satellite with the maximum pseudorange residual was excluded. This process continued until the maximum pseudorange residual fell below the threshold or the number of satellites was insufficient (<xref ref-type="bibr" rid="B2">Jiang et al., 2011</xref>).</p>
</sec>
</sec>
<sec id="s3">
<title>3 Results</title>
<sec id="s3-1">
<title>3.1 SVM Classifier</title>
<p>The parameters of the SVM classifier, the regularization parameter, and the kernel coefficient were set equal to 10, and the scales were selected via grid search (<xref ref-type="bibr" rid="B6">Min &#x26; Lee, 2005</xref>). There are four types of statistics used to evaluate binary classifications&#x2014;true positive (TP), true negative (TN), false positive (FP), and false negative (FN) (<xref ref-type="bibr" rid="B9">Sokolova &#x26; Lapalme, 2009</xref>). In this study, accuracy was chosen as the metric for evaluating the SVM classifier. Accuracy can be expressed as<disp-formula id="equ7">
<mml:math id="m27">
<mml:mrow>
<mml:mi mathvariant="bold-italic">Accuracy</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="bold-italic">TP</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">TN</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">TP</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">TN</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">FP</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">FN</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>
<xref ref-type="table" rid="T3">Table 3</xref> shows the accuracy of the SVM classifier. Using the SFM, the accuracy of the classifier increased by &#x3e;15% with the testing. Regarding the best SFM window size, there was no significant difference in the accuracy when the window size was 60 epochs or more. Therefore, we selected 120 epochs, which maximized the accuracy in dataset (2).</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Accuracy of the SVM classifier.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Accuracy (%)</th>
<th align="center">Dataset (1)</th>
<th align="center">Dataset (2)</th>
<th align="center">Dataset (3)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">SVM classifier (1)</td>
<td align="char" char=".">87.61</td>
<td align="char" char=".">64.50</td>
<td align="char" char=".">76.17</td>
</tr>
<tr>
<td align="left">SVM classifier (2)_SFM (30 epochs)</td>
<td align="char" char=".">95.38</td>
<td align="char" char=".">83.98</td>
<td align="char" char=".">91.42</td>
</tr>
<tr>
<td align="left">SVM classifier (2)_SFM (60 epochs)</td>
<td align="char" char=".">95.90</td>
<td align="char" char=".">86.35</td>
<td align="char" char=".">90.83</td>
</tr>
<tr>
<td align="left">SVM classifier (2)_SFM (90 epochs)</td>
<td align="char" char=".">96.18</td>
<td align="char" char=".">87.72</td>
<td align="char" char=".">90.80</td>
</tr>
<tr>
<td align="left">SVM classifier (2)_SFM (120 epochs)</td>
<td align="char" char=".">96.23</td>
<td align="char" char=".">88.00</td>
<td align="char" char=".">91.52</td>
</tr>
<tr>
<td align="left">SVM classifier (2)_ SFM (180 epochs)</td>
<td align="char" char=".">95.76</td>
<td align="char" char=".">87.78</td>
<td align="char" char=".">92.54</td>
</tr>
<tr>
<td align="left">SVM classifier (2)_ SFM (240 epochs)</td>
<td align="char" char=".">95.63</td>
<td align="char" char=".">87.59</td>
<td align="char" char=".">92.44</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s3-2">
<title>3.2 Positioning Results</title>
<p>We evaluated the horizontal DGNSS error using six statistics: mean error, maximum error, standard deviation (SD), and the percentages of positioning errors within 3&#xa0;m, 10&#xa0;m, and 30&#xa0;m.</p>
<sec id="s3-2-1">
<title>3.2.1 Dataset (2)</title>
<p>The upper part of <xref ref-type="fig" rid="F5">Figure 5</xref> shows the time series of the number of satellites used in dataset (2). The mean number of satellites before and after classification was 25 and 14.9, respectively, while the number of TN satellites was 13.1. Therefore, SVM classifier (2) detected approximately 10 NLOS signals in each epoch. Additionally, the mean numbers of TPs, FPs, and FNs in each epoch were 9.0, 1.1, and 1.8 satellites, respectively.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Time series of the number of satellites using dataset (2) (upper) and comparison of the DGNSS positioning error in dataset (2) (lower). The &#x201c;after classification&#x201d; period represents the number of satellites determined to be LOS by SVM classifier (2), and the &#x201c;number of TN&#x201d; is the number of true negative (TN) satellites (LOS signals) at each epoch.</p>
</caption>
<graphic xlink:href="frobt-09-868608-g005.tif"/>
</fig>
<p>
<xref ref-type="table" rid="T4">Table 4</xref> shows a comparison of the horizontal positioning errors in dataset (2). Comparing DGNSS &#x2b; SVM classifier (1) and DGNSS &#x2b; SVM classifier (2), the percentage of positioning errors within 10&#xa0;m was especially improved because the accuracy of SVM classifier (2) was 25% higher than that of SVM classifier (1) (see also <xref ref-type="table" rid="T3">Table 3</xref>). However, it did not exceed the values of the DGNSS &#x2b; residual check. For the combination of DGNSS &#x2b; SVM classifier (2) &#x2b; residual check, the percentage of positioning errors within 10&#xa0;m was dramatically improved compared with other results, while the maximum error was worse due to the fact that FNs in SVM classifier (2) and pseudorange residual check were incorrect. To make it easier to visually understand the improvement of the horizontal positioning results, the lower part of <xref ref-type="fig" rid="F5">Figure 5</xref> shows the DGNSS positioning errors with the DGNSS &#x2b; residual check, DGNSS &#x2b; SVM classifier (2), and DGNSS &#x2b; SVM classifier (2) &#x2b; residual check. The DGNSS &#x2b; SVM classifier 2) &#x2b; residual check yielded the smallest error.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Comparison of the horizontal positioning error of dataset (2).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Dataset (2)<break/>(1,625 epochs)</th>
<th align="center">DGNSS output (1)</th>
<th align="center">DGNSS &#x2b; residual check output (2)</th>
<th align="center">DGNSS &#x2b; SVM classifier (1) output (3)</th>
<th align="center">DGNSS &#x2b; SVM classifier (2) output (4)</th>
<th align="center">DGNSS &#x2b; SVM classifier (2) &#x2b; residual check output (5)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Mean error</td>
<td align="char" char=".">27.68&#xa0;m</td>
<td align="char" char=".">14.12&#xa0;m</td>
<td align="char" char=".">29.69&#xa0;m</td>
<td align="char" char=".">15.99&#xa0;m</td>
<td align="char" char=".">5.77&#xa0;m</td>
</tr>
<tr>
<td align="left">Maximum error</td>
<td align="char" char=".">93.14&#xa0;m</td>
<td align="char" char=".">70.32&#xa0;m</td>
<td align="char" char=".">68.24&#xa0;m</td>
<td align="char" char=".">48.89&#xa0;m</td>
<td align="char" char=".">68.16&#xa0;m</td>
</tr>
<tr>
<td align="left">SD</td>
<td align="char" char=".">10.39m</td>
<td align="char" char=".">13.10&#xa0;m</td>
<td align="char" char=".">9.42&#xa0;m</td>
<td align="char" char=".">9.70&#xa0;m</td>
<td align="char" char=".">7.82&#xa0;m</td>
</tr>
<tr>
<td align="left">Percentage (&#x3c;3&#xa0;m)</td>
<td align="char" char=".">1.05%</td>
<td align="char" char=".">17.17%</td>
<td align="char" char=".">0.00%</td>
<td align="char" char=".">8.12%</td>
<td align="char" char=".">33.97%</td>
</tr>
<tr>
<td align="left">Percentage (&#x3c;10&#xa0;m)</td>
<td align="char" char=".">5.78%</td>
<td align="char" char=".">55.14%</td>
<td align="char" char=".">0.49%</td>
<td align="char" char=".">27.51%</td>
<td align="char" char=".">91.63%</td>
</tr>
<tr>
<td align="left">Percentage (&#x3c;30&#xa0;m)</td>
<td align="char" char=".">59.69%</td>
<td align="char" char=".">88.00%</td>
<td align="char" char=".">57.97%</td>
<td align="char" char=".">89.66%</td>
<td align="char" char=".">98.22%</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s3-2-2">
<title>3.2.2 Dataset (3)</title>
<p>The upper part of <xref ref-type="fig" rid="F6">Figure 6</xref> shows the time series of the number of satellites used in dataset (3). The mean number of satellites before and after classification was 17.6 and 12.2, respectively, and the number of TN satellites was 11.6. Therefore, SVM classifier (2) detected approximately five NLOS signals in each epoch. Moreover, the mean numbers of TPs, FPs, and FNs in each epoch were 4.6, 0.6, and 0.8 satellites, respectively.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Time series of the number of satellites using dataset (3) (upper) and comparison of DGNSS positioning error in dataset (3) (lower). The &#x201c;after classification&#x201d; period represents the number of satellites determined to be LOS by SVM classifier (2), and the &#x201c;number of TN&#x201d; is the number of true negative (TN) satellites (LOS signals) at each epoch.</p>
</caption>
<graphic xlink:href="frobt-09-868608-g006.tif"/>
</fig>
<p>
<xref ref-type="table" rid="T5">Table 5</xref> shows a comparison of the horizontal positioning errors in dataset (3), and the lower part of <xref ref-type="fig" rid="F6">Figure 6</xref> shows the DGNSS positioning error with the DGNSS &#x2b; residual check, DGNSS &#x2b; SVM classifier (2), and DGNSS &#x2b; SVM classifier (2) &#x2b; residual check. Except for the maximum error, all statistics showed improvements as great as those in dataset (2). In the case of the DGNSS &#x2b; SVM classifier (2) &#x2b; residual check, the percentage of positioning errors within 10&#xa0;m was improved by &#x3e;80% compared to the DGNSS alone, and &#x3e;90% of all horizontal positioning errors were within 10&#xa0;m.</p>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Comparison of the horizontal positioning error of dataset (3).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Dataset (3)<break/>(1,620 epochs)</th>
<th align="center">DGNSS output (1)</th>
<th align="center">DGNSS &#x2b; residual check output (2)</th>
<th align="center">DGNSS &#x2b; SVM classifier (1) output (3)</th>
<th align="center">DGNSS &#x2b; SVM classifier (2) output (4)</th>
<th align="center">DGNSS &#x2b; SVM classifier (2) &#x2b; residual check output (5)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Mean error</td>
<td align="char" char=".">51.43&#xa0;m</td>
<td align="char" char=".">18.15&#xa0;m</td>
<td align="char" char=".">17.46&#xa0;m</td>
<td align="char" char=".">7.52&#xa0;m</td>
<td align="char" char=".">4.93&#xa0;m</td>
</tr>
<tr>
<td align="left">Maximum error</td>
<td align="char" char=".">263.66&#xa0;m</td>
<td align="char" char=".">198.33&#xa0;m</td>
<td align="char" char=".">121.48&#xa0;m</td>
<td align="char" char=".">74.85&#xa0;m</td>
<td align="char" char=".">89.28&#xa0;m</td>
</tr>
<tr>
<td align="left">SD</td>
<td align="char" char=".">33.68 m</td>
<td align="char" char=".">26.19 m</td>
<td align="char" char=".">14.88 m</td>
<td align="char" char=".">9.44 m</td>
<td align="char" char=".">3.94 m</td>
</tr>
<tr>
<td align="char" char=".">Percentage (&#x3c;3&#xa0;m)</td>
<td align="char" char=".">1.49%</td>
<td align="char" char=".">14.44%</td>
<td align="char" char=".">7.96%</td>
<td align="char" char=".">29.07%</td>
<td align="char" char=".">34.57%</td>
</tr>
<tr>
<td align="char" char=".">Percentage (&#x3c;10&#xa0;m)</td>
<td align="char" char=".">7.59%</td>
<td align="char" char=".">54.32%</td>
<td align="char" char=".">34.14%</td>
<td align="char" char=".">78.89%</td>
<td align="char" char=".">92.35%</td>
</tr>
<tr>
<td align="char" char=".">Percentage (&#x3c;30&#xa0;m)</td>
<td align="char" char=".">33.15%</td>
<td align="char" char=".">83.89%</td>
<td align="char" char=".">87.41%</td>
<td align="char" char=".">96.72%</td>
<td align="char" char=".">99.94%</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="s3-3">
<title>3.3 Kinematic Test and Results</title>
<p>To find the limitations of the proposed method, we conducted a kinematic test. The GNSS antenna was installed in a car that traveled along the route shown in <xref ref-type="fig" rid="F7">Figure 7</xref>. We collected data and analyzed the DGNSS positioning. The route included skyscrapers around Tokyo Station in Tokyo, Japan, and the DGNSS positioning error easily reached several tens of meters or more in this area. The total data recording period was 1,811&#xa0;s, and the data were recorded at 1&#xa0;Hz. GPS-703-GGG-HV (Novatel, Inc., Canada), which is a survey-grade GNSS antenna, was used for this experiment. The reference position was obtained using POS LVX (Applanix, Inc, Canada). The other settings were the same as in <xref ref-type="table" rid="T2">Table 2</xref>.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Environment of the route in the kinematic test.</p>
</caption>
<graphic xlink:href="frobt-09-868608-g007.tif"/>
</fig>
<p>
<xref ref-type="table" rid="T6">Table 6</xref> shows the accuracy of the SVM classifier in the kinematic test and dataset (1). Compared to the experiment under the static conditions, there was no contribution of SFM to the accuracy. This is because the positioning environment changes from time to time under the kinematic conditions, and the signal frequently changes from LOS to NLOS or NLOS to LOS. Hence, we used SVM classifier (1) in the kinematic test.</p>
<table-wrap id="T6" position="float">
<label>TABLE 6</label>
<caption>
<p>Accuracy of the SVM classifier in the kinematic test.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Accuracy (%)</th>
<th align="center">Dataset (1)</th>
<th align="center">Kinematic test</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">SVM classifier (1)</td>
<td align="char" char=".">87.61</td>
<td align="char" char=".">86.40</td>
</tr>
<tr>
<td align="left">SVM classifier (2)_SFM (30 epochs)</td>
<td align="char" char=".">95.38</td>
<td align="char" char=".">76.66</td>
</tr>
<tr>
<td align="left">SVM classifier (2)_SFM (60 epochs)</td>
<td align="char" char=".">95.90</td>
<td align="char" char=".">73.86</td>
</tr>
<tr>
<td align="left">SVM classifier (2)_SFM (90 epochs)</td>
<td align="char" char=".">96.18</td>
<td align="char" char=".">70.53</td>
</tr>
<tr>
<td align="left">SVM classifier (2)_SFM (120 epochs)</td>
<td align="char" char=".">96.23</td>
<td align="char" char=".">67.86</td>
</tr>
<tr>
<td align="left">SVM classifier (2)_ SFM (180 epochs)</td>
<td align="char" char=".">95.76</td>
<td align="char" char=".">65.92</td>
</tr>
<tr>
<td align="left">SVM classifier (2)_ SFM (240 epochs)</td>
<td align="char" char=".">95.63</td>
<td align="char" char=".">64.68</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>
<xref ref-type="table" rid="T7">Table 7</xref> shows a comparison of the horizontal positioning errors in the kinematic test, and <xref ref-type="fig" rid="F8">Figure 8</xref> shows the DGNSS positioning error with the DGNSS &#x2b; residual check, DGNSS &#x2b; SVM classifier (1), and DGNSS &#x2b; SVM classifier (1) &#x2b; residual check. Comparing the DGNSS and DGNSS &#x2b; residual check, the pseudorange residual check was as effective as in the static test. As for DGNSS &#x2b; SVM classifier (1), SVM classifier (1) was effective in positioning. However, it did not exceed the values of the DGNSS &#x2b; residual check. For the combination of the DGNSS &#x2b; SVM classifier (2) &#x2b; residual check, all statistics were better as compared with the other methods.</p>
<table-wrap id="T7" position="float">
<label>TABLE 7</label>
<caption>
<p>Comparison of the horizontal positioning error in the kinematic test.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Kinematic test (1,811 epochs)</th>
<th align="center">DGNSS</th>
<th align="center">DGNSS &#x2b; residual check</th>
<th align="center">DGNSS &#x2b; SVM classifier (1)</th>
<th align="center">DGNSS &#x2b; SVM classifier (1) &#x2b; residual check</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Mean error</td>
<td align="char" char=".">36.52&#xa0;m</td>
<td align="char" char=".">12.15&#xa0;m</td>
<td align="char" char=".">16.22&#xa0;m</td>
<td align="char" char=".">5.22&#xa0;m</td>
</tr>
<tr>
<td align="left">Maximum error</td>
<td align="char" char=".">413.41&#xa0;m</td>
<td align="char" char=".">232.90&#xa0;m</td>
<td align="char" char=".">208.57&#xa0;m</td>
<td align="char" char=".">160.84&#xa0;m</td>
</tr>
<tr>
<td align="left">SD</td>
<td align="char" char=".">43.20&#xa0;m</td>
<td align="char" char=".">21.95&#xa0;m</td>
<td align="char" char=".">23.61&#xa0;m</td>
<td align="char" char=".">11.97&#xa0;m</td>
</tr>
<tr>
<td align="char" char=".">Percentage (&#x3c;3&#xa0;m)</td>
<td align="char" char=".">23.46%</td>
<td align="char" char=".">50.80%</td>
<td align="char" char=".">33.58%</td>
<td align="char" char=".">64.38%</td>
</tr>
<tr>
<td align="char" char=".">Percentage (&#x3c;10&#xa0;m)</td>
<td align="char" char=".">35.37%</td>
<td align="char" char=".">74.01%</td>
<td align="char" char=".">57.10%</td>
<td align="char" char=".">87.53%</td>
</tr>
<tr>
<td align="char" char=".">Percentage (&#x3c;30&#xa0;m)</td>
<td align="char" char=".">56.67%</td>
<td align="char" char=".">86.17%</td>
<td align="char" char=".">83.02%</td>
<td align="char" char=".">97.72%</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Comparison of the DGNSS positioning error in the kinematic test.</p>
</caption>
<graphic xlink:href="frobt-09-868608-g008.tif"/>
</fig>
</sec>
</sec>
<sec id="s4">
<title>4 Discussion</title>
<p>We conducted two static tests and one kinematic test in this research study.</p>
<p>In the static test, the pseudorange residual check was effective, but the results of the DGNSS &#x2b; residual check were not improved as compared with those of SVM classifier (2) based on <xref ref-type="table" rid="T4">Tables 4</xref>, <xref ref-type="table" rid="T5">5</xref>. Additionally, the horizontal positioning results of SVM classifier (2) were better than those of SVM classifier (1), as indicated by the higher accuracy. Based on <xref ref-type="table" rid="T3">Table 3</xref>, the accuracy improvement of the training data gained by using the SFM was &#x223c;8%, whereas for the test data, the improvement was &#x3e;15%. Therefore, SVM classifier (2) was able to learn more effectively than SVM classifier (1) using the SFM under static conditions. A mean of 1.8 FN satellites at each epoch could not be eliminated in dataset (2), while a mean of 0.8 FN satellites at each epoch could not be eliminated in dataset (3). Thus, we could obtain more accurate positions with a combination of SVM classifier (2) and the pseudorange residual check (<xref ref-type="table" rid="T4">Tables 4</xref>, <xref ref-type="table" rid="T5">5</xref>).</p>
<p>In the kinematic test, the pseudorange residual check was as effective as in the static test, while SFM did not contribute to the accuracy. The mean of the velocity in this experiment was 3.6&#xa0;m/s, and if we were to calculate the SFM for 30&#xa0;s, the positioning environment would change by approximately 100&#xa0;m from start to end. Therefore, SFM does not indicate SNR fluctuations due to the NLOS signal. With a combination of SVM classifier (1) and the pseudorange residual check, we could obtain more accurate positions compared with the other methods (<xref ref-type="table" rid="T7">Table 7</xref>).</p>
<p>We proposed an SVM classifier and the combination of SVM classifier (1) and the pseudorange residual check to obtain a more accurate position. Notably, SFM was a useful feature under static conditions, whereas its use was problematic in kinematic tests. This is one of the novelties in static tests and a limitation in kinematic tests. The pseudorange residual check is useful in dense urban areas as evidenced by all tests in this study, whose effect is, however, limited when many NLOS signals are observed. On the other hand, the SVM classifier could not detect NLOS signals perfectly because its accuracy was approximately 90% in testing. Hence, as newly evidenced in this study, a combination of the SVM classifier and pseudorange residual check was the most effective method in dense urban areas.</p>
<p>Although the features used in this study are indicators of the characteristics of NLOS signals, it is difficult to determine from each feature whether or not a signal is an NLOS signal. It is also difficult to determine the NLOS thresholds for these features. This is where machine learning was introduced. The approach used here does not require other equipment and only requires an SVM classifier written in the Python code. In this study, we evaluated three datasets; however, all the data were obtained near Tokyo Station. To further assess the generality of the proposed method, it will be necessary to evaluate the classifications made using data from other locations. Moreover, we used data recorded for 27&#xa0;min for training because there were few candidate locations at which NLOS signals could be observed with certainty, and it was difficult to park for long periods of time and obtain data. To further improve accuracy, we plan to find a place where we can obtain data for about 24&#xa0;h and retrain the SVM classifier.</p>
</sec>
</body>
<back>
<sec id="s5">
<title>Data Availability Statement</title>
<p>The raw data supporting the conclusion of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec id="s6">
<title>Author Contributions</title>
<p>TO and NK conceived and designed the experiments; NK performed the experiments. TO analyzed the data; NK also partly analyzed the data. All authors have read and agreed to the published version of the manuscript.</p>
</sec>
<sec id="s7">
<title>Funding</title>
<p>This work was supported by the JSPS KAKENHI, grant number JP16K0532.</p>
</sec>
<sec sec-type="COI-statement" id="s8">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s9">
<title>Publisher&#x2019;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations or those of the publisher, the editors, and the reviewers. Any product that may be evaluated in this article or claim that may be made by its manufacturer is not guaranteed or endorsed by the publisher.</p>
</sec>
<ack>
<p>The authors would like to thank the reviewers and editors for their help in improving the paper.</p>
</ack>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Hsu</surname>
<given-names>L.-T.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>GNSS Multipath Detection Using a Machine Learning Approach</article-title>. in <conf-name>IEEE 20th international conference on intelligent transportation systems (ITSC)</conf-name>, <conf-date>16-19 Oct. 2017</conf-date>, <conf-loc>Yokohama, Japan</conf-loc>. <publisher-name>IEEE</publisher-name>, <fpage>1</fpage>&#x2013;<lpage>6</lpage>. <pub-id pub-id-type="doi">10.1109/ITSC.2017.8317700</pub-id> </citation>
</ref>
<ref id="B2">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Jiang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Groves</surname>
<given-names>P. D.</given-names>
</name>
<name>
<surname>Ochieng</surname>
<given-names>W. Y.</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Milner</surname>
<given-names>C. D.</given-names>
</name>
<name>
<surname>Mattos</surname>
<given-names>P. G.</given-names>
</name>
</person-group> (<year>2011</year>). &#x201c;<article-title>Multi-Constellation GNSS Multipath Mitigation Using Consistency Checking</article-title>,&#x201d; in <conf-name>Proceedings of the ION GNSS</conf-name>, <conf-loc>Portland, OR</conf-loc>, <conf-date>September 2011</conf-date>, <fpage>3889</fpage>&#x2013;<lpage>3902</lpage>. </citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kubo</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Kobayashi</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Furukawa</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>GNSS Multipath Detection Using Continuous Time-Series C/N0</article-title>. <source>Sensors</source> <volume>20</volume> (<issue>14</issue>), <fpage>4059</fpage>. <pub-id pub-id-type="doi">10.3390/s20144059</pub-id> </citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kubo</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Kobayashi</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Hsu</surname>
<given-names>L.-T.</given-names>
</name>
<name>
<surname>Amai</surname>
<given-names>O.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Multipath Mitigation Technique under strong Multipath Environment Using Multiple Antennas</article-title>. <source>J. Aeronaut.</source> <volume>49</volume>, <fpage>75</fpage>&#x2013;<lpage>82</lpage>. </citation>
</ref>
<ref id="B5">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Kubo</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Suzuki</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Yasuda</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Shibazaki</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2005</year>).<article-title>An Effective Method for Multipath Mitigation under Severe Multipath Environments</article-title>. in <conf-name>Proceedings of the 18th International Technical Meeting of the Satellite Division of The Institute of Navigation</conf-name>. <publisher-loc>Long Beach, CA</publisher-loc>: <publisher-name>Institute of Navigation</publisher-name>, <fpage>2187</fpage>&#x2013;<lpage>2194</lpage>. <comment>ION GNSS 2005</comment>. </citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Min</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2005</year>). <article-title>Bankruptcy Prediction Using Support Vector Machine with Optimal Choice of Kernel Function Parameters</article-title>. <source>Expert Syst. Appl.</source> <volume>28</volume>, <fpage>603</fpage>&#x2013;<lpage>614</lpage>. <pub-id pub-id-type="doi">10.1016/j.eswa.2004.12.008</pub-id> </citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pedregosa</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Varoquaux</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Gamfort</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Michel</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Thirion</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Grisel</surname>
<given-names>O.</given-names>
</name>
<etal/>
</person-group> (<year>2011</year>). <article-title>Scikit-learn: Machine Learning in Python</article-title>. <source>J. Mach. Learn. Res.</source> <volume>12</volume>, <fpage>2825</fpage>&#x2013;<lpage>2830</lpage>. </citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shirai</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Kubo</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>RTK-GPS Reliability Improvement in Dense Urban Areas</article-title>. <source>J. Jpn. Soc. Aeronaut. Space Sci.</source> <volume>60</volume>, <fpage>40</fpage>&#x2013;<lpage>47</lpage>. <pub-id pub-id-type="doi">10.2322/jjsass.60.40</pub-id> </citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sokolova</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Lapalme</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>A Systematic Analysis of Performance Measures for Classification Tasks</article-title>. <source>Inf. Process. Management</source> <volume>45</volume>, <fpage>427</fpage>&#x2013;<lpage>437</lpage>. <pub-id pub-id-type="doi">10.1016/j.ipm.2009.03.002</pub-id> </citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Suzuki</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Amano</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>NLOS Multipath Classification of GNSS Signal Correlation Output Using Machine Learning</article-title>. <source>Sensors</source> <volume>21</volume> (<issue>7</issue>), <fpage>2503</fpage>. <pub-id pub-id-type="doi">10.3390/s21072503</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Suzuki</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Kubo</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Yasuda</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2004</year>).<article-title>The Possibility of the Precise Positioning and Multipath Error Mitigation in the Real-Time</article-title>. in <conf-name>Proceedings of the 2004 International Symposium on GNSS/GPS</conf-name>. <publisher-loc>Sydney</publisher-loc>, <fpage>1</fpage>&#x2013;<lpage>10</lpage>. </citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tokura</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Kubo</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Efficient Satellite Selection Method for Instantaneous RTK-GNSS in Challenging Environments</article-title>. <source>Trans. Jpn. Soc. Aero. S Sci.</source> <volume>60</volume>, <fpage>221</fpage>&#x2013;<lpage>229</lpage>. <pub-id pub-id-type="doi">10.2322/tjsass.60.221</pub-id> </citation>
</ref>
<ref id="B13">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2005</year>). <source>Support Vector Machines: Theory and Applications, Volume 177</source>. <publisher-loc>Berlin/Heidelberg</publisher-loc>: <publisher-name>Springer Science &#x26; Business Media</publisher-name>. </citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Angrisano</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Gaglione</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Hsu</surname>
<given-names>L.-T.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Machine Learning Based LOS/NLOS Classifier and Robust Estimator for GNSS Shadow Matching</article-title>. <source>Satell. Navig.</source> <volume>1</volume>, <fpage>1</fpage>&#x2013;<lpage>15</lpage>. <pub-id pub-id-type="doi">10.1186/s43020-020-00016-w</pub-id> </citation>
</ref>
<ref id="B15">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Hsu</surname>
<given-names>L. T.</given-names>
</name>
</person-group> (<year>2018</year>).<article-title>GNSS Shadow Matching Based on Intelligent LOS/NLOS Classifer</article-title>. In <conf-name>The 16th world congress of the international association of institutes of navigation (IAIN) Chiba</conf-name>. <publisher-loc>Japan</publisher-loc>. </citation>
</ref>
</ref-list>
</back>
</article>