Next Article in Journal
Mechanical Power in Endurance Running: A Scoping Review on Sensors for Power Output Estimation during Running
Next Article in Special Issue
Sensing Framework for the Internet of Actors in the Value Co-Creation Process with a Beacon-Attachable Indoor Positioning System
Previous Article in Journal
Accelerometer-Based Fall Detection Using Machine Learning: Training and Testing on Real-World Falls
Previous Article in Special Issue
Loosely Coupled GNSS and UWB with INS Integration for Indoor/Outdoor Pedestrian Navigation
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Letter

Estimating Position from Millisecond Samples of GPS Signals (the “FastFix” Algorithm)

by
Timothy C. A. Molteno
Department of Physics, University of Otago, Dunedin 9016, New Zealand
Sensors 2020, 20(22), 6480; https://doi.org/10.3390/s20226480
Submission received: 14 October 2020 / Revised: 2 November 2020 / Accepted: 10 November 2020 / Published: 13 November 2020
(This article belongs to the Special Issue Novel Applications of Positioning Systems and Sensors)

Abstract

:
A new approach to GPS positioning is described in which the post-processing of ultra-short sequences of captured GPS signal data can produce an estimate of receiver location. The algorithm, called ‘FastFix’, needs only 2–4 ms of stored L1-band data sampled at ∼16 MHz. The algorithm uses a least-squares optimization to estimate receiver position and GPS time from measurements of the relative codephase, and Doppler-shift of GNSS satellite signals. A practical application of this algorithm is demonstrated in a small, lightweight, low-power tracking tag that periodically wakes-up, records and stores 4 ms of GPS L1-band signal and returns to a low-power state—reducing power requirements by a factor of ∼10,000 compared to typical GPS devices. Stationary device testing shows a median error of 27.7 m with a small patch antenna. Results from deployment of this tag on adult Royal Albatross show excellent performance, demonstrating lightweight, solar-powered, long-term tracking of these remarkable birds. This work was performed on the GPS system; however, the algorithm is applicable to other GNSS systems.

1. Introduction

Tracking devices based on GNSS (Global Navigation Satellite System) are now commonplace, their many uses include wildlife tracking [1] and vehicle tracking [2]. Wildlife applications, in particular, are constrained by size and weight, and, until recently, GNSS devices have been limited to tracking animals such as moose [3] and marine species [4] capable of carrying a large receiver, limiting the range of species that can be tagged [5]. Improvements in semiconductor fabrication have steadily reduced power consumption [6], and improvement in battery technology [7] have reduced the weight of such tracking devices to the point that GNSS tracking devices can be deployed to track small mammals and medium-sized birds [8,9]. With each technical development allowing smaller and lower-power tracking devices, the range of species that can be tracked, and the duration of the deployment is increased.
The most widely used GNSS is the GPS (global Positioning System) network [10]. GNSS tracking devices operate by using codephase and navigation message data transmitted from the satellites to determine the time of transmission of a signal. This can be used to determine the distance (ranges) from the current position to each satellite as well as the precise local time (see for example Kaplan [10]).
Navigation messages transmitted from the receiver contain sufficient information to determine orbital parameters (ephemerides) of the satellites and the time of propagation of the signals from the satellite, and hence the ranges. Using the measured ranges from four or more satellites, the position of the receiver is determined—commonly using a least-squares procedure [11]. The time to first fix typically exceeds 30 s, as this is the time required for all of the satellite ephemerides to be transmitted. As a result, traditional GPS receivers are required to operate from cold-start for more than 30 s—typically consuming tens of milliamps—in order to measure their position. GNSS position accuracy varies, and in the case of GPS, the distribution of positioning errors is not Gaussian [12] and depends sensitively on the antenna characteristics [10]; typically, the first fix from a single-frequency commercial GPS has a horizontal positioning error of ∼10 m [13] in open skies.

Alternative Algorithms

