343
1 INTRODUCTION
ThetermGlobal Navigation SatelliteSystem(GNSS)
referstosatellitebasedglobalpositioningsystemthat
is used to provide autonomous geospatial
positioning [1]. The system allows tiny electronic
receivers to determine their absolute position
(longitude, latitude and altitude) anywhere on the
globe.NAVSTARGlobalPositioningSystem(GPS)is
thefirstGNSStha
twasdevelopedtoprovideprecise
location, based on data transmitted from a
constellationof30+satellites[2].Userscandetermine
theircoordinatesbyreceivingrangeinformation(and
otherobservables,ifrequired)fromatleastfourGPS
satellites.AGPSreceiverisusednotonlyforposition
det
ermination but also for other purposes like
navigation, attitude determination and relative
positioningofvehicles [3] etc. Othersimilar systems
are Russian GLObal NAvigation Satellite System
(GLONASS), European Union Galileo and Chinese
Beidou [1]. The latter two are still in deployment
phase. A GNSS can generally be used under all
weathercondit
ions[4].
GPS signal contains a pseudorandom code,
broadcast ephemeris and almanac data [2]. The
pseudorandom code identifies which satellite is
transmitting.Ephemerisisdescriptionofthesatellite
orbits and clock correction parameters which vary
over the time. This data is transmitted by each
satellite and contains information like status of the
sat
ellite (healthy or unhealthy), current time/date,
Ionospheric correction parameters, Keplerian orbital
parameters and satellite clock corrections etc. Each
satellitebroadcastsonlyitsownephemerisdata.This
data is used to compute the coordinates of GPS
satellites,which are subsequently used to determine
the receiver coordinates. The ephemeris ma
y be
broadcast(projectedaheadintotime)orprecise(post
fitted). The orbital positions sent in the navigation
A Matlab Implementation of Differential GPS for
Low-cost GPS Receivers
Q.Ali&S.Montenegro
University of Wuerzburg, Germany
ABSTRACT:A
number of public codes exist for GPS positioning and baseline determination in off-line mode. Howeve
r
,
no software code exists for DGPS exploiting correction factors at base stations, without relying on double difference
information. In order to accomplish it, a methodology is introduced in MATLAB environment for DGPS using C/A
pseudoranges on single frequency L1 only to make it feasible for low-cost GPS receivers. Our base station is at accurately
surveyed reference point. Pseudoranges and geometric ranges are compared at base station to compute the correction
factors. These correction factors are then handed over to rover for all valid satellites observed during an epoch. The rover
takes it into account for its own true position determination for corresponding epoch. In order to validate the proposed
algorithm, our rover is also placed at a pre-determined location. The proposed code is an appropriate and simple to use tool
for post-processing of GPS raw data for accurate position determination of a rover e.g. Unmanned Aerial Vehicle during
post-mission analysis.
http://www.transnav.eu
the International Journal
on Marine Navigation
and Safety of Sea Transportation
Volume 8
Number 3
September 2014
DOI:10.12716/1001.08.03.03
344
message are based on the predicted position of the
satellite, and are updated every two hours by the
groundcontrol[5].AsGPSsatellitestravelataspeed
ofapprox.4km/sec[6]sotheytravelalmost29,000km
between orbit updates. In order of ascending
accuracy, the ultrarapid orbits
are available after
approx.6hours,therapidorbitsareavailableafter13
hoursandthefinalpostfitpreciseorbitsareavailable
after about 10 days on International GNSS Service
(IGS) website [7]. The almanac data are a reduced
precision subset of the clock and ephemeris
parameters;andare
updatedbytheControlStationat
leastonceevery6days[8].
The GPS navigation solution determines the 3D
coordinates and clock offset of a GPS receiver using
the pseudorange measurements ofat least four GPS
satellites.Theequationslinkingthepseudorangesand
thereceivercoordinatesarenonlinear.Directsolution
of
thesenonlinearequations ispossibleanddifferent
solutionshavebeendescribedintheliterature[9].The
widely used alternative is to linearize the
pseudorange equations and to use the tool of linear
algebraforpositiondetermination.
GPS observations include four fundamental
quantities i.e. time, pseudorange, carrier phase and
Doppler. Using
these observables, a typical GPS
receiverisabletodeterminethepositionandvelocity.
Further processing of data gives heading, attitude
information and relative position. However these
observables are corrupted by the biases and noises
therebyleadingtopositioninginaccuracy.Inorderto
remove these errors, Differential GPS (DGPS)
techniquewas
developed.Itimprovestheaccuracyof
coordinates of a GPS receiver (usually a rover)
applying some correction methodology. The
technique is of utmost importance for many
applications, like photogrammetry, requiring
informationoftruecoordinatesofacameracarrying
vehicle. To accurately georeference the data, it is
importanttoknow
theexactpositionandattitudeof
the vehicle when a measurement or a picture was
taken [10]. Depending on the requirements of a
particularapplication,thepositionofthevehicleoften
needs to be known with a precision down to the
decimeterlevel or even centimeterlevel. Such
demands can be
met for e.g. by applying the DGPS
technique.
Differential GPStechniques are well documented
andanumberofcodesexistforitsrealizationinoff
line mode. A wellknown open source software is
’rtklib’ developed in C language [11]. A remarkable
contribution is the set of MATLAB codes developed
by Kai Borre [12]. It is quite comprehensive suite to
visualize a number of GPS working principles. This
set ofcodes is tailored to the Receiver INdependent
EXchange (RINEX) files provided with the suite.
Anotherkeydevelopmentis’goGPSProject’[13].Itis
basicallya software library designed to improve the
positioningaccuracy.AnothercontributionisbyWen
ZhengwhopostprocessedGPSrawdatafromRINEX
fileswithMATLABcodesforsinglepointpositioning
[14] and base line estimation using dual frequency
receiver [15]. Algorithms for position determination
and relative positioning stated in ’GPS Theory and
Practice’byB.Hofmann
Wellenhof[2],andInterface
Control Document ISGPS200F [8] formed the basis
for almost all of these codes. An open source
MATLABcodeforsinglepointpositioningdeveloped
byMichaelGaeb[16]iswellstructuredandsamewas
extendedtodevelopthepresentalgorithmforDGPS.
Although some public MATLAB
codes are already
availableforpositioningusingRINEXfiles.However,
DGPSimplementationinofflinemodeusingcorrection
factors for determination of rover ‘true’ coordinates
without using double differences is not seen in
literature, as per the knowledge of author. Main
contribution of this study is the development of a
simple
touseDGPSalgorithmusingcorrectionfactors
computed at base station in postprocessing mode
exploiting Course Acquisition (C/A) code on single
frequency(L1signals)tomakeitpracticableforlow
costGPSreceivers.
Further description of the paper is organized as
follows.InSection2, we firstprovidea
synopsisfor
GPS errors and then discuss different DGPS
techniquestoremovetheseerrors.InSection3,abrief
introduction to RINEX format files is provided.
Section 4 describes in details all aspects of software
codeforDGPSandmathematicalmodelforcorrection
factors. Simulation results of data processing with
and
without DGPS implementation are also shown.
Finally, in Section 5 conclusions are provided and
futureworkisproposed.
2 DIFFERENTIALGPSTECHNIQUES
GPS measurements consist of biases and noises that
affect the positioning accuracy. In order to improve
theGPSpositioningsolution,itentailstoknowthese
errors and the
methods to remove them. DGPS is a
technique that improves the solution accuracy while
removingtheseerrors.Itwas developed tomeetthe
needs of positioning and distance measuring
applications that required higher accuracies than
standaloneStandardPositioningService(SPS).DGPS
canbeconsideredasacalibrationmethodwherethe
calibrationstandardisestablishedatthebasestation.
2.1 GPSErrorSources
Major sources of error that affect the accuracy of
standalone GPS receiver include ephemeris errors,
atmospheric errors (including Ionospheric and
Tropospheric propagation delays), satellite and
receiver clock errors, Dilution of Precision (DOP),
receivernoiseandmultipatherrors.
Ephemeriserrors
are largely diminished by differential corrections.
Ionosphericerrors can be remedied either with dual
frequency (L1/L2), or with proper mathematical
modelling like Klobuchar model. Double difference
informationalso caters fortheseerrors.Troposphere
affects the two frequencies equally, however their
effects can be fixed by Hopfield model. When base
station and rover are close enough, satellite signals
passthroughalmostsameatmosphericconditions,so
ionosphere and troposphere errors are almost
identicalandcanbeeffectivelycancelledwithDGPS
technique. Satellite clock errors are due to
asynchronizationbetweensatelliteclockandreceiver
clock.TheseincludeSatelliteVehicle(SV)clockoffset,
clock drift and clock drift rate. It can be corrected
using the polynomial coefficients af
0, af1 and af2
345
transmittedinnavigationmessage.Thiserror canbe
effectivelycompensatedasperthealgorithmdefined
in [8]. Receiver clock drift is usually treated as an
extra parameter and corrected in the standard
solution.Furthermore,itdoesnotsignificantlyaddto
differentialerrors.
How precisely a GPS receiver can measure the
pseudorange and carrier phase largely depends on
how much noise accompanies the signals in the
receiver’strackingloops.Thisnoiseeithercomesfrom
the receiver electronics itself or is picked up by the
receiver’s antenna [17]. Multipath error is site
dependent and varies significantly as the site
conditions change. This
type of error cannot be
modelled.Multipathandreceivernoiseerrorscannot
be corrected by DGPS and hence leads to residual
errorsinDGPSmethods.
2.2 CorrectionMethodologies
SomeofthecorrectionmethodologiesincludePosition
Differential, Pseudo Range Differential, Carrier Phase
Differential,PrecisePointPositioning(PPP)andSatellite
BasedAugmentationSystem
(SBAS)etc.,eachtechnique
having its own merits and demerits. Most widely
used method is carrier phase Double Difference to
achieve high accuracy (centimeter level), but the
solution suffers from integer ambiguity and cycle
slips. Whenever a cycle slip occurs, it must be
correctedfor, and the integer ambiguity must
be re
calculated.
For our present study, we have implemented
pseudorangecorrectionmethodinofflinemode.With
thistechnique,areferencestationissetuptotrackall
satellitesinview,ensuringthatitwillseeatleastthe
four satellites that the roving receiver is using to
compute positions. This
station with exactly known
positionmeasuresthesignaltraveltimetoallvisible
GPS satellites and uses these values to calculate
pseudoranges. These measured values will typically
includeerrors.Sincetherealpositionofthereference
stationisknown,theactualdistance(nominalvalue)
toeachGPSsatellitecanbe
calculated.Thedifference
between geometric and measured ranges can be
calculatedbyasubtractioncalledascorrectionfactor.
These correction factors are different for all GPS
satellites and are even different for same satellite at
different epochs. Epoch is a moment when a
measurement is taken by a GPS receiver. These
correctionfactorsaresenttoroverreceiverforallthe
epochs using suitable media, in case of realtime
applications. Rover uses these factors to correct its
pseudorange measurements which are subsequently
usedtodetermineitsaccurateposition.Thecorrected
pseudorange at the moving receiver is corrupted by
onlytwo
errorsi.e.multipathandreceivernoise.
2.3 DGPSImplementationModes
DGPS data processing may be realized in following
twoways:
RealTime Processing; For navigation applications,
pseudorange corrections are needed in realtime
that can be transmitted to the user via a
communication link in Radio Technical
Commissionfor
MaritimeService(RTCM)SC104
standard format. This is the most common
techniquewherealargenumber of usersmay be
served in realtime. Although precision level of
real time applications is comparatively low,
however the technique is quite useful to confirm
thatatestisprogressingproperlyandalso
because
many applications require real time processing.
Howeverdatalatencyissuesaretobetakencareof
for such applications. SBAS systems like WAAS,
EGNOS and MSAS are all real time DGPS
applications.
Post Mission Processing; For off line processing,
GPS raw observations (pseudoranges, carrier
phase, Doppler and Signal
to Noise Ratio (SNR))
are stored by a rover receiver and then later
processedincombinationwithrawobservationsof
base station receiver stored for the same time
period.MostofthelowcostGPSreceiversarealso
abletoprovidetherawdata.Theadvantageofthe
postmission
solution over the realtime one is
beingmoreaccurateandreliable,becausetheuser
can detect data errors and analyse the residuals.
Alsoforsomeapplications,likephotogrammetry,
thecostandefforttomaintainarealtimedatalink
maybeunnecessary.Ontheotherhandthemain
disadvantage of
the postmission solution is that
theresultsarenotavailableimmediately.
2.4 DGPSAccuracy
Two levels of accuracy are achievable with DGPS,
meterlevelandcentimetrelevel.Meterlevelaccuracy
relieson C/A code datawhile centimeterlevel relies
oncarrierphasedata.ManyapplicationsofDGPSuse
C/A
code pseudorange as the only observable, with
achievedaccuraciesof1to5minrealtime[2].DGPS
notonlyincreasestheGPSpositioningaccuracy,but
also enhances GPS integrity by compensating for
anomalies in the satellite ranging signals and
navigation data message. If intermediate level
accuracy is required, the
SBAS services may be
exploited. A big advantage to use these services is
thatthesignalsaretransmittedonL1frequencyand
nodecoderisrequiredwhichmakethisserviceusable
for lowcost receivers. Performance of EGNOS, the
EuropeanSBAS,forOpenServiceintermsofaccuracy
is3m
lateraland4mvertical,whileitsavailabilityis
99% [18]. Typical applications of DGPS include
determinationofroveraccuratecoordinates,baseline,
attitudeandrelativenavigation.
3 RINEXFILES
Althoughreceiverscalculatepositionsinrealtime;in
manycasesitissuitabletostoreGPSobservablesfor
lateruse. RINEXisa
standardformatthatallowsthe
management of the observables generated by a
receiver, as well as their offline processing by a
number of applications. It is a set of standard
definitions to promote the free exchange of GNSS
dataandtofacilitatetheuseofdatafromanyGNSS
receiver with any post processing software package.
RINEX allows the user to postprocess the received
data in order to produce a more accurate solution,
usually with other data unknown to the original
346
receiver such as better models of the atmospheric
conditions at timeof measurement.Rover datamay
be used in combination with other data stored at a
basestation.RINEXformatisdesignedtoevolveover
time, adapting to new types of measurements and
newsatellitenavigationsystems.Itenablesstorage
of
rawmeasurementsforallGNSSalongwithdatafrom
SBASsimultaneously.
RINEX Files Classification; RINEX files are
classified into six categories as depicted in Table 1.
Forthisstudy,onlyfirsttwotypesoffileshavebeen
utilized.Infact,atleastthesetwofilesarerequiredto
completely
define the data in RINEX format. Each
observation file and each meteorological data file
containsthedatafromonesiteandonesession.Each
file type consists of a header section and a data
section. The header section contains global
information for the entire file and is pla ced at
beginning of
the file. The header section contains
headerlabelsincolumns6180foreachlinecontained
intheheadersection. Theselabelsaremandatoryand
must appear exactly as specified in [19] and [20].
There is no limitation for maximum length of
observationrecords.
Webrieflydescribethetwotypes
offilesusedfor
our study. RINEX observation file (data section)
typically includes number/ type of observations,
epoch time when the measurement was taken,
number of visible satellites, visible satellites ID
commonly referred as PseudoRandom Noise (PRN)
code,andnumericalvalueofobservables.ForDGPS
applications, we need to record
observation file
simultaneously at base station and at rover site.
RINEX navigation message file contains the broadcast
ephemeris data. This data is useful for a number of
functionslikecomputationofsatelliteclockerrorand
satellitescoordinatesetc.Ifdatafrommorethanone
receiver have to be exchanged, it
would not be
economicaltoincludetheidenticalsatellitemessages
collected by the different receivers several times.
Therefore the navigation message file from one
receivermaybeexchangedoracompositenavigation
message file may be created containing non
redundantinformationfromseveralreceiversinorder
tocontaincompleteinformationin
onefile.ForDGPS
with short baseline (till 10 km), one navigation file
collectedeitheratbasestationoratrovermayserve
the purpose. Every GNSS has its own navigation
messagedata.
Table1.ClassificationofRINEXfiles
_______________________________________________
SNoFileCategoryDescription
_______________________________________________
1 Observationdatafile Containsmeasurementdata
likeGPStime,pseudoranges,
carrierphase,DopplerandSNR
etc.
2 Navigationmessagefile ContainsGPSbroadcast
ephemerisdataand
Ionosphericparameters
3 Meteorologicaldatafile Containmeteorologicaldata
(ambientpressure,temperature
andhumidityetc.)forpost
processingwithhigh
accuracy
4 GLONASSnavigation ContainsGLONASSsatellites 
Messagefileephemerisdata
5 GEOnavigation ForWASS/EGNOS
messagefilegeostationarysatellites
6 Satelliteandreceiver Containsclockdata
clockdatafile
_______________________________________________
Conversion of GPS Binary Data to RINEX Format;
GPSbinarydatamaybeconvertedtoRINEXformat
using suitable software like ’teqc’ or ’rtklib’. Many
proprietary formats (like .ubx files of ublox GPS
receivers) may be converted to RINEX format using
suchsoftware.Careshould,however, beexercisedto
ensure that proper settings have been made on the
receiver to output both observation as well as
navigationdata.UsercanchoosetheRINEXversion,
as required, provided the software supports the
chosenversion.
4 DGPSSOFTWAREANDSIMULATIONRESULTS
DGPSdatahasbeenpostprocessedusingMathWorks
MATLAB
®
that facilitates matrices handling/
manipulation, as required for this study. DGPS
simulations have been performed with observations
collected at base station and a rover. Differential
correctionfactorscomputedatbasestationhavebeen
exploited for determination of rover accurate
coordinates.
Base station and rover coordinates have been
calculated with iterative
least square method using
pseudoranges from at least four SVs. If more than
four satellites are visible (as mostly is the case for
airbornevehicles orforGPSreceiversinopenarea),it
isrecommendednottoutilizethedatafromthenear
horizon satellites. As signals from these satellites
travel
comparatively longer distances through
atmosphere,soaremorepronetoatmosphericeffects.
Itisrecommendedtosettheelevationmasktoatleast
10° to eliminate the most noisy data (but not more
than 15° so that usable data is not lost). Spherical
coordinates of SVs are therefore computed for
determination of corresponding elevation angle. For
ourpresentstudy,wehavesetelevationmask to10°.
Astotaltransmittedpowerfromasatelliteislessthan
50 watts, so GPS signals are relatively weak.
Comparisonof SNR between satellites can show the
sourceofthecleanestdata.Itisimportant
touseonly
that data for computation that does not fall below
acceptableSNR(commonlysetas2030dB).Forour
study,thisthresholdissetto20dB.Basestationand
roverdonotseethe same setof satellites for all the
epochs.Mostofthetime,a
newsatelliteappears(or
disappears) at different epochs at base station and
rover. So we make a further criterion of common
satellitestoimprovethepositionaccuracyattherover
side.
For our study, TRIMBLE NETR5 GPS receiver
installed at the German State Survey SAtelliten
POSitionierungs dienst (SAPOS), Stuttgart was
treated as base station. Its GPS receiver antenna
coordinates are exactly known. While data from
Trimble NETR8 GPS receiver, positioned at Institute
ofNavigation, UniversityofStuttgartwastreated as
roverdata.Itscoordinatesarealsoaccuratelyknown.
With this arrangement, we can compare the rover
coordinates (determined by using correction
factors)
with those already known accurately, thereby
verifyingthe efficacy ofdevelopedalgorithm. Rover
coordinates have been computed with and without
applyingcorrectionfactorsforcomparisonpurpose.
AselfexplanatoryflowchartisshowninFigure1.
347
Figure1.FlowchartforDGPSimplementation
AMATLABscriptusingC/ApseudorangesonL1
frequencyforpositioningandvelocitycomputationof
GPS receiver was developed by Dipl.Ing. Michael
Gaeb [16]. This code was extended for DGPS
implementation in our study. The original code is
writtenwhiletakingintoconsiderationRINEXformat
2.11asinput files containing
GPSobservablesinthe
sequenceC1,L1,D1,S1,where,
C1:C/AcodepseudorangesonL1frequency(m)
L1:CarrierphaseonL1frequency(cycle)
D1:DoppleronL1frequency(Hz)
S1:SignaltonoiseratioonL1frequency(dBHz)
Main features of the code for DGPS
implementation
areasfollowing:
1 RINEXobservation files (recorded at base station
androver)andnavigation message file (recorded
ateitherlocation)canbeused.
2 Correction factors are computed at base station
and sent to rover for its accurate position
determination.
3 No atmospheric model has been used.
Atmospheric errors have
been catered through
correctionfactors.
4 The code provides solution for rover coordinates
withandwithoutDGPSforalltheepochs.
5 Numberofepochsforprocessingcanbeselected.
6 Total number of visible satellites and valid
satellites can be viewed for all the epochs.
CorrespondingPRNsarealso
observable.
7 DOP values for Geometric Dilution Of Precision
(GDOP), Position Dilution Of Precision (PDOP)
andTimeDilutionOfPrecision(TDOP)havebeen
calculated at rover. Effect of number of visible
validsatellitesonPDOPvalueshasbeenstudied.
8 Codehasbeenvalidatedwhileplacing a rover at
knownlocation.
Coordinatesdeterminedwiththe
code have been compared with the accurately
knowncoordinates.
9 Statistical results are computed for minimum
offset,maximumoffsetandmeanpositionalerror.
10 Results for position error in three axes Earth
Centered Earth Fixed (ECEF) as well as radial
differencehavebeenplotted.
4.1 Mathematical
ModelforCorrectionFactor(CF)
BeforedescribingthecomputationofCF,weneedto
precisely define the notion of pseudorange and
geometricrange.Pseudorangeisanindicativeoftravel
timeofsatellitesignals.Itisanoisyestimateofrange,
hence named as pseudorange. Pseudorange ρ is
definedas the
distance from the receiver antenna to
the satellite antenna including receiver and satellite
clock offsets (and other biases such as atmospheric
errors).Mathematically,itcanbeexpressedas:
ρ=r+c.(dt
r‐dt
s
+dT) (1)
whereristhegeometricrangebetweensatelliteand
receiver, dt
r is the receiver clock offset, dt
s
is the
satelliteclockoffset,cisthespeedofpropagationand
dTcorrespondstootherbiases.Pseudorangereflects
the actual behaviour of the receiver and satellite
clocks. It can be measured via code and/or carrier
phase,andisstoredinunitsofmeters.
Geometricrangeisthe‘true’
distancebetweentwo
points. If coordinates of satellite and receiver are
known,geometricrangerbetweenthese twopoints
canbeobtainedusingthefollowingformula:
r=√((X
s
‐Xr)
2
+(Y
s
‐Yr)
2
+(Z
s
‐Zr)
2
) (2)
where(X
s
,Y
s
,Z
s
)aresatellitecoordinatesand(Xr,Yr,
Z
r) are receiver coordinates in ECEF coordinate
system.TheCFatbasestationforanysatelliteinview
atepocht,iscomputedasfollowing[21]:
CF=rρ+(dt
r‐dt
s
+T)*c (3)
where,
r=Geometricrangebetweensatelliteandbasestation
receiver(determinedaspereq.(2))
ρ=Pseudorange(GPSobservablemeasuredbyreceiver)
dt
r = Receiver clock offset(estimated through GPS
navigationsolution)
dt
s
=Satelliteclockoffset(partofephemeristransmitted
byGPSsatellite)
T=Troposphericdelay(notusedinpresentalgorithm)
c=Speedofpropagation(aconstant)
These CFs are then handed over to rover for all
validsatellitesobservedduringeachepoch.Therover
takes it into account while
adding it to its observed
pseudorange for correction. Its position is then
computed based on the corrected pseudoranges.
Here, no atmospheric model has been used for
computation of base station and rover receiver
coordinates.Asatmosphericconditionsatbasestation
348
androversitearealmostidenticalforshortbaseline,
hencetheireffectsaremutuallycancelledout.Inother
words,atmosphericeffectsareincludedincorrection
factors. Corrected position at rover site is free from
atmosphericeffects.
4.2 Results
Correction factors computed at base station are
handed over to rover
to compute its own exact
coordinates for respective epochs. For simulation
purpose, the computation is repeated for 900
continuous epochs (15 minutes). For the sake of
comparison, rover coordinates are determined with
and without utilizing the correction factors. Results
areplottedinFigure2andFigure3.Herexaxis
(zero
vertical position) corresponds to true coordinates of
rover. Mean positional error from true position
without and with DGPS is 18.73m and 0.78m
respectively. Significant improvement in position
accuracyisobserved.
Figure2. Position error with and without DGPS in three
axes
Figure3.RadialpositionerrorwithandwithoutDGPS
To appreciate the results in 3D view,
correspondingplotforoneepochisshowninFigure
4.Itshowstherelativepositionsoftruecoordinates,
coordinates determined without DGPS and the
coordinatesdeterminedwithDGPS.Statisticalresults
forthesimulationareplacedinTable2.
Figure4.Relativepositionofroverforoneepoch
Table2.Statisticalresults
_______________________________________________
X(cm) Y(cm) Z(cm) Norm(cm)
_______________________________________________
MinimumError 0.01 0.10.15.3
MaximumError 214.4 93.4 193.0 258.9
MeanError55.1 23.4 36.6 77.8
_______________________________________________
We calculate GDOP, PDOP and TDOP values at
rover for 900 epochs with an elevation mask of 10°
withourcode.TheresultsareshowninFigure5.In
order to examine the effect of number of SVs on
PDOP values, we compute PDOP values under two
different elevation mask values,
so that different
numbersofSVsbecomevisible.First,wesetelevation
maskto30°and then to 5°.Correspondingplots are
shown in Figure 6 and Figure 7 respectively. We
notice that number of visible satellites increase with
decrease in elevation mask, and correspondingly
PDOP values decrease and hence
the smaller the
solutionerror.DOPvaluesincreasewithincreasesin
the elevation mask angle. DOP value multiplied by
measurement and other input errors, provides the
positionerror, some component of position error, or
timeerror[22].ThismeansthatwhentheDOPvalue
doubles, the positional error increases by a
factor of
two. Because various DOPs are only functions of
receiver and satellite coordinates, they may be
predictedaheadoftimeforanygivensetofsatellites
in view from a specified location using a satellite
almanac[23].
4.3 ReasonsforNotUsingDoubleDifferencesandDual
FrequencyinOur
Study
ForGNSSrealtimeandpostmissionapplications,the
receiverdatafromthebasestationmaybecombined
withthedatafromtheotherreceivertoformdouble
differenced observations, which is used for baseline
vector determination. We have not used double
differencesforthisstudyforthefollowingreasons:
1 For double differences, we need to transmit the
completerawdatafromrovertobasestationthat
is voluminous information consuming larger
bandwidth. After computing the double
differences at base station, we get the baseline
information.Withthisinformation,wecanobtain
therovertrueinformationthatcanbe
transmitted
totherover.Thisstrategyhastwoconsiderations;
349
first it requires more bandwidth and second it
necessitatestwowaytransmissionofinformation.
2 Errors due to receiver noise and multipath are
amplifieduptoa factoroftwo,intheworstcase
[24].
3 Notationsalsobecomeclutteredincaseofdouble
difference.
Figure5.DilutionofPrecisionvaluesatrover
Figure6.VisiblesatellitesandPDOPfor30°elevationmask
Figure7.VisiblesatellitesandPDOPforelevationmask
It may be mentioned that double difference
technique is suitable where rover true position
information is required at base station, while DGPS
technique with correction factors is appropriate in
scenarios where rover true position information is
requiredattherover.
High end professional receivers exploit both L1
and L2 frequency while
low cost GPS receivers rely
on single frequency L1. Encrypted P(Y) code is
transmittedonbothL1andL2,howeveraccesstoP
codeisprovidedinPrecisePositionService(PPS)that
is designed primarily for authorized users [25].
Without decryption keys, it is still possible to use a
codeless
technique to compare the P(Y) codes on L1
andL2 to gainmuch of the same error information.
However, this technique is slow, so it is currently
available only on specialized surveying equipment.
Alsoitislotmoreexpensivetobuild,mostlybecause
there is no highvolume consumer market for
these
chips[26].Thistechniqueisappropriateforgeodetic
applications but not for navigation purposes. As
ionosphericeffectscanbecancelledinabetterfashion
withdualfrequencyreceivers,sotheirperformanceis
better than single frequency receivers. However
following considerations are made for use of dual
frequencyreceiverson
smallplatformslikeMUAVs:
1 PcodeonL2frequencyisencryptedandreserved
forauthorizedusers.
2 Dual frequency receivers are quite expensive, at
least of the order of 40 than single frequency
receivers.
3 Dual frequency receivers necessitate dual band
antenna.
4 For real time DGPS applications using double
differences, dual frequency raw data would
require more bandwidth compared with single
frequencyrawdata.
Mostoftheothercodesdealwithdualfrequency
receivers, while this code is meant for single
frequency receiver (L1 only), that makes this study
useful for DGPS implementation with low cost and
tiny GPS
receivers like ublox and Skytraq etc.
However feasibility of using L2 frequency for better
performance may be explored while exploiting new
L2Csignals(freefromencryption)beingtransmitted
byGPSsatellitesblockIIRM.
4.4 TechnicalConstraints
This software may be used in situations where true
coordinates of rover are
of interest for postmission
analysis e.g. georeferencing for aerial photography.
GPS binary (or proprietary format) datarecorded at
base station and rover may be later converted to
RINEXformatandusedinconjunctionwiththiscode,
providedthefollowingconditionsaremet:
1 RINEXobservationfilesareversion
2.11.
2 GPSobservablesareinthesequenceof“C1L1D1
S1”inRINEXobservationfiles.
3 FirstepochisidenticalforRINEXobservationfiles
generatedfromthedatarecordedattwosites.
For points (1) and (2), measures can be taken to
conformto RINEX version and order of
observables
whileconvertingGPS binary (or proprietary format)
data to RINEX format. Open source software ’rtklib
version 2.4.2’ (April, 2013) allows to convert GPS
binary data directly to RINEX version 2.11. Also
RINEX files of other version (2.10/3.00 etc.) may be
converted todesired format (RINEX 2.11) using this
software
[11].SoRINEX2.11isnotreallyalimitation
ofthecode.Forpoint(3),appropriatechangesmaybe
madetoRINEXobservationfilesiffirstepochisnot
350
sameinboththefiles.’StartTime’and’EndTime’can
alsobeselectedusing’rtklib’toincludeonlythetime
ofinterestinresultantRINEXfiles.
5 CONCLUSIONS
In this study, DGPS positioning for rover is
accomplished in offline mode using RINEX files.
Correction factors have been exploited instead of
computingdoubledifferences.Allcomputationshave
beenperformedinMATLABusingC/AcodeandL1
frequency only to make the code compatible with
lowcostGPSreceivers.Almostall
errorfactorswhich
arecommontobasestationandrover(incaseofshort
baseline) are cancelled out. The residual errors are
duetomultipathreflectionsandreceivernoise.Itis
aneasytousetoolandisquiteflexibleforprocessing
of RINEX files. The code can reliably
be used to
improve the accuracy of the rover position in DGPS
modeforthescenarioswhererovertruecoordinates
are valuable like in case of aerial photography for
accurategeoreferencing.
In order to enhance the usage ofthis code, some
improvementsaresuggested;fore.g.thecodemaybe
modifiedtoreadandprocessGalileoGNSSdataand
its performance may be compared versus GPS. It is
envisagedthateasyavailabilityofGalileowouldplay
an important role in the development of many
systems. Code may be extended to read other
versionsofRINEXtoo(e.g.version2.10and
3.00)and
may be improved to read the RINEX files with
diverse sequence of GPS observables. Carrier phase
measurements may also be used to improve
navigation solution. It is proposed to undertake a
feasibility study for setting up an indigenous local
reference station in the field using EGNOS + PPP
services.
ACKNOWLEDGEMENTS
Scholarship to Qasim Ali was provided by Higher
Education Commission (HEC) Pakistan and
administeredbyDeutscherAkademischerAustausch
Dienst (DAAD) Germany. This publication was
funded by the German Research Foundation (DFG)
and the University of Wuerzburg in the funding
programmeOpenAccessPublishing.
LISTOFCONSTANTS
c = 2.99792458
x10
8
m/sec(Speedoflight)
L1= 1575.42 MHz (GPS L band primary carrier
frequency)
L2= 1227.60 MHz (GPS L band secondary carrier
frequency)
REFERENCES
[1]HofmannWellenhof, Bernhard, Herbert Lichtenegger,
and Elmar Wasle. GNSS–global navigation satellite
systems: GPS, GLONASS, Galileo, and more. Springer,
2007.
[2]B Hofmann, H Lichtenegger, and J Collins. GPS theory
andpractice.SpringerVerlag.Wien,NewYork,2001.
[3]Kaplan, Elliott D., and Christopher J. Hegarty, eds.
Understanding GPS: principles
and applications. Artech
house,2005.
[4]Rocken, Christian, Teresa Van Hove, and Randolph
Ware. ʺNear real
time GPS sensing of atmospheric water
vapor.ʺ Geophysical research letters 24.24 (1997): 3221
3224.
[5]Langley,R.B.,etal.ʺTheGPSbroadcastorbits:anaccuracy
analysis.ʺ 33rd COSPAR Scientific Assembly, Warsaw,
Poland(2000).
[6]Ashby, Neil. ʺRelativity in the global positioning system.ʺ
LivingRev.Relativity6.1(2003).
[7]NASA. International GNSS Service (IGS), 2014,
http://igscb.jpl.nasa.gov/.
[8]US Air Force. NAVSTAR GPS space segment/navigation
userinterfaces.InterfaceSpecificationISGPS200F,USAir
Force.
[9]AlfredKleusberg.AnalyticalGPSnavigationsolution.IFP,
page247,2003.
[10]Leyssens,Jan.ʺGNSSpositioning for UAV Applications.ʺ
International Symposium Light Weight
Unmanned
Aerial Vehicle Systems and Subsystems, Oostende
(Belgium),marzec.2009.
[11]TTakasu.RTKLIBver.2.4.2manual.
[12]Kai Borre. The GPS Easy Suite–Matlab code for the GPS
newcomer.GPSSolutions,7(1):47–51,2003.
[13]Eugenio Realini. goGPS Project: Open source positioning
software,August2009,http://www.gogpsproject.org/.
[14]WenZhang,Mounir
Ghogho,andL.EnriqueAguado.
GPSsinglepointpositioningandvelocitycomputation from
RINEXfilesunderMatlabenvironment.In13
th
IAINWorld
Congress,Stockholm,Sweden,October27302009.
[15]WenZhang, Mounir Ghogho, and L Enrique Aguado.
GPS shortdistance baseline estimation from RINEX files
under Matlab environment. In Proc. of the 13th IAIN
WorldCongressandExhibition,pages1–10,2009.
[16]Michael Gaeb. GNSS receiver, 2012,
http://www.gnssreceiver.de/projects.php.
[17]
Richard B Langley. GPS receiver system noise. GPS
world,8(6):40–45,1997.
[18]EuropeanSpaceAgency(ESA).EGNOS,February2012,
http://www.navipedia.net/index.php/EGNOSPerformances.
[19]Werner Gurtner. RINEX: The Receiver independent
exchangeformatversion2.10,10thDecember,2007.
[20]WGurtnerandLEstey.RINEX:Thereceiverindependent
exchangeformatversion2.11.
IGSCentralBureau,2009.
[21]Kai Borre. Easy Suite II: Easy17‐Visualizing satellite
orbits,Easy18Computingrangeandrangeratecorrections.
InsideGNSS,5(4):50–51,2010.
[22]JM Zogg. GPS compendium: Essentials of satellite
navigation,2009.
[23]Richard B Langley. Dilution of precision. GPS world,
10(5):52–59,1999.
[24]JGGarcía,PIMercader,andCHMuravchik.UseofGPS
carrier phase double differences. Latin American applied
research,35(2):115–120,2005.
[25]Richard B Langley. Why is the GPS signal so complex.
GPSworld,1(3):56–59,1990.
[26]RichardD
Fontana,WaiCheung,andTomStansell.The
modernizedL2civilsignal.GPSworld,12(9):28–35,2001.
