69
1 INTRODUCTION
Korean WADGNSS is a large scale research project
fundedbyMinistryofLand,TransportandMaritime
Affairs Korea [1] [2]. It aims to augment the Global
Navigation Satellite System [4] by broadca sting
additional signals from geostationary satellites and
providing differential correction messages and
integrity data for the GNSS sat
ellites. Korean WA
DGNSS uses a network of wide area reference
stations, wide area master station, ground earth
station,andgeostationarysatellites.
Wideareareferencestationsarewidelydispersed
GNSS data collection sites that monitor and process
satellitedatainordertodeterminesatelliteorbitand
clockdriftplusdelayscausedbytheat
mosphereand
ionosphere. This information is then transmitted to
wide area master station through terrestrial
communication network. Wide area master station
creates correction messages and broadcasts them
through geostationary satellites. The user segment
receivesthecorrectionmessagesandappliesthemin
ordertoimprovepositionaccuracyandreliabilit
y[5].
KoreanWADGNSSprojectisbeingcarriedoutby
a consortium of universities and research institutes.
The research team at Electronics and
TelecommunicationsResearchInstituteisinvolvedin
designanddevelopmentofdataprocessingsoftwares
for wide area reference station and user segments.
Thispaperfocusesonuser segmentsoftwaredesign.
The user segment software uses GPS data broa
dcast
fromeachGPSsatellitetodetermineitsposition and
WADGNSS corrections messages broadcast from
geostationary satellites to improve accuracy and
Korean WA-DGNSS User Segment Software Design
S.C.Shah,W.S.Choi&W.Y.Han
ICTConvergenceAutonomousResearchTeam,ElectronicsandTelecommunicationsResearchInstitute,Korea
H.Yun&C.Kee
M
echanical and Aerospace Engineering and Institute of Advanced Aerospace Technology, Seoul National
U
niversity,
Korea
ABSTRACT:KoreanWADGNSSisalargescaleresearchprojectfundedbyMinistryofLand,Transportand
MaritimeAffairsKorea.ItaimstoaugmenttheGlobalNavigationSatelliteSystembybroadcastingadditional
signalsfromgeostationarysatellitesandprovidingdifferentialcorrection messages andintegritydataforthe
GNSS satellites. The project is being carried out by a consortium of universities and research inst
itutes. The
researchteamatElectronicsandTelecommunicationsResearchInstituteisinvolvedindesignanddevelopment
of data processing softwares for wide area reference station and user segment. This paper focuses on user
segmentsoftwaredesign.KoreanWADGNSSusersegmentsoftwareisdesignedtoperformseveralfunct
ions
suchascalculationofpseudorange,ionosphereandtropospheredelays,applicationoffastandslowcorrection
messages,anddataverification.Itisbasedonalayeredarchitecturethatprovidesamodeltodevelopflexible
andreusable software and isdivided into several independent
, interchangeable and reusable components to
reducecomplexityandmaintenancecost.ThecurrentversionisdesignedtocollectandprocessGPSandWA
DGNSSdatahoweveritisflexibletoaccommodatefutureGNSSsystemssuchasGLONASSandGalileo.
http://www.transnav.eu
the International Journal
on Marine Navigation
and Safety of Sea Transportation
Volume 7
Number 1
March 2013
DOI:10.12716/1001.07.01.08
70
integrity. It is designed to perform several functions
such as calculation of pseudorange, ionosphere and
troposphere delays, application of fast and slow
corrections messages, integrity monitoring, data
verification,andperformancevisualization.
Figure1.KoreanWADGNSSArchitecture
The user segment software is based on a layered
architecturethatprovidesamodeltodevelopflexible
and reusable software and is divided into several
independent, interchangeable and reusable
components to reduce complexity and maintenance
cost. The current version is designed to collect and
process GPS and WADGNSS data however
it is
flexible to accommodate future global navigation
satellitesystemssuchasGLONASSandGalileo.
Figure2.UserSegmentSoftwareBlockDiagram
The rest of the paper is organized as follows.
Section 2 provides a high level overview of user
segment software architecture whereas Section 3
describes key data processing algorithms. The
detailed design of user segment software is given in
Section 4. Section 5 discusses the characteristics of
UserSegmentsoftwarewhile
Section6concludesthe
paper.
2 ARCHITECTUREDESIGN
A high level overview of user segment software
architecture is given in Figure 3. This section briefly
describes the key architectural elements. For a
detaileddescription, the readers are referred to User
SegmentSoftwareArchitecturedocument[6].
2.1 Descriptionofkeyarchitectural
elements
2.1.1 GPSEphemerisDataProcessor
This component determines the position of GPS
satellite with respect to user segment and applies
correctionsprovidedbyWADGNSS.Itaccessesdata
from GPS Ephemeris Data Handler, GPS Ephemeris
Data Quality Monitor and Slow Corrections Data
Processor, and provides an interface to SV Azimuth
and Elevation Calculator, GPS SV Clock Data
Processor,ReceiverPositionCalculator,andRawand
PreprocessedDataBuffer.
2.1.2 SlowCorrectionsDataProcessor
This component processes slow corrections
messages for GPS ephemeris and clock errors. It
accesses data from Slow Corrections Data Handler
and provides an interface to GPS Ephemeris
Data
Processor,GPSSVClockDataProcessorandRawand
PreprocessedDataBuffer.
2.1.3 IndependentDataVerifier
This component independently verifies the
integrityofactivedata.ItaccessesthedatafromData
Processors, Pseudorange Calculator and Receiver
Position Calculators, and provides an interface to
RawandPreprocessedDataBuffer.
2.1.4 GPSSVClockDataProcessor
ThiscomponentcalculatesSVclockcorrections.It
accessesthedatafromGPSSVDataHandler,GPSSV
DataQualityMonitor,GPSEphemerisDataProcessor
and Slow Corrections Data Processor, and provides
aninterfacetoPseudorangeCalculator.
3 DATAPROCESSINGALGORITHMS
Thissectiondescribesthe
keyalgorithmsrequired to
process fast and slow corrections messages. A
detailed description of data processing algorithms is
availableintheSBASUserSegmentSoftwareDetailed
Designdocument[7].
3.1 Algorithmtoprocessfastcorrections
IF(MessageType==0)
SystemTesting
IF(MessageType==1)
SavePRNmaskandIssueofDataPRN(IODP)
providedinMessage
IF(MessageType==25OR24)
IF(IODP
!
IODPprovidedinMessageType1)
Return
IF(UDREI==14ORUDREI==15) 
InitializeRRCcalculationandsetRRC=0
SetsatellitestatusandReturn
IF(PRCisnotvalid)Return
IF(precisionapproach)
IF(UDREI>=12)
Satellitestatus=“donotuse”and
Return
IF(
i
ai
==0)SetRRC=0
ELSE
Selectpreviouslyreceivedpseudorange
71
correctionPRCprevious
IF(IODFofPRC
current==3)
SelectPRC
previouswhichisclosestto
fc
I2
secondspriortothePRC
current
IF(IODF<3)
SelectmostrecentlytransmittedPRC
previous
Calculaterangeratecorrections
Calculatefastcorrections:
CheckRRCstatus
IF(RRCstatusisvalid)
Calculatefastcorrections
IF(MessageType==6)
IF(IODF
j==3)
IF(messageisnotvalid)Return
ELSE
DecodeandapplyUDREtocorrections
RecalculatePR
IF(IODF
j<3)
MatchIODF
jwithIODFjprovidedinMessage
Typej(25and24)
IF(notmatched)Return
IF(messageisnotvalid)Return
ELSE
DecodeandapplyUDREboundstocorrections
providedinMessageTypej
RecalculatePR
IF(MessageType==7)
IF(IODP!=IODPprovidedinMessage
Type1)
Return
ELSE
StoreUDREdegradationandtimeoutintervals
Figure3.UserSegmentSoftwareArchitecture
3.2 Algorithmtoapplyfastandslowcorrections
IntegrityCheck:
IF(UDREI==15)
SVisunhealthy
IF(UDREI==14ORSBASdatanotvalidORIOD! =IODE)
SVunmonitored
IF(Precisionapproachmode)
IF(UDREIinMessageTypes25and24>=12)
Donotusesatellite
IF(Precisionapproachmode)
IF(Anyofcorrectionmessages
aremissedAND
previouslyreceivedcorrectionsarevalid)
Applydegradationmodels[7]
Applyfast,ionospheric,troposphericandclock
corrections:

measured SBAS SBAS
PR PR FC IC TC CC

Applyslowcorrections:

corrected GPS
corrected GPS
corrected GPS
xx
x
yyy
z
zz











IF(CorrectionmessagesarenotmissedAND
previouslyreceivedcorrectionsareavailable)
Applyfastandslowcorrections[7]
ELSE
Precisionapproachnotpossible
Exit
72
IF(Nonprecisionapproachmode)
IF(Fastandslowcorrectionsareavailable)
Applyfastcorrections:
measured
PR PR FC CC
Applyslowcorrections:
corrected GPS
corrected GPS
corrected GPS
xx
x
yyy
z
zz











IF(SBASionosphericcorrectionsareavailable)
ApplySBASionosphericcorrections:
measured SBAS
PR PR FC IC CC
ELSEIF(GPSionosphericcorrectionsavailable)
ApplyGP
Sionosphericcorrections:
measured GPS
PR PR FC IC CC
ELSE
Donotapplyionosphericcorrections
IF(SBAStroposphericcorrectionsareavailable)
ApplySBAStroposphericcorrections:
measured SBAS SBAS
PR PR FC IC TC CC
ELSE
Donotapplytroposphericcorrections
ELSE
Donotus
etheSV
3.3 Algorithmtocalculatepseudorange
Pseudorange residual implies the remaining error
obtained after eliminating errors such as satellite
clockbias,ionosphericdelay,troposphericdelay,and
receiver clock error from the smoothed pseudorange
ofsatellitej.
Calculatedistancebetweenuserandsatellitej:
222
jjjj
D(xx)(yy)(zz)
(x,y,z)
Usersegmentcoordinates
jjj
(x , y ,z )
Satellitejcoordinates
CalculatePseudorange:
j j iono tropo sv p
PR D d d t B e
p
e
Measurementnoise
Bisreceiverclockerror
SmoothPseudorange:
M
jC1
i1
1
SPR PR
M
C1
PR
isavailablefromnavigationmessage
Mismovingaveragepoints
CalculatePseudorangeResiduals:
j j j iono tropo sv
PRR SPR D d d t B