Advances in algorithms provide another technique to reduce power consumption, and several alternative approaches to the traditional positioning algorithm have been developed. Of these, the most widely used is Assisted GPS (A-GPS). This employs satellite ephemeris data, and estimates of position, time to eliminate the need to receive this data via the GNSS signal [14]. This has limitations in tracking applications as a separate telemetry channel is needed for the augmentation data. Time-to-first-fix from a cold start situation, signal sensitivity, and position-accuracy are all improved with respect to a stand-alone GPS receiver [15].
Another algorithm family estimate position using only millisecond samples of data, with the satellite ephemeris provided externally. This technique is referred to as time-free, or snapshot positioning and was first proposed by Peterson et al. in 1995 [16]. This was refined in 2009 [17] to show that positioning was possible using only codephase measurements. Van Dierendonck et al. [18] was proposed in 2015 that uses an initial approximation of receiver time and position, to reconstruct the transmit time relative to the received time such that pseudorange can be calculated, and position estimated. In 2012, Othieno and Gleason [19] introduced a positioning method that use a combination of Doppler and code-phase measurements to provide a position estimate unknown initial position. Jing et al. [20] in 2017 introduced an integer ambiguity searching method based on the relationship between the maximum pseudorange difference and the inter-satellite distance. The accuracy possible with these snapshot algorithms is typically ∼20 m [21].
This algorithm described in this paper uses Doppler information to provide an a priori position estimate, in a manner similar to Othieno [19], and combines a relative-codephase measure, in a manner analogous to the work of Jing et al. [20] who instead use an inter-satellite distance. In practice, the algorithm is able to determine position anywhere on earth from as little as 2 ms of GPS L1-band signal using measurements of Doppler shift and relative codephase recovered from the data. Section 2 describes the well-known process of acquisition, and shows that small errors in the knowledge of the local time at the receiver will affect the measurement of codephase; however, this effect is the same for each satellite signal, and introduces relative codephase which is not affected by these errors. Section 3 describes the FastFix algorithm for positioning, and Section 4 presents results for stationary device performance including typical accuracy. Finally, Section 5 presents a real-world application of this algorithm in tracking albatross.

2. Satellite Signal Acquisition

The GPS L1-band civilian signal is transmitted in a 2.5 MHz bandwidth radio channel centered at 1575.42 MHz. The satellite signals are modulated using Code Division Multiple Access (CDMA) [10]. A GPS receiver digitizes this channel, and signals from all visible satellites are contained within the received data. The individual satellite signals are recovered by correlating the received data against a pseudorandom sequence unique to each satellite called a C/A (Coarse Acquisition) code. In the case of GPS, the C/A code repeats every millisecond and contains 1023 binary numbers in a pseudorandom sequence. The motion of each satellite relative to the observer causes the signal from that satellite to be Doppler-shifted, and this Doppler-shift must be compensated for in the receiver. The process of signal acquisition recovers the signal, and its Doppler-shift from each visible satellite.
There are several well-established methods for signal acquisition; see, for example, Kaplan [10] or Borre et al. [22]. In this work, parallel codephase recovery [22] using Fourier transforms was used. For the ith satellite, the acquisition process results in three measurements:
  • X m a x / σ X . The maximum correlation divided by the standard-deviation of the correlation—a measure of the ratio of correlation amplitude to the noise. This is similar to the carrier-to-noise density ratio, or the correlation amplitude relative to the noise level in the data. A satellite is considered visible if its X m a x / σ X exceeds a threshold (for the data shown in Figure 1 and Table 1, a threshold of 7 is used).
  • δ ϕ i , the code-phase—a number between zero and 1 that indicates the phase of the C/A code. The starting time of the C/A code is given by t 0 + δ ϕ i τ , where t 0 is the time of the start of the data, and τ is the C/A code sequence repeat time (one millisecond in the case of GPS).
  • Δ f m i , the Doppler-shift of the signal from the satellite.
Table 1 shows a typical set of acquisition results from the data, which are shown in Figure 1a. Some of the correlation plots from this data are shown in Figure 1b–d.

2.1. System and Local Time Frames

The acquisition process uses data that starts at time t 0 , measured by the receiver clock that may be inaccurate. Times measured by the receiver are identified by lower case t. The GNSS system clock times are identified by upper-case time values and are typically accurate to better than 1 μ s [10].
All GNSS satellites synchronously send their signals at intervals of τ . The start of each code epoch is synchronous across all satellites in the constellation. The system time that the ith satellite signal is sent, T s i , is given by T s i = T s + M τ , where T s is an arbitrary start time for the GPS constellation of satellites, and M is the integer code epoch. We choose, quite arbitrarily, that T s = 0 . Therefore, the time of transmission for the start of the code T s i becomes
T s i = M i τ ,
where the M i are integers that are now different for each satellite, and depend on the relative distance between receiver and each satellite.
We assume that there is a fixed offset, t u , between the local receiver clock and the system time, i.e.,
T = t + t u .
A more sophisticated model of the receiver clock would have both an offset and a different rate, but as the data are sampled for only a few milliseconds, uncertainty in the local clock rate will not significantly affect this algorithm.

