easy suite 2
TRANSCRIPT
-
8/11/2019 Easy Suite 2
1/2348 InsideGNSS M A R C H / A P R I L 2 0 0 9 www.insidegnss.com
In 2003 I published a paper called Te GPS EASY Suite Matlab Code or the GPS Newcomer. Te paper consistedo 10 parts, which are cited in the accompanying sidebar,EASY Suite I opics. Each installment included a printed
text and a file o related Matlab code or scripts (anM-file) thatcould be downloaded rom a designated web site.
Each part contained an answer to ofen-asked questionsin my classes. I did not, however, only offer an answer to thequestions, but also a Matlab code that solves the problem. Tearticle became a tremendous success and remained the most
downloaded paper rom the GPS Solutionssite or more thana year.
Now, students love this sort o support. But I also receivedpositive reactions rom proessionals who used the code inresearch papers, which saved them a lot o coding efforts.
Te original Matlab code also turned out to be the mostdownloaded file rom the Aalborg website. It resulted in numer-ous e-mails rom interested readers asking or more files. Teserequests now answered by the creation o eight additionalM-files. Some involve more complex problems and coding.
Since 2003, I have received a steady flow o additional ques-tions rom readers o Gilbert Strangs and my book, Linear
Algebra, Geodesy, and GPS. Last summer I decided to createanother set o common GPS problems/solutions and accompa-
nying Matlab code EASY Suite II. Tese will be presented inserial ashion, as one or more exercises in this and orthcomingissues o Inside GNSS.
Introducing the New SuiteEasy Suite II augments the set o basic computational tasks withthe ollowing topics:
EASY11, stereographic sky plot o satellite orbits and plot otime when satellites are above a given local horizon
EASY12, details o the LAMBDA method, explained
through a small numerical exampleEASY13, receiver autonomous integrity monitoring
(RAIM), horizontal protection level (HPL), and vertical pro-tection level (VPL)
EASY14, sample o space-based augmentation system(SBAS) corrected positions and their presentation in Stanordplots
EASY15, accuracy comparison between pseudorange basedstand-alone positions, baselines computed using pseudorangesalone, and pseudoranges and carrier phase observations
EASY16, error analysis o a selected one-way observationEASY17, satellite orbits in inertial and Earth-centered,
Earth-fixed (ECEF) systems, and curve defined by sub-satel-lite points
GPS EASY Suite IIA Matlab Companion
Many practitioners in the GNSS field are familiar with Matlab, a high-
level technical computing language and interactive environment for
algorithm development, data visualization, data analysis, and numeric
computation. In this new series, a prominent Danish GNSS researcher
uses Matlab to illustrate and explain a variety of common GPS issues.
KAI BORREAALBORG UNIVERSITY
ImageofGPSconstellationbasedonpublicdomainfile
fromWikimedia
Commons
-
8/11/2019 Easy Suite 2
2/23www.insidegnss.com M A R C H / A P R I L 2 0 0 9 InsideGNSS 49
EASY18, computation o differential corrections at a basestation.
Te original suite was thought o as comprising the base oran elementary course in GPS while, as reflected in the subjects,the new suite is o a more optional, topical character.
In 2003 and later, many users encountered diiculty infinding the necessary files or running individual EASY-files.Tereore, I chose to copy all files needed into single directo-ries accessible online, so that each directory becomes sel-con-tained. Te price we pay is multiple copies o basicM-files.
Te complete set o Easy Suite II Matlab codes can be oundin compressed (zipped) files at . Readers can find much o the theoretical backgroundor the EASY scripts in Chapters 14 and 15 o Linear Algebra,Geodesy, and GPS(see Additional Resources or details). How-ever, we have added some text that emphasizes certain issuesthat are central in the codes, but may be difficult to find in a
textbook.
EASY11: GPS Sky PlotsTe EASY-Suite starts with a polar plot o satellite orbits (seeFigure 1) as viewed rom a given location, a graph showing thenumber o visible satellites, and the period o time when theyare visible during 24 consecutive hours.
EASY11 itsel is based on an almanac downloaded most eas-ily rom the National Geodetic Survey (NGS) website . Te actual file name isbrdc1550.08n.
Te RINEX file has been reormatted into Matlabs binary
ormat or satellite ephemerides using theM-file rinexe. Te userenters (,) or the position on the ground where the plot is to beused, and a value or the elevation mask to be set. Ten the azi-muth and elevation angles or all visible positions o the includedsatellites are computed and plotted as polar coordinates.
Next ollows bookkeeping on how many and which satel-lites are visible during the day and the time periods when theycan be seen. Figures 2and 3show the resulting plots.
Te Matlab code is simple, the result is impressive, and use-ul. In early GPS days when the constellation was incomplete,such plots were especially valuable or planning purposes to besure that enough satellites would be available or positioning.
Except in the most severe terrain and urban canyons, receiverscan find plenty o GPS (and GLONASS) satellites around theclock, and this situation wil l become even more pronouncedwhen Galileo satellites are launched.
EASY12: LAMDA MethodMost students find the theory behind the Least-squares AMBi-guity Decorrelation Adjustment (LAMBDA) or ambiguityresolution difficult to understand. We shall try to smooth thepath.
First we describe in a subsection the linear algebra involved.Next we add an M-script that elucidates how the method works
on a simple case with three ambiguities.
Linear Algebra for LAMBDALet the vector bcontain the three components o the baselineand the vector acontain ambiguities or the L
1requency and
possibly or the L2requency. Te double differenced observa-
tionsare collected in the vectory:
Te normal equations are
FIGURE 1 Sky plot including all GPS satellites for a period of 24 hours at agiven position. The elevation mask is 10 degrees.
EASY Suite I TopicsThe original Easy Suite, which can be found online at , dealt with the following issues:
EASY1, time conversion
EASY2, computation of a satellites position from an ephemeris EASY3 computation of a receivers position from pseudoranges
EASY4 computation of a baseline from pseudoranges alone
EASY5 computation of a baseline from pseudoranges and
phase observations using a least-squares solution
EASY6 the same, but now using a Kalman
filter for the baseline estimation
EASY6e the same, but introducing down-
weighting of older observations
EASY7 estimation of receiver clock offset
EASY8 check of cycle slips and receiver clock reset
EASY9 various coordinate representations of a given baseline
EASY10 estimation of ionospheric delay for the individual satellites
0
30
60
90
120
150
180
210
240
270
300
330
0
Skyplot for the position (,)= (57, 10)Elevation mask 10
All PRNs except 1
-
8/11/2019 Easy Suite 2
3/2350 InsideGNSS M A R C H / A P R I L 2 0 0 9 www.insidegnss.com
and the ormal solution is
Te components o the solution vector are reals; however,we want a solution o integers! Hence, we find an integer vec-tor asuch that
Afer the integer solution is ound we substitute it or . Con-sequently, the solution or changes to . In order to determine, we multiply the lower block row in (3) by and subtract
rom the upper block row:
Te upper block row gives:
Te right side is known and constant. I we change to , then
changes to and we have:
or
Te right side is known and is quickly ound.
Minimizing a Quadratic Expression overIntegerTe LAMBDA method starts as other least-squares computa-tions by solving the normal equations (3). Te result is partly
the vector o real-valued ambiguities and partly the pertinentcovariance matrix .
Te core problem can be stated in a very clear orm
In order to emphasize the integer nature o the problem we haveswapped the notation rom ato I.
Tis is the problem we study, and in one case this is espe-cially simple. I is diagonal, the best vector comes romrounding each component o to the nearest integer.
Te components are uncoupled when is diagonal. Tequadratic is purely a sum o squares . he
minimum comes by making each term as small as possible. Sothe best is the integer nearest to .
In practice the individual components are highly cor-related. Recalling that we ofen deal with 20 ambiguities, werealize that a search procedure to find the minimum is unre-alistic. Tereore, an idea about decorrelating the ambiguitiesas much as possible, beore starting the search, should lead toan effective procedure.
his is just what the LAMBDA method does. It wasdescribed by Peter eunissen in 1993 and is, rom a theoreticalpoint o view, still considered to be the best method.
Te first step consists in transorming such that its off-
diagonal entries become numerically smaller. Tese entriesmeasure the correlation.
We start by computing the LDLdecomposition o the givencovariance matrix
Next we construct a matrix o integers Zrom Lby asequence o integer Gauss transformationsandpermutationssuch that
is as diagonal as possible. Now the search defined by (4) is
substituted by a search over integers I:
EASY SUITE II
14
12
10
8
6
4
2
0
Elevation mask 10
#o
fVisibleS
atellites
0 6 12 18 24
GPS Time (hours)
8
16
24
32
Solid Lines Indicate Visible Satellites
PRNs
0 6 12 18 24
GPS Time (hours)
FIGURE 2
Number of visible satellites
FIGURE 3 Time period when the visible satellites are 10 degrees or higher
above the horizon
-
8/11/2019 Easy Suite 2
4/23www.insidegnss.com M A R C H / A P R I L 2 0 0 9 InsideGNSS 51
Te choice o Zis based on integer elimination start-ing with the first row o L. Tis will certainly involverow exchanges and, thereore, Z will not be triangular.
Te essential idea or this lattice basis reductionwasgiven by A. K. Lenstra et alia in 1982 (See AdditionalResources), and the algorithm is sometimes called L3. Forurther details see Strang and Borre, pages 495499.
Te result o the search is the integer vector . Finally, istransormed back to the ambiguity space according to
Note that both Zand Z-1must have integer entries. A con-sequence o this is that det(Z) = 1 as seen rom Cramers rule.Te condition on the determinant o Zmeans that the Ztrans-ormation preserves the search volume. At the end o this pro-
cess, we have transormed a highly correlated space (elongatedellipses) into a sphere-like search space, which diminishes thesearch time tremendously.
EASY12 illustrates the computational steps including a ewnumerical details. We choose a numerical example rom P. J. deJonge and C. C. J. M. iberius (1996). Further computationaldetails are well described in that report.
A Numerical ExampleGiven the float ambiguities
with covariance matrix
We introduce integer shifs o in order to secure that -1 .
In Figure 1 a horizontal line constraint is drawn to represent
the protection level a. Note that, or small ailure magnitudes, itis possible or the accuracy specification not to be breached.In the event that the position error xexceeds a predefined
protection level a, but |||| < R the residual threshold Rdeter-mined rom equation (7) a missed detectionhas occurred,case II, see Figures 1 and 4. Te corresponding probability isdefined as
In general a condition between || || and ||x|| will exist. Wemust quantiy the degree o this correlation in order to demon-strate the integrity monitoring capability o RAIM-based ault
detection. Te result is given later in equation (13).According to equation (2) the residual and the position
error xwill scale proportionally, with the actor (AA)-1A.Hence, the normal condition (NC) confidence ellipse will slideup thefailure mode axiswith slope .
In (2) the position error
is deined in a 3-D Cartesian coordinate system (X,Y,Z).However, or practical use a local topocentric coordinatesystem x
ENU= (e, n, u) is more appropriate. A position
vector at (, , h) given in the (X,Y,Z) system can be trans-
ormed into the east, north, up (e, n, u) system throughmultiplication by the orthogonal transormation matrix F:
In the ollowing discussion we only consider the three coor-dinates (X,Y,Z). So we delete the last column oAand get a newmatrixA
0=A(:, 1:3). Similarly we delete the last element o x
and define x0= x(1:3); hence:
Note that rows 1 and 2 o the 3 mmatrixMrelate to east-ing and northing. Finally we defineM
0=M(1:2, 1:2).
Imagine now afailureo magnitudein satellite i(isplaced as the ith component):
We compute the norm squared or this special choice o e:
FIGURE 1 Basic RAIM states
FIGURE 2 Probability of a false alarm
estimatederror
|| x||
thresholdR
protection level
Threshold
R
16
14
12
10
8
6
4
20 20 40 60 80 100
Degrees of Freedom m n
P(FA | NC) = 10-2
P(FA | NC) = 10-5
P(FA | NC) = 10-8
Probabilities
-
8/11/2019 Easy Suite 2
8/2350 InsideGNSS J U L Y/ A U G U S T 2 0 0 9 www.insidegnss.com
Te many zeros in esimplifies this to
From (3) we recall = Sbor
as SS = S. Te diagonal entry (i,i) o Sis called sii.Now
Tis is the equation or a straight line through the originand with slope
i. Te slope
io the ailure mode axis related
to satellite iis computed as
Te slope values are computed or all i= 1, , m, and thecorresponding lines are depicted in Figure 3. Te PRNs in thisfigure are the ones included in easy2 (computation o a satel-lites position rom an ephemeris).
he likelihood that the RAIM algorithm may detect anobservational error depends on the satellite geometry. A poorgeometry does not necessarily indicate observational errors,but i errors are present they may be difficult to detect.
Te slope iprovides a measure o the difficulty in accu-
rately detecting a ault in presence o noise: the larger the slope,the more difficult it is to detect the ault.Te ailure mode axes in Figure 3 through the origin with
slope iare given exclusively rom the geometry determined by
the satellites and the receiver. Te mode axis with maximumvalue o
iis called
maxand the HPL is defined as
where 0is the standard deviation o the pseudoranges
.
At readers mayfind the ollowing definition o HPL: Te Horizontal ProtectionLevel is the radius o a circle in the horizontal plane with itscenter being at the true position which describes the region thatis assured to contain the indicated horizontal position.
Te resulting RAIM ault detection algorithm is a simpleone: Check the residual statistic to see i it is larger than thethreshold R. I so, a system ailure is declared. Given this simplealgorithm, our outcomes are possible, reer to Figures 1 and4.
Under a normal condition(NC), the position error ||x||does not exceed the protection level a, and the residual is small-
er than the threshold R, as in case III. I the position error doesnot exceed the protection level a, but the residual is larger than
the threshold R, afalse alarm(FA) has occurred, which is caseIV. When both protection level and residual threshold havebeen breached, a detection failure(DF) has occurred caseI. Finally, a missed detection(MD) happens when the positionerror ||x|| is larger than the protection level a, but the residual
is smaller than the threshold R; that is case II.In the general case, o course, more than one ailure modeexists, that is, ein (11) has more than one non-zero compo-nent. However, this presentation does not deal with that case.In their book (see Additional Resources), R. G. Brown and P. Y.C. Hwang investigate RAIM in case o non-uniorm weightedobservations and multiple aults.
Because the horizontal protection level depends on satellitegeometry, it must be computed or each epoch and each posi-tion. I the HPL is below the protection level, RAIM is said tobe available or that epoch.
Reerring to Figure 4, we may introduce inequalities, which
characterize each region in the figure. For notational reasons,in addition to the predefined protection level a, we introducethe obvious new variables x= |||| (norm o residuals) and y =||x
EN|| (horizontal position error):
case I upper part a < y < x lower part a < x < y case II y < a < x case III upper part y < x < a lower part x < y < a case IV x < a < y
A desired result will plot in the case III area, upper part,which is called normal operation. Te oregoing description
may be summarized into the ollowing procedure or deter-mining HPL:
EASY SUITE II
FIGURE 3 Characteristic slopes for seven visible satellites
FIGURE 4 RAIM status, repeated. We aim at having plots in the gray area.
Estimatedhorizontalposition
error|| xEN||
max
PRN 25
PRN 24
PRN 20
PRN 13PRN 1
PRN 4
PRN 7
Estimated errorthresholdR
protection level
-
8/11/2019 Easy Suite 2
9/23www.insidegnss.com J U LY /A U G U S T 2 0 0 9 InsideGNSS 51
Input to RAIM:Te variance o a pseudorange observation,the coefficient matrixAo the linearized least-squares observa-tion equations, and the maximum allowable probabilities or aalse alarm P(FA) and a missed detection P(MD).
Output of the algorithm:Horizontal protection level (HPL),
which is the radius o a circle, centered at the true position thatis assured to contain the indicated horizontal position with thegiven probability o alse alarm and missed detection.
Similarly or Vertical Protection Level (VPL). Again, an offi-cial definition (at ) is:Te vertical protection level is hal the length o a segment onthe vertical axis with its center being at the true position, whichdescribes the region that is assured to contain the indicated
vertical position.
Additional Resources
The original Easy Suite can be found online at . The complete set of Easy Suite II Matlab codes can be found in com-pressed (zipped) files at .
Brown, R. G., and P. Y. C. Hwang, Introduction to Random Signals and Applied
Kalman Filtering, third edition, John Wiley & Sons, Inc., New York, 1997
de Jong, K., Real-time integrity monitoring, ambiguity resolution and kine-
matic positioning with GPS, Proceedings of 2nd European Symposium on
GNSS98,Toulouse, France, pp. VIII07/1-VIII07/7, 1998
Kaplan, E., and C. J. Hegarty (editors), Understanding GPS, Principles and
Applications,second edition, Artech House, Boston and London, 2006
Nikiforov I., and B. Roturier, Advanced RAIM algorithms: First results, ION
GNSS2005, 18th International Technical Meeting of the Satellite Division of
the Institute of Navigation, Long Beach, California, USA
Pervan, B. S., Navigation Integrity for Aircraft Precision Landing Using theGlobal Positioning System.Stanford University, Stanford, California, USA,
1996
Author
Originally graduated as a chartered surveyor, Kai Borre
obtained his Ph.D. in geodesy from Copenhagen Uni-
versity, and a Doctor of Technology degree from Graz
University of Technology. He has been a full profes-
sor in geodesy at Aalborg University since 1976.
For more than 30 years Borre has conducted
research and performed education in the area of
satellite based positioning. In 1996 he established the Danish GPS Center
and since 2000 has been head of a two-year international M.Sc. program in
GPS technology.
Borre is a coauthor of the widely used textbooks, Linear Algebra, Geodesy,
and GPSandA Software-Defined GPSand Galileo Receiver; Single-Frequency
Approach.
Since the early 1990s Borre has published Matlab code for processing of
GPS observations, and since 2003 he published Matlab code together with
explanatory text, a very successful new pedagogical concept.
-
8/11/2019 Easy Suite 2
10/2362 InsideGNSS S E P T E M B E R / O C T O B E R 2 0 0 9 www.insidegnss.com
S
ome GPS applications generate long time series oposition estimates. Most ofen, an easy way o gettinga quick overview on the recorded data is to plot them.
However, it may be difficult rom a plot to quantiy sta-tistical measures such as mean value, standard deviation,andcircular error probable(CEP).
easy14 continues the aviation-oriented discussion begunin the July/August 2009 issue o Inside GNSS, drawing on useo the European Geostationary Navigation Overlay Service(EGNOS), a satellite-based augmentation system (SBAS). Tefiles or the corresponding MALAB codes can be ound on-line; details included in the Additional Resources section nearthe end o this article.
Our demonstration sample uses data collected on August20, 2008, over a 4.2-hour period with a static GPS L1 receiver
with 12 code and carrier channels and two optional SBASchannels, located at a site south o Aalborg, Denmark. Tisreceiver is a commercial one capable o handling EGNOS data.However, dedicated EGNOS receivers exist that exploit the dataoptimally and rom which better-looking plots can be gener-ated.
Te EGNOS-corrected positions were computed by usinga MALAB implementation done at the Danish GPS Center(DGC). For a given alert limit a, EGNOS provides an integritymeasure that tells the user to use or not to use the position inquestion.
Te EGNOS corrections can be obtained in several ways:
directly via the geostationary satellites listed inTable 1, or roma service called Signal in Space through the Internet (SISNe),
or through other services. In the present case we apply a post-processing mode which relies on the EGNOS Message Server(EMS) on-line at
In polar regions users may have difficulties in receiving sig-nals rom the geostationary satellites and, hence, the Internet
version becomes useul. However, the Internet is not availablenear the poles too ofen!
We shall make a small digression to investigate the mag-nitude o the elevation angle ho a (geostationary) satelliteas a unction o the receiver site. Let a ground receiver havecoordinates (
E,
E)and let the sub-satellite coordinates o any
satellite be (S,
S). Te north pole, the receiver position E, and
the sub-satellite point o Smake a spherical triangle on a unitsphere with sides 90 -
E, 90 -
S, and the intersecting angle
E-
S.
Applying the spherical cosine law on this triangle yields theollowing expression or the latitude reduced to the merid-ian o E
Specializing to a geostationary satellite with S=
G= 0
gives
Our data are collected at (E,
E)= (57, 10); i we received
the EGNOS corrections rom the AOR-E (PRN 120) satellite,we would have
or a reduced latitude = 60.6.
GPS EASY Suite II easy14EGNOS-Aided Aviation
In this installment of the series, the author uses Matlab to illustrates
aspects of aviation navigation using EGNOS signals to augment GPS.
KAI BORREAALBORG UNIVERSITY
ImageofGPSconstellationbasedonpublicdomainfile
fromWikimedia
Commons
-
8/11/2019 Easy Suite 2
11/23www.insidegnss.com S E P T E M B E R / O C T O B E R 2 0 0 9 InsideGNSS 63
Next we assume that our site Eand the geostationary satel-lite Gare in the same meridian plane. Te Earth radius is a
E
= 6700 kilometers and the distance between the geostationarysatellite and the Earth center is a
G= 42486 kilometers. With
reerence to Figure 1we get, in a spherical approximation, or
triangle OPG
Some rewriting involving the sum relation yields
Te elevation angle hequals zero or = 80.9 ; or = 60.6we get h= 20.9, (reer to Figure 2).
Te EGNOS inormation allows us to correct the observed
pseudoranges or atmospheric delays and other error sources. Aast EGNOS correction is computed rom navigation messages25 that contain the so-called ast data set. Te message startswith the 2-bit issue o data PRN (IODP), an 8-bit preamble, a6-bit message type identifier (values can be 2, 3, 4, or 5), and a2 bit issue o data ast (IODF).
Next ollows the ast data set or 13 satellites: 12 bits or theast pseudorange correction PRC and 4 bits or the user differ-ential range error indicator(UDREI). Te message ends with24 parity bits, in total 250 bits. Te ast data set or the next 13satellites is contained in the ollowing message and so orth.
Te PRCvalue is given in the interval [-256.000, +255.875]
with a resolution o meter.Te range-rate correction RRCo the ast correction is com-
puted as the difference between the current PRCand the previ-ous one divided by the time interval between the two values.Te time o applicability t
ois identical to the transmission time
o the first bit in the message.Te ast correction to the pseudorange or a given satellite
identified by its pseudorandom noise code number (PRN) is
Te RRCcomputation must time-out i there is no PRCoreight seconds.
he complete computation o the EGNOS correctioninvolves calculation o an ionospheric correction and a possibletropospheric correction. Te variance o the ith observation iscomposed o our variances: a ast and long term contribution
, a tropospheric correction , an ionospheric correction, and finally receiver noise and multipath :
ypical values or a satellite with high elevation are lt
=0.26 m,
tropo= 0.01 meter,
iono= 0.21 meter, and
air= 3.26
meter, and or a low elevation satellite lt
= 0.55 meter, tropo
=0.10 meter,
iono= 0.91 meter, and
air= 3.28 meter.
Figure 3shows the time series (deviations rom mean val-ues) or the three coordinates East, North, and Up (E, N, U) at
the location E. Positions computed rom the raw pseudoranges(black line) plot as noisy curves.
Next we applied a MALAB EGNOS correcting code, devel-oped at DGC, to the raw observations; the result is the less noisycurves (red). No smoothing is applied. A urther quantificationo the graphs in Figure 3are added asTable 2. Figure 4containsa plot o the corresponding horizontal positions.
We have created a script easy141 that gives a recipe or com-puting horizontal protection levels(HPLs) and vertical protec-tion levels (VPLs) or aircraf approaches to airports. We startrom the coefficient matrixAor a single epoch
P
G
90
80
70
60
50
40
30
20
10
0
-10
Elevationa
ngleh
200 40 60 80 100
Latitude
FIGURE 1 Elevation angle hto geostationary satellites as seen from theEarths surface as a function of latitude, spherical approximation
FIGURE 2 Plot of elevation angle hto geostationary satellites as seen fromthe Earths surface as a function of latitude
Satellite Name Longitude lG PRN
AOR-E 15.5 W 120
Artemis 21.5 E 124
IOR-W 25.0 E 126
TABLE1. EGNOS geostationary satellites
-
8/11/2019 Easy Suite 2
12/2364 InsideGNSS S E P T E M B E R / O C T O B E R 2 0 0 9 www.insidegnss.com
Te necessary details may be ound in the script.Te larger script easy14 starts rom a transormed version
oA. Te main change is to observe that = cos eli cos azi
where elimeans the elevation angle and azithe azimuth o PRNias seen rom the receiver position.
Te first three columns contain the so-called Euler anglesbetween the line-o-sight and the (X,Y,Z)axes. However, weneed the corresponding angles between the line-o-sight andthe topocentric (E,N,U) system. Te three columns are trans-ormed rom (X,Y,Z)to (E,N,U)by post-multiplication with FT.For urther discussion o this point, see equation (9) in easy13.
Te product B=A(:, 1 : 3) FT, augmented with a column oones, can also be computed directly as
he next steps are described by simple expressions butinvolve heavy computational burdens. A weight matrix Worthe observed pseudoranges is defined in terms o the variances
:
Te 2 2 block matrix o the covariance matrix contain-
ing the entries 11= , 22= , and 12= 21= 12constitutethe coefficients in a quadratic orm
Tis quadratic orm defines a confidence ellipse. Te largesteigenvalue
1o this quadratic orm is the semi-major axis o
the confidence ellipse or the position solution
Equation (9.78) in the book by G. Strang and K. Borre, listedin Additional Resources, provides urther context or the pre-
ceding step.Te expression or
1can be rewritten as
Tis version is ound in the minimum operational peror-mance standards (MOPS) or GPS/Wide Area AugmentationSystem (WAAS) airborne equipment published in RTCA/DO-229C, page J.1.
Te EGNOS standard defines two magnification actorsK
H= 6 and K
V= 5.33. Remember that
33= and finally we
obtain:
EASY SUITE II
5
0
-5Easterror[m]
0 1h 2h 3h 4h
5
0
-5Northerror[m]
0 1h 2h 3h 4h
20
10
0Uperror[m]
0 1h 2h 3h 4h
Time [h]
Position error versus time, 4.20 hours
GPS without correction EGNOS corrected
6
4
2
0
-2
-4
-6
Northerror[m]
-6 -4 -2 0 2 4 6
East error [m]
Position error, 4.20 hours
GPS without correction EGNOS correction
CEP 50%
[m]
CEP 95%
[m]
sc
[m]
sn
[m]
meane
[m]
meann
[m]
Raw Pseudoranges 1.8 3.8 1.3 1.8 -0.2 -1.4
DGC EGNOS-corrected 0.5 1.1 0.4 0.5 0.0 -0.7
TABLE2. Circular errors probably (CEP), standard errors, and mean values ofposition for raw pseudoranges collected by a commercial receiver. Also shownare EGNOS corrections as computed by DGC MATLAB code. The numbers arederived from the 4.2-hour data series shown in Figure 3. The cut-off angle is 5elevation.
FIGURE 3 4.2 hours of data collected by a static GPS/SBAS receiver. The
figure shows east, north, and up as computed from raw pseudoranges(black) and from DGC EGNOS implemented correcting code (red)
FIGURE 4 4.2 hours of data collected by a Thales DG16 receiver. The figureshows horizontal positions in meters as computed from raw pseudor-anges (black) and from DGC EGNOS implemented correct ing code (red)
-
8/11/2019 Easy Suite 2
13/23www.insidegnss.com S E P T E M B E R / O C T O B E R 2 0 0 9 InsideGNSS 65
ypical values are: HPL = 15 and VPL = 6. Te EGNOSdocument also introduces its own non-precise HPL value,which is 1.03 times larger than the HPL used here. Everythingis implemented in easy141.
Contemporary positioning theory uses the ollowing ourconcepts that enter into almost every aviation specification
accuracy, integrity, continuity,and availability.Te first concept, accuracy, fits our intuition well as it mea-
sures the difference between the (corrected) computed positionand the true position. An SBAS implementation is obliged toquantiy the accuracy o a wide-area differentially correctedposition solution. Accuracy may be estimated by the differencebetween a receiver position and the true position which, orCEP 95%, is only exceeded 5 percent o the time in the absenceo system ailures.
Integrity risk is defined as the probability that the SBASexceeds either the horizontal or vertical alert limits (HALs orVALs) andthe system alert is silent beyond the time-to-alarm.
EGNOS has been designed or a six-second time-to-alarm.Continuity and availability are expressed in global terms.
I a user experiences a system outage due to signal blockage,rom a global perspective this is not a loss in continuity o thesystem it is a local phenomenon.
Clearly, we need to distinguish between issues related toavailability and continuity and what is availability o the systemrom a users perspective.
A sophisticated plot was developed at Stanord University in1998. Te histogram o Figure 5reports the horizontal systemmetrics provided by an EGNOS implementation done at DGCor at static user at Aalborg.
Te EGNOS concept only involves an alert limit a. Know-ing the value o awe can draw a hal line rom origin through
(a,a)which partly limits the white area in which the attractivebins must lie!
Te horizontal axis indicates the error in theSBAS navigation solution with respect to the surveyed antennalocation. Te vertical axis indicates the protection level com-
puted or each and every position solution.Each bin tabulates the number o occurrences o a specific
pair (x,y)= (error, protection level), and the color indicates thetotal number o epochs in which that pair occurs. Note thatthe color scale is logarithmic and the bins are quantized into0.25-meter squares.
In case the HPL is larger than the alarm limit a, we experi-ence an integrity ailure. Te true error should always be lessthan the HPL. Te long-term availability requirement o theSBAS is 99.9 percent and, hence, at least 999 out o 1,000 pointsshould lie within the Normal Operation (USE) region.
In the Figure 5 results, the system maintained 99.7 per-
cent availability in horizontal positioning and the system wasunavailable in 49 epochs out o 15,129 that is 0.3 percent; notethat (99.7 + 0.3) % = 100%.
Availability can only be associated with geostationary satel-lites. For users employing the Internet to obtain the EGNOSinormation, everything changes. In the present study we useEMS and not the real-time service SISNe.
Figure 6(on page 72) shows the vertical system perormancecorresponding to the horizontal data presented previously. TeSBAS correction in the vertical dimension has poorer peror-mance than the horizontal due to its weaker geometry; the alertlimits are a= 12, 20 meters. Te 12-meter level corresponds to
Category I landing and the 20-meter level to instrument preci-sion with vertical guidance (IPV). In this scenario, the position-ing system met all three saety metrics (accuracy, integrity, andcontinuity) with an availability o 99.061 percent.
AcknowledgmentKostas Dragnas added several changes to the original M-files vplstat and hplstat written by odd Walter o StanordUniversity. he iles are included in the Easy Suite II iles(see Additional Resources) with the permission o StanordUniversity. Users also need the bound2 file in the downloaddirectory.
ManufacturersTe data in easy14 was generated using a Tales DG 16 GPSreceiver, rom Magellan Navigation S.A.S., Santa Clara, Cali-ornia, USA.
Additional ResourcesThe original Easy Suite can be found online at . The complete set of Easy Suite II Matlab codes can be found in com-
pressed (zipped) files at .
RTCA, Inc. (formerly Radio Technical Commission for Aeronautics), RTCA/DO-
229C, Minimum Operational Performance Standards for Global Positioning
System/Wide Area Augmentation System Airborne Equipment,2001
50
40
30
20
10
0
HPLEGNOS
[m]
102
101
100
Numberofpointsp
erpixel
0 10 20 30 40 50
Error [m]
Horizontal Performance [15129 seconds]
FIGURE 5 Positions depicted in Figure 3 are plotted versus horizontalprotection levels. Integrity fails in the region marked HMI, hazardouslymisleading information. In the upper area marked MI, integrity fails andthe system is unavailable. HPL failures happen in the lower area markedMI. In short: USEpositions depicted in the white area, DO NOT USEposi-tions depicted in colored areas
GPS EASY Suite IIcontinued on page 72
-
8/11/2019 Easy Suite 2
14/2366 InsideGNSS S E P T E M B E R / O C T O B E R 2 0 0 9 www.insidegnss.com
Strang, G., and K. Borre,Linear Algebra, Geodesy, and GPS,Wellesley-Cam-
bridge Press, Wellesley, Massachusetts USA, 1997
Corrections to easy13
In the EASY Suite II installment in the July/August 2009 issue of Inside GNSS,in Figures 1 and 4, the expression protection level should have been pro-
tection level a.
In easy13.m the Matlab code is missing the F matrix (the transformation matrix
from ECEF to ENU) in the expression for M. Hence the alpha values and HPL
are wrong. Consequently Figure 3 is valid for xXY
and not xEN
as stated on
the vertical axis.
On page 49 of the article in the paragraph following equation (10), Mo=
M(1:2,1:2) should be Mo= M(1:2,:).
AuthorOriginally graduated as a chartered surveyor, Kai Borre
obtained his Ph.D. in geodesy from Copenhagen Uni-versity, and a Doctor of Technology degree from Graz
University of Technology. He has been a full profes-
sor in geodesy at Aalborg University since 1976.
For more than 30 years Borre has conducted
research and performed education in the area of
satellite based positioning. In 1996 he established the Danish GPS Center
and since 2000 has been head of a two-year international M.Sc. program in
GPS technology.
Borre is a coauthor of the widely used textbooks, Linear Algebra, Geodesy,
and GPSandA Software-Defined GPSandGalileo Receiver; Single-Frequency
Approach.
Since the early 1990s Borre has published Matlab code for processing of
GPS observations, and since 2003 he published Matlab code together withexplanatory text, a very successful new pedagogical concept.
EASY SUITE II
25
20
15
10
5
0
VPLEGNOS
[m]
102
101
100
Numberofpointsp
erpixel
0 5 10 15 20 25
Error [m]
Vertical Performance [15129 seconds]
FIGURE 6 Positions depicted in Figure 10 are plotted versus vertical pro-tection levels. Integrity failures happen in the areas marked HMI. The20 m level corresponds to Instrument Precision with Vertical guidance(IPV). Cat I Oper. corresponds to horizontal and vertical accuracies forprecision landing for Category I (decision height 200 feet). The lowerand middle regions marked MI designate VPL failures. In the upperregion marked MI integrity and unavailability overlap
GPS EASY Suite IIcontinued from page 65
-
8/11/2019 Easy Suite 2
15/2350 InsideGNSS J A N U A R Y / F E B R U A R Y 2 0 1 0 www.insidegnss.com
Arequently asked question about GPS is: How accurateis a GPS-based position? Te experienced GPS userknows that a big difference lies between using pseu-doranges alone or combining pseudoranges and carrier
phases.Te ollowing analysis is partly based on an idea raised in
the book, Global Positioning System: Signals, Measurements,and Performance,by P. Misra and Per Enge (See AdditionalResources section at the end o this article).
In order to get a quantitative answer to the question Kos-tas Dragnas, a research assistant at the Danish GPS Center
and now an Aalborg University Ph.D. student, recorded datasimultaneously with a master and a rover receiver. In order to
vary the receiver equipment, we used two dual-requency L1/L2GPS receivers that were different rom the models employedin previous EASY Suite field campaigns. Tese receivers storedata in a binary ormat called the GPS Receiver Interace Lan-guage (GRIL).
Te ollowing message was sent to the receivers beore start-ing the observation session: dm
em,,/msg/jps/GT,SI,R1,P1,R2,P2ime o start was 481,860 seconds and the final epoch was at
484,395 seconds; so, 2,535 synchronous epochs o observationswere recorded with a one-second epoch interval. We deleted 95
epochs because o missing data at either the rover or the master,or repeated estimation o ambiguities. Tis makes a continuousrecord o about 40 minutes.
Te original observations were modified in several ways.Afer each ephemeris, the master receiver issued two subse-quent P2 (ull P/L2 carrier phases) messages (binary identi-cal), Subsequently, the rover receiver sometimes issued two GPSime (G) messages wnand tow (binary identical).
easy15 assumes data arriving in real-time rom the tworeceivers. In reality. we read rom two files, 19jan07m.log and19jan07r.log, containing a mixture o observations and eph-
emerides. Te baseline is about 1,509.3 meters long.Te actual reading o the log-files is done by the readGrilM
and readGrilRunctions. We are using two similar codes orreading in each log-file in order to avoid too much bookkeep-ing about where to read binary data in the iles. A typicalreading contains inormation on time o week, tracked satel-lites (identified by pseudorandom noise codes or PRNs), andobserved pseudorange and carrier phase on the two requen-cies.
Te reading is complicated by the act that new ephemeri-des may appear at any time in-between the observations. Teephemerides are stored in a global matrix, EPH. Any time a new
version o an ephemeris arrives, it overwrites the old one.As mentioned, we read rom two stored files; thereore, we
GPS EASY Suite IIeasy15Positioning Accuracy withPseudorange & Carrier Phase
In this continuing series, the author describes and demonstrates
the differences between position accuracy achieved using satellite-
receiver pseudoranges and differential pseudoranges compared
to the accuracy of carrier phaseaided positioning.
KAI BORREAALBORG UNIVERSITY
ImageofGPSconstellatio
nbasedonpublicdomainfile
fromWikimediaCommon
s
-
8/11/2019 Easy Suite 2
16/23www.insidegnss.com J A N U A R Y/ F E B R U A R Y 2 0 1 0 InsideGNSS 51
first have to determine the first epoch common to both receiv-ers. Next, we determine the number o tracked PRNs at bothmaster and rover sites or which we know the ephemerides.
When the number o common PRNs is our or more, wecompute the master position using the recposRTKunction, and
all elevation angles as seen rom here. We delete low-elevationPRNs and select a reerence PRN. Next all observations arerearranged so that master and rover data match each other the sequence o PRNs in the master and rover receivers arelikely to be different. Ambiguities are estimated using ClydeGoads method as described in the text by G. Strang and K.Borre, page 490, cited in Additional Resources.
New PRNs most ofen rise at different epochs at the mas-ter and rover. Hence, we need to omit the observations romone receiver until the PRN appears with complete data at bothreceivers.
We repeat the computation o the master position with good
PRNs and find the ellipsoidal height hineeded or the latercomputation o tropospheric delay.We choose a Kalman filter where the state vectorxhas three
components, namely, the baseline components (x,y,z). We ini-tialize the covariance matrices or the vector o observations
e,k, or the system equations
,k, and or the state vector P
0|0.
Note: users should realize that a Kalman filter and its inno-vation vector may run smoothly and the baseline componentsmay still be wrong. A correct ambiguity estimation leads toexcellent estimates o the baseline components. Incorrectambiguity estimates definitely lead to incorrect estimates othe baseline components while the filter works intensively on
obtaining small innovations that try to push the baseline com-ponents to the correct values.Next we read one epoch o data in the master file and in the
rover file, prepare the double differenced observations, corrector tropospheric delays, and then set up the innovation vectorb-Ax. We update the filter, plot the result in an open figurewindow, and proceed to the next epoch.
his code is the closest we get to a real-time kinematic(RK) code without having two receivers connected directlyto the laptop computers com port. I the receivers/laptop con-figuration can be achieved, then a user may set up the portsusing the I/O acility. For one port the ollowing code reads a
data stream rom the receiver into the file legacy.tex:s = serial(COM2);s.OutputBufferSize = 512;s.InputBuffersize = 50000;fopen(s);s.BaudRate = 9600;set(s,TimeOut,1);s.RecordMode = index;s.RecordDetail = verbose;s.RecordName = legacy.tex;
Figure 1 illustrates two levels o positioning accuracy
obtained rom GPS in real-time with position errors rangingrom several meters to centimeters. Te norm o the position
error is plotted or observations taken at one-second intervalsover a period o about 42 minutes.
Te raw L1pseudorange position accuracy is typically a ewmeters. Access to concurrent pseudorange observations roma GPS master receiver (at a known location) does not reducethe errors significantly; possibly it eliminates some commontrends in the positions.
Finally, the ull potential o the observational data isexploited by including both pseudoranges and carrier phaseobservations to obtain position estimates at the centimeter-level or better.
Figure 2shows the variation over 42 minutes o master sta-tion coordinates as computed rom pseudoranges alone. ypi-cally, theXand Ycoordinates show a lesser variation than the
Zcoordinate (or Aalborg, Denmark).
FIGURE 1 A stand-alone position and a differential position based onpseudoranges alone have position errors of a few meters, while adding
carrier phase observations brings the position error down to the centi-meter-level or below.
FIGURE 2 Variation of master station coordinates during 42 minutes
Real-Time Position Estimates
Epochs [interval 1 s]
0 500 1000 1500 2000 2500
PositionError[
m]
102
101
100
10-1
10-2
10-3
10-4
Epochs [interval 1 s]
0 500 1000 1500 2000 2500
CoordinateError[m]
12
10
8
6
4
2
0
-2
-4
EASY Suite IIcontinued on page 65
-
8/11/2019 Easy Suite 2
17/2352 InsideGNSS J A N U A R Y / F E B R U A R Y 2 0 1 0 www.insidegnss.com
Manufacturer
Positioning data was gathered using two Legacy E GNSS receiv-ers rom Topcon Positioning Systems,Pleasanton, Caliornia,USA.
Additional Resources[1]Misra, P. and P. Enge, Global Positioning System: Signals, Measurements,
and Performance,2nd edition, Ganga-Jamuna Press, Lincoln, Massachusetts,
USA, 2006
[2]Strang, G. and K. Borre, Linear Algebra, Geodesy, and GPS,Wellesley-
Cambridge Press, Wellesley, Massachusetts, USA, 1997
Author
Originally graduated as a chartered surveyor, Kai Borre
obtained his Ph.D. in geodesy from Copenhagen Uni-
versity, and a Doctor of Technology degree from Graz
University of Technology. He has been a full profes-
sor in geodesy at Aalborg University since 1976. Formore than 30 years Borre has conducted research and
performed education in the area of satellite based
positioning. In 1996 he established the Danish GPS Center and since 2000 has
been head of a two-year international M.Sc. program in GPS technology.Borre
is a coauthor of the widely used textbooks, Linear Algebra, Geodesy, and GPS
and A Software-Defined GPSandGalileo Receiver; Single-Frequency
Approach. Since the early 1990s Borre has published Matlab code for process-
ing of GPS observations, and since 2003 he published Matlab code together
with explanatory text, a very successful new pedagogical concept.
EASY SUITE II
EASY Suite IIcontinued from page 51
-
8/11/2019 Easy Suite 2
18/2372 InsideGNSS J U N E 2 0 1 0 www.insidegnss.com
Newcomers ofen have difficulties imagining what thesatellite orbits actually look like.
We say that the constellation consists o some 30satellites orbiting in six different planes, all making
an angle with the Equator o 55 degrees and rotated 60 degreescompared to the previous plane. Figure 1shows the situation as
seen rom ar away in space, in what we call an inertialframe.However, things get less clear i the viewer is on the surace
o the rotating Earth. How do the trajectories then look?Very weird is how.Te situation is depicted in Figure 2.Here we use the so-called Earth Centered Earth Fixed
(ECEF) coordinate system. Te ECEF system is in a fixed rela-tionship with the rotating Earth. Tat is, a given physical point
on the surace maintains its coordinates over time, except orpossible movements o the crust.
Finally, Figure 3shows a curve made up o the sub-satellitepointso an arbitrary part o an orbit.
Te curve is the intersection between the surace o theEarth and the line segment between the satellite and the ori-gin. Tis sub-satellite curve runs within a symmetric belt onboth sides o equator and is limited by northern and southernlatitudes equal to the inclination angle o the orbit with theequator.
easy 18
Once I was teaching GPS to control engineers working withair traffic. A need came up or computing range and range rate
GPS EASY Suite IIeasy17Visualizing Satellite Orbitseasy18Computing Range and
Range Rate Corrections
In the final two installments in our series, the author describes what
GPS orbits would look like from various perspectives and explains how
to solve for range and range-rate corrections at a GPS base station.
KAI BORREAALBORG UNIVERSITY
ImageofGPSconstellationbasedonpublicdomainfile
fromWikimediaCommons
AuthorOriginally graduated as a chartered surveyor, Kai Borre
obtained his Ph.D. in geodesy from Copenhagen Uni-
versity, and a Doctor of Technology degree from Graz
University of Technology. He has been a full profes-
sor in geodesy at Aalborg University since 1976. For
more than 30 years Borre has conducted research and
performed education in the area of satellite based
positioning. In 1996 he established the Danish GPS Center and since 2000 has
been head of a two-year international M.Sc. program in GPS technology.Borre
is a coauthor of the widely used textbooks, Linear Algebra, Geodesy, and GPS
and A Software-Defined GPSandGalileo Receiver; Single-Frequency
Approach. Since the early 1990s Borre has published Matlab code for process-
ing of GPS observations, and since 2003 he published Matlab code togetherwith explanatory text, a very successful new pedagogical concept.
-
8/11/2019 Easy Suite 2
19/23www.insidegnss.com J U N E 2 0 1 0 InsideGNSS 73
corrections at a base station. Here is thesolution.
Letdenote the geometric distancebetween the satellite and the receiverantennas, dt
idenote the receiver clock
offset, dtkthe satellite clock offset, andTthe tropospheric delay. Ten the cor-rected range is computed as
* = + cdti- cdtk+ T
and the range correction as
d = * - Pobs
.
Figure 4shows range and range rate
corrections over 23 epochs using Sep-tember 4, 2001, data.
he receiver clock oset pos(4,:)varies between 1.13 105and 1.15 105
through the 23-second period o obser-vations.
AcknowledgementsTe help received or the EASY Suite IIseries rom Kostas Dragnas at the Dan-ish GPS Center is greatly acknowledged.His help includes the sky plot, the Stan-ord plots, and data collection duringwinter time.
My thanks also go to Proessor PerEnge or several invitations to stay at
Stanord Universitys Center or Posi-tion, Navigation, and ime. I appreciated
the wonderul acilities there, and all othe people I encountered. Tey showedso much kindness and helpulness, and
made my stays comortable.Finally I am very grateul to Steve
Hilla or his comprehensive help in con-verting the manuscript rom latex intoWord.
FIGURE 4 Range and range rate corrections as generated at a base station
4
3
2
1
0
-1
-2
-3
-4
-5
RangeCorrection[m]
0 10 20 30
Epochs [1 s]
1.5
1
0.5
0
-0.5
-1
-1.5
RangeRateCorrection[m/s]
0 10 20 30
Epochs [1 s]
FIGURE 1 Satellite orbits as seen in inertialframe
FIGURE 2 Satellite orbits as seen in Earth Cen-tered Earth Fixed frame
FIGURE 3 Sub-satellite points for a selectedsatellite
-
8/11/2019 Easy Suite 2
20/2322 InsideGNSS M A Y 2 0 1 0 www.insidegnss.com
W
ith a given GPS receiver you get a certain position-
ing accuracy. So, the first question you may ask is:can I do anything to improve it?
Te answer most ofen is: yes, go and buy a bet-ter receiver! Most ranging errors are determined by physics andyou can do little to improve the situation.
However, it is interesting to analyze the inormation youmay get rom a single one-way range, that is, a single set oobservables (P
1,
1, P
2,
2) related to an individual satellite seen
by a single dual-requency receiver. By so doing you also obtainan insight into the nature o the error sources the ones thatdo matter and the ones that can be modeled or eliminated.
From the ephemeris o the tracked satellite we can com-
pute the elevation angle, the ionospheric delay is estimablebecause the data originate rom a dual-requency receiver, thetropospheric delay is computed rom a standard model, andthe remaining errors we call multipatherrors.
Finally, we estimate the orbital errors by comparing satellitepositions computed rom broadcast and precise ephemerides.Te data sample illustrates these different error contributions
very well, their variation over time, and, thereore, their depen-dency on elevation angle.
We select a speciic one-way observation set that wasacquired at a station south o Aalborg on January 19, 2007.(Tis is rom the data set already used in easy15, published in
the January/February 2010 issue o Inside GNSS.) We investi-gated PRN14 in the ull session length, that is, about 42 min-
utes including the 95 epochs that we omitted in the easy15
discussion because o missing data at either the rover or themaster, or repeated estimation o ambiguities.
Te subplots in Figure 1depict the satellite elevationangle,which varies rom 18 to 33 degrees, and one-way errors in iono-sphere, troposphere, and multipath.
When dealing with the ionospheric delay I, we assume thatwe have both pseudorange and carrier phase observations onL
1and L
2at our disposal. We estimate the delay Iaccording to
the ollowing matrix equation:
As usual we define the constant = (f1/f
2)2= I
2/ I
1. First we
estimate the ambiguities on L1and L
2 N
1and N
2, respectively
as reals; incorrect values or N1and N
2just change the level
or I.Next we estimate Ialone as
For the tropospheric delay we use the Goad-Goodmanmodel. Te delay Tranges rom 7.4 m to 4.2 meters. I the sat-ellite passed zenith, the corresponding delay would have beenabout 2.5 meters.
Multipath describes the situation where signals comingrom the satellite propagate along several paths to the receiv-
GPS EASY Suite II easy16Comparing GPS Preciseand Broadcast Ephemerides
In this installment of the series, the author demonstrates Matlab code for
estimation of ionospheric delay, multipath, and ephemeris errors.
KAI BORREAALBORG UNIVERSITY
ImageofGPSconstellation
basedonpublicdomainfile
fromWikimediaCommons
-
8/11/2019 Easy Suite 2
21/23www.insidegnss.com M A Y 2 0 1 0 InsideGNSS 23
er antenna. Te main part o thesignal radiates directly rom thesatellite, but part o the signal isrelected rom suraces near thereceiver.
Multipath occurs when thesignal arrives at the antenna romthese relected suraces in addi-tion to the line-o-sight source.Te reflected signal is phase-shifedwith respect to the original trans-mission and appears as additivenoise at the antenna.
Multipath depends on satellitegeometry and the antenna environ-ment, which makes multipath diffi-cult to model. For long observation
periods 24 hours or more themultipath effects are partly reducedby averaging. However, observationperiods usually last or only a ewhours and ofen much less; this iswhy multipath is a problem.
Because the antenna locationsare different, the multipath signa-
FIGURE 1 One-way errors for PRN14
34
32
30
28
26
2422
20
18
16
Elevation
angle[]
0 500 1000 1500 2000 2500 3000
4.8
4.6
4.4
4.2
4.0
3.8
3.6
3.4
3.2
Ionospheric
delayI[m]
0 500 1000 1500 2000 2500 3000
8
7.5
7
6.5
6
5.55
4.5
4
Troposp
hericdealyT[m]
0 500 1000 1500 2000 2500 3000
5
4
3
2
1
01
-2
IMu
ltipathM[
m]
0 500 1000 1500 2000 2500 3000
Epochs [interval 1 s] Epochs [interval 1 s]
-
8/11/2019 Easy Suite 2
22/2324 InsideGNSS M A Y 2 0 1 0 www.insidegnss.com
ture at each antenna is unique and the error is not commonmode.
Let the geometrical distance between satellite and receiverbe, let Ibe the ionospheric delay, andMthe code multipathincluding receiver noise. Te pseudoranges observed on L
1and
L2or PRN14 may then be expressed as
Remaining errors are identified as multipath and receivernoise similarly or the phase observations:
Te multipaths m1and m
2on phase observations are so
small that we subsequently put mi= 0. We want to ind anexpression orM
1. We start by subtracting (5) rom (3):
or
and subtracting (6) rom (5) yields
or
We insert (9) into (7) and obtain
or
We can reasonably assume that E{M1}= 0. Te second term
on the lef side o (11) is a constant; so, it is possible to reduce
M1to such that E{ ]= 0:
Analogously, by exchanging subscripts, we have or themultipath on L
2:
For all epochs with all our observations P1, P
2,
1, and
2
available, we compute multipath according to Equation (12).In the present case, the average error is below two meters and
noisier at low satellite elevation angles. Te noisy character o theplot reflects the actual noise in any pseudorange observation.
EASY SUITE II
Finally we investigate the difference between precise andbroadcast ephemerides. Any file containing broadcast eph-emerides is specific to the site rom which the satellites weretracked. Tereore, we need to identiy the tracked satellites inthe time period during which we want to compare the preciseand broadcast ephemerides.
Tis can be done by inspecting the corresponding observa-tion file in the PRN14 navigation message and getting the dateand the seconds o the week; next we find the correspondingJulian Day Number (jd). We find an epoch (modulo 15 minutes)60 minutes ahead ojd, which is counted in unit o day. (Te
variablejdis a real number where the integer part is number owhole days and the decimal part is made up o hours, minutes,seconds and ractions o seconds all convert into ractions o aday). Finally the GPS week number is computed by the Matlabunction gps_time.
he precise ephemerides that we used can be ound at, the number 1410 beingthe GPS week number. Te file extracts to igr14105.sp3, whichcontains precise ephemerides or January 19, 2007, in the SP3ormat. Te IGS SP3 files typically contain satellite positions(X,Y,Z) and clock offsets or each satellite every 15 minutes,rom 0:00 hours to 23:45. (Te SP3 file starts with some header
lines, which or our purposes we can skip.)We read precise orbits or the interpolation period plus three
times 15 minutes ahead o the observation period and threetimes 15 minutes afer the period, i.e., 13:15 hours, 13:30 hours,... , 15:15 hours in total nine sets. Te precise coordinates orall tracked satellites are stored in the matrixXp.
In the ollowing discussion, we introduce a time scale withunits o 15 minutes. We could have chosen whole minutesinstead. Te first observation is rom 13.85 hours, and the lastobservation is taken at 14.55 hours. Te entire observation peri-od is 2,535 seconds = 42.25 minutes = 2.8 quarters o an hour.
A Lagrange interpolation, one or each coordinate, o at least
seventh order is used to compute the actual position. Te Mat-lab unction intp does an (n 1)th order polynomial Lagrange
FIGURE 2 Difference in meters between precise and broadcast eph-emerides for PRN14 for individual vector components (X, Y, Z). Norm ofdifference vector marked by stars
0 5 10 15 20 25 30 35 40 4510
5
0
5
10
15
Time [minutes]
Differencebetweenbroadc
astandpreciseephemerides
Vectorcomponen
ts(X,Y,Z)[m]
Normo
fdifferencevector
markedbybluestars[m]
X
Y
Z
|| ||
-
8/11/2019 Easy Suite 2
23/23
Author
Originally graduated as a chartered surveyor, Kai Borre
obtained his Ph.D. in geodesy from Copenhagen
University, and a Doctor of Technology degree from
Graz University of Technology. He has been a full
professor in geodesy at Aalborg University, Den-mark, since 1976.
For more than 30 years Borre has conducted
research and taught in the area of satellite-based positioning. In 1996 he
established the Danish GPS Center and since 2000 has been head of a two-year
international M.Sc. program in GPS technology.
Borre is a coauthor of the widely used textbooks, Linear Algebra, Geodesy,
and GPSandA Software-Defined GPSandGalileo Receiver; Single-Frequency
Approach.
Since the early 1990s, Borre has published Matlab code for processing of GPS
observations. Since 2003 he has published Matlab code together with explana-
tory text, a successful new pedagogical concept.
interpolation. Letybe an n 1vector o data given at the dis-crete times x, (xis as well an n 1vector), (See the relevantdiscussion inMatrix Analysisby R. A. Horn and C. R. Johnson,Volume 1, pages 2930, cited in Additional Resources at theend o this article.)
We want an interpolated precise position each minute;hence, we divide by 15 to keep units in quarters o an hour.Te first parameter in the intp procedure describes the abscis-sae or the points at which we know the satellite coordinates.Te second parameter contains these coordinates, and the thirdparameter describes the point set at which we want interpolated
values all in units o quarter o an hour. Each coordinate isinterpolated separately!
Figure 2shows the difference in satellite position as com-puted rom broadcast ephemerides given via the navigationfile, and the postprocessed satellite positions or PRN14. Whencomparing with broadcast ephemerides we assume the precisepositions to be the true ones.
Te actual influence o the orbit error on the receiver posi-tion is given by the projection o the difference vector onto theline between the receiver and satellite. Let vector bbe the di-erence vector between the satellite positions computed romthe broadcast and the precise ephemerides, and ato be the vec-
tor between the receiver and the satellite position as computedrom broadcast ephemerides. Ten the projected difference
vectorponto vector ais given as
Figure 3shows vectorpor PRN14. Te computed ephemeriserror varies in the range o 2 meters. Te discontinuities inthe error reflect the routine ephemeris updates at two-hourintervals.
Additional Resources
Horn R A and C R Johnson Matrix Analysis Cambridge University Press
FIGURE 3 Length of difference vector between precise and broadcastephemerides as projected onto the line of sight
0 5 10 15 20 25 30 35 40 451.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
Time [minutes]
Differenceinradialdirection
betweenbroadcastandpreciseephemerides[m]