# GPS-Technik

Als GPS-Technik bezeichnet man in der Satellitennavigation die technischen, geometrischen und elektronischen Grundlagen des englisch Global Positioning Systems (GPS) und ähnlich arbeitender, globaler Navigationssysteme auf der Grundlage von Satelliten.

## Geometrische Grundlagen
### Kugeln als geometrische Orte

Beim Global Positioning System wird der Ort des Empfängers – genauer: die Position der Empfangsantenne – durch Entfernungsmessung zu mehreren Satelliten bestimmt, die auf hohen Bahnen die Erde umkreisen. Ein Satellit reicht nicht, denn bei einer einzelnen Entfernungsmessung kann sich der Empfänger überall auf einer Kugeloberfläche befinden, deren Radius die Entfernung und deren Mittelpunkt die momentane Satellitenposition ist. Erst weitere Distanzmessungen engen die Unbestimmtheit des Ortes ein. Wenn sich der Empfänger z. B. auf der Oberfläche einer idealisierten Erdkugel befände, so kann dessen Ort nur auf einem Kreis liegen, der die Schnittlinie Entfernungskugel/Erdkugel bildet.
Bei Distanzmessungen zu zwei Satelliten kann sich der Empfänger nur an Positionen befinden, die auf beiden Entfernungskugeln liegen. Der geometrische Ort (die Schnittlinie) ist wiederum ein Kreis, aber je nach Satellitenkonstellation nun in allgemeiner räumlicher Lage. Theoretisch sind auch zwei Distanzmessungen zu einem Satelliten möglich, doch sind solche Ortungen ungenau (schleifender Schnitt).
Kommt eine Entfernungsmessung zu einem dritten Satelliten hinzu, so ist der Empfängerort durch den Schnitt der drei Kugeln gegeben. Denn nur hier hat der Empfänger zu allen gegebenen Kugelmittelpunkten (Satellitenorten) die gemessenen Entfernungen. Rechnerisch wird dies in einem kartesischen Koordinatensystem gelöst:
In einem geozentrisch definierten 3D-Koordinatensystem ist ein Punkt durch die Angabe von drei Koordinaten ($x$, $y$, $z$) eindeutig bestimmt. Um die Ortskoordinaten der Empfängerposition zu bestimmen, sind drei Gleichungen erforderlich. Sie ergeben sich aus den Entfernungen zu den drei Kugelmittelpunkten (den Satelliten). Die Lösung der Gleichungen ist in realen Fällen immer möglich (der theoretische zweite Schnittpunkt entfällt, weil er weit von der Erdoberfläche entfernt liegt). Würden beliebige Orte und Entfernungen vorgegeben, so gibt es keine Lösung, wenn sich die Kugeloberflächen nicht schneiden – was bei realen Aufgaben der Satellitennavigation aber immer der Fall ist.
Die Realisierung dieses Prinzips hat beim GPS zwei technische Schwierigkeiten:
* Die Entfernung kann nicht direkt gemessen werden und
* die Satelliten bewegen sich (mit ca. 3,9 km/s), wodurch sich die Positionen der Kugelmittelpunkte laufend verändern.
Zur Behebung der ersten Schwierigkeit misst man die Laufzeit des Funksignals, d. h. die kurze Zeit, die es für die Wegstrecke vom Satelliten zum Empfänger benötigt. Im Weltraum breitet sich das Signal mit der Vakuumlichtgeschwindigkeit $c$ aus, in der Erdatmosphäre geringfügig langsamer. Das Messprinzip ist analog zur Entfernungsbestimmung bei einem Gewitter: Wenn man einen Blitz sieht (die Laufzeit des Blitzes selbst ist vernachlässigbar), zählt man die Sekunden, bis der Donner zu hören ist. Diese Laufzeit des Donners mal der Schallgeschwindigkeit ergibt die Entfernung. Zu welcher Uhrzeit Blitz und Donner auftreten, ist dabei unerheblich.
Beim GPS-System ist die Laufzeitbestimmung allerdings komplizierter, weil einerseits die Ausbreitungsgeschwindigkeit viel höher ist. Andererseits ist dem Empfänger zunächst unbekannt, wann das empfangene Signal ausgesandt wurde. Da Sender und Empfänger der Funkwellen beim GPS-System nicht wechselseitig kommunizieren können, handelt es sich um eine unidirektionale (Einweg-)Entfernungsmessung. Technisch spricht man von Pseudoranging, weil alle Laufzeiten um einen konstanten Betrag verfälscht sind.
Die Distanzmessung wird durchgeführt, indem das empfangene Signal seinen Sendezeitpunkt als Code „mitbringt“ – und zwar als GPS-Systemzeit im Moment der Sendung. Hätte der Empfänger das exakte GPS-Zeitsystem, könnte er die Laufzeit als die Differenz zwischen Sende- und Empfangs-Uhrzeit bestimmen. Allerdings ist die Empfängeruhr zunächst nicht genau mit der GPS-Zeit synchronisiert. Die Differenz wird als zusätzliche Unbekannte bei der Ortsbestimmung angesetzt. Weil nun vier Unbekannte (drei Ortskoordinaten und eine Zeitkonstante) zu bestimmen sind, werden auch vier Gleichungen benötigt. Diese vierte Gleichung erfordert die Hinzunahme der Entfernung zu einem vierten Satelliten.

### False Ranging

