+ All Categories
Home > Documents > Implementation of GNSS Signal Processing into the GNSS-SDR...

Implementation of GNSS Signal Processing into the GNSS-SDR...

Date post: 01-Aug-2020
Category:
Upload: others
View: 6 times
Download: 1 times
Share this document with a friend
29
Implementation of GNSS Signal Processing into the GNSS-SDR platform during GSoC 2017 Damian Miralles University of Colorado Boulder
Transcript
Page 1: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

Implementation of GNSS Signal Processing into the

GNSS-SDR platform during GSoC 2017

DamianMiralles

UniversityofColoradoBoulder

Page 2: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

Outline •  OverviewofGoogleSummerofCode(GSoC)

•  GSoC2017ediAon•  GNSS-SDR•  VOLK

•  Intrinsicdevelopment•  GNSS-SDRGLONASS

•  AcquisiAon•  Tracking•  Decoding•  NavigaAonSoluAon

•  Summary/FutureWork•  References

11/10/17

Page 3: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

Google Summer of Code

• GoogleSummerofCode(GSoC)isaglobalprogramfocusedonbringingmorestudentdevelopersintoopensourcesoSwaredevelopment*

•  StudentsworkwithanopensourceorganizaAonona3monthprogrammingprojectduringtheirsummer

•  13,000+students,104countries,12years,607opensourceorganizaAons

11/10/17

Page 4: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

Google Summer of Code 2017

•  CodingDates:May30th-August29th

•  1,318studentsacceptedfrom72countries

•  1,647mentorswithacAveprojectsfrom69countries

•  3,439registeredmentors•  198opensourceorganizaAons•  86.2%overallsuccessrate

11/10/17

Page 5: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

Outline •  OverviewofGoogleSummerofCode(GSoC)

•  GSoC2017ediAon•  GNSS-SDR•  VOLK

•  Intrinsicdevelopment•  GNSS-SDRGLONASS

•  AcquisiAon•  Tracking•  Decoding•  NavigaAonSoluAon

•  Summary/FutureWork•  References

11/10/17

Page 6: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GNSS-SDR

• GNSS-SDRisanopensourceprojectthatimplementsaglobalnavigaAonsatellitesystemsoSwaredefinedreceiverinC++*.

• GNSS-SDRproposesasoSwarearchitecturethatbuildsupontheGNURadioframeworkinordertoimplementitsreceiver

• GNSS-SDRisoneofthememberorganizaAonsofGSoC.Eachyeardefinessetofideaslisttobecompletedduringthesummer

•  UpdatedsomeoftheVOLKintrinsicforfasterprocessing•  AddedGLONASSprocessingtothepladorm

11/10/17

Page 7: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GNSS-SDR

11/10/17

•  SignalSource*blockthatinjectsaconAnuousstreamofrawsamplesofGNSSsignaltotheprocessingflowgraph

•  SignalCondi0oner*blockisinchargeofadapAngthesamplebitdepthtoadatatypetractableatthehostcomputerrunningthesoSwarereceiver.

•  DataTypeAdapterblockperformsaconversionofthedatatypeintheincomingsamplestream.

•  InputFilterblockfilterstheincomingsignal.•  ResamplerblockresamplesthesignalandtodeliverittotheNNparallelprocessingchannels.

Page 8: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GNSS-SDR

11/10/17

•  Channel*encapsulatesblocksforsignalacquisiAon,trackinganddatadecoding

•  Observables*block:collectsthesynchronizaAondatacomingfromalltheprocessingChannels,andcomputesfromthemtheGNSSbasicmeasurements.

•  PVT*block:computesnavigaAonsoluAonsanddeliverinformaAoninadequateformatsforfurtherprocessingordatarepresentaAon.

Page 9: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GNSS-SDR

•  Thecodedefinesinterfacesforthereceiver’sprocessingblocks

•  InterfacesallowstodefineseveralalgorithmandimplementaAonsforeachprocessingblock

• HierarchymodelsoffersmaximumflexibilityandreconfiguraAon

11/10/17

Page 10: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

Outline •  OverviewofGoogleSummerofCode(GSoC)

•  GSoC2017ediAon•  GNSS-SDR•  VOLK

•  Intrinsicdevelopment•  GNSS-SDRGLONASS