2.2. Signal Propagation Time

Let T r i be the system time that the start of the ith C/A code reaches the receiver. This is given by
T r i = t i + t u ,
where t i t 0 + δ ϕ i τ is the measured time for the start of the sequence at the receiver, and t u is the receiver clock offset. The system time at the receiver for the start of the C/A code from satellite i is given in terms of t 0 and the code-phase as
T r i = t 0 + δ ϕ i τ + t u .
At system time T r i , the signal must have originated from the satellite at an earlier time T s i = T r i Δ r i c due to the propagation velocity c of the signal over the distance, Δ r i , between receiver and satellite i. We know that T s i is a time when an epoch starts, so it is an integer multiple of τ , i.e., M i τ , so, in this case, we write
M i τ = T r i Δ r i c , = t 0 + δ ϕ i τ + t u Δ r i c , δ ϕ i τ = M i τ + Δ r i c ( t 0 + t u ) .
The codephase δ ϕ i changes rapidly with time due to satellite motion, i.e, d δ ϕ i d t = Δ r i c τ 67 cycles per second. In addition, uncertainty in the system time offset, of more than a fraction of a millisecond will make prediction of position from the codephase unfeasible. For example, an uncertainty in t u of 100 μs would lead to an uncertainty in δ ϕ i of 0.1, which would translate to a pseudorange error of ∼30 km.

2.3. Relative Fractional Codephase

The relative fractional codephase, δ ϕ i j is the difference (modulo τ ) between the fractional codephases δ ϕ i and δ ϕ j from satellite i and satellite j. From Equation (4),
δ ϕ i τ δ ϕ j τ = ( M i M j ) τ + Δ r i c Δ r j c δ ϕ i δ ϕ j = ( M i M j ) + Δ r i Δ r j c τ δ ϕ i δ ϕ j = N i j + δ ϕ i j ,
where N i j = M i M j is the integer part of the expression, and the relative codephase δ ϕ i j is the fractional part of the expression. For example,
δ ϕ i j ( t , r 0 ) = frac Δ r i Δ r j c τ .
This relative fractional-codephase does not depend sensitively on accurate knowledge of the local time offset t u ; however, range errors due to incorrect time estimates will have an effect. Errors of 50 km or more will still lead to relatively small changes in δ ϕ i j . At typical satellite velocities of ∼3 km s 1 , an uncertainty of ten seconds in t u would lead to a typical δ ϕ i j ( t , r 0 ) uncertainty of approximately 0.1. Contrast this with the codephase δ ϕ i , for which this level of uncertainty would be caused by a ∼100 μs uncertainty in t u .

3. The FastFix Positioning Algorithm

The FastFix algorithm uses both the Doppler-shift and the codephase measurements to solve the inverse problem of estimating the position, r 0 , and time-of-fix, t 0 from stored GPS L 1 -band data. The forward problem assumes that the position r , local time t 0 and local clock offset t u are known, and satellite ephemerides are available. This is sufficient to determine from Equation (5) the relative codephase, δ ϕ i j , and the Doppler-shift of the signal from the ith satellite,
Δ f i ( t 0 , r ) = 1 c d Δ r i d t f 0 ,
where f 0 1575.42 MHz, c is the speed of light, and Δ r i is the relative distance between the ith satellite and the receiver position r . If Δ r i is decreasing, then satellite is moving towards the receiver, and the Doppler-shift is positive.
This method is rather like the method of exact fractions from interferometry (see, for example, Baird [23]), the measurements comprise only the fractional part of the codephase for the signal from each satellite and its Doppler shift. At any given moment, there are only a small number of positions near the earth’s surface that will have any specific set of relative-codephases.

3.1. Least-Squares Estimators