Ist die Empfängeruhr noch nicht synchronisiert, so sind die berechneten Entfernungen zu den Satelliten um eine kleine Strecke verfälscht. Nimmt man von diesen vier Entfernungen nur drei, lässt sich damit zwar ein möglicher (aber falscher) Ort des Empfängers bestimmen. Er stimmt jedoch nicht mit der vierten Distanz überein – umso weniger, je größer der „Uhrfehler“ des Empfängers ist. Nur beim richtigen Empfangszeitpunkt sind alle vier Distanzen im Einklang, wofür das System mit allen vier Gleichungen zu lösen ist.
Die Kenntnis des Sendezeitpunktes ist auch noch aus einem weiteren Grund wichtig: Weil sich die Satelliten bewegen, muss ihre Position zum Sendezeitpunkt bekannt sein. Der Satellit könnte in dem kurzen Moment seine Koordinaten nicht übertragen. Deshalb wird zur Ortsbestimmung die Bahngleichung als Zeitfunktion benutzt. Die Konstanten, die die Bahngleichung enthält, werden mit dem Signal übertragen.
Je nach Anzahl der schon bekannten Größen reduziert sich die Zahl der Unbekannten und damit die Mindestanzahl der notwendigen Satelliten. Ist die Zeit genau bekannt, verbleiben drei Unbekannte für den Ort, was nur drei Satelliten erfordert. Ist zusätzlich die Höhe bekannt (z. B. Höhe = 0 auf Meeresniveau), sind nur zwei Unbekannte und zwei Satelliten notwendig. Wäre auch noch die genaue geografische Breite bekannt, so würde nur noch eine Unbekannte benötigt, entsprechend einem Satellit.

#### Ausbreitungsgeschwindigkeit

Zur genauen Ortsbestimmung muss berücksichtigt werden, dass zwischen Satelliten und Empfänger kein Vakuum herrscht. In der Erdatmosphäre ist die Signalgeschwindigkeit geringer. Die Satellitenentfernung wird deshalb bei Benutzung der Vakuumlichtgeschwindigkeit zu groß berechnet und die tatsächliche Laufzeit muss entsprechend korrigiert werden, wobei auch der Vertikalwinkel der Funkverbindung zu berücksichtigen ist. Da die Verzögerung hauptsächlich in der Ionosphäre erfolgt, spricht man von Ionosphärenkorrektur. Jene in der Troposphäre (tropospheric delay) macht zusätzlich einige Meter aus. Zur Technik der Ortsbestimmung gehört auch die Berücksichtigung von vermeidbaren und unvermeidbaren Signalstörungen.

## Elektronische Grundlagen
### Beschreibung des GPS-Signals

Das GPS stellt zwei verschiedene Signale bereit: Das zivile L1-Signal mit einer Trägerwelle von 1575,42 MHz und das verschlüsselbare L2-Signal mit einer Trägerwelle von 1227,60 MHz. Im L1-Signal wird der im Folgenden näher erläuterte C/A-Code übertragen und im L2-Signal der verschlüsselte und nicht öffentlich bekannte P-Code. Jedes dieser beiden Signale besteht aus je drei Anteilen: Trägerwelle, Code und Navigationsdaten.
Über die C/A-Daten teilt jeder Satellit seine Bahndaten, die Ephemeriden, und den Sendezeitpunkt dem Empfänger mit. Außerdem muss es dem Empfänger möglich sein, zu bestimmen, von welchem Satelliten das empfangene Signal stammt – obwohl alle Satelliten die gleiche Sendefrequenz benutzen. Zur Erfüllung all dieser Anforderungen wird für das GPS-Signal das CDMA-Modulationsverfahren verwendet. Zeitrelevant sind immer die Zeitpunkte des Beginns eines Signalteils, wobei verschiedene Signalteile unterschiedliche Dauer haben – aber alle Signalteile sind gleichzeitig vorhanden.
Bezugszeit aller Signale ist Sonntag 0:00 Uhr. In den übertragenen Nachrichten ist auch die Nummer der Woche enthalten. Diese Information ist allerdings für die Ortsbestimmung nicht relevant. Die nächste Signaleinheit ist der Subframe. Ein Subframe hat eine zeitliche Länge von 6 s und trägt zu Beginn eine Nachricht, wie oft 6 s seit Sonntag 0 Uhr am Sendebeginn des nächsten Subframe vergangen sind. Die nächstkleinere Einheit ist das Word. Ein Subframe besteht aus 10 Words. Diese kleinere Einheit Word besteht aus 30 Nachrichtenbits. 24 Bits tragen die Nachrichten direkt, am Schluss jedes Words sind sechs Paritätsbits vorhanden, um den fehlerfreien Empfang zu kontrollieren. Die einzelnen Wörter tragen keine Information über ihre Sendezeit, die Sendezeit des Word-Anfangs ergibt sich durch Abzählen ihrer Stellung im Subframe. Ohne Abzählen wäre die Sendezeit des Word-Anfangs um 0,6 s mehrdeutig.
Jedes Nachrichtenbit dauert 0,02 s (= 20 ms) und enthält natürlich auch keine weitere Information. Die genaue Zeitlage seines Beginns ergibt sich durch Abzählen innerhalb des Wortes. Ohne Abzählen wäre die Sendezeit des Beginns jedes Nachrichtenbits um 20 ms mehrdeutig. Jedes Nachrichtenbit ist unterteilt in 20 Codeblöcke. Diese 20 Codeblöcke mit einer Dauer von 1 ms sind identisch und bestehen aus einer Folge von je 1023 Chips. Zur Unterscheidung von den Nachrichtenbits werden die Bits der CDMA-Codeblöcke als Chips bezeichnet. Da jeder Codeblock 1 ms dauert und auch keine Nachricht tragen kann, muss seine Zeit wieder durch Abzählen bestimmt werden, innerhalb seines Bits, bzw. Words bzw. Subframes. Ohne Abzählen wäre die Sendezeit des Beginns jedes Codeblocks um 1 ms mehrdeutig.
Eine Folge von 1023 Chips kann auf 2$^{1023}$ (ca. 8,99 · 10$^{307}$) Arten gebildet werden. Damit trotz der vielen Möglichkeiten die gewählte Folge für jeden Satelliten einzigartig ist, wird eine Folge aus den Gold-Codes benutzt. Gold-Codes haben eine Länge von 2$^n$ − 1 Bit. n ist dabei eine Ganzzahl, die bei GPS zu 10 gewählt wurde. Die beiden Generatorpolynome vom Grad 10 weisen folgende Form auf:
    $G_{1}=x^{10}+x^{3}+1$
    $G_{2}=x^{10}+x^{9}+x^{8}+x^{6}+x^{3}+x^{2}+1$
