distributed extended kalman filter for position, velocity

15
776 O. JAKUBOV, P. KOVAR, P. KACMARIK, F. VEJRAZKA, DISTRIBUTED EXTENDED KALMAN FILTER FOR POSITION, ... Distributed Extended Kalman Filter for Position, Velocity, Time Estimation in Satellite Navigation Receivers Ondrej JAKUBOV 1, 2 , Pavel KOVAR 1 , Petr KACMARIK 1 , Frantisek VEJRAZKA 1 1 Dept. of Radio Engineering, CTU in Prague, FEL, Technick´ a 2, 166 27 Prague 6, Czech republic 2 Nottingham Scientific Limited, Loxley House, Tottle Road, Nottingham, United Kingdom, NG2 1RT [email protected], [email protected] Abstract. Common techniques for position-velocity-time es- timation in satellite navigation, iterative least squares and the extended Kalman filter, involve matrix operations. The matrix inversion and inclusion of a matrix library pose re- quirements on a computational power and operating plat- form of the navigation processor. In this paper, we introduce a novel distributed algorithm suitable for implementation in simple parallel processing units each for a tracked satellite. Such a unit performs only scalar sum, subtraction, multipli- cation, and division. The algorithm can be efficiently imple- mented in hardware logic. Given the fast position-velocity- time estimator, frequent estimates can foster dynamic per- formance of a vector tracking receiver. The algorithm has been designed from a factor graph representing the extended Kalman filter by splitting vector nodes into scalar ones re- sulting in a cyclic graph with few iterations needed. Monte Carlo simulations have been conducted to investigate con- vergence and accuracy. Simulation case studies for a vector tracking architecture and experimental measurements with a real-time software receiver developed at CTU in Prague were conducted. The algorithm offers compromises in sta- bility, accuracy, and complexity depending on the number of iterations. In scenarios with a large number of tracked satellites, it can outperform the traditional methods at low complexity. Keywords Factor graph, GNSS, Kalman filter, PVT, sum-product algorithm. 1. Introduction The global navigation satellite systems (GNSS) are be- ing developed by many countries nowadays. In 2013, there are more than 60 operational GNSS satellites in orbit. This number is expected to reach 90 within three years. The con- stantly increasing number of visible space vehicles (SV) and other radio beacons (RB), such as pseudolites and cellular mobile stations, challenges not only the design of a digi- tal signal processor providing standard outputs of pseudo- ranges, pseudorange rates and navigation data [1–6], but also the design of the position-velocity-time (PVT) fusion algorithm handling large vector data, various coordinate sys- tems and time references. The operations of the PVT estima- tion/filtering algorithms used in practice involve matrix ma- nipulations whose complexity grows significantly with the increasing number of measurements [7, 27]. These algo- rithms, including least squares (LS), weighted least squares (WLS), extended Kalman Filter (EKF), strictly rely on first order Taylor linearization of the pseudorange measurement model. The linearization works well for distant SVs and low user dynamics. If distances to narrow RBs are measured or the user maneuvers quickly, the geometry changes rapidly with respect to the time step of PVT estimation and the basic assumptions of the model simplification are violated. The algorithms such as unscented Kalman Filter (UKF), grid-based filter (GF), and particle filter (PF) can model the nonlinearity based on the representation of the probability density function (PDF) by a finite number of samples [8–12]. These methods are mostly of quadratic or linear dependency on the number of visible RBs, although they work on vector data. However, a large number of par- ticles and frequent resampling are necessary for these algo- rithms to first converge and second provide estimates with expected precision. In this study, we focus on facilitating the requirements on the navigation processor. We introduce a novel dis- tributed algorithm suitable for implementation in simple par- allel processing units each for a tracked satellite. Such a unit performs only scalar sum, subtraction, multiplication, and division. The algorithm can be efficiently implemented in hardware logic. Given the fast position-velocity-time esti- mator, frequent estimates can be obtained to generate code and carrier replicas and hence foster dynamic performance of so called vector tracking receiver [13–15]. The algorithm has been designed using factor graph (FG) framework and the sum-product algorithm (SPA) [16, 17]. First, a FG has been created to intentionally derive the EKF using the SPA relying on known methodology [18]. By splitting vector nodes into scalar ones, we derive a cyclic FG on which we define initialization and iteration routines likewise the SPA in a tree factor graph. A similiar approach

Upload: others

Post on 03-Feb-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Distributed Extended Kalman Filter for Position, Velocity

776 O. JAKUBOV, P. KOVAR, P. KACMARIK, F. VEJRAZKA, DISTRIBUTED EXTENDED KALMAN FILTER FOR POSITION, . . .

Distributed Extended Kalman Filter for Position, Velocity,Time Estimation in Satellite Navigation Receivers

Ondrej JAKUBOV1,2, Pavel KOVAR1, Petr KACMARIK1, Frantisek VEJRAZKA1

1Dept. of Radio Engineering, CTU in Prague, FEL, Technicka 2, 166 27 Prague 6, Czech republic2Nottingham Scientific Limited, Loxley House, Tottle Road, Nottingham, United Kingdom, NG2 1RT

[email protected], [email protected]

Abstract. Common techniques for position-velocity-time es-timation in satellite navigation, iterative least squares andthe extended Kalman filter, involve matrix operations. Thematrix inversion and inclusion of a matrix library pose re-quirements on a computational power and operating plat-form of the navigation processor. In this paper, we introducea novel distributed algorithm suitable for implementation insimple parallel processing units each for a tracked satellite.Such a unit performs only scalar sum, subtraction, multipli-cation, and division. The algorithm can be efficiently imple-mented in hardware logic. Given the fast position-velocity-time estimator, frequent estimates can foster dynamic per-formance of a vector tracking receiver. The algorithm hasbeen designed from a factor graph representing the extendedKalman filter by splitting vector nodes into scalar ones re-sulting in a cyclic graph with few iterations needed. MonteCarlo simulations have been conducted to investigate con-vergence and accuracy. Simulation case studies for a vectortracking architecture and experimental measurements witha real-time software receiver developed at CTU in Praguewere conducted. The algorithm offers compromises in sta-bility, accuracy, and complexity depending on the numberof iterations. In scenarios with a large number of trackedsatellites, it can outperform the traditional methods at lowcomplexity.

KeywordsFactor graph, GNSS, Kalman filter, PVT, sum-productalgorithm.

1. IntroductionThe global navigation satellite systems (GNSS) are be-

ing developed by many countries nowadays. In 2013, thereare more than 60 operational GNSS satellites in orbit. Thisnumber is expected to reach 90 within three years. The con-stantly increasing number of visible space vehicles (SV) andother radio beacons (RB), such as pseudolites and cellularmobile stations, challenges not only the design of a digi-tal signal processor providing standard outputs of pseudo-

ranges, pseudorange rates and navigation data [1–6], butalso the design of the position-velocity-time (PVT) fusionalgorithm handling large vector data, various coordinate sys-tems and time references. The operations of the PVT estima-tion/filtering algorithms used in practice involve matrix ma-nipulations whose complexity grows significantly with theincreasing number of measurements [7, 27]. These algo-rithms, including least squares (LS), weighted least squares(WLS), extended Kalman Filter (EKF), strictly rely on firstorder Taylor linearization of the pseudorange measurementmodel. The linearization works well for distant SVs and lowuser dynamics. If distances to narrow RBs are measured orthe user maneuvers quickly, the geometry changes rapidlywith respect to the time step of PVT estimation and the basicassumptions of the model simplification are violated.

The algorithms such as unscented Kalman Filter(UKF), grid-based filter (GF), and particle filter (PF) canmodel the nonlinearity based on the representation of theprobability density function (PDF) by a finite number ofsamples [8–12]. These methods are mostly of quadratic orlinear dependency on the number of visible RBs, althoughthey work on vector data. However, a large number of par-ticles and frequent resampling are necessary for these algo-rithms to first converge and second provide estimates withexpected precision.

In this study, we focus on facilitating the requirementson the navigation processor. We introduce a novel dis-tributed algorithm suitable for implementation in simple par-allel processing units each for a tracked satellite. Such a unitperforms only scalar sum, subtraction, multiplication, anddivision. The algorithm can be efficiently implemented inhardware logic. Given the fast position-velocity-time esti-mator, frequent estimates can be obtained to generate codeand carrier replicas and hence foster dynamic performanceof so called vector tracking receiver [13–15].

The algorithm has been designed using factor graph(FG) framework and the sum-product algorithm (SPA) [16,17]. First, a FG has been created to intentionally derive theEKF using the SPA relying on known methodology [18]. Bysplitting vector nodes into scalar ones, we derive a cyclicFG on which we define initialization and iteration routineslikewise the SPA in a tree factor graph. A similiar approach

Page 2: Distributed Extended Kalman Filter for Position, Velocity

RADIOENGINEERING, VOL. 22, NO. 3, SEPTEMBER 2013 777