The algorithm uses two least-squares estimators: one based on Doppler measurements, the other based on the relative fractional codephase. The least-squares estimator for Doppler shift, L ν , is
L ν ( t , r 0 ) = i ( Δ f m i Δ f i ( t , r 0 ) ) 2 ,
where Δ f m i is the measured Doppler-shift for the ith satellite, and Δ f i ( t , r ˙ 0 ) is the predicted Doppler-shift for the ith satellite from Equation (6). The least-squares measure for relative fractional codephase, L δ ϕ , is
L δ ϕ ( t , r 0 ) = i , j ( δ ϕ m i j δ ϕ i j ( t , r 0 ) ) 2 ,
where δ ϕ m i j is the measured relative fractional codephase between the ith and jth satellite, and δ ϕ i j ( t , r 0 ) is the predicted relative fractional codephase given by Equation (5).

3.2. Algorithm Outline

The algorithm begins with an estimate of the local time t 0 , and, by acquiring the codephase, Doppler-shift and X m a x / σ X for each visible satellite from the previously stored GPS L 1 -data. These measurements are then used for three successive least-squares estimations of position. Starting with a global minimization based on Doppler-shift measurement, the successive stages each further refine the position from the preceding stage. A flow-chart for the algorithm is shown in Figure 2. Each of the minimization stages requires knowledge to the satellite orbital elements, and it is assumed that these are downloaded separately from a suitable catalog.
The sensitivity of the Δ f i to the solution is quite low, so, from an initial measurement of t 0 , an initial first pass is made searching for a position that minimizes L ν from Equation (7). This results in a rough position estimate r 1 .
This Doppler-estimate is refined by searching in the region near r 1 for a position r 2 that optimizes the relative fractional codephase estimator, L δ ϕ at time t 0 .
The final step is a full four-dimensional space-time optimisation using a Nelder–Meade [24] optimisation algorithm. This yields an estimate for the receiver position, r 3 , as well as the local time t 1 .

4. Results

The FastFix algorithm was initially tested using stationary receivers in a known locations (Dunedin, New Zealand). In this test, 118 four-millisecond samples of GPS L1-band data were digitized and stored. From these, the FastFix algorithm (described in the previous section) was applied.

4.1. Doppler Search

Figure 3 shows contours of the Doppler least-squares estimator L ν plotted over the globe centered on the receiver location. This shows a global and local minimum at the receiver location. This estimate is not accurate, however it is sufficient to locate the receiver within a small enough region for the next step which is the minimisation of the relative codephase estimator L δ ϕ . Figure 4 shows a histogram of the Doppler-only location error, showing a median error of 175 km and a 95th percentile error of 537 km.

4.2. Space Search

Figure 5 shows the relative codephase estimator L δ ϕ plotted for six visible satellites over a region ten degrees in width and height centred at the actual receiver location. This figure shows that the search for the global minimum is a complex nonlinear minimisation problem. However, the Doppler search is sufficiently accurate to place the receiver within the central local minimum region and the relative codephase least-squares estimator can be easily minimised once this is known.

4.3. Measured Accuracy

Figure 6 shows a histogram of the fix error for a known location. This shows that the relative codephase least-squares minimisation produces accurate fixes most of the time. The median error is 27.7 m, and all results are based on 4 ms of sampled data from a GPS front end (Maxim MAX2769B Universal GPS Receiver).
There are outliers that are caused by convergence on to a local, but not global minimum. Work is continuing on improving the performance of this; however, the results are already good enough to produce a device based on this technique. Section 4.4 outlines some techniques that may improve the robustness and accuracy of the results. This positioning error is similar to other snapshot positioning algorithms [21].

4.4. Discussion and Potential Improvements

One avenue for improving robustness is establishing better criteria for rejecting poor position estimates. Cook’s distance is a commonly used estimate of the influence of a data point when doing least-squares regression. Cook’s distance measures the effect of deleting a given observation. Another technique is to use Huber’s M-estimation [25] to handle outliers due to bad measurements.

Time-Separated Measurements