Sie werden wie in nebenstehender Abbildung kombiniert. Dabei wird die konkrete Codefolge durch eine fixe Codephase am zweiten Generatorpolynom eingestellt, dies ist in der Abbildung durch die variablen Abgriffe am unteren LFSR schematisch dargestellt. In Summe sind 2$^{10}$ − 1 = 1023 Codephasen möglich, praktisch werden allerdings nicht alle Codephasen verwendet. In dem zugrunde liegenden Verfahren GPS-ICD-200 wurden 32 Codephasen ausgewählt, wobei jeweils eine Codephase fix einem bestimmten GPS-Satelliten zugeordnet ist und die GPS PRN Number darstellt. Die 32 Codephasen wurden so ausgewählt, dass sie zueinander eine minimale Kreuzkorrelation aufweisen.
Im Empfänger wird für jeden empfangenen Satelliten eine identische Gold-Code-Folge erzeugt. Zunächst haben die empfangene und die im Empfänger selbst erzeugte Code-Folge keine zeitliche Beziehung. Um diese zeitliche Beziehung herzustellen, werden beide Folgen miteinander multipliziert und die Multiplikationsergebnisse addiert. Diese Prozedur wird als Autokorrelation bezeichnet. Wenn der zeitliche Unterschied variiert wird, ändert sich die Summe. Die Summe wird maximal, wenn die Folgen zeitlich übereinstimmen. Die Code-Folgen wurden beim GPS so gewählt, dass gesichert ist, dass nur bei der richtigen Code-Folge und bei der richtigen Zeitverschiebung das Maximum auftritt (Einzigartigkeit). Die im Empfänger erzeugte Code-Folge kann mit einem Zeitfehler kleiner 1 ns an die empfangene Code-Folge, die vom Satelliten gesendet wurde, angepasst werden. Durch das Abzählen in den Signaleinheiten und die Lage der momentanen Zeit im Codeblock ist der genaue Sendezeitpunkt bekannt.
Zusätzlich zu diesem auf einer Gold-Folge basierenden C/A-Code wird mit 50 bit/s die Navigationsnachricht in das L1-Signal mit hineinmoduliert. Sie besteht aus einem 50-Hz-Signal und enthält Daten wie die Satellitenbahnen, Uhrenkorrekturen und andere Systemparameter (z. B. den Status der Satelliten, also ob in Ordnung oder fehlerhaft). Diese Daten werden ständig von jedem Satelliten übermittelt. Daraus erhält der GPS-Empfänger sein Datum, die ungefähre Uhrzeit und die Positionen der Satelliten.
Modulation des GPS-Signals auf den Träger Zur Übertragung wird das binäre Signal auf eine Trägerfrequenz moduliert, deren Phase je nach Signalwert (0 oder 1) um 180° gedreht wird. Bei einer 0 wird die Trägerfrequenz direkt, bei einer 1 die um 180° phasenverschobene Trägerfrequenz gesendet.

### Bestimmung der Sendezeitpunkte

Der Empfänger erzeugt für jeden Satelliten eine eigene Codefolge und verschiebt diese Codefolgen so, dass jede Codefolge maximal mit dem dazugehörigen Satelliten übereinstimmt. Damit ist die zeitliche Lage jedes Satellitensignals am Empfangsort bekannt.
Im Bild sind von den gleichzeitig empfangenen Satellitensignalen nur die Signale von zwei Satelliten dargestellt (rot und grün). Ein Bit der GPS-Nachricht ist 20 Codeblöcke lang (von denen jeder 1023 Chips (CDMA-Codebits) lang ist). Dargestellt sind hier nur fünf Codeblöcke. Für die Betrachtung ist weder von Bedeutung zu welcher Zeit der Empfänger die Auswertung vornimmt (magenta) noch welche absolute Empfängerzeit vorliegt (Beschriftung der blauen Zeitachse). Für die Auswertung muss nur die Zeit des Beginns eines Codeblocks im Satelliten bekannt sein, und der Empfänger muss nur die Zeit zwischen Auswertezeitpunkt und Beginn eines Codeblocks messen. Die Sendezeit des Codeblocks wird durch Auswertung der Satellitennachricht bestimmt.
Nach der Bestimmung der Lage des Empfangszeitpunkts innerhalb eines Codeblocks muss nun die Lage des Codeblocks zu Sonntag 0 Uhr bestimmt werden. Dazu muss der Empfänger von der Einheit Codeblock rückwärts immer die nächstgrößere Einheit bestimmen:
* Zuerst wird bestimmt, bei welchen aufeinanderfolgenden Codeblöcken die Reihenfolge zwischen Einsen (mit dazwischen liegenden Nullen) und Nullen (mit dazwischen liegenden Einsen) wechselt. Dieser Wechsel ist der Anfang eines Nachrichtenbits. Damit ist der Abstand zu Sonntag 0 Uhr mit einer Unsicherheit von Vielfachen von 20 ms bestimmt. Ein Wechsel muss nicht nach spätestens 20 ms erfolgen, da es mehrere aufeinanderfolgende Nullen oder Einsen geben kann, sodass nicht alle 20 ms ein solcher Wechsel erfolgt. Aber in einer Dauer von 0,6 s (Dauer einer Wordlänge) sind wegen der Paritätsbits mit Sicherheit mehrere Bitwechsel. Nachdem die Bitgrenze erkannt ist, können die Bits empfangen und gespeichert werden. In dieser Bitfolge ist nun die Lage der Subframes zu bestimmen, von der jeder 300 bit lang ist.
* Danach wird die Lage eines Subframe identifiziert. Dazu braucht der Empfänger die doppelte Subframelänge, also mindestens 600 empfangene Bits, die er in 12 s empfängt. Aus der gespeicherten Bitfolge nimmt der Empfänger einen Block von 600 Bits und sucht in diesem Block nach der Bitfolge 10001011. Diese Bitfolge ist im ersten Word jedes Subframe enthalten. Dieses erste Word wird als TLM-Word (= Telemetry-Word) bezeichnet. Die gesuchte Bitfolge, die im TLM-Word enthalten ist, wird als Preamble bezeichnet. Mit der Identifizierung dieser Bitfolge ist der Beginn jedes Subframe und jedes Wortes bekannt, da alle Wörter jeweils 30 bit lang sind. Da allerdings die Bitfolge 10001011 auch in der übrigen Nachricht auftreten kann, müssen zur Überprüfung, ob es wirklich der Beginn des TLM-Words ist, noch zwei Prüfungen erfolgen. Erstens: wenn es sich bei der gefundenen Bitfolge tatsächlich um die Preamble handelt, sind die 6 Paritybits am Ende jedes Words richtig, und zweitens muss alle 300 Bit (6 s) ein neuer Subframe kommen, der immer mit einem TLM-Word beginnt. Wenn die Prüfung erfolgreich ist, ist damit der Beginn jedes Subframes in der Empfängerzeit bekannt. Die Sendezeit jedes Framebeginns im Satelliten ist noch unsicher in Vielfachen von 6 s. Wenn der Empfänger eine ggf. falsche Identifizierung feststellt, wird in dem 600-Bit-Block nach einer weiteren 10001011-Folge gesucht und überprüft, ob es sich nun um die Preamble handelt. Zur Identifizierung wie oft 6 s seit Sonntag 0 Uhr vergangen sind, wird das dem TLM-Word folgende HOW (Hand over Word) ausgewertet. Die ersten 17 Bits des HOW geben die Zeit des Beginns des nachfolgenden Subframes als ganzzahlige Zählzahl von 6 s seit Sonntag 0 Uhr an. Damit ist in der Empfängerzeit immer bekannt, wann jede Aussendung in der GPS-Zeit erfolgt, da die eben beschriebene Prozedur bei jedem empfangenen Signal eines Satelliten erfolgt.