•  AcquisiAon•  Tracking•  Decoding•  NavigaAonSoluAon

•  Summary•  References

11/10/17 10

Page 11: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

VOLK Intrinsic

•  TheVector-OpAmizedLibraryofKernels(VOLK)*isafreelibrary,thatcontainskernelsofhand-wrijenSIMDcodefordifferentmathemaAcaloperaAons.

• HowdoesVOLKwork?•  Foreacharchitectureorpladormthatadeveloperwishestovectorizefor,anewproto-kernelisaddedtoVOLK.

•  AtrunAme,VOLKwillselectthecorrectandmostefficientproto-kernel.•  TheusersofVOLKcallakernelforperformingtheoperaAonthatispladorm/architectureagnosAc.

• GNSS-SDRcreatedaVOLKmodulethattargetscommonoperaAonsinGNSS-SDRtechnologies,i.ecorrelaAons.

11/10/17 11

Page 12: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

VOLK Intrinsic •  IntrinsicsInstrucAonsareCstylefuncAonsthatprovideaccesstomanyIntelinstrucAonswithouttheneedofassemblycode.

•  VOLKlibrarieswereinneedofsupportforthenewextensionslikeAVX2

•  Adds256bitregistersupportforintegeroperaAons

•  FusedMulAplyAdd(FMA)operaAons

• WorkfocusedontheaddiAonofnewprotokernelssupporAngthenewextensions.

•  BothGNSS-SDRandGNURadiocommunitywillbenefitfromthelatestaddiAon.

11/10/17 12

Technology Register Integers Floats Support

SSEn 128 Yes Yes

AVX 256 Yes(128) Yes

AVX2 256 Yes Yes ParAal

AVX512 512 Yes Yes

Page 13: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

VOLK Intrinsic

11/10/17 13

Page 14: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

VOLK Intrinsic

• Morethan15protokernelswhereupdated

•  ChangedmainlyfocusedinAVXandAVX2addiAon

• CumulaAveAmereducAonforupdatedkernelsof225ms

11/10/17 14

Page 15: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

Outline •  OverviewofGoogleSummerofCode(GSoC)

•  GSoC2017ediAon•  GNSS-SDR•  VOLK

•  Intrinsicdevelopment•  GNSS-SDRGLONASS

•  AcquisiAon•  Tracking•  Decoding•  NavigaAonSoluAon

•  Summary•  References

11/10/17 15

Page 16: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

16

GLONASS Constellation •  Threeorbitalplanesat64.8degreeinclinaAon(GPSusessixplanesat55degrees)

•  24satellites,8pereachplane•  MEO,~19100kmalAtude•  TheinclinaAonoftheorbitsisidealtoensuregoodcoverageofpolarlaAtudes

•  Eccentricityof~0•  Orbitalperiod=11hours15minand28sec

•  Groundtrackrepeatsevery7days,23hours,27minutesand28seconds

Asof11-Sept-2017:•  23satellitesinoperaAon•  1satellite(k=-5)inflighttest•  1satelliteundercheckby

contractor

Page 17: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GLONASS Time, Coordinate System & Freq. Plan

11/10/17 17

Page 18: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GLONASS Signal Plan Parameter GLONASSL1 GLONASSL2

ServiceName C/ACode C/ACode

CenterFrequency 1602MHz+k*562.5kHz

1246MHz+k*437.5kHz

AccessTechnique FDMA FDMA

SpreadingMod. BPSK BPSK

CodeFreq. 0.511MHz 0.511MHz

CodeLength 511 511

MeanderSequence

100Hz 100Hz

DataRate 50bps 50bps

Nav.Message GNAV GNAV

11/10/17 18

Page 19: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GLONASS L1 C/A Acquisition

• PCPSAcquisiAonbymeansofFFTimplemented

• GLONASSAcquisiAonloopsthroughfrequencychannels

•  Samerangingcodespreadthrough14frequencychannels

11/10/17 19

Page 20: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GLONASS L1 C/A Tracking

11/10/17 20

Page 21: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GLONASS L1 C/A Tracking

11/10/17 21

Page 22: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GLONASS L1 C/A Telemetry Decoding •  Symboltobitconversion

•  RelaAvedataratehappensat100Hz(meandersequence)

•  TransformaAonfrombi-binarytorelaAvecode•  TransformaAonfromrelaAvetodelayedcode