Figure4.ClassesofUserSegmentSoftware
4 CLASSDIAGRAMS
The class diagrams are used to describe the static
structureofasystem[3].Eachclassinaclassdiagram
has attributes, operations and the relationship with
other classes. The classes are represented by
rectangles which show the name of the class and
optionallythe nameof theoperations and a
ttributes.
Compartments are used to divide the class name,
attributesandoperations.
The classes used in WADGNSS User Segment
softwarearelistedinFigure4.Theclassesaredivided
intofivecategories,eachrepresentedwithadifferent
color. The classes in light red color are used to hold
raw and preprocessed data whereas classes in light
yellowcolorareusedtoholdcorrectionsdata.Classes
in light green and purple colors are data processing
classes tha
t are used to process raw GPS data and
WADGNSS corrections, respectively. The classes in
light blue color are used to pa
rse RINEX navigation
and observation files.The class diagramof raw GPS
data processing classes is depicted in Figure 5. A
detailed description of each class is specified in the
SBAS User Segment Software Detailed Design
document[7].
73
Figure5.ClassDiagramofGPSDataProcessingClasses
4.1 EphemerisDataClass
EphemerisData class is used to hold satellite orbit
parametersthatareusedtocalculatesatelliteposition
and velocity. It is also used to hold parameters for
calculating satellite clock corrections. For each
parameter, a property is defined that is used to
provide a flexible mechanism to read,
write, or
computethevalueofparameter.
4.2 RawPreproccssedDataBufferClass
A RawPreproccssedDataBuffer class is a container
class that is used to contain objects such as
ephemerisData, ionosphericData and observationSet.
It also provides methods for adding and removing
objectsaswellaswaystoiteratethroughthem.
4.3 FastCorrections
FastCorrections
class is used to hold fast corrections
datasuch aspseudorange corrections andrange rate
corrections which are used to remove pseudorange
errors. It also provides a mechanism to set and get
valueofeachfastcorrection.
4.4 EphemerisDataProcessorClass
EphemerisDataProcessor class is used to process
ephemerisdatainorder
todeterminesatelliteposition
andclockerrors.
4.5 FastCorrectionsProcessorClass
FastCorrectionsProcessorclassisusedtoprocess fast
corrections data in order to determine valid
pseudorangeandrangeratecorrections.
4.6 IonosphericDataProcessorClass
IonosphericDataProcessor class is used to process
ionospheric data and observation data in order to
determineionosphericcorrectionsforsingle
anddual
frequencyusers.
4.7 PseudorangeCalculatorClass
PseudorangeCalculator class is used to calculate
pseudorange and pseudorangeresiduals. The
calculated pseudorange includes corrections for
ionosphere,troposphereandsatelliteclockerrors.
74
5 USERSEGMENTSOFTWARE
CHARACTERSITICS
5.1 ModularSoftwareDesign
WADGNSS User Segment software is modular in
design. It is divided into several independent,
interchangeable and reusable components to reduce
complexity and maintenance cost. The components
canbeaddedorreplacedintousersegmentsoftware
without or with minimum affect
on the rest of the
components. The current software is designed to
collectandprocessGPSandSBASdatahoweveritis
flexibletoaccommodatefutureGNSSsystemssuchas
GLONASSandGalileo.
Thenewcomponentcanbeincorporatedintouser
segmentsoftwarethrough interfacesthat express the
elements that
are provided and required by the
component.Ifnewcomponentadherestointerface,it
can be added or replaced without affecting other
components.
5.2 LayeredArchitecture
A layer represents a group of related functionality.
Layered architecture provides a model to create
flexible and reusable software. The user segment
softwareisdivided
intodifferentlayerssuchasData
CollectionandData Processing where eachlayercan
beeasilyreplacedornewlayercanbeaddedwithout
orwithminimumaffectonotherlayers.
6 CONCLUSION
This paper describes the detailed design of Korean
WADGNSSUserSegmentsoftwareintermsofUML
architectural, activity and class diagrams. The user
segment software is designed to perform several
functions such as calculation of pseudorange,
ionosphere and troposphere delays, application of
fast and slow correction messages, and data
verification.Itisbased ona layered architectureand
adoptsamodularsoftwaredesignapproach.
ACKNOWLEDGEMENT
This research
was a part of the project titled “WA
DGNSS Development” funded by the Ministry of
Land,TransportandMaritimeAffairs,Korea.
REFERENCES
[1]Ho Yun, Changdon Kee, Doyoon Kim, Availability
PerformanceAnalysisofKoreanWideAreaDifferential
GNSSTestBed,theKoreaNavigationInstitute,Vol.15,
No4,Aug.2011
[2]Ho Yum, Changdon Kee, and Doyoon Kim, Korean
Wide Area Differential Global Positioning System
Development Status and Preliminary Test Results,
InternationalJournal
ofAeronauticalandSpaceScience,
Vol.12,No.3,2011,pp.225233
[3]Alan Dennis, Barbara Haley Wixom and David
Tegarden,SystemsAnalysisandDesignwithUML,4th
Edition,Wiley,February1,2012.
[4]RTCA SC159, Minimum Operational Performance
Standards for Global Positioning System/Wide Area
AugmentationSystemAirborne
Equipment,RTCA/DO
229C,November28,2001.
[5]FAA Document, Specification of the Wide Area
AugmentationSystem(WAAS),FAAE2892B,1999
[6]Sayed Chhattan Shah, Wan Sik Choi, Han Woo Yong,
Modular Software Architecture for Korean SBAS User
Segment,ElectronicsandTelecommunicationsResearch
Institute,ReportNo.606020120439,2012
[7]
Sayed Chhattan Shah, Wan Sik Choi, Han Woo Yong,
Detailed Design of Korean SBAS User Segment
Software,ElectronicsandTelecommunicationsResearch
Institute,ReportNo.60602012042,2012