### Bestimmung der Satellitenorte zum Sendezeitpunkt

In der Satellitennachricht sind die Bahnparameter jedes Satelliten enthalten. Mit ihnen und der Sendezeit kann für jede Sendezeit der Satellitenort berechnet werden.

### Ablauf der Zeitbestimmung

Zuerst verschiebt der Empfänger in der empfängereigenen Zeit (Empfängerzeit) den im Empfänger selbst erzeugten Codeblock jeweils um einen Chip so lange (im Bereich von 1 ms), bis das Korrelationsmaximum auftritt. Die Verschiebung erfolgt mit einer Verzögerungsregelschleife. Damit ist zeitlich der Beginn jedes Codeblocks in der Empfängerzeit bekannt (entspricht der Ankunftszeit), und die Sendezeit ist unsicher in Vielfachen von 1 ms.
Beim im zivilen Bereich eingesetzten CA-Code werden 20 Codeblöcke mit jeweils 1023 Chips (CDMA-Codebits) pro 20 ms gesendet. Die Messung der Zeitdifferenz kann bei bitgenauer Korrelation folglich auf 1/1023 ms genau erfolgen (9,775 · 10$^{−7}$ s). Bei einer angenommenen Ausbreitungsgeschwindigkeit von 299.792.458 m/s (Lichtgeschwindigkeit im Vakuum) ergäbe sich eine maximale Genauigkeit der Abstandsmessung von 293 m. Moderne GPS-Empfänger können einen beliebigen Zeitpunkt zwischen Beginn (steigende Flanke) und Ende (fallende Flanke) eines Bits auf 1 % der Bitlänge genau bestimmen. Damit wäre die Entfernung s zum Satelliten auf 2,93 m genau bestimmbar: s = 1 % · 299.792.458 m/s · 1/1023 · 10$^{−3}$ s. Für den ausschließlich militärischen Gebrauch kommt das verschlüsselte P(Y)-Signal mit einer um den Faktor 10 höheren Chiprate zum Einsatz, folglich sind Genauigkeiten bei der Abstandsmessung von ca. 30 cm möglich.
Nun sucht der Empfänger nach Bitwechseln in der Navigationsnachricht. Die Dauer eines Bits beträgt 20 ms woraus eine Übertragungsrate von 50 Bits pro Sekunde folgt. Wenn 0-Bits oder 1-Bits aufeinanderfolgen, kann kein Wechsel festgestellt werden. Da aber die Navigationsnachricht mit Sicherheit nicht nur aus fortlaufenden 0 oder fortlaufenden 1 besteht, taucht irgendwann ein Bitwechsel auf. Der Zeitpunkt des Auftretens dieses Bitwechsels ist damit in der Empfängerzeit bekannt. Wegen des 20-ms-Zeit-Rasters ist damit außerdem auch die Sendezeit jedes Bitwechsels nur noch unsicher in Vielfachen von 20 ms.
Der Empfänger speichert nun die empfangene Bitfolge. In der Empfängerzeit ist der Beginn jedes Bits genau bekannt (auf weniger als 1 ns).
In dem erhaltenen Bitstrom nimmt der Empfänger einen Block von mindestens 330 Bits (= 10 + 1 Wörter = 6,6 s) und sucht in dem Block nach der Bitfolge 10001011 (genauer auch noch nach 01110100, weil anfangs noch nicht bekannt ist, was 0 und was 1 ist). Diese Bitfolge ist die Preamble im TLM-Word (Telemetry-Word). Mit der Identifizierung dieser Bitfolge ist der Beginn jedes TLM-Wortes bekannt, da alle TLM-Wörter jeweils 30 bit lang sind. Da allerdings die Bitfolge 10001011 auch in der übrigen Nachricht auftreten kann, müssen zur Überprüfung, ob es wirklich der Beginn des TLM-Words ist, noch zwei weitere Prüfungen erfolgen: Erstens, wenn es sich bei der gefundenen Bitfolge tatsächlich um die Preamble handelt, sind die 6 Paritybits am Ende jedes TLM-Words richtig, und zweitens muss alle 300 Bits (6 s) ein neuer Subframe kommen, der immer mit dem TLM-Word beginnt. Wenn die Prüfung erfolgreich ist, ist damit der Beginn jedes Subframes in der Empfängerzeit bekannt. Die Sendezeit jedes Subframebeginns ist so nur noch unsicher in Vielfachen von 6 s.
Wenn der Empfänger eine ggf. falsche Identifizierung feststellt, wird in dem 330-Bit-Block nach einer weiteren 10001011-Folge gesucht und überprüft, ob es sich nun um die Preamble handelt.
Nun wird das dem TLM-Word folgende HOW-Word (Hand over Word) ausgewertet. Die ersten 17 Bits geben die Zeit des Beginns des nachfolgenden Subframes als ganzzahlige Zählzahl von 6 s seit Sonntag 0 Uhr an.
Die empfangenen Bits wurden synchron zum Zeitrahmen der Satellitenzeit (interne Zeit von jedem einzelnen Satelliten) ausgesendet. Da die Satellitenzeit nicht exakt identisch mit der GPS-Systemzeit ist, werden in der Navigationsnachricht Korrekturwerte zur Zeitbestimmung im Subframe 1 mit übertragen. Anhand der Zeitkorrekturwerte kann die genaue GPS-Zeit der Aussendung berechnet werden.
Damit ist in der Empfängerzeit immer bekannt, wann jede Aussendung in der GPS-Zeit erfolgt, da die eben beschriebene Prozedur bei jedem empfangenen Satelliten erfolgt.
Nun wird zu einem beliebigen Empfängerzeitpunkt $t_{0}^{*}$ (der Empfänger wird natürlich sofort beginnen, wenn alle notwendigen Informationen eingetroffen sind) für diesen Empfängerzeitpunkt die Sendezeitpunkte aller empfangenen Satelliten berechnet.
Mit Hilfe der weiteren Informationen in den Nachrichten (Ephemeridendaten) wird für jeden Satelliten die dreidimensionale Position des Satelliten zum jeweiligen Sendezeitpunkt berechnet.
Damit ist für diesen beliebig gewählten Empfängerzeitpunkt alles Notwendige bekannt: Die Orte der Satelliten und die Sendezeitpunkte in GPS-Systemzeit und in Empfängerzeit. Die Differenz zwischen Sende- und Empfangszeitpunkt ergibt die Laufzeit, die immer noch fehlerbehaftet ist, da die Empfängeruhr nicht mit der GPS-Systemzeit synchronisiert ist. Der Zeitfehler der Empfängeruhr ist für alle Satelliten gleich und fällt deshalb bei Differenzbildungen zwischen den Sendezeitpunkten der empfangenen Satelliten heraus.
In die GPS-Grundgleichungen werden nun die 3D-Positionen der Satelliten und die Sendezeitpunkte in der GPS-Zeit eingesetzt und das Gleichungssystem gelöst. Als Ergebnis erhält man die dazugehörige Empfangszeit $t_{0}$ in der GPS-Zeit und die Empfängerkoordinaten.

### Orts- und Zeitbestimmung des Empfängers

Mit den jetzt bekannten Sendezeitpunkten und -orten der empfangenen Signale wird der Empfängerort bestimmt. Die Uhrzeiten des Empfangs müssen weder in der GPS-Systemzeit noch in der Empfängerzeit bekannt sein. Bei der Synchronisierung wird dem Empfangsmoment die Empfängeruhrzeit $t_{0}^{*}$ zugeordnet. Im Gleichungssystem reichen diese Daten, um die Empfängerkoordinaten und den Empfangszeitpunkt in der GPS-Systemzeit zu bestimmen.
Nach Lösung der GPS-Grundgleichungen kennt der Empfänger seine Koordinaten (genauer: die Koordinaten der Empfangsantenne) und den Empfangszeitpunkt $t_{0}$ in der GPS-Zeit. Damit kann er prinzipiell seine Empfängeruhr mit der Differenz $t_{0}^{*}-t_{0}$ auf die GPS-Systemzeit stellen (synchronisieren), aber das ist nur notwendig, wenn der GPS-Empfänger als Zeitnormal dienen soll. Die GPS-Zeit und die UTC-Zeit waren bei Inbetriebnahme von GPS identisch. Die Anzahl der Schaltsekunden, die seitdem zusätzlich vergangen sind, werden in den Satellitennachrichten übertragen.

## Signalstörungen
### Ionosphärenkorrektur

Beim Durchlaufen der Ionosphäre erleiden Radiowellen eine Verzögerung, die (im Gegensatz zu Lichtwellen) vom Elektronengehalt (TEC) entlang des Signalweges und von der verwendeten Frequenz abhängt. Sie macht im Allgemeinen wenige Meter, in Extremfällen aber bis zu 50 Meter aus. Da sich der TEC nur schwierig modellieren lässt, benutzt man zwei Frequenzen und bestimmt die Korrektur durch deren kleinen Unterschied in der Laufzeit. Beim GPS-System unterscheiden sich die beiden Frequenzen zwar nicht stark (L1-Frequenz = 1575,42 MHz, L2-Frequenz = 1227,60 MHz), doch wirkt die Verzögerung quadratisch zum Quotienten und lässt sich daher ausreichend genau bestimmen.
Die Refraktion in der Troposphäre wird hingegen durch meteorologische Modelle (aus dem Verlauf von Druck, Temperatur und Luftfeuchte) berechnet.

### Berücksichtigung unvermeidbarer Signalstörungen

Die Zeit könnte theoretisch durch Auszählen der Bits in den Codeblöcken noch genauer bestimmt werden. Beim Empfangssignal geht das nicht, weil den einzelnen Chips der empfangenen Codefolge ein starkes Rauschen überlagert ist. Ursache ist die geringe Sendeleistung der Satelliten, die notwendige große Empfängerbandbreite und die unbekannte Richtung des Senders (deswegen kann keine große Satellitenantenne verwendet werden).
Die Sendeleistung der GPS-Satelliten ist wegen der begrenzten Möglichkeiten der Energieversorgung ähnlich wie bei Fernsehsatelliten nur gering (Hälfte der Astra-Satelliten, also um die 50 Watt). Der Empfänger muss wegen der schnellen Folge der Zeichen (ca. alle µs) eine große Bandbreite haben. Deshalb hat das Empfangssignal einen so hohen Rauschanteil, dass die gesuchten Signale im Rauschen untergehen.
Die Korrelation erfolgt deshalb in der Regel so, dass das verrauschte Signal mit der empfängereigenen Codefolge multipliziert wird. Die erforderliche Summation erfolgt mit dem multiplizierten Signal. Das ist ein Gleichsignal und deshalb kann es über eine längere Zeit summiert werden. Durch diese lange Zeit mittelt sich das Rauschen – und es bleibt nur ein kleiner Rest. Dadurch hebt sich das korrelierte Signal aus dem Rauschen heraus. Dadurch, dass alle Satelliten auf der gleichen Frequenz senden, laufen die Signale auch im Empfänger sehr lange durch die gleichen Empfängerbausteine, deshalb stören die Laufzeiten im Empfänger die Bestimmung der Laufzeitdifferenzen nicht.

### Berücksichtigung vermeidbarer Signalstörungen

Zu diesen Störungen gehörten vor allem die Mehrwegeausbreitung (englisch multipath), die eine Vermischung des direkten Satellitensignals mit reflektierten Umwegesignalen der nahen Umgebung darstellt. Solche Spiegelungen der Radiowellen entstehen vor allem an Gebäuden und metallischen Flächen mit entsprechender Reflexionsrichtung, teilweise auch durch nasses Laub.
Multipath-Effekte können einige Zentimeter bis Dezimeter ausmachen, was die Genauigkeit präziser GPS-Ortungen erheblich übertrifft. Sie machen sich in kleinen, halbperiodischen Sprüngen der angezeigten Position bemerkbar und lassen sich nicht gänzlich vermeiden; verringert werden sie durch einen geeigneten Aufstellungsort der Antenne und eine nach unten abschirmende Grundplatte, auf der die Antenne sitzt.

## GPS-Positionsbestimmung

Die gleichzeitige Signal-Laufzeitmessung zu vier Satelliten liefert vier Bestimmungsgrößen, aus denen theoretisch drei Raumkoordinaten $x$, $y$, $z$ und die Zeit $t$ bestimmt werden. Bei Kenntnis des Referenzsystems, bei GPS ist es das WGS84, werden daraus terrestrische Koordinaten Breite und Länge berechnet. Ohne Korrekturdaten für das Geoid beträgt der absolute Höhenfehler mehrere Hundert Meter.
In der Praxis ist ein 4-Kanal-GPS-Empfänger wegen des hohen Signalrauschens unbrauchbar. Stattdessen werden die Signale aller empfangenen Satelliten ausgewertet. Eine Kalman-Filterung optimiert die Lösung des fehlerbehafteten überbestimmten Gleichungssystems.

### Lösungsverfahren für 4 Gleichungen mit 4 Unbekannten

Der GPS-Empfänger befinde sich zur GPS-Systemzeit $t_{0}$ an einem Ort mit den Koordinaten $x_{0},~y_{0},~z_{0}$ und empfange die Funksignale der vier Satelliten zu den Systemzeiten $t_{n}(n=1..4)$. Die Vereinfachung besteht darin, dass die Ausbreitungsgeschwindigkeit als konstant und die Ausbreitungsrichtung gradlinig angenommen wird.
Ein Mehrkanalempfänger kann alle Satelliten gleichzeitig empfangen, da sie ununterbrochen senden. Einkanal-Geräte empfangen die Signale nacheinander und korrigieren die Zeitunterschiede entsprechend (Empfangszeit positiv, bzw. Sendezeitpunkt negativ). Für die Positionsbestimmung des Empfängers werden mindestens 4 Satelliten benötigt. Bei mehr als 4 empfangenen Satelliten ändert sich am Rechengang wenig, doch sind die Gleichungen überbestimmt, weil mehr Gleichungen als Unbekannte vorhanden sind. Überbestimmte Gleichungssysteme werden nach den Methoden der Ausgleichsrechnung behandelt.
Die vier angenommenen Satelliten emittieren ihre Signale zur Systemzeit $t_{0}$ an den Orten $x_{n},~y_{n},~z_{n}$; der Index $n$ läuft von 1 bis 4. Das Signal breite sich mit Lichtgeschwindigkeit $c$ aus. Die Grundgleichungen ergeben sich durch Gleichsetzung der 4 Entfernungen zwischen den Satelliten und dem Empfänger in kartesischen Koordinaten und den 4 Distanzen aus der Laufzeitmessung, d. h. der Zeitdifferenz zwischen Sendung und Empfang multipliziert mit der Lichtgeschwindigkeit. Um keine Wurzeln zu benötigen, werden die Gleichungen in Quadratform geschrieben:
${\begin{matrix}(x_{1}-x_{0})^{2}+(y_{1}-y_{0})^{2}+(z_{1}-z_{0})^{2}=[c(t_{1}-t_{0})]^{2}\quad (1)\\(x_{2}-x_{0})^{2}+(y_{2}-y_{0})^{2}+(z_{2}-z_{0})^{2}=[c(t_{2}-t_{0})]^{2}\quad (2)\\(x_{3}-x_{0})^{2}+(y_{3}-y_{0})^{2}+(z_{3}-z_{0})^{2}=[c(t_{3}-t_{0})]^{2}\quad (3)\\(x_{4}-x_{0})^{2}+(y_{4}-y_{0})^{2}+(z_{4}-z_{0})^{2}=[c(t_{4}-t_{0})]^{2}\quad (4)\\\end{matrix}}$
Die Lösung dieses Gleichungssystems liefert den Sendezeitpunkt $t_{0}$ und die 3 Koordinaten $x_{0}$, $y_{0}$ und $z_{0}$.
       Anmerkung: In der Literatur wird das Gleichungssystem oft iterativ gelöst und das Iterationsverfahren physikalisch interpretiert. Für $t_{i}-t_{0}$ wird dazu verwendet $\Delta t_{i}=t_{i}-t_{0}$. Die Iteration des Gleichungssystems erfolgt dann mit unterschiedlichen Startwerten. Meist wird ein ungefährer Ort für den Empfänger angenommen; im ersten Schritt werden die Laufzeiten $\Delta t_{i}$ für diesen Startort berechnet und mit $\Delta t_{i}$ seine Koordinaten verbessert. Damit werden genauere Laufzeiten bestimmt und mit diesen wieder verbesserte Koordinaten. Ein anderes Iterationsverfahren nimmt als Startwert für die Laufzeiten einheitlich ca. 70 ms an. Im weiteren Berechnungsverlauf unterscheiden sich beide Iterationsverfahren nicht mehr. In der Regel ist nach 3 bis 4 Iterationen die Lösung ausreichend genau.
