14
JOURNAL TITLE 1 Design of a Parallelized Direct Position Estimation-Based GNSS Receiver – Part II: Analysis and Results Matthew Peretic and Grace X. Gao Abstract—To develop a practical Global Navigation Satellite System (GNSS) receiver using the Direct Position Estimation (DPE) algorithm, approximations and simplifications must be made to the theoretical formulation of DPE. This work analyzes three popular techniques used to reduce the computational complexity of the DPE algorithm and offers design insights on how to mitigate their impact on localization accuracy when developing a DPE-based receiver. First, a coupling between vertical and clock bias errors is found for DPE, motivating adaptive sampling strategies for grid-based DPE. Second, the convergence of a parallelizable navigation-domain filter is studied geometrically and implications that the filter places on grid- based DPE are discussed. Third, a bias in the batch correlation technique for scoring candidate navigation solutions is identified and three methods to mitigate the bias are proposed. Localization results from an open-source, parallelized DPE-based receiver demonstrate the impact of these three techniques in simulated and live-sky environments. I. I NTRODUCTION T HE one-step Direct Position Estimation (DPE) ap- proach to Global Navigation Satellite System (GNSS)- based navigation provides resilience to challenging signal environments by comparing the received signal to the ex- pected signal in the navigation domain with no intermediate measurements [1], [2]. However, the computational load of this approach is overwhelming if the DPE algorithm is im- plemented na¨ ıvely [3]–[5]. For DPE to be computationally practical, techniques have been developed to approximate and sample the theoretical expression of DPE for a lower computa- tional cost, but these techniques can also degrade the benefits gained from the approach [6]. Three techniques commonly used in the DPE literature are analyzed in this work: grid-based solutions to the objective function, batch correlation of scores for navigation-domain states, and a parallelizable navigation- domain filter. Design insights stemming from the study of these techniques are presented and verified the numerically in simulated and live-sky datasets. A. Popular Techniques in DPE Grid-based DPE provides a means to numerically solve the DPE objective function, as there is no closed-form solution to the DPE objective function [7]. Since GNSSs transmit known Matthew Peretic was with the Department of Electrical and Computer Engineering, University of Illinois at Urbana-Champaign, Urbana, IL 61801, USA. Grace X. Gao is with the Department of Aeronautics and Astronautics at Stanford University. E-mail: [email protected]. signals as prescribed by a standard, the grid-based approach evaluates the cross-correlation between the received signal and a replica signal for each state on a grid [2]. The cross- correlations are the likelihood for each grid point, meaning that the grid is a representation of the probabilistic manifold of position-velocity-time (PVT) estimates for DPE. Finding the maximum likelihood state on the manifold provides a numerical solution to the objective function of DPE. Navigation-domain filters can resolve peaks on DPE man- ifolds and refine navigation estimates by using the known structure of GNSS channel sharing codes. For clarity, this is not referring to filtering at successive time instances using Kalman or particle filters, though such filters are common in the literature ( [1], [8], [9], among others). Rather, grid filters use the information multiple states to infer the true position of the peak more accurately. As the DPE likelihood manifold is expected to be unimodal, taking the weighted average of the likelihood manifold generated by the grid is one such navigation-domain filter that can improve navigation solutions [10]. Batch correlation approximates the scores of many states on the grid efficiently and concurrently. This approximation begins with the reasonable assumption that the position-time and velocity-drift domains can be estimated separately from each other, as Weill shows in [11]. For the position-time domain, the circular cross-correlation property of the Pseudo- random Number (PRN) codes used by Global Positioning System (GPS) may be leveraged to efficiently compute the cross-correlation score at many code delays by fast Fourier transform (FFT), with a resolution dependent on the sampling frequency [12]. For the velocity-drift domain, if the navigation message and channel sharing codes are wiped off of the re- ceived signal, the power spectrum of the carrier wave provides scores at many Doppler frequencies, which can be used to score velocity-drift states [12]. B. Contributions This paper provides analysis of the impacts that these three techniques have on the localization accuracy and highlights design decisions which follow from the impacts: Due to the geometry of satellites visible to a near-earth GPS receiver, the errors in the vertical and clock bias di- mensions of a DPE-based receiver’s navigation estimates are shown to be coupled. This observation can be used to sample more efficiently when DPE is implemented using

JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 1

Design of a Parallelized Direct PositionEstimation-Based GNSS Receiver – Part II:

Analysis and ResultsMatthew Peretic and Grace X. Gao

Abstract—To develop a practical Global Navigation SatelliteSystem (GNSS) receiver using the Direct Position Estimation(DPE) algorithm, approximations and simplifications must bemade to the theoretical formulation of DPE. This work analyzesthree popular techniques used to reduce the computationalcomplexity of the DPE algorithm and offers design insights onhow to mitigate their impact on localization accuracy whendeveloping a DPE-based receiver. First, a coupling betweenvertical and clock bias errors is found for DPE, motivatingadaptive sampling strategies for grid-based DPE. Second, theconvergence of a parallelizable navigation-domain filter is studiedgeometrically and implications that the filter places on grid-based DPE are discussed. Third, a bias in the batch correlationtechnique for scoring candidate navigation solutions is identifiedand three methods to mitigate the bias are proposed. Localizationresults from an open-source, parallelized DPE-based receiverdemonstrate the impact of these three techniques in simulatedand live-sky environments.

I. INTRODUCTION

THE one-step Direct Position Estimation (DPE) ap-proach to Global Navigation Satellite System (GNSS)-

based navigation provides resilience to challenging signalenvironments by comparing the received signal to the ex-pected signal in the navigation domain with no intermediatemeasurements [1], [2]. However, the computational load ofthis approach is overwhelming if the DPE algorithm is im-plemented naıvely [3]–[5]. For DPE to be computationallypractical, techniques have been developed to approximate andsample the theoretical expression of DPE for a lower computa-tional cost, but these techniques can also degrade the benefitsgained from the approach [6]. Three techniques commonlyused in the DPE literature are analyzed in this work: grid-basedsolutions to the objective function, batch correlation of scoresfor navigation-domain states, and a parallelizable navigation-domain filter. Design insights stemming from the study ofthese techniques are presented and verified the numericallyin simulated and live-sky datasets.

A. Popular Techniques in DPE

Grid-based DPE provides a means to numerically solve theDPE objective function, as there is no closed-form solution tothe DPE objective function [7]. Since GNSSs transmit known

Matthew Peretic was with the Department of Electrical and ComputerEngineering, University of Illinois at Urbana-Champaign, Urbana, IL 61801,USA. Grace X. Gao is with the Department of Aeronautics and Astronauticsat Stanford University. E-mail: [email protected].

signals as prescribed by a standard, the grid-based approachevaluates the cross-correlation between the received signaland a replica signal for each state on a grid [2]. The cross-correlations are the likelihood for each grid point, meaningthat the grid is a representation of the probabilistic manifoldof position-velocity-time (PVT) estimates for DPE. Findingthe maximum likelihood state on the manifold provides anumerical solution to the objective function of DPE.

Navigation-domain filters can resolve peaks on DPE man-ifolds and refine navigation estimates by using the knownstructure of GNSS channel sharing codes. For clarity, this isnot referring to filtering at successive time instances usingKalman or particle filters, though such filters are commonin the literature ( [1], [8], [9], among others). Rather, gridfilters use the information multiple states to infer the trueposition of the peak more accurately. As the DPE likelihoodmanifold is expected to be unimodal, taking the weightedaverage of the likelihood manifold generated by the grid isone such navigation-domain filter that can improve navigationsolutions [10].

Batch correlation approximates the scores of many stateson the grid efficiently and concurrently. This approximationbegins with the reasonable assumption that the position-timeand velocity-drift domains can be estimated separately fromeach other, as Weill shows in [11]. For the position-timedomain, the circular cross-correlation property of the Pseudo-random Number (PRN) codes used by Global PositioningSystem (GPS) may be leveraged to efficiently compute thecross-correlation score at many code delays by fast Fouriertransform (FFT), with a resolution dependent on the samplingfrequency [12]. For the velocity-drift domain, if the navigationmessage and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the carrier wave providesscores at many Doppler frequencies, which can be used toscore velocity-drift states [12].

B. Contributions

This paper provides analysis of the impacts that these threetechniques have on the localization accuracy and highlightsdesign decisions which follow from the impacts:• Due to the geometry of satellites visible to a near-earth

GPS receiver, the errors in the vertical and clock bias di-mensions of a DPE-based receiver’s navigation estimatesare shown to be coupled. This observation can be used tosample more efficiently when DPE is implemented using

Page 2: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 2

a grid of candidate navigation solutions – if the grid isinitialized using an estimate from a GNSS receiver, thereceiver need only search vertical and clock bias stateswith proportionately similar offsets.

• Through geometric analysis, successively choosing theweighted average of the grid as the navigation solutionis shown to converge to the linearly interpolated value ofthe grid’s peak. As the weighted average can be computedby a reduction sum where each grid point can computeits contribution independently, this navigation filter canbe parallelized efficiently.

• The batch correlation technique is shown to always intro-duce a bias in the scores it computes unless the replica isconstructed with the exact time delay from the satellite.This bias limits the maximum achievable accuracy ofthe DPE-based receiver and will degrade performance inurban canyons – two of the most compelling motivationsfor DPE. This bias can be mitigated, but at the costof additional computation or reducing the algorithm’sresilience to certain vulnerabilities.

This work directly follows from a prequel paper, assuming thereader’s familiarity with the techniques discussed and using theopen-source software-defined receiver presented in [6], [13].

This paper is organized into five sections, beginning withthe background and contributions of the work in this section.Section II identifies three effects from numerical solutions toDPE on the navigation solutions of the DPE-based receiverand offers resultant receiver design insights. Section III definesthe software-defined receiver and manifold grids used in thefollowing experiments. Section IV presents results from thereceiver prototype for a simulated stationary receiver datasetand a live-sky mobile receiver dataset, distinguishing thestudied effects on the numerical solutions in the results. Thepaper is concluded in Section V.

II. ANALYSIS AND DESIGN INSIGHTS FOR A NUMERICALDPE IMPLEMENTATION

This section presents the analysis of the impact of threetechniques on the localization accuracy, starting first with thenotation used in this work. For a receiver located at the PVTstate X , where:

X , [x y z δt x y z δt]>

= [p δt p δt]>

= [x x]>(1)

four channel parameters can fully describe the transmissionfrom satellite i to the receiver at X:

φicode,t, f icode,t, φicarr,t, and f icarr,t

The parameters f icode,t and f icarr,t describe the Doppler shiftbetween satellite i and the receiver at X . The parametersφicode,t and φicarr,t describe the code and carrier delay fromsatellite i to the receiver at X , and are kept separate for clarityin what information the receiver is expected to have. Moredetails on the DPE algorithm and how these parameters arecalculated for this work is provided in the prequel [6].

A. Vertical and Clock Bias Error Coupling in DPE

Grid-based DPE offers the potential to provide improvedresilience to errors as compared to iterative methods. Thisimprovement arises from a coupling between the accuracy ofthe estimates of clock bias and the accuracy of the estimatesof the receiver’s vertical state. While [14] shows this effect fortwo-step receivers, this work will show that the same effectoccurs in one-step receivers.

1) Linear Model for DPE Maximum Likelihood: Assumingthe replica and received signals have matched frequencies,GPS PRN codes have a cross-correlation function proportionalto the difference in code phase signals over a specific rangeof code phases. This relation can be modeled as shown inEquation 2, with units expressed in number of chips of thePRN code sequence:

score(∆φicode,t) =

{1− |∆φicode,t|, 0 ≤ |∆φicode,t| ≤ 1

0, ∆φicode,t > 1(2)

where ∆φicode,t = φicode,treceived− φicode,treplica(x) + εiφi and:

• φicode,treplica(x) = ||xi − x|| is the code phase estimatecomputed by the receiver for state x.

• φicode,treceived= ||xi − xtrue|| is the code phase of the

received signal at the receiver’s true state xtrue.• εiφi is a collection of the errors in the replica and received

signals, and is responsible for any shift in the maximumscore away from φicode,treplica(x)− φicode,treceived

.• x = [p δt]> can be described in terms of the receiver’s

true state by p = ptrue −∆p and δt = δttrue −∆δt.

Substituting the definitions above into Equation 2 andusing a Taylor series approximation of the vector norm givesEquation 3:

∆φicode,t = ||pi − p−∆p|| − ||pi − p|| − (δttrue − δt) + εiφi

≈ (pi − p)

||pi − p||∆p + ∆δt+ εiφi

= [(−1i)]>∆p + ∆δt+ εiφi

(3)According to the substitution in Equation 3,[−1i]> = (pi−p)

||pi−p|| . Then, the solution to the objectivefunction of DPE is found by maximizing the sum of thecross-correlation scores for all the tracked channels, as givenin Equation 4:

X = arg maxX

∑i

(1− |∆φicode,t|)2

= arg minX

∑i

|∆φicode,t|2

= arg minX

∣∣∣∣Γ [∆p∆δt

]∣∣∣∣2(4)

with the satellite geometry matrix Γ =

(−11) 1(−12) 1

......

(−1M ) 1

.

Page 3: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 3

2) Geometric Impact: Conceptually, as the surface of theEarth blocks signals from satellites that are below the hori-zon for a near-Earth receiver, the receiver will only receivesatellites which are above it. A state slightly shifted from theactual receiver position in the vertical dimension will havecode phase errors with the same sign in all channels. Such ashift in all the channels is very similar to a clock bias shift,which leads to a strong coupling between the vertical estimatesand the clock bias estimates, as Misra shows in [14].

This coupling manifests itself numerically in the dilutionof precision (DOP) matrix DOP = (Γ>Γ)−1. This matrixoriginates from the covariance of the error of the positionestimate, as shown in Equation 5 [15]:

Cov

[∆p∆δt

]= σ2(Γ>Γ)−1 = σ2DOP (5)

As the DOP matrix is a covariance matrix, the diagonalterms are proportional to the variance in a given directionwhile the off-diagonal terms are proportional to the covariancebetween two directions. If the position states of the DOP ma-trix are expressed in terms of receiver-referenced East-North-Up (ENU) coordinates, GPS receivers will typically havemuch higher variance in the vertical direction than the otherdirections, due to the effects described above. Furthermore,also due to the effects described above, the covariance termsbetween the vertical dimension and the clock bias dimensionwill typically be significant, while all other off-diagonal termsare not significant, indicating a strong coupling between thedimensions. This means that the error in the vertical estimatewill typically be directly proportional to the error in the clockbias estimate; for GNSSs, the vertical error will be directlyproportional to the clock bias error by factor between 1 and 2.And, as Misra demonstrates in [14] for conventional two-stepsapproaches, if the receiver has an accurate model of the errorin its clock, the coupling can be employed to significantlyreduce the error in the receiver’s vertical estimates.

3) DPE Receiver Design Insights: Position-time manifoldgrids can be designed to leverage the coupling between verticaland horizontal estimates. If the DPE algorithm begins in alow-confidence state, such as one acquired through coarseacquisition or other sensors, a grid with large, independentvariations in the vertical and clock bias states should be used.The variation in such a grid would increase the likelihood offinding a state with offsetting errors in the vertical and clockbias dimensions. If the DPE algorithm begins in a state ofreasonable confidence, such as one acquired through scalartracking or previous DPE timesteps, a grid with vertical andclock bias states that vary together should be used. This wouldallow a grid of the same size to refine the estimate by searchinga smaller space at a higher resolution.

B. Computationally Simple Navigation-Domain Filter

In grid-based DPE, navigation-domain filtering may beperformed to attempt to better resolve the peak of the manifold.Weighted average-based position-domain filtering was utilizedby Ng and Gao in [10], [16]; however, its mathematicaljustification was not explored in those works. The following

justification of weighted average-based position-domain filter-ing was developed for this work.

1) Analytical Model of Manifold Scoring: Assuming per-fect signal transmission and reconstruction, if the DPE re-ceiver’s estimate x is exactly at the ground truth locationxtrue, all tracked channels should have the triangular form ofthe BPSK code cross-correlation score and lie on top of eachother, as shown in Figure 1 (staggered vertically for visualclarity).

Fig. 1: Theoretical shape of correlation functions of multipletracked channels at the ground truth location of a receiver.

However, if the DPE receiver’s estimate is slightly off ofthe true state by some perturbation ∆x, the correlation scoresof the channels will begin to move away from the center ofthe plot based on the estimate-receiver and satellite-receiverrelative geometry, as shown in Figure 2.

Fig. 2: The replica-received correlation plots for a receiverstate estimate nearby – but not equal to – the ground truthlocation of the receiver.

The chip offsets on the x-axis of Figure 2 are referencedwith respect to the grid point at state x. For clearer visualiza-tion of how the cross-correlation functions shift based on thestate perturbation applied, a range of chip offsets are shownin Figure 2. However, only the cross-correlation scores at zerochip offset from itself – the value of the cross-correlationfunction on the y-axis – can be computed for a given gridpoint.

Consider now two states co-linear with the ground truth andperturbed at ∆x from the ground truth in opposite directions.Assuming the three points have the same satellite geometrydue to their proximity, the state perturbed by −∆x will havea mirror image replica-received correlation plot with respectto the state perturbed by ∆x. In other words, the correlationplots will shift the same amounts in opposite directions, asshown in Figure 3.

Page 4: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 4

Fig. 3: The replica-received correlation plots for two receiverstate estimates the same distance away in opposite directionsfrom the ground truth location of the receiver.

So, for all possible shifts ∆x in a given direction, untilthe shifts are greater than one chip for any channel, andassuming all points have the same satellite geometry acrossthe grid, the replica-received correlation plots for each channelwill shift at a constant rate. Due to the piecewise linearityof the cross-correlation function, a constant-rate shift resultsin a linear change in the score. Thus, the composite replica-received correlation plot for M channels has the same formas the auto-correlation function for one channel, as shown inFigure 4.

Fig. 4: The sum of the individual replica-received correlationplots at the ground truth location of the receiver over a selectrange where all channels are above their noise floors.

The rate at which the individual cross-correlation plotsshift is a function of the relative locations of that channel’ssatellite and the receiver. Channels with satellite elevationcloser to the horizon will move into the correlation function’snoise floor faster than those closer to zenith. For simplicity,in this analysis, it is assumed that the DPE grid has nocandidate points with channels in the noise floor. Thus, Figure4 visualizes only a range of offsets bounded by u in whicheach channel has a non-zero score.

2) Geometric Solution of Position: Due to thisknown and piecewise-linear structure, the true positionof the receiver may be geometrically computed.Figure 5 visualizes geometric relations used in thecomputation of the ground truth xtrue from two statesx1 ∈ [−u, 0) and x2 ∈ (0, u] with |x1| > |x2|.

The score(·) values and the locations of x1 and x2 are theonly values available to the receiver. However, other termspresent in Figure 5 will be used to compare the weightedaverage of x1 and x2 to an exact calculation of the receiver’strue location xtrue. For simplicity, assuming the composite

Fig. 5: The geometry of the replica-received correlationscores for two states nearby the ground truth location of thereceiver.

correlation function is normalized, following the formulationof Equation 2, the width and height of the triangles drawn inFigure 5 are equivalent:• score(xtrue)− score(x1) = φ1• score(xtrue)− score(x2) = φ2• score(x2)′ = score(x2) + 2φ2• score(x2)− score(x1) = φ1 − φ2If the correlation plot is not normalized, a scale factor s may

be used to relate the values instead. Using this simplification,though, the true location of the peak may be computedaccording to Equation 6 [13]:

xtrue =φ1x2 + φ2x1

φ1 + φ2(6)

3) The Weighted Average Position-Domain Filter: In com-parison, the weighted average between x1 and x2 is given byEquation 7 [13].

x =(1− |φ1|)x1 + (1− |φ2|)x2

2− |φ1| − |φ2|(7)

When comparing Equation 6 and Equation 7, it is clear thatthe weighted average does not compute the true position ofthe manifold peak. However, the weighted average is capableof converging to the true position over multiple iterations dueto the trends of the numerator coefficients. Let x1 be furtheraway from xtrue than x2. Then,• The factors of the x1 term, φ2 (Equation 6) and 1− |φ1|

(Equation 7), will be smaller numbers.• The factors of the x2 term, φ2 (Equation 6) and 1− |φ2|

(Equation 7), will be larger numbers.These factors will trend in the same direction as x2 ap-

proaches xtrue. And, when x2 = xtrue, the grid will remainat x2 [13].

4) DPE Receiver Design Insights: By taking the weightedaverage of the states on the grid, the known structure of themanifold can be leveraged to numerically find the state atthe maximum of the theoretical DPE manifold, regardless ofwhether that state is actually sampled by the grid. The weightsused in this operation are simply the scores computed by eachgrid point, making the computation efficient when parallelizedusing reduction.

Page 5: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 5

The weighted average does assume that the manifold isunimodal – the weighted average for a manifold with twopeaks, for example, will converge to a state between thepeaks. Also, this tracker does require successive timesteps toconverge, but will remain at the maximum of the theoreticalmanifold once it is found. Finally, this approach does requirea manifold grid that is symmetric about the center state of thegrid, however, which forces an inherent structure in the statesthat are searched.

C. Accuracy Limitations of Batch-Corrleated DPEThe batch correlation technique is commonly employed to

make the computational cost of a numerical DPE implementa-tion practically implementable in portable receivers. However,the approximation it makes does introduce an biasing effect,which will be studied in this section.

1) Numerical Cross-Correlation: Since the numerical im-plementation of the cross-correlation function does not com-pute an analytical expression of the cross-correlation function,the receiver is left to interpolate between or quantize todiscrete samples of the cross-correlation function. Over themajority of code delays, interpolating the score is an accurateapproximation – the cross-correlation function is piece-wiselinear when the replica is within one code chip of the receivedsignal and is in a noise floor around zero when the replicahas more than one code chip of error with respect to thereceived signal. However, the interpolation can be erroneousfor a critical range of code delays.

Consider the difference between the analytical cross-correlation function and the numerical cross-correlation func-tion, assuming the receiver has a perfect model for the receivedsignal. The numerical implementation, consisting of the cross-correlations of two sampled signals, will be a discrete setof cross-correlation score values. If the replica signal is con-structed in the numerical implementation with no code delaywith respect to the received signal, linear interpolation betweenthe cross-correlation samples will have no error comparedto the analytical cross-correlation function. However, if thecode delay is non-zero, linear interpolation between the cross-correlation samples will be erroneous near the peak of thecross-correlation function.

For clarification without loss of generality and for compari-son with the localization results in Section IV, this effect is vi-sualized in Figure 6 for the sampling frequency fs = 2.5 MHzused in the receiver implementation. For the GPS L1 signaltracked by the receiver implementation of this work, the PRNcode repeats 1023 code chips every 1 ms. Thus, the samplesof the replica signal are spaced according to Equation 8:

(1× 10−3) sec

1023 chips× (2.5× 106

samples

sec)

≈ 2.5samples

chip= 0.4

chips

sample

(8)

With the replica samples spaced at 0.4 chipssample , the worst-case

numerical approximation of the analytical cross-correlationfunction by linear interpolation will occur when the replicais constructed at a code phase error of 0.2 chips, as shown inFigure 6.

Fig. 6: The interpolated cross-correlation scores compared tothe theoretical cross-correlation scores depending on the truecode delay of the replica.

2) Resultant Localization Errors: Unfiltered DPE, in par-ticular, suffers from the biasing in batch correlation due to thechain of events that follows:

1) When the DPE receiver implementation begins a newtimestep, it constructs a replica signal at the receiver’sprevious PVT state, which, for the position-time com-ponent, was the state on the grid with the highestbatch correlation score. Thus, the replica at the newtimestep will have nearly the same code phase erroras the highest-score position-time state of the previoustimestep, with the only change in code phase errorcoming from movement of the receiver.

2) If the position-time grid includes the same state as thereceiver’s previous PVT estimate, there will be a sampleof the cross-correlation function exactly at the codephase error of that state on the grid. All other stateson the position-time grid will be interpolations of thesamples of the cross-correlation function.

3) If the code phase error of the previous timestep’s PVTestimate has not changed sufficiently, the sample ofthe cross-correlation function corresponding to that PVTstate will have the highest score, since it was the statewith the highest score at the previous timestep. And,the grid point state at the previous PVT state will havea score exactly equal to this highest score, while all othergrid points will, at best, be interpolations between thebest score and some other lower score.

In essence, for any given timestep, the score for theprevious-best PVT state will be the one most accuratelycomputed in the current timestep. And, the PVT states thatshould score better than the previous-best PVT state will beunderestimated – scoring worse than the previous best PVTstate – within some range of code phase errors. This effect isvisualized in Figure 7.

As shown in Figure 7, for the batch correlation implemen-tation of this work, there will be a range of 0.4 code chipswith respect to a given satellite where the previous best PVTstate will again have the highest cross-correlation score. In theworst-case scenario for such error, the receiver would have tomove a distance of 0.2 chips along the line-of-sight directionto a given satellite before the receiver’s PVT estimate wouldno longer be the highest score. This translates to a 60-m range

Page 6: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 6

Fig. 7: The progression of the error in the batch-correlatedcross-correlation scores over multiple timesteps for a DPEreceiver moving away from the estimated state.

in the line-of-sight direction where the previous PVT state hasthe highest cross-correlation score for a specific satellite.

When transforming this error region to ENU coordinates,satellite geometry will play a significant role. For purely hori-zontal movement, the error region will still be 60 m. However,satellites can only be tracked with some elevation above thehorizon, extending the error region further as a function ofthe geometry matrix Γ. Nonetheless, this approximation ofa 60-m unfiltered DPE “deadband” provides a reasonableaccuracy expectation and explanation for the results presentedin Chapter IV of this work.

3) DPE Receiver Design Insights: Batch correlation andgrid-based DPE are beneficial numerical approximations forcomputational efficiency. However, replica fidelity is biasedtowards the previous best guess on the grid and reduced forgrid states closer to the true peak. Thus, estimates from suchan implementation will not move from a maximum likelihoodstate unless the code phase error of that state exceeds acertain deadband range. This deadband range is a functionof the sampling frequency and the line-of-sight vectors toall satellites. However, these effects can be mitigated whenproperly addressed in the DPE receiver design. Thus, thisimpact on accuracy should be considered for compensationby receiver design choices:

1) Increase the sampling frequency. This will reduce thetime between samples and, thus, the size of the accuracydeadband. Increased frequency will come at a higherprocessing cost and more expensive hardware, but isguaranteed to decrease the size of the deadband pro-portionately to the increase in the sampling frequency.

2) Add non-invasive channel-domain peak detectors to tryto resolve and sample at the true peak. This comes ata slight increase in computational cost and will provideimprovement proportionately to how well the bit tran-sitions can be tracked. However, it may be susceptibleto multipath errors if the tracking loops are scalar, soa peak detector that aids but does not commandeer thebatch cross-correlation would be most beneficial.

3) Add navigation-domain filtering. Grid-based DPE sam-ples the theoretical manifold at specific states. If thefiltering accurately characterizes the actual manifold, theadded precision will lead to a more accurate replica atthe next timestep. However, such filters come with therisk of introducing greater errors if they make incorrect

assumptions about the actual manifold.The impact of satellite geometry also leads to a concerning

effect: an unfiltered grid-based DPE receiver implementationusing batch correlation will have worse horizontal accuracy inurban environments, as the only satellites visible by line-of-sight in an urban canyon have high elevation. This is due tosatellite geometry – horizontal error will minimally change thecode phase error for high elevation satellites. This effect runscounter to the motivation of using DPE in urban environmentsfor its multipath resilience.

III. DPE RECEIVER ALGORITHM

To evaluate the numerical DPE implementation, Chapter IVprocesses simulated and live-sky results using CUDARecv,the parallelized software-defined DPE-based receiver de-tailed in [6], [13] and available online as open-source athttps://github.com/mjp5578/GGRG-GPS-SDR. Specifics ofthe DPE receiver implementation used are given as follows.

A. Hardware SpecificsThe simulated dataset used in this work is the same

as specified in [6], which can be referenced for more de-tail. For the live-sky datasets, antenna samples are acquiredthrough the use of an Ettus Research Universal SoftwareRadio Peripheral (USRP) [17] triggered a clocking signal of10 MHz ± 5× 10−10 Hz from a Microsemi SA.45s Chip-Scale Atomic Clock (CSAC) [18], [19]. The USRP alsodigitally down-converts the received signal from the GPS L1-band carrier frequency of fL1 = 1575.42 MHz [15] to 0 Hz.The sampling frequency in both the simulated and live-skydatasets is fs = 2.5 MHz.

B. State ConventionA PVT state is defined with position-velocity states p and

p in the Earth-centered, Earth-fixed (ECEF) coordinate frameand time states δt and δt as the negative offset with respectto an internal reference time kept by the DPE algorithm basedon the number of samples received. Additionally, δt and δtare stored computationally as the distances cδt and cδt to beof comparable magnitude to the ECEF p and p states.

C. Manifold GridsThree position-time and velocity-drift grids were used by

BatchCorrManifold when evaluating the DPE receiver algo-rithm: Spread Grid 7m, RNGrid 7m, and Spread Grid 6m. Inthe unfiltered implementation, the state on the grid with thehighest score is selected as the navigation solution. For thefiltered implementation, a conceptual description of the filteris given in Section I and the analytical representation of thenavigation-domain filter is provided in [6], and the output ofthis filter is used as the navigation solution.

1) Spread Grid 7m: The Spread Grid 7m specifies aconfiguration of candidate points with higher density towardsthe estimate at which the receiver is initialized. This providesmore detail in the region where the peak should be locatedwhile still capturing information over a wide range. A 1Dslice of the position-time grid is visualized in Figure 8 andspecified numerically in Table I.

Page 7: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 7

Fig. 8: A 1D slice of the Spread Grid 7m.

TABLE I: Spread Grid 7m manifold dimensions

Axis Span InnerSpacing

OuterSpacing

Pointsper Dim.

East, North, Up ±154 m 7 m 21 m 25Bias Range cδt ±154 m 7 m 21 m 25East, North, Up ±15.4 m

s 0.7 ms 2.1 m

s 25Drift Range cδt ±5.5 m

s 0.25 ms 0.75 m

s 25

2) RNGrid 7m: In comparison with the structured SpreadGrid 7m, the RNGrid 7m was generated to cover the sameposition-time domain space with the same number of pointsas the Spread Grid 7m, but using largely randomly-selectedcandidate points.

A total of (254 − 17) points of the 254 points were chosenas 4D uniform random variables, i.i.d. with respect to eachdimension. All candidate grid points were chosen i.i.d. withrespect to each other.

The other 17 points in the position-time domain grid werechosen explicitly. Sixteen of these were the 16 vertices of a4D hypercube spanning ±154 m in each dimension to ensureRNGrid 7m covers the same position-time space as SpreadGrid 7m. The one other explicitly chosen grid point was acandidate at the center of the grid so that the algorithm couldremain at the same estimate over multiple timesteps.

A 3D slice of the RNGrid 7m used in this work is shownin Figure 9.

Fig. 9: A 3D slice of the RNGrid 7m for grid points withclock bias between 153 and 154 m. The randomly chosengrid points are represented as blue circles, and 8 of the 16vertex points that are visible in this plot are represented asorange triangles.

As Section IV uses this grid to study position-time domaineffects, the velocity-drift grid of the RNGrid 7m configuration

was kept identical to the Spread Grid 7m. The specificationsof the grid are provided in Table II.

TABLE II: RNGrid 7m manifold dimensions

Axis Span Mean Spacing Pointsper Dim.

East, North, Up ±154 m 12.3 m 25Bias Range cδt ±154 m 12.3 m 25

Axis Span InnerSpacing

OuterSpacing

Pointsper Dim.

East, North, Up ±15.4 ms 0.7 m

s 2.1 ms 25

Drift Range cδt ±5.5 ms 0.25 m

s 0.75 ms 25

3) Spread Grid 6m: The candidate points of the SpreadGrid 6m manifold were chosen in the same manner as SpreadGrid 7m, but with a 6-m spacing for the high-density pointsand a corresponding adjustment to the lower-density points.This size reduction was chosen to better suit the mobile datasetanalyzed in Section IV. The candidate spacing density isshown in Figure 10 with a 1D slice of the position dimensiongrid and detailed in Table III.

Fig. 10: A 1D slice of the Spread Grid 6m.

TABLE III: Spread Grid 6m manifold dimensions

Axis Span InnerSpacing

OuterSpacing

Pointsper Dim.

East, North, Up ±132 m 6 m 18 m 25Bias Range cδt ±132 m 6 m 18 m 25East, North, Up ±13.2 m

s 0.6 ms 1.8 m

s 25Drift Range cδt ±5.5 m

s 0.25 ms 0.75 m

s 25

IV. EXPERIMENTAL RESULTS

This section presents localization accuracy analysis of theDPE-based receiver on simulated and real-world data. Thethree effects of numerical DPE studied in Section II areidentified in the results. First, idealized GPS receiver datagenerated by simulation will study the best-case localiza-tion conditions to identity the causes of effects from thenumerical implementation present in the localization results.Second, live-sky GPS receiver data will evaluate the receiverimplementation’s performance when subjected to motion andunmodeled errors.

A. Localization Accuracy Analysis – Simulated Data

In order to evaluate the best-case capabilities of the re-ceiver, a simulated dataset of a stationary receiver is used.A stationary-receiver simulated dataset is desirable for thisobjective, as it will have the following properties:

Page 8: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 8

• Only Klobuchar-modeled atmospheric deflections arepresent in the received signal.

• Received satellite power is modeled as a function ofdistance only.

• No movement of the receiver, meaning the cross-correlation manifold will have only minimal change ofshape over the dataset, and the change that does occurwill only be from the motion of satellites.

The dataset used in this section consists of simulatedtransmissions from eight GPS satellites with the followinggeometry:• HDOP =

√0.390 + 0.607 = 0.998

• V DOP =√

2.383 = 1.543• TDOP =

√1.097 = 1.047

Additionally, the covariance between the clock bias and thevertical dimensions is 1.516, while all other covariance termsare negligible.

Three configurations are run for comparison:1) Unfiltered Spread Grid 7m2) Unfiltered RNGrid 7m3) Filtered Spread Grid 7mFor all three configurations, the receiver was initialized

at 100 different states surrounding the true position of thereceiver. The initialization states were chosen by randomlydrawing i.i.d. from a uniform distribution:• Magnitude values in the range [50, 80] m and angle values

in the range [0, 2π) for the horizontal plane. These valueswere converted into rectangular offsets in the East andNorth directions and added to the initial state.

• Values in the range [−80,−50] ∪ [50, 80] m as an offsetin the Up direction and added to the initial state.

• Values in the range [−80,−50] ∪ [50, 80] m were drawnand added as an offset to perturb the true clock bias usedfor initialization.

For the unfiltered configurations, the receiver was initializeda second time at 100 different states surrounding the trueposition of the receiver. The initialization states were chosenby randomly drawing i.i.d. from a uniform distribution:• Magnitude values in the range [50, 80] m and angle values

in the range [0, 2π) for the horizontal plane. These valueswere converted into rectangular offsets in the East andNorth directions and added to the initial state.

• Values in the range [−80,−50] ∪ [50, 80] m as an offsetin the Up direction and added to the initial state.

• The clock bias used for initialization was unperturbedfrom the true value.

1) Localization – Unfiltered Spread Grid 7m: Given theinitial state based on the random selection described above, theDPE receiver processed the first two seconds of the simulateddataset in timestep increments of 20 ms. No navigation-domainfiltering was used. For all 100 runs in both experiments, thereceiver reached a “steady-state” navigation solution withinone second where the navigation solution no longer movedbetween timesteps. The error in each run’s steady-state solu-tion is statistically characterized in Table IV.

Furthermore, by plotting the error in one dimension withrespect to another, the expected coupling between only the

TABLE IV: Root mean square (RMS) and standard deviationof the error in the randomly initialized simulated datasetusing the DPE receiver implementation with theSpread Grid 7m manifold grid.

Hor. Vertical ClockBias Geo.

RMS (m)δt Unperturbed 32.8 73.0 45.6 92.1

RMS (m)δt Perturbed 38.2 48.9 39.1 73.4

Std. Dev. (m)δt Unperturbed 14.9 34.9 27.4 36.9

Std. Dev. (m)δt Perturbed 19.4 23.0 18.7 28.8

vertical and clock bias dimensions may be observed, as shownin Figure 11.

Fig. 11: The RMS error after two seconds of processing forthe randomly initialized simulated dataset using the DPEreceiver implementation with the Spread Grid 7m manifoldgrid. The initializations with no clock bias perturbation areshown in blue, and the initializations with clock biasperturbation are shown in orange.

As expected from the results of Section II-A and the co-variance between the vertical and clock bias states, Figure 11shows a linear correlation between vertical error and clock biaserror, and no correlation between other states. This couplingallows for relatively low vertical RMS errors in the final states,as statistically characterized in Table IV.

Initial state estimates with more error typically resulted inthe receiver moving to a greater number of intermediate stateestimates. For the 100 runs without the clock bias perturbation,the DPE receiver implementation moved once at most and, onaverage, 0.89 times before settling on the final state. For the100 runs with the clock bias perturbation, the DPE receiverimplementation moved five times at most and, on average, 1.68times before settling on the final state.

Additionally, with the way the random perturbations weredrawn, runs in the clock bias-perturbed set would be initializedwith states with less than 30 m difference in their vertical andclock bias error half the time. With the linear structure of thecandidate points in the Spread Grid 7m, the coupling betweenthe vertical and clock bias states may be exploited, as themanifold would immediately be in a region with many stateshaving comparable vertical and clock bias errors, beneficially

Page 9: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 9

utilizing the coupling. Conversely, runs that did not haveclock bias perturbations would have states with around 65 mdifference in their vertical and clock bias error. States withcomparable vertical and clock bias error would be in the lower-resolution region of the grid, and they may have significanterror in the horizontal dimension, giving a low score andpreventing the grid from moving that direction.

Thus, perturbing the clock bias forced more states – typi-cally states with less error – on the theoretical replica-receivedcorrelation manifold to be sampled, increasing the receiverimplementation’s likelihood of finding a state near the truepeak. These better estimates are reflected by the improvementin the covariance for the vertical and clock bias states.

With the improvement in the vertical and clock bias accu-racies from perturbing the initial clock bias comes a slightdecrease in horizontal accuracy. However, as Table IV has alower geometric error, and DPE optimizes with respect to lowgeometric error, this increase in horizontal error is reasonable.

2) Localization – Unfiltered RNGrid 7m: Given the initialstate based on the random selection described above, theDPE receiver processed the first two seconds of the simulateddataset in timestep increments of 20 ms. No navigation-domainfiltering was used. For all 100 runs in both experiments, thereceiver reached a “steady-state” navigation solution withinone second where the navigation solution no longer movedbetween timesteps. The error in each run’s steady-state solu-tion is statistically characterized in Table V.

TABLE V: RMS and standard deviation of the error in therandomly initialized simulated dataset using the DPEreceiver implementation with the RNGrid 7m manifold grid.

Hor. Vertical ClockBias Geo.

RMS (m)δt Unperturbed 35.1 69.3 44.7 89.6

RMS (m)δt Perturbed 36.0 54.1 40.2 76.4

Standard Deviation (m)δt Unperturbed 13.4 37.1 26.0 37.6

Standard Deviation (m)δt Perturbed 17.5 22.1 16.0 26.0

Furthermore, by plotting the error in one dimension withrespect to another, the expected coupling between only thevertical and clock bias dimensions may be observed, as shownin Figure 12.

Again, Figure 12 shows a linear correlation between ver-tical error and clock bias error, and no correlation betweenother states. Table V shows the final RMS errors for theseexperiments. Perturbing the clock bias state also noticeablyimproves the vertical RMS error and the clock bias error. Aswith Spread Grid 7m, RNGrid 7m will sample a different setof points as the state estimate moves.

Initial state estimates with more error again typically resultin the receiver moving to more intermediate state estimates.For the 100 runs without the clock bias perturbation, theDPE receiver implementation moved once at most and, on

Fig. 12: The RMS error after two seconds of processing forthe randomly initialized simulated dataset using the DPEreceiver implementation with the RNGrid 7m manifold grid.The initializations with no clock bias perturbation are shownin blue, and the initializations with clock bias perturbationare shown in orange.

average, 0.94 times before settling on the final state. For the100 runs with the clock bias perturbation, the DPE receiverimplementation moved five times at most and, on average, 1.85times before settling on the final state. Again, sampling morestates on the theoretical replica-received manifold improvesthe receiver implementation’s likelihood of finding a state nearthe true peak.

However, in RNGrid 7m, there is no structure in the choiceof candidate points, so any exploitation of the coupling be-tween vertical and clock bias error will stem only from thedensity of the states in the grid.

The horizontal error also decreases slightly for theRNGrid 7m when the initial clock bias is perturbed. Again,since Table II shows the geometric error decreased with theclock bias perturbations, this worsening of the horizontalaccuracy is an effect of the DPE objective function optimizingfor lower geometric error.

3) Localization – Filtered Spread Grid 7m: Given theinitial state based on the random selection described above,the DPE receiver processed the first sixty seconds of thesimulated dataset in timestep increments of 20 ms. At eachtimestep, after generating the manifold, the weighted-averageposition-domain filter generated the navigation solution forthat timestep, and the filtered navigation solution was used toinitialize the grid for the next timestep. The RMS error overall 100 randomly initialized runs at each timestep is shown inFigure 13.

Figure 13 shows that localization error in the filtered imple-mentation continuously decreases over the first 20 seconds – adifference from the unfiltered implementation, which jumpedat most five times in the first one second of data beforeremaining steady for the rest of the dataset. The convergencein the filtered case is due to two reasons. First, as discussedin Section II-B, the weights used in the weighted average areclose but not exactly equal to the geometrically ideal valuesof linear interpolation. Second, Section II-C shows that thebatch correlation method of manifold state score calculationwill often compute cross-correlation scores that undervalue thestates on the peak. In such a scenario, the manifold itselfwill have a form where the true peak is “sliced off” andthe computed maximum is at the navigation solution of the

Page 10: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 10

Fig. 13: The average RMS error for the filtered Spread Grid7m manifold grid. The plots in the right column are azoomed version of the full-size plots in the left column.

previous timestep. As shown in Figure 7, the “sliced off”region of the manifold will still have higher scores thanthe side walls of the manifold, so the weighted average ofthe manifold will be closer to the peak than the computedmaximum point. This effect will pull the navigation solutiontowards the true peak over multiple timesteps until it hasconverged on the true peak, which manifests in the decreasingerror of Figure 13.

After the first 20 seconds of the dataset, the exponentialerror decay stops and experiences steady-state trends. Tostudy this steady-state region, analysis will focus first on thehorizontal and vertical error, then focus second on the clockbias error.

a) Horizontal and Vertical Error: As seen in Figure 13,the weighted average-based signal tracker converges to signif-icantly more accurate horizontal and vertical estimates of thetrue receiver position than the unfiltered method. Additionally,the errors in the unfiltered and weighted-average positiondomain filter exhibit some different effects compared to eachother:

1) In the unfiltered implementation, the navigation solutionwill vary over time for approximately one second beforereaching and remaining at a final state for the rest of thedataset. In the filtered implementation, the navigationsolution will converge to a region of less than 3 m RMSposition error within the first 20 seconds of the dataset,

but the navigation solution will continue to move duringthe rest of the dataset.

2) In the unfiltered implementation, different random ini-tializations will arrive at different navigation solutionswith standard deviation on the order of tens of meters.In the filtered implementation, different random initial-izations will arrive nearly the same navigation solutionwith standard deviation on the order of micrometers.

By picking the state with the highest score, the unfilteredimplementation does not utilize any information about theshape of the manifold and is only capable of evaluating afinite set of states around the initialization state. In contrast,the filtered implementation is steered to the peak of the cross-correlation manifold by moving the grid until the scores oneither side of the center of the manifold are balanced. Theweights used in the weighted average may also resolve tovalues between grid points, allowing the receiver to sampleany possible point. As a result, the filtered receiver is capableof getting much closer to the true peak of the cross-correlationmanifold.

The jitter that remains in the horizontal and vertical errorof the filtered implementation is likely due to the atmosphericeffects modeled by the simulator but not the receiver im-plementation. These errors will prevent the replica-receivedcorrelation score functions of the individual channels fromperfectly aligning at the ground-truth state. Thus, there willbe some error in the estimation of the ground truth state thatcannot be overcome without better replica modelling. As thiserror is on the order of 3 m RMS, it is likely smaller than the7-m spacing of grid points in the unfiltered implementation,and is “filtered” by the grid only being able to reach a finitesubset of states.

To characterize the steady-state jitter in the filtered imple-mentation, Table VI shows the mean value from 30 s to 60 s ofthe RMS error at each timestep for all random initializations.

TABLE VI: RMS and standard deviation of the error in therandomly initialized simulated dataset using the DPE receiverimplementation with the Spread Grid 7m manifold grid forboth weighted average-filtered DPE and unfiltered DPE.

HorizontalRMS Error

VerticalRMS Error

Clock BiasRMS Error

Filtered RMSat Each SS TimestepOver All Runs (m)

1.0 0.1 16.0

Unfiltered RMSat Each SS TimestepOver All Runs (m)

38.2 48.9 39.1

In the statistical characterization of the horizontal andvertical error of Table VI, it can be seen that the vertical erroris an order of magnitude better than the horizontal error. Thisis due to the coupling to a very accurate lock of the clockbias, the justification for which will be discussed next.

b) Clock Bias Error: In Figure 13, while the horizontaland vertical position plots converge near zero in steady-state,the clock bias plot grows linearly for the remainder of thedataset. At first glance, it may appear that this is a loss of

Page 11: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 11

lock and increasing error in the clock bias term of the DPEreceiver’s state estimates. However, with further analysis, itmay be concluded that the receiver is maintaining lock on adrifting clock.

First, as indicated on the y-axis of Figure 13, the clockbias plot is showing the absolute difference with respect tothe scalar tracking used to initialize the dataset. This scalartracking solution is the state to which all perturbations areadded. So, a difference with respect this state is not an errorunless that state is known to be at the true location with respectto the received signal. And, the linearity in the growing clockbias of Figure 13 is indicative of receiver clock drift.

All clock bias estimates from 30 s to 60 s were fit toa first-order equation using the linregress function ofthe SciPy library [20]. With a coefficient of determinationof R2 = 0.99888, the linear growth in the clock bias statedepicted in Figure 13 can be modeled for sample set index τas given in Equation 9:

δtgrowth(τ) = 0.00556m

timestepτ − 0.70281 m (9)

With the strong linearity over this region as indicated bythe coefficient of linearity, it would appear that this effect iscaused by a clock drift in the simulated data itself. ConvertingEquation 9 into units of clock drift by using the speed of lightas 3 × 108ms and the length of one sample set as 20 ms

timestepgives Equation 10:

δtgrowth(τ) = 0.92665ns

sτ − 2.34272 ns (10)

If the DPE receiver implementation is accurately locked tothe true clock bias, this linear regression shows that the driftis less than one nanosecond per second or less than one partper billion (ppb), which is within the rating of 50 ppb of thesimulator module used [21]. Furthermore, if the trend is latentin the convergence phase of the clock bias plot, the scalartracking solution used for initialization has 2.35 ns of error,indicating that this solution is accurate, as expected.

As the fit and parameters of the regression in Equation 10are reasonable, it may be concluded that the DPE receiverimplementation correctly tracks a drift in the clock biasregardless of initialization, according to Table VI. The RMSfor the steady-state interval from 30 s to 60 s of the standarddeviations between each of the 100 runs for the clock bias is inthe micrometer range, showing that all random initializationsconverged to nearly the same estimate.

Since it may be concluded that the DPE receiver implemen-tation very accurately tracks the clock bias in the navigationsolution, the vertical accuracy will also benefit through thecoupling of these two states.

The clock drift is not noticeable in Sections IV-A1 andIV-A2, as the unfiltered results are only processed for twoseconds. By Equation 9, the clock bias error at two secondsis −0.147 m, significantly smaller than the grid point spacing.

4) Conclusion – Stationary Data: Using the idealized sim-ulation data, theoretical effects of DPE and the grid-basedimplementation could be easily isolated and studied.

a) Comparing Unfiltered Grids: Comparing Table IVand Table V, the standard deviations for all cases were very

similar, all differing with their counterpart on the other gridby less than 3 m. Thus, the uncertainties in the estimates forboth grids were similar. However, a clear difference in theRMS error emerged. When the clock bias was not perturbed,RNGrid 7m reached better solutions, with lower vertical, clockbias, and geometric error. When the clock bias was perturbed,Spread Grid 7m reached better solutions, with lower vertical,clock bias, and geometric error.

As discussed in Section IV-A1 and Section IV-A2, per-turbing the clock bias used for initialization produced betterestimates of the clock bias due to the grids sampling morepoints. Thus, these experiments show that structure in selectionof grid points in the manifold does impact the accuracy of thesolution. When fewer candidate states are sampled and thecoupling between vertical and clock bias states cannot be well-used, it is better to have no structure in the choice of candidatestates being evaluated. However, when more candidate statesare sampled and the coupling between vertical and clock biasstates can be exploited, a structure in the points being sampledcan lead the receiver implementation to better estimates.

b) Comparing Unfiltered and Filtered Operation: Withthe unimodal manifold shape of the simulated data, theweighted average step aided the receiver in converging tosub-meter-level accuracy over the first 20 seconds of thedataset. The different initialization perturbations converged toeffectively the same state with only sub-millimeter-level dif-ferences, demonstrating the reliability of the discriminator-likestep. The accuracy of this approach is significantly greater thandecameter-level accuracy in the unfiltered implementation.

The weighted average position-domain tracker also demon-strates how correct characterization of the true manifold canreject errors. The true manifold is unimodal, but inaccuraciesin the batch correlation cause the computed manifold to havethe true peak “sliced off”. In this case, fitting the manifold to aunimodal shape correctly shifts the navigation solution towardsthe true peak, and the batch correlation error is effectivelyrejected over multiple timesteps. This motivates the advantagesof position-domain discriminators and how much they canimprove the accuracy of DPE if they accurately model thetheoretical manifold shape.

B. Localization Accuracy Analysis – Live-Sky DataThis section will analyze the DPE receiver implementation’s

ability to localize itself in real-world environments. In orderto evaluate the practical performance of the receiver, a datasetrecorded during the flight of a C-12C Huron are used. Thisdataset was generated under “Project GRIFFIN”, a Test Man-agement Project by the United States Air Force Test PilotSchool at Edwards Air Force Base for academic use by theGrace Gao Research Group [22]. This live-sky dataset has thefollowing properties:

1) Real-world effects on the satellite transmissions, such asatmospheric and terrain effects on signal power, will bepresent in the received signal.

2) A mobile receiver will produce very different manifoldsover the dataset, and the receiver will need to follow thetrue position of the receiver throughout the dataset forsuccessful operation.

Page 12: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 12

3) Satellite transmissions may reflect off of terrain, andatmospheric effects are not guaranteed to follow theKlobuchar model.

Given these three properties, the maximum likelihood statefor a theoretically perfect solution to the DPE objectivefunction will vary over time. Furthermore, some real-worldeffects will cause the DPE manifold computed by the receiverimplementation to not match the theoretical DPE manifold.This dataset, then, will serve to evaluate how well a DPEreceiver implementation can perform its objective of localiza-tion with real-world errors. In particular, localization error asa function of time will be of interest in this analysis.

Sixty seconds of the dataset was processed to evaluatethe localization accuracy of the receiver over time. Groundtruth position was obtained from a time-space positioninginformation (TSPI) system, which recorded the flight path ofthe aircraft with a position accuracy of ±0.46 m and velocityaccuracy of ±6.1 mm

s [23].1) Satellite Geometry – Mobile Dataset: The mobile

dataset subjected the receiver to a dynamic flight profileand terrain effects near the Black Mountain Wilderness inCalifornia. The flight profile included an S-bend curve anddecreasing altitude. The horizontal component of the flightpath is drawn in blue along with the aircraft’s horizontal andvertical velocities in Figure 14.

Fig. 14: The flight path (left) and aircraft velocity (right) forthe mobile dataset. The flight path is represented by the blueline, travelling from left to right in the image. Plotted usingGoogle Maps [24].

The dataset used in this section consists of simulatedtransmissions from nine GPS satellites with the followinggeometry:• HDOP =

√0.354055 + 0.470432 = 0.908013

• V DOP =√

1.88099 = 1.371492• TDOP =

√0.745301 = 0.863308

Additionally, the covariance between the clock bias and thevertical dimensions is 1.08842.

2) Localization – Mobile Dataset: Over the 60 secondsof processed data, the DPE receiver’s horizontal and verticalerror with respect to the TSPI system and clock bias errorwith respect to the scalar initialization propagated forward areshown in Figure 15. In Figure 15, a gray vertical line is placedevery time the DPE solution moves, as it does not move everyiteration. This can be seen in Figure 16.

With no exceptions, every piecewise step present in each ofthe plots of Figure 15 is caused by the DPE solution jumping

Fig. 15: The RMS error over 60 seconds of data(left column) and the first 12 unique navigation solutions(right column) for the mobile dataset using the DPE receiverimplementation with the Spread Grid 6m manifold grid.

Fig. 16: The solutions of the DPE receiver implementationover the full path (left) and the first twelve unique navigationsolutions (right) of the mobile dataset. The black linesconnect a DPE receiver implementation solution (green) tothe corresponding ground truth as measured by the TSPIsystem (blue). Plotted using Google Maps [24].

to a new state. Then, the effects between the gray lines maybe studied, as shown in Figure 15.

For the horizontal error in Figure 15, many of the intervalsconsist of the error steadily growing until the DPE estimatemoves again to a new lower-error state. This is consistent withthe aircraft flying away from the point and, eventually, thereceiver’s antenna will have moved enough that the correlationscore at another point on the grid becomes higher than theprevious estimate.

However, some estimates on the horizontal plot show the

Page 13: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 13

error decreasing briefly after the DPE solution moves. Thisoccurs when the DPE algorithm chooses a point ahead ofthe aircraft as its current state estimate. This can be seen bymatching the intervals in Figure 15 with the different DPEsolution estimates in Figure 16.

Compared to the horizontal error, the vertical error betweennavigation solution intervals in Figure 15 is much more level,yet it does have a noticeable slope. This is due to the aircrafthaving less vertical velocity than horizontal velocity. Dueto the highly-accurate timing of the CSAC used to triggersampling intervals, there is no noticeable clock drift in theclock bias error results of Figure 15, and the clock bias errorremains level between navigation solution movement intervals.

By looking at the error in the DPE receiver implementation’snavigation solution when the navigation solution moved asshown in Figure 17, it can be seen that the state estimatemoves, on average, when the geometric error is around 88 m.Since the average vertical velocity is 42.56 m

s and the averagehorizontal velocity is 94.45 m

s , the horizontal estimates quicklybecome inaccurate until the solution moves again. Meanwhile,a vertically-accurate navigation solution will remain verticallyaccurate until the navigation solution moves to an inaccurateguess. Additionally, the vertical estimates benefit from theclock-bias coupling, and the clock bias estimates are free fromnoticeable drift.

The error plots of Figure 17 are still consistent with SectionII-C. The receiver state tends to move when the error to theaverage satellite is around or a little greater than 0.2 PRN codechips, as a horizontal error of 90 m is 0.2 PRN code chipsfor a satellite with elevation a 48◦ elevation angle. And, thebounds on the range of errors when new navigation solutionsare chosen are consistent with the sampling effects – grid stateswith less than 20 m of error are too close to the peak to havegood replica fidelity and those greater than 70 m are far enoughaway from the peak that others have a higher score.

Fig. 17: The error in the position estimates when the DPEreceiver implementation estimate moved (left) and the errorof the new position estimates when chosen by the DPEreceiver (right).

3) Conclusion – Mobile Data: In this section, the DPEreceiver implementation was demonstrated in a dataset expe-riencing receiver motion and real-world signal inaccuracies.The RMS error of the DPE receiver was comparable to thesimulated data, with a degradation of the horizontal error onthe order of decameters due to the receiver moving and thebatch correlation effects. Using the unfiltered implementation,the effects of the numerical implementation of DPE could

be easily studied. The DPE-based receiver was seen to movenavigation states when the error exceeded 80 m on average,which is attributed to the errors from the batch calculation.However, the receiver implementation still followed the nav-igation solution over the course of the flight, as the grid sizewas sufficiently large to include the true navigation solutionwhen it moved out of the range of the batch correlation error.

V. CONCLUSION

To date, the DPE algorithm has advanced through tech-niques to improve computational efficiency, with current pro-totypes approaching real-time operation on consumer hard-ware [6]. Yet, approximations made for numerical repre-sentation of the theoretical equations and for computationalefficiency can reduce the benefits gained by the one-stepapproach. This work studied three effects in the localizationresults arising from the numerical implementation of DPE.First, satellite geometry was shown both conceptually anddemonstratively to cause a coupling in vertical and clock biaserror in DPE, a property which could be used to partiallyreduce the dimensionality of the grid by an informed re-ceiver. Second, the parallelizable weighted-average filter wascompared to the geometric solution of the navigation-domainpeak, and the conceptually-expected convergence was demon-strated to achieve sub-meter level accuracy in an idealizeddataset even without modelling atmospheric effects whichwere present. Third, the batch correlation technique was shownto bias towards the state at which it was initialized, leading toerrors in the shape of the manifold and navigation solutions“sticking” at the same state until a predictable amount oferror was accumulated, as demonstrated in the mobile receiverdataset. Perhaps most concerning with the batch correlationbias is that the error deadband over which a navigationsolution will be “stuck” is a function of the satellite geometry,performing worse when DOP is higher, such as in urbancanyon-type environments. All three of these effects shouldbe considered in DPE-based receiver design, and the designinsights presented aim to spur future work.

A. Future Work

Based on the results presented in this work, the followingareas stand out to the authors for future research:• A metric that could evaluate the expected correlation

between the vertical and clock bias errors would allowthe coupling effect to reduce the search dimensionality.A broad, random search over vertical estimates and clockbiases should be conducted first to find the proportionalrelationship between the two. Then, a structured gridcan reduce the search space considered when refiningthe estimate. Such a metric could be computed fromhow much the state moved in each dimension betweenupdates.

• If a DPE-based receiver can determine that a region of thegrid is unimodal, the weighted average navigation-domainfilter could provide fast, regular updates. Meanwhile, abroader region could be searched in the background at aslower rate to confirm the unimodality region.

Page 14: JOURNAL TITLE 1 Design of a Parallelized Direct Position ...gracegao/publications...message and channel sharing codes are wiped off of the re-ceived signal, the power spectrum of the

JOURNAL TITLE 14

• Due to the structure of PRN cross-correlation, the bi-asing from batch correlation could be mitigated throughchannel-domain peak filters. Such filters may be as simpleas more sophisticated interpolation than just point-to-point. However, single-channel operations can exposethe DPE algorithm to vulnerabilities, and should bedeveloped with care.

B. Companion Work in Part I

This work, the second of the tandem papers, presentedanalysis aimed at advancing towards to more practical DPE.The prequel paper introduced the DPE algorithm and surveyedtechniques presented in the literature to numerically implementa DPE-based receiver [6]. The prequel paper also presented anopen-source software-defined DPE-based receiver prototypeachieving a target computing speed proposed in the litera-ture [6]. This paper followed up with analysis at the threestages of processing in the DPE algorithm: the selection ofcandidate states for grid-based DPE, the approximation ofscores for those candidate states, and generating measure-ments from the candidate states. This analysis was verifiedthrough demonstration in simulated and live-sky datasets. To-gether, these papers present a samples-to-solution and theory-to-prototype study of practical DPE-based receiver designthrough this work.

ACKNOWLEDGMENT

The authors would like to thank the staff members ofthe United States Air Force Test Pilot School (USAF TPS),Edwards AFB, CA – particularly Flt. Lt. Alexander Blackstock(RAF), Maj. Joseph DeMonte, Maj. Patrick Highland, Capt.Mark Brodie, and Maj. John Wilder – for their work ingenerating the mobile live-sky dataset used in this work.The authors also wish to thank Mr. Shubhendra Chauhan forgenerating the simulated dataset. Lastly, the authors wish tothank Ms. Sriramya Bhamidipati, Mr. Shubhendra Chauhan,Mr. Arthur Hsi-Ping Chu, Mr. Enyu Luo, and Ms. YutingNg for their work developing PyGNSS and contributing toCUDARecv.

This research is funded by Air Force Research LaboratorySensors Directorate (AFRL/RY), Wright-Patterson AFB, OH,under contract FA9453-15-1-0075.

REFERENCES

[1] P. Closas and C. Fernandez-Prades, “Bayesian nonlinear filters for directposition estimation,” IEEE Aerospace Conference Proceedings, 2010.

[2] P. Axelrad, B. K. Bradley, J. Donna, M. Mitchell, and S. Mohiuddin,“Collective detection and direct positioning using multiple GNSS satel-lites,” Navigation, Journal of the Institute of Navigation, vol. 58, no. 4,pp. 305–321, 2011.

[3] P. Closas and A. Gusi-Amigo, “Direct position estimation of GNSSreceivers: Analyzing main results, architectures, enhancements, andchallenges,” IEEE Signal Processing Magazine, vol. 34, no. 5, pp. 72–84, 9 2017.

[4] J. W. Cheong, J. Wu, A. G. Dempster, and C. Rizos, “Efficient imple-mentation of collective detection,” in International Global NavigationSatellite Systems Society, Sydney, New South Wales, Australia, 11 2011,pp. 15–17.

[5] B. Bradley, P. Axelrad, J. Donna, and S. Mohiuddin, “PerformanceAnalysis of Collective Detection of Weak GPS Signals,” pp. 3041–3053,9 2010.

[6] M. Peretic and G. X. Gao, “Design of a Parallelized Direct PositionEstimation-Based GNSS Receiver – Part I: Techniques and Algorithms,”Navigation, Journal of the Institute of Navigation, submitted.

[7] P. Closas, C. Fernandez-Prades, and J. A. Fernandez-Rubio, “Maximumlikelihood estimation of position in GNSS,” IEEE Signal ProcessingLetters, vol. 14, no. 5, pp. 359–362, 4 2007.

[8] A. H.-P. Chu and G. X. Gao, “Multi-receiver direct position estimationtested on a full-scale fixed-wing aircraft,” in Proceedings of the 30thInternational Technical Meeting of the Satellite Division of The Instituteof Navigation (ION GNSS+ 2017), Portland, OR, 9 2017, pp. 3761–3766.

[9] J. Dampf, N. Witternigg, M. Schwinzerl, R. Lesjak, M. Schonhuber,G. Obertaxer, and T. Pany, “Particle Filter Algorithms and Experimentsfor High Sensitivity Gnss Receivers,” no. 1, 2017.

[10] Y. Ng and G. X. Gao, “Direct position estimation utilizing non-line-of-sight (NLOS) GPS signals,” in Proceedings of the 29th InternationalTechnical Meeting of the Satellite Division of The Institute of Navigation(ION GNSS+ 2016), Portland, Oregon, 9 2016, pp. 1279–284.

[11] L. R. Weill, “A high performance code and carrier tracking architecturefor ground-based mobile GNSS receivers,” in Proceedings of the 23rdInternational Technical Meeting of the Satellite Division of The Instituteof Navigation (ION GNSS 2010), Portland, OR, 9 2010, pp. 3054–3068.

[12] K. Borre, D. M. Akos, N. Bertelsen, P. Rinder, and S. H. Jensen,A Software-defined GPS and Galileo Receiver: A Single-FrequencyApproach, 1st ed. Basel, Switzerland: Birkhauser, 2007.

[13] M. Peretic, “Development and analysis of a parallelized direct positionestimation-Based GPS receiver implementation,” M.S. thesis, Universityof Illinois at Urbana-Champaign, 2019.

[14] P. N. Misra, “The role of the clock in a GPS receiver,” GPS World,vol. 7, no. 4, pp. 60–66, 1996.

[15] P. N. Misra and P. Enge, Global Positioning System: Signals, Mea-surements, and Performance, 2nd ed. Lincoln, Massachusetts: Ganga-Jamuna Press, 2011.

[16] Y. Ng and G. X. Gao, “Computationally efficient direct position esti-mation via low duty-cycling,” in Proceedings of the 29th InternationalTechnical Meeting of the Satellite Division of The Institute of Navigation(ION GNSS+ 2016), Portland, Oregon, 9 2016, pp. 86–91.

[17] Ettus Research, “USRP N200/N210 networked series.” [Online]. Avail-able: https://www.ettus.com/content/files/07495\ Ettus\ N200-210\DS\ Flyer\ HR\ 1.pdf

[18] Microsemi Corportation, “SA.45s chip scale atomic clock.”[Online]. Available: https://www.microsemi.com/product-directory/clocks-frequency-references/3824-chip-scale-atomic-clock-csac

[19] ——, “SA.45s chip-scale atomic clock options 001 and 003,” AlisoViejo, CA, Tech. Rep.

[20] E. Jones, T. Oliphant, P. Peterson et al., “SciPy: Open source scientifictools for Python,” 2001–. [Online]. Available: http://www.scipy.org/

[21] National Instruments, “NI PXIe-5672 specifications: RF vector signalgenerator,” Tech. Rep. [Online]. Available: http://www.ni.com/pdf/manuals/372342d.pdf

[22] A. G. Blackstock, J. DeMonte IV, P. J. Highland, M. S. Brodie, andJ. P. Wilder, “Demonstration of aircraft state determination with blendedsolution of multiple GPS receivers: Project GRIFFIN,” Edwards AirForce Base, CA, Tech. Rep., 2017.

[23] A. H.-P. Chu, “GPS Multi-receiver direct position estimation for aerialapplications,” M.S. thesis, University of Illinois at Urbana-Champaign,2018.

[24] Google, “Google Maps Elevation API.”