Another possible improvement would be to combine two sets of relative codephase and Doppler measurements taken from two samples of L1-band data a short time, Γ , apart. Assuming Γ is large enough for the satellites to have moved by ∼1 km, yet small enough for the receiver to have moved by less than the desired spatial resolution, then the following relative codephase estimator should be more robust,
L δ ϕ ( t , r 0 ) = i δ ϕ m i j δ ϕ i j ( t , r 0 ) 2 + i ( δ ϕ m i j δ ϕ i j ( t + Γ , r 0 ) 2 .
Taking multiple samples would, however, increase the power required.

5. Application to Wildlife Tracking

There are many possible applications for devices that use this algorithm. As only very short snapshots of GPS data are required, a device only needs to operate for 4 ms to acquire the data necessary for a fix. This dramatically reduces the power required (from at least 30 s of operation for a traditional GPS fix), by a factor of approximately 10,000.
A disadvantage of tracking with this technique is that any tracking device has to be recovered in order for the position to be estimated by post-processing the stored data. This technique is suitable for tracking species that return to a known location so that the data can be recovered. Here, we describe how this was done on nesting albatross.

5.1. Tag Electronics

Tags were developed that include a standard GPS RF front-end (Maxim MAX2769B Universal GPS Receiver) connected to a high-performance low-power 32-bit STM32F103CB [26] microprocessor. The microprocessor is programmed to wake at intervals, read data from the GPS RF front-end and store this data in a file on an micro Secure Digital (microSD) Memory Card. The un-packaged electronics from one of these FastFix tags are shown in Figure 7. A packaged solar-powered version of the tag, designed to attach to seabird feathers was developed [9] for deployment on seabirds. This tracking tag uses a small Taoglas AP.12F.07.0045 active patch antenna [27].
Each fix stores 4 ms of 1-bit baseband data sampled at 16.368 MHz, which requires 64 kb of data. A 2 GB SD-card can store approximately 244,000 fixes. A solar-powered tag could operate continuously storing data for a position estimate every five minutes for more than two years, limited only by storage limits.

5.2. Wildlife Tracking Results

Twelve solar-powered FastFix tags were attached to nesting adult Royal Albatross [28] (shown packaged and attached in Figure 8). While nesting, the adults carry out feeding flights of up to two weeks of duration. Of the 12 tags attached, eight were recovered undamaged, and from these eight tags, 26,042 positions were calculated. The position tracks recovered from the tags are shown in Figure 9.

6. Conclusions

The algorithm described here allows ultra-low-power, reasonably accurate global position determination using very short sequences of GPS data. The computational effort required to measure position is a function of both the initial uncertainty in position and the local receiver clock offset. The results in stationary testing show a median error of 27.7 m which is worse than the median error of traditional GPS single-frequency receivers, but similar to existing snapshot algorithms [21]. I speculate that this is due to the lack of a code-tracking filter that can refine the pseudorange estimates during the relatively long period that a traditional GPS device spends receiving navigation information. Despite this limitation, there are several interesting avenues to explore for improving the robustness and accuracy which were discussed in Section 4.4. The performance of the algorithm in practical moderate-precision applications such as wildlife tracking is sufficient as demonstrated in Section 5, and the power consumption was extremely low, which enabling long-term solar-powered, or primary-cell tracking of wildlife.
Another avenue for further work would be to use Bayesian inference techniques to estimate a posterior distribution of receiver positions. This would also enable uncertainty quantification and, consequently, a systematic exploration of the lower limit on the amount of stored data necessary to recover position to a given accuracy. An additional advantage of a Bayesian approach would be avoiding the decision to reject or accept a satellite as ‘visible’ from its correlation strength X m a x / σ X .

Funding

This research was partially funded by the Ministry of Business, Innovation and Employment (MoBIE; formerly FoRST). Grant Number: UOOX0904.

Acknowledgments

I would like to thank Phill Brown and Keith Payne who assisted with the development of the FastFix wildlife tag electronics. Keith Payne also developed the packaging and attachment system for the FastFix tags, and Juni Sugishita, who attached and recovered the tags to the albatross.

Conflicts of Interest

The author declares no conflict of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript. The author allowed a provisional patent on this technology [WO2011046455A1] to lapse, and the algorithm is therefore in the public domain.

References

  1. Thomas, B.; Holland, J.D.; Minot, E.O. Wildlife tracking technology options and cost considerations. Wildl. Res. 2012, 38, 653–663. [Google Scholar] [CrossRef]
  2. Devlin, G.; McDonnell, K. Assessing real time GPS asset tracking for timber haulage. Open Transp. J. 2009, 3, 78–86. [Google Scholar] [CrossRef]
  3. Moen, R.; Pastor, J.; Cohen, Y.; Schwartz, C.C. Effects of moose movement and habitat use on GPS collar performance. J. Wildl. Manag. 1996, 60, 659–668. [Google Scholar] [CrossRef]
  4. Schofield, G.; Bishop, C.M.; MacLean, G.; Brown, P.; Baker, M.; Katselidis, K.A.; Dimopoulos, P.; Pantis, J.D.; Hays, G.C. Novel GPS tracking of sea turtles as a tool for conservation management. J. Exp. Mar. Biol. Ecol. 2007, 347, 58–68. [Google Scholar] [CrossRef]
  5. Urbano, F.; Cagnacci, F.; Calenge, C.; Dettki, H.; Cameron, A.; Neteler, M. Wildlife tracking data management: A new vision. Philos. Trans. R. Soc. Biol. Sci. 2010, 365, 2177–2185. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  6. Allan, A.; Edenfeld, D.; Joyner, W.H.; Kahng, A.B.; Rodgers, M.; Zorian, Y. 2001 technology roadmap for semiconductors. Computer 2002, 35, 42–53. [Google Scholar] [CrossRef]
  7. Mahlia, T.; Saktisahdan, T.; Jannifar, A.; Hasan, M.; Matseelar, H. A review of available methods and development on energy storage; technology update. Renew. Sustain. Energy Rev. 2014, 33, 532–545. [Google Scholar] [CrossRef]
  8. Kirol, C.P.; Kesler, D.C.; Walker, B.L.; Fedy, B.C. Coupling Tracking Technologies to Maximize Efficiency in Avian Research. Wildl. Soc. Bull. 2020, 44. [Google Scholar] [CrossRef]
  9. Payne, K.W. Development of Two New GPS Avian Tracking Systems. Ph.D. Thesis, University of Otago, Dunedin, New Zealand, 2015. [Google Scholar]
  10. Kaplan, E. Understanding GPS: Principles and Applications; Artech House: Norwood, MA, USA, 1996. [Google Scholar]
  11. Strang, G.; Borre, K. Linear Algebra, Geodesy, and GPS; Wellesley Cambridge Press: Wellesley, MA, USA, 1997. [Google Scholar]
  12. Soundy, A.W.; Panckhurst, B.J.; Brown, P.; Martin, A.; Molteno, T.C.; Schumayer, D. Comparison of Enhanced Noise Model Performance Based on Analysis of Civilian GPS Data. Sensors 2020, 20, 6050. [Google Scholar] [CrossRef] [PubMed]
  13. Lehtinen, M.; Happonen, A.; Ikonen, J. Accuracy and time to first fix using consumer-grade GPS receivers. In Proceedings of the 2008 16th International Conference on Software, Telecommunications and Computer Networks, Split, Croatia, 25–27 September 2008; pp. 334–340. [Google Scholar]
  14. Van Diggelen, F.S.T. A-gps: Assisted GPS, GNSS, and SBAS; Artech House: Norwood, MA, USA, 2009. [Google Scholar]
  15. Garin, L.; Chansarkar, M.; Miocinovic, S.; Norman, C.; Hilgenberg, D. Wireless assisted GPS-SiRF architecture and field test results. In Proceedings of the 12th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GPS 1999), Nashville, TN, USA, 14–17 September 1999; pp. 489–498. [Google Scholar]
  16. Peterson, B.; Hartnett, R.; Ottman, G. GPS receiver structures for the urban canyon. In Proceedings of the 8th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GPS 1995), Palm Springs, CA, USA, 12–15 September 1995; pp. 1323–1332. [Google Scholar]
  17. Akopian, D.; Syrjarinne, J. A fast positioning method without navigation data decoding for assisted GPS receivers. IEEE Trans. Veh. Technol. 2009, 58, 4640–4645. [Google Scholar] [CrossRef]
  18. Van Dierendonck, K.; Xu, M.; Kazemi, P.L. System, Method, and Computer Program for a Low Power and Low Cost GNSS Receiver. U.S. Patent 9,116,234, 25 August 2015. [Google Scholar]
  19. Othieno, N.; Gleason, S. Combined Doppler and time free positioning technique for low dynamics receivers. In Proceedings of the 2012 IEEE/ION Position, Location and Navigation Symposium, Myrtle Beach, SC, USA, 23–26 April 2012; pp. 60–65. [Google Scholar]
  20. Jing, S.; Xu, B.; Liu, W.; Sun, G. A millisecond integer ambiguity search method based on the inter-satellite distance limit for coarse-time GPS positioning. GPS Solut. 2017, 21, 23–29. [Google Scholar] [CrossRef]
  21. Yoo, W.J.; Kim, L.; Lee, Y.D.; Lee, H.K. A coarse-time positioning method for improved availability. GPS Solut. 2020, 24, 2. [Google Scholar] [CrossRef]
  22. Borre, K.; Akos, D.; Bertelsen, N.; Rinder, P.; Jensen, S. A Software-Defined GPS and Galileo Receiver: A Single-Frequency Approach; Birkhäuser: Boston, MA, USA, 2007. [Google Scholar]
  23. Baird, K. The Role of Interferometry in Long Distance Measurement. Metrologia 1968, 4, 135–144. [Google Scholar] [CrossRef]
  24. Nelder, J.A.; Mead, R. A simplex method for function minimization. Comput. J. 1965, 7, 308–313. [Google Scholar] [CrossRef]
  25. Chang, X. Computation of Huber’s M-estimates for a block-angular regression problem. Comput. Stat. Data Anal. 2006, 50, 5–20. [Google Scholar] [CrossRef]
  26. ST Microelectronics NV, www.st.com. Medium-Density Performance Line ARM®-Based 32-Bit MCU with 64 or 128 KB Flash, USB, CAN, 7 Timers, 2 ADCs, 9 com. Interfaces, 17th ed.; docid13587; ST Microelectronics: Geneva, Switzerland, 2015. [Google Scholar]
  27. Taoglas, Enniscorthy, Co. 12mm Two Stage 25dB GPS/GALILEO Active Patch Antenna Module with Front-End Saw Filter, spe-11-8-094/e/ss ed.; Taoglas, Enniscorthy, Co.: Wexford, Ireland, 2009. [Google Scholar]
  28. Sugishita, J. Provisioning and Foraging Strategies of Northern Royal Albatross (Diomedea Sanfordi) at Taiaroa Head/Pukekura, and Relationship with Fisheries. Ph.D. Thesis, University of Otago, Dunedin, New Zealand, 2016. [Google Scholar]
