-
Die vorliegende Anmeldung betrifft Satellitennavigationssysteme und insbesondere die Bestimmung der fehlerhaften Detektion von Kreuzkorrelationssignalen als Satellitensignale.
-
HINTERGRUND
-
In Satellitenpositionsbestimmungssystemen kann Kreuzkorrelation zwischen einem starken empfangenen Satellitensignal und einem schwachen Satellitensignal den Grob-Akquisitions- bzw. C/A-Code eines schwachen Satellitensignals verhindern, kann bewirken, dass das globale Navigationssatellitensystem bzw. GNSS fehlerhafterweise das Kreuzkorrelationssignal als einen Satelliten akquiriert und trackt. Dieses Problem kann auftreten, wenn nur eine kleine Anzahl starker Satellitensignale verfügbar ist und der GNSS-Empfänger ein schwaches Satellitensignal akquiriert und dann während des Trackings fehlerhafterweise zum Tracken des Kreuzkorrelationssignals als das schwache Satellitensignal wechselt. Vergangene Systeme versuchten, Kreuzkorrelation zu mindern, um schwache Satellitensignale zu akquirieren/tracken.
-
Zu vergangenen Verfahren zur Kreuzkorrelationsminderung gehörten das klassische Nachkorrelations-Subtraktionsverfahren oder das Unterraumprojektionsverfahren. Das Nachkorrelations-Subtraktionsverfahren verlässt sich typischerweise auf Berechnung der Kreuzkorrelationssignatur des Schwachsatelliten-C/A-Spreizcodes mit einem erzeugten Signal, das den zu mindernden starken Satelliten repräsentiert. Das erzeugte Signal verwendet typischerweise die Trägerphase, Trägerfrequenz und Codephase, die aus dem Tracking des starken Satelliten erhalten werden, um das empfangene starke Satellitensignal zu schätzen. Die Korrelationssignatur wird dann durch die geschätzte Starksatelliten-Amplitude skaliert und von der Korrelation des empfangenen Signals mit dem Schwachsatelliten-C/A-Code subtrahiert.
-
Als Alternative kann bei dem Unterraumprojektionsverfahren die Korrelationssignatur mit einer Schwelle verglichen werden und der Schwachsatelliten-C/A-Code kann bezüglich Empfangssignalkorrelation modifiziert werden, um so die Kreuzkorrelation des starken Satellitensignals mit der modifizierten C/A zu verringern und ein Akquirieren/Tracken des schwachen Satellitensignals zu ermöglichen.
-
Das Nachkorrelations-Subtraktionsverfahren und das Unterraumprojektionsverfahren erfordern beide signifikante Schaltkreise in der GNSS-Vorrichtung. Zusätzlich kann bei ihnen in dynamischen Umgebungen schlechte Minderungsleistungsfähigkeit auftreten. Die Korrelationssignatur ist empfindlich gegenüber Fehlern in den Schätzungen von Amplitude und Phase des starken Satellitensignals. Eine Schätzung der Satellitenparameter kann aufgrund von sich ändernden Dopplerfrequenzverschiebungen und Fading, die in dynamischen Umgebungen oft auftreten, ungenau sein. Beim Unterraumprojektionsverfahren müsste für jede in der Korrelationssignatur verwendete Codephasenposition ein anderer C/A-Code abgeleitet werden. Integration des modifizierten C/A-Codes in die Korrelation mit dem Empfangssignal ist auch aufgrund der Codephasenabhängigkeit der Korrelationssignatur kompliziert zu implementieren.
-
Ein signifikanter Nachteil vorbekannter Verfahren zur Kreuzkorrelationsdetektion besteht darin, dass sie erfordern, dass der Empfänger Kenntnis über die Existenz der starken störenden Satelliten besitzen.
-
KURZFASSUNG
-
Die nachfolgend beschriebenen Ausführungsformen identifizieren und beseitigen falsche Satellitensignale, die Kreuzkorrelationssignale sind, ohne Vorkenntnis irgendwelcher möglicherweise störender starker Satellitensignale. Das beispielhafte Verfahren analysiert Korrelationssignale hinsichtlich einer kleinen Anzahl von Codephasen-Offsets relativ zu einer detektierten Spitze eines schwachen Satellitensignals, um zu bestimmen, ob das schwache Satellitensignal nicht ein echtes Satellitensignal, sondern ein Kreuzkorrelationssignal ist. Diese Korrelationssignale werden mit einem aus dem Spitzenwert abgeleiteten Schwellenwert verglichen. Falls eines dieser Korrelationssignale den Schwellenwert übersteigt, wird bestimmt, dass die Spitze eine falsche Spitze ist.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1A und 1B sind Graphen der Korrelationsamplitude als Funktion von Chipverzögerung, die zur Beschreibung der Funktionsweise einer beispielhaften Ausführungsform der Erfindung nützlich sind.
-
2 ist ein Graph der Korrelationsamplitude als Funktion von Chipverzögerung, der eine beispielhafte Autokorrelationseigenschaft zeigt.
-
3 ist ein Graph der Korrelationsamplitude als Funktion von Chipverzögerung, der eine beispielhafte Kreuzkorrelationseigenschaft zeigt.
-
4 ist ein Graph der Korrelationsamplitude als Funktion von Chipverzögerung, der eine beispielhafte Kreuzkorrelationseigenschaft bei Anwesenheit eines Trägerfrequenzoffsets zeigt.
-
5, 6 und 7 sind Graphen der Chip-Offsetzahl als Funktion der Codechipzahl, die zur Beschreibung der Funktionsweise einer beispielhaften Ausführungsform der Erfindung nützlich sind.
-
8 ist ein Blockschaltbild eines GPS-Empfängers, der zur Verwendung mit einer beispielhaften Ausführungsform der Erfindung geeignet ist.
-
9A ist ein Graph des Korrelationsspitzenbetrags als Funktion von Chipverzögerung, der zur Beschreibung der Funktionsweise einer beispielhaften Ausführungsform der Erfindung nützlich ist.
-
9B, 9C und 10 sind Flussdiagramme, die zur Beschreibung von beispielhaften Ausführungsformen der Erfindung nützlich sind.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Kreuzkorrelation kann falsches Einrasten auf einen starken Satelliten verursachen, während der GNSS-Empfänger nach einem schwachen Satelliten sucht. Satellitensignale des Global Positioning System (GPS) verwenden 1023-Bit-Pseudozufallsrauschen- bzw. –PRN-Spreizcodes, die sich jede Millisekunde wiederholen. Die von GPS-Satelliten verwendeten konkreten PRN-Codes sind Gold-Codes.
-
Diese Codes weisen gute Kreuzkorrelationseigenschaften auf. Insbesondere ist bei Trägeroffset null für die jeweiligen Satellitensignale die Kreuzkorrelation zwischen zwei beliebigen GPS-Signalen mit Bezug auf die Hauptautokorrelationsspitze auf etwa –24 dB begrenzt. Mit dem zusätzlichen Trägerfrequenzoffset im Bereich von ±5 kHz können jedoch Kreuzkorrelationssignale detektiert werden, die –20 dB oder weniger unter der Autokorrelationsspitze liegen. Obwohl die Erfindung im Hinblick auf ein GPS-System beschrieben wird, wird in Betracht gezogen, dass sie mit anderen GNSS-Systemen ausgeübt werden kann, wie etwa GLONASS, Galileo und Beidou. Außerdem kann die vorliegende Erfindung außerhalb von GNSS angewandt werden. Sie kann zum Beispiel zum Identifizieren von falschen Korrelationen zwischen nichtorthogonalen PRN-Codes verwendet werden, zum Beispiel in CDMA-Empfängern (Code Division Multiple Access).
-
In der Praxis können zwei Satellitensignale jeweilige Autokorrelations-Signalspitzen aufweisen, die sich um 20 dB oder mehr unterscheiden. Da dies im Bereich eines Kreuzkorrelationssignals von einem starken Satellitensignal und dem lokal erzeugten C/A-Code des schwachen Satelliten liegen kann, ist es möglich, dass diese Kreuzkorrelation fehlerhafterweise als ein bestimmtes erwünschtes Satellitensignal detektiert wird.
-
Kreuzkorrelation kann auch zu einem GNSS-Empfänger führen, der eine Kombination aus einem starken Satellitensignal und einer Schwach-Lokalcodedarstellung trackt, die zum Empfangen von Signalen aus einem schwachen Satelliten verwendet wird. Ein besonders problematisches Kreuzkorrelationsproblem liegt vor, wenn der Empfänger keine Kenntnis der Existenz des die Kreuzkorrelation verursachenden starken Signals hat. Ein Beispiel hierfür ist das von der japanischen Regierung gestartete Quasi-Zenith Satellite System (QZSS). QZSS sendet ein L1-C/A-Code-kompatibles Signal. Der L1-/C/A-Code hat zwei Formen, eine, die ein vordefinierter Standardcode für diesen Satelliten ist, und einen anderen Nicht-Standard-C/A-Code, der während des Satellitentestens gesendet wird. Der Standardcode ist ein PRN-Code, der geringe Kreuzkorrelation mit GPS-Signalen aufweist. Der Nicht-Standard-C/A-Code weist jedoch größere Kreuzkorrelation auf, die im Bereich von 20 dB unter dem Spitzenautokorrelationssignal eines starken Satelliten liegen kann. Korrelationssignale in diesem Bereich können fehlerhafterweise von einem GPS-System als GPS-Satelliten identifiziert werden.
-
Wenn ein Empfänger von einem starken Satellitensignal weiß, kann er diesen Satelliten akquirieren und tracken und Algorithmen wie die oben beschriebenen verwenden, um etwaige durch das starke Satellitensignal verursachte Kreuzkorrelationsverzerrungen vorherzusagen und zu mindern. In vielen Fällen weiß ein Empfänger nicht von einem neu gesendeten Signal. Beispiele wären Empfänger, die entwickelt wurden, bevor dieses neu gesendete Signal konzipiert wurde.
-
Das Tracken eines starken Signals, das aus einem zuvor unbekannten Sender kommt, kann zu fehlerhaften Positionsmessungen führen, da aufgrund der Kreuzkorrelation der PRN-Codes der Empfänger das unbekannte Satellitensignal für den C/A-Code eines bekannten Satelliten gehalten hat. Dieses falsche Einrasten auf ein unbekanntes Satellitensignal kann zu Positionsfehlern von hunderten von Kilometern führen.
-
Der Erfinder hat bestimmt, dass ein falsches Einrasten auf ein starkes Satellitensignal, das ein Frequenzoffset aufweist, oder ein unbekanntes Satellitensignal aufgrund von Kreuzkorrelation zwischen dem PRN des Kreuzkorrelationssignals und einem echten C/A-Code detektiert werden kann, indem die Leistung des korrelierten Signals bei ±N Chip-Offsets von der geschätzten Spitze analysiert wird. 1A zeigt eine Korrelation mit Autokorrelationseigenschaften, während 1B eine Korrelation mit Kreuzkorrelationseigenschaften zeigt. Wie in 1A zu sehen ist, besitzt die Autokorrelationsspitze 110 einen viel größeren Betrag als die Spitzen 112 und 114 bei Codephasen, die nur durch einige wenige Chips des C/A-Codes getrennt werden.
-
Der Erfinder hat bestimmt, dass dies bei einer durch Kreuzkorrelation eines bekannten C/A-Codes mit dem störenden Signal eines starken Satelliten oder eines unbekannten Satelliten verursachten falschen Korrelation nicht der Fall ist. Wie aus 1B zu sehen ist, ist die Kreuzkorrelation nicht auf eine einzige dominante geschätzte Spitze 120 begrenzt, sondern kann andere Spitzen (z. B. Spitze 112) aufweisen, die innerhalb eines Schwellenbetrags einer beliebigen geschätzten Spitze liegen. Wenn eine niedrigere Schwelle verwendet wird, können auch andere Spitzen, zum Beispiel die Spitze 124, detektiert werden.
-
2, 3 und 4 zeigen typische C/A-Codekorrelationseigenschaften. 2 ist ein Graph der Korrelationsamplitude und zeigt die Autokorrelationsleistungsfähigkeit von PRN 1. Dieser Graph zeigt die Korrelationsamplitude als Funktion der Verzögerung (C/A-Codephase). Wie in 2 gezeigt, existiert eine Spitzenkorrelation 210 von 1023, wenn die Codes ausgerichtet sind. 3 zeigt die Kreuzkorrelation zwischen PRN 1 und 2, wenn kein Trägerfrequenzoffset besteht. Es ist zu sehen, dass der größte Betrag dieser Kreuzkorrelationen wenigstens 24 dB kleiner als der in 2 gezeigte 1023-Spitzenautokorrelationswert ist.
-
4 zeigt Kreuzkorrelationseigenschaften zwischen PRN 1 und 2, wenn ein 1-kHz-Offset in der Trägerfrequenz eines der Satelliten vorliegt. Der Kreuzkorrelationsbetragswert 410 im ungünstigsten Fall ist nur etwa 20 dB kleiner als der Autokorrelationsspitzenwert.
-
Die in den nachfolgend beschriebenen beispielhaften Ausführungsformen verwendete Kreuzkorrelations-Detektionstechnik benutzt die Kreuzkorrelationseigenschaften von zwei beliebigen PRN-Codes mit bestimmten Eigenschaften. Insbesondere benutzt sie das Vorliegen einer hohen Wahrscheinlichkeit von mehrfachen Kreuzkorrelationsspitzen mit jeweiligen Beträgen, die innerhalb einer vorbestimmten Schwelle voneinander liegen und die auch innerhalb einer relativ kleinen Anzahl (±N) von Chip-Offsets voneinander liegen. Wie in 5 bis 10 gezeigt, hat der Erfinder bestimmt, dass diese Eigenschaften bei den von GNSS-Satelliten und -Empfängern verwendeten PRN-Codes nicht existieren.
-
5 zeigt ein Beispiel für eine Kreuzkorrelation zwischen PRN 1 und 2 mit einer auf 6 dB unter der geschätzten Spitze gesetzten Schwelle. 5 zeigt, wie viele Chip-Offsets (±N) separater Spitzen Beträge haben, die innerhalb der Schwelle voneinander liegen. Falls daher eine Spitze fehlerhafterweise als einer Ausrichtung mit einem bestimmten C/A-Code entsprechend detektiert wird (auf der Basis der Kreuzkorrelation des C/A-Codes und des tatsächlichen PRN, der empfangen wird), zeigt 5 die maximale Anzahl von Codephasen von jeder solchen Spitze zu einer anderen solchen Spitze mit einem Betrag relativ zu der einen Spitze. Wie in 5 gezeigt, entspricht die maximale Anzahl N von Codephasen, die analysiert werden müssen, 8 Chips des C/A-Codes.
-
6 zeigt ein Beispiel, das dem in 5 gezeigten ähnlich ist, mit der Ausnahme, dass das Trägeroffset eines der PRN-Codes 1 kHz beträgt. Wie aus dieser Figur zu sehen ist, muss, obwohl die Anzahl von Codephasen, die untersucht werden müssen, im ungünstigsten Fall größer (17 Chips) ist, im Mittel nur eine relativ kleine Anzahl von Codephasen analysiert werden, um ein falsches Einrasten aufgrund von Kreuzkorrelation zu detektieren. 7 zeigt, wie das Beispiel in 6 durch Vergrößern der Schwelle von 6 dB auf 10 dB verbessert werden kann. Wie in 7 gezeigt, wird im ungünstigsten Fall eine falsche Einrastung detektiert, indem eine Anzahl von Codephasen entsprechend 5 Chips analysiert wird.
-
Obwohl das oben beschriebene Verfahren Kreuzkorrelationsspitzen detektiert, kann es auch falsche Kreuzkorrelationsspitzen detektieren. Diese Spitzen sind Fälle, in denen der Empfänger auf einen schwachen C/A-Code eingerastet ist, aber hauptsächlich aufgrund von Rauscheffekten der Algorithmus fehlerhafterweise die Spitze als eine Kreuzkorrelationsspitze identifiziert.
-
8 ist ein Blockschaltbild von Schaltkreisen, die zur Verwendung als Kreuzkorrelationsspitzendetektor geeignet sind. Die beispielhaften Schaltkreise empfangen Satellitensignale über eine Antenne 810. Diese Signale werden durch HF-Schaltkreise 812 verarbeitet, zu denen zum Beispiel ein digitaler Mischer gehören kann, der die Satellitensignale in ein Zwischenfrequenz- bzw. ZF-Band heruntermischt. Ein Analog-Digital-Umsetzer (ADC) 814 digitalisiert die ZF-Signale. Die digitalisierten Signale werden dann durch einen digitalen Signalprozessor (DSP) 816 verarbeitet, der zum Beispiel die Abtastwerte unter Verwendung eines chipangepassten Filters (CMF) filtern kann, um Chipsignale zu verbessern. Das DSP-Filter kann auch die Effekte von schmalbandigen Störsignalen verringern. Die von dem DSP bereitgestellten Ausgangssignale werden in einem Eingangsabtastwertspeicher 818 gespeichert.
-
Die Abtastwerte aus dem Eingangsabtastwertspeicher 818 werden an einen Mischer 820 angelegt, der auch ein ZF-Trägersignal vom Träger-NCO (numerisch gesteuerter Oszillator) 822 empfängt. Der Träger-NCO wird durch den Mikroprozessor 802 gesteuert, um In-Phase(I)- und Quadratur(Q)- ZF-Trägersignale zu erzeugen, die bezüglich bekannter Dopplerverschiebungen des Satellitensignals kompensiert werden, so dass der Mischer 820 das Satellitensignal synchron in I- und Q-Komponenten demoduliert. Die I- und Q-Komponenten werden ihrerseits an ein angepasstes Filter (bzw. Optimalfilter) 824 angelegt. Das angepasste Filter 824 empfängt C/A-Code aus dem Codegenerator 828, der durch den Code-NCO 826 angesteuert wird. Der aus dem Codegenerator empfangene C/A-Code bildet die Koeffizienten des angepassten Filters. Die demodulierten I- und Q-Komponenten werden durch jeweilige angepasste Filter getrennt verarbeitet, um Korrelationswerte zu produzieren, die zum Beispiel die Summe der Produkte der Signale und der C/A-Codechipwerte repräsentieren.
-
Bei der beispielhaften Ausführungsform umfasst das angepasste Filter 824 ein (nicht gezeigtes) 32-Bit-Schieberegister, das gleichzeitig 32 verschiedene Codephasen jeweils an 32 Korrelatoren anlegt, wobei jede Codephase mit Bezug auf die vorherige Codephase um einen halben Chip verzögert ist. Jeder der Korrelatoren empfängt außerdem die durch den Mischer 820 bereitgestellten I- und Q-Signale. Die Ausgangssignale der angepassten Filter sind 32 Mengen von I- und Q-Signalen, die Korrelationen des Eingangssignals mit den 32 jeweiligen C/A-Codephasen repräsentieren, die 16 Chips abdecken. Diese Signale werden an 32 Absolutwertschaltungen 830 angelegt, die A = SQRT(I2 + Q2), die Beträge der durch das angepasste Filter bereitgestellten Signale, berechnen. Es kann eine Anzahl der nichtkohärenten Werte (A) für dasselbe Codephasen-Offset akkumuliert werden, um den effektiven Rauschabstand zu verbessern. Falls zum Beispiel A alle 20 Millisekunden für jedes von 32 Codephasen-Offsets berechnet wird, dann können sie weiter akkumuliert werden, um alle 1 Sekunden durch Akkumulieren von jeweils 20 ms Codephasen-Offset mit sich selbst 32 Codephasen-Offsets zu bilden.
-
Die Ausgangssignale der Absolutwertschaltungen 830 werden an einen Pufferspeicher angelegt, der die jeweiligen Werte zur Analyse durch den Mikroprozessor 802 speichert. Der Mikroprozessor analysiert die Daten im Pufferspeicher 832 gemäß dem in 9C gezeigten Algorithmus.
-
Wie oben beschrieben, hat der Erfinder bestimmt, dass eine Kreuzkorrelationsspitze eine sekundäre Spitze innerhalb einiger weniger Chipverzögerungen der Hauptspitze aufweist, die bezüglich Betrag der Hauptspitze nahekommt. Bei den nachfolgend beschriebenen Ausführungsformen ist die Betragsdifferenz zwischen der Hauptspitze und der sekundären Spitze, die angibt, dass die Hauptspitze eine Kreuzkorrelation ist, eine Anzahl von Dezibel. Der Kompromiss zwischen Kreuzkorrelationsdetektion (korrektes Detektieren der Anwesenheit eines Kreuzkorrelations-Track) und falscher Kreuzkorrelationsdetektion (Anzeige von Kreuzkorrelationsdetektion, wenn tatsächlich das korrekte Signal getrackt wird) kann über Simulation, einschließlich der Anwesenheit von Zufallsrauschen, analysiert werden. Zu den Varianten bei der Simulation gehören die Schwelle M, die Anzahl N verwendeter Korrelationsoffsets und der Rauschabstand der Empfangssignale. 9A zeigt eine Beispielspitze, die von dem in 8 gezeigten System getrackt wird. Der Prozessor 802 hat die Spitzenwerte im Pufferspeicher 832 analysiert und bestimmt, dass die Spitze C0 ein Satellit mit dem durch den Codegenerator 828 bereitgestellten C/A-Code ist. Wie in 9A gezeigt, ist es wahrscheinlich, dass die detektierte Spitze nicht mit dem identifizierten Satelliten in Beziehung steht, sondern stattdessen eine Kreuzkorrelationsspitze ist, weil Spitzen bei C2 und C3 vorliegen, die innerhalb einer Schwelle M der getrackten Hauptspitze liegen.
-
Die Werte N und M können für verschiedene Perioden der nichtkohärenten Integrationssummierung (NCS) verschieden sein. Längere NCS-Perioden führen typischerweise zu höheren Rauschabständen. Ein Frühbeendigungsalgorithmus kann verwendet werden, um zu bestimmen, ob eine Entscheidung getroffen werden sollte. Im Allgemeinen kann, falls der empfangene SNR höher ist, eine Entscheidung darüber, ob Kreuzkorrelation detektiert wird, schneller getroffen werden. Wodurch die Pd (Detektionswahrscheinlichkeit) und Pfa (Falschalarmwahrscheinlichkeit) in vernünftigen Grenzen gehalten werden. Ein beispielhafter Frühbeendigungsalgorithmus ist in 9B gezeigt.
-
Schritt
902 von
9B vergleicht die Spitze C0 mit einem Frühbeendigungs-Schwellenwert, multipliziert mit einem Maß des in einem Rauschkanal bereitgestellten Rauschens. Falls die detektierte Spitze C0 größer als dieser Wert ist, reicht der Rauschabstand aus, um im Schritt
906 die Kreuzkorrelationsprüfung durchzuführen. Der für die Kreuzkorrelationsprüfung verwendete Algorithmus ist in
9C, nachfolgend beschrieben, gezeigt. Nach Schritt
906 von
9B endet der Prozess im Schritt
908 und wird nochmals aufgerufen, wenn ein neuer potentieller Spitzenwert C0 gefunden wird. Wenn die Bedingung im Schritt
902 nicht erfüllt ist, wird Schritt
904 des Algorithmus ausgeführt, der auf die nächste NCS-Periode wartet und sich zu Schritt
902 zurückverzweigt, um auf der Basis der durch die Korrelation der zusätzlichen Abtastwerte bereitgestellten Korrelationswerte zu bestimmen, ob der Rauschabstand ausreicht. Beispielhafte Werte für NCS-Zahl, NCS-Zeit und Schwelle für den in
9B gezeigten Algorithmus, sowie für N und M im in
9C gezeigten Algorithmus sind in der folgenden Tabelle angegeben. TABELLE
NCS-Nr. X 20 ms | NCS-Zeit (ms) | Frühbeendigungsschwelle | M | N |
8 | 160 | 2,70 | 1/1,6 | 6 |
16 | 320 | 2,45 | 1/1,6 | 6 |
32 | 640 | 2,05 | 1/1,5 | 6 |
64 | 1280 | 1,88 | 1/1,5 | 6 |
128 | 2560 | 1,64 | 1/1,4 | 5 |
256 | 5120 | 1,31 | 1/1,2 | 4 |
512 | 10240 | 1,18 | 1/1,1 | 4 |
1024 | 20480 | 1,09 | 1/1,05 | 4 |
-
Der Prozess in 9C ist eine beispielhafte Kreuzkorrelationsprüfung 906 aus 9B. Der Prozess, der das Tracken des Satelliten S ist, beginnt im Schritt 910, der einen Wert M gemäß der Tabelle berechnet. Als nächstes setzt im Schritt 912 der Prozess C0 auf den Wert der Hauptspitze, die durch den Prozessor 802 aus den im Pufferspeicher 832 gespeicherten Werten detektiert wurde. Schritt 912 setzt außerdem eine Boolsche Variable XCORR auf falsch und eine Indexvariable n auf 1. Im Schritt 914 prüft der Prozess die Spitze an der Chipphase Cn gemäß der Ungleichung (1) Cn > C0·M (1)
-
Dieser Schritt bestimmt, ob der Wert an der Chipphase Cn innerhalb der Schwelle M der Hauptspitze C0 liegt. Wenn dem so ist, wurde Kreuzkorrelation detektiert, und im Schritt 920 setzt der Prozess die Variable XCORR auf Wahr. Nachdem eine Spitze, die innerhalb der Schwelle M der Hauptspitze liegt, identifiziert wurde, gibt der Prozess die Kontrolle an Schritt A ab, der nachfolgend mit Bezug auf 10 beschrieben wird.
-
Falls im Schritt 914 der Prozess bestimmt, dass der gespeicherte Wert an der Chipverzögerung Cn nicht innerhalb der Schwelle M der Hauptspitze C0 liegt, geht die Kontrolle zu Schritt 916 über, der bestimmt, ob alle Chipverzögerungen im Pufferspeicher 832 geprüft wurden. Wenn nicht, wird im Schritt 918 der Wert n inkrementiert und die Kontrolle an Schritt 914 übergeben, um den an der nächsten Chipverzögerung gespeicherten Wert zu prüfen.
-
Der in 9C gezeigte Prozess analysiert die Korrelationswerte an jedem der N Chipverzögerungsoffsets relativ zu der Hauptspitze, bis ein Wert innerhalb der Schwelle des Hauptwertes detektiert wird. Der Wert von N kann aus der Tabelle erhalten werden. Da Mehrwegeverzerrungen zu zusätzlichen Spitzen führen können, kann es wünschenswert sein, nicht jede Chipverzögerung zu analysieren, sondern die geprüften Chipverzögerungen auf diejenigen zu begrenzen, die mehr als eine oder zwei Chipverzögerungen von der Hauptspitze entfernt sind. Diese Modifikation des in 9C gezeigten Algorithmus sollte ausreichen, um Detektion von Mehrwegespitzen zu vermeiden, da diese typischerweise der Hauptspitze zeitlich nahe sind.
-
Falls der Prozess in 9C eine Kreuzkorrelation detektiert, können auch andere Kreuzkorrelationsspitzen unter den detektierten Satelliten existieren. Der Erfinder hat bestimmt, dass diese Kreuzkorrelationen Eigenschaften aufweisen, die dem detektierten Kreuzkorrelationssatelliten ähnlich sind. Insbesondere werden ihre Rauschabstände ähnlich sein, und ihre Frequenzen werden ungefähr in 1-kHz-Intervallen relativ zu der Frequenz des detektierten Kreuzkorrelationssignals liegen. Diese zweite Eigenschaft entsteht, weil die Kreuzkorrelationssignale mit den C/A-Codes verknüpft sind, die sich mit einer Periode von 1 ms wiederholen. Der Erfinder hat bestimmt, dass, falls diese zwei Kriterien durch irgendwelche der detektierten Satelliten erfüllt werden, detektierte Spitzen für diese Satelliten auch Kreuzkorrelationsspitzen sind.
-
Falls eine Kreuzkorrelation durch den in 9C gezeigten Prozess detektiert wird, kann der Prozess in 10 somit auf alle anderen detektierten Satelliten angewandt werden, um zu bestimmen, ob irgendwelche dieser Satelliten auch Kreuzkorrelationen mit demselben starken Satellitensignal sein können. Dieser Prozess durchschreitet alle detektierten Satelliten von 1 bis T und vergleicht den Rauschabstand und die Trägerfrequenz des Satelliten mit denen des detektierten Kreuzkorrelationssatelliten.
-
Der erste Schritt im Prozess, 1010, prüft den Wert XCORR. Falls dieser Wert Falsch ist, wurden keine Kreuzkorrelationsspitzen im Prozess von 9C detektiert, und der Prozess endet im Schritt 1026. Falls XCORR Wahr ist, (Schritt 1010) hat der Prozess in 9C Satellit S als auf der Basis einer Kreuzkorrelationsspitze fehlerhafterweise detektiert identifiziert. Im Schritt 1012 setzt der Prozess eine temporäre Variable p auf 1, berechnet die Werte ΔCN0p und ΔFp (d. h. das Rauschabstanddifferential für das Signal von Satellit p und die Differentialfrequenz Modulo 1 kHz für Satellit p) gemäß Gleichung (2) und (3). ΔCN0p = CN0s – CN0P (2) ΔFp = (Fp – Fs)Modulo 1 kHz (3)
-
Schritt 1014 bestimmt, ob Satellit p auch eine durch Kreuzkorrelation verursachte falsche Einrastung ist, indem bestimmt wird, ob ΔCN0p kleiner als ein Schwellen-Rauschabstanddifferenzwert ist, zum Beispiel 5 dB, und ob ΔFp kleiner als ein Schwellen-Modulo-Frequenzdifferenzwert, zum Beispiel 100 Hz, ist. Diese Werte werden nur als Beispiele angegeben und es wird in Betracht gezogen, dass andere Werte verwendet werden können. Falls diese zwei Bedingungen erfüllt sind, entfernt der Prozess dann im Schritt 1016 Satellit p aus der Liste detektierter Satelliten. Falls im Schritt 1014 die beiden Kriterien nicht erfüllt waren oder nach Schritt 1016 Schritt 1018 bestimmt, dass der letzte Satellit verarbeitet wurde, endet der Prozess im Schritt 1026. Falls Schritt 1018 bestimmt, dass der letzte Satellit nicht verarbeitet wurde, wird im Schritt 1020 dann p inkrementiert und die Kontrolle an Schritt 1014 abgegeben, um zu bestimmen, ob der nächste Satellit in der Liste ein echter Satellit oder eine falsche Einrastung auf der Basis einer Kreuzkorrelation ist.
-
Der in 10 gezeigte Prozess entfernt alle Satelliten, die auf der Basis von Kreuzkorrelationen detektiert wurden, aus der Liste detektierter Satelliten. Dazu gehört Satellit S, der durch den Algorithmus von 9C als falsche Einrastung identifiziert wurde, weil er notwendigerweise die Kriterien von Gleichung (2) und (3) erfüllen wird.
-
Die oben beschriebenen Ausführungsformen können in existierenden GPS-Einrichtungen relativ leicht zu implementieren sein, weil diese Einrichtungen typischerweise mehrere Codephasen-Offsets in ihre Trackingdaten aufnehmen, um Dauer- bzw. CW-Störsignale zu detektieren, oder zur Fern-Mehrwegedetektion. Somit kann das beschriebene Verfahren durch Hinzufügung einer kleinen Menge Software zu einem existierenden GPS-System implementiert werden.
-
Die oben beschriebenen Ausführungsformen detektieren fehlerhafte Kreuzkorrelations-Satelliteneinrastungen während des Satellitentrackings. Es wird in Betracht gezogen, dass ein ähnliches Verfahren während der Akquisitionsphase angewandt werden kann, um die anfängliche Akquisition eines Satelliten auf der Basis einer Kreuzkorrelation zu verhindern. Während der Satellitenakquisition werden mehrere Hypothesen für jeden C/A-Code geprüft. Um Kreuzkorrelation zu detektieren, kann der in 9C gezeigte Algorithmus auf jede Hypothese angewandt werden.
-
Die Erfindung wurde im Hinblick auf beispielhafte Ausführungsformen beschrieben. Es wird in Betracht gezogen, dass sie wie oben beschrieben mit Modifikationen innerhalb des Schutzumfangs der folgenden Ansprüche ausgeübt werden kann.