A High Performance Code and Carrier
Tracking Architecture for Ground-Based
Mobile GNSS Receivers
Dr. Lawrence R. Weill, Chief Scientist, Magellan Systems Japanand Professor of Mathematics Emeritus, California State University, Fullerton

BIOGRAPHY
Dr. Weill received B.S. and M.S. degrees in ElectricalEngineering from the California Institute of Technology in1960 and 1961, respectively. In 1968 he earned the M.S.
Degree in Mathematics at San Diego State University, and wasawarded the Ph.D. in Mathematics in 1974 at the University of
Idaho. He is currently Chief Scientist at Magellan Systems
Japan and Professor of Mathematics Emeritus from California
State University, Fullerton. He has operated his own
consulting firm for 31 years.
Dr. Weill is also one of the three technical founders ofMagellan Systems Corporation, which in 1989 produced theworld’s first low-cost handheld GPS receiver for the consumer
market.
As an active researcher, Dr. Weill has published numerous
papers on signal processing for GNSS, radar, sonar, opticalsensor, and satellite communication systems. He has madesubstantial contributions to both the theoretical foundations
and practical aspects of GNSS signal compression andmultipath mitigation, and is currently developing new
approaches for high performance GNSS receivers.
ABSTRACT
It is well-known that vector delay and frequency locked loops(VDFLLs) have several advantages over traditional scalar
tracking loops in GNSS receivers, especially in mobile
platforms subject to poor signal environments andaccelerations. This paper presents an approach to further
VDFLL performance improvement for ground-based mobile
receivers which apparently has not yet been exploited. The
performance improvement results from using the dynamics
limitations of typical ground-based vehicles, long-term premeasurement integration, and the weak-signal advantages of
direct maximum-likelihood (ML) estimation of position andvelocity to materially improve weak-signal tracking capability.

In the new VDFLL design, which will be denoted by MLVTL(Maximum Likelihood Vector Tracking Loop), a Kalman filter
for the navigation processor is not required. Additionally,
map aiding can be incorporated directly in the tracking loop to
reduce position and velocity errors, lower the tracking
threshold, and reduce the minimum number of satellites
required to maintain tracking.
1. DESIGN PHILOSOPHY
Figure 1 is a simplified block diagram of a scalar signal
tracking method which has been used for many years in GPS
receivers. Each satellite signal is independently tracked with acode delay-locked loop which enables measurement ofpseudorange, and a carrier frequency-locked loop whichenables measurement of pseudorange rate. The measurements
are fed to a navigation processor, typically a Kalman filter orrecursive least-squares estimator, which produces thenavigation solution for position, velocity, and time (PVT).
A simplified block diagram of a typical VDFLL tracking loop
is shown in Figure 2. Predictions of position and velocity
navigation states from a navigation processor (such as a
Kalman filter or least-squares estimator) are converted into
predictions of satellite pseudoranges and pseudorange rates,
which are fed as references to code delay and carrier
frequency discriminators operating on the satellite channels.
These references are coupled because they all are derived fromthe same navigation states. The discriminators provide
measurement residuals for each satellite, which are estimatesof the difference between the predicted pseudoranges andpseudorange rates and the same parameters inherent in thereceived satellite signal. The measurement residuals are fed
back to the navigation processor, thus closing the tracking
loop. For legacy C/A coded GPS signals, the loop iteration
time interval typically spans from 1 to 10 bits of the 50 bps
navigation data stream (20-200 milliseconds).
The advantages of the VDFLL in Figure 2 over the scalar
tracking loop in Figure 1 accrue mainly from the coupling of

the references for the code and carrier discriminators. It canbe shown that this reduces tracking error due to thermal noise
when the number of satellites exceeds the number ofnavigation states. The VDFLL is also more robust in thepresence of signal dropouts and vehicle accelerations.
Background information on conventional and VDFLL tracking
can be found in [1-4].
However, despite the coupling of the discriminator references,
it is important to note that the measurement residuals are still
independently estimated for each satellite channel. This
exposes a vulnerability when operating with the weak signals
often encountered in mobile operation. It is well known thatthe measurement error from an individual discriminatorincreases very rapidly as the C/No drops below the level
required for the error to approach the Cramer-Rao lower
bound.
Inevitably, this leads to outlier or “wild”
measurements which disruptively propagate through thenavigation processor. Since each discriminator operates in thepresence of its own independent noise, there is no opportunity
to increase the processing gain at this point in the loop andlower the tracking threshold by using joint signal
characteristics.
To solve these problems, the new MLVTL architecture shownin Figure 3 has been developed. It does not use discriminators
to provide the usual measurement residuals to the navigation
processor.
Instead, direct maximum-likelihood (ML)estimates of the navigation states are performed using small
simultaneously-generated segments of the code correlation
functions and frequency spectra from all satellites. The
tracking loop is closed by using the estimated navigation states
to update the centers of the segments of the code correlation
functions and frequency spectra for the next ML estimate.
Unlike a typical VDFLL Kalman filter, the ML estimates arerepeated at a relatively slow rate (from 1 to 3 seconds apart) topermit a large amount of pre-estimation processing gain, as
well as sufficient time for the ML computations. Also unlike a
Kalman filter, the ML estimator is not recursive. Eachestimate uses enough signal data to permit good weak-signal
performance on its own.
There are other advantages. Because frequency discriminators
are not used, their limited operating range (typically ± 25 Hz)
is no longer a limitation on how much platform acceleration
can be tolerated without loss of frequency lock, especiallywith weak signals. The new MLVTL design exploits the factthat in typical land-based mobile operation large accelerations(a significant fraction of 1 g) are infrequent and when they dooccur, they are sustained for no more than a few seconds.
Acceleration is therefore not modeled in the ML estimator. If
an ML estimate of position and velocity is degraded by a large
acceleration, essentially complete recovery is possible at thenext estimate. Gone is the problem of making a Kalman filter
properly responsive to changes in acceleration without adding
more states or fiddling with its covariance matrix. Smaller
accelerations simply cause a momentary small loss of

sensitivity and non-noticeable position and velocity errors
which do not propagate forward in time.
The new MLVTL architecture also uses altitude aiding to
reduce the position and velocity dimensionality, which results
in better tracking accuracy and a lower tracking threshold.
Memory size for stored altitude data can be much smaller thanhorizontal aiding data, because altitude generally varies much
more slowly than horizontal position.
2. DETAILED DESCRIPTION
The ML Estimator
In the new MLVTL, the ML estimator jointly estimates
receiver position, velocity, GPS time error, and GPS time rateerror. GPS time is generated within the receiver by a processthat will be described later. It can be shown that the ML
estimate is equivalent to a least-squares estimate which
minimizes the integral
L

2

T0 +T

N

T0

k =1

∫ r (t ) − ∑ s (t ) dt

(1)k

where r(t) is the complex-valued baseband received signal
plus noise, sk(t) is a receiver-generated baseband replica of anoiseless signal for satellite k, N is the number of satellites
observed, T0 is the beginning of the captured signal, T is theduration of the captured signal, and t is GPS time as generated
by the receiver. It is assumed that sk(t) spans D data bits asreceived from satellite k, where D typically ranges from 50 to
150 data bits (1-3 seconds of signal). Each signal sk(t)depends on the four parameters described above, as well as
signal amplitudes ak,n and phases φk,n. The index n is a data bit
index running from 1 to D. The amplitudes and phases are
considered to be nuisance parameters involved in minimizing
L, but are not of primary interest. They are allowed to varyfrom bit to bit, because in mobile operation a considerable
amount of fluctuation is often experienced over multiple databits from the same satellite, but with little variation over a
single data bit.
During the nth data bit, the satellite k signal replica sk(t) has the
form

(

)⎦

sk ( t ) = ak ,n mk ( t ) exp ⎡ j ωk t + φk ,n ⎤⎣(2)where mk(t) is the C/A code modulation normalized to unity
Aftermagnitude and ωk is the radian/sec frequency.
expanding expression (1) for L, it is noted that it has the form
L = R−J, where R depends only on r(t) and contains noparameters. Thus, minimization of L is equivalent tomaximization of J. After partially maximizing J with respect
to the amplitudes and phases, and renormalizing it to accountfor constants appearing in the partial maximization process,we obtain

J =

N

D

∑∑ ∫ r (t ) mk (t ) exp ( − jωk t ) dt

2(3)

k =1 n =1 I k ,nwhere Ik,n is the time interval containing the nth of the D databits from satellite k.
Interpretation of Expression (3) and Advantages of the ML
Estimator
Inspection of (3) reveals some mathematical operations
understood by designers of GPS receivers. Each of the ND
integrals is basically a correlation of the received baseband
signal with the product of a replica PN code and a complexvalued cissoid. For each satellite, the inner summation simply
sums the squared magnitudes of D correlations, eachcorrelation occurring over a data bit. This summation is thefamiliar approach to obtain non-coherent processing gain overmultiple data bits.
What is probably not familiar to most designers is the outersummation, which sums over all satellites. This operationachieves additional processing gain at low signal-to-noise
ratios which is not exploited in typical GNSS receivers (eventhose which use VDFLL tracking loops). The result is
improved position and velocity accuracy, as well as loweredtracking thresholds.
To gain an appreciation for the effect of the outer summationin the ML estimator, take a look at Figure 4. The top fivepanels show the values of the inner sum for each of 5 weaksatellite signals as a function of ωk, k = 1,2,3,4,5 (forsimplicity, it is assumed that the code functions mk(t) arealready maximizing J). In a conventional GPS receiver, thefrequency at which the inner sum for the kth satellite is
maximum is a measurement of the frequency error for thatsatellite, the error being fed to the navigation processor. These
points are shown as red dots. In the figure the true value of
frequency error is zero for all five satellites. However,
because the signals are so weak, there are outliers in thefrequency measurements which will disruptively propagate
through the navigation processor. In contrast, the ML
estimator obtains processing gain by summing the functions in
the top five panels before making the velocity estimate. Thisis the outer sum in expression (3). In the bottom panel, it isseen that maximization of J with respect to receiver velocity
has no outliers, as shown by the green dot.
Details of the Maximization of J
The maximization of J in (3) constitutes the important
processing in the new MLVTL design. The parameters
involved in the maximization, which are implicit in thefunctions mk(t) and frequencies ωk, are the receiver positionp(T0), residual GPS time bias b(T0), receiver velocity v(T0),and residual GPS time rate bias b (T0), all at time T0 . For our
purposes the receiver position and velocity vectors arerespectively in meters and meters/sec in a local coordinate
system tangent to the Earth’s surface, and residual GPS timebias and residual GPS time rate bias are respectively inseconds and seconds/sec. It is assumed that receiver velocity
Theremains constant on the time interval [T0,T0+T].
dependence of mk(t) and ωk on these four parameters will now
be made explicit.
Dependence of mk(t) on Parameters
The code waveform for satellite k has the close approximation
mk ( t ) ≅ M k ⎡⎣t − b (T0 ) − τ k (T0 ) − ( t − T0 ) τ k′ (T0 )⎤⎦(4)

where Mk(tGPS) is the code modulation as it is transmitted at
the satellite expressed as a function of GPS time, τk(T0) is thesignal propagation delay in seconds from the satellite k to thereceiver for the point on the signal that arrives at time T0, andτk′(T0) is the rate of propagation delay change at time T0 in
seconds/sec. The code modulation Mk(tGPS) is a known
function of GPS time which is slaved to the atomic clock insatellite k. Keeping in mind that t is the small-error estimateof GPS time provided by the receiver, the GPS time rate biasb (T0) has been omitted from (4) because its effect isnegligible over the time interval [T0,T0+T].
The propagation delay τk(T0) is closely approximated byτ k (T0 ) ≅p k (T0 ) − p (T0 )c + v k (T0 ) ⋅ u k (T0 )

sec

(5)

where at time T0 the vectors pk(T0), vk(T0), and uk(T0) arerespectively the position of satellite k, the velocity of satellitek, and the unit vector pointing from the most recent estimatedreceiver position to the position of satellite k. These vectors
are computed from received satellite ephemeris data. The
components of the position vectors are in meters and those of
the velocity vector are in meters/sec. The speed of light isdenoted by c, and is 2.99792458 × 108 meters/sec. Expression(5) takes into account the fact that the signal arriving at time
T0 was actually transmitted from the satellite position at an
earlier time.
The rate τ k′ (T0 ) of propagation delay change in (4) is closely
approximated byτ k′ (T0 ) ≅1c{⎡⎣v (T ) − v (T )⎤⎦ ⋅ u (T )} sec/sec
k

0

0

k

0

(6)

In (4)-(6) the important parameters in the maximization of J
are p(T0), b(T0), and v(T0). For given values of this triple, thecode waveform mk(t) in expression (3) for J is computed bysubstituting p(T0) into (5) to get τk(T0), putting v(T0) into (6) toget τk′(T0), putting b(T0), τk(T0), and τk′(T0) into (4) to get mk(t),and then putting mk(t) into expression (3).
Dependence of ωk on Parameters
The received baseband frequency ωk from satellite k is closely
approximated byωk = 2π{}

1⎡⎣ v (T0 ) − v k (T0 )⎤⎦ ⋅ u k (T0 ) − b (T0 ) fL1
λ3. THE MLVTL TRACKING ARCHITECTURE
Initialization for Tracking
The standard method for initializing the four navigation
parameters is to use well-known methods in the art toindependently acquire the satellite signals, record ephemeris
data, obtain bit synchronization, make independent
pseudorange and frequency measurements, and use this data toobtain initial estimates of position, velocity, and GPS time,thus establishing the first search space center for tracking.
Tracking Method(7)

where fL1 = 1,575.42 × 106 Hz and λ = 0.1902937 meters arerespectively the GPS L1 frequency and wavelength. Here theimportant parameters in the maximization of J are v(T0) andb (T0), which determine ωk.
The ML Estimate

To track receiver position, velocity, GPS time and time rate, asimple tracking method with good performance for groundbased mobile applications is to simply repeat the basic ML
estimation process previously discussed over a sequence of
signal time intervals [T0,T0+T], [T1,T1+T], [T2,T2+T], … ,[Tm,Tm+T], … , where the time difference TR between
successive interval starting points is
TR = Tm +1 − Tm ,The ML estimate of interest is the parameter vector[p(T0), b(T0), v(T0), b (T0)] which maximizes J in (3), withmaximizing values denoted by hats:
ˆ
ML Estimate = ⎡pˆ (T0 ) , bˆ (T0 ) , vˆ (T0 ) , b (T0 )⎤

⎣

⎦

(8)

It should be noted that the terms in (3) are coupled by virtue ofthe four common parameters. Therefore, the terms cannot be
independently maximized.
The calculations of the ML estimate require various values ofthe estimated GPS time t. This time is available from acorrected receiver clock. The method of providing thecorrected clock, including initialization, will be discussed later
when a tracking architecture is developed.
ML Estimator Block Diagram
A block diagram of the ML estimator is shown in Figure 5. A
search over the parameters p(T0), b(T0), v(T0), and b (T0) is
required in order to generate the functions mk(t) andfrequencies ωk in expression (3) which maximize J. The extent
of the search is determined mostly by the uncertainty inreceiver position p(T0) and velocity v(T0). The set of valuesof the parameter vector [p(T0), b(T0), v(T0), b (T0)] used in the
search is called the search space, which consists of four
subspaces respectively called the position, GPS time bias,
velocity, and GPS time bias rate search spaces. The search
space and its four subspaces will be discussed more fully inthe next section, which describes the new MLVTL tracking
loop.

T ≤ TR(9)

In moving from one signal time interval to the next, the search
space center is first updated according to the equationsp (Tm +1 ) = pˆ (Tm ) + vˆ (Tm ) TRb (Tm +1 ) = 0v (Tm +1 ) = vˆ (Tm )(10)b (Tm +1 ) = 0

where the tilde denotes the value at the search space center.
The reason that the search space centers for GPS time bias andbias rate are set to zero is that GPS time t is being generated
by a GPS time generation algorithm which uses filteredestimates of bias residuals to maintain GPS time very
accurately from one signal time interval to the next. The
filtering takes advantage of the inherent stability of thereceiver clock to substantially improve the GPS time accuracy.
A method for generating GPS time from the receiver clock isshown in Figure 6. A register holds the increment Δt of GPS
time t which occurs during each period Tc of the receiverclock. At each tick of the receiver clock, this increment is
added to an accumulator holding GPS time t. Each iteration of
the tracking loop (one every TR seconds) provides a filteredestimate b of the residual GPS time bias and a filteredestimate b of the residual bias rate which are used ascorrections to GPS time. The Δt register is updated by setting
it with b and the GPS time t accumulator is updated bysubtracting b from its contents.

Figure 7 is a high-level block diagram showing the basic
elements of the tracking loop. Note that receiver acceleration
is not taken into account in tracking, since large accelerations
in ground-based mobile operation are never sustained. The
loop design permits quick recovery from them when smaller
accelerations invariably follow the large ones. As will be seenin Section 5, the MLVTL can perform quite well withmoderate accelerations, even if they are sustained.

Search Strategies
Several methods of conducting the search are possible. A
brute force search assures finding a global maximum of J, andcomputation can be minimized by first performing a coarse
search followed by a finer one. Alternatively, a hill-climbing
method, which is essentially a discrete gradient approach, canbe used to reduce search computation if conditions are suchthat a local maximum is guaranteed to be a global one.

Description of Search Spaces
Map Aiding
The search space for position (or velocity) is shown Figure 8.
The space is two-dimensional, since it is assumed that altitude
is known and movement is essentially horizontal. Prior to thesearch using the signal on the next interval [Tm+1,Tm+1+T], thespace is centered at the updated position p (Tm+1) [or velocityv (Tm+1)] in accordance with expression (10). The position
resolutions Δx, Δy (or the velocity resolutions Δvx, Δvy) arechosen to obtain a good compromise between the number ofpoints required in the search and the granularity permitting
adequate accuracy.
The size of the search space for position depends on the
maximum expected change in receiver velocity from estimate
to estimate, the desired position resolution in the search space,
and the amount of position constraint available from map
aiding. A typical maximum expected velocity change overtime TR = 2 seconds might be 20 meters/sec, so if TR = 2
seconds, a conservative search radius might be somewhat
more than 40 meters. A typical position resolution might be 5
meters, which can be interpolated down to 1 meter or less.
The size of the search space for velocity depends on the
maximum expected change in receiver velocity from estimate
to estimate, the desired velocity resolution in the search space,
and the amount of velocity constraint available from map
aiding. As previously stated, a typical maximum expectedvelocity change over time TR = 2 seconds might be 20
meters/sec, so if TR = 2 seconds, the search radius might besomewhat more than 20 meters/sec. A typical velocity
resolution might be 5 meters/sec, which can be interpolated
down to 1 meter/sec or less.
The radii of the position and velocity search spaces can bemade adaptive. If the maximizing position (or velocity) for J
occurs on the boundary circle or if a definitive maximum is
not found within it, the circle can be expanded on the fly. Thisis useful for emerging from severe signal outages which mightlast longer than the ML update interval TR.
Because the receiver-generated GPS time is very stable andnot subject to vehicle dynamics, the search spaces for b(Tm)and b (Tm) can be extremely small, perhaps at most 3 points
each with close spacing. Furthermore, the estimates of theseparameters need not be performed every time the position andvelocity estimates are updated, because their rate of variation
is so slow.

The position and velocity search spaces can be restricted toconform to a road when map aiding is available, as shown in
Figure 8. It can be seen that map aiding can greatly reduce thesize of the search space by making only certain positions andvelocities admissible in the search. Map aiding also provides
the advantage that the reduction in the degrees of freedom ofthese parameters reduces estimation errors.
Minimum Number of Satellites for Tracking
Without map aiding, a minimum of three satellites suffices for
two-dimensional continuous tracking over any length of time,
and two satellites are sufficient for “flywheel” operation overa time period which depends on the receiver oscillator
stability. On the other hand, a major advantage of “in theloop” map aiding allowable by the MLVTL design is that only
two satellites are sufficient for continuous tracking, andflywheel operation is possible with only one satellite (although
in this case the tracking performance depends upon how
closely the direction vector to the satellite lines up with thestreet direction).
4. TRACKING IMPLEMENTATION
Fortuitously, the nature of J is such that it can be maximized
with very little error without potentially having to traverse all
points in the full four-dimensional search space. Because themagnitude of J with respect to position is maintained over a
relatively broad range (perhaps ± 100 meters or more), it isrelatively insensitive to departure from the position search
space center. Therefore, maximization can first be made withrespect to velocity and GPS time bias rate. The maximizing
velocity is then held constant while further maximizing withrespect to position and GPS time bias. This procedure will
require that the signal on time interval [Tm,Tm+T] be captured
in memory so that it can be accessed more than once. If
desired, a final touchup of the maximizing velocity can be
performed.
A tracking implementation which takes advantage of thisreduced search space computation is shown in Figures 9 and
10, in which the iteration using the received signal on timeinterval [Tm,Tm+T] is shown. Two computational steps are
involved (for purposes of simplicity, the maximization of J
with respect to GPS time bias and bias rate is omitted):Step 1 (Figure 9): Maximize J With Respect to Velocity
Consider the signal from satellite k, embedded in thecomposite baseband signal. The signal is first frequencycorrected by its expected received frequency ω k at theestimated velocity search space center v (Tm). Then the signal
undergoes a sequence of 1-millisecond correlations with the
expected received code waveform m k (t) at the estimatedposition search center p (Tm). There are 20 such correlations
within each of D received data bits, and the correlations aretime-aligned to fit within the data bit boundaries establishedby initial bit synchronization and tracking. Each group of 20
correlation outputs is fed to an FFT. The squared magnitudes
of corresponding FFT bin outputs are accumulated over thetime interval T, and the accumulated results are stored. The
stored accumulated values for satellite k constitute a set of
possible frequency residuals, and span a frequency range from−500 to 500 Hz. A search over trial velocity navigation
residual values Δv(Tm) is then conducted. These trial values
are departures in velocity from the velocity search spacecenter v (Tm), and each value is mapped into a selected
corresponding value of frequency residual for satellite k.
The selected frequency residuals from all satellites are
summed to produce a value for J. The value of Δv(Tm) whichlv (Tm). The estimate of receivermaximizes J is denoted by Δ
velocity v̂ (Tm) is then computed aslv (Tm )vˆ (Tm ) = v (Tm ) + Δ(11)Step 2 (Figure 10): Maximize J With Respect to Position
Again consider the signal from satellite k within the composite
baseband signal. The signal is now frequency-corrected by thefrequency ωˆ k determined by the velocity estimate v̂ (Tm) thatwas obtained in Step 1, resulting in a residual frequency whichis small enough to permit 20-millisecond correlations to be
performed. The signal then undergoes a sequence of D 20millisecond multi-delay correlations with the expected
received code waveform m k (t) at the estimated position
search center p (Tm). The number of correlation delays
produced in each multi-delay correlation depends on the sizeof the position search space and the desired position resolution
within the space, but will usually span only a fraction of a
microsecond because a single C/A code correlation function
peak spans the relatively large range of from about −1 to 1
microseconds (approximately −300 to 300 meters). For eachcorrelation delay, the squared magnitudes of the D correlation
outputs are accumulated over the time duration T and stored.
The stored accumulated values for satellite k constitute a set of
possible delay residuals, and span a range which normally
would be smaller than from −1 to 1 microseconds(approximately −300 to 300 meters). A search over trial
position navigation residual values Δp(Tm) is then conducted.

The trial values are departures in position from the position
search space center p (Tm), and each value is mapped into aselected corresponding value of delay residual for satellite k.
The selected delay residuals from all satellites are summed to
produce a value for J. The value of Δp(Tm) which maximizes
J is denoted by Δ
lp (Tm). The estimate p̂ (Tm) of receiver
position is then computed as

lp (Tm )pˆ (Tm ) = p (Tm ) + Δ(12)This completes Step 2, and now the receiver is ready to
perform Step 1 and Step 2 on the signal from the next signal
time interval [Tm+1,Tm+1+T].
5. EXAMPLES OF PERFORMANCE
Tracking performance of the MLVTL was measured using
MATLAB simulations.
Figure 11 is an example of the constant-velocity positioning
performance gain achievable with the MLVTL using 3
satellites, as a function of received signal power, assumed thesame for all satellites.
The red curve is a plot of RMS radial positioning error for arecursive least-squares estimator using a typical update
interval of 100 milliseconds (5 bits of navigation data). Thisestimator is similar in performance to the Kalman filter
commonly used with conventional VDFLL tracking loops.
The blue curve shows the VDFLL error achievable by anonrecursive least-squares estimator repeatedly operating on
2-second segments of signal data. The data fed to thisestimator consists of a pseudorange residual measurement andpseudorange rate residual measurement for each satellite.
The green curve shows the error using the MLVTL estimator
described in this paper. The signal dwell time is 2 seconds.
Not only is the RMS radial position error significantly smaller
than the other two estimators at low received signal power, but
the tracking threshold is also improved by approximately 2dB.
Figure 12 is similar to Figure 11, but it compares the velocity
errors of three estimators at constant velocity.
Figure 13 shows the dependence of position and velocity
MLVTL tracking errors on signal power level at constantvelocity when 6 satellites are available. Not only are theerrors significantly smaller than with 3 satellites, but the
tracking threshold is reduced from −161 dBm to −164 dBm.
Figure 14 illustrates the improvement in MLVTL position
tracking performance at constant velocity when map aiding isused with 3 available satellites. In comparison to theperformance without map aiding shown in Figure 11, thetracking threshold is improved by approximately 3 dB and thepositioning error is significantly smaller.
Figure 15 is a convincing illustration of the tracking
robustness of the MLVTL in the presence of severe but
unsustained acceleration. The receiver is tracking 3 satellites,
each with a −160 dBm signal (14 dB-Hz C/N0). The receiver
moves steadily eastward at 30 meters/sec (67 mph), makes an
instantaneous left turn, and continues northward at the same
speed. Neither code nor carrier tracking is lost, despite thefact that the turn is so violent that it is physically impossible!
It is believed that no receiver in production today could
maintain lock with such a maneuver, especially with theextremely weak signals in this scenario.
The MLVTL can also track sustained but moderate
accelerations quite well, as is shown in Figure 16. Here thevehicle is traversing a circular arc of radius 200 meters at a
speed of 30 meters/sec (67 mph). The radial acceleration is
0.46 g. The receiver is tracking 3 satellites, each with a −155
dBm signal (19 dB-Hz C/N0). The tracking threshold issomewhat elevated above the −160 dBm level because thesustained radial acceleration causes some frequency smearing
during the noncoherent averaging used in the ML estimation
process.

Three satellites are sufficient for continuous unaided
operation, and 2 satellites are sufficient for flywheel operation
using the stability of the receiver clock. With map aiding, 2satellites are sufficient for continuous operation, and 1 satellite
is enough for flywheel operation.
7. REFERENCES
1. M. Lashley and D. Bevly, “GNSS Solutions: What are
Vector Tracking Loops, and What Are Their Benefits andDrawbacks?” Inside GNSS Magazine, Gibbons Media &Research LLC, Vol. 5/Number 5, May/June 2009, pp. 16-21.
2. D. Benson, “Interference Benefits of a Vector Delay Lock
Loop (VDLL) GPS Receiver,” Proceedings of the 63rd Annual
Meeting of the Institute of Navigation, Cambridge,
Massachusetts, Institute of Navigation, April 2007.
3. J. Spilker, “Fundamentals of Signal Tracking Theory,”
Global Positioning System: Theory and Applications, Vol. 1,
Progress in Astronautics and Aeronautics, Vol. 163, AIAA,
Washington, D.C., 1996.
4. M. S. Grewal, L. R. Weill, and A. P. Andrews, Global
Positioning Systems, Inertial Navigation, and Integration,
Wiley & Sons, New York, 2001, pp. 71-76.

6. SUMMARY

8. FIGURESThe work presented in this paper has resulted in a new
MLVTL architecture with performance improvement overconventional VDFLL tracking methods. The new architecture
takes advantage of the non-sustainability of large accelerations
in ground-based mobile platforms, and has very low tracking
thresholds made possible by ML estimation using a large
amount of noncoherent processing. Tracking sensitivity isaugmented in the ML estimation process by using joint signal
residuals instead of individual measurement residuals fromdiscriminators. The result is a lowering of tracking thresholdsby 2 dB or more, depending on the number of satellites used.
The limited tracking range of typical discriminators is
avoided, and the tracking range can be made adaptive toenable seamless recovery from complete dropouts of all
signals.

Figures are shown on the following pages.

The use of ML estimation eliminates the disadvantages ofrecursive least-squares or Kalman filters in the tracking loops,
such as the need for covariance matrix control or potential
numerical instability problems.
The MLVTL also naturally permits map aiding to be useddirectly in the tracking loop as opposed to conventional
techniques of making adjustments to the unaided postnavigation solution. In-the-loop map aiding has the advantagethat it reduces position/velocity errors, lowers tracking
thresholds, reduces the search space size, and reduces theminimum number of satellites required.

Antenna
Satellite # 1
RF
Front
End

BasebandSignalCode & Carrier
Tracking Loops

Measurements (Estimates) of
Pseudoranges& Pseudorange Rates

Navigation Processor(Kalman Filter or
Least Squares)

Navigation
Solution
P,V,T

Satellite # 2
Code & Carrier
Tracking Loops

Satellite # N
Code & Carrier
Tracking Loops

Figure 1. Conventional Scalar GNSS Signal Tracking Architecture

Antenna

RF
Front
End

BasebandSignalSatellite # 1

Code & Carrier
Discriminators

Measurements (Estimates) of
Pseudorange Residuals& Pseudorange Rate Residuals

Navigation Processor(Kalman Filter or
Least Squares)

Satellite # 2
Code & Carrier
Discriminators

Navigation
Solution
P,V,T

Satellite # N
Code & Carrier
Discriminators

Convert P, V, T
To Predicted
Pseudoranges &Pseudorange Rates

Reference Code Phases and Carrier Frequencies for Discriminators

Figure 2. Typical Vector Tracking Loop (VFDLL)

Antenna

RF
Front
End

BasebandSignalSatellite # 1

Joint Signal Residuals (Correlation Functions)
Are Sufficient Statistics For Navigation Residuals

Generate Segmentsof Code & Carrier
Correlation Functions

Maximum Likelihood
Navigation Processor

Satellite # 2
Navigation Residuals
ΔP, ΔV, ΔT

Generate Segmentsof Code & Carrier
Correlation Functions
Loop Filter(Integrator)

Navigation
Solution
P,V,T

Satellite # N
Generate Segmentsof Code & Carrier
Correlation Functions

Convert P, V, T
To Predicted
Pseudoranges &Pseudorange Rates

Central Code & Carrier Correlation Bins

Figure 3. New ML Vector Tracking Loop (MLVTL)

Figure 4. Frequency Residual Measurements Versus Noncoherent ML Combining

D

Composite
BasebandSignal

I1,n
m1(t)

2

n=1

exp(-jω 1t)
k = 1 to NJn = 1 to D

D

IN,n
mN(t)

2

n=1

exp(-jω Nt)
Ephemeris
Data

p(T0)
Trial Parameters
From
Search Spaceb(T 0)v(T0).b(T )

Generated GPS Time

Calculatemk(t), ω k(t)for k = 1 to N

0m1(t), ω 1
m2(t), ω 2

mN(t), ω N

Figure 5. Block Diagram of the ML Estimator_.

b (Tm)

Set Δt _Register_Δt Register.

b (Tm)

Δt = b Tc

Accumulator of GPS Time t
Update t_tt-b

GPS Time t Output

Figure 6. Method of Generating GPS Time

Receiver Clock(Period = Tc)

Composite
BasebandSignalp, v

ML Estimatorof Navigation
Parametersp, v

Position & Velocity (Tm)

Ephemeris
Data

Residual Time Bias & Bias Rate (Tm).

Adaptive
SearchSpace

Map Aidingb, bTime Bias
andBias Rate
Filters

_ _.
b, b

.

~
Time Bias=b=0
and Bias Rate
(Tm+1)
Search Space Centers~b~p = p + v TR~p, ~v (Tm+1)~v =v

Position and Velocity
Search Space Centers

GPS Time t

Figure 7. Basic Elements of the MLVTLSUBSPACE
CENTER ~p
ROAD
CONSTRAINT

ADAP

TIVE

RAD

IUS

or
~
v

Δy or Δvy

Receiver
Clock

Δx
or
Δvx

Figure 8. Position (or Velocity) Search SpaceGPS Time
Generation

Composite
BasebandSignal on[Tm, Tm + T]~.
~
v , b (Tm)~p, ~b (Tm)

Compute~1ωCompute~1(t)mexp(-jω~1t)

~1(t)
m

Sat 1

1-msecCorrelations

FFT Frequency
Bin Outputs

Selected Summed FFTSquared Magnitudes

DD 20-msec
FFTs

2

n=1

(Each Bin)

Sat k

~.
~
v , b (Tm)

~ (Tm)~
p, bCompute~Nω

Compute
~N(t)
m

~Nt)
exp(-jω

~N(t)
m

Sat N

1-msecCorrelations

J

D

D 20-msec
FFTs

2

n=1

(Each Bin)v (Tm) = ~v (Tm) + Δv (Tm)Δ v (Tm)
Maximizes J

Δv Search
To Maximize J

Compute Trial
Frequency
Residuals

Figure 9. Step 1 of Tracking Implementation (Maximize J with Respect to Velocity)v (Tm)~, ~pb (Tm)

Computeω1

Compute
~1(t)
m

~1(t)
m

exp(-jω1t)Composite
BasebandSignal on[Tm, Tm + T]

Correlator Delay
Bin Outputs
D

D 20-msec
Multi-delay
Correlations

Selected Correlation
Squared Magnitude Sums2

n=1

(Each Bin)

Sat 1

Sat k
v (Tm)~p, ~b (Tm)

ComputeωN

Compute~N(t)mexp(-jωNt)

J

~N(t)
m

D

D 20-msec
Multi-delay
Correlations

n=1(Each Bin)

Sat N

p (Tm) + Δp (Tm)p (Tm) = ~2Δ p (Tm)
Maximizes J

Δp Search
To Maximize J

Compute Trial
Correlation
Delay
Residuals

Figure 10. Step 2 of Tracking Implementation (Maximize J with Respect to Position)

EXAMPLE OF POSITIONING PERFORMANCE GAINRMS Radial Position Error (m)40
3 SATELLITESHDOP = 1.2
CONSTANT VELOCITYTRACKING
THRESHOLDS

30-159 dBm(15 dB-Hz)-161 dBm(13 dB-Hz)

1

LEAST-SQUARES VDFLLRECURSIVE ESTIMATOR(SIMILAR TO KALMAN FILTER)
100 MSEC UPDATE INTERVAL

2

NON-RECURSIVE VDFLLLEAST-SQUARESESTIMATOR
2-SEC DWELL

3

MLVTL ML ESTIMATOR
2-SEC DWELL

20-159 dBm(15 dB-Hz)

10

1

2
3

0
-162

-160

-158

-156

-154

-152

-150

-148

-146

-144

Signal Power (dBm)

Figure 11. Constant-Velocity Position Tracking Comparisons
EXAMPLE OF VELOCITY PERFORMANCE GAINRMS Radial Velocity Error (m/sec)

12

TRACKING
THRESHOLDS

10

3 SATELLITESHDOP = 1.2
CONSTANT VELOCITY- 161 dBm
(13 dB-Hz) - 159 dBm(15 dB-Hz)

8
1

LEAST-SQUARES VDFLLRECURSIVE ESTIMATOR(SIMILAR TO KALMAN FILTER)
100 MSEC UPDATE INTERVAL

2

NON-RECURSIVE VDFLLLEAST-SQUARESESTIMATOR
2-SEC DWELL

3

MLVTL ML ESTIMATOR
2-SEC DWELL

61- 159 dBm
(15 dB-Hz)

4

2

2
3

0
-162

-160

-158

-156

-154

-152

-150

-148

-146

-144

Signal Power (dBm)

Figure 12. Constant-Velocity Velocity Tracking Comparisons

MLVTL SIX-SATELLITE POSITION/VELOCITY ERRORS
2.5

RMS Radial Position Error (m)TRACKING THRESHOLD-164 dBm

80

2.0

6 SATELLITESHDOP = 0.82
CONSTANT VELOCITYNO MAP AIDING

60

1.5

40

1.0
VELOCITY

20

0.5

POSITION

0
-166

-164

-162

-160

-158

-156

-154

RMS Radial Velocity Error (m/sec)

100

0.0
-152

Signal Power (dBm)

Figure 13. Six-Satellite Constant-Velocity Position and Velocity Performance
EXAMPLE OF MLVTL IMPROVEMENT WITH MAP AIDINGRMS Radial Position Error (m)40
TRACKING
THRESHOLD-164 dBm

3 SATELLITESHDOP = 1.2
CONSTANT VELOCITY

30
TRACKING
THRESHOLD-161 dBm
WITH MAP
AIDING20WITHOUTMAP AIDING

10

0
-165

-164

-163

-162

-161

-160

-159

-158

-157

-156

-155

Signal Power (dBm)

Figure 14. Position Tracking Performance Improvement with Map Aiding

EXAMPLE OF MLVTL TRACKING ROBUSTNESS
1200
1100
1000

Northing (m)

800
700

Speed = 30 m/sec(67 mph)3 SATELLITESHDOP = 1.2
SIGNAL POWER: -160 dBm (C/No = 14 dB-Hz)
2-SECOND DWELL
NO MAP AIDING

900

600
500
400
Instantaneous Left Turn
at 30 m/sec
No Loss of Codeor Carrier Lock

300
200
Speed = 30 m/sec(67 mph)

100
0
-100
-200
-100

0

100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400

Easting (m)Figure 15. Weak-Signal Tracking Robustness with Large Momentary Accelerations

TRACKING IN A HIGH-SPEED CIRCULAR ARC

150

00
m

Radial Acceleration = 0.46 g

50

0
-200

=2

100
3 SATELLITESHDOP = 1.2
SIGNAL POWER: -155 dBm(C/No = 19 dB-Hz)
2-SECOND DWELL
NO MAP AIDING

-150

-100

-50

Ra
diu
s

Northing (m)

200

0

50

Speed = 30 m/sec(67 mph)

100

150

200

Easting (m)Figure 16. High-Speed Tracking with Sustained Radial Acceleration