Figure 1. Some results showing typical correlation vs fractional-codephase for a sample of GPS L1 data, sampled at 16.368 MHz and down-sampled to 4.092 MHz. (a) baseband spectrum of the L1-band sampled GPS data. The center frequency is 1575.42 MHz downsampled to an intermediate frequency (IF) of 4.092 MHz. (b) correlation amplitude as a function of fractional codephase for the satellite with Pseudorandom Noise (PRN) code PRN = 4. The measured codephase is δ ϕ 4 = 0.4398635 ; (c) correlation amplitude as a function of fractional codephase for satellite with PRN = 16. The measured codephase is δ ϕ 16 = 0.503052 ; (d) correlation amplitude as a function of fractional codephase for satellite with PRN = 20. The measured codephase is δ ϕ 20 = 0.344973 .
Figure 1. Some results showing typical correlation vs fractional-codephase for a sample of GPS L1 data, sampled at 16.368 MHz and down-sampled to 4.092 MHz. (a) baseband spectrum of the L1-band sampled GPS data. The center frequency is 1575.42 MHz downsampled to an intermediate frequency (IF) of 4.092 MHz. (b) correlation amplitude as a function of fractional codephase for the satellite with Pseudorandom Noise (PRN) code PRN = 4. The measured codephase is δ ϕ 4 = 0.4398635 ; (c) correlation amplitude as a function of fractional codephase for satellite with PRN = 16. The measured codephase is δ ϕ 16 = 0.503052 ; (d) correlation amplitude as a function of fractional codephase for satellite with PRN = 20. The measured codephase is δ ϕ 20 = 0.344973 .
Sensors 20 06480 g001
Figure 2. The FastFix positioning algorithm, showing the Doppler-search, space and space-time least-squares optimization processes.
Figure 2. The FastFix positioning algorithm, showing the Doppler-search, space and space-time least-squares optimization processes.
Sensors 20 06480 g002
Figure 3. Global Doppler least-squares contours of L ν . This shows a global minimum close to the receiver position in New Zealand. This map is an orthographic projection of the globe, centered over New Zealand at longitude 170°, and latitude 45° south. The grey lines are 30° intervals in longitude and latitude.
Figure 3. Global Doppler least-squares contours of L ν . This shows a global minimum close to the receiver position in New Zealand. This map is an orthographic projection of the globe, centered over New Zealand at longitude 170°, and latitude 45° south. The grey lines are 30° intervals in longitude and latitude.
Sensors 20 06480 g003
Figure 4. Histogram of Doppler position errors (in km) (N = 118). The median Doppler-only positioning error is 175 km. The 95th percentile is 537 km. The vertical axis represents the number of doppler-fixes that fall within the corresponding range of positioning error.
Figure 4. Histogram of Doppler position errors (in km) (N = 118). The median Doppler-only positioning error is 175 km. The 95th percentile is 537 km. The vertical axis represents the number of doppler-fixes that fall within the corresponding range of positioning error.
Sensors 20 06480 g004
Figure 5. Least squares intensity map of L δ ϕ , centered around the receiver location. Many local minima can be seen separated by approximately 300 km.
Figure 5. Least squares intensity map of L δ ϕ , centered around the receiver location. Many local minima can be seen separated by approximately 300 km.
Sensors 20 06480 g005
Figure 6. Histogram of horizontal fix errors (in meters). The median fix error is 27.7 m. The vertical axis represents the number of fixes that fall within the corresponding range of positioning error.
Figure 6. Histogram of horizontal fix errors (in meters). The median fix error is 27.7 m. The vertical axis represents the number of fixes that fall within the corresponding range of positioning error.
Sensors 20 06480 g006
Figure 7. Closeup of FastFix tag electronics. The GPS RF front-end is on the right, and the microprocessor on the left. The SD card for data storage is underneath the PCB. Total tag electronics weight is 2.6 g.
Figure 7. Closeup of FastFix tag electronics. The GPS RF front-end is on the right, and the microprocessor on the left. The SD card for data storage is underneath the PCB. Total tag electronics weight is 2.6 g.
Sensors 20 06480 g007
Figure 8. A solar-powered FastFix tag attached to the back of a Royal Albatross. This tag can store in a 2 GB SD-card approximately a quarter of a million fixes. Photo ©Keith Payne—used with permission.
Figure 8. A solar-powered FastFix tag attached to the back of a Royal Albatross. This tag can store in a 2 GB SD-card approximately a quarter of a million fixes. Photo ©Keith Payne—used with permission.
Sensors 20 06480 g008
Figure 9. Position estimates recovered from 8 tags attached to Royal albatross over a one-month period off the coast of the South Island of New Zealand. There are 26,042 fixes. Each colour represents a different animal, showing the remarkable ability of these animals to navigate over the long distances traveled during feeding flights.
Figure 9. Position estimates recovered from 8 tags attached to Royal albatross over a one-month period off the coast of the South Island of New Zealand. There are 26,042 fixes. Each colour represents a different animal, showing the remarkable ability of these animals to navigate over the long distances traveled during feeding flights.
Sensors 20 06480 g009
Table 1. Typical acquisition results for a 4 ms sample of signal (shown in Figure 1). There are six satellite signals that exceed the threshold set for signal detection in this data.
Table 1. Typical acquisition results for a 4 ms sample of signal (shown in Figure 1). There are six satellite signals that exceed the threshold set for signal detection in this data.
iSV X max / σ X Doppler-Shift Δ f i Codephase δ ϕ i
11630.01+2185.154610.503051794
22321.08+1632.136690.576269412
33216.84−2624.854780.209007485
41314.03+2335.251220.197458456
52013.56−818.944800.344973267
6410.70−155.430400.439863498
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Molteno, T.C.A. Estimating Position from Millisecond Samples of GPS Signals (the “FastFix” Algorithm). Sensors 2020, 20, 6480. https://doi.org/10.3390/s20226480

AMA Style

Molteno TCA. Estimating Position from Millisecond Samples of GPS Signals (the “FastFix” Algorithm). Sensors. 2020; 20(22):6480. https://doi.org/10.3390/s20226480

Chicago/Turabian Style

Molteno, Timothy C. A. 2020. "Estimating Position from Millisecond Samples of GPS Signals (the “FastFix” Algorithm)" Sensors 20, no. 22: 6480. https://doi.org/10.3390/s20226480

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop