DE602004013356T2 - Verfahren und vorrichtung zur durchführung einer signalkorrelation unter verwendung vorgeschichtlicher korrelationsdaten - Google Patents

Verfahren und vorrichtung zur durchführung einer signalkorrelation unter verwendung vorgeschichtlicher korrelationsdaten Download PDF

Info

Publication number
DE602004013356T2
DE602004013356T2 DE602004013356T DE602004013356T DE602004013356T2 DE 602004013356 T2 DE602004013356 T2 DE 602004013356T2 DE 602004013356 T DE602004013356 T DE 602004013356T DE 602004013356 T DE602004013356 T DE 602004013356T DE 602004013356 T2 DE602004013356 T2 DE 602004013356T2
Authority
DE
Germany
Prior art keywords
correlation
signal
complex
frequency
coprocessor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE602004013356T
Other languages
English (en)
Other versions
DE602004013356D1 (de
Inventor
Charles Los Gatos ABRAHAM
Emre San Jose TAPUCU
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Global Locate Inc
Original Assignee
Global Locate Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Global Locate Inc filed Critical Global Locate Inc
Publication of DE602004013356D1 publication Critical patent/DE602004013356D1/de
Application granted granted Critical
Publication of DE602004013356T2 publication Critical patent/DE602004013356T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S1/00Beacons or beacon systems transmitting signals having a characteristic or characteristics capable of being detected by non-directional receivers and defining directions, positions, or position lines fixed relatively to the beacon transmitters; Receivers co-operating therewith
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/30Acquisition or tracking or demodulation of signals transmitted by the system code related
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/29Acquisition or tracking or demodulation of signals transmitted by the system carrier including Doppler, related
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/14Determining absolute distances from a plurality of spaced points of known location
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • H04B1/7073Synchronisation aspects
    • H04B1/7075Synchronisation aspects with code phase acquisition
    • H04B1/70751Synchronisation aspects with code phase acquisition using partial detection
    • H04B1/70752Partial correlation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/23Testing, monitoring, correcting or calibrating of receiver elements
    • G01S19/235Calibration of receiver components
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/35Constructional details or hardware or software details of the signal processing chain
    • G01S19/37Hardware or software details of the signal processing chain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • H04B1/7073Synchronisation aspects
    • H04B1/7075Synchronisation aspects with code phase acquisition
    • H04B1/7077Multi-step acquisition, e.g. multi-dwell, coarse-fine or validation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2201/00Indexing scheme relating to details of transmission systems not covered by a single group of H04B3/00 - H04B13/00
    • H04B2201/69Orthogonal indexing scheme relating to spread spectrum techniques in general
    • H04B2201/707Orthogonal indexing scheme relating to spread spectrum techniques in general relating to direct sequence modulation
    • H04B2201/70715Orthogonal indexing scheme relating to spread spectrum techniques in general relating to direct sequence modulation with application-specific features

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Signalkorrelatoren für digitale Signalempfänger, und insbesondere betrifft die Erfindung ein Verfahren und eine Vorrichtung zum Durchführen einer Signalkorrelation unter Verwendung von bisherigen Korrelationsdaten in zum Beispiel einem Empfänger eines Global Positioning System (GPS) (globalen Ortungssystems über Satelliten).
  • 2. Beschreibung des Standes der Technik
  • Der Prozess der Messung eines Signals eines Global Positioning System (GPS-Signals) beginnt mit einem Verfahren zum Suchen nach dem GPS-Signal in der Gegenwart von Rauschen, indem eine Reihe von Korrelationen des ankommenden Signals gegenüber einem bekannten pseudozufälligen Rausch-(PRN; pseudo-random noise)-Code unternommen wird. Der Suchprozess kann sich in die Länge ziehen, da sowohl die exakte Frequenz des Signals als auch die Verzögerung der Ankunftszeit nicht bekannt sind. Um das Signal zu finden, führen Empfänger traditionellerweise eine zweidimensionale Suche durch, bei der jede Verzögerungsmöglichkeit bei jeder möglichen Frequenz überprüft wird. Um das Vorhandensein eines Signals bei einer bestimmten Frequenz und einer bestimmten Verzögerungszeit (Laufzeit) zu testen, wird der Empfänger auf die Frequenz eingestellt, und das ankommende Signal wird mit dem bekannten PRN-Code korreliert, der um einen Betrag verzögert wird, der dem Zeitpunkt der Ankunft entspricht. Wenn kein Signal erfasst wird, geht die Suche weiter zu der nächsten Verzögerungsmöglichkeit, und nachdem alle Verzögerungsmöglichkeiten überprüft worden sind, geht sie weiter zu der nächsten Frequenzmöglichkeit. Jede einzelne Korrelation wird eine oder mehrere Millisekunden lang durchgeführt, um eine ausreichende Signalmittelwertbildung zu ermöglichen, um das Signal von dem Rauschen unterscheiden zu können. Da viele Tausende von Frequenz- und Verzögerungsmöglichkeiten überprüft werden, kann der gesamte Akquisitionsprozess einige zehn Sekunden dauern.
  • Vor kurzem sind neue Anwendungen der GPS-Technologie in drahtlosen Geräten aufgekommen, zum Beispiel die Verwendung von GPS in Mobiltelefonen, um eine Notfallortungsfähigkeit bereitzustellen. In diesen Anwendungen ist eine schnelle Signalerfassung in nur ein paar wenigen Sekunden erforderlich. Des Weiteren machen es diese Anwendungen erforderlich, dass ein GPS-Empfänger in rauen Signalumgebungen und im Inneren von Gebäuden funktioniert, in denen GPS-Signalpegel stark abgeschwächt werden. Das Erfassen von abgeschwächten Signalen erfordert es, dass jede Korrelation über einen relativ langen Zeitraum hin durchgeführt wird. So kann die Integration zum Beispiel über ein paar Sekunden hin durchgeführt werden, was im Gegensatz zu der Periode von 1 bis 10 Millisekunden steht, die in traditionellen GPS-Empfängern verwendet wird. Der zweidimensionale sequentielle Suchprozess, der von traditionellen Empfängern verwendet wird, wird bei solch langen Integrationszeigen unpraktisch, weil sich die gesamte Suchzeit um einen Faktor von 100 oder mehr erhöht.
  • Um den Suchprozess zu beschleunigen, fügen GPS-Konstrukteure zusätzliche Korrelatoren zu dem Empfänger hinzu, damit mehrere Ankunftszeitmöglichkeiten gleichzeitig überprüft werden können. Typischerweise benötigt jeder Korrelator, der hinzugefügt wird, einen separaten Codemischer und Signalakkumulator. Für ein gegebenes Empfindlichkeitsniveau verringert dies die Suchzeiten proportional zu der Anzahl an Korrelatoren. Um die Empfindlichkeit und die Akquisitionszeit zu erreichen, die in Anwendungen in Mobiltelefonen erforderlich sind, müsste das Design Tausende von Korrelatoren integrieren. Dieses Hinzufügen ist für ein Gerät der Verbraucherklasse typischerweise zu komplex und unerschwinglich teuer.
  • So beschreibt zum Beispiel das US-Patent 5,901,171 , das am 4. Mai 1999 ausgegeben wurde, eine dreifache Multiplexing-Technik, die es erlaubt, dass ein einzelner, gleichzeitig benutzter Verarbeitungsblock verwendet werden kann, um bis zu 20 gleichzeitige Korrelationen auf jedem von 12 Kanälen durchzuführen. Dies bietet eine Verbesserung der Leistung im Vergleich zu Konstruktionen mit einem einzigen Korrelator an, da Blöcke von 20 Verzögerungsmöglichkeiten gleichzeitig überprüft werden. Eine vollständige Signalsuche über einen gesamten Bereich von Verzögerungszeitunsicherheiten erfordert die Verwendung des Blockes von 20 Korrelatoren etwa 100 mal hintereinander, um 2046 Verzögerungszeiten zu überprüfen. Infolgedessen ist die Integrationszeit dann, wenn eine Akquisition in wenigen Sekunden durchgeführt werden muß, auf einige zehn Millisekunden begrenzt. Dies ist nicht ausreichend, um die Empfindlichkeit zu erzielen, die für Anwendungen von GPS im Inneren von Gebäuden benötigt wird.
  • Zur weiteren Verbesserung des Suchprozesses beinhalten andere GPS-Empfänger-Architekturen eine Verarbeitung, die in der Lage ist, eine Faltung zwischen dem ankommenden Signal und dem bekannten PRN-Code zu erzeugen. Dies ist äquivalent dazu, einen kompletten Satz von Korrelatoren bereitzustellen, der alle Zeitverzögerungs- bzw. Laufzeitmöglichkeiten über eine vollständige C/A-Codeepoche (1023 Chips) hin abdeckt, und das US-Patent 5,663,734 , das am 2. September 1997 ausgegeben wurde, beschreibt Software-Techniken auf der Basis der schnellen Fouriertransformation (FFT), um die notwendigen Korrelationsergebnisse unter Verwendung von Software-Algorithmen effizient zu erzeugen. Dieser Lösungsweg ist nicht für alle Anwendungen geeignet, da ein programmierbarer Digitalsignalprozessor (DSP) benötigt wird, um die FFT-Software ablaufen zu lassen, und ein großer Speicher wird benötigt, um unverarbeitete Signalabtastwerte zu speichern. Außerdem kann dieser Lösungsweg bedingt durch die Software-Berechnungen und die Tatsache, dass die Software-Verarbeitung erst dann startet, nachdem ein kompletter Schnappschuss des Signals gespeichert ist, eine große Verarbeitungsverzögerung aufweisen. In vielen Anwendungen wird eine Echtzeitverarbeitungslösung bevorzugt, vor allem eine, die keine umfangreiche Software-Verarbeitung mit sich bringt. Lyusin et al. beschreibt in "Fast Acquisition by Matched Filter Technique for GPS/GLONASS Receivers" auf den Seiten 307–315 Hardware-Lösungsansätze für die Durchführung der Faltung in Echtzeit unter Verwendung eines angepassten Filters mit 1023 Abgriffen. Das angepasste Filter besteht aus Schieberegistern, die groß genug sind, um eine vollständige C/A-Codeepoche aufzunehmen, sowie auch aus einer Breite-1023-Vektor-Multiplizierer- und Addierereinheit, die das innere Produkt zwischen einer vollen Epoche des Signals und dem C/A-Code erzeugt.
  • Die Schaltung ist in Bezug auf die Beschränkungen von kostengünstigen Verbrauchergeräten, wie etwa Mobiltelefonen, komplex. Andere Lösungswege mit angepasstem Filtern, wie sie etwa in Empfängern der Militärklasse für die P-Code-Erfassung verwendet werden, enthalten auch große Vektormultiplizierer.
  • Die US 2002/0172306 A1 offenbart einen GPS-Empfänger, der eine Vielzahl von Verarbeitungskanälen aufweist, die in einem Korrelationsverlaufsmodus (correlation history mode) arbeiten. Jeder Kanal weist einen RAM für das Speichern des Korrelationsverlaufs auf. Eine CPU verarbeitet einen Teil des Korrelationsverlaufs unter Verwendung von Software-Algorithmen, um Pseudoentfernungsdaten zu erzeugen, die verwendet werden, um die Position des GPS-Empfängers zu generieren.
  • Die US 2001/0048388 A1 offenbart einen GPS-Empfänger. Der Empfänger umfasst eine CPU, einen Korrelator und einen "HardWired Tracking Loop" (HTWL)-Koprozessor. Der HWTL-Koprozessor führt Erfassungs- und Tracking-Prozeduren aus, die in älteren Empfängern in Software in der CPU ausgeführt werden. Die Funktionen, die von dem HWTL-Koprozessor durchgeführt werden, umfassen Erfassungs- und Tracking-Funktionen wie zum Beispiel Trägerschleifen, Codeschleifen, die Codesperrenerfassung, die Costa-Sperrenerfassung, die Bitsynchronisierungsaktion, die Datendemodulation und die SWR-Datenerfassung. Der Korrelator führt die GPS-Signal-Verarbeitung durch. Die CPU ist entlastet, um Navigations- und Benutzeranwendungen bereitzustellen, die eine Verarbeitung bei einer niedrigeren Frequenz benötigen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß der Erfindung ist ein Verfahren zum Schätzen eines Satellitensignalparameters in einem Satellitenpositionierungssystem-Empfänger bereitgestellt, wie es im Anspruch 1 definiert ist.
  • Ein Ausführungsbeispiel der Erfindung stellt ein Verfahren und eine Vorrichtung zum Berechnen einer vollen Faltung zwischen einem Eingangssignal (z. B. einem GPS-Signal) und einem pseudozufälligen Rausch-(PRN)-Codebezug bereit, indem das Faltungsergebnis in Echtzeit erzeugt wird, ohne dass unverarbeitete Signalabtastwerte gespeichert werden, und ohne dass eine umfangreiche Sofware-Verarbeitung benötigt wird. Die Vorrichtung umfasst einen Vektormultiplizierer, der bei einer hohen Geschwindigkeit läuft, um das gleiche Ergebnis wie ein Vektormultiplizierer zu erzielen, der von der Größe her für die Verarbeitung einer gesamten Epoche ausgelegt ist. Das Ausführungsbeispiel kann in einer integrierten Schaltung implementiert werden, die für die Komplexitätsbeschränkungen eines Geräts der Verbraucherklasse, wie etwa ein Mobiltelefon, geeignet ist. Das Design umfasst die notwendige Logik, um eine Langzeit-Mittelwertbildung von Faltungsergebnissen zu ermöglichen, um eine hohe Empfindlichkeit zu gewährleisten. Dieses Ausführungsbeispiel ist in der Lage, Signale für die Verwendung bei der Ableitung einer Positionsstelle aus hochgradig abgeschwächten Signalen zu korrelieren, die Signale einschließen, die im Inneren von Gebäuden empfangen werden.
  • Die vollständige Vorrichtung besteht aus einem herkömmlichen GPS-Tuner, einer Dezimierungsschaltung, einem Faltungsprozessor und RAM-Blöcken, die Faltungsergebnisse sammeln. Der Faltungsprozessor läuft bei einer hohen Taktrate in der Größenordnung von 100 MHz und höher, was die Berechnung einer vollen Faltung durch wiederholte Verwendung eines kleinen Schaltungsblocks ermöglicht. Genauer gesagt wird jeder Punkt der Faltung in eine Reihe von partiellen Korrelationen zerlegt, von denen jede unter Verwendung eines Vektormultiplizierers erzeugt wird, der größenmäßig so ausgelegt ist, dass er nur einen Teil einer Epoche verarbeitet. Die Vorrichtung organisiert die partiellen Korrelationen, indem sie den C/A-Code in einen nicht überlappenden Satz von Codesegmenten unterteilt. Jede partielle Korrelation verwendet nur ein Codesegment gleichzeitig, was es erlaubt, dass der C/A-Code unter Verwendung einer Nachschlagetabelle effizient gespeichert und abgerufen werden kann.
  • Der Prozessor beginnt, indem er Eingangs-ZF-Abtastwerte dezimiert, um einen Signalstrom bei einer gewünschten Abtastgeschwindigkeit zu schaffen, wobei die Geschwindigkeit genau auf das Timing des ankommenden Signals abgestimmt ist. Wenn die gewünschte Abtastgeschwindigkeit Pf0 ist (P Abtastwerte pro C/A-Chip), dann wird die Abtastgeschwindigkeit so gesetzt, dass exakt 1023 × P Abtastwerte in jeder Signalepoche genommen werden. Der Prozessor korreliert die signaltaktgebenden Signale durch Schieberegister, die größenmäßig so bemessen sind, dass sie P × K Eingangsabtastwerte halten können, wobei K ein Faktor von 1023 ist. Bei jeder Signalverschiebung wird eine Reihe von M partiellen Korrelationsoperationen durchgeführt, wobei M so gewählt wird, dass M × K = 1023. Jede partielle Korrelation besteht aus dem Nehmen des inneren Produkts der Inhalte der Signalschieberegister mit einem Block von Bezugsabtastwerten, der durch das Erweitern eines Segments der Länge K des C/A-Codes auf P × K Abtastwerte erzeugt wird. Die Ergebnisse partieller Korrelationen werden in einem Speicher gesammelt. Durch das Sammeln von partiellen Korrelationsergebnissen erzeugt der Prozessor komplette Korrelationsergebnisse für viele Korrelationspunkte bis zu der vollständigen Faltung.
  • Zur Verbesserung der Korrelationsverarbeitung betreibt das Ausführungsbeispiel den Korrelator unter Verwendung eines Korrelationsverlaufsmodus. Ein RAM wird verwendet, um Korrelationsergebnisse über einen vorbestimmten Zeitraum zu speichern, der den Korrelationsverlauf bildet. Der Korrelationsverlaufsmodus wird verwendet, um Empfängerparameter zu schätzen bzw. zu berechnen, die eingestellt werden können, um den Doppler-Frequenzfehler und das Timing der Navigationsdatenbits für einen oder mehrere Satelliten vor der Durchführung der partiellen Korrelationsverarbeitung aufzulösen. Die geschätzten Empfängerparameter umfassen eine Frequenz eines Empfängeroszillators und/oder den Empfänger-Timing-Fehler.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Damit die Art und Weise, in der die oben erwähnten Merkmale der vorliegenden Erfindung erzielt werden, im Einzelnen verstanden werden kann, kann eine genauere Beschreibung der Erfindung, die oben kurz zusammengefasst worden ist, unter Bezugnahme auf Ausführungsbeispiele, von denen einige in den angehängten Zeichnungen veranschaulicht sind, gegeben werden. Es sei aber angemerkt, dass die angehängten Zeichnungen nur typische Ausführungsbeispiele der vorliegenden Erfindung veranschaulichen und deshalb nicht als Beschränkung ihres Schutzumfangs zu betrachten sind, da die Erfindung auch andere gleichermaßen effektive Ausführungsbeispiele zulässt.
  • 1 zeigt ein Blockdiagramm eines GPS-Empfängers, der die vorliegende Erfindung umfasst;
  • 2 zeigt ein Beispiel von Wellenformen, die von der Erfindung erzeugt werden;
  • 3 zeigt Einzelheiten einer akkumulierten Größe-Wellenform von 2;
  • 4 zeigt ein ausführliches Blockdiagramm des Faltungsprozessors und der Schaltungen, die Faltungsergebnisse verarbeiten;
  • 5 veranschaulicht ein Ablaufdiagramm eines Verfahrens der Operation der Erfindung;
  • 6 veranschaulicht graphisch ein vereinfachtes Beispiel der Berechnung einer vollständigen Faltung auf die traditionelle Art und Weise;
  • 7 veranschaulicht graphisch, wie die vollständige Faltung von 6 unter Verwendung der Erfindung durchgeführt wird;
  • 8 veranschaulicht ein Ausführungsbeispiels einer Code-Nachschlagevorrichtung, die für die Verwendung in der Erfindung geeignet ist;
  • 9 veranschaulicht ein Ausführungsbeispiel eines zweidimensionalen Codeschieberegisters, das für die Verwendung in einem alternativen Ausführungsbeispiel der Erfindung geeignet ist;
  • 10 veranschaulicht ein Blockdiagramm eines Korrelators, der in der Lage ist, in einem Korrelationsverlaufsmodus zu arbeiten;
  • 11 veranschaulicht ein RAM-Längendiagramm;
  • 12 veranschaulicht I- und Q-Signale, die durch den Korrelator von 10 verarbeitet werden;
  • 13 ist ein Ablaufdiagramm eines Verfahrens zur Durchführung der Signalverarbeitung unter Verwendung eines Korrelationsverlaufsmodus;
  • 14 ist eine dreidimensionale graphische Darstellung der Frequenz- und Bittakt-Schätzwerte über den Energieschätzwerten;
  • 15 ist ein Querschnitt der graphischen Darstellung von 14, aufgenommen entlang der Frequenzachse;
  • 16 ist ein Querschnitt der graphischen Darstellung von 15, aufgenommen entlang der Bittakt-Achse;
  • 17 ist ein Ablaufdiagramm eines Korrelationsprozesses, der einen Korrelationsverlaufsmodus verwendet;
  • 18 ist ein Blockdiagramm, das ein anderes Ausführungsbeispiel eines GPS-Empfängers veranschaulicht, der mit einer externen Verarbeitungseinheit gekoppelt ist;
  • 19 ist ein Ablaufdiagramm, das ein exemplarisches Ausführungsbeispiel eines Satellitensignalparameter-Schätzungsprozesses in Übereinstimmung mit der Erfindung veranschaulicht;
  • 20 ist ein Blockdiagramm, das ein exemplarisches Ausführungsbeispiel eines Koprozessors innerhalb des GPS-Empfängers von 18 veranschaulicht; und
  • 21 veranschaulicht ein Beispiel eines Bithistogramms, das in Reaktion auf einen Bittakt-Messbefehl erzeugt wurde.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • 1 veranschaulicht ein Blockdiagramm eines Empfängers 100 eines Global Positioning System (GPS), der die vorliegende Erfindung integriert. Die Verwendung eines GPS-Empfängers als die Plattform, in der die Erfindung integriert ist, bildet eine Anwendung der Erfindung. Andere Plattformen, die eine Signalkorrelation benötigen, können Verwendung für die vorliegende Erfindung finden.
  • Signale (wie etwa GPS-Signale) werden von einer Antenne 101 empfangen. Ein Hochfrequenz-in-Zwischenfrequenz-Wandler (HF/ZF-Wandler) 102 filtert, ver stärkt und frequenzverschiebt die Signale für eine Digitalisierung durch einen Analog-Digital-Wandler (A/D) 103. Die Elemente 101, 102 und 103 sind im Wesentlichen den Elementen ähnlich, die in einem herkömmlichen GPS-Empfänger verwendet werden.
  • Der Ausgang des A/D 103 ist mit einem Satz von Verarbeitungskanälen 1041 , 1042 ... 104n gekoppelt (wobei n eine ganze Zahl ist), die in digitaler Logik implementiert sind. Jeder Verarbeitungskanal 104n kann verwendet werden, um das Signal von einem bestimmten GPS-Satelliten zu verarbeiten. Das Signal in einem bestimmten Kanal wird digital von einem Tuner 105 eingestellt bzw. abgestimmt, der von einem numerisch gesteuerten Oszillator (NCO) 106 angetrieben wird. Der Tuner 105 dient zwei Zwecken. Erstens wird die ZF-Frequenzkomponenten, die nach der HF/ZF-Umwandlung übrigbleibt, entfernt. Zweitens wird die Satelliten-Doppler-Frequenzverschiebung, die sich aus der Satellitenbewegung, der Benutzerbewegung und den Bezugsfrequenzfehlern ergibt, entfernt. Die Ausgabe von dem Tuner ist ein Basisbandsignal, das aus einer Inphasekomponente (I) und einer Quadraturkomponente (Q) besteht. Die Schritte von 105 und 106 sind im Wesentlich denjenigen ähnlich, die in herkömmlichen GPS-Empfänger-Konstruktionen verwendet werden.
  • Eine Dezimierungsschaltung 107 verarbeitet die Ausgabe von 105. Die Ausgabe der Dezimierungsschaltung 107 ist eine Reihe von komplexen Signalabtastwerten mit I- und Q-Komponenten, die bei einer Geschwindigkeit ausgegeben werden, die zeitmäßig exakt so gesteuert ist, dass sie zu dem Timing des Eingangssignals passt. In einem Ausführungsbeispiel der Erfindung ist die Dezimierungsoperation ein einfacher Vorsummierer, der alle ankommenden Signalabtastwerte über den Zeitraum eines Ausgabeabtastwerts summiert. Ein numerisch gesteuerter Oszillator (NCO) 108 wird verwendet, um den Abtastprozess zeitlich zu steuern. Wenn zum Beispiel P = 2 ist, dann wird der Code-NCO 108 so eingestellt, dass er eine Frequenz von (2 × fS) erzeugt, wobei fS gleich f0 ist (die C/A-Code-Chipping-Rate des GPS-Signals), abgestimmt auf die Doppler-Verschiebung. Der NCO führt eine Anpassung an die Doppler-Verschiebung auf der Grundlage einer externen Eingabe von Firmware-Befehlen durch. Da die Doppler-Verschiebung für jeden Satelliten anders ist, werden ein separater Code-NCO 108 und eine separate Dezimierungsschaltung 107 für jeden Kanal 104n benötigt. Es sollte angemerkt werden, dass es keine Notwendigkeit dafür gibt, dass die ankommende Abtastwertrate ein ganzzahliges Vielfaches von fS ist, da der Code-NCO 108 in der Lage ist, eine willkürliche Frequenz zu erzeugen.
  • Wenn die Dezimierungsschaltung 107 ein Vorsummierer ist, dann wird die Anzahl an summierten Abtastwerten typischerweise zwischen zwei Werten hin- und herschalten, so dass über den langen Zeitraum das korrekte Abtastwert-Timing aufrecht erhalten wird. Wenn die ankommende Abtastgeschwindigkeit zum Beispiel 10 MHz ist und die gewünschte Abtastgeschwindigkeit 2,046 MHz ist, wird der Vorsummierer entweder 4 oder 5 Abtastwerte hinzufügen, so dass im Durchschnitt die gewünschte Abtastgeschwindigkeit aufrechterhalten bleibt.
  • Die Dezimierungsschaltung 107 kann auch einen Quantisierer (nicht gezeigt) an ihrem Ausgang enthalten, um die Anzahl an Bits in den Signalkomponenten vor der weiteren Verarbeitung zu reduzieren. In einem Ausführungsbeispiel der Erfindung wird eine 2-Bit-Quantisierung verwendet.
  • Die Signalabtastwerte von der Dezimierungsschaltung 107 werden mit einem Faltungsprozessor 109 gekoppelt. Der Faltungsprozessor 109 erzeugt Ergebnisse, die in Signal-Direktzugriffsspeichern (RAMs) 110a und 110b gespeichert werden. Genauer gesagt halten diese RAMs 110a und 110b einen komplexen Vektor, der die gesamte oder einen Teil der vollen Faltung zwischen dem Eingangssignal und einem Bezugs-PN-Code (z. B. einem GPS C/A-Code) ausmacht. Das Faltungsergebnis wird eine Spitze (Peak) an Punkten aufweisen, die einer hohen Korrelation zwischen dem Signal und dem Bezug (dem PN-Code) entsprechen. Wie unten noch ausführlicher erörtert werden wird, wird die relative Position dieser Spitzen für verschiedene Satellitensignale verwendet, um schließlich Positionsinformationen zu berechnen.
  • Der Faltungsprozessor 109 und die Signal-RAMs 110a und 110b akkumulieren Faltungsergebnisse für mehrere Epochen des GPS-Signals, was sich bei Intervallen von nominell 1 Millisekunde wiederholt. Wenn zum Beispiel 10 Millisekunden des Signals verarbeitet sind, sind die Werte in dem RAM 110a und 110b die Summe von 10 Korrelationsergebnissen, die jeweils über eine Epoche erzeugt worden sind. Alle individuellen Korrelationen sollten eine ähnliche Charakteristik aufweisen, da das Timing der Dezimierungsoperation gewährleistet, dass Abtastwerte an dem gleichen relativen Moment innerhalb jeder Epoche aufgenommen werden. Das Akkumulieren ähnlicher Ergebnisse von individuellen Korrelationen verbessert den Rauschabstand, wodurch die Fähigkeit des Empfängers gesteigert wird, schwache Signale zu erfassen. Diese Verarbeitung kann als eine kohärente Integration bezeichnet werden und kann, wie noch erörtert werden wird, mit einer Größenintegration kombiniert werden, um Korrelationsergebnisse zu ergeben, die über einen Zeitraum von bis zu mehreren Sekunden gemittelt sind.
  • Die Länge der Zeit, während der das kohärente Integrationsintervall durchgeführt wird, wird durch mehrere Faktoren beschränkt, die die nicht kompensierte Doppler-Verschiebung, GPS-Signal-Navigationsdatenbits und Phasenverschiebungen umfassen, die durch die Bewegung des Empfängers 100 verursacht werden. Diese Faktoren führen langsame, jedoch anscheinend zufällige Phasenschwankungen in die Signale ein. Über viele zehn Millisekunden hin bewirken diese Phasenänderungen eine destruktive Interferenz, die den Zweck der kohärenten Integration vernichtet. Deshalb führt der Empfänger 100, um lange Mittelwertbildungsintervalle zu erzielen, einen sekundären Schritt der Größenakkumulation durch. Genauer gesagt werden die Signale, die in den Signal-RAMs 110a und 110b gespeichert sind, periodisch zu einem komplexen Normalisierer 111 ausgegeben, der einen komplexen Größenwert des komplexen Faltungsvektors erzeugt. Die komplexen Größenwerte werden von einem Addierer 112 gesammelt und in einem Größen-RAM 113 gespeichert. Jedes Mal dann, wenn die komplexe Größe des Signals berechnet wird, werden die Signal-RAMs 110a und 110b gelöscht, um zu erlauben, dass eine andere kohärente Integration stattfinden kann. Der Prozess wird fortgesetzt, bis die gewünschte Anzahl von Größenakkumulationen vollendet ist. Wenn zum Beispiel das kohärente Mittelwertbildungsintervall 10 Millisekunden beträgt und 200 Größenakkumulationen gewünscht sind, dann wird der gesamte Prozess über 2 Sekunden laufen.
  • Nach der Faltungsverarbeitung enthält der Größen-RAM 113 einen Vektor, der die komplexe Größe des Faltungsergebnisses enthält und integriert ist, um den Rauschabstand zu verbessern. Wie unten noch erörtert werden wird, wird dieser Vektor durch Software-Algorithmen weiterverarbeitet, die von der CPU 114 ausgeführt werden, um Pseudoentfernungsdaten zu erzeugen, die verwendet werden, um die Position des Empfängers zu liefern. Es sollte angemerkt werden, dass die Berechnungsbelastung der CPU für diese Schritte im Vergleich zu einem herkömmlichen GPS-Empfänger oder einem auf FFT basierenden Korrelator ziemlich gering ist. In dieser Implementierung werden die berechnungsintensiven Aufgaben der Korrelation und Integration vor der Software-Verarbeitung fertiggestellt.
  • 2 zeigt Wellenformen 201I, 201Q und 202, die von den Komponenten von 1 erzeugt werden. Die Wellenformen 201I, 201Q und 202 sind Diagramme der Signalstärke (Achse 208) über den Code-Chips (Achse 210). Die Wellenformen stellen die Ausgabe des Faltungsprozessors 109 während der kohärenten Integration und der Größenintegration dar. Aus Gründen der Klarheit sind nur 9 Millisekunden der Signalverarbeitungszeit gezeigt, die aus 3 Größenakkumulationen besteht, die jeweils auf 3 kohärenten Integrationen basieren. In dem Beispiel ist P = 2, so dass es 2046 Signalabtastwerte pro kohärenter Integration gibt. Die Wellenformen 201I und 201Q sind die Ausgabe von dem Faltungsprozessor 109, wobei 201I die I-Komponente der Ausgabe ist und 201Q die Q-Komponente der Ausgabe ist. Jeder Block von 2046 Abtastwerten ist ein volles Faltungsergebnis, das in Echtzeit von dem Faltungsprozessor 109 aus den 2046 Signalabtastwerten erzeugt worden ist, die während des Intervalls verarbeitet wurden. Das Faltungsergebnis enthält Rauschen, außer in der Nähe einer einzelnen Spitze (wie diese durch die Bezugszahlen 206I und 206Q angegeben ist), die der Zeitverzögerung bzw. Laufzeit des Signals entspricht. Das Signal wiederholt sich in jeder Epoche, so dass die Spitze alle 2046 Abtastwerte erneut erscheint. Während der ersten drei Zyklen werden die Korrelationsergebnisse in dem RAM 110a und 110b akkumuliert, indem die Werte bei entsprechenden Laufzeiten von jeder Epoche summiert werden. (Zum Beispiel werden die Werte zu der Ausgangszeit 4 mit den Werten zu den Ausgangszeiten 2050 und 4096 summiert.) Die Korrelationsspitze erscheint immer an dem gleichen Laufzeit-Offset, und die Größe der Spitze vergrößert sich mit der Akkumulation, wobei sie über 3 Epochen hin grob verdreifacht wird. Der Pegel des Rauschens steigt ebenfalls, aber wächst nur wie die Quadratwurzel aus 3, da die Rauschkorrelation von Epoche zu Epoche nicht korreliert ist. Der Rauschabstand verbessert sich durch den Akkumulationsprozess, wobei er grob um die Quadratwurzel aus 3 ansteigt. Die Wellenform 201Q veranschaulicht den gleichen Signalakkumulationsprozess, der in dem Quadraturkanal stattfindet.
  • Beginnend mit dem vierten Zyklus des Signals werden die Signal-RAMs 110a und 110b auf Null gelöscht und der Signalakkumulationsprozess beginnt erneut. Die Wellenformen 201I und 201Q zeigen die Korrelationen, die 3 mal über 9 Signalepochen hin akkumuliert und ausgegeben werden.
  • An dem Ende des kohärenten Mittelwertbildungsintervalls wird die akkumulierte Größe des Signals berechnet und in den Größen-RAM 113 summiert. Das Signal in dem Größen-RAM 113 ist als Wellenform 202 gezeigt. In dem Beispiel wird die Wellenform 202 entsprechend der Vollendung jeder kohärenten Integration dreimal aktualisiert. Die Spitzen sind von den Bezugszeichen 2121 , 2122 , 2123 identifi ziert, und das Rauschen ist durch das Bezugszeichen 214 identifiziert. Wie gesehen werden kann, wächst der Rauschabstand mit jeder Größenakkumulation an, was die Fähigkeit des Systems weiter verbessert, die Spitze identifizieren zu können, die der Ankunftszeit entspricht.
  • Es sollte angemerkt werden, dass in diesem Beispiel die komplexe Phase des Signals über die 9 Epochen variiert hat. Insbesondere war das Signal anfänglich sowohl in den I- als auch in den Q-Kanälen vorhanden, hatte sich aber bei der letzten Epoche so gedreht, dass das Signal in dem I-Kanal stark war und in dem Q-Kanal beinahe abwesend war. Wie oben erwähnt worden ist, bewirken eine nicht perfekte Doppler-Verschiebungseinstellung und andere Effekte diese Drehung. Über viele Epochen hin würde sich die Phase durch viele Zyklen drehen, was zu einer Löschung des Signals führen würde, wenn es akkumuliert wird. Aus diesem Grund akkumuliert der erfindungsgemäße Empfänger kohärent über nur ein kurzes Intervall, wobei er sich auf die (nicht kohärente) Größenakkumulation für die Langzeit-Mittelwertbildung verlässt. Größenwerte sind unabhängig von der Phase und können erfolgreich über mehrere Sekunden integriert werden.
  • 3 veranschaulicht die akkumulierte Größenwellenform 202 genauer. Das Diagramm 300 zeigt die Größe der Faltung in der Nahe einer Spitze 2123 , die der Zeitverzögerung des Signals entspricht. Punkte auf der Code-Chip-Achse 210 sind in einem Intervall voneinander beabstandet, das gleich der C/A-Code-Chiplänge geteilt durch P entspricht, wobei P das Verhältnis der Signalabtastrate zu f0, der C/A-Code-Chipping-Rate, ist. In dem Beispiel ist P = 2, so dass die Punkte um halbe Chip-Intervalle bzw. etwa 500 ns voneinander beabstandet sind. (Dieser zeitliche Abstand entspricht einem Entfernungsunterschied von 150 Meter). Um Pseudoentfernungsmessungen in der Größenordnung von zehn Meter oder besser zu erzielen, werden die Faltungsergebnisse weiter verarbeitet, typischerweise in der CPU 114, um die Positionsinformationen zu erzeugen. Es gibt zahlreiche Interpolationstechniken, die verwendet werden können, um die wahre Laufzeit bzw. Zeitverzögerung zu ermitteln, und zwar unter Verwendung der diskreten Korrelationswerte, die von dem Faltungsprozess bereitgestellt werden. Ein Ausführungsbeispiel verwendet eine Schätzungstechnik der kleinsten Quadrate, um Parameter eines Signals zu identifizieren, die den verrauschten gemessenen Daten am besten entsprechen. Die ideale Antwort eines Signals ist die Größe der Autokorrelation des Signals. Es kann leicht gezeigt werden, dass diese Wellenform die Form eines aufrechten Dreiecks 302 aufweist. Die Breite 303 der Dreiecksbasis beträgt exakt 2 C/A-Code-Chips oder 4 Punkte in dem Faltungsergebnis (für den Fall, bei dem P = 2). Die Höhe 304 der Basis des Dreiecks ist die Größe des Rauschens in der Faltung für Zeitverzögerungen, die nicht dem Signal entsprechen. Die Größe dieses Rausches kann aus den Daten abgeschätzt werden oder kann auf der Grundlage von Designparametern wie etwa der Verstärkerrauschzahl, dem Kabel- und Filterverlust und der Systemtemperatur vorab berechnet werden. Die Spitze 305 des Dreiecks und der Mittelpunkt 306 des Dreiecks sind Unbekannte, die der Signalgröße und der Zeitverzögerung entsprechen. Die Methode der kleinsten Quadrate kann verwendet werden, um diese beiden Parameter so zu schätzen, dass sie die verrauschten Datenpunkte an ein Dreieck mit einer gegeben Spitze und einem gegebenen Mittelpunkt anpassen. 4 stellt ein ausführliches Blockdiagramm des Faltungsprozessors 109 (sowie auch der Schaltungen 400, die Faltungsergebnisse verarbeiten) dar, insbesondere Einzelheiten, die zeigen, wie eine vollständige Faltung durch die wiederholte Verwendung eines kleinen Schaltkreisblocks erzeugt wird. Die Operation dieser Schaltungen kann am besten unter gleichzeitiger Bezugnahme auf 4, auf ein Ablaufdiagramm von 5, das die Operation des Prozessors 109 von 4 repräsentiert, und durch einen Vergleich der einfachen Beispiele von 6 und 7 verstanden werden.
  • Signale von der Dezimierungsschaltung 107 werden mit Schieberegistern 401a und 401b gekoppelt, die jeweils I- und Q-Komponenten handhaben. Jedes Schieberegister 401a und 401b besitzt eine Länge P × K, wobei P die gewünschte Anzahl von Abtastwerten pro C/A-Code-Chip ist und K als ein Designparameter ausgewählt ist. Wie erläutert werden wird, ist K ein Faktor von 1023. Zur Vereinfachung der Erörterung konzentriert sich der Rest der Erörterung auf ein bestimmtes Ausführungsbeispiel, bei dem P = 2 (wobei die Abtastwerte um einen halben Chip voneinander beabstandet sind) und K = 33. Dies bedeutet, dass das Vorrücken des Signals durch das Schieberegister die Notwendigkeit für eine Schaltung zur Doppelpufferung des Signals eliminiert, wodurch die Kosten und die Komplexität der Implementierung reduziert werden.
  • Signale rücken durch die Schieberegister 401a und 401b mit einer Geschwindigkeit von 2f0 vor, wie dies von dem Code-NCO 108 zeitlich gesteuert wird. Die Signale bleiben in den Schieberegistern für viele Taktzyklen an Ort und Stelle, so dass eine Reihe von partiellen Korrelationsoperationen durchgeführt werden kann. Genauer gesagt werden insgesamt M partielle Korrelationen durchgeführt, wobei in diesem Beispiel M = 1023/K oder 31 ist. Jede partielle Korrelation besteht aus einer schnellen Vektormultiplikations- und -additionsoperation zwischen den Inhalten jedes Signalschieberegisters und einem Segment des Codes, das P × K (z. B. 66) Codeabtastwerte enthält. Die schnelle Vektormultiplikation und -addition findet in den Schaltungen 402a und 402b statt. Die Schaltungen 402a und 402b umfassen jeweils Multiplizierer 410a und 401b und Summierer 412a und 412b. Die Operation besteht aus der Multiplikation von jedem der 66 Signalabtastwerte in dem Signalregister 401a oder 401b mit 66 Codeabtastwerten (gebildet durch das Erweitern von 33 Codeabtastwerten mit dem Codeerweiterer 409) und das Summieren der Ergebnisse in dem Summierer 412a und 412b. Die Operation findet separat und gleichzeitig in den I- und Q-Kanälen statt. Mathematisch gesehen wird diese Operation als ein inneres Produkt bezeichnet, das definiert ist als
    Figure 00140001
  • Die Ausgabe der Vektormultiplikation und -addition kann erneut quantisiert werden, um die Zahlen in einem kleinen Bereich zu halten, damit ein Überfließen der RAMs 404a und 404b verhindert wird. Der Einfachheit halber ist der Quantisierer nicht gezeigt. In einem Ausführungsbeispiel erfolgt die Requantisierung auf 2 Bits der Auflösung.
  • Die Ergebnisse der Vektormultiplikation und -addition werden von Addierern 403A und 403b gesammelt und von den Schaltungen 400 verarbeitet, die die Faltungsergebnisse verarbeiten. Die Schaltungen 400 umfassen die Signal-RAMs 110a, 110b, den komplexen Normalisierer 111, den Addierer 112 und den Größen-RAM 113, gespeichert in den Signal-RAMs 111a und 404b. Der Akkumulationsprozess besteht aus dem Auslesen der aktuellen Werte für eine bestimmte Zeitverzögerung bzw. Laufzeit aus dem RAM 11a und 110b, dem Addieren der gerade berechneten partiellen Korrelationen und dem Schreiben der Summen zurück in die RAMs 110a und 110b. Durch das richtige Kombinieren von partiellen Korrelationen, die einer bestimmten Zeitverzögerung entsprechen, wird die gesamte Korrelation für diese Verzögerung berechnet. Wie vorher beschrieben worden ist, wird der Prozess über so viele Epochen des Signals lang fortgesetzt, wie dies gewünscht wird, um den Rauschabstand zu verbessern. Auf diese Weise dienen die Addierer 403a und 403b zwei Zwecken: der Kombination von partiellen Korrelationen innerhalb einer Epoche; und der Akkumulation von Korrelationen quer durch mehrere Epochen.
  • Die Ausgaben von den Signal-RAMs 110a und 110b werden in dem komplexen Normalisierer 405 kombiniert, um die Größe des Signals zu bilden. Die I- und Q-Wellenformen in diesen RAMs 110a und 110b können als der reelle und der imaginäre Teil einer komplexen Wellenform betrachtet werden. Das Bilden der Größe besteht aus dem Quadrieren jeder Komponente, dem Summieren der Ergebnisse und dem Bilden der Quadratwurzel des Ergebnisses. Es gibt mehrere Approximationen an die Größe, die verwendet werden können, um die Schaltung zu vereinfachen. In einem Ausführungsbeispiel wird die komplexe Größe approximiert, indem die skalare Größe von I und Q unabhängig voneinander genommen wird und indem bestimmt wird, welche größer ist. Die Größe kann approximiert werden, indem die größere Größe genommen wird und diese zu der einen Hälfte der kleineren Größe addiert wird.
  • Die Ergebnisse der Größenoperation können skaliert werden, um die Werte in einem kleinen Bereich zu halten, um so das Überlaufen des RAM 113 zu verhindern. Der Einfachheit halber ist ein Skalierer nicht gezeigt. In einem Ausführungsbeispiel besteht die Skalierung aus dem Verschieben des Ergebnisses um 3 Bits (d. h. Teilen durch 8).
  • Es wäre auch möglich, anstelle der Signalgrößen die Signalenergien zu akkumulieren. In diesem Fall wäre die Operation 405 eine Energieschätzung, die typischerweise dadurch berechnet wird, dass die Summe der Quadrate von I und Q gebildet wird. In diesem Fall müssten die Pseudoentfernungsbestimmungsalgorithmen, die unter Bezugnahme auf 3 beschrieben worden sind, geringfügig modifiziert werden, um eine Anpassung an eine Energiewellenform im Gegensatz zu einer Größenwellenform durchzuführen. Alternativ dazu könnten zusätzliche nichtlineare Operationen verwendet werden, um Werte zu erzeugen, die repräsentativ für die Größe oder die Energie von I und Q sind.
  • Die Ausgabe von dem komplexen Normalisierer 111 wird von dem Addierer 112 in den Größen-RAM 113 akkumuliert. Der Akkumulationsprozess besteht aus dem Auslesen des aktuellen Größenwerts für eine bestimmte Zeitverzögerung aus dem RAM 113, dem Hinzufügen des gerade berechneten Größenergebnisses und dem Schreiben der Summe zurück in den RAM 113. Wie vorher erörtert worden ist, wird die Größenakkumulation für so viele Zyklen wie notwendig fortgesetzt, um eine Verbesserung des Rauschabstands zu erlangen.
  • Die Vektormultiplizierer 402a und 402b führen M partielle Korrelationen für jede Verschiebung des Signals durch. Eine Code-Nachschlageschaltung 408 erzeugt die Bezugscodeabtastwerte für jede partielle Korrelation. Das Nachschlagen wird durch zwei Nachschlageindizes gesteuert. Zuerst muß der Code aus 1 von 32 Codes ausgewählt werden. Diese Auswahl ist während des Faltungsprozesses hindurch konstant und wird erstellt, wenn der Verarbeitungskanal konfiguriert wird, um ein bestimmtes Satellitensignal zu korrelieren. Der zweite Index ist ein Segmentindex zwischen 1 und M. Jeder C/A-Code besteht aus 1023 Chips, die in M sich nicht überlappende Segmente unterteilt sind, die jeweils aus K benachbarten Code-Chips bestehen. Der Nachschlageindex identifiziert, welches Codesegment benötigt wird. Die Ausgabe von der Code-Nachschlageschaltung sind K Chips, die das Segment aufweisen. Der Auswahlprozess wird von der Steuer-/Adresslogik 414 gesteuert.
  • Der Codeerweiterer 409 nimmt als seine Eingabe K Chips eines Segments und erweitert das Segment zu K × P Codeabtastwerten. Die Erweiterungsoperation besteht aus der Umwandlung jedes Code-Chips in P identische Codeabtastwerte. Die Ausgabe von dem Codeerweiterer 409 bildet die Bezugscodeeingabe zu den Vektormultiplizierern 402a–b. In dem Beispiel besteht die Ausgabe aus dem Codeerweiterer aus 66 Abtastwerten, die aus 33 einzigartigen Werten bestehen, von denen jeder zweimal repliziert wurde.
  • Die Architektur, die in 4 gezeigt ist, erfordert einen Takt, der beträchtlich schneller als die C/A-Coderate f0 ist. Wenn zum Beispiel zwei Abtastwerte pro C/A-Code-Chip verwendet werden (P = 2) und K und M jeweils 33 bzw. 31 sein sollen, dann erfordert das Erzielen der vollen Faltung das Durchführen von 31 partiellen Korrelationen für jede Verschiebung des Signalschieberegisters, welche mit einer Geschwindigkeit von 2 × f0 voranschreitet. Typischerweise werden wenigstens zwei Taktzyklen benötigt, um die RAMs 110a und 110b zu lesen und zu schreiben. Wenn man zwei Taktzyklen voraussetzt, dann ist die minimale Taktrate, die benötigt wird, um die volle Faltung zu erzielen: fclk = 2 × 31 × 2 × f0 = 2 × 31 × 2 × 1,023 MHz ≈ 127 MHz
  • Diese Geschwindigkeit ist in einer modernen integrierten Schaltungslogik leicht erzielbar.
  • Es sollte angemerkt werden, dass die Erfindung auch verwendet werden könnte, um eine Untermenge der vollen Faltung zu berechnen. In diesem Fall werden weniger als M partielle Korrelationen für jede Verschiebung des Signalschieberegisters durchgeführt. In diesem Fall wird der gesamte Bereich von Laufzeigen kleiner als P × 1023 sein, was eine volle Faltung ausmacht. Insbesondere dann, wenn M2 partielle Korrelationen durchgeführt werden, dann werden M2 mal K mal P Verzögerungswerte erzeugt. Die Taktrate zu dem Prozessor wird um das Verhältnis von M2 zu M reduziert. Außerdem wird auch die Größe der RAMs um dieses Verhältnis reduziert. Auf diese Weise kann diese Alternative in Systemen nützlich sein, die nicht die rechen- oder Speicherressourcen für die Verarbeitung der vollen Faltung aufweisen.
  • Andere Auswahlen für K und M führen dazu, dass es erlaubt ist, weitere Designkompromisse einzugehen, aber da die Primfaktoren von 1023 3, 11 und 31 sind, sind die Auswahlen für K und M beschränkt. Das Reduzieren von K ist wünschenswert, da dadurch die Größe der Schieberegister 401a und 401b und die Komplexität der Vektormultiplizierer 402a und 402b reduziert werden, aber dadurch wird ein größeres M und deshalb eine große Taktrate benötigt. Die Auswahlen für K sind 3, 11, 31, 33 und 93. Diese Auswahlen würden jeweils Taktraten von 1,39 GH 7,380 MHz, 135 MHz, 127 MHz bzw. 45 MHz erfordern (immer unter der Annahme von P = 2 und 2 Taktzyklen pro partieller Korrelation). Auf der Grundlage der Technologie, die zu dem Zeitpunkt der Demonstration verfügbar war, wurde für ein Ausführungsbeispiel die Auswahl von K = 33 getroffen. Bei zukünftigen Technologien kann die Auswahl von K = 11 und eine Taktrate von 380 MHz realisierbar werden und würde zu einer weiteren Reduktion der Logikkomplexität führen. Infolgedessen weist die Architektur das wünschenswerte Attribut auf, dass sie optimierte Kompromisse zwischen Geschwindigkeit und Logikkomplexität unterstützt.
  • Das Sequentialisieren von Codesegmenten wird von der Steuerlogik 41 gesteuert. Diese Steuerlogik identifiziert auch die korrekten Adressen für die RAMs 110a, 110b und 113. Wie unten noch erörtert werden wird, werden die partiellen Korrelationen in einer nichtsequentiellen Reihenfolge erzeugt, und infolgedessen ist die Erzeugung von RAM-Adressen nicht trivial.
  • Die Operation der Schaltungen von 4 kann auch unter Bezugnahme auf das Ablaufdiagramm von 5 verstanden werden. Die Operation beginnt bei dem Schritt 501 mit einem Vorabladen der Signalschieberegister 401a und 401b. An diesem Punkt kann die Faltungsverarbeitung beginnen. Bei dem Schritt 502 wird auf ein Codesegment für die spezielle partielle Korrelation zugegriffen. Beim Schritt 503 wird das Codesegment durch den Codeerweiterer erweitert, um P Abtastwerte pro C/A-Chip zu haben. Als nächstes werden im Schritt 504 der Verzögerungsindex und die entsprechenden RAM-Adressen berechnet. Der Verzögerungsindex gibt an, welcher Punkt der vollen Faltung durch die partielle Korrelation aktualisiert werden wird. Wie aus dem in Verbindung mit 7 erörterten Beispiel offensichtlich werden wird, springt der Verzögerungsindex in einer nichtlinearen, aber deterministischen Art und Weise umher. Die Adressenberechnung ist eine Funktion der Anzahl von Signalverschiebungen und des Codesegments.
  • Im Schritt 505 wird die partielle Korrelation unter Verwendung der Vektormultiplizierer 402a und 402b berechnet. Beim Schritt 506 wird das Ergebnis in die Signal-RAMs an der Stelle akkumuliert, die von dem Verzögerungsindex angezeigt wird. Als nächstes wird im Schritt 507 eine Überprüfung durchgeführt, um zu bestimmen, ob die Verarbeitung das Ende des kohärenten Integrationsintervalls erreicht hat. Wenn nicht, dann kehrt das Verfahren zurück zu Schritt 502a und wiederholt die obigen Schritte für das nächste Codesegment.
  • Wenn bei dem Schritt 507 die Überprüfung anzeigt, dass partielle Korrelationen für alle Codesegmente vollendet sind (z. B. 31 partielle Korrelationen), dann geht das Verfahren weiter zum Schritt 508. Beim Schritt 508 werden die Signalregister 401a und 401b um einen Abtastwert verschoben.
  • Der Prozess bewegt sich dann weiter zum Schritt 509, bei dem eine Überprüfung durchgeführt wird, um zu sehen, ob die letzte Verschiebung auf das Ende des kohärenten Integrationsintervalls gestoßen ist. Wenn nicht, dann kehrt der Prozess zurück zu dem Start beim Schritt 502. Wenn die Überprüfung das Ende des kohärenten Integrationsintervalls anzeigt, dann geht das Verfahren weiter zum Schritt 510, bei dem die Signalgrößenordnung von dem komplexen Normalisierer 111 berechnet wird. Das Ergebnis wird unter Verwendung des Addierers 112 addiert und in dem Größen-RAM 113 gespeichert. Als nächstes wird beim Schritt 511 eine Überprüfung durchgeführt, um zu bestimmen, ob alle Größenakkumulationen durchgeführt worden sind. Wenn ja, dann wird das Verfahren im Schritt 512 abgeschlossen. Wenn nein, dann geht die Verarbeitung weiter, indem die nächste partielle Korrelation beim Schritt 501 durchgeführt wird.
  • Die 6 und 7 veranschaulichen durch ein vereinfachtes Beispiel, wie die Erfindung partielle Korrelationen verwendet, um ein Ergebnis einer vollen Faltung zu akkumulieren. Aus Gründen der Klarheit veranschaulichen diese Diagramme eine Faltung eines sehr kurzen Codes mit einer Länge 6 im Gegensatz zu dem C/A-Code eines GPS Signals mit der Länge 1023. Zur weiteren Vereinfachung des Beispiels wird ein Abtastwert pro Code-Chip verwendet, d. h., P = 1. 6 veranschaulicht eine Faltung durch einen standardmäßigen Lösungsansatz mit einem angepassten Filter, und 7 veranschaulicht die identische Faltung durch das Verfahren der Kombinierung von partiellen Korrelationen. Die Einzelheiten von 7 sind hilfreich bei dem Verständnis der gesamten Operation der Erfindung. Beide Verfahren erzeugen identische Faltungsergebnisse.
  • 6 zeigt die Operation eines herkömmlichen angepassten Filters für ein Signal der Länge 6. Die Operation beginnt an dem Zeitpunkt, der als Verschiebung (Shift) 0 angezeigt ist. An diesem Zeitpunkt befinden sich 6 aufeinanderfolgende Signalabtastwerte, die einen gesamten Zyklus des Signals einschließen, in dem Signalschieberegister 601. Einzelne Abtastwerte werden mit Großbuchstabenindizes A, B, C, D, E und F bezeichnet. Codeabtastwerte für den gesamten Code der Länge 6 werden in dem Bezugsregister 602 gehalten und werden mit Kleinbuchstabenindizes a, b, c, d, e und f bezeichnet. Zu dem Zeitpunkt der Verschiebung 0 werden eine Vektormultiplikation und -addition durchgeführt, um das Korrelationsergebnis für die Verschiebung 0 zu erzeugen. Jeder Signalabtastwert wird mit einem entsprechenden Codeabtastwert multipliziert, und die Ergebnisse werden summiert, um das Korrelationsergebnis 603 hervorzubringen.
  • Als nächstes wird das Signalschieberegister 604 um einen Abtastwert vorwärts geschoben, wie dies durch die Verschiebung 1 angezeigt ist. Das Signal ist periodisch, so dass der neue Abtastwert, der an der linken Seite des Registers eingeführt wird, identisch zu dem ist, der rechts hinausgeschoben worden ist. Die verscho benen Inhalte des Registers 604 sind nun Abtastwerte mit den Indizes F, A, B, C, D und E. Der Code wird nicht verschoben. Die Vektormultiplikation und -addition ergibt nun ein Korrelationsergebnis 605 für die Verschiebung 1. Dieser Prozess des Verschiebens wird für 5 weitere Verschiebungen fortgesetzt, wobei an diesem Zeitpunkt alle 6 Korrelationsergebnisse, die die volle Faltung ausmachen, zur Verfügung stehen.
  • 7 veranschaulicht, wie das gleiche Faltungsergebnis durch das Verfahren der partiellen Korrelationen erhalten werden kann. Wie beschrieben ist, erfordert es die Erfindung, dass der Code in M Segmente mit einer Länge K zerlegt wird. In dem vereinfachten Beispiel von 7 wurde der Code der Länge 6 in 3 Segmente mit einer Länge 2 zerlegt, d. h. K = 2 und M = 3. Die Operation beginnt an einem Zeitpunkt, der an der Verschiebung 0 angegeben ist. Zu diesem Zeitpunkt sind zwei Signalabtastwerte in dem Signalschieberegister 701 gespeichert. Die Signalabtastwerte sind mit den Großbuchstabenindizes A und B bezeichnet. Die 6 Abtastwerte des Codes sind in 3 Segmenten mit jeweils einer Länge von 2 enthalten. Das erste Codesegment 702 enthält 2 Codeabtastwerte, die mit den Kleinbuchstabenindizes a und b bezeichnet sind. Das Signal wird für 3 partielle Korrelationsoperationen an Ort und Stelle gehalten, was zu den partiellen Korrelationsergebnissen 703a, 703b und 703c führt. Das erste partielle Korrelationsergebnis wird durch eine Vektormultiplikation und -addition zwischen den Inhalten des Signalsregisters und dem ersten Codesegment (Segment 1) erzeugt. Die zweiten und dritten Ergebnisse werden durch Vektormultiplikationen des Signalregisters jeweils mit den zweiten und dritten Codesegmenten erzeugt. Es sei angemerkt, dass das Signalregister für eine ausreichende Zeit an Ort und Stelle gehalten wird, damit alle drei Vektormultiplikationen durchgeführt werden können, und dass der Code während dieser Zeit nicht verschoben wird, sondern dass statt dessen andere Codesegmente ausgewählt werden.
  • Die partiellen Korrelationsergebnisse werden in den Speicher entsprechend der Signalpfade 705 akkumuliert. Zum Beispiel wird bei der Verschiebung 0 die partielle Korrelation von dem ersten Codesegment in das Korrelationsergebnis 704 aufsummiert. Die partielle Korrelation von dem zweiten Segment wird in das Korrelationsergebnis 706 für die Verschiebung 2 aufsummiert. Die partielle Korrelation von dem dritten Segment trägt zu dem Korrelationsergebnis 708 für die Verschiebung 4 bei.
  • Nach drei partiellen Korrelationen wird das Signal verschoben. An dieser Stufe, die als Verschiebung 1 angezeigt ist, enthält das Signalregister die Abtastwerte F und A. Wiederum werden drei partielle Korrelationen mit den gleichen drei Codesegmenten wie vorher erzeugt. Die Ergebnisse aus diesen partiellen Korrelationen tragen jeweils zu den Korrelationsergebnissen 710, 712, 714 für die Verschiebungen 1, 3 und 5 bei. Der Prozess geht für 4 weitere Signalverschiebungen weiter, wobei an diesem Zeitpunkt das volle Faltungsergebnis zur Verfügung steht. Wie gesehen werden kann, erfordert die Operation die Erzeugung von insgesamt 18 partiellen Korrelationen, die zu den 6 vollen Ergebnissen beitragen, die die Faltung enthalten.
  • Die Architektur, die in 7 beschrieben ist, veranschaulicht zwei wichtige Eigenschaften der Erfindung. Erstens ist es offensichtlich, dass die vollständige Faltung für einen Code der Länge 6 unter Verwendung nur eines Schieberegisters und einer Vektormultiplikations- und -additionseinheit der Länge 2 erzeugt wurde. Dies erfordert weniger Schaltungen als in 6, wobei diese Elemente eine Länge von 6 aufweisen. Zweitens wird in 7 auf die Codeabtastwerte in festen Segmenten zugegriffen, die für jede Verschiebung die gleichen sind, und jedes Segment befindet sich in einem separaten, nicht überlappenden Abschnitt des Codes. Auf diese Weise kann ein einfaches Nachschlage- oder Registerschema verwendet werden, um den Code den Vektormultiplizierern bereitzustellen, wie unter Bezugnahme auf 8 und 9 noch weiter erörtert werden wird. Diese Schemata benötigen weniger Schaltungen als andere Architekturen, die es eventuell erfordern, dass zum Beispiel große Blöcke von Codebits in einem komplexeren Satz von Permutationen zur Verfügung gestellt werden. Die Erfindung eliminiert auch die Notwendigkeit, eine Codeerzeugungsschaltung bereitzustellen.
  • 8 zeigt ein Blockdiagramm eines Ausführungsbeispiels einer Code-Nachschlageschaltung 408, die für die Erfindung geeignet ist. Die Tabelle 801 enthält gespeicherte Werte für alle 1023 Bits von jedem der 32 Codes zum Beispiel in einem Nur-Lese-Speicher (ROM; Read Only Memory) oder in festverdrahteter Logik. Die Tabelle 801 ist als 32 Untertabellen organisiert, und zwar eine für jeden Code. Jede Untertabelle ist weiter als M Segmente mit einer Länge K organisiert, wobei K × M = 1023, und K und M werden so gewählt, wie dies vorher beschrieben worden ist. Der Multiplexer 802 wählt einen bestimmten Code auf der Grundlage eines Auswahlwertes aus. Die Ausgabe des Multiplexers 802 ist eine bestimmte Untertabelle für den gewünschten Code. Der Multiplexer 803 wählt ein bestimmtes Segment auf der Grundlage eines Segmentauswahlwertes zwischen 1 und M aus. Die Ausgabe von 803 ist ein bestimmtes Codesegment 804 der Länge K, das Codebits enthält, die dem Codeerweiterer 409 bereitgestellt werden.
  • Es sollte angemerkt werden, dass der Multiplexer 803 ein Hochgeschwindigkeits-Multiplexer sein muß, um es zu erlauben, dass das Codesegment bei jeder partiellen Korrelation, d. h., alle zwei Taktzyklen, gewechselt werden kann. Aus diesem Grund ist es notwendig, dass alle Codebits in der Tabelle 801 vorab gespeichert werden, was im Gegensatz zu der traditionellen Art und Weise eines Codegenerators steht, bei dem diese während des Prozesses nebenbei erzeugt werden.
  • Die Schaltungen von 8 sollen nur veranschaulichend sein. In der Praxis gibt es viele unterschiedliche Schaltungskonstruktionen, die funktionell äquivalent sind. Insbesondere wird der Prozess der Logiksynthese, der in modernen ASIC-Designs verwendet wird, zu einem bestimmten Muster aus Gattern führen, das ein Verhalten erzielt, das äquivalent zu dem ist, das oben beschrieben ist, aber nicht notwendigerweise Multiplexer in der Art und Weise verwendet, wie dies beschrieben ist.
  • 9 zeigt ein Blockdiagramm eines alternativen Ausführungsbeispiels einer Code-Wachschlageschaltung 408, die für die Erfindung geeignet ist. Die 1023 Codebits, die einem bestimmten Code entsprechen, werden in 1023 doppeldirektionalen Schieberegistern 901 gehalten, die nach M Reihen von der Länge K geordnet sind. Die Schieberegister arbeiten in zwei Modi; einem Laufmodus und einem Beladungsmodus.
  • In dem Laufmodus ist jedes Register 901 so konfiguriert, dass es seinen Abtastwert in das Register oberhalb davon in die nächste Reihe verschiebt, ausgenommen die oberste Registerreihe, die in die untere Reihe der Register verschiebt. Die Verschieberichtungen für den Laufmodus werden in 901 von durchgehenden Pfeilen angezeigt. Durch das Takten aller Register werden die Reihen von Codebits zirkulieren, so dass zu jedem Zeitpunkt die oberste Reihe einen von M Codesegmenten der Länge K enthält. Diese oberste Reihe von Bits wird dem Codeerweiterer 409 bereitgestellt. De Register zirkulieren schnell, so dass für jede partielle Korrelation ein anderes Codesegment zur Verfügung gestellt wird.
  • In dem Beladungsmodus ist jedes Register so konfiguriert, dass es seinen Abtastwert in das Register verschiebt, das das nächste in der Reihe ist, abgesehen von der letzten Spalte von Registern, die in die erste Spalte von Registern in der Reihe oberhalb verschiebt. Die Verschieberichtungen für den Beladungsmodus werden in 901 durch gestrichelte Pfeile angezeigt. Das linke untere Schieberegister 904 ist mit dem Codegenerator 902 verbunden. Der Codegenerator ist ein traditioneller Codegenerator, der in der Lage ist, sequentiell die 1023 Codebits eines bestimmten Codes auf der Grundlage eines Auswahlwertes zu erzeugen. Wenn die Code-Nachschlageschaltung für einen bestimmten Code konfiguriert wird, werden die Register in den Beladungsmodus platziert, und der Generator wird verwendet, um die Bits des Codes zu erzeugen, die dann durch die Register getaktet werden. Nachdem alle Bits durchgetaktet worden sind, wird der Code in den Registern als M Segmente mit einer Länge K gespeichert sein. Die Schaltung ist dann für die Verwendung in dem Laufmodus bereit.
  • 10 zeigt ein Blockdiagramm eines anderen Ausführungsbeispiels eines GPS-Empfängers 1000. Der Empfänger 1000 umfasst eine Vielzahl von Verarbeitungskanälen 104, die in einem Korrelationsverlaufsmodus sowie auch in einem Standardkorrelationsmodus arbeiten. Die Funktion des Standardkorrelationsmodus ist so, wie dies oben unter Bezugnahme auf die 19 beschrieben worden ist. Die Operation der Komponenten des Empfängers 1000 in dem Korrelationsverlaufsmodus ist für alle Blöcke, die zu den Signal-RAMs 110a und 110b und dem Größen-/Verlaufs-RAM (magnitude/history RAM) 1002 führen, im Wesentlichen identisch zu dem Standardmodus. Zusätzlich ist zur Unterstützung der Beschreibung der Verfahren der vorliegenden Erfindung die CPU 114 in 10 so gezeigt, dass sie in einer herkömmlichen Art und Weise von einem Speicher 1010 und Unterstützungsschaltungen (support circuits) 1012 unterstützt wird. Die Unterstützungsschaltungen 1012 umfassen so allgemein bekannte Unterstützungsschaltungen wie etwa Taktgeber, Busse, Cache, Stromversorgungen, E/A-Schaltungen und dergleichen. Der Speicher 1010 kann einen oder mehrere eines Direktzugriffsspeichers, eines Nur-Lese-Speichers, eines auswechselbaren Speichers und dergleichen umfassen. Der Speicher 1010 bildet ein computerlesbares Medium für das Speichern von Software 1014, die dann, wenn sie von der CPU 114 ausgeführt wird, veranlasst, dass der Empfänger 1000 in Übereinstimmung mit den unten beschriebenen Verfahren arbeitet. Die Kombination aus der CPU 114, dem Speicher und den Unterstützungsschaltungen bildet eine Verarbeitungseinheit 1016.
  • Wie bei der Standardoperation des Faltungsprozessor 109 werden die Signal-RAMs 110a und 110b verwendet, um partielle Korrelationsergebnisse während eines kohärenten Mittelwertbildungsintervalls für alle Korrelationsverzögerungszeiten zu akkumulieren, die eine volle Faltung umfassen. Der Korrelationsverlaufsmodus verwendet nur einen kleine Untermenge dieser Ergebnisse, die den Verzögerungszeiten in der Nachbarschaft einer Korrelationsspitze entsprechen. In dem Korrelationsverlaufsmodus erstellen die Programmierungsparameter eine kleine Anzahl von Verzögerungszeiten von Interesse. Für diese Verzögerungszeiten wird ein kompletter Verlauf von allen kohärenten Mittelwertbildungsergebnissen in dem Größen-/Verlaufs-RAM 1002 gespeichert. Während des Korrelationsverlaufsmodus wird in dem Faltungsprozessor keine Größenakkumulation durchgeführt. Statt dessen wird in diesem Modus der RAM 1002 als ein Speicher zum Speichern des Korrelationsverlaufs (Verlaufsspeicher) während des Korrelationsverlaufsmodus und als ein Speicher für die Größe (Größenspeicher) während der Standardoperation des Faltungsprozessors 109 verwendet. Ein anderer Programmierungsparameter definiert, wie viele aufeinanderfolgende kohärente Akkumulationsergebnisse in dem RAM 1002 gespeichert werden sollen. Der Faltungsprozessor 109 füllt den Größen-/Verlaufs-RAM mit einer zweidimensionalen Tabelle von Ergebnissen, die durch Verzögerungszeit und Epoche indexiert werden (Siehe 11). Die Anzahl an Epochen, die gespeichert werden kann, wird von der RAM-Größe und der Anzahl an ausgewählten Verzögerungszeiten festgelegt. Wenn der RAM zum Beispiel größenmäßig für 2048 Worte ausgelegt ist, könnte der Speicher dazu benutzt werden, entweder 2048 Zyklen für eine einzige Verzögerung, 1024 Zyklen für zwei Verzögerungen oder 512 Zyklen für 4 Verzögerungen usw. zu speichern. Eine Wortbreite von 12 Bits erlaubt es, dass I- und Q-Abschnitte des kohärenten Mittelwertbildungsergebnisses individuell mit einer Auflösung von 6 Bits gespeichert werden können.
  • 12 zeigt ein graphisches Beispiel 1200 eines typischen Korrelationsverlaufs. Die oberen und unteren graphischen Darstellungen 1202 und 1204 zeigen jeweils die I-Komponenten- und Q-Komponenten-Wellenformen. Jeder Punkt in den graphischen Darstellungen repräsentiert eine einzelne kohärente Integration. In diesem Beispiel war das kohärente Integrationsintervall auf 1 Epoche gesetzt, so dass jeder Punkt nominell eine Millisekunde der Integration repräsentiert.
  • Die Wellenformen von 12 veranschaulichen zwei Aspekte des Signals nach der Korrelation. Erstens gibt es eine restliche Doppler-Frequenz, die bewirkt, dass das Signal quer durch I- und Q-Kanäle rotiert. Zweitens sind Navigationsdatenbits vorhanden, die gelegentliche 180°-Phasenübergänge erzeugen. Das Minimumintervall zwischen einem Übergang beträgt 20 Epochen, die Datenbitperiode. Das Timing von Datenbits relativ zu dem Start des Korrelationsverlaufs wird ebenfalls aus den Wellenformen ersichtlich.
  • Der Korrelationsverlaufsmodus wird aufgerufen, um einen Satellitensignal-Doppler-Frequenzfehler und/oder einen Navigationsbittakt zu bestimmen, um gewisse Empfängerparameter wie etwa die Oszillatorfrequenz und den Empfänger-Zeittakt zu schätzen. Erst stellt der Modus Daten bereit, die von Software-Algorithmen verwendet werden, um den restlichen Doppler-Frequenzfehler und das Timing der Navigationsdatenbits relativ zu dem Start des Korrelationsverlaufs zu schätzen bzw. zu berechnen. Danach wird der Modus je nach Notwendigkeit auch dazu benutzt, einen Verlauf für die Decodierung der Werte der Navigationsdatenbits bereitzustellen.
  • Insbesondere bestimmt ein Software-Algorithmus den Doppler-Frequenzfehler und den Bittakt für einen oder mehrere Satelliten, um einen Schätzwert eines GPS-Empfängers seiner eigenen Oszillatorfrequenz und/oder seines eigenen internen Zeittakts zu erzeugen oder zu aktualisieren. Genauer gesagt werden genauere Korrelationen durchgeführt, indem der Oszillatorfrequenz- und Zeittakt-Schätzwert verwendet wird, um die Träger- und Code-NCOs 106 und 108 von 10 zu "korrigieren" und um das Timing des Faltungsprozessors 109 einzustellen. Insbesondere erlaubt es ein verbesserter Schätzwert der Empfängeroszillatorfrequenz dem Faltungsprozessor 109, über den NCO 105 genauer eingestellt zu werden, was eine bessere Signalerfassung und die Fähigkeit bereitstellt, längere kohärente Integrationsintervalle verwenden zu können. Außerdem kann ein verbesserter Schätzwert des Empfänger-Zeittakts dazu verwendet werden, die Startzeiten des Faltungsprozessors 109 so zu steuern, dass er kohärente Integrationen durchführt, die synchron zu dem Navigationsdatenbittakt für jeden Satelliten sind, wodurch die Signalerfassung verbessert wird.
  • Verfahren aus dem Stand der Technik (wie sie etwa in dem US-Patent 6,208,291 offenbart sind, das am 27. März 2001 ausgegeben worden ist) verwenden eine Registerbank, um den Korrelatorausgang für einen Tracking-Prozess zu speichern, in dem PN-Epochen und der Träger eines Satellitensignals verfolgt werden. Der Tracking-Prozess erfordert einen hohen Rauschabstand. Anders als bei dem Stand der Technik führt der Korrelationsverlaufsmodus der vorliegenden Erfindung nicht lediglich eine Zwischenspeicherung von Daten für den Zweck des Tracking eines bestimmten Satellitensignals durch. Vielmehr wird der Korrelationsverlaufsmodus verwendet, um Empfängerparameter zu schätzen, die bei der Erfassung von sichtbaren Satelliten helfen. Des Weiteren arbeitet der Korrelationsverlaufsmodus in Verbindung mit einem Software-Schätzalgorithmus, der Satellitensignalinformationen sogar bei sehr niedrigen Rauschabständen extrahiert, die unter den Schwellenwert eines herkömmlichen Tracking-Prozesses fallen würden. Die Korrelationsverlaufsmodus-Verarbeitung von Signalen von mehreren Satelliten kann verwendet werden, um die Leistung der Empfängerparameterschätzung zu verbessern, aber solche zusätzlichen Signale sind nicht notwendig, um die Erfindung zu praktizieren.
  • Es gibt zahlreiche Algorithmen, die verwendet werden können, um den Bittakt und die Frequenz aus einem Verlauf von Korrelationsergebnissen zu schätzen. Ein Ausführungsbeispiel ist in dem Blockdiagramm von 13 veranschaulicht. In diesem Ausführungsbeispiel ist der Prozess 1300 in einem Software-Programm verkörpert, das eine Sequenz von Schritten durchführt, die eine bestimmte Funktion durchführen. Der Prozess 1300 wird durchgeführt, um einen Schätzwert einer Signalgröße (Größenschätzwert) bei einer bestimmten Frequenz- und Bittakt-Hypothese zu bestimmen, und der Schätzwert wird über einen Bereich von möglichen Frequenzen und Bittakten optimiert. Für jede Hypothese wird der I- und Q-Korrelationsverlauf erst einmal phasenkorrigiert (Schritt 1302), indem eine Multiplikation mit einem komplexen Frequenzterm durchgeführt wird, der der konjugierten komplexem Zahl der Frequenzmodulation entspricht. Als nächstes wird das Signal bei dem Schritt 1304 während einer kohärenten Integration integriert, die bis zu einer Navigationsbitperiode überspannt. Wenn zum Beispiel der Korrelationsverlauf aus Abtastwerten bestehen würde, die um eine Epoche beabstandet sind, würden 20 aufeinanderfolgende Abtastwerte des I- und Q-Verlaufs summiert werden, um einen Schätzwert der Signalgröße über ein Navigationsdatenbit zu erzeugen. Nach der Vollendung jeder Bitsummierung wird beim Schritt 1306 eine Größenberechnungsoperation durchgeführt, um einen Energiewert zu bilden. Die Ergebnisse von aufeinanderfolgenden Größenberechnungen werden dann bei dem Schritt 1308 weiter summiert, um den Rauschabstand zu verbessern. Zum Beispiel stellt eine Sekunde von Daten 50 Bitperioden bereit, die summiert werden können, um eine integrierte Energie für die Bitperioden zu bilden, die bei der Summierung verwendet werden. Allgemeiner gesagt können die Berechnungen durchgeführt werden, um einen Signalpegel, z. B. eine Signalgröße oder eine Signalenergie, zu bestimmen. Das Ausführungsbeispiel der Erfindung, das hier beschrieben wird, verwendet die Signalgröße; aber die Fachleute auf diesem Gebiet werden realisieren, dass die Signalenergie oder jedes andere Maß des Signalpegels verwendet werden kann, um die vorliegende Erfindung zu implementieren.
  • Die Energieschätzwerte werden über einen Bereich von möglichen Frequenzen und Bittaktwerten gesammelt. Die Ergebnisse können in einem zweidimensionalen Gitternetz 1400 betrachtet werden, wie es in 14 veranschaulicht ist. Eine Achse 1402 ist der hypothetisierte Frequenzfehler, der in diesem Fall von –40 bis 80 Hz variiert. Die andere Achse 1404 ist die Bittakthypothese, die zwischen 0 und 19 Epochen variiert. Dieser Wert repräsentiert den hypothetisierten Offset zwischen dem Bittakt und dem Beginn des Korrelationsverlaufs, der zu einer bestimmten Zeit in Übereinstimmung mit dem Empfängertakt aufgenommen wurde. Die vertikale Achse 1406 an jedem Punkt in dem Gitternetz ist die korrelierte Signalgröße, die der Doppler- und Takt-Hypothese entspricht. Der beste Schätzwert der Frequenz und des Takts (des Timings) entspricht dem maximalen Punkt 1408 auf dem Gitternetz. Dieser minimiert den Rauschabstand-(SNR)-Verlust, der auftreten kann, wenn eine Fehlausrichtung zwischen dem kohärenten Mittelwertbildungsintervall und den Datenbits vorliegt.
  • 15 zeigt eine graphische Darstellung 1500 eines Querschnitts von 14 entlang der Frequenzachse 1402. Wie zu sehen ist, zeigt die Antwort eine Spitze (Punkt 1502) bei der korrekten Frequenz. In ähnlicher Weise zeigt die 16 eine graphische Darstellung 1600 eines Querschnitts von 14 entlang der Bittakt-Hypotheseachse 1404. Wiederum ist die größte Größe an der Spitze des Dreiecks (Punkt 1602) zu sehen, die dem korrekten Bittakt entspricht.
  • Die Platzierung von Punkten in der Frequenz und dem Bittakt ist eine Funktion der anfänglichen Unbestimmtheit bei der Frequenz und dem Bittakt sowie auch der beabsichtigten Genauigkeit der Schätzwerte. Normalerweise werden alle 20 Bittakthypothesen überprüft, da das Empfänger-Timing relativ zu der GPS-Zeit unbekannt ist.
  • Es sollte angemerkt werden, dass der hier beschriebene Prozess einen zweidimensionalen Satz von Punkten bereitstellt, über die das Maximum gesucht werden kann. Es gibt auch andere Verfahren, um zu dem Maximum zu gelangen. Zum Beispiel könnte eine Verlaufsschätzung der Frequenz bei einem willkürlichen Bittakt durchgeführt werden, um eine Frequenz sehr nahe bei der Spitze der Fläche zu erhalten. Wenn ein willkürlicher Bittakt verwendet wird, ist es vorteilhaft, das kohärente Mittelwertbildungsintervall so zu setzen, dass es asynchron zu der Bitperiode ist, zum Beispiel ein kohärentes Mittelwertbildungsintervall von 19 Epochen. Auf die Analyse mit einem willkürlichen Bittakt folgt ein Schätzwert der Antwort bzw. des Verhaltens bei dieser Frequenz bei allen Bittakten (und vorzugsweise mit einem kohärenten Mittelwertbildungsintervall von 20 Epochen), um es zu erlauben, dass der Bittakt geschätzt werden kann. Falls gewünscht, könnte daraufhin eine zusätzliche Schätzung der Frequenz folgen. Dies ist ein Beispiel von vielen Beispielen von allgemein bekannten mathematischen Techniken, die benutzt werden könnten, um ein Maximum quer durch die zweidimensionale Fläche von 14 ausfindig zu machen. Ein anderes Verfahren, das getestet worden ist und für vorteilhaft befunden worden ist, ist das Downhill-Simplex-Verfahren, das in Numerical Recipes in C von der Cambridge University Press beschrieben ist.
  • In einem anderen Beispiel könnte ein sequentieller Schätzungsalgorithmus in Software implementiert werden. In jedem Schritt des Algorithmus bildet ein Frequenzdiskriminator einen Schätzwert des Frequenzfehlers. In einer nachfolgenden Iteration wird der Frequenzfehler angelegt und der Diskriminator stellt einen anderen, verbesserten Schätzwert des Frequenzfehlers bereit. Der Prozess wird fortgesetzt, bis der restliche Frequenzfehler klein ist. Anders als die Tracking-Schleife arbeitet der Algorithmus vollständig auf der Basis des gespeicherten Korrelationsverlaufs, ohne dass eine Rückkopplung an den NCO 106 angelegt wird, und ohne dass zusätzliche Korrelationen durchgeführt werden. Wenn die Frequenz einmal geschätzt bzw. berechnet ist, dann können Bitübergänge aus dem Timing der 180°-Phasenübergänge identifiziert werden. Da der Frequenzfehler zum größten Teil entfernt worden ist, sind die Phasenübergänge leicht beobachtbar.
  • 17 veranschaulicht ein Verfahren 1700 der Verwendung des Korrelationsverlaufsmodus in Verbindung mit der Operation eines GPS-Empfängers. Zuerst werden bei dem Schritt 1702 Korrelationen in dem Standardmodus durchgeführt, wobei je nach Notwendigkeit nach Signalen quer durch einen Bereich von Verzögerungszeiten gescannt wird und eine Frequenzdurchsuchung durchgeführt wird. Wenn Energie erfasst wird, werden beim Schritt 1704 die Signale von einem oder mehreren Satelliten für die Korrelationsverlaufsmodus-Verarbeitung ausgewählt. Im Schritt 1706 werden ein Verarbeitungskanal oder mehrere Kanäle des Empfängers für den Korrelationsverlaufsmodus neu konfiguriert, und Korrelationsverläufe werden gesammelt. Normalerweise muß der Korrelationsverlauf nur bei einer einzigen Verzögerungszeit akkumuliert werden, da ein Schätzwert der Verzögerungszeit aus der anfänglichen Signalakquisition zur Verfügung steht. Beim Schritt 1708 werden der Korrelationsverlauf bzw. die Korrelationsverläufe so verarbeitet, wie dies oben beschrieben ist, um Schätzwerte der Signalfrequenz und des Bittakts für jeden Kanal zu ergeben, der in dem Korrelationsverlaufsmodus betrieben wird.
  • Beim Schritt 1710 werden diese Schätzwerte dann mit einem Satelliten-Entfernungs- und -Entfernungsgeschwindigkeitsmodell kombiniert, um Informationen zu bestimmen, die verwendet werden, um das Modell der Oszillatorfrequenz und des Zeittakts des Empfängers zu aktualisieren. Diese Schätzwerte werden dann zusammen mit Satelliten-Entfernungs- und -Entfernungsgeschwindigkeitsmodellen für alle Satelliten verwendet, um den erwarteten Bittakt und Doppler-Effekt von bis zu allen sichtbaren Satelliten zu berechnen und um verbesserte Programmierungswerte für den NCO 106 und 108 auszurechnen und das kohärente Integrationsstart-Timing des Faltungsprozessors 109 zu setzen. Der Empfänger schaltet dann auf einen Standardbetriebsmodus, um Signale von allen Satelliten, die der Empfänger sehen kann, zu korrelieren, wie dies unter Bezugnahme auf die 1 bis 9 beschrieben worden ist. Beim Schritt 1712 verwendet der Empfänger die verbesserten Frequenz- und Bittakt-Schätzwerte, um eine Standardkorrelation bei den GPS-Signalen durchzuführen. Der oben genannte Prozess wird je nach Notwendigkeit wiederholt, um die Empfängerparameter-Schätzwerte zu perfektionieren.
  • Insbesondere im Schritt 1710 kann die Frequenz, die in dem Korrelationsverlaufsmodus für einen bestimmten Satelliten bestimmt worden ist, mit der erwarteten Entfernungsgeschwindigkeit für diesen Satelliten verglichen werden, um einen Differenzwert, der einem Fehler in der Frequenz des Empfängertakts zugeschrieben werden kann, auf der Basis des stationären Empfängermodells zu bestimmen. Alternativ dazu können die Fehler dann, wenn Frequenzmessung von 3 oder mehr Satelliten zur Verfügung stehen, verwendet werden, um die Empfängertaktfrequenz und auch die Empfängergeschwindigkeit zu schätzen. Die geschätzte Empfängeroszillatorfrequenz kann mit der erwarteten Entfernungsgeschwindigkeit für irgendeinen Satelliten kombiniert werden, um eine verbesserte Tuning-Frequenz für den NCO 106 für das Erfassen des Satelliten zu bestimmen.
  • Außerdem kann ein Schätzwert des Empfänger-Timing-Fehlers aus den Bittaktmessungen erzeugt werden. Die Signalverläufe werden bei einer bestimmten Bezugszeit relativ zu dem internen Takt des Empfängers erfasst. In einem Ausführungsbeispiel ist dieser Takt ein Millisekundenzähler. Das Timing dieses Zählers ist im Allgemeinen willkürlich relativ zu der GPS-Zeit. Aber wenn der Bittakt für einen bestimmten Satelliten geschätzt ist, kann eine Zeitbeziehung zwischen dem Millisekundenzähler und der GPS-Zeit erstellt werden. Um dies zu erklären, ist es relevant, darauf hinzuweisen, dass Datenbits alle Satelliten synchron verlassen. Bei den Bitübergängen ist der Modulo-20-Wert der GPS-Zeit null. Signale von diesen Satelliten kommen bei dem Empfänger viele Millisekunden später an. Die Verzögerung zwischen der Zeit des Übergangs und der Zeit des Empfangs kann leicht aus einem Schätzwert der Empfängerposition, der ungefähren Zeit und der Satellitenorbitinformationen bestimmt werden. Auf diese Weise kann das absolute Timing von Datenbitübergängen an dem Empfänger vermittels der GPS-Zeit geschätzt werden. Wenn das Timing eben dieser Transaktionen relativ zu dem Empfänger-Millisekundentakt gemessen wird, kann eine Beziehung zwischen dem Empfängertakt und der GPS-Zeit erstellt werden. Es sollte angemerkt werden, dass dies keine absolute Beziehung ist, da nur die Navigationsdatenbit-Übergänge erarbeitet worden sind, aber nicht das Timing des Navigationsdatenbit-Rahmens. Vielmehr kann der Modulo-20-Millisekundenwert des Empfängertakts in Beziehung zu dem Modulo-20-Millisekundenwert der GPS-Zeit gebracht werden.
  • Zum Ausrichten nachfolgender kohärenter Integrationsintervalle schätzt der Empfänger zuerst einmal das Timing des Navigationsdatenbits für jeden Satelliten relativ zu der GPS-Zeit (auf der Grundlage der Pseudoentfernung). Korrelationen, die von dem Faltungsprozessor 109 durchgeführt werden, werden so programmiert, dass sie bei einer passenden zukünftigen Zeit basierend auf dem Empfänger-Millisekundentakt beginnen. Der Modulo-20-Millisekundenwert dieser Startzeit wird relativ zu der GPS-Zeit und zu dem Timing der Navigationsdatenbits gewählt, um eine Ausrichtung der kohärenten Integrationen mit den Datenbits zu gewährleisten.
  • Der Korrelationsverlaufsmodus kann auch verwendet werden, um Navigationsdatenbits zu sammeln. Normalerweise wird dieser Modus aufgerufen, nachdem der Navigationsdatenbittakt erstellt ist. Der Korrelationsprozessor wird für kohärente Integrationsintervalle von 20 Epochen programmiert, wobei die Intervalle mit den Datenbits ausgerichtet sind, und ein Korrelationsverlauf wird gespeichert. Jeder Punkt des Korrelationsverlaufs ist das Ergebnis einer Integration über einen volle Bitperiode. Das Vorhandensein oder das Nichtvorhandensein eines Phasenübergangs von einem Bit zu dem nächsten stellt das Informationsdatenbit bereit. Der Korrelationsverlauf kann verwendet werden, um Bits bis zu der Größe des RAM zu speichern. Wenn mehr Bits benötigt werden, können mehrere Korrelationsverläufe hintereinander gespeichert werden.
  • 18 ist ein Blockdiagramm, das ein anderes Ausführungsbeispiel eines GPS-Empfängers 1800 darstellt, der mit einer externen Verarbeitungseinheit 1801 gekoppelt ist. Zum Beispiel kann der GPS-Empfänger 1800 innerhalb einer mobilen Vorrichtung 1899, wie z. B. einem Mobiltelefon, eingebettet sein, welche die externe Verarbeitungseinheit 1801 enthält. Elemente von 18, die gleich den Elementen von 1 und 10 sind oder diesen ähnlich sind, werden mit identischen Bezugszeichen bezeichnet und sind oben im Einzelnen beschrieben. Wie oben beschrieben ist, kann der GPS-Empfänger 1800 eine Vielzahl von Verarbeitungskanälen 104 umfassen. Zu Zwecken der Klarheit ist nur ein einziger Verarbeitungskanal 1041 gezeigt. Den Fachleuten auf dem Gebiet wird es aber klar sein, dass mehrere Verarbeitungskanäle 104 verwendet werden können. Jeder der Verarbeitungskanäle 104 ist in der Lage, sowohl in dem Korrelationsverlaufsmodus als auch in dem Standardkorrelationsmodus zu arbeiten, die oben unter Bezugnahme auf die 117 beschrieben worden sind.
  • In dem vorliegenden Ausführungsbeispiel umfasst der GPS-Empfänger 1800 einen Koprozessor 1804 und eine Empfänger-Schnittstellenlogik 1802, die beide jeweils mit dem Verarbeitungskanal 1041 gekoppelt sind. Die CPU 114, der Speicher 1010 und die Unterstützungsschaltungen 1012 bilden die externe Verarbeitungseinheit 1801. Die externe Verarbeitungseinheit 1801 kann sich in der mobilen Vorrichtung 1899 befinden und kann mit verschiedenen anderen mobilen Vorrichtungs-Schaltkreisen 1805, wie etwa mit Mobiltelefonschaltungen, kooperieren.
  • Der Koprozessor 1804 umfasst einen Bus, der mit der Empfänger-Schnittstellenlogik 1802 gekoppelt ist. Die Empfänger-Schnittstellenlogik 1802 ist mit einem externen Bus 1803 der CPU 114 gekoppelt. Die Empfänger-Schnittstellenlogik 1802 ermöglicht die Kommunikation zwischen dem GPS-Empfänger 1800 und der externen Verarbeitungseinheit 1801. Der Koprozessor 1804 ist außerdem mit einem Speicher 1810 gekoppelt. Der Speicher 1810 speichert die Software 1812, die von dem Koprozessor 1804 ausgeführt werden kann, um Korrelationsergebnisse zu analysieren, die von dem GPS-Empfänger 1800 gespeichert werden, und um daraus Satellitensignalparameter abzuleiten.
  • Der Verarbeitungskanal 1041 umfasst eine Kanalschnittstelle 1806 und eine Kanalsteuerlogik 1808. Die Kanalschnittstelle 1806 ist mit einem Bus des Koprozessors 1804 gekoppelt. Optional kann die Kanalschnittstelle 1806 des Weiteren mit der Empfänger-Schnittstellenlogik 1802 gekoppelt sein. Die Kanalschnittstelle 1806 umfasst einen Bus, der mit dem Größen-/Verlaufs-RAM 1002 gekoppelt ist, und einen Bus, der mit der Kanalsteuerlogik 1808 gekoppelt ist. Die Kanalschnittstelle 1806 ermöglicht die Kommunikation zwischen dem Koprozessor 1804, der Empfänger-Schnittstellenlogik 1802 und dem Verarbeitungskanal 1041 . Die Kanalsteuerlogik 1808 ist gekoppelt, um Steuersignale zu dem Träger-NCO 106, dem Code-NCO 108 und dem Faltungsprozessor 109 zu liefern. Die Steuersignale können verwendet werden, um de Frequenz des Träger-NCO 106 und des Code-NCO 108 sowie auch den Betriebsmodus und das Timing des Faltungsprozessors 109 einzustellen. Wenn der GPS-Empfänger 1800 mehrere Verarbeitungskanäle 104 umfasst, dann ist die Kanalschnittstelle 1806 jedes Verarbeitungskanals 104 mit dem Koprozessor 1804 gekoppelt und kann mit der Empfänger-Schnittstellenlogik 1802 gekoppelt sein.
  • Während des Betriebs führt die CPU 114 die Steuersoftware 1850 aus, die in dem Speicher 1010 gespeichert ist, um dem GPS-Empfänger 1800 Befehle bereitzustellen, um einen oder mehrere Satellitensignalparameter zu erhalten. Beispielhafte Satellitensignalparameter werden unten unter Bezugnahme auf 19 beschrieben. Jeder Befehl umfasst Programmierungsparameter für die Konfigurierung des GPS-Empfängers 1800 derart, dass die gewünschten Satellitensignalparameter erhalten werden können. Solche Programmierungsparameter umfassen die Frequenz des Träger-NCO 106, die Frequenz des Code-NCO 108 und das Timing und die Operation des Faltungsprozessors 109 für einen oder mehrere der Verarbeitungskanäle 104. Wenn die Konfigurierung erfolgt ist, kann der GPS-Empfänger 1800 Satellitensigna le entweder in dem Standardbetriebsmodus oder in dem Korrelationsverlaufsmodus verarbeiten. In beiden Modi arbeitet der GPS-Empfänger 1800 dahingehend, Korrelationsergebnisse zu erzeugen, die in dem Größen-/Verlaufs-RAM 1002 gespeichert werden.
  • Aber im Gegensatz zu den oben genannten Ausführungsbeispielen werden die Korrelationsergebnisse, die in dem Größen-/Verlaufs-RAM 1002 gespeichert werden, nicht unter Verwendung der CPU 114 der externen Verarbeitungseinheit 1801 analysiert. Vielmehr analysiert der Koprozessor 1804 die Korrelationsergebnisse in Übereinstimmung mit dem Befehl, der von der CPU 114 ausgegeben worden ist, um den/die gewünschten Satellitensignalparameter bereitzustellen. Nach dem Analysieren der Korrelationsergebnisse stellt der Koprozessor 1804 den/die Satellitensignalparameter, der/die durch die Analyse erzeugt wurde(n), der CPU 114 unter Verwendung der Empfänger-Schnittstellenlogik 1802 bereit. Wenn der/die Satellitensignalparameter gegeben ist/sind, dann kann die CPU 114 einen oder mehrere Empfängerparameter unter Verwendung der Satellitensignalparameter bestimmen. Wie oben beschrieben worden ist, umfassen solche Empfängerparameter die Oszillatorfrequenz und den Empfänger-Zeittakt.
  • Auf diese Weise sorgt die vorliegende Erfindung für eine schnellere Analyse der Korrelationsergebnisse bereit und belastet nicht die CPU 114 von externen Verarbeitungsschaltungen 1801. Außerdem beseitigt die vorliegende Erfindung die Notwendigkeit, alle Korrelationsergebnisse, die in dem Größen-/Verlaufs-RAM 1002 gespeichert sind, der CPU 114 für die Analyse bereitzustellen. Des Weiteren wird nur ein kleiner Betrag an Daten, der den/die gewünschten Satellitensignalparameter umfasst, zu der CPU 114 gesendet. Infolgedessen umfasst die Empfänger-Schnittstellenlogik 1802 und der Bus 1803 in einem Ausführungsbeispiel eine serielle Schnittstelle.
  • 19 ist ein Ablaufdiagramm, das ein exemplarisches Ausführungsbeispiel eines Satellitensignalparameter-Schätzprozesses 1900 in Übereinstimmung mit der Erfindung veranschaulicht. In dem vorliegenden Ausführungsbeispiel umfasst ein GPS-Empfänger einen Koprozessor und ist mit einem externen Prozessor gekoppelt, wie dies oben im Hinblick auf 18 beschrieben worden ist. Der Prozess 1900 beginnt bei Schritt 1902, bei dem ein Befehl von dem externen Prozessor zu dem GPS-Empfänger ausgegeben wird, um einen oder mehrere Satellitensignalparameter zu erhalten. Im Schritt 1904 werden ein oder mehrere Kanäle innerhalb des GPS-Empfängers in Übereinstimmung mit Programmierungsparametern konfiguriert, die mit dem Befehl assoziiert sind. Beim Schritt 1906 werden Satellitensignale unter Verwendung der konfigurierten Kanäle verarbeitet und Korrelationsergebnisse werden in dem Speicher gespeichert. Beim Schritt 1908 analysiert der Koprozessor die Korrelationsergebnisse, um die angeforderten Satellitensignalparameter zu erzeugen. Beim Schritt 1910 werden die angeforderten Satellitensignalparameter dem externen Prozessor bereitgestellt. In einem optionalen Schritt 1912 können die Satellitensignalparameter dazu verwendet werden, einen oder mehrere Empfängerparameter zu erzeugen, die wiederum dazu verwendet werden können, den GPS-Empfänger zu konfigurieren.
  • 20 ist ein Blockdiagramm, das ein exemplarisches Ausführungsbeispiel des Koprozessors 1804 veranschaulicht. Der Koprozessor 1804 umfasst zu illustrativen Zwecken einen Bus 2001, der mit einer E/A-Schnittstelle 202 gekoppelt ist, einen Speicher 2004, einen komplexen Modulator 2008, Unterstützungsschaltungen 2010, eine komplexe Energieeinheit 2012, eine komplexe Vektorprodukteinheit 2014, eine komplexe Skalarprodukteinheit 2016, eine kohärente Integrationseinheit 2018, eine nichtkohärente Integrationseinheit 2020 und eine Rauschstatistikeinheit 2022. Die E/A-Schnittstelle 2002 ist so konfiguriert, dass sie I- und Q-Korrelationsergebnisse von einem Verarbeitungskanal des GPS-Empfängers sowie auch Befehls- und Konfigurationsdaten von der externen Verarbeitungseinheit empfängt. Die I-/Q-Korrelationsergebnisse können in einem Pufferspeicher 2006 des Speichers 2004 gespeichert werden. Die Befehls- und Konfigurationsdaten werden verwendet, um die Komponenten des Koprozessors zu steuern.
  • Der komplexe Modulator 2008 kann verwendet werden, um die I-/Q-Korrelationsergebnisse frequenzmäßig so einzustellen, dass der Doppler-Effekt kompensiert wird. Die komplexe Energieeinheit 2012 kann verwendet werden, um die durchschnittliche Energie eines gegebenen I-/Q-Korrelationsabtastwertes zu berechnen. Die komplexe Vektorprodukteinheit 2014 kann verwendet werden, um ein komplexes vektorielles Produkt zwischen einem ersten I-/Q-Korrelationsergebnis und einem zweiten I-/Q-Korrelationsergebnis zu berechnen. Die komplexe Skalarprodukteinheit 2016 kann verwendet werden, um ein komplexes skalares Produkt zwischen einem ersten I-/Q-Korrelationsergebnis und einem zweiten I-/Q-Korrelationsergebnis zu berechnen. Die kohärente Integrationseinheit 2018 kann verwendet werden, um eine Vielzahl von I-/Q-Korrelationsergebnissen vorzusummieren. Die nichtkohärente Integrationseinheit 2020 kann verwendet werden, um eine Vielzahl von Größenergebnissen zu summieren, die unter Verwendung der I-/Q-Korrelationsergebnisse berechnet wurden. Die Rauschstatistikeinheit 2022 kann verwendet werden, um verschiedene Rauschstatistiken zu berechnen (z. B. Mittelwert und Sigma der I-/Q-Korrelationsergebnisse). Die Unterstützungsschaltungen 2010 umfassen Pufferspeicher, Register, Quantisierer, Zähler und dergleichen – typische Logikschaltungen also für die Unterstützung der Operation des Koprozessors 1804 und der oben erörterten Komponenten.
  • Exemplarische Ausführungsbeispiele des Prozesses 1900 können unter Bezugnahme auf die 18 und die 20 verstanden werden. Bemerkenswerterweise kann der Prozess 1900 je nach Wunsch für verschiedene Befehle, die von der CPU 114 ausgegeben werden, wiederholt werden. Solche Befehle umfassen zum Beispiel Anforderungen bezüglich einer Entfernungsmessung, einer hochauflösenden Entfernungsmessung, einer Doppler-Messung, einer Navigationsdatenmessung oder einer Bittaktmessung. Im Allgemeinen gibt die CPU 114 einen Befehl aus, um einen oder mehrere Satellitensignalparameter anzufordern, der GPS-Empfänger 1800 berechnet die angeforderten Satellitensignalparameter unter Verwendung des Koprozessors 1804, und der GPS-Empfänger 1800 sendet die angeforderten Satellitensignalparameter zurück zu der CPU 114.
  • Zum Beispiel kann die CPU 114 einen Entfernungsmessbefehl zu dem GPS-Empfänger 1800 senden. Der Faltungsprozessor 109 arbeitet in dem Standardmodus und berechnet eine Vielzahl von Korrelationsergebnissen, wie dies oben beschrieben worden ist. Der Entfernungsmessbefehl spezifiziert einen Bereich von relativen Verzögerungszeiten zwischen einem Satellitensignal und dem Bezugs-C/A-Code, der untersucht werden soll. Der Koprozessor 1804 lokalisiert den Punkt der maximalen Korrelationsantwort (d. h., Korrelationsspitze) und sendet Verzögerungszeitmessungen für einen Bereich um die Spitze herum zurück. Der Koprozessor 1804 kann die Korrelationsergebnisse auch unter Verwendung der Rauschstatistikeinheit 2022 analysieren, um verschiedene Rauschstatistiken zu bestimmen, wie etwa den Mittelwert und das Sigma der Korrelationsantwort. Diese Rauschstatistiken können verwendet werden, um den Rauschabstand der Korrelationsspitze zu bestimmen. Die Verzögerungszeitmessungen sowie auch die Rauschstatistiken können dann der CPU 114 bereitgestellt werden.
  • In einem anderen Beispiel kann die CPU 114 einen Doppler-Messbefehl zu dem GPS-Empfänger 1800 senden. In einem Ausführungsbeispiel wird die Korrelationsantwort für eine oder mehrere relative Codeverzögerungen zwischen dem Satellitensignal und dem C/A-Bezugscode als ein Korrelationsverlauf in dem Größen-/Verlaufs-RAM 1002 gespeichert. Wie oben beschrieben ist, umfasst der Korrelationsverlauf I- und Q-Abtastwerte für jedes kohärente Summierintervall des Faltungsprozessors 109. Zum Beispiel können die kohärenten Summierintervalle in dem Faltungsprozessor 109 von 1 bis 10 Epochen variieren. Nachdem der Korrelationsverlauf für die gewünschte Periode (z. B. 1 bis 10 Sekunden) gespeichert ist, ruft der Koprozessor 1804 die I- und Q-Korrelationsergebnisse ab, die in dem Größen-/Verlaufs-RAM 1002 gespeichert sind, der den Korrelationsverlauf enthält. Der Koprozessor 1804 analysiert die Frequenz, indem er die Phasenänderungen von Abtastwert zu Abtastwert verfolgt. Insbesondere kann die Frequenz herausgefunden werden, indem eine Mittelwertbildung für das komplexe vektorielle Produkt durchgeführt wird, das von der komplexen Vektorprodukteinheit 2014 berechnet worden ist. Bemerkenswerterweise kann der Mittelwertbildungsprozess eine reine Mittelwertbildung, eine gewichtete Mittelwertbildung, eine Integration oder andere kombinierende Techniken umfassen, die auf dem Fachgebiet bekannt sind. Das komplexe vektorielle Produkt ist als I(n – 1)Q(n) – Q(n – 1)I(n) definiert, wobei n eine Abtastwertanzahl bezeichnet, I den Inphasenwert des Abtastwerts bezeichnet und Q den Quadraturwert des Abtastwertes bezeichnet. Der sich ergebende Frequenzwert wird dann zu der CPU 114 zurückgesendet.
  • Die oben beschriebene Frequenzanalyse kann mehrere Male für einen gegebenen Doppler-Messbefehl ausgeführt werden. Mehrere Iterationen können notwendig sein, da der Frequenzschätzwert, der durch die komplexe vektorielle Produkt-Operation bereitgestellt wird, eine nichtlineare Beziehung zu der wahren Frequenz aufweist. Nachdem eine anfängliche Schätzung durchgeführt ist, kann der Frequenzfehler aus den I- und Q-Korrelationsergebnissen des Korrelationsverlaufs unter Verwendung des komplexen Modulators 2008 entfernt werden. Der Korrelationsverlauf wird dann erneut verarbeitet und ein neuer Frequenzwert wird unter Verwendung der komplexen Vektorproduktoperation bestimmt. Durch eine mehrmalige Iteration wird der Frequenzschätzungsprozess konvergieren.
  • In einem anderen Beispiel kann die CPU 114 einen Navigationsdatenmessbefehl zu dem GPS-Empfänger 1800 senden. In einem Ausführungsbeispiel wird die Korrelationsantwort für eine oder mehrere relative Codeverzögerungen zwischen dem Satellitensignal und dem C/A-Bezugscode als ein Korrelationsverlauf in dem Größen-/Verlaufs-RAM 1002 gespeichert. Der Korrelationsverlauf umfasst I- und Q-Abtastwerte für jedes kohärente Summierintervall des Faltungsprozessors 109, wie etwa ein kohärentes Summierintervall von fünf oder zehn Epochen. Nachdem der Korrelationsverlauf gespeichert ist, analysiert der Koprozessor 1804 Phasenänderungen von Abtastwert zu Abtastwert, um die 180°-Phasenverschiebungen zu finden, die den Navigationsdatenstrom von 50 Bits pro Sekunde umfassen. Die Bitübergänge werden gefunden, indem das komplexe skalare Produkt, das unter Verwendung der komplexen Skalarprodukteinheit 2016 berechnet wurde, einem Schwellenwertvergleich unterzogen wird. Das komplexe skalare Produkt ist als I(n – 1)I(n) + Q(n – 1)Q(n) definiert, wobei n eine Abtastwertanzahl bezeichnet, I den Inphasenwert des Abtastwerts bezeichnet und Q den Quadraturwert des Abtastwertes bezeichnet. Die Navigationsdatenbits werden durch das Vorhandensein oder das Nichtvorhandensein eines Bitübergangs erfasst. Eine Vorzeichenmehrdeutigkeit kann anfänglich in den Navigationsdaten vorhanden sein, die aufgelöst werden kann, indem eine bekannte Präambelsequenz in den Daten erfasst wird. Die Auflösung dieser Mehrdeutigkeit kann in der CPU 114 durchgeführt werden, nachdem die Datenbits empfangen worden sind. Die Navigationsdatenbits werden dann zu der CPU 114 zurückgesendet. In einem Ausführungsbeispiel der Erfindung kann der oben für den Doppler-Messbefehl beschriebene Frequenzschätzprozess für einen gegebenen Navigationsdatenmessbefehl durchgeführt werden, bevor die Navigationsdatenbits erfasst werden. Wenn die Doppler-Frequenz geschätzt ist, kann der Frequenzfehler aus dem Korrelationsverlauf unter Verwendung des komplexen Modulators 2008 entfernt werden, und die komplexe Skalarproduktoperation kann durchgeführt werden, um die Navigationsdatenbits zu erfassen.
  • In noch einem anderen Beispiel kann die CPU 114 einen Bittaktmessbefehl zu dem GPS-Empfänger 1800 senden. In einem Ausführungsbeispiel kann der Bittaktmessprozess, der oben im Hinblick auf 14 beschrieben worden ist, von dem Koprozessor 1804 ausgeführt werden, und der resultierende Bittaktwert kann zu der CPU 114 zurückgesendet werden. Bemerkenswerterweise kann ein erster Befehl von der CPU 114 zu dem GPS-Empfänger 1800 gesendet werden, um zu veranlassen, dass ein Korrelationsverlauf erlangt wird und dass eine Energie bei einer be stimmten Bittakt-/Frequenz-Hypothese bestimmt wird. Die Energie kann unter Verwendung der komplexen Energieeinheit 2012 bestimmt werden. Die komplexe Energie ist ein Ergebnis einer Kombination einer kohärenten und einer nichtkohärenten Integration, wie dies oben im Hinblick auf 14 beschrieben worden ist, um lange Integrationszeiten von bis zu mehreren Sekunden bereitzustellen. Weitere Befehle werden dann gesendet, um den Korrelationsverlauf bei anderen Bittakt-/Frequenz-Hypothesen erneut zu analysieren, bis die Hypothese, die zu der maximalen Energie führt, ermittelt ist. Der Koprozessor 1804 sucht vor allem nach einem Maximum auf einer 2D-Fläche, wie dies oben im Hinblick auf 14 beschrieben worden ist. Dieses Ausführungsbeispiel ist dafür geeignet, einen Bittakt bei niedrigen Rauschabständen zu bestimmen.
  • In einem anderen Ausführungsbeispiel kann ein einziger Bittaktmessbefehl bewirken, dass der Faltungsprozessor 109 einen Korrelationsverlauf erzeugt. Der Korrelationsverlauf umfasst I- und Q-Daten, die bei jeder Epoche für etwa eine Sekunde gespeichert werden. Der Koprozessor 1804 berechnet die komplexen skalaren Produkte der I- und Q-Abtastwerte. Die Ergebnisse werden für jeden der 20 möglichen Bittaktversätze summiert, um ein Bitübergangshistogramm zu bilden. Der korrekte Bittakt kann bestimmt werden, indem der Bittaktversatz identifiziert wird, bei dem die meisten Bitübergänge stattgefunden haben. Die Histogrammwerte können zu der CPU 114 zurückgesendet werden. Dieses Ausführungsbeispiel ist dafür geeignet, einen Bittakt bei höheren Rauschabständen zu bestimmen.
  • 21 veranschaulicht ein Beispiel eines Bithistogramms, das in Reaktion auf einen Bittaktmessbefehl erzeugt worden ist. Eine graphische Darstellung 2100 veranschaulicht Korrelationsdaten 2102, wobei eine Achse 2104 die Zeit repräsentiert und eine Achse 2106 die Größe repräsentiert. Zu Zwecken der Klarheit veranschaulicht die graphische Darstellung 2100 beispielshalber ein Segment von 80 ms der Korrelationsdaten 2102. Es sollte aber klar sein, dass in der Praxis der Bittaktmessprozess bei längeren Segmenten der Korrelationsdaten 2012 (z. B. 1–2 Sekunden) durchgeführt werden würde. Das komplexe skalare Produkt wird berechnet und einem Schwellenwertvergleich unterzogen, wie dies oben beschrieben ist, um eine binäre Sequenz 2108 zu erhalten. In der binären Sequenz 2108 zeigt eine "1" das Vorhandensein eines Phasenübergangs der Korrelationsdaten 2102 an, wie dieser von dem einem Schwellenwertvergleich unterzogenen skalaren Produkt erfasst wurde. Umgekehrt zeigt eine "0" in der binären Sequenz 2108 das Nichtvorhandensein eines Phasenübergangs in den Korrelationsdaten 2102 an. Wie oben beschrieben worden ist, sollte ein Phasenübergang innerhalb der Korrelationsdaten 2102 alle 20 ms auftreten. Entsprechend umfasst die binäre Sequenz 2108 alle 20 ms eine "1" (z. B. bei 0 ms, 20 ms, 40 ms, 60 ms und 80 ms). Aber da ein Rauschen gegeben ist, kann der Wert des skalaren Produkts manchmal den Schwellenwert überschreiten, selbst wenn die Korrelationsdaten 2102 keinen Phasenübergang enthalten. Infolgedessen kann die binäre Sequenz 2108 1en an einer oder mehreren falschen Stellen enthalten (z. B. 6 ms, 34 ms, 57 ms und 72 ms).
  • Ein Histogramm 2101 wird gebildet, um die Anzahl an 1en zu verfolgen, die bei jeder von zwanzig möglichen Bitphasen auftreten. Das Histogramm 2101 umfasst eine Achse 2110, die Binärdateien repräsentiert, und eine Achse 2111, die die Anzahl an Bitübergängen repräsentiert. In dem vorliegenden Beispiel sind die Instanzen 21011 bis 21024 des Histogramms 2101 jeweils nach 20 ms, 40 ms, 60 ms und 80 ms der Korrelationsdaten 2102 gezeigt. Wie oben beschrieben worden ist, gibt es zwanzig mögliche Bittaktversätze. Infolgedessen umfasst das Histogramm 2101 zwanzig separate Binärdateien 2110. In dem vorliegenden Beispiel ist die echte Bitphase null, wie dies von dem ansteigenden Histogrammwert 2112 in der nullten Binärdatei der Binärdateien 2110 angegeben ist. Bedingt durch Rauschen in den Korrelationsdaten 2102 umfasst das Histogramm 2101 die Werte 2114 bei anderen Binärdateien 2110. Aus diesem Grund wird das Histogramm 2101 über viele Zyklen von 20 Millisekunden der Korrelationsdaten 2102 verwendet, um zuverlässig die echte Bitphase zu bestimmen. Da außerdem der Erfassungsprozess auf das Vorhandensein von Bitübergängen in den zugrunde liegenden Korrelationsdaten 2102 baut, muß ein minimaler Betrag an Korrelationsdaten 2102 erhalten werden, um eine adäquate Anzahl an Phasenübergängen für eine zuverlässige Bestimmung der Bitphase zu gewährleisten. Wie nach vier 20-Millisekunden-Zyklen offensichtlich wird, wachst der Wert 2112 schneller als die rauschinduzierten Werte 2114. In der Praxis wird das Histogramm 2101 über noch viel mehr Zyklen von 20 Millisekunden der Korrelationsdaten 2102 berechnet.
  • Vor dem Durchführen irgendeiner der oben beschriebenen Operationen kann der Koprozessor 1804 eine Vorsummieroperation unter Verwendung der kohärenten Integrationseinheit 2018 durchführen. Da zum Beispiel der Korrelationsverlauf in Intervallen von einer Millisekunde erzeugt wurde, können Gruppen der I- und Q-Korrelationsergebnisse des Korrelationsverlaufs kohärent in dem Koprozessor 1804 vor der Bestimmung der Signalparameter (z. B. Frequenz, Navigationsdaten, Bittakt) summiert werden, was oben beschrieben worden ist. Dieses kohärente Summieren kann den Rauschabstand verbessern. So kann es zum Beispiel dann, wenn der Bittakt und die Frequenz bekannt geworden sind, wünschenswert sein, über 20 ms vor der Messung von Navigationsdatenbits eine Vorsummierung durchzuführen.
  • Den Fachleuten auf diesem Gebiet wird klar sein, dass der Koprozessor 1804 jede Anzahl von Operationen bei einem Satz von Korrelationsergebnissen ausführen kann, die von dem Faltungsprozessor 109 erzeugt wurden, wobei eine Teilmenge solcher Operationen oben beschrieben worden ist. Außerdem können die oben beschriebenen Operationen (z. B. Frequenz, Navigationsdatenmessung, Bittakt) einzeln oder in irgendeiner Kombination ausgeführt werden, um einen oder mehrere Satellitensignalparameter zu bestimmen. Des Weiteren wird es den Fachleuten auf diesem Gebiet klar sein, dass komplexe Vektorprodukt- und komplexe Skalarproduktoperationen nicht die einzigen Operationen sind, die verwendet werden können, um Frequenz- und Bitübergangsmessungen vorzunehmen. Zum Beispiel können verschiedene andere Frequenzdiskriminatoren und Bittaktidentifikatoren, die für GPS-Tracking-Schleifen entwickelt worden sind, in dem Kontext der Erfindung angewendet werden. Bezüglich Beispielen siehe Kaplan, D Elliot, "Understanding GPS Principals and Applications", Artech House Inc, 1996 (insbesondere Kapitel 5, Abschnitt 5.1.2.3 Frequency Lock Loops, Tabelle 5.4). In der Erfindung werden diese Algorithmen als Nachverarbeitungsoperationen implementiert, die von dem Koprozessor bei dem Korrelationsverlauf durchgeführt werden, anstatt dass sie wie in der ursprünglichen Formulierung als iterative Echtzeit-Algorithmen implementiert werden.
  • Obwohl verschiedene Ausführungsbeispiele, die die Lehren der vorliegenden Erfindung integrieren, hier ausführlich gezeigt und beschrieben worden sind, können sich die Fachleute auf diesem Gebiet ohne weiteres viele andere variierte Ausführungsbeispiele ausdenken, die immer noch diese Lehren umfassen.

Claims (30)

  1. Verfahren zum Schätzen eines Satellitensignalparameters in einem Satellitenpositionierungssystem-Empfänger, das folgende Schritte umfasst: Erzeugen einer Vielzahl von Korrelationsergebnissen zwischen einem Satellitensignal und einem Bezugssignal in Reaktion auf einen Befehl von einem Prozessor (1801, 114); wobei die Vielzahl von Korrelationsergebnissen einen Korrelationsverlauf umfasst, der von wenigstens einer Sequenz von Korrelationsergebnissen definiert wird, die einer jeweiligen wenigstens einen relativen Zeitverzögerung zwischen dem Satellitensignal und dem Bezugssignal entspricht, Schätzen wenigstens eines Satellitensignalparameters aus der Vielzahl von Korrelationsergebnissen unter Verwendung eines Koprozessors (1804), der in dem Satellitenpositionierungssystem-Empfänger integriert ist; wobei der wenigstens eine Satellitensignalparameter einen Doppler-Versatz für das Satellitensignal relativ zu dem Satellitenpositionierungssystem-Empfänger umfasst, und Versehen des Prozessors (1801, 114) mit dem wenigstens einen Satellitensignalparameter, dadurch gekennzeichnet, dass das Schätzen des Doppler-Versatzes die folgenden Schritte umfasst: Berechnen einer Vielzahl von komplexen vektoriellen Produkten unter Verwendung des Korrelationsverlaufs; und Mittelwertbildung der komplexen vektoriellen Produkte, um den Doppler-Versatz zu berechnen.
  2. Verfahren nach Anspruch 1, das des Weiteren Folgendes umfasst: Schätzen wenigstens eines Empfängerparameters unter Verwendung des wenigstens einen Satellitensignalparameters.
  3. Verfahren nach Anspruch 1, wobei der Schätzungsschritt des Weiteren Folgendes umfasst: Frequenzkorrigieren des Korrelationsverlaufs unter Verwendung des Doppler-Versatzes; und Wiederholen des Berechnungsschrittes und des Mittelwertbildungsschrittes unter Verwendung des frequenzkorrigierten Korrelationsverlaufs, um den Doppler-Versatz neu zu berechnen.
  4. Verfahren nach Anspruch 1, wobei der Schätzungsschritt des Weiteren Folgendes umfasst: Integrieren des Korrelationsverlaufs über einen vordefinierten Zeitraum.
  5. Verfahren nach Anspruch 1, das des Weiteren Folgendes umfasst: Schätzen einer Frequenz eines Oszillators in dem Satellitenpositionierungssystem-Empfänger in Reaktion auf den Doppler-Versatz.
  6. Verfahren nach Anspruch 1, wobei der wenigstens eine Satellitensignalparameter Navigationsdatenbits umfasst.
  7. Verfahren nach Anspruch 6, wobei der Schätzungsschritt Folgendes umfasst: Berechnen einer Vielzahl von komplexen skalaren Produkten unter Verwendung des Korrelationsverlaufs; und Schwellwertvergleich der Vielzahl von komplexen skalaren Produkten, um Phasenübergänge innerhalb des Korrelationsverlaufs zu identifizieren.
  8. Verfahren nach Anspruch 7, wobei der Schätzungsschritt des Weiteren Folgendes umfasst: Frequenzkorrigieren des Korrelationsverlaufs unter Verwendung eines Doppler-Versatzes.
  9. Verfahren nach Anspruch 7, wobei der Schätzungsschritt des Weiteren Folgendes umfasst: Integrieren des Korrelationsverlaufs über einen vordefinierten Zeitraum.
  10. Verfahren nach Anspruch 1, wobei der wenigstens eine Satellitensignalparameter einen Navigationsbittakt des Satellitensignals umfasst.
  11. Verfahren nach Anspruch 10, wobei der Schätzungsschritt Folgendes umfasst: Bestimmen in Reaktion auf den Korrelationsverlauf einer Vielzahl von Schätzwerten des Signalpegels unter Verwendung einer oder mehrerer Empfängerfrequenz- und Bittakt-Hypothesen.
  12. Verfahren nach Anspruch 10, wobei der Schätzungsschritt Folgendes umfasst: Berechnen einer Vielzahl von komplexen skalaren Produkten unter Verwendung des Korrelationsverlaufs; Auswählen eines Bittaktversatzes; Summieren komplexer skalarer Produkte aus der Vielzahl von komplexen skalaren Produkten, die dem ausgewählten Bittaktversatz entsprechen; und Wiederholen des Auswahlschrittes und des Summierschrittes für eine Vielzahl von Bittaktversätzen, um ein Histogramm zu bilden.
  13. Verfahren nach Anspruch 12, wobei der Schätzungsschritt des Weiteren Folgendes umfasst: Frequenzkorrigieren des Korrelationsverlaufs unter Verwendung eines Doppler-Versatzes.
  14. Verfahren nach Anspruch 12, wobei der Schätzungsschritt des Weiteren Folgendes umfasst: Integrieren des Korrelationsverlaufs über einen vordefinierten Zeitraum.
  15. Verfahren nach Anspruch 10, das des Weiteren Folgendes umfasst: Schätzen eines Timing-Fehlers, der mit dem Satellitenpositionierungssystem-Empfänger assoziiert ist, unter Verwendung des Navigationsbittaktes.
  16. Verfahren nach Anspruch 1, wobei der wenigstens eine Satellitensignalparameter wenigstens eine Rauschstatistikmessung umfasst, die mit dem Satellitensignal assoziiert ist.
  17. Verfahren nach Anspruch 1, das des Weiteren Folgendes umfasst: Verwenden des wenigstens einen Satellitensignalparameters, um den Satellitenpositionierungs-Empfänger zu konfigurieren, wenn weitere Korrelationen durchgeführt werden.
  18. Verfahren nach Anspruch 1, wobei der Erzeugungsschritt das Speichern der Vielzahl von Korrelationsergebnissen in einem Speicher innerhalb des Satellitenpositionierungssystem-Empfängers umfasst.
  19. Vorrichtung zum Schätzen eines Satellitensignalparameters in einem Satellitenpositionierungssystem-Empfänger, die Folgendes umfasst: einen Korrelator zum Erzeugen einer Vielzahl von Korrelationsergebnissen zwischen einem Satellitensignal und einem Bezugssignal in Reaktion auf einen Befehl von einem Prozessor (1801, 114); wobei die Vielzahl von Korrelationsergebnissen einen Korrelationsverlauf umfasst, der von wenigstens einer Sequenz von Korrelationsergebnissen definiert wird, die einer jeweiligen wenigstens einen relativen Zeitverzögerung zwischen dem Satellitensignal und dem Bezugssignal entspricht; einen Koprozessor (1804), der in dem Satellitenpositionierungssystem-Empfänger integriert ist, zum Schätzen wenigstens eines Satellitensignalparameters aus der Vielzahl von Korrelationsergebnissen; und eine Einrichtung zum Versehen des Prozessors (1801, 114) mit dem wenigstens einen Satellitensignalparameter; dadurch gekennzeichnet, dass der Koprozessor (1804) Folgendes umfasst: eine komplexe Vektorprodukteinheit zum Berechnen komplexer vektorieller Produkte in Reaktion auf die Vielzahl von Korrelationsergebnissen; und wobei der Koprozessor (1804) für Folgendes ausgelegt ist: Berechnen einer Vielzahl von komplexen vektoriellen Produkten (2014) unter Verwendung des Korrelationsverlaufs; und Mittelwertbildung der komplexen vektoriellen Produkte, um einen Doppler-Versatz zu berechnen.
  20. Vorrichtung nach Anspruch 19, die des Weiteren Folgendes umfasst: einen Speicher zum Speichern der Vielzahl von Korrelationsergebnissen.
  21. Vorrichtung nach Anspruch 19, wobei der Koprozessor (1804) wenigstens einen/eine der Folgenden umfasst: einen komplexen Modulator für das Frequenzkorrigieren der Vielzahl von Korrelationsergebnissen; eine komplexe Energieeinheit zum Berechnen der Energie in Reaktion auf die Vielzahl von Korrelationsergebnissen; eine komplexe Vektorprodukteinheit zum Berechnen komplexer vektorieller Produkte in Reaktion auf die Vielzahl von Korrelationsergebnissen; eine komplexe Skalarprodukteinheit zum Berechnen komplexer skalarer Produkte in Reaktion auf die Vielzahl von Korrelationsergebnissen; eine kohärente Integrationseinheit für die kohärente Integration der Vielzahl von Korrelationsergebnissen; eine nicht kohärente Integrationseinheit für die nicht kohärente Integration der Vielzahl von Korrelationsergebnissen; und eine Rauschstatistikeinheit für die Bestimmung von Rauschstatistiken in Reaktion auf die Vielzahl von Korrelationsergebnissen.
  22. Vorrichtung nach Anspruch 21, wobei der Koprozessor (1804) des Weiteren so ausgelegt ist, dass er den Korrelationsverlauf unter Verwendung des Doppler-Versatzes frequenzkorrigiert; und den Doppler-Versatz in Reaktion auf den frequenzkorrigierten Korrelationsverlauf neu berechnet.
  23. Vorrichtung nach Anspruch 21, wobei der Koprozessor (1804) des Weiteren so ausgelegt ist dass er den Korrelationsverlauf über einen vordefinierten Zeitraum integriert.
  24. Vorrichtung nach Anspruch 20, wobei der Koprozessor (1804) für Folgendes ausgelegt ist: Berechnen einer Vielzahl von komplexen skalaren Produkten unter Verwendung des Korrelationsverlaufs; und Schwellenwertvergleich der Vielzahl von komplexen skalaren Produkten, um Phasenübergänge innerhalb des Korrelationsverlaufs zu identifizieren.
  25. Vorrichtung nach Anspruch 24, wobei der Koprozessor (1804) des Weiteren für Folgendes ausgelegt ist: Frequenzkorrigieren des Korrelationsverlaufs unter Verwendung eines Doppler-Versatzes.
  26. Vorrichtung nach Anspruch 24, wobei der Koprozessor (1804) des Weiteren für Folgendes ausgelegt ist: Integrieren des Korrelationsverlaufs über einen vordefinierten Zeitraum.
  27. Vorrichtung nach Anspruch 20, wobei der Koprozessor (1804) für Folgendes ausgelegt ist: Berechnen einer Vielzahl von komplexen skalaren Produkten unter Verwendung des Korrelationsverlaufs; Auswählen eines Bittaktversatzes; Summieren komplexer skalarer Produkte aus der Vielzahl von komplexen skalaren Produkten, die dem ausgewählten Bittaktversatz entsprechen; und Wiederholen der Auswahl und der Summierung für eine Vielzahl von Bittaktversätzen, um ein Histogramm zu bilden.
  28. Vorrichtung nach Anspruch 27, wobei der Koprozessor (1804) des Weiteren so ausgelegt ist, dass er den Korrelationsverlauf unter Verwendung eines Doppler-Versatzes frequenzkorrigiert.
  29. Vorrichtung nach Anspruch 27, wobei der Koprozessor (1804) des Weiteren für Folgendes ausgelegt: Integration des Korrelationsverlaufs über einen vordefinierten Zeitraum.
  30. Vorrichtung nach Anspruch 19, wobei der Koprozessor (1804) so ausgelegt ist, dass er wenigstens eine Rauschstatistik in Reaktion auf die Vielzahl von Korrelationsergebnissen berechnet.
DE602004013356T 2003-10-22 2004-10-21 Verfahren und vorrichtung zur durchführung einer signalkorrelation unter verwendung vorgeschichtlicher korrelationsdaten Active DE602004013356T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US690973 2000-10-18
US10/690,973 US7567636B2 (en) 2001-05-18 2003-10-22 Method and apparatus for performing signal correlation using historical correlation data
PCT/US2004/034954 WO2005040845A1 (en) 2003-10-22 2004-10-21 Method and appartus for performing signal correlation using historical correlation data

Publications (2)

Publication Number Publication Date
DE602004013356D1 DE602004013356D1 (de) 2008-06-05
DE602004013356T2 true DE602004013356T2 (de) 2009-05-07

Family

ID=34521769

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004013356T Active DE602004013356T2 (de) 2003-10-22 2004-10-21 Verfahren und vorrichtung zur durchführung einer signalkorrelation unter verwendung vorgeschichtlicher korrelationsdaten

Country Status (7)

Country Link
US (2) US7567636B2 (de)
EP (1) EP1676144B1 (de)
JP (1) JP2007510891A (de)
KR (1) KR100964935B1 (de)
AT (1) ATE393401T1 (de)
DE (1) DE602004013356T2 (de)
WO (1) WO2005040845A1 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006556B2 (en) * 2001-05-18 2006-02-28 Global Locate, Inc. Method and apparatus for performing signal correlation at multiple resolutions to mitigate multipath interference
US7769076B2 (en) * 2001-05-18 2010-08-03 Broadcom Corporation Method and apparatus for performing frequency synchronization
US7995682B2 (en) * 2001-05-18 2011-08-09 Broadcom Corporation Method and apparatus for performing signal processing using historical correlation data
US7567636B2 (en) * 2001-05-18 2009-07-28 Global Locate, Inc. Method and apparatus for performing signal correlation using historical correlation data
GB2400282B8 (en) * 2003-03-31 2014-08-27 St Microelectronics Res & Dev Integrated circuit for code acquisition
EP1545019A1 (de) * 2003-12-19 2005-06-22 Telefonaktiebolaget LM Ericsson (publ) GPS-Empfänger mit Differentialkorrelation
US7447253B2 (en) * 2004-02-06 2008-11-04 Glocal Locate, Inc. Method and apparatus for processing satellite positioning system signals to obtain time information
EP1722487B1 (de) * 2005-05-11 2011-07-06 Nordnav Technologies AB Spreizspektrumkorrelator
WO2007004307A1 (en) * 2005-07-06 2007-01-11 National Institute Of Information And Communications Technology Incorporated Administrative Agency Delay estimation apparatus and method
US7778311B2 (en) * 2005-10-04 2010-08-17 Sirf Technology Holdings, Inc. Bit synchronization for weak navigational satellite signals
US7613258B2 (en) * 2006-02-28 2009-11-03 O2Micro International Ltd. Apparatus and method for determining GPS tracking loop parameter based on SNR estimation
EP1991881B1 (de) 2006-03-09 2017-05-03 European Space Agency Empfänger und sender zur verwendung in einem satellitennavigationssystem
US8149897B2 (en) * 2006-05-26 2012-04-03 Global Locate, Inc. Method and apparatus for performing signal correlation for signals received from satellites in multiple satellite systems
US7903028B2 (en) * 2006-12-18 2011-03-08 Sirf Technology Holdings, Inc. Ephemeris download from weak signals
US8054872B2 (en) * 2007-06-21 2011-11-08 O2Micro, Inc. Method and apparatus for signal carrier-to-noise power density ratio calculation
US7869485B2 (en) * 2007-06-21 2011-01-11 O2Micro International Ltd. Method and apparatus for detecting lock status of a GPS signal
JP5005446B2 (ja) * 2007-07-03 2012-08-22 日本無線株式会社 自立型高感度衛星信号受信機
US7924224B2 (en) * 2008-08-15 2011-04-12 Trueposition, Inc. Variable coherence integration for the location of weak signals
US8362951B2 (en) * 2009-07-02 2013-01-29 Qualcomm Incorporated Carrier phase processing in discontinuous satellite positioning system tracking
US9568609B2 (en) 2010-05-13 2017-02-14 Qualcomm Incorporated High sensitivity satellite positioning system receiver
US8730101B2 (en) * 2010-05-13 2014-05-20 Qualcomm Incorporated High sensitivity satellite positioning system receiver
US8922430B2 (en) 2011-12-22 2014-12-30 Trueposition, Inc. Optimization of variable coherence integration for the location of weak signals
US9130786B2 (en) * 2013-03-15 2015-09-08 Qualcomm Incorporated Device and method for computing a channel estimate
CN103532641B (zh) * 2013-09-17 2015-03-18 华中科技大学 一种用于卫星导航系统的射频信号质量评估方法
WO2016027727A1 (ja) * 2014-08-20 2016-02-25 ソニー株式会社 全地球航法衛星システムの受信装置および受信方法、並びにプログラム
US10094931B2 (en) 2016-02-23 2018-10-09 Samsung Electronics Co., Ltd Detection of, and processing of signals within a null zone by a global navigation satellite system receiver
CN106772459B (zh) * 2016-12-14 2019-05-24 中国人民解放军国防科学技术大学 一种基于gpu向量运算的多相关器计算方法
EP3671281A1 (de) * 2018-12-21 2020-06-24 European Space Agency Verfahren und system zur verarbeitung eines gnss-signals mittels homomorpher verschlüsselung
WO2023158508A1 (en) * 2022-02-18 2023-08-24 Deere & Company A satellite navigation receiver for acquisition of gnss signals

Family Cites Families (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445118A (en) 1981-05-22 1984-04-24 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Navigation system and method
US4426712A (en) 1981-05-22 1984-01-17 Massachusetts Institute Of Technology Correlation system for global position receiver
FR2525055A1 (fr) 1982-04-09 1983-10-14 Trt Telecom Radio Electr Procede de correction de frequence de la porteuse locale dans le recepteur d'un systeme de transmission de donnees et recepteur utilisant ce procede
US4578678A (en) 1983-11-14 1986-03-25 The United States Of America As Represented By The United States National Aeronautics And Space Administration High dynamic global positioning system receiver
US4660164A (en) 1983-12-05 1987-04-21 The United States Of America As Represented By The Secretary Of The Navy Multiplexed digital correlator
AU6597086A (en) * 1985-09-03 1987-03-24 Motorola, Inc. Apparatus for and method of doppler searching in a digital gps receiver
US4785463A (en) * 1985-09-03 1988-11-15 Motorola, Inc. Digital global positioning system receiver
US4811362A (en) 1987-06-15 1989-03-07 Motorola, Inc. Low power digital receiver
US4894842A (en) * 1987-10-15 1990-01-16 The Charles Stark Draper Laboratory, Inc. Precorrelation digital spread spectrum receiver
FR2650456A1 (fr) 1989-07-28 1991-02-01 Trt Telecom Radio Electr Procede de synchronisation par correlation
CH679718A5 (de) 1989-10-19 1992-03-31 Ascom Zelcom Ag
US5117232A (en) 1990-06-04 1992-05-26 Raytheon Company Global system positioning receiver
US5185610A (en) 1990-08-20 1993-02-09 Texas Instruments Incorporated GPS system and method for deriving pointing or attitude from a single GPS receiver
US5390207A (en) 1990-11-28 1995-02-14 Novatel Communications Ltd. Pseudorandom noise ranging receiver which compensates for multipath distortion by dynamically adjusting the time delay spacing between early and late correlators
US5148452A (en) 1990-12-31 1992-09-15 Motorola, Inc. Global positioning system digital receiver
US5199050A (en) 1991-04-05 1993-03-30 Trw Inc. Pseudorandom (PN) signal synchronization circuit and related method
US5175557A (en) 1991-07-18 1992-12-29 Motorola, Inc. Two channel global positioning system receiver
US5153598A (en) 1991-09-26 1992-10-06 Alves Jr Daniel F Global Positioning System telecommand link
JPH0590904A (ja) 1991-09-27 1993-04-09 Nec Corp 制御信号発生回路
US5216961A (en) * 1991-11-08 1993-06-08 Gray Stephen B Book index notch cutter
US5379224A (en) 1991-11-29 1995-01-03 Navsys Corporation GPS tracking system
DE4241882A1 (de) 1991-12-13 1993-06-17 Clarion Co Ltd
US5414729A (en) 1992-01-24 1995-05-09 Novatel Communications Ltd. Pseudorandom noise ranging receiver which compensates for multipath distortion by making use of multiple correlator time delay spacing
US5323164A (en) 1992-03-16 1994-06-21 Pioneer Electronic Corporation Satellite radio wave capturing method for a global positioning system (GPS) receiver
US5579338A (en) 1992-06-29 1996-11-26 Mitsubishi Denki Kabushiki Kaisha Spread spectrum receiver using partial correlations
US5237587A (en) 1992-11-20 1993-08-17 Magnavox Electronic Systems Company Pseudo-noise modem and related digital correlation method
GB2277853A (en) 1993-05-07 1994-11-09 Roke Manor Research Signal compression signals
DE4318368C1 (de) 1993-05-28 1994-07-14 Siemens Ag Verfahren zum Gewinnen eines einen Ausfall der Synchronisation zwischen einer Pseudozufallssignalfolge eines Senders und einer Referenz-Pseudozufallssignalfolge eines Empfängers anzeigenden Signals
US5615232A (en) * 1993-11-24 1997-03-25 Novatel Communications Ltd. Method of estimating a line of sight signal propagation time using a reduced-multipath correlation function
KR970005598B1 (ko) 1994-06-29 1997-04-18 삼성전자 주식회사 대역확산통신방식의 비동기 디지탈 수신장치
US5748891A (en) 1994-07-22 1998-05-05 Aether Wire & Location Spread spectrum localizers
DE69533540T2 (de) 1994-07-29 2005-11-17 Qualcomm, Inc., San Diego Verfahren und gerät zum ausführen der kodeerfassung in einem cdma übertragungssystem
US5610940A (en) 1994-09-09 1997-03-11 Omnipoint Corporation Method and apparatus for noncoherent reception and correlation of a continous phase modulated signal
US5594453A (en) 1994-11-01 1997-01-14 Trimble Navigation, Ltd GPS receiver having a rapid acquisition of GPS satellite signals
US5600670A (en) 1994-12-21 1997-02-04 Trimble Navigation, Ltd. Dynamic channel allocation for GPS receivers
JP2605648B2 (ja) 1994-12-22 1997-04-30 日本電気株式会社 Ss受信機における逆拡散符号位相検出装置
US5579014A (en) 1995-01-20 1996-11-26 General Electric Company Parallel correlator for global positioning system receiver
US5694416A (en) 1995-02-24 1997-12-02 Radix Technologies, Inc. Direct sequence spread spectrum receiver and antenna array for the simultaneous formation of a beam on a signal source and a null on an interfering jammer
US6023489A (en) 1995-05-24 2000-02-08 Leica Geosystems Inc. Method and apparatus for code synchronization in a global positioning system receiver
US5627855A (en) 1995-05-25 1997-05-06 Golden Bridge Technology, Inc. Programmable two-part matched filter for spread spectrum
US5600328A (en) 1995-06-21 1997-02-04 Matsushita Electric Industrial Co., Ltd. Demodulator circuit in global positioning system receiver
US5726659A (en) 1995-09-21 1998-03-10 Stanford University Multipath calibration in GPS pseudorange measurements
US5663734A (en) 1995-10-09 1997-09-02 Precision Tracking, Inc. GPS receiver and method for processing GPS signals
US5884214A (en) 1996-09-06 1999-03-16 Snaptrack, Inc. GPS receiver and method for processing GPS signals
US6208290B1 (en) * 1996-03-08 2001-03-27 Snaptrack, Inc. GPS receiver utilizing a communication link
DK0855041T3 (da) 1995-10-09 2003-04-14 Snaptrack Inc GPS modtager og fremgangsmåde til behandling af GPS signaler
JPH09148980A (ja) 1995-11-22 1997-06-06 Sony Corp パイロット信号検出方法、パイロット信号検出装置及び移動局受信装置
US6133874A (en) 1996-03-08 2000-10-17 Snaptrack, Inc. Method and apparatus for acquiring satellite positioning system signals
US5897605A (en) 1996-03-15 1999-04-27 Sirf Technology, Inc. Spread spectrum receiver with fast signal reacquisition
US6393046B1 (en) 1996-04-25 2002-05-21 Sirf Technology, Inc. Spread spectrum receiver with multi-bit correlator
US6125325A (en) 1996-04-25 2000-09-26 Sirf Technology, Inc. GPS receiver with cross-track hold
US5901171A (en) 1996-03-15 1999-05-04 Sirf Technology, Inc. Triple multiplexing spread spectrum receiver
US6252863B1 (en) 1996-04-09 2001-06-26 Trimble Navigation Limited Multipath compensation for pseudorange signals
US6047017A (en) 1996-04-25 2000-04-04 Cahn; Charles R. Spread spectrum receiver with multi-path cancellation
US5907578A (en) 1996-05-20 1999-05-25 Trimble Navigation Weighted carrier phase multipath reduction
US6034635A (en) 1996-06-06 2000-03-07 Gilhousen; Klein S. Method for using only two base stations for determining the position of a mobile subscriber in a CDMA cellular telephone system
US5859612A (en) 1996-06-06 1999-01-12 Qualcomm Incorporated Method for using an antenna with a rotating beam for determining the position of a mobile subscriber in a CDMA cellular telephone system
US5828694A (en) 1996-07-01 1998-10-27 Trimble Navigation Limited Determination of multipath tracking error
US5896304A (en) 1996-07-12 1999-04-20 General Electric Company Low power parallel correlator for measuring correlation between digital signal segments
US6118808A (en) 1996-07-12 2000-09-12 General Electric Company GPS receiver with efficient signal acquisition
US6151353A (en) 1996-07-12 2000-11-21 General Electric Company Pre-acquisition frequency offset removal in a GPS receiver
KR100197352B1 (ko) 1996-07-31 1999-06-15 이계철 기준 정합여파기를 이용한 병렬포착시스템
US5781543A (en) 1996-08-29 1998-07-14 Qualcomm Incorporated Power-efficient acquisition of a CDMA pilot signal
US5945948A (en) 1996-09-03 1999-08-31 Motorola, Inc. Method and apparatus for location finding in a communication system
JPH1079941A (ja) 1996-09-05 1998-03-24 Fujitsu Ltd 画像処理装置
US5808582A (en) 1996-09-13 1998-09-15 Litton Consulting Group, Inc. Global positioning system receiver with improved multipath signal rejection
US5798732A (en) * 1996-09-19 1998-08-25 Trimble Navigation Limited GPS receiver having a fast time to first fix
US5901183A (en) 1996-09-25 1999-05-04 Magellan Corporation Signal correlation technique for a receiver of a spread spectrum signal including a pseudo-random noise code that reduces errors when a multipath signal is present
US6256337B1 (en) 1996-11-21 2001-07-03 Dsp Group, Inc. Rapid acquisition of PN synchronization in a direct-sequence spread-spectrum digital communications system
US6377209B1 (en) * 1997-02-03 2002-04-23 Snaptrack, Inc. Method and apparatus for satellite positioning system (SPS) time measurement
US5812087A (en) 1997-02-03 1998-09-22 Snaptrack, Inc. Method and apparatus for satellite positioning system based time measurement
US6289041B1 (en) 1997-02-11 2001-09-11 Snaptrack, Inc. Fast Acquisition, high sensitivity GPS receiver
US5768319A (en) 1997-02-18 1998-06-16 Motorola, Inc. GPS data collection in high noise-to-signal ratio environments
US5864315A (en) 1997-04-07 1999-01-26 General Electric Company Very low power high accuracy time and frequency circuits in GPS based tracking units
US5999561A (en) 1997-05-20 1999-12-07 Sanconix, Inc. Direct sequence spread spectrum method, computer-based product, apparatus and system tolerant to frequency reference offset
US5920278A (en) 1997-05-28 1999-07-06 Gregory D. Gibbons Method and apparatus for identifying, locating, tracking, or communicating with remote objects
US5909471A (en) 1997-08-08 1999-06-01 Arraycomm, Inc. Method and system for rapid initial control signal detection in a wireless communications system
US5952947A (en) 1997-09-09 1999-09-14 Raytheon Company Flexible and programmable delta-sigma analog signal converter
US5872774A (en) 1997-09-19 1999-02-16 Qualcomm Incorporated Mobile station assisted timing synchronization in a CDMA communication system
US6307840B1 (en) 1997-09-19 2001-10-23 Qualcomm Incorporated Mobile station assisted timing synchronization in CDMA communication system
US6005899A (en) 1997-09-29 1999-12-21 Ericsson, Inc. Method for efficiently computing sequence correlations
US5963264A (en) 1997-10-30 1999-10-05 Echostar Engineering Corporation Selecting a digital television program and the control of a non-attached recording device
US5931893A (en) 1997-11-11 1999-08-03 Ericsson, Inc. Efficient correlation over a sliding window
US6252629B1 (en) 1997-12-26 2001-06-26 Matsushita Electric Industrial Co., Ltd. Timer-recording controller for controlling a timer-recording apparatus used to record a broadcast audio signal, a broadcast video signal, or a broadcast data signal
US5949364A (en) 1998-01-06 1999-09-07 The United States Of America As Represented By The Administration Of The National Aeronautics And Space Administration Method and system for producing images of an object
US6298083B1 (en) 1998-03-16 2001-10-02 Trimble Navigation Limited Power savings technique for a positioning system receiver
US6252543B1 (en) 1998-05-28 2001-06-26 Ericsson Inc. Location system combining ranging measurements from GPS and cellular networks
US6208291B1 (en) 1998-05-29 2001-03-27 Snaptrack, Inc. Highly parallel GPS correlator system and method
US6313786B1 (en) * 1998-07-02 2001-11-06 Snaptrack, Inc. Method and apparatus for measurement processing of satellite positioning system (SPS) signals
US6236354B1 (en) 1998-07-02 2001-05-22 Snaptrack, Inc. Reducing satellite signal interference in a global positioning system receiver
US6282248B1 (en) 1998-07-14 2001-08-28 Agere Systems Guardian Corp. Variable baud rate demodulator
JP3695732B2 (ja) 1998-09-02 2005-09-14 富士通株式会社 Cdma受信装置のサーチ装置
US6327473B1 (en) 1998-09-08 2001-12-04 Qualcomm Incorporated Method and apparatus for increasing the sensitivity of a global positioning satellite receiver
US6211820B1 (en) 1998-09-09 2001-04-03 Qualcomm Incorporated Call maintainance during position location
US6324227B1 (en) 1998-09-09 2001-11-27 Qualcomm Incorporated Receiver for performing position location with efficient rotator
US6208292B1 (en) 1998-09-09 2001-03-27 Qualcomm Incorporated Position location with low tolerance oscillator
US6181911B1 (en) 1998-09-09 2001-01-30 Qualcomm Incorporated Simplified receiver with rotator for performing position location
US6693953B2 (en) 1998-09-30 2004-02-17 Skyworks Solutions, Inc. Adaptive wireless communication receiver
JP2002529752A (ja) * 1998-11-11 2002-09-10 サムソン・エレクトロニクス・カンパニー・リミテッド 衛星無線航法システムの擬似雑音信号の受信器
US6157891A (en) 1998-11-16 2000-12-05 Lin; Ching-Fang Positioning and ground proximity warning method and system thereof for vehicle
US6121923A (en) 1999-02-19 2000-09-19 Motorola, Inc. Fixed site and satellite data-aided GPS signal acquisition method and system
US6370208B1 (en) 1999-02-26 2002-04-09 Industrial Technical Research Institute Correlator for CDMA applications
JP3600529B2 (ja) 1999-03-01 2004-12-15 富士通株式会社 Cdma用受信機
US6304216B1 (en) 1999-03-30 2001-10-16 Conexant Systems, Inc. Signal detector employing correlation analysis of non-uniform and disjoint sample segments
US6363108B1 (en) 1999-03-31 2002-03-26 Qualcomm Inc. Programmable matched filter searcher
WO2000065751A1 (en) 1999-04-23 2000-11-02 Global Locate, Inc. Apparatus for computing gps correlations in parallel
JP2000310673A (ja) 1999-04-26 2000-11-07 Matsushita Electric Ind Co Ltd Gps受信機
US6292132B1 (en) 1999-08-13 2001-09-18 Daimlerchrysler Ag System and method for improved accuracy in locating and maintaining positions using GPS
US6278403B1 (en) * 1999-09-17 2001-08-21 Sirf Technology, Inc. Autonomous hardwired tracking loop coprocessor for GPS and WAAS receiver
US6421372B1 (en) 1999-11-10 2002-07-16 Itt Manufacturing Enterprises, Inc. Sequential-acquisition, multi-band, multi-channel, matched filter
US6804290B1 (en) * 2000-05-26 2004-10-12 Motorola, Inc. Method of acquiring signal code phases and geographic positioning receiver
US6934317B1 (en) * 2000-10-11 2005-08-23 Ericsson Inc. Systems and methods for communicating spread spectrum signals using variable signal constellations
US6542820B2 (en) 2001-06-06 2003-04-01 Global Locate, Inc. Method and apparatus for generating and distributing satellite tracking information
US6560534B2 (en) 2001-06-06 2003-05-06 Global Locate, Inc. Method and apparatus for distributing satellite tracking information
US6427122B1 (en) 2000-12-23 2002-07-30 American Gnc Corporation Positioning and data integrating method and system thereof
US6819707B2 (en) * 2001-05-18 2004-11-16 Global Locate, Inc. Method and apparatus for performing signal correlation using historical correlation data
US7567636B2 (en) * 2001-05-18 2009-07-28 Global Locate, Inc. Method and apparatus for performing signal correlation using historical correlation data
US6888849B2 (en) * 2001-06-15 2005-05-03 Lucent Technologies Inc. Method for evaluating capacity utilization of a terminus in a communication system
US6433726B1 (en) 2001-06-22 2002-08-13 Koninklijke Philips Electronics N.V. Fractional decimation filter using oversampled data
US6651000B2 (en) 2001-07-25 2003-11-18 Global Locate, Inc. Method and apparatus for generating and distributing satellite tracking information in a compact format
US6775319B2 (en) * 2001-08-16 2004-08-10 Motorola, Inc. Spread spectrum receiver architectures and methods therefor

Also Published As

Publication number Publication date
US7567636B2 (en) 2009-07-28
US20090262789A1 (en) 2009-10-22
KR20060094098A (ko) 2006-08-28
EP1676144B1 (de) 2008-04-23
US20040141549A1 (en) 2004-07-22
EP1676144A1 (de) 2006-07-05
KR100964935B1 (ko) 2010-06-21
DE602004013356D1 (de) 2008-06-05
WO2005040845A1 (en) 2005-05-06
US8005174B2 (en) 2011-08-23
ATE393401T1 (de) 2008-05-15
JP2007510891A (ja) 2007-04-26

Similar Documents

Publication Publication Date Title
DE602004013356T2 (de) Verfahren und vorrichtung zur durchführung einer signalkorrelation unter verwendung vorgeschichtlicher korrelationsdaten
DE60308691T2 (de) Verfahren und vorrichtung zur durchführung einer signalkorrelation in mehreren auflösungen, zur mehrwegestörungsverminderung
DE69723078T2 (de) Verfahren zum effektiven abtasten in einem korrelator
DE69731200T2 (de) Erfassung in einem gps-empfänger
DE69720722T2 (de) Leistungseffizienter empfänger
DE602005001630T2 (de) Verfahren zum Empfangen von GPS Signalen und GPS Empfänger
DE60036010T2 (de) System zur signalerfassung für einen spreizspektrumempfänger
DE60013662T2 (de) Empfängereichungsverfahren für GLONASS
DE60318125T2 (de) Hardware-architektur für bearbeitung von galileo alternate binary offset carrier (altboc) signalen
DE3933968C2 (de) Empfänger für ein weltumspannendes Standortsystem (GPS-Empfänger)
DE69834235T2 (de) Verfahren und Vorrichtung zum Empfang von GPS/GLONASS-Signalen
DE69629724T3 (de) Kombiniertes gps und kommunikations-system mit geteilten schaltkreisen
DE69919729T2 (de) Empfänger zur positionsbestimmung mit effizientem phasendrehglied
EP1430616B1 (de) Verfahren und vorrichtung zur durchführung einer signalkorrelation unter verwendung vorgeschichtlicher korrelationsdaten
DE60035367T2 (de) Sucher mit programmierbarem signalangepasstem filter zum suchen nach mehreren pilotsignalen
US7920093B2 (en) Methods for improving computational efficiency in a global positioning satellite receiver
DE69720723T2 (de) Verfahren zur vermeidung von harmonischen dopplerkopien in einem gps-empfänger
DE60038562T2 (de) Signalangepasster filter und spreizspektrumempfänger
DE102006032777A1 (de) Kaltstart-Satelliten-Suchverfahren
DE102019125502A1 (de) Radar-Vorrichtung und Zielbestimmungsverfahren
DE102004032363B4 (de) GPS-Empfänger und zugehöriges Signalverarbeitungsverfahren
DE112009001606T5 (de) Verfahren und Vorrichtung zum Lindern der Effekte von CW-Interferenz über Post-Korrelations-Verarbeitung in einem GPS-Empfänger
DE60220046T2 (de) Integrierter Schaltkreis zur GPS Kodeerfassung
DE60303185T2 (de) Verfahren, System und elektronisches Gerät zur Synchronisation eines Empfängers
DE69826073T2 (de) Synchroner Fangkreis für Kodemultiplexmehrfachzugriff

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M