Wie wird die Mehrdeutigkeit in der Codephase bei der GNSS-Code-basierten Positionierung aufgelöst?

Für die Positionsbestimmung unter Verwendung von GNSS stellt ein typischer Einführungstext ( Beispiel-PDF ) das Konzept der Pseudoentfernungen als ungefähr die Zeit zwischen der Übertragung eines GNSS-Signals durch den Satelliten vor S und die Empfangszeit beim Empfänger R , multipliziert mit der Lichtgeschwindigkeit:

P = ( T R T S ) C

Dann wird das erklärt ( T R T S ) kann bestimmt werden, indem die lokale Kopie des PRN-Codes (zum Empfänger) verschoben wird, bis sie mit dem empfangenen Signal übereinstimmt (korreliert).

Ein PRN-Code für GPS L1 C/A ist jedoch 1 Millisekunde lang, und je nachdem, wo sich der Satellit befindet, kann die Laufzeit des Signals vom Satelliten zum Empfänger irgendwo zwischen etwa 65 ms (direkt über dem Kopf) und 86 ms liegen (kurz über dem Horizont). Sie können dort etwa 20 PRN-Codes einfügen. Das bedeutet, dass der Pseudobereich mehrdeutig ist, und keine der Quellen, die ich (bisher) gelesen habe, befasst sich mit dieser Mehrdeutigkeit (sie sprechen die Mehrdeutigkeit im Zusammenhang mit der Trägerphasenverfolgung an, aber das ist ein anderes Thema).

Das oben genannte PDF erwähnt es kurz:

Die grundlegende Information, die der C/A-Code enthält, ist die Zeit laut Satellitenuhr, zu der das Signal gesendet wurde (mit einer Mehrdeutigkeit von 1 ms, was leicht aufzulösen ist, da dies 293 km entspricht).

aber ohne zu beschreiben, wie man es "einfach löst". (Als Übung für den Leser?)

Frage: Wie wird die Mehrdeutigkeit in der Pseudoentfernung bei der codebasierten Positionierung aufgelöst?

Ich übersehe vielleicht etwas Offensichtliches. Einige mögliche Antworten, die mir einfallen, aber nicht genug begründen können:

  1. Beim Lösen der Navigationsgleichung lösen Sie nach dem Uhrenfehler des Empfängers. Dieser Fehlerterm absorbiert die gemeinsame Anzahl von Codezyklen unter allen Satellitenkanälen.
  2. Suchen Sie beim Starten des Trackings zB den Beginn des Telemetriewortes (oder einer anderen Markierung) in den Navigationsdaten in allen Satellitenkanälen. Stellen Sie den „nächsten“ Satelliten auf 65 ms Pseudo-Reichweite ein und gehen Sie dann wie in (1) vor.
  3. Es gibt einen Synchronisationsmechanismus, der es dem Empfänger ermöglicht, innerhalb von 1 ms der GPS-Zeit zu synchronisieren.

Ich interessiere mich für Antworten sowohl für GPS als auch für Galileo im Besonderen, aber auch allgemein gültige Antworten sind willkommen. Weitere Referenzen sind ebenfalls willkommen.

Für einen „Kaltstart“ hat man, sobald man eine „Broadcast-Ephemeride“ von vier Satelliten empfängt, vier Satellitentrajektorien. Ich weiß es nicht, aber es scheint zumindest für terrestrische Orte, die auf die Erdoberfläche beschränkt sind, keine geometrische Lösung zu geben, wenn einer der Pfade als 293 km länger oder kürzer angenommen wird. Für einen "Warmstart", bei dem es eine gute Schätzung gibt, wo der Satellit auf kürzlich gespeicherten Ephemeriden basiert, scheint dies sofort möglich zu sein. Es ist möglich, dass die Mehrdeutigkeit für die weltraumgestützte GPS-Ortung (von der ISS) gelegentlich eine Herausforderung darstellt.
Aber wie man das mathematisch beweist, weiß ich nicht.
Sie können das ESA GNSS-Buch hier lesen . Kapitel 5 beschreibt alle erforderlichen Gleichungen zur Berechnung der Pseudoentfernungsmessung, einschließlich aller zu berücksichtigenden Verzögerungen.
@Guillaume tolle Ressource, danke fürs Verlinken!
Ich verstehe nicht, wie diese 1 ms Mehrdeutigkeit überhaupt entsteht. Sobald wir uns auf einen Chip ausrichten, haben wir möglicherweise eine Mehrdeutigkeit in der Größenordnung von nur 1 Chip, was 293 m entspricht. Oder ist die Mehrdeutigkeit in der Zeitkennzeichnung in der Navigationsnachricht?
@Prakhar, wie ich es für meine Antwort interpretiert habe, ist, dass Sie nicht wissen, wie viele volle Millisekunden haben, wenn Sie nur den C / A-Code betrachten und alles andere ignorieren, da sich der C / A-Code genau alle 1 ms wiederholt abgelaufen. Die Lösung ist natürlich, alles andere nicht zu ignorieren.
@RyanC das ist in der Tat der Kern meiner Frage. Danke für eine ausführliche Antwort; Ich hatte selbst auch eine Antwort gefunden, die ich auch posten werde.

Antworten (2)

Nichts in der Navigationssignalverarbeitung ist so einfach, wie es die meisten Beschreibungen klingen lassen. Die Signalerkennungstheorie ist im Wesentlichen probabilistisch, daher machen Algorithmen ihre besten Vermutungen bezüglich der wahrscheinlichsten Dinge, die passiert sein könnten, aber es gibt immer eine Fehlerrate. Das Auflösen nach den ganzzahligen Offsets kann durchgeführt werden, wenn Sie bei der Definition eines Optimierungsverfahrens, wie es in dieser Arbeit [ 1 ] und diesem Artikel [ 2 ] untersucht wird, ausreichend vorsichtig und klug sind] von Sandra Verhagen und Peter Teunissen. Es gibt jedoch keinen gemeinsamen Offset: Jeder PRN-Code trägt seine eigene Mehrdeutigkeit. Es gibt auch viele mögliche Kompromisse zwischen Effizienz und Genauigkeit, roher Gewalt und cleveren Tricks, Speicheranforderungen und Prozessoranforderungen usw. Um sie im Detail zu verstehen, sind jedoch einige Kenntnisse in der digitalen Signalverarbeitung erforderlich, zu denen ich nicht in der Lage bin hier zur Verfügung stellen, obwohl ich auf einige davon beiläufig anspielen werde.

Es gibt viele Möglichkeiten, die Mehrdeutigkeit zu modifizieren oder aufzuheben. Die beiden Algorithmen, die ich beschreibe, sind nur diejenigen, die ich am einfachsten zu denken finde, was wenig bis gar nichts über ihre Genauigkeit oder Effizienz aussagt. Es kann für Sie hilfreich sein, diese MIT-Vorlesungsnotizen [ 3 ] über die GPS-Verarbeitung zu lesen, um eine Einführung in andere verschiedene Dinge zu geben, die für die Codeverfolgung versucht wurden, und einige Kommentare zum Anstellen von Vergleichen zwischen ihnen.

Hinweis: Ludos Frage betrifft die ganzzahlige Mehrdeutigkeit beim Verfolgen des C/A-Codes. Dies ist nicht dasselbe wie die meisten Dinge, die Sie finden, wenn Sie nach "GPS (oder GNSS) Integer Mehrdeutigkeit" suchen, die sich auf die Verfolgung der Phase des Signals beziehen. Das ist ein anderes Problem, auf das ich hier nicht eingehen werde.

Algorithmus Eins: Verwenden Sie einfach ein längeres Sample

Ein Kompromiss in diesem Fall ist, dass je länger das von Ihnen verwendete Beispiel ist, desto weniger zweideutig wird es. Praktische schnell ansprechende Filter beinhalten ausgefallene Tricks mit Mehrfachvergleichs-Voting-Schemata, die viele verschiedene Verzögerungsverschiebungen gleichzeitig verwenden, um einen Peak zu verfolgen, wie in Kapitel 7 dieses Buches [ 4], aber Sie können mit einer viel einfacheren Verarbeitung davonkommen, wenn Sie eine viel längere Eingabesequenz verwenden. Ja, der C/A-Code wiederholt sich jede Millisekunde, aber das ist nicht die einzige vorhandene Modulation: Das Signal enthält auch die Navigationsnachricht, die alle 20 C/A-Wiederholungen einen Bitübergang hat. Nur ein oder zwei Bits einer Navigationsnachricht sagen Ihnen sehr wenig, aber wenn Sie beispielsweise eine volle Sekunde an Daten verwenden, sind das 50 Bits der Navigationsnachricht. Dieses Signal von C/A und nav zusammen wiederholt sich genau höchstens einmal pro Unterrahmen und in längeren Sequenzen möglicherweise überhaupt nicht. Wenn Sie dies automatisch korrelieren, sehen Sie alle 20 ms eine Spitze, wenn Sie nur das Taktsignal der Nav-Nachricht erkennen. Wenn Sie sie jedoch alle hintereinander darstellen, sehen Sie die höchste Spitze bei der richtigen Verzögerung mit der falschen Mehrdeutigkeit Gipfel, die in beide Richtungen abfallen.

Wenn sich die Bitsequenz in dem Beispiel, das Sie zufällig ausgeschnitten haben, nie wiederholt, gibt es keine Mehrdeutigkeit mehr: Abschnitte gleicher Länge mit unterschiedlichen Bitmustern korrelieren nicht so stark, sodass Sie den gesamten Bereich möglicher Pseudobereiche abdecken und die beste auswählen können antworten. Wenn sich die Bitsequenz wiederholt, haben Sie die Mehrdeutigkeit um den gleichen Betrag geändert, um den Sie geändert haben, wie lange es dauert, bis die vollständige C/A-mal-Nav-Sequenz wiederholt wird, was das Abtastintervall sein sollte (es sei denn, das Bitmuster selbst besteht aus einem kurzen sich wiederholende Sequenz). Wenn Sie eine vollständige zweite Stichprobe verwenden, beträgt die verbleibende Mehrdeutigkeit nicht 300 Kilometer, sondern 300.000 Kilometer , was 3/4 des Weges zum Mond entspricht. Sie sollten keine Schwierigkeiten haben, welche davon auszuwählenUnklarheiten könnten für ein erdnahes Objekt möglicherweise sinnvoll sein.

Ich empfehle dies nicht als praktischen Ansatz! Seine einzige Anforderung ist, leicht erklärt zu werden. Es ist äußerst ineffizient und seine Genauigkeit wird durch einen grundlegenden physikalischen Effekt begrenzt, den Sie wirklich in jede GNSS-Verarbeitung einbeziehen sollten, was die Dinge komplizierter macht, aber auch dazu beiträgt, die Mehrdeutigkeit nur durch die richtige Behandlung zu beseitigen. Das heißt, da die Satelliten in Bewegung sind und die Bewegung des Empfängers nicht dieselbe ist, wird es eine Doppler-Verschiebung geben. Der Empfänger kann als stationär auf der rotierenden Erde angenommen werden, oder seine Geschwindigkeit kann als Teil der Gesamtlösung geschätzt werden, oder es kann angenommen werden, dass seine Geschwindigkeit durch andere Mittel bekannt ist und als Hilfseingang bereitgestellt wird. Auch für all das gibt es Fehler und clevere Tricks und all das Zeug.

Algorithmus Zwei: Löse gleichzeitig nach der Doppler-Verschiebung

Die Bedeutung der Doppler-Verschiebung für die Code-Erfassung besteht darin, dass die C/A-Code-Frequenz selbst Doppler-verschoben ist, sodass ihre Chip-Rate und ihre Wiederholungsrate beide um den gleichen Bruchteil erhöht oder verringert werden, um den die Trägerfunkfrequenz erhöht oder verringert wird. Wenn Sie das empfangene Signal mit Ihrem lokal generierten C/A-Code korrelieren, führt die Doppler-Verschiebung dazu, dass Ihr Signal nicht mit dem empfangenen Signal übereinstimmt, und geben Sie niedrige Werte für alle Verzögerungen, es sei denn, Sie erraten irgendwie die richtige Doppler-Verschiebung und verwenden sie dazu Ändern Sie Ihren lokal generierten Code so, dass er richtig mit der tatsächlich empfangenen Bitrate übereinstimmt. Das bedeutet, dass Sie eigentlich dieselbe Korrelationsprozedur gegen mehrere verschiedene Kopien des Codes ausführen müssen, deren Bitlängen durch eine Reihe möglicher beobachteter Dopplerverschiebungen geändert wurden, und dann die auswählenPaar aus Zeitverzögerung und Frequenzoffset, die zusammen die beste Anpassung ergeben. Dies erfolgt durch Berechnen der komplexen (oder Kreuz-) Mehrdeutigkeitsfunktion (CAF) und Auswählen des höchsten CAF-Peaks in zwei Dimensionen.

Durch diese Verarbeitungsmethode, bei der Sie gleichzeitig sowohl nach dem Zeitversatz (Pseudoorange) als auch nach dem Frequenzversatz (Dopplerverschiebung) auflösen, ist es normalerweise möglich, für beide eine bessere Antwort zu erhalten, als wenn Sie nach den beiden Versätzen aufgelöst hätten separat. Es bricht hoffentlich, aber nicht unbedingt, die Mehrdeutigkeit auf, indem es Ihnen ermöglicht, nach Inkonsistenzen zu suchen, wie z.

Es gibt eine umfangreiche Literatur zur CAF-Verarbeitung, zu der Stein (1981) [ 5] ist die standardmäßig extrem verkürzte Einführung. Ich werde auf keine der blutigen Details eingehen, außer einer kleinen Komplikation, die mein Interesse als Physiker weckt: Die Doppler-Verschiebung ist proportional zur Entfernungsrate. Da jede Zahl, die durch Signalverarbeitung berechnet wird, auf mindestens einer Anzahl von Abtastungen des Signals basieren muss und jede dieser Abtastungen einer bestimmten Zeitspanne entspricht, wird daher der wahre Pseudobereich am Anfang der Abtastung anders sein als am Anfang der Abtastung Ende. Dazwischen variiert sie kontinuierlich, sodass jede berechnete Pseudoentfernung eine Art gewichteter Durchschnitt sein muss, der alle Werte darstellt, die die momentane theoretische Pseudoentfernung im Zeitintervall der Probe annimmt. Daher gibt es technisch gesehen nicht nur eine richtige Antwort darauf, welche Pseudoentfernung aus einer Probe abgeleitet werden sollte. Dasselbe gilt für die Doppler-Verschiebung selbst! Es hat einen Wert am Anfang des Intervalls und einen anderen am Ende, aber der CAF versucht, all diese Variationen in einer einzigen am besten passenden Zahl zu kapseln.

Diese Effekte zusammen bedeuten, dass, obwohl für die Signalverarbeitung im Allgemeinen Lehrbuchbehandlungen genauer werden und das SNR wächst, wenn Sie längere Abtastungen bereitstellen, die Aufnahme längerer Abtastungen CAF-Peaks auf natürliche Weise von schönen scharfen Spitzen in niedrige, breite Klumpen mit schlecht definierten Mitten umwandelt. weil nur eine Zahl für Pseudoentfernung und Doppler dem nicht mehr gerecht wird. Je schneller sich die Reichweite und die Reichweitenrate ändern, desto weniger Zeit können Sie gewinnbringend für die Berechnung eines einzelnen CAF verwenden.

Verweise

[ 1 ] Sandra Verhagen. Die ganzzahligen GNSS-Mehrdeutigkeiten: Schätzung und Validierung. Doktorarbeit, Technische Universität Delft, 2005. ISBN 90-804-1474-3

[ 2 ] Peter JG Teunissen und Sandra Verhagen. Auflösung von GNSS-Mehrdeutigkeiten: Wann und wie beheben oder nicht beheben? Symposium für theoretische und computergestützte Geodäsie 6 (143-148), 2008. DOI 10.1007/978-3-540-74584-6_22

