GPS-System
2009-03-14

Laufzeitmessung der Signale

Wie wir gehört haben, sendet jeder Satellit einen Pseudozufallscode (PRN) aus, der dem Empfänger bekannt ist. Das bedeutet, der Empfänger kann den gespeicherten PRN mit dem gerade empfangenen Code vergleichen.
Nachfolgendes Bild zeigt zwei identische Codes. Ausgefüllte Felder sollen binär 1, weisse Zwischenräume eine 0 darstellen. Das violette Signal sei das Signal des Satelliten, das Orange das Signal des Empfängers. Man kann jetzt einfach bestimmen, wie weit man das Signal verschieben muss, damit man es direkt zur Deckung bringt. Aus der Verschiebung, die ja einer Zeit - nämlich der Signallaufzeit vom Satelliten zur Erde - entspricht läßt sich die Entfernung zum Satelliten berechnen.

Vergleich zweier Signale. Oben: verschoben; Unten: Zur Deckung gebracht.

Vergleich zweier Signale - verschoben

Vergleich zweier Signale - zur Deckung gebracht

Wie aber verschiebt man Signale, die sehr schwach sind und wo zudem noch alle Satelliten auf einer Frequenz senden, man also eigentlich ein heilloses Durcheinander empfängt? Für die Lösung derartige Probleme gibt es einen eleganten Algorithmus mit der Bezeichnung Autokorrelation. Dieser zeichnet sich durch eine große Unempfindlichkeit gegenüber Störungen aus.

Im folgenden soll das Verfahren anhand eines einfachen und deutlichen Signals erläutert werden. Oben sieht man jeweils einen Ausschnitt eines PRN-Codes eines Satelliten, in der Mitte den gleichen Code des Empfängers. Im Ersten Beispiel ist der Code des Empfängers noch "zu spät" dran, wie man am grünen Balken sieht. Bei der Autokorrelation multipliziert man die Signale nun miteinander. Hieraus ergibt sich das untere Signal. Jetzt summiert man das untere Signal auf, was im ersten Fall einen Wert von 9 (9 x 1 plus 39 x 0) ergibt.

Obere Reihe: Signal des Satelliten.
Mittlere Reihe: Signal des Empfängers, dessen Signal ist gegenüber dem des Satelliten nach hinten verschoben.
Untere Reihe: Beide Signale multipliziert. Summiert man für jede Position das multiplizierte Signal erhält manin diesem Fall einen Korrelationswert von 9

Signal des Empfängers, dessen Signal ist gegenüber dem des Satelliten nach hinten verschoben.

Verschiebt man nun das Signal schrittweise um jeweils eine Einheit und führt den gleichen Prozess jedesmal durch, so erhält man einen Zahlenwert für jede Verschiebung.

Obere Reihe: Signal des Satelliten.
Mittlere Reihe: Signal des Empfängers, dessen Signal genau deckungsgleich mit dem des Satelliten ist.
Untere Reihe: Beide Signale multipliziert. Summiert man für jede Position das multiplizierte Signal erhält man in diesem Fall einen Korrelationswert von 25.

Signal des Empfängers, dessen Signal genau deckungsgleich mit dem des Satelliten ist.

Beim zweiten Beispiel liegt das Signal des Empfängers nun genau Deckungsgleich zum Signal des Satelliten. Wie man sieht ist die Summe am Ende deutlich größer als beim ersten Beispiel.

Obere Reihe: Signal des Satelliten.
Mittlere Reihe: Signal des Empfängers, dessen Signal ist gegenüber dem des Satelliten nach vorn verschoben.
Untere Reihe: Beide Signale multipliziert. Summiert man für jede Position das multiplizierte Signal erhält manin diesem Fall einen Korrelationswert von 9

Signal des Empfängers, dessen Signal ist gegenüber dem des Satelliten nach vorn verschoben.

Verschiebt man das Signal noch weiter, wie im dritten Beispiel geschehen, so wird die Summe wieder kleiner.

Die nebenstehende Grafik zeigt nun die Korrelationswerte nochmals für Verschiebungen von -7 bis 13. Deutlich ist zu sehen, wie die Korrelationsfunktion bei einer Verschiebung um 3 einen maximalen Wert erreicht (unsere oben gesehenen 25. Die Funktion ist auf 1 normiert, was verdeutlichen soll, dass die Signale im Idealfall zu 100 % übereinstimmen können.) Wer die Signalkorrelation live sehen will, kann hier mal spielen.

In der Realität ist das Verfahren der Autokorrealtion noch ein wenig komplexer. Beispielsweise wird durch die Bewegung des GPS-Empfängers das Signal durch den Dopplereffekt gestaucht oder gestreckt. Dies erlaub zwar eine Geschwindigkeitsmessung auf Basis des Dopplereffekts erschwert aber die Korrelation, da die Signale nicht nur gegeneinander verschoben sondern auch noch gestaucht und gestreckt werden müssen.

Nun wollen wir das eben Gesehene auf die Dimensionen der GPS Signale übertragen. Wir haben gehört, dass der C/A-Code aus 1023 chips besteht, die mit einer Frequenz von 1,023 MHz gesendet werden, somit alle 1000 Mikrosekunden wiederholt werden. Bei einer Lichtgeschwindigkeit von etwa 300 000 km/s entspricht das einer Entfernung von 300 km. Das Signal wiederholt sich also sozusagen alle 300 km. Ein Balken (oder "Nichtbalken") der obigen Grafiken entspricht einem chip im GPS-Signal. Die von uns berechnete Signalverschiebung von 3 entspräche damit 3 chips oder 3 Mikrosekunden. Das entspricht einer Entfernung von 0,9 km.

Hier fallen jetzt zwei Dinge auf. Zum einen: Was soll eine Entfernung von 0,9 km bedeuten? Zum anderen wird der aufmerksame Leser sich fragen: Wenn man die Signalverschiebung nur auf 1 Mikrosekunde genau kennt, ist die Entfernung ja auch nur auf 300 m bekannt und wie kann GPS dann so genau sein? Die Antwort hierauf zuerst: Moderne GPS-Empfänger sind in der Lage, die Signalverschiebung auf bis zu 1 % eines chips zu bestimmen, wodurch die Entfernung zum Satelliten im Idealfall auf 3 m genau berechnet werden kann.

Nun zur ersten Frage: Die Pakete des C/A-Codes sind nummeriert (z-count). Wenn ein Datenpaket empfangen und dekodiert wurde, ist für den Empfänger die Zeit bekannt, zu der dieses Paket gesendet wurde. Aus der Zeitdifferenz zwischen dem Senden und dem Empfangen wird die Entfernung (Pseudorange; siehe hier) berechnet.