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 und die Empfangszeit beim Empfänger , multipliziert mit der Lichtgeschwindigkeit:
Dann wird das erklärt 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:
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.
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
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
äh
äh
GuillaumeJ
0xDBFB7
zephyr0110
Ryan C
Ludo