[ 3 ] Thomas Herring. Prinzipien des Global Positioning System, Vorlesung 7. MIT Open Course Ware, https://ocw.mit.edu/courses/earth-atmospheric-and-planetary-sciences/12-540-principles-of-the-global-positioning -system-spring-2012/lecture-notes/MIT12_540S12_lec7.pdf

[ 4 ] Kai Borre, Dennis M. Akos, Nicolaj Bertelsen, Peter Rinder und Søren Holdt Jensen. Ein softwaredefinierter GPS- und Galileo-Empfänger: Ein Single-Frequency-Ansatz. Springer-Verlag, 2007. ISBN 978-0-8176-4540-3

[ 5 ] Seymour Stein. Algorithmen zur Mehrdeutigkeitsfunktionsverarbeitung. IEEE Transactions on Acoustics, Speech, and Signal Processing 29.3 (588-599), 1981. DOI 10.1109/TASSP.1981.1163621

@uhoh guter Vorschlag, danke. Lassen Sie mich bei Ihrem nächsten erneuten Lesen bitte wissen, ob die neuen Stücke diese Antwort verdeutlichen.
@uhoh Bitte schön, Abschnittsüberschriften auf Anfrage.
"Dies ist nicht dasselbe wie die meisten Dinge, die Sie finden, wenn Sie nach "GPS (oder GNSS) Integer Ambiguity" suchen, in denen es darum geht, die Phase des Signals zu verfolgen. " - genau, sehr frustrierend, wenn Sie versuchen, dies zu recherchieren ... !

Die Antwort von Ryan C. liefert den Kern und viele nützliche Hintergrundinformationen. Der Knackpunkt ist:

Ja, der C/A-Code wiederholt sich jede Millisekunde, aber das ist nicht die einzige Modulation.

Die anderen Informationen, die auf das Signal aufmoduliert werden, können eine eindeutige Referenz liefern.

Es ist schwierig, Details darüber zu finden, wie Empfänger diese Probleme lösen, wahrscheinlich weil Empfängerhersteller ihre guten Ideen gerne schützen, aber GNSS-SDR ist ein Open-Source-Software-definierter GNSS-Empfänger, der viele Details darüber liefert, wie er funktioniert.

Ihr Ansatz zur Pseudoentfernungsberechnung wird auf ihrer Seite über Observables erklärt . Die Zusammenfassung ist, dass sie die Wochenzeit (TOW) verwenden, die sie aus der Navigationsnachricht extrahieren. Bei GPS wird das TOW alle 6 Sekunden im Handover-Wort (HOW) als Teil jedes Unterrahmens der Navigationsnachricht übertragen. Da alle Satelliten synchron senden und senden, ist das HOW (oder eigentlich die Präambel des Telemetrieworts, das direkt davor steht) ein gemeinsamer Bezugspunkt in allen Signalen aller Satelliten.

Dem Satelliten mit dem frühesten TOW wird eine Pseudoreichweite von 68,802 ms zugewiesen (nicht erklärt, entspricht aber einem Satelliten, der sich über dem Empfänger und nicht am Horizont befindet) und alle anderen Satellitenempfängerzeiten werden darauf bezogen. Der resultierende Satz von Pseudoentfernungen wird dann als anfängliche Schätzung für die Position verwendet und dann in nachfolgenden Iterationen weiter verfeinert. (Dies ist derselbe Ansatz, der in dem Buch* verwendet wird, auf das Ryan C verweist, erklärt in Abschnitt 8.4.1.)

Dieser Artikel in „Inside GNSS“ erklärt den gleichen Ansatz grafisch. Es führt auch einen zweiten Ansatz ein, der einfach zu verstehen ist, aber anscheinend in der Praxis nicht verwendet wird: Warten Sie einfach auf eine Markierung in der Navigationsnachricht auf jedem Tracking-Kanal und beginnen Sie von dort aus zu zählen.

*) „Ein softwaredefinierter GPS- und Galileo-Empfänger“, K. Borre et al., 2007