Diese Iterationsverfahren sind nicht notwendig. Wie im Folgenden gezeigt wird, ist auch eine geschlossene Lösung möglich.
Ausmultipliziert ergeben die Gleichungen (1) bis (4):
${\begin{matrix}x_{1}^{2}-2x_{1}x_{0}+x_{0}^{2}+y_{1}^{2}-2y_{1}y_{0}+y_{0}^{2}+z_{1}^{2}-2z_{1}z_{0}+z_{0}^{2}=\\c^{2}t_{1}^{2}-2c^{2}t_{1}t_{0}+c^{2}t_{0}^{2}\qquad \qquad (5)\\\\x_{2}^{2}-2x_{2}x_{0}+x_{0}^{2}+y_{2}^{2}-2y_{2}y_{0}+y_{0}^{2}+z_{2}^{2}-2z_{2}z_{0}+z_{0}^{2}=\\c^{2}t_{2}^{2}-2c^{2}t_{2}t_{0}+c^{2}t_{0}^{2}\qquad \qquad (6)\\\\x_{3}^{2}-2x_{3}x_{0}+x_{0}^{2}+y_{3}^{2}-2y_{3}y_{0}+y_{0}^{2}+z_{3}^{2}-2z_{3}z_{0}+z_{0}^{2}=\\c^{2}t_{3}^{2}-2c^{2}t_{3}t_{0}+c^{2}t_{0}^{2}\qquad \qquad (7)\\\\x_{4}^{2}-2x_{4}x_{0}+x_{0}^{2}+y_{4}^{2}-2y_{4}y_{0}+y_{0}^{2}+z_{4}^{2}-2z_{4}z_{0}+z_{0}^{2}=\\c^{2}t_{4}^{2}-2c^{2}t_{4}t_{0}+c^{2}t_{0}^{2}\qquad \qquad (8)\\\end{matrix}}$
Nun wird die 4. Gleichung von den ersten 3 subtrahiert. Dadurch fallen alle quadratischen Unbekannten weg:
${\begin{matrix}x_{1}^{2}-x_{4}^{2}-2(x_{1}-x_{4})x_{0}+y_{1}^{2}-y_{4}^{2}-2(y_{1}-y_{4})y_{0}+z_{1}^{2}-z_{4}^{2}-2(z_{1}-z_{4})z_{0}=\\c^{2}t_{1}^{2}-c^{2}t_{4}^{2}-2c^{2}(t_{1}-t_{4})t_{0}\qquad \qquad (9)\\\\x_{2}^{2}-x_{4}^{2}-2(x_{2}-x_{4})x_{0}+y_{2}^{2}-y_{4}^{2}-2(y_{2}-y_{4})y_{0}+z_{2}^{2}-z_{4}^{2}-2(z_{2}-z_{4})z_{0}=\\c^{2}t_{2}^{2}-c^{2}t_{4}^{2}-2c^{2}(t_{2}-t_{4})t_{0}\qquad \qquad (10)\\\\x_{3}^{2}-x_{4}^{2}-2(x_{3}-x_{4})x_{0}+y_{3}^{2}-y_{4}^{2}-2(y_{3}-y_{4})y_{0}+z_{3}^{2}-z_{4}^{2}-2(z_{3}-z_{4})z_{0}=\\c^{2}t_{3}^{2}-c^{2}t_{4}^{2}-2c^{2}(t_{3}-t_{4})t_{0}\qquad \qquad (11)\\\end{matrix}}$
Umgeordnet wird daraus:
${\begin{matrix}2(x_{1}-x_{4})x_{0}+2(y_{1}-y_{4})y_{0}+2(z_{1}-z_{4})z_{0}=\\x_{1}^{2}-x_{4}^{2}+y_{1}^{2}-y_{4}^{2}+z_{1}^{2}-z_{4}^{2}-(c^{2}t_{1}^{2}-c^{2}t_{4}^{2})+2c^{2}(t_{1}-t_{4})t_{0}\quad (12)\\\\2(x_{2}-x_{4})x_{0}+2(y_{2}-y_{4})y_{0}+2(z_{2}-z_{4})z_{0}=\\x_{2}^{2}-x_{4}^{2}+y_{2}^{2}-y_{4}^{2}+z_{2}^{2}-z_{4}^{2}-(c^{2}t_{2}^{2}-c^{2}t_{4}^{2})+2c^{2}(t_{2}-t_{4})t_{0}\quad (13)\\\\2(x_{3}-x_{4})x_{0}+2(y_{3}-y_{4})y_{0}+2(z_{3}-z_{4})z_{0}=\\x_{3}^{2}-x_{4}^{2}+y_{3}^{2}-y_{4}^{2}+z_{3}^{2}-z_{4}^{2}-(c^{2}t_{3}^{2}-c^{2}t_{4}^{2})+2c^{2}(t_{3}-t_{4})t_{0}\quad (14)\\\end{matrix}}$
Durch die Reduktion auf 3 Gleichungen für immer noch 4 Unbekannte ist dieses Gleichungssystem zunächst unterbestimmt. Es lässt sich daher als funktionale Abhängigkeit der gesuchten Koordinaten von einer Variablen $t_{0}$ interpretieren. Da es sich um ein lineares Gleichungssystem handelt, ist auch diese Abhängigkeit linear, d. h. sie hat die Form
${\begin{matrix}x_{0}=x_{00}+x_{0t}t_{0}&&y_{0}=y_{00}+y_{0t}t_{0}&&z_{0}=z_{00}+z_{0t}t_{0}\qquad (15)\\\end{matrix}}$
mit entsprechenden Konstanten $x_{00}$, $x_{0t}$ usw. Setzt man diese Ausdrücke in die 3 Gleichungen ein, und eliminiert damit die gesuchten Koordinaten, so enthalten sie außer der Variablen $t_{0}$ nur noch konstante Größen. Diese 3 Gleichungen müssen daher für die konstanten Terme und die Vorfaktoren von $t_{0}$ separat gelten. Man erhält damit die beiden Gleichungssysteme
${\begin{matrix}2(x_{1}-x_{4})x_{00}+2(y_{1}-y_{4})y_{00}+2(z_{1}-z_{4})z_{00}=\\x_{1}^{2}-x_{4}^{2}+y_{1}^{2}-y_{4}^{2}+z_{1}^{2}-z_{4}^{2}-(c^{2}t_{1}^{2}-c^{2}t_{4}^{2})\qquad \qquad (16)\\\\2(x_{2}-x_{4})x_{00}+2(y_{2}-y_{4})y_{00}+2(z_{2}-z_{4})z_{00}=\\x_{2}^{2}-x_{4}^{2}+y_{2}^{2}-y_{4}^{2}+z_{2}^{2}-z_{4}^{2}-(c^{2}t_{2}^{2}-c^{2}t_{4}^{2})\qquad \qquad (17)\\\\2(x_{3}-x_{4})x_{00}+2(y_{3}-y_{4})y_{00}+2(z_{3}-z_{4})z_{00}=\\x_{3}^{2}-x_{4}^{2}+y_{3}^{2}-y_{4}^{2}+z_{3}^{2}-z_{4}^{2}-(c^{2}t_{3}^{2}-c^{2}t_{4}^{2})\qquad \qquad (18)\\\\2(x_{1}-x_{4})x_{0t}+2(y_{1}-y_{4})y_{0t}+2(z_{1}-z_{4})z_{0t}=2c^{2}(t_{1}-t_{4})\qquad (19)\\2(x_{2}-x_{4})x_{0t}+2(y_{2}-y_{4})y_{0t}+2(z_{2}-z_{4})z_{0t}=2c^{2}(t_{2}-t_{4})\qquad (20)\\2(x_{3}-x_{4})x_{0t}+2(y_{3}-y_{4})y_{0t}+2(z_{3}-z_{4})z_{0t}=2c^{2}(t_{3}-t_{4})\qquad (21)\\\end{matrix}}$
Es handelt sich um 2 lineare Gleichungssysteme mit der gleichen Koeffizientenmatrix. Ihre Lösungen werden nun in eine der Ausgangsgleichungen eingesetzt. Damit wird nach der Reduktion auf 3 Gleichungen wieder eine vierte davon unabhängige hinzugenommen, und damit die vorübergehende Unterbestimmtheit behoben. Man erhält z. B. durch Einsetzen in die vierte Ausgangsgleichung
${\begin{matrix}(x_{4}-x_{00}-x_{0t}t_{0})^{2}+(y_{4}-y_{00}-y_{0t}t_{0})^{2}+(z_{4}-z_{00}-z_{0t}t_{0})^{2}=[c(t_{4}-t_{0})]^{2}\\\end{matrix}}$
Die Terme werden ausmultipliziert und nach Potenzen von $t_{0}$ geordnet:
    ${\begin{aligned}A&:=(x_{4}-x_{00})^{2}+(y_{4}-y_{00})^{2}+(z_{4}-z_{00})^{2}-[ct_{4}]^{2}\\B&:=(x_{4}-x_{00})x_{0t}+(y_{4}-y_{00})y_{0t}+(z_{4}-z_{00})z_{0t}-c^{2}t_{4}\\C&:=x_{0t}^{2}+y_{0t}^{2}+z_{0t}^{2}-c^{2}\end{aligned}}$
Mit den Konstanten $A$, $B$ und $C$ ergibt sich eine quadratische Gleichung für $t_{0}$
    $Ct_{0}^{2}-2Bt_{0}+A=0$
mit den zwei Lösungen:
    $t_{0}={\frac {2B\pm {\sqrt {4B^{2}-4AC}}}{2C}}$
Bei realistischen Ausgangsdaten ergeben sich stets zwei reelle Lösungen. Eine davon scheidet als unrealistisch aus, entweder weil sie vor den Sendezeitpunkten der Satelliten liegt oder zu Positionen führt, die oberhalb der Satellitenbahnen liegen. Damit sind alle Werte bekannt, um die Koordinaten anzugeben.
    ${\begin{aligned}x_{0}&=x_{00}+x_{0t}t_{0}\\y_{0}&=y_{00}+y_{0t}t_{0}\\z_{0}&=z_{00}+z_{0t}t_{0}\end{aligned}}$
Die Winkel der Verbindungslinien zwischen dem zu vermessenden Punkt und den Referenzpunkten muss möglichst groß sein. Sind die Winkel zu klein, ist eine exakte Positionsbestimmung nicht möglich – siehe die Genauigkeitsparameter PDOP und GDOP.