•  TransiAonfromfrequencychannel(K)tosatelliteslotnumber

•  IncoldstartapplicaAonsuserdoesnotknowslotnumberoftransmisngsatellite

•  DecodedGLONASSnavigaAonaldataorGNAVissharedamongL1andL2carrier

•  SingledecoderwillsufficeforbothimplementaAons,L1andL2

11/10/17 22

Page 23: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GLONASS L1 C/A Telemetry Decoding

11/10/17 23

Page 24: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GLONASS L1 C/A Observables

• DecodedGNAVparametersallowforGLONASSTtoGPSTconversion

• GLONASSObservablesAmetaggedinGPST

•  TimestandardtranslaAonenablesintegraAonwithotherconstellaAons

11/10/17 24

Page 25: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

GLONASS L1 C/A PVT • PosiAonSoluAonusingGLONASSL1onlymeasurements

• PosiAonSoluAonin‘Single’modeofoperaAon.SeeRTKLibdetails

•  Averageerrors~10m

11/10/17 25

Page 26: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

Outline •  OverviewofGoogleSummerofCode(GSoC)

•  GSoC2017ediAon•  GNSS-SDR•  VOLK

•  Intrinsicdevelopment•  GNSS-SDRGLONASS

•  AcquisiAon•  Tracking•  Decoding•  NavigaAonSoluAon

•  Summary/FutureWork•  References

11/10/17 26

Page 27: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

Summary/ Future Work

• AddsupportforIntelIntrinsicAVX512toVOLKanditsGNSS-SDRmodules

•  AVX512registersizeof512bitsoffertremendouspossibiliAesforspeedup•  ProcessorswillAVX512willhavemorecoresperCPUincreasingchanceoffuncAonalchannels

• CombineGLONASSL1C/AposiAonsoluAonwithexistentsignalsinthepladormlikeGPSL1,GalieloE1B,etc

• AddGLONASSL2C/AtoGNSS-SDR•  MinimalchangesintheaddiAonsinceGNAVmessageissharedinbothsignals

11/10/17 27

Page 28: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

References 1.  GoogleSummerofCode.2017.StaAsAcsofprogram.[ONLINE]Availableat:hjps://

summerofcode.withgoogle.com/.[Accessed5November2017].2.  GNSS-SDR:AnOpenSourceToolForResearchersandDevelopersProceedingsofthe24thInternaAonal

TechnicalMeeAngofTheSatelliteDivisionoftheInsAtuteofNavigaAon(IONGNSS2011),Portland,OR,Sep.2011,pp.780-794.

3.  GNSS-SDR.2017.SignalProcessingBlocks.[ONLINE]Availableat:hjp://gnss-sdr.org/docs/sp-blocks/.[Accessed5November2017].

4.  T.Rondeau,N.McCarthy,andT.O’Shea,“SIMDProgramminginGNURadio:MaintainableandUser-FriendlyAlgorithmOpAmizaAonwithVOLK,”inConferenceonCommunicaAonsTechnologiesandSoSwareDefinedRadio(SDR12).Brussels,Belgium:WirelessInnovaAonForumEurope,June2012.

5.  N.WestandD.Geiger,“AcceleraAngSoSwareRadioonARM:AddingNEONSupporttoVOLK”,pp1-35.6.  GNSS-SDR.2017.Tracking.[ONLINE]Availableat:hjp://gnss-sdr.org/docs/sp-blocks/tracking/.[Accessed

5November2017].

7.  C.Fernandez-Prades,J.ArribasandP.Closas.“AcceleraAngGNSSSoSwareReceivers”,Proceedingsofthe29thInternaAonalTechnicalMeeAngofTheSatelliteDivisionoftheInsAtuteofNavigaAon(IONGNSS+2016),Portland,OR,Sept.2016,pp.44-61.

8.  B.Dahlstrom,M.Liljeblad,M.Nilsson,andD.Sandberg,“DemodulaAonandProcessingofGNSS-signalsfromtheRussianGlonass–system”,Access,1998.

11/10/17 28

Page 29: Implementation of GNSS Signal Processing into the GNSS-SDR ...web.stanford.edu/group/scpnt/pnt/PNT17/... · signal to the processing flow graph • Signal Condioner* block is in

Questions?

11/10/17 29

Thank You


Recommended