Ich habe irgendwo gelesen, dass TOW eine Zählauflösung von 1,5 Sekunden hat. Bedeutet das, dass das Signal immer an der 1,5-Sekunden-Grenze übertragen wird?
@Prakhar die TOW-Zählung hat tatsächlich eine Auflösung von 1,5 Sekunden. Das Signal ist kontinuierlich und alle Frequenzen sind ganzzahlige Vielfache voneinander, sodass sie sich schließlich immer wiederholen. Alle Satelliten sind auf denselben TOW ausgerichtet, sodass sie alle dasselbe Bit zur gleichen Zeit senden.
Das bedeutet also, dass das Signal an der 1,5-s-Grenze übertragen werden muss, sonst habe ich eine Unsicherheit von 1,5 s, wann es eingerastet wurde. Oder es muss ein weiteres Feld geben, um auch eine feinere Zeit anzugeben
@Prakhar richtig. Grundsätzlich verwenden Sie den TLM, der in der Nachricht direkt vor dem TOW steht, als Bezugspunkt (es gibt eine immer gleiche Präambel). Und dann fangen Sie an, von dort aus in Millisekunden zu zählen, und dann den letzten partiellen C/A-Code für Sub-Millisekunden. Dies erfordert, dass Ihre Empfängeruhr genau genug ist, um mindestens 6 Sekunden lang innerhalb einer Millisekundengenauigkeit zu bleiben (bis das nächste TLM kommt), was nicht so schwierig ist.
@Prakhar, so verstehe ich es wie folgt. Bei eigenständiger Verwendung sind alle Pseudobereiche modulo 1 ms (eine C/A-Codeperiode). Aber angenommen, dass es einen "Superframe" (SF) dieser C/A-Frames gibt und alle Satelliten den Superframe in der gleichen Epoche starten , dann wird die Mehrdeutigkeit aufgehoben: Verwenden Sie die 1 ms, die am Anfang des SF steht. Eine Möglichkeit, eine SF-Struktur zu haben, besteht darin, ein (beliebiges geeignetes) Feld in der (sich wiederholenden) Navigationsnachricht zu verwenden. Der Wert des Feldes ist irrelevant, es wird nur die Epoche seiner Übertragung verwendet (um den Beginn der SF zu markieren). Mit dem TOW wiederholt sich die SF alle 6000 C/A-Frames.
@NgPh Aber ohne dieses Epochenfeld bekommst du sowieso keine 1-ms-Sache! Ich kann meine PRN-Kopie nur mit der empfangenen abgleichen und das ist alles!! Wenn ich zufällige Daten in einer Nav-Nachricht sende, kann jemand die Genauigkeit der Position auf 1 ms ableiten?
@Prakhar, die Theorie von CDMA stellt sicher, dass Sie die C / A-Codesynchronisierung abrufen können, selbst wenn der C / A-Modulation eine Datenmodulation überlagert ist. Dies liegt daran, dass die C/A-Modulation viel schneller ist als die Datenmodulation. Wenn Sie die Daten nicht benötigen, können Sie sie trotzdem mit dem C/A synchronisieren. Auf diese Weise verfolgen Empfänger, wenn sie alle Navigationsnachrichten heruntergeladen haben.
@ngph Ich weiß das, aber angenommen, ich sende zufällige Daten ohne Zeitkenntnisse, ich weiß, dass C / A immer noch synchronisiert werden kann. Aber wie können Sie damit eine Pseudoreichweite ableiten?
@Prakhar Es muss immer eine konstante Markierung in den Navigationsdaten vorhanden sein, sonst könnten Sie sie nicht dekodieren. Bei GPS gibt es dafür eine 8-Bit-Präambel im TLM-Wort.
Dies ist in der Tat ein allgemeines Synchronisationsproblem bei jeder TDM-Übertragung (Time Division Multiplex). Sobald das Prinzip verstanden ist, ist keine Mathematik mehr erforderlich. Der digitale Strom ist in kurze Frames organisiert (für schnelle Synchronisierung), die kurzen Frames sind in "Superframes" (SF) organisiert und manchmal sind SF in längeren "Megaframes" organisiert. Sie benötigen mindestens ein Flag, um die SF (oder MF) zu zählen. Diese Flags werden manchmal Unique Word (UW) genannt. Vergleichen Sie dies damit, wie wir Zeit organisieren: Heute ist der 10. Tag des 12. Monats des Jahres 2021.