[...]
Voor zover ik heb begrepen zijn de P- en M-code niet inherent nauwkeuriger maar meer encrypted tegen spoofing op het slagveld.
Als we RTK en DGPS buiten beschouwing laten - een stand-alone ontvanger dus - dan is ontvanger welke met de P code kan werken wel nauwkeuriger dan eentje die het moet stellen met de C code.
Een standalone GPS ontvanger werkt ongeveer als volgt: iedere GPS satelliet heeft een nauwkeurig beschreven baan om de aarde en een atoomklok aan boord. Die atoomklok wordt nauwgezet synchroon gehouden met de Navstar GPS systeem-tijd. 1000 keer per seconde zendt elke Navstar GPS satelliet een signaal uit, precies op een 'hele' GPS milliseconde. Dat berichtje is een 1023 bitjes lange, per satelliet unieke, Gold code. Deze Gold codes hebben een speciale eigenschap dat als je de correlatie berekend van een Gold code met andere Gold codes, deze elkaar uitmiddelen en je niks overhoud. Dat geldt ook als je die andere Gold codes 'verschuift' ten opzichte van die ene. En het geldt ook als je die ene Gold code correleert met zichzelf, behalve als je 'm correleert met zichzelf (niet verschoven). Alleen dan levert de correlatie een niet-nul resultaat! Praktisch wordt dit gebruikt door die Gold codes in de ontvanger te genereren en het ontvangen signaal hiermee te correleren. Door die lokale Gold codes te 'verschuiven' in de tijd kun je compenseren voor de tijd die nodig is voor het oorspronkelijke signaal om van een satelliet naar de ontvanger te reizen.
Als de ontvanger van 4 of meer satellieten op die manier een 'lock' weet te bepalen, weet ie dus van 4 satellieten het verschil in 'verzendtijd' in GPS tijd en het ontvangen van het signaal in lokale 'GPS' tijd. Daarmee kan het dan zowel het verschil tussen de notie van 'GPS' tijd in de ontvanger én zijn positie op aarde berekenen. Daarvoor moet het wel ook die baaninformatie hebben van alle betrokken satellieten. Die wordt, als slow-running modulatie op die Gold codes met een snelheid van 50bits/sec verzonden.
Mooi gevolg: als het lukt om je positie te bepalen dan is ook je lokale klok meteen gesynchroniseerd met GPS tijd, met een behoorlijk goeie nauwkeurigheid (denk aan 10nsec of zo).
In de praktijk is het een tikje ingewikkelder, vanwege allerlei moeilijkheden (bv: EM golven reizen door de atmosfeer met een lagere snelheid dan in vacuum; de weg door de atmosfeer wordt gemodelleerd - zowel door de troposfeer waar dit een redelijk eenvoudige correctie oplevert, als ook door de ionosfeer waar de 'electron density' varieert en dit een lastigere correctie vereist. De ionosfeer correctie is afhankelijk van de zonneactiviteit en varieert van plaats tot plaats. Die informatie wordt ook via Navstar verspreidt, maar dan met een extra satelliet in een geostationaire baan. Dat heet SBAS.).
Welnu, de limiet van de nauwkeurigheid ligt aan de kwaliteit van de gebruikte antenne op de ontvanger, en de mogelijk te gebruiken correcties, maar in essentie komt het neer op het bepalen van de beste verschuiving van die Gold code (per satelliet). Dat blijkt zo'n beetje mogelijk te zijn tot ongeveer 1% van zo'n bitje. En omdat een bitje +/- 1 miljoenste seconde duurt, komt dat overeen met ongeveer 3m. Kort door de bocht; de ontvanger kan als alles meezit bepalen hoeveel afstand er zit tussen z'n antenne en de antennes van de satellieten met ongeveer 3m nauwkeurigheid. In de praktijk wordt dat overigens meestal niet gehaald, maar aan de andere kant heeft een ontvanger soms wel meer dan 10 Navstar signalen waarmee ie kan rekenen. Dat helpt flink en dan is voor een stationaire ontvanger een nauwkeurigheid van een paar meter zeker haalbaar. En vooral als je ook nog meer constellaties kunt werken zoals Galileo of Glonass.
Die P code gebruikt een 10 keer zo hoge bitfrequentie. Als je goed je best doet kun je daar hetzelfde spelletje mee spelen, en ook op 1% van die bitjes de correlatie bepalen. Je nauwkeurigheid van die afstandsbepalingen gaan dan van 3m naar 30cm, en de nauwkeurigheid van tijdsynchronisatie en plaatsbepaling gaat dan flink vooruit. Maar die P code wordt inderdaad gecodeerd met een geheime sleutel. Daardoor is het voor een normale ontvanger niet mogelijk om lokale versies daarvan te genereren - en correleren wordt dan verdraaid lastig.
Overigens: het is voor normale stervelingen nu ook haalbaar om 'RTK' te bedrijven. uBlox heeft met de F9P een dual-frequentie multi-GNSS ontvanger uitgebracht. Die kun je voor iets meer dan 200 euro in module vorm kopen. Twee daarvan en je kunt een base/rover systeem maken. Ik heb daar zelf een keer met een baseline van zo'n 7km en statische base & rover nauwkeurigheden van enkele millimeters mee aangetoond. En die F9P kan ook een RTCM stream genereren ("observaties van de fases van de draaggolven van de satellieten") die je dan in de andere F9P kunt invoeren samen met een precies lokatie van die base. Op basis daarvan krijg je een cm nauwkeurige schatting van de positie van de rover. Eigenlijk volkomen onvoorstelbaar dat dat mogelijk is met dergelijke goedkope ontvangers.
[Reactie gewijzigd door devslashnull op 22 juli 2024 14:12]