has been adopted by [19, 20] for a one-shot localization ofa mobile station in wireless communication systems. Here,we generalize the algorithm and show that it is equivalentto the proposed algorithm when variances of the predicitonmessages are set to infinity.

In the study, we further analyse convergence and ac-curacy using Monte Carlo simulations of the EKF and theproposed method, compare the number of floating point op-erations, deliver a simulation case study for a vector track-ing architecture and experimental measurements with a real-time software receiver developed at CTU in Prague [3].

1.1 NotationWe denote vectors and matrices with bold emphasize

throughout the text. All vectors are column vectors. All esti-mates of values are denoted with hat - an estimate of vectora is denoted as a. Prediction of vector a is denoted withtilde a. The mean value of random vector a is denoted asE [a] , µa, the covariance matrix as Ca ,

E[(a−µa)(a−µa)

T]. Diagonal matrices with elements

a1,1, . . . , aN,N , N ∈ N on the main diagonal are denotedas A , diag(a1,1, . . . , aN,N) . If vector a represents a mea-surement in additive noise w, then asterisk denotes thenoiseless value a∗ , a−w. With notation Na (µa, Ca) wemean that random vector a has multivariate Gaussian (nor-mal) distribution with mean µa and covariance matrix Ca.The first partial derivative of M-dimensional vector func-tion g(θ) = [g1 . . .gM] with respect to p-dimensional vectorθ = [θ1 . . .θp], Jacobian matrix, is denoted as follows

∂g(θ)∂θ

,

∂g1∂θ1

. . . ∂g1∂θp

.... . .

...∂gM∂θ1

. . . ∂gM∂θp

. (1)

If g(x1, . . .xK) is a scalar function of variables x1, . . . , xK , wedenote the integral over all the variables except for xk where1≤ k ≤ K as∫∼xk

g(x1, . . . ,xK)dx1 . . .dxK ,∫. . .

∫g(x1, . . . ,xK)dx1 . . .dxK︸ ︷︷ ︸

except for xk

. (2)

In the factor graph theory, we denote a message from vari-able node v to factor node F as λv→F , and a message fromfactor node F to variable node v as µF→v.

1.2 Document StructureIn Section 2, we address the problem of PVT estima-

tion in GNSS. In Section 3, we discuss three existing GNSSreceiver architectures - scalar (conventional), vector track-ing, and direct-position estimation architectures. By defi-nition of measurement equations for each architecture, we

show that the derived approach can be applied to both two-step and vector tracking architectures. In Section 5, weoverview the theory of factor graphs and the sum-productalgorithm. In the next section, an algorithm for Bayesianfiltering on the FG with general PDF representation is de-rived. Using Gaussian PDF representation, update rules forFGs modeling KF, EKF are derived, inspired by [18]. Bysplitting the vectors into scalars, novel iterative algorithmsare introduced.

In Section 9, an explanation to the simulation and ex-perimental philosophy is given as well as a complexity com-parison of the employed methods. Section 10 delivers con-vergence, precision and dynamic analysis using Monte Carlosimulation methods for scalar (conventional) tracking ar-chitecture. A case study of incorporation of the proposedmethod into the vector tracking architecture is presented inSection 11. Experimental results for the scalar (conven-tional) architecure using a software receiver developed atCTU in Prague are discussed in Section 12.

2. System ModelConventional GNSS receiver estimates its PVT based

on a two-step approach. As the satellites are acquired,tracked by the code and carrier tracking loops, the naviga-tion data are demodulated, a set of pseudoranges {ρi}I

i=1 andpseudorange rates {ρi}I

i=1 are formed as the observables forthe PVT estimator. Symbol I denotes the number of visiblesatellites. Pseudorange ρi is obtained as the time of recep-tion tU minus the time of transmission tS,i multiplied by thespeed of light c

ρi = c · (tU − tS,i)

with both times measured in the local time scale introducinga bias b between them such that the pseudorange measure-ment can be modeled as

ρi = ‖xU −xS,i‖+b+wρ,i (3)

where xU = [xyz]T is the user position at the time recep-tion tU and xS,i = [xS,i yS,i zS,i]

T is the satellite position atthe time of transmission tS,i, both vectors represented in anearth-centred earth-fixed (ECEF) coordinate frame. Sym-bol wρ,i denotes the measurement noise. Pseudorange rate ρiis obtained as the negative of the measured signal frequencydrift fs,i in meters per second

ρi =−fs,i

fc· c.

Symbol fc denotes the carrier frequency. The pseudorangerate ρi is related to the user velocity vU = [xU yU zU ]

T by thefollowing equation

ρi =−1Ti · (vU −vS,i)+ b+wρ,i

where vS,i = [xS,i yS,i zS,i]T is the satellite velocity, b is the

clock drift, wρ,i is the measurement noise and 1i is the unit

Page 3: Distributed Extended Kalman Filter for Position, Velocity

778 O. JAKUBOV, P. KOVAR, P. KACMARIK, F. VEJRAZKA, DISTRIBUTED EXTENDED KALMAN FILTER FOR POSITION, . . .

line-of-sight vector between the receiver and the satellite

1i =

[xU − xS,i

‖xU −xS,i‖yU − yS,i

‖xU −xS,i‖zU − zS,i

‖xU −xS,i‖

]T

.

The user velocity vU reffers to the time of reception tU andthe satellite velocity vS,i to the time of transmission tS,i. Bothvectors are related to an ECEF coordinate frame. Definingthe PVT vector γ =

[xU bvU b

]as a vector of parameters to

estimated, the vector of pseudoranges and pseudorange ratesξ = [ρ1 . . .ρI ρ1 . . . ρI ]

T as a measurement vector, the follow-ing equation yields an additive noise model for the PVT es-timator

ξ = g(γ)+wξ (4)

where g is a nonlinear 8 → 2I dimensional function, andwξ =

[wρ,1 . . .wρ,I wρ,1 . . .wρ,I

]is an additive noise vector.

Provided the system evolves in time, detoning with discretetime index n, all the model quantities and function g becometime dependent

ξn = gn (γn)+wξ,n. (5)

Common estimators, such as iterative (W)LS and EKF,linearize the measurement equation, since the geometrychanges relatively slowly.

3. Receiver ConceptsThe fact that the tracking loops operate decoupled and

independently of the PVT estimator is a suboptimal solu-tion. Vector tracking concept [14, 15, 21] uses the PVT esti-mate or prediction to control the tracking channels whichincreases the tracking sensitivity when some of the satel-lites are blocked, lowers reacquisition time and increasesresistance to interference [22]. The necessity of the highrate operation of the PVT estimator in this case can be sup-pressed by using prefilters of the pseudoranges and pseudo-range rates. The PVT estimator can then operate at muchlower rate and the control values for the tracking loops areheld constant between its successive epochs.

The most advanced direct positioning (DPE) approach,so far intractable by current technology in real time, esti-mates the user PVT directly from the received signal sam-ples. It has been shown that the DPE has similar benefits tothe vector tracking concept [23] and is very powerful whenmultipath mitigation or antenna array processing [24, 25].The comparison of the GNSS receiver architectures is de-picted in Fig. 1.

4. Extended Kalman FilterLet θn be a p-dimensional random vector parameter at

time n to be estimated with the following state-space model:

θn = an (θn−1)+Bnun (6)

where an is a p-dimensional function, un is an r-dimensionalvector being a Gaussian random variable uncorrelated overtime, named as driving noise, with zero mean and covariancematrix Qn

E[un+muT

n]=

{0 n 6= m,

Qn n = m(7)

and Bn is a p× r matrix. Assume the initial value of the pa-rameter is Gaussian θ−1 ∼ N (µθ, Cθ) and independent ofun for n≥ 0. If xn is an M×1 observation vector expressedby the following additive Gaussian noise model at time n,forming the measurement equation,

xn = hn (θn)+wn (8)

where hn denotes an M-dimensional function, wn is M× 1zero mean Gaussian observation vector, wn∼N (0, Cn), un-correlated over time with covariance matrix Cn

E[wn+mwT

n]=

{0 n 6= m,

Cn n = m,(9)

the sequential suboptimal MMSE estimator of θn based onfirst order Taylor linearization, named as extended Kalmanfilter, can be summarized by the following recursion [26]:Prediction:

θn = an(θn−1

). (10)

Minimum Prediction MSE Matrix:

Mn = AnMnATn +BnQnBT

n . (11)

Kalman Gain Matrix:

Kn = MnHTn(HnMnHT

n +Cn)−1

. (12)

Correction:

θn = θn +Kn(xn−hn

(θn))

. (13)

Minimum MSE Matrix:

Mn = (I−KnHn)Mn. (14)

The recursion is initialized with θ−1 = µθ, M−1 = Cθ. In(11), (12), (14), we substitute

An =∂an (θ)

∂θ

∣∣∣∣θn−1

, (15)

Hn =∂hn (θ)

∂θ

∣∣∣∣θn

. (16)

5. Theory of Factor Graphs and theSum-Product AlgorithmIn this section, we briefly define the factor graph and

describe the sum-product algorithm. Factor graph (FG) isa bipartite graph that represents relations among variables ofa system [16,17]. The system is assumed to be described by

Page 4: Distributed Extended Kalman Filter for Position, Velocity

RADIOENGINEERING, VOL. 22, NO. 3, SEPTEMBER 2013 779

LocalTrackingChannel

...Local

TrackingChannel

NavigationProcessor

y ρ1, ρ1

ρI , ρI

γ

LocalTrackingChannel

...Local

TrackingChannel

NavigationProcessor

yρ1, ρ1

ρ∗1, ˜ρ∗1

ρI , ρI

ρ∗I ,˜ρ∗I

γ

LocalTrackingChannel

Prefilter

...Local

TrackingChannel

Prefilter

NavigationProcessor

yρ1, ρ1

ρ∗1, ˜ρ∗1

ρI , ρI

ρ∗I ,˜ρ∗I

γ Navigation

Processor

y γ

Fig. 1. Receiver architectures: (upper left) conventional architecture, (upper right) vector tracking architecture, (lower left) vector tracking ar-chitecture with prefilters, (lower right) direct positioning architecture. Lines denoted as dash operate at low rate (navigation update rate -typically 0.1 s or 1 s), whereas solid lines operate at much higher rate.

a complicated global function that factors into simpler localfunctions, each of which having arguments from a subset ofthe system variables. The sum-product algorithm (SPA) isa generic message-passing (MP) algorithm which operatesin a factor graph and attempts to compute various marginalfunctions associated with the global function.

Here, we restrict factorization and marginalization tomultiplication and integration, respectively. The global andlocal functions will be represented by the probability densityfunctions (PDF). Although the factor graph framework ap-plies to more general problems, such constraint will makeour approach to PVT filtering more illustrative.

Let’s assume that global function p(X)≥ 0 of K systemvariables X = {x1, . . . ,xK} where ∀k ∈ {1, . . . ,K} : xk ∈Ak :Ak ⊂ R factors into a product of local functions {p j(X j) :j ∈ J∧ p j(X j)≥ 0}

p(X) = ∏j∈J

p j(X j)

for X j being a subset of the global function arguments X j ⊂Xand j denoting the index of the corresponding local functionin set J of such indices. Factor graph is a bipartite graphthat visualizes the factorization using three types of compo-nents: variable nodes - each representing the system vari-able xk, factor nodes - each representing the local functionp j(X j), and edges - connecting the variable nodes xk andfactor nodes p j(X j) if and only if xk ∈ X j. An example FGwhere global function p(x1,x2,x3,x4) factors into local func-tions pA(x1,x2,x3), pB(x3,x4) is in Fig. 2.

The marginal function pi(xi) is defined as a summa-tion of the global function p(x1, . . . ,xK) over all argumentsexcept xi, denoted by ∼ xi,

pi(xi) ,∫∼xi

p(x1, . . . ,xK)dx1 . . .dxK

,∫∼xi

p(X)dX .

In the given example, e.g. the marginal function p3(x3)would be computed as

p3(x3) =∫

x1∈A1

∫x2∈A2

∫x4∈A4

p(x1,x2,x3,x4)dx1dx2dx4.

The key property that multiplication distributes over summa-tion is adopted in a cycle-free FG to distributively computethe resulting marginal function pi(xi) from marginalized lo-cal functions

∫∼xi

p j(X j)dX j, where ∩ j∈JX j = xi∨ /0,

pi(xi) =∫∼xi

p(X)dX

=∫∼xi

∏j∈J

p j(X j)dX

= ∏j∈J

(∫∼xi

p j(X j)dX j

).

In the given example

p3(x3) =

(∫x1∈A1

∫x2∈A2

pA(x1,x2,x3)dx1dx2

)·(∫

x4∈A4

pB(x3,x4)dx4

). (17)

Computation of a single marginal function in a tree FGis then a ”bottom-up” procedure that starts at the leaf ver-tices. The leaf vertices send trivial identity functions to theirparents which wait for messages from all their children be-fore they start calculation of the local marginal functions.When the marginalization is completed in a vertex, it be-comes a child and sends the results to its parents. The al-gorithm continuous until the target marginal function is ob-tained.

In our example (Fig. 2), in order to get the resultingmarginal function p3(x3), variable nodes x1, x2 first sendsimple identity messages λx1→A(x1), λx2→A(x2) to factornode A, and so sends the variable node x4 message λx4→B(x4)

Page 5: Distributed Extended Kalman Filter for Position, Velocity

780 O. JAKUBOV, P. KOVAR, P. KACMARIK, F. VEJRAZKA, DISTRIBUTED EXTENDED KALMAN FILTER FOR POSITION, . . .

to factor node B. The local marginals, the expressions inparenthesis in (17), are evaluated and information about theresults is send in messages µA→x3(x3), µB→x3(x3) to variablenode x3. According to (17), the resulting marginal functionis a product of these local marginals, symbolically,

p3(x3) = µA→x3(x3) ·µB→x3(x3).

We use the term “symbolically”, since the massages passedin a FG represent information about a PDF, not necessarilythe PDF itself. However, it is instructive to use these mes-sages to denote the corresponding marginal PDFs.

The sum-product algorithm is a generalization of theMP algorithm for efficient calculation of all the marginalfunctions associated with the global function. Messagesfrom factor node to variable node are denoted with µ,whereas messages from variable node to factor node with λ.

Let x denote a variable node, F a factor node, and n(x),n(F) the sets of neighbors of variable node x and factornode F , respectively. Symbol pF denotes a local functioncorresponding to factor node F . The messages sent in a FGare recursively computed according to the following algo-rithm [16]:

Variable Node to Factor Node:

λx→F(x) = ∏G∈n(x)\{F}

µG→x(x),

Factor Node to Variable Node:

µF→x(x) =∫∼x

pF(X) ∏y∈n(F)\{x}

λy→F(y)dX

where X is a set of all arguments of pF . The marginalizedversion of the global function with argument x is named be-lief and is evaluated as

B(x) = ∏G∈n(x)

µG→x(x).

In a tree factor graph, the beliefs truly represent themarginals of the global function. However, when cycles ap-pear in the graph, vertices infinitely wait for results fromeach other. A solution to this problem might be to initial-ize the messages and let the sum-product algorithm iterateon the FG. The convergence is mostly difficult to prove.Nonetheless, “appropriate” initial conditions usually suc-ceed.

x1

A

x2

x3

B

x4

λx1→A(x1)

µA→x1 (x1)

µA→x3 (x3)

λx3→A(x3)

λx3→B(x3)

µB→x3 (x3)

λx2→A(x2) µA→x2 (x2) λx4→B(x4) µB→x4 (x4)

Fig. 2. Example FG with MP for global functionp(x1,x2,x3,x4) that factors into local functionspA(x1,x2,x3), pB(x3,x4) in the following mannerp(x1,x2,x3,x4) = pA(x1,x2,x3) · pB(x3,x4). The direc-tion of the messages is denoted with arrow.

6. Distributed Kalman Filter on theFGLet us assume that θn is a random vector parameter to

be estimated with the same state-space model and measure-ment equation as in Section 4, but with both models linear.Using Bayesian rule, posterior PDF p(θn|x1:n) can be de-composed as

p(θn|x1:n)∝ (18)

p(xn|θn)∫

p(θn|θn−1) p(θn−1|x1:n−1)dθn−1

which is depicted in the FG in Fig. 3.

p (θ0)

P0

θ0

p (θ1|θ0)

P1

θ1

p (θ2|θ1)

P2

p (x1|θ1)

L1

. . . θn

p (θn|θn−1)

Pn

p (xn|θn)

Ln

Fig. 3. Factor graph for Bayesian filtering.

The state-space model for the KF can be further de-composed as

p(θn|θn−1) =∫

p(θn|θn−1, un) p(un)dun (19)

where

p(θn|θn−1, un) =p

∏i=1

δ

(θn,i−

p

∑j=1

ai, jθn−1, j−r

∑j=1

bi, ju j

)(20)

where ai, j = [A]i, j, bi, j = [B]i, j. Suppose Q to be diagonalQ = diag

(σ2

u1, . . . , σ2

ur

)so that

p(un) =r

∏i=1

Nui

(0, σ

2ui

). (21)

If matrix Q is not diagonal, singular value decomposition(SVD) [26, 27] can be adopted to describe vector u as

u = Γη (22)

where η is r×1 Gaussian vector with zero mean and diago-nal covariance matrix, Γ is r× r matrix that desirably corre-lates the elements of vector η. Then, we would get

p(θn|θn−1) =∫

p(θn|θn−1, ηn) p(ηn)dηn (23)

where

p(θn|θn−1, ηn) =p

∏i=1

δ

(θn,i−

p

∑j=1

ai, jθn−1, j−r

∑j=1

ci, jη j

)(24)

Page 6: Distributed Extended Kalman Filter for Position, Velocity

RADIOENGINEERING, VOL. 22, NO. 3, SEPTEMBER 2013 781

where ci, j = [BΓ]i, j. Suppose the variance of ith element ofvector η is σ2

ηi, then

p(ηn) =r

∏i=1

Nηi

(0, σ

2ηi

). (25)

We can decompose the likelihood function in a similiar man-ner

p(xn|θn) =∫

p(xn|θn, wn) p(wn)dwn (26)

where

p(xn|θn, wn) =M

∏i=1

δ

(xn,i−

M

∑j=1

hi, jθn, j−wi

)(27)

where hi, j = [H]i, j. If we suppose that wn has diagonal co-variance matrix Cn = diag

(σ2

w1, . . . ,σ2

wM

), then

p(wn) =M

∏i=1

Nwi

(0, σ

2wi

). (28)

If wn is correlated over elements, the same procedure as forthe state-space model can be incorporated to describe wn asa product of a matrix and a zero mean Gaussian noise vectorwith diagonal covariance matrix.

The desired factor graph can be constructed as fol-lows. The vector vertices are split into scalar vertices each ofwhich representing the corresponding vector element. TheFG of the state-space model, see Fig. 4 (right), is then con-structed based on substituting (20), (21) into (19) resultingin

p(θn|θn−1) =∫. . .

∫ p

∏i=1

δ

(θn,i−

p

∑j=1

ai, jθn−1, j−r

∑j=1

bi, ju j

)

·r

∏i=1

Nui

(0, σ

2ui

)du1 . . .dur. (29)

Similarly, the FG representing the likelihood function, seeFig. 4 (left), is constructed by substituting (27), (28) into(26) resulting in

p(xn|θn) =∫

. . .∫ M

∏i=1

δ

(xn,i−

M

∑j=1

hi, jθn, j−wi

)Nwi

(0, σ

2wi

)dw1 . . .dwM. (30)

The update rules for the factor and variable nodes are de-picted in Fig. 5. To derive the update rules for multiple inputnodes, we resorted to a recursive evaluation of the updaterules for a pair of input nodes in [18].

The message passing algorithm starts at variable nodesθ0,1,. . . , θ0,p where the messages sent to factor nodesP1,1,. . . , P1,p comprise the mean and variance1 of the

initial distribution λθ0,i→P1, j (θ0,i) ={

µ0,i, σ20,i

}for i, j ∈

{1, . . . , p} where µ0,i = [µ0]i and σ20,i = [C0]i,i. The mes-

sages from variable nodes u0,i are also sent to the fac-

tor nodes P1,1,. . . , P1,p λu1,i→P1, j (u1,i) ={

0, σ2u,i

}and up-

dates are calculated according to Fig. 5. The branches tovariable nodes θ1,1, . . . ,θ1,p are disconnected and the re-sulting messages are sent back towards the variable nodesθ0,1,. . . , θ0,p and the iterations start. When the last iter-ation, the branches to the variable nodes θ1,1, . . . ,θ1,p areconnected, the messages are sent to them. The observed val-ues are sent to the likelihood factor nodes λxn,i→Ln,i (xn,i) ={xn,i, 0} for i ∈ {1, . . . , M} and so do the noise variablenodes λwn,i→Ln,i (wn,i) =

{0, σ2

i}

. Next, the messages fromthe previous state-space factor nodes P1,1,. . . , P1,p are sentthrough variable nodes θ1,1, . . . ,θ1,p to the likelihood factornodes L1,1, . . . ,L1,p and the updates are therein calculated.The results are then sent back to variable nodes θ1,1, . . . ,θ1,pand then updated taking the unchanged messages from factornodes P0,1, . . . ,P0,p. The branches to the future factor nodesP2,1,. . . , P2,p remain disconnected. The updated messagesare sent towards factor nodes L1,1, . . . ,L1,p and iterations arestarted in this way. The iterations are finished after the lastupdates at variable nodes θ1,1, . . . ,θ1,p for which the futurevariable nodes P2,1,. . . , P2,p are now connected. The mes-sages sent to these factor nodes represent the beliefs and themeans can be used to obtain the approximated MMSE esti-mates. And so continuous the algorithm sequentially.

7. Distributed Extended Kalman Fil-ter on the FGThe extended Kalman filter can be also approximated

on the scalar FG. Suppose that

a(θn) =

a1 (θn,1, . . . , θn,p)...

ap (θn,1, . . . , θn,p)

(31)

and

h(θn) =

h1 (θn,1, . . . , θn,p)...

hM (θn,1, . . . , θn,p)

. (32)

Let us next assume that hi, j = [H]i, j and ai, j = [A]i, j. Theconditional PDFs p(θn|θn−1, un), p(xn|θn, wn) both can beapproximated for the EKF as Gaussian

p(θn|θn−1, un) = (33)p

∏i=1

δ

(θn,i−ai (θn−1,1, . . . , θn−1,p)−

r

∑j=1

bi, ju j

),

p(xn|θn, wn) =M

∏i=1

δ(xn,i−hi (θn,1, . . . , θn,p)−wi) . (34)

The update rules of the scalar variable node remain un-changed compared to the KF’s. However, the mean of thefactor node update will change and the variance will remain

1The initial cross-correlation between the parameter is not assumed. To regard it, one can resort to SVD decomposition.

Page 7: Distributed Extended Kalman Filter for Position, Velocity

782 O. JAKUBOV, P. KOVAR, P. KACMARIK, F. VEJRAZKA, DISTRIBUTED EXTENDED KALMAN FILTER FOR POSITION, . . .

xn,1 xn,M. . .

Ln, 1 Ln,M. . .

θn,1 θn,p. . .

wn,1 wn,M

. . . . . .

.

.

.

.

.

.

θn−1,1. . .

.

.

.

.

.

.

θn−1,p. . .

un,1

.

.

.

un,r

Pn, 1

.

.

.

Pn, p

θn,1 . . .

.

.

.

.

.

.

θn,p . . .

Fig. 4. FG for the likelihood function (left), state-space model of scalar KF (right).

F1

.

.

.

F (K)

θ

F

σ2 =(∑K

k=11σ2

k

)−1

µ = σ2(∑K

k=1µk

σ2k

){µ1, σ2

1}

{µK , σ2K}

{µ, σ2}

θ1

.

.

.

θK

F

θ

σ2 =(∑K

k=1 a2kσ

2k

)/a2

µ =(∑K

k=1 akµk

)/a

pF (θ|θ1, . . . , θK) = δ(aθ −

∑Kk=1 akθk

)

{µ1, σ21}

{µK , σ2K}

{µ, σ2}

Fig. 5. Update rules for scalar vertices of KF - (left) variable node, (right) factor node.

unchanged. Assume the situation in Fig. 5 (right). Next, as-sume the PDF (= factor function) pF (θ|θ1, . . . , θK) will havethe following form

pF (θ|θ1, . . . , θK) = δ(aθ− f (θ1, . . . , θK)) (35)

≈ δ

(a(θ− θ

)−

K

∑k=1

ak(θk− θk

))

where f is K-dimensional function and θ, θ1, . . . , θK are con-stant linearizing points such that

θ = f(θ1, . . . , θK

). (36)

The updated mean will have the following form

µ = θ+

(K

∑k=1

ak(µk− θk

))/a. (37)

In the scalar EKF, the linearization will generally take placein both state-space and likelihood factor nodes. The lin-earizing points for the state-space model nodes will be theestimated parameters from the previous time θn−1,i wherei ∈ {1, . . . , p}. The linearizing points for the likelihoodnodes will be the means of the output messages from thestate-space model nodes. This complies with the vector EKFwhere predictions are used to linearize the nonlinear obser-vation function h.

The complexity of the scalar EKF is slightly higherthan that of the scalar KF due to the necessity of evaluationof the Jacobians A, H if they depend on time. The number

of flops might be increased if functions a, h are complicated.The linearizing point can be updated after every iteration toimprove the convergence which requires the evaluations ofthe Jacobians.

8. Complexity ComparisonThe advantage of the scalar Kalman filter is that the

update rules operate on scalars and simple arithmetic opera-tions unlike the vector case. The complexity of the algorithmis quadratic in the number of states and linear in the numberof observations. This is not true for the vector KF where thecomplexity is cubic in states and cubic or quadratic in ob-servations depending on the form of the KF. However, thesum-product algorithm in the scalar case does not yield trulythe MMSE estimates of the parameter θn, since the cyclesare present in the graph. The complexity then will be a mul-tiple of the number of iterations and the accuracy with con-vergence will have to be investigated for every single imple-mentation of the scalar Kalman filter.

The number of flops required to calculate a recursion is

OsKF = NIter., Ss.(5p2 +5pr+ p

)+ (NIter., Ss.−1)

(4p2 +4pr

)+ NIter., Lh. (9pM+6M) (38)

where p is the size of the state-space vector θn, M is thesize of the observation vector xn, r is the size of the driv-

Page 8: Distributed Extended Kalman Filter for Position, Velocity

RADIOENGINEERING, VOL. 22, NO. 3, SEPTEMBER 2013 783

ing noise vector un, NIter., Lh. is the number of the iterationsamong the likelihood factor nodes and the state variablenodes, NIter., Ss. is the number of the iterations among thestate factor nodes and the state variable nodes. In Fig. 6,the number of flops depending on the number of visibleSVs is depicted for the EKF and the first three iterationson the scalar EKF (NIter., Ss. = 1). The EKF is assumedto be in information form [26] which changes the calcula-tion of the inverse in 12 into a quadratic-dependent formon I using matrix inversion lemma. Note that the numberof flops is lower for the scalar filter with a single itera-tion, for two iterations both curves are close to each other,and for three iterations the EKF has lower number of flops.

0 10 20 30 40 50 60 70 80 90 100102

103

104

105

Number of SVs (I )

Num

ber

of

Flo

psO

(I)

EKF

FG 1 iter.

FG 2 iter.

FG 3 iter.

Fig. 6. Complexity comparison of the PVT filtering algorithms.Symbol O(I) denotes the number of floating point oper-ations (flops) depending on the number of SVs denotedas I.

9. Simulations and ExperimentsIn this section, we investigate convergence and accu-

racy of the EKF and the proposed algorithm. In practice, theuser sometimes manueveres with higher dynamics than re-flected by the model, therefore we also investigate the caseswhere the state-space model is designed for much lower dy-namics than the user moves with.

During the simulation results, we will notice that a sin-gle iteration can offer similar accuracy to the EKF in lowdynamic scenarios, but the performance improves with iter-ations as the dynamics increase and the EKF can be outper-formed. Hence, the FG-based filter offers compromises inaccuracy and complexity.

Firstly, we deliver a simple simulation where the con-vergence and accuracy in a scalar tracking architecture isinvestigated using Monte Carlo methods, being the subjectof Section 10. In Section 11, the filters are incorporatedinto a vector tracking architecture. The former simulationassumes Gaussian uncorrelated measurements of pseudo-ranges and pseudorange rate, whereas the latter produces

measurements that are correlated and biased by randomlygenerated values depending on the satellite elevations. Sec-tion 12 presents few case studies of the experiment witha real-time receiver - WNav [3], working in the scalar track-ing architecture.

10. Simulation - Scalar Tracking Archi-tectureIn this simulation, we investigate convergence and ac-

curacy of the EKF and the FG-based scalar iterative EKFalgorithm. The model we adopt is basic, see next section.The pseudoranges and pseudorange rates are Gaussian anduncorrelated without any biases. The goal is to evaluatethe performance characteristics in a simple manner and overa large number of realizations. In the first subsection, weintroduce the simulation scenario, in the next two subsec-tions the convergence and accuracy results are discussed andfinally summarized in the last subsection.

10.1 Simulation ScenariosWe consider from 16 to 64 visible SVs randomly dis-

tributed over the open sky, scenarios with low dynamics(a = 0.1 m/s2) and scenarios with moderate dynamics (a =1 m/s2). The user moves in a circle on the surface of theEarth with radius 1 km, velocity 10 m/s for low dynamicsand 33 m/s for moderate dynamics. The estimates were up-dated every ten times per second TN = 0.1 s.

The standard deviation of the generated pseudorangemeasurements was σρ = 1 m, and σρ = 0.05 m/s of the pseu-dorange rate measurements. These quantities were generatedas uncorrelated Gaussian random variables with mean equalto the noiseless values with respect to the geometry and clockoffsets. The standard deviation of the elements of the drivingnoise vector was assumed constant - either σu = 0.01 m/s forhigh filtering or σu = 0.1 m/s for low filtering. We repeatedeach simulation 1000 times and simulated over 1000 s. Theconvergence and accuracy were examined for various num-ber of iterations NIter. , NIter. Lh. , NIter. Ss. = 1.

To evaluate the performance characteristics, we definethe total position error (TPE) of the position and clock biasestimation as

TPE =1

NL

N

∑n=1

L

∑l=1

√∥∥∥x(l)U,n−x(l)U,n

∥∥∥2 +(b(l)n −b(l)n )2 (39)

where n is the time index, N is the number of observations intime, l is the index of the realization, L is the number of real-izations. Similarly, we define the total velocity error (TVE)as

TVE =1

NL

N

∑n=1

L

∑l=1

√∥∥∥v(l)U,n−v(l)U,n

∥∥∥2+( ˆb(l)n − b(l)n )2. (40)

We claim that the divergence is reached if TPE>100 m orTVE>2 m/s.

Page 9: Distributed Extended Kalman Filter for Position, Velocity

784 O. JAKUBOV, P. KOVAR, P. KACMARIK, F. VEJRAZKA, DISTRIBUTED EXTENDED KALMAN FILTER FOR POSITION, . . .

10.2 ConvergenceThe convergence histograms of the EKF and FG-based

scalar iterative EKF algorithms are depicted in Fig. 7. InFig. 7(a), the driving noise std. equals the change of the ve-locity vector in magnitude over an epoch. In this case, wecan infer that the convergence probability is strictly depen-dent on the number of visible SVs and is always worse forthe FG-based EKF filter than for the standard EKF filter. InFig. 7(b), the same scenario is assumed for a larger numberof SVs. For the number of visible SVs equal to sixteen andmore, no divergence has been observed in 1000 repetitions.This fact substantiates us to employ the iterative filtering forlarge data vectors. Luckily, we see that the convergence isrelatively fast and can be reached within few iterations.

In the experiment in Fig. 7(c), we increase the user ve-locity and produce the user acceleration of 1 m/s. The driv-ing noise is left unchanged so that the velocity changes ap-proximately ten times faster than the state-space model as-sumes. We observe that the FG-based filter and the EKF canstill withstand such unmodeled dynamics and converge sim-ilarly as in the previous case. However, this is not the casein Fig. 7(d) where the driving noise variance is increased to0.1 m/s to account for the change in velocity. The lack ofaveraging of the iterative algorithm causes divergence evenfor a large number of SVs of the FG filter, the EKF remainsstable. We deduce that if the dynamics increase significantly,we had better not model it. If the modeled dynamics is ac-ceptably low at high dynamics, iterations generally improveconvergence probability.

10.3 AccuracyIn Fig. 9, we illustrate the accuracy of the algorithms.

The TPEs are in the left column, whereas the TVEs are inthe right column. Each row corresponds to the same sce-nario. In Fig. 9(a-b), the same low dynamics matched modelis considered. In this case, the FG-based filter outperformsthe EKF if the number of SVs is larger than 16 and even fora single iteration. The explanation for this surprising fact isthat the EKF is a suboptimal approximation of the KF basedon first order Taylor linearization. The FG-based filter lin-earizes the variables in a scalar, but different, manner andthe performance of both filters may generally differ depend-ing on different factors.

If we increase the acceleration as in Fig. 9(c-d), the FG-based filter outperforms the EKF in accuracy for larger num-ber of SVs or for more than one iteration. In this case, theperformance is improved over iterations due to the fact thata linearizing point is calculated for each iteration. The lin-earization fails for a large position difference between thepredicted (also linearizing) value and the true value. Here,we iteratively shift towards the true value with iterations,whereas the EKF does this only once at an epoch.

If we model the higher dynamics and remain stable asin Fig. 9(e-f), the EKF performs better and the iterations do

not improve the accuracy, but the difference in accuracy be-tween the two filters decays with larger number of the SVs.

10.4 SummaryTo summarize the simulation results, we recall that one

should use the FG-based filter for PVT estimation if and onlyif the number of visible SVs is larger than 16 to ensure theconvergence. If the user is expected to move from time totime with higher dynamics, it is better not to model it andrather increase the number of iterations. The accuracy canbe improved in this case compared to the EKF.

11. Simulation - Vector TrackingArchitectureIn this section, we demonstrate the functionality of the

proposed algorithm in the vector tracking architecture. Wepresent a case study where we compare the scalar trackingarchitecture using the EKF with the vector tracking architec-ture with the EKF or the FG-based scalar iterative EKF. Thistime correlation among the pseudoranges will be introducedand the biases in the measurement caused by atmosphericeffects will be added. We demonstrate that the FG-based fil-ter can withstand these anomalies even in the vector trackingarchitecture. The first subsection shortly explains the em-ployed simulation methodology. In the second subsection,the simulation results are discussed and the last subsectionhighlights the key implementation aspects.

11.1 Simulation MethodologyThe simulation setup is documented in Tab. 2. Two

user scenarios were investigated: low dynamics (LD) sce-nario, and moderate dynamics (MD) scenario. In either sce-nario, the user moves in a circle with constant circular orbitspeed. The TPE and TVE were calculated over time. Forthe first part of the simulation, we assume that the user is inan open-sky scenario, whereas in the second part C/N0 ofall visible SVs is swept from 50 dB-Hz down to 10 dB-Hz.Random atmospheric delay errors were artificially added tothe propagation times with distribution depending on the el-evation angle of the SV. Example values of these errors forthe simulation in Fig. 9(a,b) are in Tab. 1. Oscillator phasenoise was added to the code delay and the carrier phase. Fi-nite bandwidth of 10 MHz was introduced. The phase noisevalues L( f0), L( f1) at frequencies f0, f1, respectively, forthe carrier phase are in Tab. 2. No multipath, interference,jamming and fading effects were examined.

The simulation complexity has been reduced by avoid-ing the bit-true multiplication and accumulation (MAC) be-tween the received IF signal samples and the generated repli-cas. The signals at the output branches of the correlatorswere generated instead [28–30].

Page 10: Distributed Extended Kalman Filter for Position, Velocity

RADIOENGINEERING, VOL. 22, NO. 3, SEPTEMBER 2013 785

75 80 85 90 95 100

4

5

6

7

8

Convergence [%]

Num

ber

of

SV

s

1 iter. (FG)

2 iter. (FG)

3 iter. (FG)

EKF

75 80 85 90 95 100

48

16

32

64

Convergence [%]

Num

ber

of

SV

s

1 iter. (FG)

2 iter. (FG)

3 iter. (FG)

EKF

10 20 30 40 50 60 70 80 90 100

48

16

32

64

Convergence [%]

Num

ber

of

SV

s

1 iter. (FG)

2 iter. (FG)

3 iter. (FG)

EKF

20 30 40 50 60 70 80 90 100

48

16

32

64

Convergence [%]

Num

ber

of

SV

s

1 iter. (FG)

2 iter. (FG)

3 iter. (FG)

EKF

Fig. 7. Simulation results - convergence. (a - upper left) a = 0.1 m/s2, σu = 0.01 m/s detail on low number of visible SVs, (b - upper right)a = 0.1 m/s2, σuu = 0.01 m/s, (c - lower left) a = 1 m/s2, σu = 0.01 m/s, (d - lower right) a = 1 m/s2, σu = 0.1 m/s.

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 60.2

0.4

0.6

0.8

1

1.2

1.4

1.6

Number of Iterations

TP

E[m

]

16 SVs (FG)

16 SVs (EKF)

32 SVs (FG)

32 SVs (EKF)

64 SVs (FG)

64 SVs (EKF)

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 60.015

0.02

0.025

0.03

0.035

0.04

0.045

0.05

0.055

Number of Iterations

TV

E[m

/s]

16 SVs (FG)

16 SVs (EKF)

32 SVs (FG)

32 SVs (EKF)

64 SVs (FG)

64 SVs (EKF)

1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 30

0.2

0.4

0.6

0.8

1

1.2

1.4

Number of Iterations

TP

E[m

]

32 SVs (FG)

32 SVs (EKF)

64 SVs (FG)

64 SVs (EKF)

1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 30.02

0.03

0.04

0.05

0.06

0.07

0.08

Number of Iterations

TV

E[m

/s]

32 SVs (FG)

32 SVs (EKF)

64 SVs (FG)

64 SVs (EKF)

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 60

5

10

15

Number of Iterations

TP

E[m

]

16 SVs (FG)

16 SVs (EKF)

32 SVs (FG)

32 SVs (EKF)

64 SVs (FG)

64 SVs (EKF)

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 60

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

Number of Iterations

TV

E[m

/s]

16 SVs (FG)

16 SVs (EKF)

32 SVs (FG)

32 SVs (EKF)

64 SVs (FG)

64 SVs (EKF)

Fig. 8. Simulation results - accuracy. Total position errors (TPE) are in the left column, total velocity errors (TVE) are in the right column. (a -upper left), (b - upper right) a = 0.1 m/s2, σu = 0.1 m/s, (c - middle left), (d - middle right) a = 1 m/s2, σu = 0.01 m/s, (e - lower left), (f -lower right) a = 1 m/s2, σu = 0.1 m/s.

Page 11: Distributed Extended Kalman Filter for Position, Velocity

786 O. JAKUBOV, P. KOVAR, P. KACMARIK, F. VEJRAZKA, DISTRIBUTED EXTENDED KALMAN FILTER FOR POSITION, . . .

El. 32 42 9 10 21 6 33 40 6AE 1.1 -0.3 -3.7 0.9 -0.1 -2.3 1.3 -2.0 -2.5

Tab. 1. Examples of atmospheric errors (AE) [m] with eleva-tions of the SVs (El.) [◦], for simulation in Figs. 9 (a, b).

Testing Signal GPS L1 C/APredetection Integration Time NbNcTc = 20 msNavigation Update Time TN = 0.1 sIF Filter Bandwidth BW = 10 MHzCode Delay Detector Normalized PowerCarrier Phase Detector Atan2C/N0 Estimator Squaring [15]Prefilter Sequential WLSUser Velocity, Radius, Accel. (LD) 2 m/s, 100 m, 0.04 GVelocity Driv. Noise Std. (LD) σx = σy = σz = 1 m/sClk. Drift Driv. Noise Std. (LD) σb = 10−2 m/sUser Velocity, Radius, Accel. (MD) 30 m/s, 100 m, 1 GVelocity Driv. Noise Std. (MD) σx = σy = σz = 20 m/sClk. Drift Driv. Noise Std. (MD) σb = 10−3 m/sNumber of Visible SVs I = 9Init. Lattitude, Longitude, Altitude 0◦, 0◦, 0 mPhase Noise L(1Hz) =−30 dBc/Hz

L(10Hz) =−50 dBc/HzDLL (Order, Bandwidth) 1. order, Bn = 0.1 HzFLL (Order, Bandwidth) 2. order, Bn = 10 Hz

Tab. 2. Simulation setup for the vector tracking architecture.

11.2 ResultsThe simulation results documenting the open-sky sce-

nario are in Figs. 9, 10. Figs. 9(a-d) depict the situation forLD, whereas Figs. 10(a-d) depict MD. TPE and TVE areplotted for a single iteration (NIter. = 1) and for three itera-tions (NIter. = 3). The proposed FG-based algorithm incor-porated to the vector tracking architecture (FG-VDLL/FG-VFLL) is compared with the EKF of the scalar tracking ar-chitecture (DLL/FLL) and with the EKF of the vector track-ing architecture (VDLL/VFLL). All algorithms adopt iden-tical motion model. Second order FLL aids first order DLLin the scalar tracking loops.

It is clear from Figs. 9(a,b), 10(a,b) that a single it-eration on the FG results in comparable position and ve-locity filtering errors as for the EKF vector tracking loopin an open-sky scenario at low dynamics. An increasednumber of iterations slightly improves the performance atlow dynamics, compare Figs. 9(a,c) and Figs. 9 (b,d). Atmoderate dynamics, both VDLL/VFLL and FG-VDLL/FG-VFLL perform similarly for NIter. = 3, see Fig. 10(c,d). ForNIter. = 1, conclusions about precision are difficult to make,see Figs. 10(a,b). The reason is that our motion model doesnot regard user acceleration. However, the figures documentthat the proposed method might be able to withstand suchunmodeled anomalies, likewise the EKF method. The im-proper choice of the motion model here causes that the scalararchitecture outperforms the vector one for velocity estima-tion at moderate dynamics, see Figs. 10(b,d). This could beclaimed as a disadvantage of the vector tracking architecture.

In Figs. 11(a,b), we sweep C/N0 for all the trackedSVs, see Fig. 11(c), and observe the stability of the proposedFG-based algorithm in comparison with the EKF-based one.

Moderate dynamics and a single iteration are considered. Itis apparent from the figures that the FG-VDLL/FG-VFLLloop looses lock at approximately 2 dB lower C/N0 than theVDLL/VFLL loop. Fig. 11(d) depicts the C/N0 estimate er-rors of the FG-VDLL/FG-VFLL channels.

11.3 Implementation AspectsLikewise for the EKF architecture, it is clear that pre-

cision and stability of the loop is highly dependent on thechoice of the motion model, predetection integration timeand the navigation update time. When a proper motionmodel is selected, the performance can be improved with in-creased number of iterations on the FG. But with low num-ber of iterations, the navigation processor might be able tooperate at higher update rate which would foster the overallperformance.

In our simulation, we did not model any delay betweenthe SV channels and the navigation processor. It representsthe situation of a SDR receiver (ipexSR [2], WNav - onlyPC processing [3]). On the other, the performance mightbe worse for traditional receiver architectures (WNav - lo-cal tracking channels in FPGA, the navigation processor inPC [3]) where such a delay occurs.

12. Experiment - Scalar TrackingArchitectureIn this section, we demonstrate the functionality of the

proposed FG-based scalar iterative EKF algorithm in a scalartracking architecture using a GNSS receiver developed atCTU in Prague [3] and high-fidelity GPS L1 Spirent sim-ulator GSS6560. The first subsection explains the employedmethodology, next the results are discussed.

12.1 MethodologyWe assume that the user moves in a circle with con-

stant circular orbit speed in an open-sky scenario. Firstly, weplace the user to 14 static points on the Earth, see Fig. 13, ata given time and investigate the filtering performance. Sec-ondly, two dynamic scenarios (a = 1 m/s2, a = 10 m/s2) withradius 10 km, 1 km and velocity 100 m/s are supposed. Thenumber of visible SVs has always been 11. The measure-ments were taken for 1 hour. The navigation update timewas TN = 0.1 s. Second order DLL, PLL were used withequivalent loop noise bandwidth 0.5 Hz, 30.0 Hz, respec-tively. The driving noise std. was always 0.01 m/s whichmismatches the motion model, but still filters out. The FG-based filter ran with three iterations.

12.2 ResultsIn Fig. 12, we plot the results obtained by the WNav

receiver. The left column depicts TPEs and the right col-

Page 12: Distributed Extended Kalman Filter for Position, Velocity

RADIOENGINEERING, VOL. 22, NO. 3, SEPTEMBER 2013 787

0 20 40 60 80 100 1200

5

10

15

20

25

30

35Low Dynamics, Niter = 1

Time [seconds]

Tota

lP

osi

tion

Err

or

[met

ers]

DLL/FLL

VDLL/VFLL

FG-VDLL/FG-VFLL

0 20 40 60 80 100 1200

0.05

0.1

0.15Low Dynamics, Niter = 1

Time [seconds]

Tota

lV

eloci

tyE

rror

[m/s]

DLL/FLL

VDLL/VFLL

FG-VDLL/FG-VFLL

0 20 40 60 80 100 1200

5

10

15

20

25

30

35Low Dynamics, Niter = 3

Time [seconds]

Tota

lP

osi

tion

Err

or

[met

ers]

DLL/FLL

VDLL/VFLL

FG-VDLL/FG-VFLL

0 20 40 60 80 100 1200

0.05

0.1

0.15Low Dynamics, Niter = 3

Time [seconds]

Tota

lV

eloci

tyE

rror

[m/s]

DLL/FLL

VDLL/VFLL

FG-VDLL/FG-VFLL

Fig. 9. Vector tracking - simulation results - LD. (a - upper left) TPE, NIter. = 1, (b - upper right) TVE, NIter. = 1, (c - lower left) TPE, NIter. = 3,(d - lower right) TVE, NIter. = 3.

0 20 40 60 80 100 1200

5

10

15

20

25

30

35Moderate Dynamics, Niter = 1

Time [seconds]

Tota

lP

osi

tion

Err

or

[met

ers]

DLL/FLL

VDLL/VFLL

FG-VDLL/FG-VFLL

0 20 40 60 80 100 1200

0.2

0.4

0.6

0.8

1

1.2

1.4Moderate Dynamics, Niter = 1

Time [Seconds]

Tota

lV

eloci

tyE

rror

[m/s]

DLL/FLL

VDLL/VFLL

FG-VDLL/FG-VFLL

0 20 40 60 80 100 1200

5

10

15

20

25

30

35Moderate Dynamics, Niter = 3

Time [seconds]

Tota

lP

osi

tion

Err

or

[met

ers]

DLL/FLL

VDLL/VFLL

FG-VDLL/FG-VFLL

0 20 40 60 80 100 1200

0.1

0.2

0.3

0.4

0.5

0.6

0.7Moderate Dynamics, Niter = 3

Time [seconds]

Tota

lV

eloci

tyE

rror

[m/s]

DLL/FLL

VDLL/VFLL

FG-VDLL/FG-VFLL

Fig. 10. Vector tracking - simulation results - MD. (a - upper left) TPE, NIter. = 1, (b - upper right) TVE, NIter. = 1, (c - lower left) TPE, NIter. = 3,(d - lower right) TVE, NIter. = 3.

Page 13: Distributed Extended Kalman Filter for Position, Velocity

788 O. JAKUBOV, P. KOVAR, P. KACMARIK, F. VEJRAZKA, DISTRIBUTED EXTENDED KALMAN FILTER FOR POSITION, . . .

0 20 40 60 80 100 1200

5

10

15

20

25

30

35C/N0 Sweep, Niter = 1

Time [seconds]

Tota

lP

osi

tion

Err

or

[met

ers]

VDLL/VFLL

FG-VDLL/FG-VFLL

0 20 40 60 80 100 1200

0.5

1

1.5

2

2.5

3C/N0 Sweep, Niter = 1

Time [seconds]

Tota

lV

eloci

tyE

rror

[m/s]

VDLL/VFLL

FG-VDLL/FG-VFLL

0 20 40 60 80 100 12010

15

20

25

30

35

40

45

50C/N0 Sweep for all SVs

Time [seconds]

Tru

eC

/N0

[dB

-Hz]

0 20 40 60 80 100 120−35

−30

−25

−20

−15

−10

−5

0

5

10C/N0 Error - FG-VDLL/FG-VFLL

Time [seconds]

C/N

0E

rror

[dB

-Hz]

Fig. 11. Vector tracking - simulation results - C/N0 sweep. (a - upper left) TPE at C/N0 sweep, (b - upper right) TVE at C/N0 sweep, (c - lowerleft) swept C/N0 of all visible SVs, (d - lower right) C/N0 estimate error for all visible SVs. Figures (a-d) refer to MD, NIter. = 1.

0 500 1000 1500 2000 2500 3000 35000

2

4

6

8

10

12

Time [s]

TP

E[m

]

EKF

FG

0 500 1000 1500 2000 2500 3000 35000

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1

Time [s]

TV

E[m

/s]

EKF

FG

0 500 1000 1500 2000 2500 3000 35000

2

4

6

8

10

12

14

Time [s]

TP

E[m

]

EKF

FG

0 500 1000 1500 2000 2500 3000 35000.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Time [s]

TV

E[m

/s]

EKF

FG

1300 1400 1500 1600 1700 1800 1900 2000 2100

5

10

15

20

25

Time [s]

TP

E[m

]

EKF

FG

1350 1400 1450 1500 1550 1600 1650 1700

18

20

22

24

26

28

30

32

34

Time [s]

TV

E[m

/s]

EKF

FG

Fig. 12. Experimental results - accuracy. Total position errors (TPE) are in the left column, total velocity errors (TVE) are in the right column.(a - upper left), (b - upper right) averaged errors of static scenarios, (c - middle left), (d - middle right) dynamic scenario a = 1 m/s2, (e -lower left), (f - lower right) detail on dynamic scenario a = 10 m/s2.

Page 14: Distributed Extended Kalman Filter for Position, Velocity

RADIOENGINEERING, VOL. 22, NO. 3, SEPTEMBER 2013 789

umn depicts TVEs. Figs. 12(a-b) are averaged versions ofthe TPEs and TVEs for the FG-based and the EKF filtersapplied to the static user. The accuracy of both filters iscomparable. However, convergence was observed only in10/14 cases. The reason is as discussed in Section 10 - lownumber of the SVs causes divergence.

In Figs. 12(c-d), the user moves with acceleration a =1 m/s2, in Figs. 12(e-f) with acceleration a = 10 m/s2 whichis not far from the model of the filter. The important factis that the FG-based filter remains stable and its accuracy iscomparable to the EKF’s.

13. ConclusionIn this paper, a novel PVT estimation/filtering method

for GNSS receiver has been introduced. The method itera-tively and distibutively estimates the PVT in a factor graphwhere each update is calculated using only simple arithmeticoperations, thus opening possibilities for implementation inhardware logic.

Fig. 13. User positions on the Earth - static experiment (14 po-sitions).

It was demonstrated by Monte Carlo simulations thatthe method converges for the number of tracked satelliteslarger than 16, and can withstand higher unmodeled dynam-ics by increasing the number of iterations. The accuracy ofthe method is comparable to the accuracy of the EKF at threeiterations. At higher dynamics, the proposed method canoutperform the EKF if the number of iterations is increased.The method experience comparable number of flops as theEKF in the information form.

It was shown by a case simulation that the proposedmethod can be coupled with the tracking loops in the vectortracking loop as the EKF and deliver similar performance.By implementation of the method into a real-time receiverdeveloped at CTU in Prague, we showed in several experi-ments that the method has the potential to withstand channelanomalies.

AcknowledgementsThe authors would like to thank JAN SYKORA for his

invaluable suggestions and comments.

SafeLOC is a project that is supported by public fundsunder Contract No. 20110198 with the Technology Agency

of the Czech Republic in the program to support researchand development ALFA.

References

[1] PANY, T. Navigation Signal Processing for GNSS Software Receiver- GNSS Technology and Applications. 1st ed. Norwood: ArtechHouse, 2010.

[2] STOBER, C. et al. ipexSR: A real-time multi-frequency softwareGNSS receiver. In Proceedings of ELMAR. Zadar (Croatia), 2010,p. 407 - 416.

[3] JAKUBOV, O., KOVAR, P., KACMARIK, P., VEJRAZKA, F. TheWitch Navigator - a low cost GNSS software receiver for advancedprocessing techniques. Radioengineering, 2010, vol. 19, no. 4, p. 536- 543.

[4] ABASSIAN, N., PETOVELLO, M. G. Implementation of dual-frequency GLONASS and GPS L1 C/A software receiver. The Jour-nal of Navigation, 2010, no. 63, p. 269 - 287.

[5] AFZAL, H., LACHAPELLE, G. Design methodology for a dual fre-quency configurable GPS receiver. In Proceedings of GNSS10. Port-land (Oregon), 2010, p. 1 - 9.

[6] SHIVARAMAIAH, N. C., DEMPSTER, A. G. Global NavigationSatellite Systems - Signal, Theory and Applications: Chapter 2 Base-band Hardware Design in Modernised GNSS Receivers. 1st ed. Inte-chOpen, 2012.

[7] KAPLAN, E. D., HEGARTY, C. J. Understanding GPS: Principlesand Applications. 2nd ed. Norwood: Artech House, 2006.

[8] WAN, E., VAN DER MERWE, R. The unscented Kalman filter fornonlinear estimation. In Proceedings of IEEE Symposium on Adap-tive Systems for Signal Processing, Communications and Control.2000, p. 604 - 611.

[9] BO, T., PINGYUAN, C., YANGZHOU, C. Sigma-point Kalman fil-ters for GPS based position estimation. In Proceedings of Fifth In-ternational Conference on Information, Communications and SignalProcessing. 2005, p. 213 - 217.

[10] DOUCET, A., FREITAS, N., GORDON, N. Sequential Monte CarloMethods in Practice. 1st ed. New York: Springer, 2001.

[11] ARULAMPALAM M. S., MASKELL, S., GORDON, N., CLAPP,T. A tutorial on particle filters for online nonlinear/non-GaussianBayesian tracking. IEEE Transaction on Signal Processing, 2002,vol. 50, no. 2, p. 174 - 188.

[12] GUSTAFSSON, F. et. al. Particle filters for positioning, navigation,and tracking. IEEE Transactions on Signal Processing, 2002, vol. 50,no. 2, p. 425 - 437.

[13] SPILKER, J. J. Vector delay lock loop processing of radiolocationtransmitter signals (US Patent 5398034). [Online] Cited 2011-10-11.Available at: http://www.freepatentsonline.com/5398034.html.

[14] PETOVELLO, M. G., LACHAPELLE, G. GNSS solutions: Whatare vector tracking loops and what are their benefits and drawbacks.Inside GNSS, 2009, vol. 4, no. 3, p. 16 - 21. [Online] Available at:http://insidegnss.com/node/1458.

[15] PANY, T., EISSFELLER, B. Use of vector delay lock loop receiverfor GNSS signal power analysis in bad signal conditions. In Pro-ceedings of IEEE/ION PLANS 2006. San Diego (CA, USA), 2006,p. 893 - 903.

Page 15: Distributed Extended Kalman Filter for Position, Velocity

790 O. JAKUBOV, P. KOVAR, P. KACMARIK, F. VEJRAZKA, DISTRIBUTED EXTENDED KALMAN FILTER FOR POSITION, . . .

[16] KSCHISCHANG, F. R., FREY, B. J., LOELIGER, H. A. Factorgraphs and the sum-product algorithm. IEEE Transaction on Infor-mation Theory, 2004, vol. 47, no. 2, p. 498 - 519.

[17] LOELIGER, H. A. An introduction to factor graphs. IEEE SignalProcessing Magazine, 2004, vol. 21, no. 1, p. 28 - 41.

[18] LOELIGER, H. A. Least squares and Kalman filtering on Forneygraphs. BLAHUT, R. E., KOETTER, R. (Eds.) Codes, Graphs, andSystems. Kluwer, 2002, p. 113 - 135.

[19] CHEN, J. C., MAA, C. S., WANG, Y. C. Mobile position location us-ing factor graphs. IEEE Communications Letters, 2003, vol. 7, no. 9,p. 431 - 433.

[20] CHEN, J. C., WANG, Y. C., MAA, C. S., CHEN, J. T. Network-sidemobile position location using factor graphs. IEEE Transaction onWireless Communications, 2006, vol. 5, no. 10, p. 2696 - 2704.

[21] SPILKER, J. J. Fundamentals of signal tracking theory. PARKIN-SON, B. W., SPILKER, J. J. (Eds.) Global Positioning System: The-ory and Applications, 1st ed. Washington DC (USA): American In-stitute of Aeronautics and Astronautics, Inc., 1996, p. 245 - 327.

[22] BENSON, D. Interference benefits of a vector delay lock loop(VDLL) GPS receiver. In Proceedings of the 63rd Annual Meet-ing of the Institute of Navigation. Cambridge (MA, USA), 2007,p. 1 - 8.

[23] CLOSAS, P., FERNANDEZ-PRADES, C., BERNAL, D.,FERNANDEZ-RUBIO, J. A. Bayesian direct position estimation.In Proceedings of ION GNSS 21st International Technical Meetingof the Satellite Division. Savannah (GA, USA), 2008, p. 183 - 190.

[24] CLOSAS, P., FERNANDEZ-PRADES, C., FERNANDEZ-RUBIO,J. A. A Bayesian approach to multipath mitigation in GNSS re-ceivers. IEEE Journal of Selected Topics in Signal Processing, 2009,vol. 3, no. 4, p. 1 - 12.

[25] CLOSAS, P. Bayesian Signal Processing Techniques for GNSS Re-ceivers: From Multipath Mitigation to Positioning. PhD thesis.Barcelona (Spain): Universitat Politecnica de Catalunya, 2009.

[26] KAY, S. M. Fundamentals of Statistical Signal Processing: Estima-tion Theory. 1st ed. New Jersey (USA): Prentice-Hall, 1993.

[27] WATKINS, D. S. Fundamentals of Matrix Computations. 2nd ed.New York (USA): John Wiley & Sons, 2002.

[28] KOVAR, P., KACMARIK, P., VEJRAZKA, F. High performanceGalileo E5 correlator design. In Proceedings of 13th IAIN WorldCongress. Bergen (Sweden), 2009, p. 1 - 8.

[29] BORIO, D., ANANTHARAMU, P. B., LACHAPELLE, G. SATL-Sim: A semi-analytic framework for fast GNSS tracking loop simu-lations. GPS Solutions, 2011, p. 1 - 5.

[30] JAKUBOV, O., KACMARIK, P., KOVAR, P., VEJRAZKA, F. Uni-versality and realistic extensions to the semi-analytic simulation prin-ciple in GNSS signal processing. Radioengineering, 2012, vol. 21,no. 2, p. 536 - 543.

About Authors. . .Ondrej JAKUBOV was born in Liberec, Czech republic,in 1986. He received his MSc in electrical engineering from

the CTU in Prague in 2010. He is a postgraduate studentat the same university at the Department of Radio Engineer-ing and works as a navigation engineer for Nottingham Sci-entific Limited. His research interests include GNSS sig-nal processing algorithms and receiver architectures. His re-search focuses on advanced positioning and tracking meth-ods. In his occupation, he works as a DSP hardware logic en-gineer and system architect of a system-on-chip based GNSSreceiver, provides support and co-developes RF front-end so-lutions.

Pavel KOVAR was born in Uherske Hradiste in 1970. Hereceived his MSc and PhD degree at the CTU in Prague in1994 and 1998. Since 1997 to 2000 he worked in Mesit In-struments as a designer of avionics instruments. Since 2000he is with the Faculty of Electrical Engineering of the CTUin Prague as an Assistant Professor and since 2007 as an As-sociate Proffesor (Doc.). His interests are receiver architec-tures, satellite navigation, digital communications and signalprocessing.

Petr KACMARIK was born in 1978. He received his MScdegree from the CTU in Prague in 2002. During his post-graduate studies (2002 - 2006) he was engaged in the in-vestigation of satellite navigation receiver techniques in hardconditions and wrote his PhD thesis with its main topic onGNSS signal tracking using DLL/PLL with applicability toweek signal environment. He defended the thesis in 2009.Since 2006 he works as an Assistant Professor at the Facultyof Electrical Engineering of the CTU in Prague. His mainprofessional interests are satellite navigation, digital signalprocessing, implementations and simulations of signal pro-cessing algorithms.

Frantisek VEJRAZKA was born in 1942. He received hisMSc degree from the CTU in Prague in 1965. He servedas an Assistant Professor (1970) and Associate Professor(1981) at the Department of Radio Engineering. He is a fullprofessor of radio navigation, radio communications, andsignals and systems theory since 1996. He was appointed theHead of the Department of Radio Engineering (1994–2006),vice-dean of the Faculty (2000–2001) and vice-rector of theCTU in Prague (2001–2010). His main (professional) in-terest is in radio satellite navigation where he participatedon the design of the first Czech GPS receiver (1990) for theMesit Instruments. He was responsible for the developmentof Galileo E5 receiver for Korean ETRI during 2008 andE1 and E5a receiver in 2009. He is the former presidentof the Czech Institute of Navigation, Fellow of the Royal In-stitute of Navigation in London, member of the Institute ofNavigation (USA), vice-president of IAIN, vice-chairman ofCGIC/IISC, member of IEEE, member of Editorial Board ofGPS World, Editorial Board of InsideGNSS, etc.