US20030137450A1 - Method and system for processing positioning signals in a geometric mode - Google Patents
Method and system for processing positioning signals in a geometric mode Download PDFInfo
- Publication number
- US20030137450A1 US20030137450A1 US10/338,094 US33809403A US2003137450A1 US 20030137450 A1 US20030137450 A1 US 20030137450A1 US 33809403 A US33809403 A US 33809403A US 2003137450 A1 US2003137450 A1 US 2003137450A1
- Authority
- US
- United States
- Prior art keywords
- ranging receiver
- satellite
- data
- satellites
- pseudorange
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/24—Acquisition or tracking or demodulation of signals transmitted by the system
- G01S19/29—Acquisition or tracking or demodulation of signals transmitted by the system carrier including Doppler, related
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/03—Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers
- G01S19/05—Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers providing aiding data
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/23—Testing, monitoring, correcting or calibrating of receiver elements
- G01S19/235—Calibration of receiver components
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/24—Acquisition or tracking or demodulation of signals transmitted by the system
- G01S19/25—Acquisition or tracking or demodulation of signals transmitted by the system involving aiding data received from a cooperating element, e.g. assisted GPS
- G01S19/254—Acquisition or tracking or demodulation of signals transmitted by the system involving aiding data received from a cooperating element, e.g. assisted GPS relating to Doppler shift of satellite signals
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/24—Acquisition or tracking or demodulation of signals transmitted by the system
- G01S19/25—Acquisition or tracking or demodulation of signals transmitted by the system involving aiding data received from a cooperating element, e.g. assisted GPS
- G01S19/256—Acquisition or tracking or demodulation of signals transmitted by the system involving aiding data received from a cooperating element, e.g. assisted GPS relating to timing, e.g. time of week, code phase, timing offset
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/0009—Transmission of position information to remote stations
- G01S5/0018—Transmission from mobile station to base station
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/0009—Transmission of position information to remote stations
- G01S5/0045—Transmission from base station to mobile station
- G01S5/0063—Transmission from base station to mobile station of measured values, i.e. measurement on base station and position calculation on mobile
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/03—Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers
- G01S19/09—Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers providing processing capability normally carried out by the receiver
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/14—Receivers specially adapted for specific applications
- G01S19/17—Emergency applications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/24—Acquisition or tracking or demodulation of signals transmitted by the system
- G01S19/25—Acquisition or tracking or demodulation of signals transmitted by the system involving aiding data received from a cooperating element, e.g. assisted GPS
- G01S19/258—Acquisition or tracking or demodulation of signals transmitted by the system involving aiding data received from a cooperating element, e.g. assisted GPS relating to the satellite constellation, e.g. almanac, ephemeris data, lists of satellites in view
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/34—Power consumption
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/35—Constructional details or hardware or software details of the signal processing chain
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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
- G01S2205/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S2205/001—Transmission of position information to remote stations
- G01S2205/008—Transmission of position information to remote stations using a mobile telephone network
Definitions
- This invention relates generally to the field of geolocation and more particularly to a method and system for processing positioning signals in a geometric mode.
- a typical geolocation function utilizes a course acquisition (C/A) code, or Gold code, which is received repeatedly from GPS satellites, in order to determine position.
- C/A course acquisition
- the Gold code comprises satellite message data that is modulated on top of the Gold code signal by inverting the phase according to the message data.
- the spectral density level of a signal from a GPS satellite received at a conventional GPS receiver with a direct line-of-sight to the satellite is significantly less than the thermal noise level of the conventional GPS receiver.
- the satellite signals are received at wireless devices being operated with obstructed views of the sky and thus obstructed line-of-sight, the satellite signals are weakened even further. Consequently, the obstructed signal levels from satellites are generally well below the threshold at which receivers may receive reliable message data signals from the satellites.
- Recent solutions to the problem of receiving weakened positioning signals provide for partitioning the geolocation processing functions such that some of these functions are performed at the unknown location which is to be determined and other functions are performed at a location with an unobstructed view of the signal source.
- one of these methods uses a satellite signal source, provides for measuring all the satellite signal parameters, including the Doppler shift for each satellite signal, at unobstructed receivers located near the unknown location. The unobstructed receivers then send pertinent data to the unknown location to allow pseudorange estimation to be completed at the unknown location.
- Disadvantages associated with this example include a relatively expensive requirement of integration of the network of such receivers with the wireless carrier network that provides a link between the unknown location and the unobstructed receivers.
- this solution restricts the joint operation of the unknown location and the unobstructed receivers in performing the geolocation processing functions to only those carrier networks that are so integrated.
- the present invention provides an improved method and system for processing positioning signals in a geometric mode.
- This invention substantially eliminates or reduces disadvantages and problems associated with previous systems and methods.
- the time to estimate a pseudorange from received positioning signals is minimized, while the processing gain is maximized to facilitate rapid detection of positioning signals while minimizing the consumption of energy.
- a method for processing positioning signals in a ranging receiver in a geometric mode includes receiving timing information from a first set of satellites in a satellite constellation at the ranging receiver.
- the satellite constellation includes a plurality of satellites.
- a time of day is determined based on the received timing information.
- Approximate location data for the ranging receiver is determined.
- a frequency bias for the ranging receiver is determined.
- Ephemeris data is received from a second set of satellites in the satellite constellation.
- Superframe data for the satellite constellation is received from a third set of satellites in the satellite constellation at the ranging receiver.
- a pseudorange estimate is determined in the ranging receiver based on the time of day, the approximate location data, the frequency bias, the ephemeris data, and the superframe data.
- Technical advantages of one or more embodiments of the present invention include providing an improved method for processing positioning signals in a geometric mode.
- the time required to obtain pseudorange estimates from weakened positioning signals is minimized and the processing gain available in any sample segment used to obtain pseudorange information is maximized.
- the pseudorange estimation may be accomplished without performing a time-consuming search through the Doppler frequencies and satellite codes.
- a geolocation processor may supply, to a receiver, current fragments of message data that were transmitted during the time the receiver was collecting signal samples. This is possible because the geolocation processor and the receiver are able to exchange time-of-day synchronizing information. As a result, the modulation for the message data may be removed from the samples being processed by the receiver. Accordingly, the available processing gain that can be achieved from a signal averaging process is maximized.
- technical advantages of one or more embodiments of the present invention also include an ability either to obtain greater sensitivity in a given amount of signal processing time or to significantly reduce the amount of processing time to reach a particular level of sensitivity.
- a dynamic process is used that acquires only the amount of signal necessary to achieve reliable detection. This minimizes both the processing time and the amount of intermediate-result memory storage required during signal processing.
- Yet another technical advantage of one or more embodiments of the present invention includes the removal of a requirement to integrate a geolocation processing system with the wireless carrier network that provides a communication link between the ranging receiver and an assisting function.
- a wireless carrier or plain old telephone system network are eliminated.
- support from a carrier's network is not required to determine a coarse position estimation.
- a support network of nearby reference receivers, or its equivalent is not required to provide Doppler-shift compensation or Doppler-shift search assistance.
- An end-to-end frequency-calibration embodiment in the wireless communication link between the receiver and the geolocation processor to allow making use of the Doppler-shift is also not required.
- FIG. 1 is a block diagram illustrating a geolocation system operable to process positioning signals in accordance with one embodiment of the present invention
- FIG. 2 is a block diagram illustrating the ranging receiver of FIG. 1 in accordance with one embodiment of the present invention
- FIG. 3 is a block diagram illustrating the ranging receiver of FIG. 1 in accordance with another embodiment of the present invention.
- FIG. 4 is a flow diagram illustrating a method for obtaining a calibration location estimate for the ranging receiver of FIGS. 1, 2 or 3 in accordance with one embodiment of the present invention
- FIG. 5 is a flow diagram illustrating a method for obtaining a location estimate based on a non-initial trigger for the ranging receiver of FIGS. 1, 2 or 3 in accordance with one embodiment of the present invention
- FIGS. 6A and 6B are flow diagrams illustrating a direct extraction method for determining carrier frequency offset in the methods of FIGS. 4 and 5 in accordance with one embodiment of the present invention
- FIG. 7 is a flow diagram illustrating a method for determining pseudorange in the ranging receiver of FIGS. 1, 2 or 3 in a stand-alone mode in accordance with one embodiment of the present invention
- FIGS. 8A and 8B are flow diagrams illustrating a method for aligning message data to determine a pseudorange in the ranging receiver of FIGS. 1, 2 or 3 in a stand-alone mode in accordance with one embodiment of the present invention
- FIGS. 9A and 9B are block diagrams illustrating a system for generating sub-stacks and stacks to determine coarse satellite message data alignment in the system of FIG. 1 in accordance with one embodiment of the present invention
- FIG. 10 is a block diagram illustrating a system for refining satellite message data alignment in the system of FIG. 1 in accordance with one embodiment of the present invention
- FIG. 11 is a flow diagram illustrating a method for aligning message data in the ranging receiver of FIGS. 1, 2 or 3 in accordance with one embodiment of the present invention
- FIG. 12 is a flow diagram illustrating a method for predicting satellite message data received in positioning signals at the ranging receiver of FIGS. 1, 2 or 3 in accordance with one embodiment of the present invention
- FIGS. 13A, 13B and 13 C are flow diagrams illustrating a method for determining a pseudorange in the ranging receiver of FIGS. 1, 2 or 3 in a geometric mode in accordance with one embodiment of the present invention
- FIG. 14 is a flow diagram illustrating a method for determining geolocation in the ranging receiver of FIGS. 1, 2 or 3 with matching assistance in accordance with one embodiment of the present invention.
- FIG. 15 is a flow diagram illustrating a method for determining geolocation in the geolocation processor of FIG. 1 by providing matching assistance in accordance with one embodiment of the present invention.
- FIG. 1 is a block diagram illustrating a remote geolocation system 10 in accordance with one embodiment of the present invention.
- the system 10 may comprise a global positioning system (GPS), a global navigation satellite system (GLONASS), or other suitable navigation system.
- GPS global positioning system
- GLONASS global navigation satellite system
- Navigation message data is modulated onto this Gold code modulated carrier signal by either inverting or not inverting the phase of the Gold code in sympathy with the values of the navigation message data bits.
- Each transmitted navigation message data bit coincides with 20 Gold code epochs, or 20 milliseconds.
- the system 10 comprises a plurality of positioning signal transmitters 12 and at least one ranging receiver 14 .
- the positioning signal transmitters 12 are operable to transmit positioning signals
- each ranging receiver 14 is operable to receive the positioning signals and to perform geolocation processing functions in order to determine a pseudorange estimate for the ranging receiver 14 based on the received signals.
- each means every one of at least a subset of the identified items.
- the positioning signal transmitters 12 comprise satellites 12 .
- “satellites” means conventional satellites, pseudolites, or other suitable positioning signal transmitters.
- a location estimate may be determined for the ranging receiver 14 based in part on the pseudorange estimate.
- a location estimate provides a location for the ranging receiver 14 that is accurate to within 10 to 50 meters or other suitable distance.
- a location estimate may be determined when the ranging receiver 14 is receiving weakened positioning signals, such as signals weakened by obstructions.
- Weakened positioning signals comprise signals that are received from the satellites 12 at levels that result in insufficient information being received by the ranging receiver 14 , in the absence of other satellite signals or other sources of information, to determine a location estimate but sufficient information being received to estimate a pseudorange for the ranging receiver 14 .
- weakened positioning signals comprise signals compromised up to 16 dB below “clear view”, or unobstructed, signal levels.
- weakened positioning signals comprise signals compromised up to 30 dB below “clear view” signal levels.
- the system 10 also comprises a wireless device 16 and a service center 18 which may be coupled to each other through a wireless carrier network 20 and the plain old telephone system (POTS) network 22 .
- POTS plain old telephone system
- the system 10 comprises a geolocation processor 24 , which may be coupled to the service center 18 either directly or indirectly, such as through a network or other suitable form of indirect communication and may be coupled through the service center 18 to the wireless device 16 .
- the illustrated embodiment includes one service center 18 and one geolocation processor 24 , it will be understood that the system 10 may comprise any suitable number of the components 18 and 24 without departing from the scope of the present invention and that functionality of the system 10 may be otherwise suitably distributed or combined. It will be further understood that a single geolocation processor 24 may be coupled to a plurality of service centers 18 without departing from the scope of the present invention.
- the wireless device 16 may be coupled to the ranging receiver 14 , which may comprise push buttons 30 , or other suitable interfaces, for user operation such as to initiate a location estimating process for the ranging receiver 14 .
- the wireless device 16 is operable to provide a communication link between the ranging receiver 14 and a service center 18 via the wireless carrier network 20 and the POTS network 22 and to provide a communication link between the ranging receiver 14 and a geolocation processor 24 via the service center 18 .
- the wireless device 16 may comprise a cellular telephone, a wireless Personal Digital Assistant, a two-way or response pager, a private or commercial vehicle tracking system, an “On-Star” type motorist service network, a private or commercial wireless data network (or a device in such a network), or any other suitable device or network capable of providing a data-link between the ranging receiver 14 and the geolocation processor 24 .
- the wireless device 16 may be coupled to the ranging receiver 14 in any suitable fashion.
- the wireless device 16 and the ranging receiver 14 may be coupled together by a cable 32 .
- the ranging receiver 14 may be located near the wireless device 16 and linked to the wireless device 16 by a low-powered short-range wireless link, such as those provided by the Blue-Tooth protocols.
- the ranging receiver 14 may also be coupled to the body of the wireless device 16 as a “stick-on” attachment, or the ranging receiver 14 may be built into a receptacle such that the wireless device 16 is in electrical contact with the ranging receiver 14 when the wireless device 16 is inserted into the receptacle.
- the ranging receiver 14 may be integrated with the wireless device 16 .
- the wireless device 16 is operable to process communication at a minimum of two frequencies, one frequency for receiving signals to be processed by the wireless device 16 independently of the functionality of the ranging receiver 14 , such as cellular signals for a wireless device 16 comprising a cellular telephone, and a second frequency for receiving positioning signals.
- the wireless device 16 is also operable to digitize samples at a rate corresponding to the rate at which the ranging receiver 14 may process samples in accordance with the present invention.
- the wireless device 16 may be operable to digitize samples at a rate of at least 2.048 Megasamples/second at a quantizer resolution of a minimum of two bits.
- the wireless device 16 may include additional memory, as compared to a wireless device 16 not coupled to a ranging receiver 14 , in order to store samples for processing during pseudorange estimation.
- the service center 18 may comprise a Public Safety Access Point (PSAP), a Vehicle Dispatch Application, or other suitable entity capable of facilitating geolocation processing for the ranging receiver 14 by coupling the ranging receiver 14 to the geolocation processor 24 .
- PSAP Public Safety Access Point
- Vehicle Dispatch Application or other suitable entity capable of facilitating geolocation processing for the ranging receiver 14 by coupling the ranging receiver 14 to the geolocation processor 24 .
- the service center 18 is also operable to manage the detection, routing and switching of voice traffic that may be associated with the geolocation determination process.
- the service center 18 includes a rack 45 of modems 40 , a switch 42 , and at least one telephone handset 44 .
- Each modem 40 may include a Location Services Protocol modem or other suitable modem and is operable to provide a communication link between the service center 18 and the ranging receiver 14 associated with the wireless device 16 through the POTS network 22 and the wireless carrier network 20 .
- the modem 40 or other communication link such as an Ethernet, may also provide a link between the service center 18 and the geolocation processor 24 .
- Each modem 40 is also operable to route voice communication to the switch 42 and data communication to the geolocation processor 24 .
- the switch 42 is operable to route voice communication from a modem 40 to a telephone handset 44 and from a telephone handset 44 to a modem 40 .
- the telephone handset 44 allows an operator at the service center 18 to interact with a user of the wireless device 16 through voice communication provided through a modem 40 .
- the geolocation processor 24 is operable to identify the satellites 12 by matching the differences between pairs of carrier frequency offsets measured at the ranging receiver 14 with the differences between pairs of Doppler frequency shift estimates made of satellites in view at particular locations on the Earth's surface, to accurately calibrate a real-time clock in the ranging receiver 14 , to track satellite message data from the satellites 12 and bit transition times in the satellite message data, to provide fragments of the satellite message data from the identified satellites 12 to the ranging receiver 14 , to convert a pseudorange estimate from the ranging receiver 14 into a geolocation of the ranging receiver 14 , and to provide the geolocation to a requester such as the ranging receiver 14 or PSAP operator.
- the geolocation processor 24 comprises a workstation 46 and a receiver 48 .
- the workstation 46 is operable to perform geolocation processing functions.
- the workstation 46 is also operable to obtain current ephemeris, time, and other suitable satellite message data from the receiver 48 .
- Ephemeris data may comprise trajectory data received from one or more satellites 12 that allow positions of satellites in the satellite constellation to be predicted.
- the receiver 48 may comprise a GPS receiver or other suitable receiver operable to receive positioning signals from the satellites 12 .
- the wireless carrier network 20 may be operable to coordinate location management, authentication, service management, subscriber management, and any other suitable functions for a plurality of wireless devices 16 .
- the wireless network 20 may comprise a public land mobile network or other suitable network operable to provide communication between the wireless devices 16 and the POTS network 22 .
- the POTS network 22 may be coupled to the wireless carrier network 20 and to the service center 18 through communication links 50 .
- the communication links 50 may be any type of communication link capable of supporting data transfer.
- each of the communication links 50 may comprise, alone or in combination, Integrated Services Digital Network, Asymmetric Digital Subscriber Line, T 1 or T 3 communication lines, hard-wire lines, telephone lines or wireless communication. It will be understood that the communication links 50 may comprise other suitable types of data communication links.
- the communication links 50 may also connect to a plurality of intermediate servers between the POTS network 22 and both the wireless carrier network 20 and the service center 18 .
- the system 10 may also comprise one or more remote receivers 60 , service requesters 62 and/or application servers 64 which may be coupled to the geolocation processor 24 through a data network 66 .
- the remote receiver 60 may comprise a GPS receiver or other suitable receiver operable to receive positioning signals from the satellites 12 . Data derived from these positioning signals may then be provided to the geolocation processor 24 through the data network 66 .
- the geolocation processor 24 may receive positioning signals from either receiver 48 or receiver 60 .
- the system 10 comprises three or four remote receivers 60 spaced around the Earth such that, at any given time, the three remote receivers 60 may receive current ephemeris data from each satellite in the constellation.
- the service requester 62 may comprise a location information requester that is operable to generate a request for a location estimate for a particular ranging receiver 14 and to provide the request to the application server 64 through the data network 66 .
- the application server 64 may comprise a server for location-based applications or other suitable server that is operable to receive the request generated by the service requester 62 and to process the request.
- the application server 64 is operable to provide the request to the geolocation processor 24 through the data network 66 , prompting the geolocation processor 24 to initiate a location estimating process for the ranging receiver 14 identified by the service requester 62 in the request.
- the application server 64 is operable to receive a resulting location estimate from the geolocation processor 24 through the data network 66 and to provide the location estimate to the service requester 62 through the data network 66 .
- the data network 66 may comprise a public switched telephone network, an integrated services digital network, a local area network, a wide area network, a global computer network, such as the Internet or other dedicated switched network, or other communication system or combination of communication systems at one or more locations. According to one embodiment, any of the networks 20 , 22 and 66 may share a same physical implementation with one or both of the other networks 20 , 22 and 66 .
- the workstation 46 may be operable to regularly re-compute the pattern of Doppler frequency shifts of satellites 12 based on the changing satellite positions for use in satellite identification by Doppler frequency shift differences, as described in more detail below.
- the workstation 46 is also operable to track the satellite message data modulated on top of the Gold code ranging signal transmitted by each of the satellites 12 and to track the transition times of the satellite message data bit boundaries.
- the satellites 12 comprise satellites of a navigational satellite constellation that are in view of the ranging receiver 14 and/or other receivers 48 and 60 at a particular time and that are operable to transmit positioning signals, such as navigation and ranging signals. It will be understood that the in-view satellites 12 of the satellite constellation continually change due to orbital movement of the satellites and rotational movement of the Earth. According to one embodiment, the system 10 comprises at least four satellites 12 at any particular time.
- the ranging receiver 14 , the service center 18 , and the geolocation processor 24 may comprise logic encoded in media.
- the logic comprises functional instructions for carrying out program tasks.
- the media comprises computer disks or other computer-readable media, application-specific integrated circuits, field-programmable gate arrays, digital signal processors, other suitable specific or general-purpose processors, transmission media or other suitable media in which logic may be encoded and utilized.
- the service center 18 provides data communication between the ranging receiver 14 and the geolocation processor 24 to allow the ranging receiver 14 to generate a pseudorange estimate and the geolocation processor 24 to generate a geolocation.
- the service center 18 provides voice communication between a user of the wireless device 16 and an operator at the service center 18 .
- the service center 18 may manage emergency services, vehicle-dispatching services, or other suitable services which utilize geolocation processing to locate wireless devices 16 .
- An operator at the service center 18 monitors and manages emergency calls, communications with vehicles via wireless devices 16 , or other suitable communications.
- the receiver 48 receives positioning signals from the satellites 12 and processes these signals.
- the workstation 46 determines the location of a wireless device 16 based on the signals received at the receiver 48 and based on information exchanged with the ranging receiver 14 via the wireless device 16 and the service center 18 .
- the telephone handset 44 allows an operator at service center 18 to call the wireless device 16 or to respond to an incoming call from the wireless device 16 . Calls to the wireless device 16 may also be initiated by the workstation 46 via a modem 40 .
- Each modem 40 provides data exchange capability with the ranging receiver 14 via the wireless device 16 over the same voice channel used by a caller to speak to the operator at the service center 18 .
- each modem 40 also provides time-exchange facility with the ranging receiver 14 over the voice channel.
- the process may begin by an exchange of time signals between the ranging receiver 14 and the geolocation processor 24 to establish a real time at the ranging receiver 14 .
- This time is used to coordinate the use of further time-critical information to be exchanged between the ranging receiver 14 and the geolocation processor 24 .
- the ranging receiver 14 may begin collecting and decimating satellite signal samples received from the satellites 12 for a carrier frequency estimating process. It will be understood that, in accordance with one embodiment of the present invention, the ranging receiver 14 may be operable to determine real time for geolocation processing from the positioning signals without exchanging time signals with the geolocation processor 24 .
- a direct method for quickly estimating the received carrier frequency for each of the satellites 12 may be used.
- this method uses signal squaring to remove the biphase modulation and uses narrow-band filtering to reduce the noise.
- at least two bits per signal sample and a final stage of down-conversion to near baseband by a heterodyne step are used.
- the received carrier frequency estimates include the down-conversion frequency uncertainty due to local oscillator manufacturing tolerances, thermal drift and/or other conditions, thereby providing a substantially exact frequency that may be applied to compensate for the Doppler frequency shift and these other errors, even over the long periods of signal averaging needed to reach the required sensitivity for successful signal detection.
- this direct determination of the received carrier frequencies to high resolution allows the identity of satellites 12 contributing the specific pattern of Doppler-frequency differences, which are equal to the carrier frequency offset (CFO) differences, to be determined by a pattern match between the Doppler differences computed for the current positions of the satellites in the constellation and target matching patches on the surface of the Earth.
- the ranging receiver 14 then continues collecting and storing samples of the signal that are suitable for estimating pseudorange.
- the geolocation processor 24 identifies the satellites 12 that are in view at the unknown location and, for each of these satellites 12 , extracts that portion of the satellite message data that is being transmitted during sample collection.
- the geolocation processor 24 may also identify the actual Doppler frequency shift frequency to be used in the time-dilation correction, as described in FIG. 13C. Time-dilation is proportional to the total accumulated Doppler frequency shift.
- the geolocation processor 24 then transmits to the ranging receiver 14 a satellite ID for each identified satellite 12 to enable rapid computation of pseudorange without searching through Doppler frequencies and satellite codes and transmits the satellite message data fragment to enable removal of the data modulation from the signals so that linear summation may be performed for increased processing gain.
- the ranging receiver 14 begins processing the signals for the pseudorange content.
- FIG. 2 is a block diagram illustrating the ranging receiver 14 in accordance with one embodiment of the present invention.
- the ranging receiver 14 is a mobile device that may be easily transported from one location to another.
- the ranging receiver 14 is coupled to a wireless device 16 that comprises a digital cellular telephone.
- the wireless device 16 may comprise any suitable device capable of wireless communication.
- the ranging receiver 14 comprises an antenna 202 that is capable of receiving positioning signals.
- the antenna 202 comprises a GPS antenna that is capable of receiving GPS signals.
- the antenna 202 may comprise a circularly polarized ceramic patch antenna or other suitable antenna.
- the antenna 202 is coupled to a filter and low-noise amplifier 204 .
- the filter and low-noise amplifier 204 is operable to limit bandwidth to approximately 2 MHz (centered at 1575.42 MHz).
- the filter and low-noise amplifier 204 is coupled to a down-converter 206 .
- the down-converter 206 is operable to down-convert the signal to baseband.
- the down-converter is operable to down-convert the signal using multiple stages of amplification, filtering and super-heterodyning.
- the down-converter 206 may comprise a radio frequency/intermediate frequency (RF/IF) down-converter or other suitable down-converter.
- RF/IF radio frequency/intermediate frequency
- An automatic gain control 208 is coupled to the down-converter 206 and to an amplifier 210 .
- the automatic gain control 208 controls the stages of amplification for the down-converter 206 .
- the amplifier 210 which is also coupled to the down-converter 206 , amplifies the signal from the down-converter 206 based on a control signal from the automatic gain control 208 .
- the amplifier 210 may be operable to limit bandwidth to approximately 1 MHz or to another suitable bandwidth less than 2 MHz. In this way, the signal-to-noise ratio may be improved as compared to a signal with a bandwidth of approximately 2 MHz. For example, for the embodiment in which the bandwidth is limited to approximately 1 MHz, a gain of about 3 dB made be obtained with a loss of about 50% of the noise and only about 10% of the signal.
- An analog-to-digital converter 212 is coupled to the amplifier 210 and to the automatic gain control 208 .
- the analog-to-digital converter 212 comprises a symmetrical multi-bit quantizer that is operable to digitize analog signals from the down-converter 206 .
- the analog-to-digital converter 212 is symmetrical in order to minimize the generation of unnecessary harmonic products that may cause alias products in the band of the desired signal.
- the analog-to-digital converter 212 may digitize the signals at a minimum of 2.048 Megasamples/second and at a quantizer resolution of a minimum of two bits.
- the analog-to-digital converter 212 may digitize the signals at a minimum of 4.096 or 8.192 Megasamples/second, in order to improve pseudorange timing resolution, and then further into four or more bits, in-phase and quadrature-phase (I/Q) samples, in order to improve both frequency and amplitude resolution and to minimize the generation of harmonic products due to the inherent non-linearity of the quantizing process.
- Symmetry may be ensured by biasing the quantizer levels such that zero crossing takes place in the center of the first quantizer level, allowing equal statistical representation of the signal in the positive and negative segments. This is especially useful for small numbers of bits of resolution.
- An output of the analog-to-digital converter 212 controls the automatic gain control 208 , which feeds back to the amplifier 210 and the down-converter 206 as described above. This may be used to ensure that, on average, the quantized signal reaches maximum quartile less than 30% of the time, which is consistent with the expected statistics of noise-like signals. However, it will be understood that this output of the analog-to-digital converter 212 may be used to ensure that the quantized signal reaches maximum quartile less than any suitable percentage of the time.
- the ranging receiver 14 also comprises a local oscillator and timing generator 214 that is coupled to the down-converter 206 and to the analog-to-digital converter 212 .
- the local oscillator and timing generator 214 may comprise a temperature-compensated crystal oscillator (TCXO), a digitally-compensated crystal oscillator (DCXO), or other suitable oscillator operable to drive a digital device.
- TCXO temperature-compensated crystal oscillator
- DCXO digitally-compensated crystal oscillator
- Various timing signals may be derived from the local oscillator and timing generator 214 , such as frequencies for the various stages of down-conversion for the down-converter 206 , the sampling clock for the analog-to-digital converter 212 , and other suitable timing signals.
- a signal sample memory 216 is coupled to the analog-to-digital converter 212 .
- the signal sample memory 216 is operable to temporarily store digital signal samples from the analog-to-digital converter 212 .
- the signal sample memory 216 may comprise a random access memory (RAM) or other suitable data store.
- the ranging receiver 14 also comprises a digital signal processor 218 that is coupled to the signal sample memory 216 .
- the digital signal processor 218 comprises a processor operable to process stored instructions.
- the digital signal processor 218 may comprise a Motorola DSP 56654 manufactured by MOTOROLA, INC. of Schaumburg, Ill., a Texas Instruments TMS 320VCSSIO manufactured by TEXAS INSTRUMENTS of Dallas, Tex., an ADSP 21161 SHARC DSP manufactured by ANALOG DEVICES of Norwood, Mass., or other suitable processor.
- a receiver memory 220 is coupled to the digital signal processor 218 .
- the receiver memory 220 is operable to store instructions and other data for the digital signal processor 218 .
- the receiver memory 220 may comprise a plurality of program and working memories, which may comprise any suitable combination of read-only memories (ROMs), RAMs, and other suitable data stores. It will be understood that the receiver memory 220 may also comprise the signal sample memory 216 .
- a modem function 222 is coupled to the digital signal processor 218 and is operable to provide an interface through which communication may be provided between the digital signal processor 218 and the wireless device 16 and ultimately with a geolocation processor 24 through the wireless carrier network 20 , the POTS network 22 , and a service center 18 .
- Signal lines 224 and 226 couple the wireless device 16 to the modem function 222 and to the digital signal processor 218 .
- the signal lines 224 and 226 are coupled to an external component 228 of the wireless device.
- the signal lines 224 and 226 may be otherwise coupled to the wireless device 16 based on which embodiment of the ranging receiver 14 is implemented, as described above in connection with FIG. 1.
- the signal lines 224 and 226 may comprise internal connections within the wireless device 16 which need not be coupled to an external component 228 .
- the ranging receiver 14 also comprises power management circuitry 230 that is coupled to the digital signal processor 218 .
- the power management circuitry 230 may comprise one or more batteries or other suitable power sources.
- the power management circuitry 230 is operable to provide power to the ranging receiver 14 and to control the availability of power on the basis of control signals on the signal lines 224 and 226 from the wireless device 16 and/or other suitable control signals.
- the ranging receiver 14 also comprises a real-time clock 232 that is operable to be calibrated to a remote clock across a wireless link or based on satellite message data.
- FIG. 3 is a block diagram illustrating the ranging receiver 14 in accordance with another embodiment of the present invention.
- an integrated device 250 comprises the function of a ranging receiver 14 integrated with a wireless device 16 that comprises a digital cellular telephone.
- the wireless device 16 may comprise any suitable device capable of wireless communication.
- the integrated device 250 comprises an antenna 252 that is capable of receiving positioning signals.
- the antenna 252 comprises a GPS antenna that is capable of receiving GPS signals from the satellites 12 .
- the antenna 252 may comprise a circularly polarized ceramic patch antenna or other suitable antenna.
- the integrated device 250 also comprises an antenna 254 that is operable to communicate with a base station 256 .
- the antenna 254 is capable of receiving and transmitting cellular communication signals.
- the antenna 252 is coupled to a positioning signal (“PS”) preselect filter 260 , and the antenna 254 is coupled to a cellular signal preselect filter 262 .
- the output from each of the filters 260 and 262 is coupled to a signal selection switch 264 .
- the signal selection switch 264 is operable to select either the positioning signals or the cellular communication signals for processing by the integrated device 250 .
- the output of the signal selection switch 264 which corresponds to the output of the filter 260 or 262 selected by the switch 264 , is coupled to additional cell phone circuitry 266 .
- the additional cell phone circuitry 266 is operable to process positioning signals as described above in connection with FIG. 2 and to process cellular communication signals in a manner similar to a standard wireless device 16 without an integrated ranging receiver 14 .
- FIG. 4 is a flow diagram illustrating a method for obtaining an initial calibration location estimate based on an initial trigger for the ranging receiver 14 in accordance with one embodiment of the present invention. The method begins at step 400 where the ranging receiver 14 detects an initial trigger.
- a trigger may comprise a request generated by the wireless device 16 automatically, a request generated by user of the wireless device 16 such as by pushing a button 30 on the ranging receiver 14 , a request from an external source such as the Internet, a geolocation processor 24 or other suitable external source, or any other suitable trigger.
- the initial trigger detected in step 400 may comprise, for example, a trigger that is automatically generated in response to turning on the wireless device 16 that is coupled to the ranging receiver 14 .
- the initial trigger may comprise a trigger that is automatically generated after a previous initial trigger was followed by an unsuccessful attempt to obtain a calibration location estimate.
- the superframe comprises 25 frames, each of which further comprises five subframes.
- the superframe comprises 37,500 bits, which are transmitted from the satellites 12 at 50 bits per second.
- Each of the 25 frames comprises a 1500-bit message that includes timing, identification, and ephemeris data, along with portions of the constellation's almanac data and various telemetry, checksum, and counterwords for each satellite 12 .
- the method follows the Expired branch from decisional step 402 to step 404 .
- the superframe may be considered expired if the superframe is greater than 96 hours old. However, it will be understood that the superframe may be considered expired based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention.
- the ranging receiver 14 downloads the superframe from the satellites 12 or from the geolocation processor 24 .
- the method follows the Not Current branch from decisional step 402 to step 406 .
- the superframe may be considered not current if the superframe is between 4 and 96 hours old. However, it will be understood that the superframe may be considered not current based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention.
- the ranging receiver 14 downloads an update to the superframe from the satellites 12 or from the geolocation processor 24 .
- Any data obtained from the geolocation processor 24 in steps 404 or 406 may be obtained over the voice channel using the modems 40 or via an alternate pathway using, for example, a control channel for the wireless carrier network 20 or other suitable data pathway.
- the method follows the Current branch from decisional step 402 to decisional step 408 . Also, after a superframe has been downloaded in step 404 or an update has been downloaded in step 406 , the method continues to decisional step 408 .
- the superframe may be considered current if the superframe is less than 4 hours old. However, it will be understood that the superframe may be considered current based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention.
- a fresh calibration location estimate comprises a location estimate that has been performed within the past ten minutes.
- a calibration location estimate may be considered fresh after any suitable period of time or based on other suitable criteria without departing from the scope of the present invention.
- the method follows the No branch from decisional step 408 to step 410 .
- the location circuitry of the ranging receiver 14 is turned on.
- the power management circuitry 230 may provide full power to each of the components 204 , 206 , 208 , 210 , 212 , 214 , 216 , 218 , 220 and 222 .
- the ranging receiver 14 begins collecting samples for CFO extraction and attempts to perform CFO extraction based on the collected samples.
- step 414 a determination is made regarding whether or not the CFO extraction was successful. If the CFO extraction was successful, the method follows the Yes branch from decisional step 414 to step 416 .
- step 416 the ranging receiver 14 enters a stand-alone mode for pseudorange estimation.
- step 418 the ranging receiver 14 estimates pseudorange. According to one embodiment, the ranging receiver 14 estimates pseudorange in accordance with the method of FIGS. 7 and 8.
- decisional step 420 a determination is made regarding whether or not the real-time clock 232 has the current time. If the real-time clock 232 does not have the current time, the method follows the No branch from decisional step 420 to step 422 .
- the real-time clock 232 for the ranging receiver 14 is calibrated, or synchronized, to a standardized time of day (TOD), such as GPS time, across the wireless link or to the TOD information received in the positioning signals.
- TOD time of day
- the real-time clock 232 keeps track of real time so that the timing of events in the ranging receiver 14 , such as message data bit transition times, can be accurately tracked. From step 422 , the method continues to step 424 .
- step 420 if the real-time clock 232 has the current time, the method follows the Yes branch from decisional step 420 to step 424 .
- step 424 the ranging receiver 14 performs a calibration location estimate.
- the ranging receiver 14 determines its receiver bias based on geometric and measured data.
- the geometric data may comprise satellite message data, approximate location data and/or other suitable data useful for estimating Doppler frequency shift.
- the approximate location data may comprise a previous location estimate, such as a calibration location estimate, or general location information provided by an external source, such as a cell site identification provided by a PSAP or an estimate provided by a user of the wireless device 16 .
- the ranging receiver 14 determines its receiver bias by first determining the actual Doppler frequency shift for the satellite signals being processed based on the geometric data from each satellite 12 .
- the ranging receiver 14 Based on the actual Doppler frequency shifts (estimated from the geometric data) and the measured CFOs, the ranging receiver 14 calculates the receiver frequency bias for the ranging receiver 14 , which is stored for future use. At step 428 , the ranging receiver 14 reverts to the low-power standby condition and waits for another trigger.
- the ranging receiver 14 sets a timer for a recalibration trigger.
- a recalibration trigger will be generated in step 434 to prompt the ranging receiver 14 to perform another location estimate.
- the method then returns to step 430 where the timer is reset for another recalibration trigger. In this way, the location estimate may be automatically updated periodically.
- the timer set in step 430 expires after approximately 10 minutes.
- the timer may expire after any suitable amount of time without departing from the scope of the present invention.
- the timer may expire after a varying amount of time based on comparing consecutive location estimates.
- the timer may expire after a reduced amount of time when consecutive location estimates indicate that the ranging receiver 14 is moving at greater than a certain velocity and may expire after an increased amount of time when consecutive location estimates indicate that the ranging receiver 14 is moving at less than a certain velocity.
- step 440 the ranging receiver 14 sets a timer for an initial trigger.
- a specified amount of time is approximately 10 minutes.
- the specified amount of time may be any suitable length of time without departing from the scope of the present invention.
- step 408 if a fresh calibration location estimate is determined to be available, the method follows the Yes branch from decisional step 408 to step 430 where the timer is set for a recalibration trigger as described above. In this way, the calibration location estimate may be updated automatically after the specified period of time.
- FIG. 5 is a flow diagram illustrating a method for obtaining a location estimate based on a non-initial trigger for the ranging receiver 14 in accordance with one embodiment of the present invention. The method begins at step 500 where the ranging receiver 14 detects a non-initial trigger.
- the non-initial trigger may comprise a recalibration trigger that is automatically generated by the ranging receiver 14 periodically based on a timer.
- the timer for the recalibration trigger may be automatically reset to trigger another location estimate after a specified amount of time has passed.
- the non-initial trigger may also comprise a trigger that is generated by a user of the wireless device 16 pushing a button 30 on the ranging receiver 14 , generated by a service requester 62 , or based on any other suitable request.
- the superframe may be considered expired if the superframe is greater than 96 hours old. However, it will be understood that the superframe may be considered expired based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention.
- the ranging receiver 14 downloads the superframe from the satellites 12 or from the geolocation processor 24 .
- the method follows the Not Current branch from decisional step 502 to step 506 .
- the superframe may be considered not current if the superframe is between 4 and 96 hours old. However, it will be understood that the superframe may be considered not current based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention.
- the ranging receiver 14 downloads an update to the superframe from the satellites 12 or from the geolocation processor 24 .
- Any data obtained from the geolocation processor 24 in steps 504 or 506 may be obtained over the voice channel using the modems 40 or via an alternate pathway using, for example, a control channel for the wireless carrier network 20 or other suitable data pathway.
- step 502 if the superframe in the ranging receiver 14 is current, the method follows the Current branch from decisional step 502 to step 508 . Also, after a superframe has been downloaded in step 504 or an update has been downloaded in step 506 , the method continues to step 508 .
- the superframe may be considered current if the superframe is less than 4 hours old. However, it will be understood that the superframe may be considered current based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention.
- the location circuitry of the ranging receiver 14 is turned on.
- the ranging receiver 14 begins collecting samples for CFO extraction and attempts to perform CFO extraction based on the collected samples.
- step 512 a determination is made regarding whether or not the CFO extraction was successful. If the CFO extraction was successful, the method follows the Yes branch from decisional step 512 to step 514 .
- step 514 the ranging receiver enters the stand-alone mode for pseudorange estimation.
- step 516 the ranging receiver 14 estimates pseudorange. According to one embodiment, the ranging receiver 14 estimates pseudorange in accordance with the method of FIGS. 7 and 8.
- step 518 a determination is made regarding whether or not the real-time clock 232 has the current time. If the real-time clock 232 does not have the current time, the method follows the No branch from decisional step 518 to step 520 .
- the real-time clock 232 for the ranging receiver 14 is calibrated, or synchronized, to a remote clock across the wireless link or based on TOD information in the positioning signals. Once calibrated, the real-time clock 232 keeps track of real time so that the timing of events in the ranging receiver 14 , such as message bit transition times, can be accurately tracked. From step 520 , the method continues to step 522 .
- step 518 if the real-time clock 232 has the current time, the method follows the Yes branch from decisional step 518 to step 522 .
- step 522 the ranging receiver 14 performs the location estimate.
- the ranging receiver 14 determines its receiver bias based on geometric data.
- the geometric data may comprise satellite message data, approximate location data and/or other suitable data useful for estimating CFO for compensation during pseudorange processing in the geometric mode.
- the approximate location data may comprise a previous location estimate, such as a calibration location estimate, or general location information provided by an external source, such as a cell site identification provided by a PSAP or an estimate provided by a user of the wireless device 16 .
- the ranging receiver 14 determines its receiver bias by first calculating the actual Doppler frequency shift for each of the satellite signals being received based on the geometric data for each satellite 12 and the most recent location estimate.
- the ranging receiver 14 calculates the difference between the actual measured CFOs and the calculated Doppler frequency shifts to determine the frequency bias for the ranging receiver 14 , which is stored for future use. From step 524 , the method continues to step 526 .
- the method follows the No branch from decisional step 512 to step 528 .
- the ranging receiver 14 enters the geometric mode.
- the ranging receiver 14 enters the stand-alone mode in order to determine a pseudorange.
- the ranging receiver 14 enters the geometric mode in order to determine a pseudorange.
- the ranging receiver 14 enters the geometric mode if attempted CFO extraction is unsuccessful within a predefined period of time.
- the pre-defined period of time may comprise approximately 1 to 30 seconds or any other suitable period of time.
- the ranging receiver 14 obtains geometric data for the location estimating process.
- to obtain data means to retrieve or receive data from a local memory store or from a remote device.
- the geometric data comprises satellite message data and approximate location data.
- the approximate location data may comprise a previous location estimate, such as a calibration location estimate, or general location information provided by an external source, such as a cell site identification provided by a PSAP or an estimate provided by a user of the wireless device 16 .
- the ranging receiver 14 estimates the CFO for each satellite 12 .
- these CFOs are estimated by summing the Doppler frequency shifts (which may be determined based on the geometric data) and the receiver frequency bias (which was previously determined during the calibration process).
- the ranging receiver 14 obtains message data fragments from the geolocation processor 24 or from the results of the method for predicting satellite message data described in FIG. 12 or other suitable prediction method.
- the ranging receiver 14 estimates pseudorange. According to one embodiment, the ranging receiver 14 estimates pseudorange in accordance with the method of FIGS. 13A, 13B and 13 C.
- the ranging receiver 14 performs the location estimate.
- step 526 the method continues to step 526 where the ranging receiver 14 stores the location estimate, receiver bias and current time.
- the ranging receiver 14 reverts to the low-power standby condition.
- decisional step 542 a determination is made regarding whether the trigger detected in step 500 was a recalibration trigger. If the trigger was not a recalibration trigger, the method follows the No branch from decisional step 542 to step 544 .
- the ranging receiver 14 sends the location estimate to the requester who generated the trigger, at which point the method comes to an end. However, if the trigger was determined to be a recalibration trigger in decisional step 542 , the method follows the Yes branch from decisional step 542 and comes to an end.
- FIGS. 6A and 6B are flow diagrams illustrating a method for direct CFO extraction in the system 10 in accordance with one embodiment of the present invention.
- the method begins at step 600 where the location circuitry of the ranging receiver 14 is turned on.
- a decimated output matrix, DM, of dimension (P,W) with element pointer p,w, is initialized and the decimated output pointer, p, is initialized to 1 .
- sample sizes S 1 and S 2 are initialized, a maximum number of samples, MAX, is initialized to S 1 , and a sample number, s, is set to 1. Also at step 604 , a rate correction indicator, RC, is set to 0.
- the sample size S 1 is set to correspond to a sampled duration of approximately one second and the sample size S 2 is set to correspond to a sampled duration between approximately 5 and 100 seconds.
- the sample sizes may be set to any suitable number without departing from the scope of the present invention.
- a number W of rate values, R w is initialized and w is set to a value of one.
- the number of values is selected to ensure that the error range between values is less than 0.1 Hz/second.
- the number of values may be selected as the maximum rate range divided by the error range.
- the maximum rate range may reach approximately 1.0 Hz/second and the number of values may be selected to be 1/(0.1- ⁇ 0.1), or 5. It will be understood, however, that any suitable criteria may be used in selecting the number of values.
- a decimation counter is initialized.
- the decimation counter is initialized to a decimation rate, DR, that corresponds to the rate at which the samples will be decimated.
- the signal may be sampled directly to result in down-conversion to baseband at these sampling rates or at higher rates to produce results that may be easily converted to I/Q samples.
- the decimation rate may be chosen to yield a signal with at least a 20 kHz bandwidth, thereby allowing for the maximum range of the CFOs and the doubling in frequency caused by the squaring step.
- the decimation rate (DR) may be chosen to be approximately 100.
- the ranging receiver 14 collects a new signal sample.
- the ranging receiver 14 increments the sample counter, s.
- the ranging receiver 14 squares the signal sample in order to recover the original carrier on which the biphase Gold code is modulated and to double its original frequency.
- the ranging receiver 14 adds the squared sample value to an accumulator. According to one embodiment, the squared sample is multiplied by a filtering coefficient identified by the decimation counter before being added to the accumulator.
- the ranging receiver 14 decrements the decimation counter.
- decimation counter is equal to zero. If the decimation counter is not equal to zero, the method follows the No branch from decisional step 618 and returns to step 610 for the collection of another signal sample. However, if the decimation counter is equal to zero, the method follows the Yes branch from decisional step 618 to decisional step 620 .
- rate correction is applied when RC equals 1 and is not applied when RC equals 0.
- rate correction may be applied based on any suitable vales for RC or based on other suitable criteria without departing from the scope of the present invention.
- w is set to a value of one.
- the ranging receiver 14 gets the w th Doppler correction.
- the ranging receiver 14 computes a pointer to a table of sine and cosine values. These tabular values are used to implement multiplication of the samples by the phase rotation vector e ⁇ j ⁇ t , i.e., cos( ⁇ t) ⁇ j ⁇ sin( ⁇ t), where j represents the square root of ⁇ 1 and ⁇ is the frequency term 2 ⁇ (D w+ R w t), where D w is the current, or w th , Doppler frequency shift and R w is the current, or w th , Doppler rate.
- D w Since D w is unknown, it is set to zero, and since the estimate producing the largest response will identify the appropriate rate R w , D w will come out of the spectral analysis of each of the W rate-compensated arrays as the CFO.
- the ranging receiver 14 complex multiplies the complex decimated sample (I/Q sampling) accumulated at step 614 by the w th complex Doppler correction.
- the ranging receiver 14 stores the results of the complex multiplication at a location identified by p,w in the decimated output matrix in the signal sample memory 216 .
- the ranging receiver 14 increments w.
- step 620 if RC does not equal 1 , the method follows the No branch from decisional step 620 to step 634 .
- step 634 the value in the accumulator described in step 614 is stored at a location identified by p,w in the signal sample memory 216 .
- step 632 the ranging receiver 14 increments p. From step 632 , the method continues to decisional step 635 .
- step 635 a determination is made regarding whether or not p is equal to the maximum number of decimated samples, MAX/DR. If p is not equal to MAX/DR, the method follows the No branch from decisional step 635 and returns to step 608 where the decimation counter is re-initialized for the process of collecting additional signal samples. However, if p is equal to MAX/DR, the method follows the Yes branch from decisional step 635 to step 636 .
- the ranging receiver 14 attempts to find significant carriers in the sample sets. According to one embodiment, the ranging receiver 14 attempts to find significant carriers in accordance with the method of FIG. 6B. While the ranging receiver is attempting to find significant carriers, the method continues to decisional step 640 .
- decisional step 640 a determination is made regarding whether or not s is greater than MAX. If s is not greater than MAX, the method follows the No branch from decisional step 640 and returns to step 608 where the decimation counter is re-initialized. However, if s is greater than MAX, the method follows the Yes branch from decisional step 640 to step 642 . At step 642 , RC is set to a value of one, and MAX is increased from S 1 to the greater value S 2 .
- FIG. 6B is a flow diagram illustrating a method for attempting to find significant carriers in the method of FIG. 6A in accordance with one embodiment of the present invention.
- the method begins at step 650 where the decimated sample sets stored in the signal sample memory 216 , each of which corresponds to a Doppler-rate compensation estimate, are Fourier-transformed into the frequency domain.
- the spectrum of each set is searched for significant carriers, i.e., carriers that are sufficiently above a noise-background threshold.
- a carrier is sufficiently above the noise-background threshold when the carrier is at least 6 dB above the noise-background threshold.
- a carrier may be sufficiently above the noise-background threshold when the carrier is any suitable level above the noise-background threshold.
- the six highest peaks are identified as possible carriers and the 20 next highest peaks are averaged to establish a noise-background threshold.
- the possible carriers may be confirmed as carriers that are sufficiently above the noise-background threshold when the carriers are at least four times, or the equivalent of 6 dB, higher than the threshold. It will be understood that the noise-background threshold may be otherwise suitably determined without departing from the scope of the present invention.
- the carriers may be considered to be sufficiently above the noise-background threshold when the carriers are at any suitable level above the threshold.
- the specified minimum number is four.
- the specified minimum number may be greater than four since the availability of more pseudorange estimates improves the quality or confidence level of a location estimate.
- any suitable number of significant carriers may be specified.
- the method follows the Yes branch from decisional step 654 to step 656 .
- the ranging receiver 14 stores the CFO results.
- the direct CFO extraction of the method of FIG. 6A is ended due to the successful attempt to find significant carriers. In this way, CFOs can be extracted from approximately one second of signal sample processing from signals obstructed up to approximately 10 dB of attenuation or can be extracted from approximately 10 seconds of signal sample processing from signals obstructed up to approximately 15 dB of attenuation.
- decisional step 654 if the specified number of significant carriers has not been found, the method follows the No branch from decisional step 654 and returns to the method of FIG. 6A for the continuation of direct CFO extraction.
- FIG. 7 is a flow diagram illustrating a method for determining a pseudorange in the ranging receiver 14 in the stand-alone mode in accordance with one embodiment of the present invention.
- the method begins at step 700 where the ranging receiver 14 begins to collect samples for pseudorange estimation from the signals received from the satellites 12 .
- the ranging receiver 14 selects one of the CFOs determined from the direct CFO extraction process of FIG. 6 for the satellites 12 .
- the ranging receiver 14 begins to process the pseudorange samples by compensating the samples for the selected CFO.
- “pseudorange samples” means signal samples from which pseudorange may be estimated.
- the ranging receiver 14 removes satellite message data modulation from the pseudorange samples by multiplying out the biphase message data modulation, as described in more detail below in connection with FIGS. 8A and 8B.
- the ranging receiver 14 linearly combines, or stacks, the samples into a single epoch duration result for each satellite 12 .
- the ranging receiver 14 compensates for time dilation.
- the ranging receiver 14 correlates the Gold codes for the satellites 12 to give the pseudoranges from those satellites 12 .
- the ranging receiver 14 correlates the Gold codes by Fourier transform means. For this embodiment, each CFO-compensated stack of samples which has been Fourier-transformed is multiplied by the Fourier transform of the time-reversed series of the Gold code for a satellite 12 (sampled at the same rate as the pseudorange samples and stored in memory 216 or 220 ). The product is then inverse-Fourier transformed to yield the pseudorange time sequence.
- a correlation peak is sufficiently above the noise-background threshold when the correlation peak is at least 6 dB above the noise-background threshold.
- a correlation peak may be sufficiently above the noise-background threshold when the correlation peak is any suitable level above the noise-background threshold. If such a peak does not exist for any of the pseudorange time sequences, the method follows the No branch from decisional step 714 to decisional step 716 .
- the maximum number of combined samples is based on a corresponding amount of sampling time for a location estimate that is approximately 1 to 30 seconds.
- the maximum number of combined samples may be any suitable number.
- step 716 If the maximum number of combined pseudorange samples has been exceeded, this indicates that the corresponding pseudorange signals being received at the ranging receiver 14 are too weak to be used. In this situation, the method follows the Yes branch from decisional step 716 to step 717 where a flag is set to indicate that the signal is too weak, at which point the method comes to an end. However, if the maximum number of combined pseudorange samples has not been exceeded, the method follows the No branch from decisional step 716 and returns to step 700 to process more samples to be combined with previously compensated and stacked samples for pseudorange estimation.
- a pseudorange is determined based on the correlation peak, after which the method comes to an end.
- a multi-path correcting centroid calculation is applied to determine a substantially exact location of the center of each of the peaks based on techniques that compensate for the distortion of each peak's shape by the presence of multi-path signals occurring near the correlation peak.
- a useable pseudorange may be determined based on approximately 0.1 seconds worth of received signal samples comprising a minimum carrier-to-noise density ratio of approximately 20 dB.
- FIGS. 8A and 8B are flow diagrams illustrating a method for aligning message data to determine a pseudorange in the ranging receiver 14 in a stand-alone mode in accordance with one embodiment of the present invention.
- the method of FIG. 8A begins with the availability of a specified number of identified significant carriers, each having a CFO. According to one embodiment, the carriers are identified through the direct CFO extraction process described above in connection with FIGS. 6A and 6B.
- a pointer-step increment is generated at step 800 .
- This pointer-step increment is used to increment a pointer that indexes a table of sine and cosine trigonometric values to be used for frequency compensation by complex-vector rotation.
- the magnitude of the increment is proportional to the frequency to be compensated.
- the table can be restricted to one quadrant of values.
- a number of epochs per sub-stack, P is initialized and its counter, p, is set to a value of one.
- P is initialized to a value of four or five.
- a number of sub-stacks per analysis, Q is initialized and its counter, q, is set to a value of one.
- Q is initialized to a value of 60/P, or twelve for the embodiment in which P is initialized to a value of five.
- a number of samples per epoch, K is initialized, and a samples per epoch counter, k, is set to a value of one.
- a number of carriers, M is initialized and a signal sample counter, i, is set to a value of one.
- M is initialized to a value of four, five, or six, based on the specified number of significant carriers available, as described above.
- a carrier counter, m is set to a value of one.
- the ranging receiver 14 gets a signal sample.
- the ranging receiver 14 gets the m th CFO compensation term for the i th sample.
- the ranging receiver 14 complex multiplies the sample by the CFO compensation term.
- the ranging receiver 14 accumulates the result of the complex multiplication at a location identified by k,q (i.e., position k in sub-stack q) in an m th array.
- the ranging receiver 14 increments m.
- step 822 a determination is made regarding whether or not m is greater than M. If m is not greater than M, the method follows the No branch from decisional step 822 and returns to step 814 . However, if m is greater than M, the method follows the Yes branch from decisional step 822 to step 824 . At step 824 , the ranging receiver 14 increments both k and i.
- step 826 a determination is made regarding whether or not k is greater than K. If k is not greater than K, the method follows the No branch from decisional step 826 and returns to step 810 where m is set to a value of one before another signal sample is collected. However, if k is greater than K, the method follows the Yes branch from decisional step 826 to step 828 . At step 828 , k is set to a value of one. At step 830 , the ranging receiver 14 increments p.
- step 832 a determination is made regarding whether or not p is greater than P. If p is not greater than P, the method follows the No branch from decisional step 832 and returns to step 810 where m is set to a value of one before another signal sample is collected. However, if p is greater than P, the method follows the Yes branch from decisional step 832 to step 834 . At step 834 , p is set to a value of one. At step 836 , the ranging receiver 14 increments q.
- step 838 a determination is made regarding whether or not q is greater than Q. If q is not greater than Q, the method follows the No branch from decisional step 838 and returns to step 810 where m is set to a value of one before another signal sample is collected. However, if q is greater than Q, the method follows the Yes branch from decisional step 838 and comes to an end. At this point, sub-stacks have been generated for use in determining message data alignment, as described in more detail below and in connection with FIGS. 9, 10 and 11 .
- the method of FIG. 8B begins at step 844 where the ranging receiver 14 sets k, p, q and a sub-stacks per bit counter, r, all to a value of one and initializes a number of sub-stacks per data bit, R.
- R is initialized to a value of 20/P.
- the ranging receiver 14 sets m to a value of one.
- the ranging receiver 14 adds the value at the location identified by k,q of the m th array to the value at the location identified by k,r of the m th array.
- the ranging receiver 14 adds the value at the location identified by k,q+R of the m th array to the value at the location identified by k,r+R of the m th array.
- the ranging receiver 14 increments m.
- step 854 a determination is made regarding whether or not m is greater than M. If m is not greater than M, the method follows the No branch from decisional step 854 and returns to step 848 to add the values at the incremented m th array. However, if m is greater than M, the method follows the Yes branch from decisional step 854 to step 856 . At step 856 , the ranging receiver 14 increments k.
- step 858 a determination is made regarding whether or not k is greater than K. If k is not greater than K, the method follows the No branch from decisional step 858 and returns to step 846 where m is set to a value of one. However, if k is greater than K, the method follows the Yes branch from decisional step 858 to step 860 . At step 860 , the ranging receiver 14 sets k to a value of one. At step 862 , the ranging receiver 14 increments p.
- step 864 a determination is made regarding whether or not p is greater than P. If p is not greater than P, the method follows the No branch from decisional step 864 and returns to step 846 where m is set to a value of one. However, if p is greater than P, the method follows the Yes branch from decisional step 864 to step 866 . At step 866 , the ranging receiver 14 sets p to a value of one. At step 868 , the ranging receiver 14 increments r.
- step 870 a determination is made regarding whether or not r is greater than R. If r is not greater than R, the method follows the No branch from decisional step 870 and returns to step 846 where m is set to a value of one. However, if r is greater than R, the method follows the Yes branch from decisional step 870 to step 872 .
- step 872 the ranging receiver 14 sets both r and k to a value of one.
- the ranging receiver 14 sets m to a value of one.
- the ranging receiver 14 adds the value at the location identified by k,r of the m th array to the value at the location identified by k,r of an m th sum stack and to the value at the location identified by k,r+R of an m th difference stack.
- the ranging receiver 14 adds the value at the location identified by k,r+R of the m th array to the value at the location identified by k,r of the m th sum stack.
- the ranging receiver 14 subtracts the value at the location identified by k,r+R of the m th array from the value at the location identified by k,r+R of the m th difference stack.
- the ranging receiver 14 increments m.
- step 884 a determination is made regarding whether or not m is greater than M. If m is not greater than M, the method follows the No branch from decisional step 884 and returns to step 874 where m is set to a value of one. However, if m is greater than M, the method follows the Yes branch from decisional step 884 to step 886 . At step 886 , the ranging receiver 14 increments k.
- step 888 a determination is made regarding whether or not k is greater than K. If k is not greater than K, the method follows the No branch from decisional step 888 and returns to step 874 where m is set to a value 1 . However, if k is greater than K, the method follows the Yes branch from decisional step 888 to step 890 . At step 890 , the ranging receiver 14 sets k to a value of one.
- the ranging receiver 14 correlates each sum stack (evaluating the same-signed data bits) and difference stack (evaluating the different-signed data bits) with the corresponding Gold codes to obtain pseudorange peaks and stores the peak values and their polarities in an output array at locations (m,r).
- the ranging receiver 14 increments r.
- step 896 a determination is made regarding whether or not r is greater than R. If r is not greater than R, the method follows the No branch from decisional step 896 and returns to step 874 where m is set to a value of one. However, if r is greater than R, the method follows the Yes branch from decisional step 896 to step 898 .
- step 898 the ranging receiver 14 evaluates the results of the pseudorange correlations stored in step 892 in order to determine the quality of the message data alignment obtained during the current iteration. Based on the maxima of the results, the ranging receiver 14 determines the alignment, and based on the sign of the maxima, the ranging receiver 14 determines the polarity of the corresponding message data bit. At this point, stacks have been generated and used to determine coarse message data alignment, as described in more detail below in connection with FIGS. 9A and 9B.
- FIGS. 9A and 9B are block diagrams illustrating a system 900 for generating accumulated sub-stacks and stacks of CFO-compensated samples and for finding which of the alignments of those stacks with the message data bits produces the largest pseudorange estimates in accordance with one embodiment of the present invention.
- the ranging receiver 14 may remove the satellite navigation message data modulation from the received signal by inverting the signal (multiplying the received signal by negative one ( ⁇ 1)) where the bits of the satellite navigation message data modulation result in the Gold code modulation being inverted.
- Multiple, synchronous repetitions of the signals i.e., code-epoch duration sets of signal samples
- processing gain may be increased as compared to a signal that is squared in order to remove the satellite message data.
- the system 900 comprises a data stream 902 that represents the signal being received at the ranging receiver 14 from the satellites 12 .
- each message data bit comprises 20 code epochs.
- a portion of a first message data bit 902 a is followed by a second message data bit 902 b , a third message data bit 902 c and a fourth message data bit 902 d .
- the data stream 902 comprises a plurality of epochs 912 that are received at the ranging receiver 14 from the satellites 12 .
- each epoch 912 may include 2,048 signal samples for the first sampling rate.
- the ranging receiver 14 combines a plurality of code-epoch duration sets of samples 912 into a plurality of sub-stacks 914 .
- each sub-stack 914 comprises five code-epoch duration sample sets 912 .
- the ranging receiver 14 then further combines the sub-stacks 914 into a plurality of stacks 916 .
- each stack 916 comprises four sub-stacks 914 .
- each sub-stack 914 could comprise four code epoch duration sample sets 912 and each stack 916 could comprise five sub-stacks 914 .
- code-epochs duration sample sets 912 may be included in each sub-stack 914 and other suitable numbers of sub-stacks 914 may be included in each stack 916 without departing from the scope of the present invention.
- the ranging receiver 14 then identifies pairs of stacks 916 such that each pair comprises adjacent code-epoch duration sample sets 912 of the data stream 902 .
- the pair 916 a comprises stack S 1 , which includes the first 20 code-epoch duration sample sets 912 of the data stream 902 , and stack S 7 , which includes the second 20 code-epoch duration sample sets 912 of the data stream 902 .
- the ranging receiver 14 forms both the sum and difference values in each of the stacks 916 .
- the message data alignment may then be determined based on the largest pseudorange peak values for each sum and difference pair.
- the polarities of the largest pseudorange peak values indicate the signs for the corresponding message data bit pairs. Knowledge of whether the sum or difference provided the larger pseudorange peak value may be used to determine the order of the data bit-pair (e.g., “01” or “10” for difference and “00” or “11” for sum).
- FIG. 9B is a block diagram illustrating a portion of the system 900 in greater detail in accordance with one embodiment of the present invention.
- the illustrated system 900 comprises a plurality of code-epoch duration sample sets 912 a to 912 e that comprise signal samples that are representative of the Gold code chips for the signal received from a satellite 12 at the ranging receiver 14 .
- the ranging receiver 14 begins at an arbitrary time to accumulate samples of the signal for a satellite 12 in accumulators 918 .
- “coarse” alignment means alignment to within 2.5 epochs 912 , which arises from the choice of 5 epochs 912 per sub-stack 914 .
- the number of accumulators 918 corresponds to the number of samples in an epoch 912 .
- the system 900 comprises 2,048 accumulators 918 .
- the signal is accumulated in an accumulator 918 .
- the sampling rate was a sample per chip and synchronous with its position in the Gold code epoch and if the ranging receiver 14 begins to accumulate samples of the Gold code with the 733 rd chip of the Gold code
- the sample representing the 733 rd chip of the Gold code would be accumulated in the Al accumulator 918
- the sample representative of the 734 th chip of the Gold code would be accumulated in the A 2 accumulator 918
- the sample representing the 732 nd chip of the Gold code accumulated in the A n accumulator 918 .
- the samples of the first code-epoch duration sample set 912 which comprises an entire cycle of the Gold code
- the samples of the next code-epoch duration sample set 912 is similarly accumulated such that each accumulator 918 accumulates the sample representing the same chip of the Gold code.
- the samples representing the first chip of each epoch 912 are accumulated with the same algebraic sign, and so on for all the samples in the epochs 912 representing the current message data bit.
- the sign of the next message bit changes, the sign of all the signal samples representing the new message data bit are inverted and, when accumulated, diminish the previously accumulated sums.
- each accumulator 918 accumulates samples for five code-epoch duration sample sets 912 .
- the accumulators 918 may accumulate samples for any suitable number of epochs 912 without departing from the scope of the present invention.
- the resulting values in the accumulators 918 are saved into a sub-stack 914 , such as the sub-stacks 914 labeled A through M in the illustrated embodiment.
- the accumulators 918 may then be cleared and begin accumulating samples for the duration of the next five epochs 912 to be combined into the next sub-stack 914 .
- each sub-stack 914 comprises a combination of five code-epoch duration sample sets 912 .
- the sub-stacks 914 may comprise any suitable number of code-epoch duration sample sets 912 based on the number of code-epoch durations accumulated in the accumulators 918 without departing from the scope of the present invention.
- each stack 916 comprises four sub-stacks 914 .
- each stack 916 comprises 20 code-epoch duration sample sets 912 . This corresponds to the length of a bit of satellite navigation message data, which is 20 epochs 912 .
- the stacks 916 may comprise any suitable number of sub-stacks 914 without departing from the scope of the present invention.
- the stacks 916 are grouped into pairs of stacks 916 representing adjacent data bits.
- the pair 916 a comprises stack Si (comprising sub-stacks A, B, C and D) and stack S 7 (comprising sub-stacks E, F, G and H).
- the pair 916 b comprises stack S 2 (comprising sub-stacks B, C, D and E) and stack S 8 (comprising sub-stacks F, G, H and I).
- the sub-stacks 914 may be combined into twelve stacks 916 , or six pairs of stacks 916 a , 916 b , 916 c , 916 d , 916 e and 916 f.
- the stacks 916 in each pair are summed and differenced and the sum and difference arrays are evaluated for pseudorange peaks.
- the values of Stack S 1 and Stack S 7 are added together and subtracted from each other, while the values of Stack S 2 and Stack S 8 are added together and subtracted from each other, and so on for each of the six pairs of stacks 916 a , 916 b , 916 c , 916 d , 916 e and 916 f.
- FIG. 10 is a block diagram illustrating a system 920 for refining satellite message data alignment in the system 10 in accordance with one embodiment of the present invention.
- the refining process begins with the two stacks 916 derived in the coarse alignment method described above in connection with FIG. 9.
- the two message data bits represented by the stacks producing the match are either of opposite logical value (e.g., . . . x,0,1,x . . . or . . . x,1,0,x . . . ) or are bounded by bits of opposite logical value (e.g., . . . 0,1,1,0 . . . or . . . 1,0,0,1 . . . ).
- These two stacks 916 are sub-divided into partial stacks 922 a and 922 b and refining stacks 924 V, W, X and Y.
- Two refining stacks 924 U and Z may be included to provide an enlarged refining shift range with higher resolution than was used in the coarse alignment method described above in connection with FIG. 9.
- This refining shift range may allow the stacks 916 to be shifted earlier by an interval represented by two epochs 912 and later by the same amount of time for a more refined alignment.
- the refining stacks 924 are formed from the signal samples 912 , which have been saved previously during the coarse alignment stacking process, as described further below.
- each partial stack 922 comprises sixteen code epochs' worth of CFO-compensated signal samples and each refining stack 924 comprises two code epochs' worth.
- a stack 916 comprises a partial stack 922 and two refining stacks 924 .
- a refined alignment stack 916 may comprise the partial stack 922 a with the refining stacks 924 of U and V, V and W, or W and X, i.e., allowing a total of three possible shifts spanning a total of four epochs 912 .
- the corresponding stack 916 for a pair of stacks 916 may comprise the partial stack 922 b with the refining stacks 924 of W and X, X and Y, or Y and Z.
- the ranging receiver 14 synchronously accumulates samples of the signal from satellites 12 in the accumulators 918 as described above in connection with FIG. 9B.
- pairs of code-epoch duration sample sets formed by the system 900 during the coarse alignment process are temporarily stored for later use in the refined alignment process.
- additional refining stacks 924 U, V, W, X, Y and Z are formed out of the corresponding sample-set pairs saved.
- the number of epoch summations to be performed to reach a particular alignment quality is reduced over the number required if the system 900 is used.
- summing each of the six refining stacks 924 results in six sums.
- the aligning stacks 916 may be shifted by adding or subtracting the appropriate refining stacks 924 to shift the alignment in the desired direction.
- the shifted S 1 stack 916 would include S 1 +U ⁇ W
- the shifted S 7 stack 916 would include S 7 +W ⁇ Y.
- the shifted stacks 916 are evaluated as described in relation to the system 900 above. If the desired shift is to the right (later), then the shifted S 1 stack 916 would include S 1 +X ⁇ V, and the shifted S 7 stack 916 would include S 7 +Z ⁇ X, and the outcome would again be evaluated as described in relation to the system 900 above.
- only two additional single-epoch duration adds and subtracts per stack pair, over the computations carried out in the coarse alignment process using the system 900 , allows the alignment to be refined to within about one epoch 912 .
- This process of alignment refinement by smaller shifts may be extended to achieve any suitable degree of alignment refinement, but alignment to within less than an epoch's duration yields very little additional processing gain.
- the alignment may be used to decode the continuing satellite message data, two message data bits at a time, by carrying out a simpler, 20 plus 20 code-epoch stacking routine for each of the subsequent bit pairs. The magnitude and polarity of the sum or difference determines the values of the respective message data bits.
- FIG. 11 is a flow diagram illustrating a method for aligning message data in the ranging receiver 14 in accordance with one embodiment of the present invention.
- the method begins at step 1100 where the ranging receiver 14 generates sub-stacks 914 based on epochs 912 accumulated in the accumulators 918 .
- the ranging receiver 14 combines the sub-stacks 914 into stacks 916 which are grouped together in pairs.
- the ranging receiver 14 calculates a sum and difference for each pair of stacks 916 .
- the ranging receiver 14 determines the maxima of the pseudorange peaks, the peaks being based on correlations of the stacks 916 with the satellite Gold codes. According to one embodiment, this is accomplished by searching for the six largest values in the correlates of the sum and difference stacks, along with the offsets at which the maxima occur. After the maxima are found, a satellite ID is determined from the Gold code yielding the peak and the pseudorange is determined by the centroid of the correlation peak. In this way, the satellite message data may be aligned to within 2.5 epochs 912 .
- decisional step 1108 a determination is made regarding whether or not the alignment is to be refined. If the alignment is not to be refined, the method follows the No branch from decisional step 1108 and comes to an end. However, if the alignment is to be refined, the method follows the Yes branch from decisional step 1108 to step 1109 .
- the ranging receiver 14 identifies partial stacks 922 and refining stacks 924 which may be combined into stacks 916 .
- the ranging receiver 14 determines sums for the refining stacks 924 .
- the ranging receiver 14 shifts the stacks 916 based on the refining stacks 924 , as described in more detail above in connection with FIG. 10.
- the ranging receiver 14 determines a refined alignment based on the shifted stacks 916 , at which point the method comes to an end. In this way, the satellite message data may be aligned to within 0.5 epochs 912 .
- FIG. 12 is a flow diagram illustrating a method for predicting satellite message data received in positioning signals at the ranging receiver 14 in accordance with one embodiment of the present invention. The method begins at decisional step 1200 where a determination is made regarding the status of a superframe in the ranging receiver 14 .
- the method follows the Expired branch from decisional step 1200 to step 1202 .
- the superframe may be considered expired if the superframe is greater than 96 hours old. However, it will be understood that the superframe may be considered expired based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention.
- the ranging receiver 14 downloads the superframe from the satellites 12 or from the geolocation processor 24 .
- the method follows the Not Current branch from decisional step 1200 to step 1204 .
- the superframe may be considered not current if the superframe is between 4 and 96 hours old. However, it will be understood that the superframe may be considered not current based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention.
- the ranging receiver 14 downloads an update to the superframe from the satellites 12 or from the geolocation processor 24 .
- Any data obtained from the geolocation processor 24 in steps 1202 or 1204 may be obtained over the voice channel using the modems 40 or via an alternate pathway using, for example, a control channel for the wireless carrier network 20 or other suitable data pathway.
- the method follows the Current branch from decisional step 1200 to decisional step 1206 . Also, after a superframe has been downloaded in step 1202 or an update has been downloaded in step 1204 , the method continues to decisional step 1206 .
- the superframe may be considered current if the superframe is less than 4 hours old. However, it will be understood that the superframe may be considered current based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention.
- step 1206 a determination is made regarding whether or not the real-time clock 232 has the current time. If the real-time clock 232 does not have the current time, the method follows the No branch from decisional step 1206 to step 1208 .
- step 1208 the real-time clock 232 for the ranging receiver 14 is calibrated, or synchronized, to GPS time based on a remote clock or TOD information in the positioning signals. Once calibrated, the real-time clock 232 keeps track of GPS time.
- the ranging receiver 14 sets up a common table that is operable to store data that is common to the superframe for each satellite in the constellation of satellites. According to one embodiment, approximately 60% of the superframe is common to each satellite in the constellation.
- the ranging receiver 14 sets up a unique table that is operable to store data that is unique to the superframe of the corresponding satellite.
- this unique data may comprise ephemeris data, telemetry data, tropospheric data, ionospheric propagation models, and other suitable data relating to the satellite.
- the message predictor has been set up for subsequent use by the ranging receiver 14 in predicting satellite message data for a specified satellite 12 from which positioning signals are received. From step 1212 , the method continues to step 1214 .
- decisional step 1206 if the real-time clock 232 has the current time, the method follows the Yes branch from decisional step 1206 to decisional step 1215 .
- decisional step 1215 a determination is made regarding whether the prediction tables, which include the common table and the unique tables, are current. Each of the prediction tables may comprise any suitable data store. If the prediction tables are not current, the method follows the No branch from decisional step 1215 and proceeds to step 1210 where the ranging receiver 14 sets up a common table.
- the method follows the Yes branch from decisional step 1215 to step 1214 .
- the ranging receiver 14 begins to predict a message fragment.
- the ranging receiver 14 identifies the satellite 12 , and the time interval, corresponding to the message fragment to be predicted.
- the ranging receiver 14 generates a message fragment table for predicting the message fragment.
- the ranging receiver 14 adds data from the common table to the message fragment table.
- the ranging receiver 14 adds data from the unique table for the satellite 12 identified in step 1216 to the message fragment table.
- the ranging receiver 14 adds time-dependent data, such as bit transition timing information, to the message fragment table based on the current GPS time obtained from the real-time clock 232 .
- the ranging receiver 14 provides the predicted message fragment, which comprises the data for predicting the satellite message data, to the requester.
- the ranging receiver 14 may predict the satellite message data in the positioning signals so that the message data may be removed after alignment, which may be performed as described above in connection with FIGS. 9, 10 and 11 .
- FIGS. 13A, 13B and 13 C are flow diagrams illustrating a method for determining a pseudorange estimate in the ranging receiver 14 in a geometric mode in accordance with one embodiment of the present invention.
- the method provides for determining a pseudorange based on the availability at the ranging receiver 14 of: (i) accurately known real time (with reference to the satellite constellation and within about a millisecond); (ii) an estimate of the current location of the ranging receiver 14 (within about a mile); (iii) an estimate of the frequency bias of the ranging receiver 14 ; (iv) recent (within about 24 hours) ephemeris data; and (v) recent (within about 96 hours) constellation superframe data.
- real time data may be received from a first set of satellites
- ephemeris data may be received from a second set of satellites
- superframe data may be received from a third set of satellites.
- the sets of satellites which may each comprise one or more satellites, may comprise none, some or all of the same satellites in the satellite constellation.
- the first set of satellites comprises one of the in-view satellites 12
- the second set of satellites comprises at least four of the in-view satellites 12
- the third set of satellites comprises one of the satellites in the constellation.
- the application server 64 and/or the workstation 46 may serve as a satellite information server from which ephemeris data and/or superframe data may be received.
- the method begins at step 1300 where the ranging receiver 14 determines a set of Doppler frequency shift, Doppler-rate and satellite ID data for a selected set of satellites from calculations based on the current geometric data referred to above.
- This set of data may be selected from among the satellites 12 potentially viewable from the location of the ranging receiver 14 at that time. This selection may be based on suitable criteria, such as low geometric dilution of precision, low elevation angle, or any suitable criteria.
- the ranging receiver 14 sets up a table of message data bits that will be transmitted during the time that pseudorange samples will be processed.
- the ranging receiver 14 computes the CFO and CFO-rate for each of the satellites 12 .
- the CFO is determined by adding the frequency bias of the ranging receiver 14 to the computed Doppler frequency shift.
- the ranging receiver 14 then assigns the Doppler rate to the CFO-rate for each of the satellites 12 .
- the ranging receiver 14 stores the CFOs and the corresponding CFO-rates in a table.
- the ranging receiver 14 initializes a maximum number of samples, I, and sets a sample counter, i, to one.
- the maximum number of samples may be chosen to limit the maximum integration time to suit the application, such as 10 to 30 seconds, but other values outside this range are also possible.
- a number of epochs, P, to be averaged is initialized.
- the number of epochs (which corresponds to the number of samples) to be averaged during one loop-through may be selected according to various criteria, such as the total processing gain to be provided per loop-through, the amount of memory available for table or intermediate result storage and any other suitable criteria.
- a number of carriers, M is initialized.
- a number of samples per epoch, K is initialized.
- the ranging receiver 14 sets the epoch sample number, k, to a value of one.
- the ranging receiver 14 sets the carrier counter, m, to a value of one.
- the ranging receiver 14 gets a signal sample for processing.
- the ranging receiver 14 gets the m th CFO compensation term for the i th sample.
- the ranging receiver 14 complex multiplies the sample by the CFO compensation term.
- the ranging receiver 14 scalar multiplies the CFO-compensated sample by its corresponding data bit polarity, which may be determined in accordance with the method of FIG. 13B.
- the ranging receiver 14 adds the result of the multiplication in step 1326 to a location identified by k in an m th array.
- the ranging receiver 14 increments m.
- decisional step 1332 a determination is made regarding whether or not m is greater than M. If m is not greater than M, the method follows the No branch from decisional step 1332 and returns to step 1322 . However, if m is greater than M, the method follows the Yes branch from decisional step 1332 to step 1334 .
- the ranging receiver 14 increments both k and i.
- step 1336 a determination is made regarding whether or not k is greater than K. If k is not greater than K, the method follows the No branch from decisional step 1336 and returns to step 1318 where m is set to a value of one. However, if k is greater than K, the method follows the Yes branch from decisional step 1336 to step 1338 . At step 1338 , the ranging receiver 14 sets k to a value of one. At step 1340 , the ranging receiver 14 increments p.
- step 1342 a determination is made regarding whether or not p is greater than P. If p is not greater than P, the method follows the No branch from decisional step 1342 and returns to step 1318 where m is set to a value of one. However, if p is greater than P, the method follows the Yes branch from decisional step 1342 to step 1344 . At step 1344 , the ranging receiver 14 sets m to a value of one.
- the ranging receiver 14 correlates an m th pseudorange stack with a Gold code for an m th satellite ID.
- the ranging receiver 14 compensates for time dilation by correlation peak shifting.
- time-dilation compensation may be accomplished by vector rotation in the frequency domain during the correlation by FFT means during step 1346 .
- time-dilation compensation may be accomplished by suitable sub-stack sample shifting prior to final accumulation and conversion to pseudorange by correlation.
- the time-dilation compensation may be performed in accordance with the time-shifting method of FIG. 13C.
- the pseudorange stack is added to an m th extended output stack and the m th pseudorange is evaluated for an adequate peak.
- the ranging receiver 14 increments m.
- decisional step 1354 a determination is made regarding whether or not m is greater than M. If m is not greater than M, the method follows the No branch from decisional step 1354 and returns to step 1346 where the m th pseudorange stack is correlated with the Gold code of the m th satellite ID for the incremented m. However, if m is greater than M, the method follows the Yes branch from decisional step 1354 to decisional step 1356 .
- step 1358 a determination is made regarding whether or not a maximum number of samples, I, has been exceeded. If the maximum number of samples has been exceeded, the method follows the Yes branch from decisional step 1358 to step 1360 .
- step 1360 a flag is set to indicate that the signal is too weak for the minimum number, M, of pseudoranges to be detected successfully, at which point the method comes to an end.
- step 1358 if the maximum number of samples has not been exceeded, the method follows the No branch from decisional step 1358 to step 1362 .
- step 1362 the ranging receiver 14 clears the input sample stacks.
- the method returns to step 1316 where k is set to a value of one.
- FIG. 13B is a flow diagram illustrating a method for removing message data modulation in the method of FIG. 13A in accordance with one embodiment of the present invention.
- the method begins at step 1364 where, based on geometric prediction, the ranging receiver 14 obtains satellite IDs, Doppler frequency shift, and Doppler rates.
- the ranging receiver 14 stores a message bit transition offset, T(m), for each of the M satellites 12 based on the results of the method for predicting satellite message data described in FIG. 12. These offsets also include the signal transit time to the ranging receiver 14 for each satellite 12 .
- the ranging receiver 14 stores a specified number of message data bits for each satellite 12 based on the results of the method for predicting satellite message data described in FIG. 12.
- the specified number of message data bits is equal to the result of dividing (a) the maximum number of samples by (b) 20 times the product of the sampling rate (samples per chip) and the chips per epoch.
- message data bits of logical (1) and (0) may be stored as values of +1 and ⁇ 1, respectively, or as values of ⁇ 1 and +1, respectively.
- the message data bits may be stored in any suitable manner without departing from the scope of the present invention.
- the ranging receiver 14 multiplies the CFO-compensated samples by the corresponding stored message data bits.
- the value of the pointer to the message data bit may be determined by the ranging receiver 14 based on the following formula:
- T(m) is the message bit transition offset for the message bits from the m th satellite 12
- i is the sample number
- K is the number of samples per epoch.
- FIG. 13C is a flow diagram illustrating a method for compensating for time dilation in the method of FIG. 13A in accordance with one embodiment of the present invention.
- a time offset, t from the beginning of the analysis to the beginning of the current sub-stack has a value of i-PK when the routine is entered from step 1348 of FIG. 13A.
- the m th Doppler at the beginning of this sub-stack, n(m) is equal to d(m)+t r(m), where d(m) is the m th Doppler at the beginning of the analysis and r(m) is the m th Doppler rate expressed in per-sample terms, rather than per-second terms.
- the average of the m th Doppler, ad(m), from the beginning of the current analysis to the beginning of the current sub-stack is equal to d(m)+(t r(m))/2.
- the average of the m th Doppler in the current sub-stack, adstack(m) is equal to n(m)+t r(m)/2.
- the time shift to the beginning of this sub-stack, Del(m) is equal to ad(m)Tt/f(c) in second terms and ad(m)t/fc in sample terms.
- the time shift within the current sub-stack, Dstack(m), is equal to adstack(m)TPK/f(c) in second terms and ad(m)PK/fc in sample terms.
- the total time shift, TS(m), is equal to Del(m)+Dstack(m).
- the method begins at step 1380 where the ranging receiver 14 sets the sample index, v, to a value of one.
- decisional step 1382 a determination is made regarding whether the time shift is positive or negative (which depends on, and is opposite to, the sign of the Doppler frequency shift). If the time shift is negative, the method follows the Negative branch from decisional step 1382 to step 1384 .
- the ranging receiver 14 adds (FP[TS])*SS(v) to OS(m), (v+IP[TS] ⁇ 1).
- the ranging receiver 14 adds (1 ⁇ FP[TS])*SS(v) to OS(m), (v+IP[TS]).
- the ranging receiver increments v.
- step 1390 a determination is made regarding whether or not v is greater than K. If v is not greater than K, the method follows the No branch from decisional step 1390 and returns to step 1384 . However, if v is greater than K, pseudorange peaks may be evaluated and the method follows the Yes branch from decisional step 1390 and returns to step 1350 in FIG. 13A.
- step 1392 the ranging receiver 14 adds (1 ⁇ FP[TS])*SS(v) to OS(m),(v+IP[TS]).
- step 1394 the ranging receiver 14 adds FP[TS]*SS(v) to OS(m),(v+IP[TS]+1).
- step 1396 the ranging receiver 14 increments v.
- step 1398 a determination is made regarding whether or not v is greater than K. If v is not greater than K, the method follows the No branch from decisional step 1398 and returns to step 1392 . However, if v is greater than K, pseudorange peaks may be evaluated and the method follows the Yes branch from decisional step 1398 and returns to step 1350 in FIG. 13A.
- FIG. 14 is a flow diagram illustrating a method for determining geolocation in the ranging receiver 14 with matching assistance in accordance with one embodiment of the present invention.
- the method begins at step 1400 where the ranging receiver 14 waits in a low-power standby mode for a trigger to start the pseudorange estimating process.
- the trigger may comprise a request generated by the wireless device 16 automatically, a request generated by a user of the wireless device 16 such as by pushing a button 30 on the ranging receiver 14 , a request from an external source such as the Internet, a geolocation processor 24 or other suitable external source, or any other suitable trigger.
- the location circuitry of the ranging receiver 14 is turned on at step 1402 .
- the power management circuitry 230 may provide full power to each of the components 204 , 206 , 208 , 210 , 212 , 214 , 216 , 218 , 220 and 222 after receiving the trigger.
- the real-time clock 232 for the ranging receiver 14 is calibrated, or synchronized, to a remote clock across the wireless link or based on TOD information in the positioning signals. Once calibrated, the real-time clock 232 keeps track of real time so that the timing of events in the ranging receiver 14 can be accurately tracked.
- the ranging receiver 14 clears any prior signal samples in the signal sample memory 216 .
- the ranging receiver 14 begins to collect samples for carrier detection by direct CFO extraction from the signals received from the satellites 12 .
- the CFOs are directly extracted from the samples, as described in more detail above in connection with FIGS. 6A and 6B.
- decisional step 1412 a determination is made regarding whether at least a specified number of significant carriers and their CFOs have been found.
- the specified number is four. However, it will be understood that the specified number may comprise any suitable number. If the specified number of significant carriers has not been found, the method follows the No branch from decisional step 1412 to decisional step 1414 .
- the maximum number of collected samples comprises the number of samples that may be collected in approximately one second.
- the maximum number of collected samples may be based on the sampling rate.
- the maximum number of collected samples may be any suitable number.
- the method follows the Yes branch from decisional step 1412 to step 1416 .
- the ranging receiver 14 sends CFO results to the geolocation processor 24 through the service center 18 .
- the CFO results comprise the CFO estimates, the real time for the CFO estimate measurements and/or other suitable data related to the CFO estimates.
- the ranging receiver 14 receives satellite information from the geolocation processor 24 .
- the satellite information may comprise satellite IDs, the most recent satellite message data fragments, and bit transition information for each of the satellites 12 identified by the geolocation processor 24 based on the CFO results and/or any other suitable information.
- the ranging receiver 14 associates the CFOs with their respective satellites 12 based on the satellite information received from the geolocation processor 24 .
- the ranging receiver 14 begins to collect samples for pseudorange estimation from the signals received from the satellites 12 .
- the ranging receiver 14 begins to process the pseudorange samples by compensating the samples for the CFOs.
- the ranging receiver 14 aligns satellite message data fragments with the pseudorange samples and removes the message data modulation from the samples by multiplying out the biphase message data modulation, as described in more detail above in connection with FIGS. 8, 9, 10 , 11 and 12 .
- the ranging receiver 14 linearly combines, or stacks, the samples into a single stack result of one-epoch duration for each satellite 12 .
- the ranging receiver 14 correlates the single epoch-duration stack with the Gold codes for the satellites 12 .
- the ranging receiver 14 correlates the single epoch-duration stack result with the Gold codes by Fourier transform.
- the Fourier transform of each CFO-compensated stack of samples is multiplied by the Fourier transform of the time-reversed series of the Gold code for a satellite 12 (sampled at the same rate as the pseudorange samples and stored in memory 216 or 220 ).
- the product is then either compensated for time-dilation by complex vector multiplication in the frequency domain before it is inverse-Fourier transformed to yield the time-dilation compensated pseudorange time sequence, or the product is inverse-Fourier transformed to yield the un-compensated pseudorange time sequence, which is compensated for time dilation by element-shifting, as described in FIG. 13C, at step 1432 .
- the ranging receiver 14 correlates the single epoch-duration stack result with the respective Gold code in hardware, such as a convolution processor using over 2,000 correlators per satellite signal.
- a correlation peak is sufficiently above the noise-background threshold when the correlation peak is at least 6 dB above the noise-background threshold.
- a correlation peak may be sufficiently above the noise-background threshold when the correlation peak is any suitable level above the noise-background threshold. If such a peak does not exist for any of the pseudorange time sequences, the method follows the No branch from decisional step 1434 to decisional step 1436 .
- the maximum number of signal samples that have been combined for pseudorange estimation comprises the number of samples that may be combined in approximately one second.
- the maximum number of signal samples that have been combined for pseudorange estimation may be based on the sampling rate.
- the maximum number of combined samples may be any suitable number.
- step 1437 the ranging receiver 14 sets a flag to indicate that the signal is too weak and returns to step 1400 where the ranging receiver 14 reverts to the low-power standby condition and waits for another trigger.
- the method follows the No branch from decisional step 1436 and returns to step 1422 to collect more signal samples for pseudorange estimation.
- step 1434 if a correlation peak that is sufficiently above the noise-background threshold does exist for each of the pseudorange time sequences, the method follows the Yes branch from decisional step 1434 to step 1438 .
- step 1438 a multi-path correcting centroid calculation is applied to determine a substantially exact location of the center of each of the peaks based on techniques that compensate for the distortion of each peak's shape by the presence of multi-path signals occurring near the correlation peak.
- the ranging receiver 14 sends pseudorange data for each of the carriers detected from the constellation of satellites 12 to the geolocation processor 24 for calculation of the geolocation of the ranging receiver 14 .
- the pseudorange data comprises the estimate of the pseudorange, the measurement time, the satellite ID for each satellite 12 and/or any other suitable data.
- the ranging receiver 14 or other requesting application receives the geolocation of the ranging receiver 14 from the geolocation processor 24 , after which the method returns to step 1400 where the ranging receiver 14 reverts to the low-power standby condition and waits for another trigger.
- FIG. 15 is a flow diagram illustrating a method for determining geolocation in the geolocation processor 24 by providing matching assistance in accordance with one embodiment of the present invention.
- the method begins at step 1500 where the geolocation processor 24 receives geolocation initiating information.
- the geolocation initiating information may comprise protocol identifying information and version information for the ranging receiver 14 provided by the ranging receiver 14 in response to a trigger.
- the geolocation initiating information may comprise any suitable information related to the initiation of the geolocation process.
- the geolocation initiating information is received from the ranging receiver 14 over the voice channel for the wireless device 16 by way of the service center 18 .
- the geolocation processor 24 sends an acknowledgement of the receipt of the geolocation initiating information.
- the geolocation processor 24 may transmit a handshake code to the ranging receiver 14 in order to establish communication and acknowledge compatibility.
- the geolocation processor 24 receives a time calibration signal from the ranging receiver 14 .
- the time calibration signal may comprise a complete sequence of, for example, a maximal length pseudorandom noise sequence or a Barker code modulated on an audio carrier tone. It will be understood, however, that the time calibration signal may comprise any other suitable timing signal.
- the geolocation processor 24 sends a time calibration response based on the time calibration signal.
- the geolocation processor 24 sends the time calibration response a predefined period of time after receiving the time calibration signal.
- the pre-defined period of time may comprise 10 milliseconds or other suitable period of time.
- the time calibration response may comprise a different maximal length pseudorandom noise sequence modulated on the same carrier tone as the time calibration signal, followed by a message indicating a real time associated with the response.
- the real time information may be used by the ranging receiver 14 in order to calibrate the real-time clock 232 .
- the geolocation processor 24 receives CFO estimates from the ranging receiver 14 .
- the geolocation processor 24 matches the differences in the CFO estimates from the ranging receiver 14 to differences in Doppler frequency shift measurements for signals received by the receivers 48 and/or 60 or based on geometric prediction from the satellite constellation's current geometric data.
- any duplicate matches found in step 1510 are eliminated in order to identify the satellites 12 .
- duplicate matches are eliminated by a least-squares regression method.
- the geolocation processor 24 sends satellite information to the ranging receiver 14 .
- the satellite information may comprise the satellite IDs, the satellite message data patterns, the timing information for bit transitions in the satellite message data patterns and/or any other suitable information.
- the geolocation processor 24 receives pseudorange data, which is generated based on the satellite information, from the ranging receiver 14 .
- the pseudorange data may comprise an estimate of the pseudorange, a measurement time, a satellite ID for each satellite 12 and/or any other suitable data.
- the geolocation processor 24 determines the geolocation of the ranging receiver 14 based on the pseudorange data, the current ephemeris data and/or any other suitable information.
- the geolocation processor 24 sends the geolocation of the ranging receiver 14 to the requesting application, at which point the method comes to an end.
- the geolocation may be sent in-band over the voice channel of the wireless device 16 , over the data network 66 , or by any other suitable means.
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
Abstract
A method for processing positioning signals in a ranging receiver in a geometric mode is provided. The method includes receiving timing information from a first set of satellites in a satellite constellation at the ranging receiver. The satellite constellation includes a plurality of satellites. A time of day is determined based on the received timing information. Approximate location data for the ranging receiver is determined. A frequency bias for the ranging receiver is determined. Ephemeris data is received from a second set of satellites in the satellite constellation. Superframe data for the satellite constellation is received from a third set of satellites in the satellite constellation at the ranging receiver. A pseudorange estimate is determined in the ranging receiver based on the time of day, the approximate location data, the frequency bias, the ephemeris data, and the superframe data.
Description
- This application is related to copending U.S. patent application Ser. No. ______, entitled “METHOD AND SYSTEM FOR PROCESSING POSITIONING SIGNALS WITH MATCHING ASSISTANCE” (Attorney's Docket 068796.0102); copending U.S. patent application Ser. No. ______, entitled “METHOD AND SYSTEM FOR PROCESSING POSITIONING SIGNALS IN A STAND-ALONE MODE” (Attorney's Docket 068796.0103); and copending U.S. patent application Ser. No. ______, entitled “METHOD AND SYSTEM FOR DETERMINING CARRIER FREQUENCY OFFSETS FOR POSITIONING SIGNALS” (Attorney's Docket 068796.0105).
- This invention relates generally to the field of geolocation and more particularly to a method and system for processing positioning signals in a geometric mode.
- In the application of global positioning system (GPS) technology to the geolocation of wireless devices, a typical geolocation function utilizes a course acquisition (C/A) code, or Gold code, which is received repeatedly from GPS satellites, in order to determine position. In addition to the repeated Gold code sequence, the Gold code comprises satellite message data that is modulated on top of the Gold code signal by inverting the phase according to the message data.
- The spectral density level of a signal from a GPS satellite received at a conventional GPS receiver with a direct line-of-sight to the satellite is significantly less than the thermal noise level of the conventional GPS receiver. When satellite signals are received at wireless devices being operated with obstructed views of the sky and thus obstructed line-of-sight, the satellite signals are weakened even further. Consequently, the obstructed signal levels from satellites are generally well below the threshold at which receivers may receive reliable message data signals from the satellites.
- Recent solutions to the problem of receiving weakened positioning signals provide for partitioning the geolocation processing functions such that some of these functions are performed at the unknown location which is to be determined and other functions are performed at a location with an unobstructed view of the signal source.
- For example, one of these methods, using a satellite signal source, provides for measuring all the satellite signal parameters, including the Doppler shift for each satellite signal, at unobstructed receivers located near the unknown location. The unobstructed receivers then send pertinent data to the unknown location to allow pseudorange estimation to be completed at the unknown location.
- Disadvantages associated with this example include a relatively expensive requirement of integration of the network of such receivers with the wireless carrier network that provides a link between the unknown location and the unobstructed receivers. In addition, this solution restricts the joint operation of the unknown location and the unobstructed receivers in performing the geolocation processing functions to only those carrier networks that are so integrated.
- The present invention provides an improved method and system for processing positioning signals in a geometric mode. This invention substantially eliminates or reduces disadvantages and problems associated with previous systems and methods. In a particular embodiment, the time to estimate a pseudorange from received positioning signals is minimized, while the processing gain is maximized to facilitate rapid detection of positioning signals while minimizing the consumption of energy.
- In accordance with one embodiment of the present invention, a method for processing positioning signals in a ranging receiver in a geometric mode is provided. The method includes receiving timing information from a first set of satellites in a satellite constellation at the ranging receiver. The satellite constellation includes a plurality of satellites. A time of day is determined based on the received timing information. Approximate location data for the ranging receiver is determined. A frequency bias for the ranging receiver is determined. Ephemeris data is received from a second set of satellites in the satellite constellation. Superframe data for the satellite constellation is received from a third set of satellites in the satellite constellation at the ranging receiver. A pseudorange estimate is determined in the ranging receiver based on the time of day, the approximate location data, the frequency bias, the ephemeris data, and the superframe data.
- Technical advantages of one or more embodiments of the present invention include providing an improved method for processing positioning signals in a geometric mode. In particular, the time required to obtain pseudorange estimates from weakened positioning signals is minimized and the processing gain available in any sample segment used to obtain pseudorange information is maximized. In addition, by using a direct extraction method to quickly determine a CFO, resolving the identity of satellites whose signals are being received, and compensating the received signal by the amount of the CFO, the pseudorange estimation may be accomplished without performing a time-consuming search through the Doppler frequencies and satellite codes.
- Other technical advantages of one or more embodiments of the present invention include a geolocation processor that may supply, to a receiver, current fragments of message data that were transmitted during the time the receiver was collecting signal samples. This is possible because the geolocation processor and the receiver are able to exchange time-of-day synchronizing information. As a result, the modulation for the message data may be removed from the samples being processed by the receiver. Accordingly, the available processing gain that can be achieved from a signal averaging process is maximized.
- Due to the improvement in processing gain, technical advantages of one or more embodiments of the present invention also include an ability either to obtain greater sensitivity in a given amount of signal processing time or to significantly reduce the amount of processing time to reach a particular level of sensitivity. In this regard, a dynamic process is used that acquires only the amount of signal necessary to achieve reliable detection. This minimizes both the processing time and the amount of intermediate-result memory storage required during signal processing.
- Yet another technical advantage of one or more embodiments of the present invention includes the removal of a requirement to integrate a geolocation processing system with the wireless carrier network that provides a communication link between the ranging receiver and an assisting function. Thus, the need for, and the costs associated with, a wireless carrier or plain old telephone system network are eliminated. For example, support from a carrier's network is not required to determine a coarse position estimation. In addition, a support network of nearby reference receivers, or its equivalent, is not required to provide Doppler-shift compensation or Doppler-shift search assistance. An end-to-end frequency-calibration embodiment in the wireless communication link between the receiver and the geolocation processor to allow making use of the Doppler-shift is also not required.
- In addition, technical advantages of one or more embodiments of the present invention include minimized memory use, power consumption and network loading, increased sensitivity, decreased amount of time for a location estimate, and greater privacy for customers.
- From the following figures, description, and claims, other technical advantages of the present invention will be readily apparent to one skilled in the art.
- For a more complete understanding of the present invention and its advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, wherein like reference numerals represent like parts, in which:
- FIG. 1 is a block diagram illustrating a geolocation system operable to process positioning signals in accordance with one embodiment of the present invention;
- FIG. 2 is a block diagram illustrating the ranging receiver of FIG. 1 in accordance with one embodiment of the present invention;
- FIG. 3 is a block diagram illustrating the ranging receiver of FIG. 1 in accordance with another embodiment of the present invention;
- FIG. 4 is a flow diagram illustrating a method for obtaining a calibration location estimate for the ranging receiver of FIGS. 1, 2 or3 in accordance with one embodiment of the present invention;
- FIG. 5 is a flow diagram illustrating a method for obtaining a location estimate based on a non-initial trigger for the ranging receiver of FIGS. 1, 2 or3 in accordance with one embodiment of the present invention;
- FIGS. 6A and 6B are flow diagrams illustrating a direct extraction method for determining carrier frequency offset in the methods of FIGS. 4 and 5 in accordance with one embodiment of the present invention;
- FIG. 7 is a flow diagram illustrating a method for determining pseudorange in the ranging receiver of FIGS. 1, 2 or3 in a stand-alone mode in accordance with one embodiment of the present invention;
- FIGS. 8A and 8B are flow diagrams illustrating a method for aligning message data to determine a pseudorange in the ranging receiver of FIGS. 1, 2 or3 in a stand-alone mode in accordance with one embodiment of the present invention;
- FIGS. 9A and 9B are block diagrams illustrating a system for generating sub-stacks and stacks to determine coarse satellite message data alignment in the system of FIG. 1 in accordance with one embodiment of the present invention;
- FIG. 10 is a block diagram illustrating a system for refining satellite message data alignment in the system of FIG. 1 in accordance with one embodiment of the present invention;
- FIG. 11 is a flow diagram illustrating a method for aligning message data in the ranging receiver of FIGS. 1, 2 or3 in accordance with one embodiment of the present invention;
- FIG. 12 is a flow diagram illustrating a method for predicting satellite message data received in positioning signals at the ranging receiver of FIGS. 1, 2 or3 in accordance with one embodiment of the present invention;
- FIGS. 13A, 13B and13C are flow diagrams illustrating a method for determining a pseudorange in the ranging receiver of FIGS. 1, 2 or 3 in a geometric mode in accordance with one embodiment of the present invention;
- FIG. 14 is a flow diagram illustrating a method for determining geolocation in the ranging receiver of FIGS. 1, 2 or3 with matching assistance in accordance with one embodiment of the present invention; and
- FIG. 15 is a flow diagram illustrating a method for determining geolocation in the geolocation processor of FIG. 1 by providing matching assistance in accordance with one embodiment of the present invention.
- FIG. 1 is a block diagram illustrating a
remote geolocation system 10 in accordance with one embodiment of the present invention. Thesystem 10 may comprise a global positioning system (GPS), a global navigation satellite system (GLONASS), or other suitable navigation system. - In the case of GPS, satellites in a navigation constellation all transmit on the same 1575.42 MHz frequency and use a code division multiple access (CDMA) technique to distinguish one satellite's signal from the others. In the case of the GPS constellation, a 1023-chip Gold code is biphase-modulated on the sinusoidal carrier. The Gold codes, unique to each satellite, are used for the CDMA and ranging functions. The chipping rate in this case is 1023 kHz, so that the transmission of the Gold Code repeats every millisecond. One cycle through the Gold Code is called a “code epoch.” A set of samples whose duration is equal to the duration of a code epoch is referred to herein as an epoch. Navigation message data is modulated onto this Gold code modulated carrier signal by either inverting or not inverting the phase of the Gold code in sympathy with the values of the navigation message data bits. Each transmitted navigation message data bit coincides with 20 Gold code epochs, or 20 milliseconds.
- The
system 10 comprises a plurality ofpositioning signal transmitters 12 and at least one rangingreceiver 14. Thepositioning signal transmitters 12 are operable to transmit positioning signals, and each rangingreceiver 14 is operable to receive the positioning signals and to perform geolocation processing functions in order to determine a pseudorange estimate for the rangingreceiver 14 based on the received signals. As used herein, “each” means every one of at least a subset of the identified items. In the illustrated embodiment, thepositioning signal transmitters 12 comprisesatellites 12. Thus, as used herein, “satellites” means conventional satellites, pseudolites, or other suitable positioning signal transmitters. - As described in more detail below, a location estimate, or geolocation, may be determined for the ranging
receiver 14 based in part on the pseudorange estimate. According to one embodiment, a location estimate provides a location for the rangingreceiver 14 that is accurate to within 10 to 50 meters or other suitable distance. - A location estimate may be determined when the ranging
receiver 14 is receiving weakened positioning signals, such as signals weakened by obstructions. Weakened positioning signals comprise signals that are received from thesatellites 12 at levels that result in insufficient information being received by the rangingreceiver 14, in the absence of other satellite signals or other sources of information, to determine a location estimate but sufficient information being received to estimate a pseudorange for the rangingreceiver 14. According to one embodiment, weakened positioning signals comprise signals compromised up to 16 dB below “clear view”, or unobstructed, signal levels. In an alternative embodiment, weakened positioning signals comprise signals compromised up to 30 dB below “clear view” signal levels. - The
system 10 also comprises awireless device 16 and aservice center 18 which may be coupled to each other through awireless carrier network 20 and the plain old telephone system (POTS)network 22. In addition, thesystem 10 comprises ageolocation processor 24, which may be coupled to theservice center 18 either directly or indirectly, such as through a network or other suitable form of indirect communication and may be coupled through theservice center 18 to thewireless device 16. Although the illustrated embodiment includes oneservice center 18 and onegeolocation processor 24, it will be understood that thesystem 10 may comprise any suitable number of thecomponents system 10 may be otherwise suitably distributed or combined. It will be further understood that asingle geolocation processor 24 may be coupled to a plurality of service centers 18 without departing from the scope of the present invention. - The
wireless device 16 may be coupled to the rangingreceiver 14, which may comprisepush buttons 30, or other suitable interfaces, for user operation such as to initiate a location estimating process for the rangingreceiver 14. Thewireless device 16 is operable to provide a communication link between the rangingreceiver 14 and aservice center 18 via thewireless carrier network 20 and thePOTS network 22 and to provide a communication link between the rangingreceiver 14 and ageolocation processor 24 via theservice center 18. - The
wireless device 16 may comprise a cellular telephone, a wireless Personal Digital Assistant, a two-way or response pager, a private or commercial vehicle tracking system, an “On-Star” type motorist service network, a private or commercial wireless data network (or a device in such a network), or any other suitable device or network capable of providing a data-link between the rangingreceiver 14 and thegeolocation processor 24. - The
wireless device 16 may be coupled to the rangingreceiver 14 in any suitable fashion. For example, thewireless device 16 and the rangingreceiver 14 may be coupled together by acable 32. Alternatively, the rangingreceiver 14 may be located near thewireless device 16 and linked to thewireless device 16 by a low-powered short-range wireless link, such as those provided by the Blue-Tooth protocols. The rangingreceiver 14 may also be coupled to the body of thewireless device 16 as a “stick-on” attachment, or the rangingreceiver 14 may be built into a receptacle such that thewireless device 16 is in electrical contact with the rangingreceiver 14 when thewireless device 16 is inserted into the receptacle. - In another alternative, the ranging
receiver 14 may be integrated with thewireless device 16. For this embodiment, thewireless device 16 is operable to process communication at a minimum of two frequencies, one frequency for receiving signals to be processed by thewireless device 16 independently of the functionality of the rangingreceiver 14, such as cellular signals for awireless device 16 comprising a cellular telephone, and a second frequency for receiving positioning signals. Thewireless device 16 is also operable to digitize samples at a rate corresponding to the rate at which the rangingreceiver 14 may process samples in accordance with the present invention. For example, thewireless device 16 may be operable to digitize samples at a rate of at least 2.048 Megasamples/second at a quantizer resolution of a minimum of two bits. It will be understood that other suitable rates may be used, as described in more detail below in connection with FIG. 2. In addition, thewireless device 16 may include additional memory, as compared to awireless device 16 not coupled to a rangingreceiver 14, in order to store samples for processing during pseudorange estimation. - The
service center 18 may comprise a Public Safety Access Point (PSAP), a Vehicle Dispatch Application, or other suitable entity capable of facilitating geolocation processing for the rangingreceiver 14 by coupling the rangingreceiver 14 to thegeolocation processor 24. Theservice center 18 is also operable to manage the detection, routing and switching of voice traffic that may be associated with the geolocation determination process. - The
service center 18 includes arack 45 ofmodems 40, aswitch 42, and at least onetelephone handset 44. Eachmodem 40 may include a Location Services Protocol modem or other suitable modem and is operable to provide a communication link between theservice center 18 and the rangingreceiver 14 associated with thewireless device 16 through thePOTS network 22 and thewireless carrier network 20. Themodem 40, or other communication link such as an Ethernet, may also provide a link between theservice center 18 and thegeolocation processor 24. Eachmodem 40 is also operable to route voice communication to theswitch 42 and data communication to thegeolocation processor 24. Theswitch 42 is operable to route voice communication from amodem 40 to atelephone handset 44 and from atelephone handset 44 to amodem 40. Thetelephone handset 44 allows an operator at theservice center 18 to interact with a user of thewireless device 16 through voice communication provided through amodem 40. - The
geolocation processor 24 is operable to identify thesatellites 12 by matching the differences between pairs of carrier frequency offsets measured at the rangingreceiver 14 with the differences between pairs of Doppler frequency shift estimates made of satellites in view at particular locations on the Earth's surface, to accurately calibrate a real-time clock in the rangingreceiver 14, to track satellite message data from thesatellites 12 and bit transition times in the satellite message data, to provide fragments of the satellite message data from the identifiedsatellites 12 to the rangingreceiver 14, to convert a pseudorange estimate from the rangingreceiver 14 into a geolocation of the rangingreceiver 14, and to provide the geolocation to a requester such as the rangingreceiver 14 or PSAP operator. - The
geolocation processor 24 comprises aworkstation 46 and areceiver 48. Theworkstation 46 is operable to perform geolocation processing functions. Theworkstation 46 is also operable to obtain current ephemeris, time, and other suitable satellite message data from thereceiver 48. Ephemeris data may comprise trajectory data received from one ormore satellites 12 that allow positions of satellites in the satellite constellation to be predicted. Thereceiver 48 may comprise a GPS receiver or other suitable receiver operable to receive positioning signals from thesatellites 12. - The
wireless carrier network 20 may be operable to coordinate location management, authentication, service management, subscriber management, and any other suitable functions for a plurality ofwireless devices 16. Thewireless network 20 may comprise a public land mobile network or other suitable network operable to provide communication between thewireless devices 16 and thePOTS network 22. - The
POTS network 22 may be coupled to thewireless carrier network 20 and to theservice center 18 throughcommunication links 50. The communication links 50 may be any type of communication link capable of supporting data transfer. In one embodiment, each of the communication links 50 may comprise, alone or in combination, Integrated Services Digital Network, Asymmetric Digital Subscriber Line, T1 or T3 communication lines, hard-wire lines, telephone lines or wireless communication. It will be understood that the communication links 50 may comprise other suitable types of data communication links. The communication links 50 may also connect to a plurality of intermediate servers between thePOTS network 22 and both thewireless carrier network 20 and theservice center 18. - The
system 10 may also comprise one or moreremote receivers 60,service requesters 62 and/orapplication servers 64 which may be coupled to thegeolocation processor 24 through adata network 66. Theremote receiver 60 may comprise a GPS receiver or other suitable receiver operable to receive positioning signals from thesatellites 12. Data derived from these positioning signals may then be provided to thegeolocation processor 24 through thedata network 66. Thus, thegeolocation processor 24 may receive positioning signals from eitherreceiver 48 orreceiver 60. According to one embodiment, thesystem 10 comprises three or fourremote receivers 60 spaced around the Earth such that, at any given time, the threeremote receivers 60 may receive current ephemeris data from each satellite in the constellation. - The service requester62 may comprise a location information requester that is operable to generate a request for a location estimate for a particular ranging
receiver 14 and to provide the request to theapplication server 64 through thedata network 66. Theapplication server 64 may comprise a server for location-based applications or other suitable server that is operable to receive the request generated by theservice requester 62 and to process the request. - In processing the request, the
application server 64 is operable to provide the request to thegeolocation processor 24 through thedata network 66, prompting thegeolocation processor 24 to initiate a location estimating process for the rangingreceiver 14 identified by the service requester 62 in the request. In addition, theapplication server 64 is operable to receive a resulting location estimate from thegeolocation processor 24 through thedata network 66 and to provide the location estimate to the service requester 62 through thedata network 66. - The
data network 66 may comprise a public switched telephone network, an integrated services digital network, a local area network, a wide area network, a global computer network, such as the Internet or other dedicated switched network, or other communication system or combination of communication systems at one or more locations. According to one embodiment, any of thenetworks other networks - Because the Doppler frequency shifts are continuously changing due to the movement of the Earth and of the
satellites 12, theworkstation 46 may be operable to regularly re-compute the pattern of Doppler frequency shifts ofsatellites 12 based on the changing satellite positions for use in satellite identification by Doppler frequency shift differences, as described in more detail below. Theworkstation 46 is also operable to track the satellite message data modulated on top of the Gold code ranging signal transmitted by each of thesatellites 12 and to track the transition times of the satellite message data bit boundaries. - The
satellites 12 comprise satellites of a navigational satellite constellation that are in view of the rangingreceiver 14 and/orother receivers view satellites 12 of the satellite constellation continually change due to orbital movement of the satellites and rotational movement of the Earth. According to one embodiment, thesystem 10 comprises at least foursatellites 12 at any particular time. - The ranging
receiver 14, theservice center 18, and thegeolocation processor 24 may comprise logic encoded in media. The logic comprises functional instructions for carrying out program tasks. The media comprises computer disks or other computer-readable media, application-specific integrated circuits, field-programmable gate arrays, digital signal processors, other suitable specific or general-purpose processors, transmission media or other suitable media in which logic may be encoded and utilized. - In operation for a particular embodiment, the
service center 18 provides data communication between the rangingreceiver 14 and thegeolocation processor 24 to allow the rangingreceiver 14 to generate a pseudorange estimate and thegeolocation processor 24 to generate a geolocation. In addition, theservice center 18 provides voice communication between a user of thewireless device 16 and an operator at theservice center 18. Theservice center 18 may manage emergency services, vehicle-dispatching services, or other suitable services which utilize geolocation processing to locatewireless devices 16. An operator at theservice center 18 monitors and manages emergency calls, communications with vehicles viawireless devices 16, or other suitable communications. - The
receiver 48 receives positioning signals from thesatellites 12 and processes these signals. Theworkstation 46 determines the location of awireless device 16 based on the signals received at thereceiver 48 and based on information exchanged with the rangingreceiver 14 via thewireless device 16 and theservice center 18. - The
telephone handset 44 allows an operator atservice center 18 to call thewireless device 16 or to respond to an incoming call from thewireless device 16. Calls to thewireless device 16 may also be initiated by theworkstation 46 via amodem 40. Eachmodem 40 provides data exchange capability with the rangingreceiver 14 via thewireless device 16 over the same voice channel used by a caller to speak to the operator at theservice center 18. According to one embodiment, eachmodem 40 also provides time-exchange facility with the rangingreceiver 14 over the voice channel. - The process may begin by an exchange of time signals between the ranging
receiver 14 and thegeolocation processor 24 to establish a real time at the rangingreceiver 14. This time is used to coordinate the use of further time-critical information to be exchanged between the rangingreceiver 14 and thegeolocation processor 24. While this time exchange is taking place between the rangingreceiver 14 and thegeolocation processor 24, the rangingreceiver 14 may begin collecting and decimating satellite signal samples received from thesatellites 12 for a carrier frequency estimating process. It will be understood that, in accordance with one embodiment of the present invention, the rangingreceiver 14 may be operable to determine real time for geolocation processing from the positioning signals without exchanging time signals with thegeolocation processor 24. - A direct method for quickly estimating the received carrier frequency for each of the
satellites 12, including those of which the rangingreceiver 14 has an obstructed view, may be used. According to one embodiment, this method uses signal squaring to remove the biphase modulation and uses narrow-band filtering to reduce the noise. In one embodiment, at least two bits per signal sample and a final stage of down-conversion to near baseband by a heterodyne step are used. - The received carrier frequency estimates include the down-conversion frequency uncertainty due to local oscillator manufacturing tolerances, thermal drift and/or other conditions, thereby providing a substantially exact frequency that may be applied to compensate for the Doppler frequency shift and these other errors, even over the long periods of signal averaging needed to reach the required sensitivity for successful signal detection.
- In one embodiment of the invention, this direct determination of the received carrier frequencies to high resolution (within about one Hz for a one second sampling of the signals received from the satellites12) allows the identity of
satellites 12 contributing the specific pattern of Doppler-frequency differences, which are equal to the carrier frequency offset (CFO) differences, to be determined by a pattern match between the Doppler differences computed for the current positions of the satellites in the constellation and target matching patches on the surface of the Earth. This may be accomplished by sending the CFO results to thegeolocation processor 24 as soon as they are determined by the rangingreceiver 14, along with the time corresponding to the beginning of the collection of the signal samples from which the CFOs were determined. The rangingreceiver 14 then continues collecting and storing samples of the signal that are suitable for estimating pseudorange. - While the signal samples for pseudorange estimation are being collected, the
geolocation processor 24 identifies thesatellites 12 that are in view at the unknown location and, for each of thesesatellites 12, extracts that portion of the satellite message data that is being transmitted during sample collection. Thegeolocation processor 24 may also identify the actual Doppler frequency shift frequency to be used in the time-dilation correction, as described in FIG. 13C. Time-dilation is proportional to the total accumulated Doppler frequency shift. Thegeolocation processor 24 then transmits to the ranging receiver 14 a satellite ID for each identifiedsatellite 12 to enable rapid computation of pseudorange without searching through Doppler frequencies and satellite codes and transmits the satellite message data fragment to enable removal of the data modulation from the signals so that linear summation may be performed for increased processing gain. - Also while the ranging
receiver 14 is collecting signal samples for pseudorange estimation, the rangingreceiver 14 begins processing the signals for the pseudorange content. - FIG. 2 is a block diagram illustrating the ranging
receiver 14 in accordance with one embodiment of the present invention. The rangingreceiver 14 is a mobile device that may be easily transported from one location to another. In the illustrated embodiment, the rangingreceiver 14 is coupled to awireless device 16 that comprises a digital cellular telephone. However, as described in more detail above in connection with FIG. 1, thewireless device 16 may comprise any suitable device capable of wireless communication. - The ranging
receiver 14 comprises anantenna 202 that is capable of receiving positioning signals. According to one embodiment, theantenna 202 comprises a GPS antenna that is capable of receiving GPS signals. For this embodiment, theantenna 202 may comprise a circularly polarized ceramic patch antenna or other suitable antenna. Theantenna 202 is coupled to a filter and low-noise amplifier 204. - In one embodiment, the filter and low-
noise amplifier 204 is operable to limit bandwidth to approximately 2 MHz (centered at 1575.42 MHz). The filter and low-noise amplifier 204 is coupled to a down-converter 206. The down-converter 206 is operable to down-convert the signal to baseband. According to one embodiment, the down-converter is operable to down-convert the signal using multiple stages of amplification, filtering and super-heterodyning. The down-converter 206 may comprise a radio frequency/intermediate frequency (RF/IF) down-converter or other suitable down-converter. - An
automatic gain control 208 is coupled to the down-converter 206 and to anamplifier 210. Theautomatic gain control 208 controls the stages of amplification for the down-converter 206. Theamplifier 210, which is also coupled to the down-converter 206, amplifies the signal from the down-converter 206 based on a control signal from theautomatic gain control 208. - The
amplifier 210 may be operable to limit bandwidth to approximately 1 MHz or to another suitable bandwidth less than 2 MHz. In this way, the signal-to-noise ratio may be improved as compared to a signal with a bandwidth of approximately 2 MHz. For example, for the embodiment in which the bandwidth is limited to approximately 1 MHz, a gain of about 3 dB made be obtained with a loss of about 50% of the noise and only about 10% of the signal. - An analog-to-
digital converter 212 is coupled to theamplifier 210 and to theautomatic gain control 208. The analog-to-digital converter 212 comprises a symmetrical multi-bit quantizer that is operable to digitize analog signals from the down-converter 206. The analog-to-digital converter 212 is symmetrical in order to minimize the generation of unnecessary harmonic products that may cause alias products in the band of the desired signal. - For example, the analog-to-
digital converter 212 may digitize the signals at a minimum of 2.048 Megasamples/second and at a quantizer resolution of a minimum of two bits. Alternatively, the analog-to-digital converter 212 may digitize the signals at a minimum of 4.096 or 8.192 Megasamples/second, in order to improve pseudorange timing resolution, and then further into four or more bits, in-phase and quadrature-phase (I/Q) samples, in order to improve both frequency and amplitude resolution and to minimize the generation of harmonic products due to the inherent non-linearity of the quantizing process. - Symmetry may be ensured by biasing the quantizer levels such that zero crossing takes place in the center of the first quantizer level, allowing equal statistical representation of the signal in the positive and negative segments. This is especially useful for small numbers of bits of resolution.
- An output of the analog-to-
digital converter 212 controls theautomatic gain control 208, which feeds back to theamplifier 210 and the down-converter 206 as described above. This may be used to ensure that, on average, the quantized signal reaches maximum quartile less than 30% of the time, which is consistent with the expected statistics of noise-like signals. However, it will be understood that this output of the analog-to-digital converter 212 may be used to ensure that the quantized signal reaches maximum quartile less than any suitable percentage of the time. - The ranging
receiver 14 also comprises a local oscillator andtiming generator 214 that is coupled to the down-converter 206 and to the analog-to-digital converter 212. The local oscillator andtiming generator 214 may comprise a temperature-compensated crystal oscillator (TCXO), a digitally-compensated crystal oscillator (DCXO), or other suitable oscillator operable to drive a digital device. Various timing signals may be derived from the local oscillator andtiming generator 214, such as frequencies for the various stages of down-conversion for the down-converter 206, the sampling clock for the analog-to-digital converter 212, and other suitable timing signals. - A
signal sample memory 216 is coupled to the analog-to-digital converter 212. Thesignal sample memory 216 is operable to temporarily store digital signal samples from the analog-to-digital converter 212. For example, thesignal sample memory 216 may comprise a random access memory (RAM) or other suitable data store. - The ranging
receiver 14 also comprises adigital signal processor 218 that is coupled to thesignal sample memory 216. Thedigital signal processor 218 comprises a processor operable to process stored instructions. For example, thedigital signal processor 218 may comprise a Motorola DSP 56654 manufactured by MOTOROLA, INC. of Schaumburg, Ill., a Texas Instruments TMS 320VCSSIO manufactured by TEXAS INSTRUMENTS of Dallas, Tex., an ADSP 21161 SHARC DSP manufactured by ANALOG DEVICES of Norwood, Mass., or other suitable processor. - A
receiver memory 220 is coupled to thedigital signal processor 218. Thereceiver memory 220 is operable to store instructions and other data for thedigital signal processor 218. Thereceiver memory 220 may comprise a plurality of program and working memories, which may comprise any suitable combination of read-only memories (ROMs), RAMs, and other suitable data stores. It will be understood that thereceiver memory 220 may also comprise thesignal sample memory 216. - A
modem function 222 is coupled to thedigital signal processor 218 and is operable to provide an interface through which communication may be provided between thedigital signal processor 218 and thewireless device 16 and ultimately with ageolocation processor 24 through thewireless carrier network 20, thePOTS network 22, and aservice center 18. -
Signal lines wireless device 16 to themodem function 222 and to thedigital signal processor 218. According to the illustrated embodiment, thesignal lines external component 228 of the wireless device. It will be understood, however, that thesignal lines wireless device 16 based on which embodiment of the rangingreceiver 14 is implemented, as described above in connection with FIG. 1. For example, for the embodiment in which the rangingreceiver 14 is an integral component of thewireless device 16, thesignal lines wireless device 16 which need not be coupled to anexternal component 228. - The ranging
receiver 14 also comprisespower management circuitry 230 that is coupled to thedigital signal processor 218. Thepower management circuitry 230 may comprise one or more batteries or other suitable power sources. Thepower management circuitry 230 is operable to provide power to the rangingreceiver 14 and to control the availability of power on the basis of control signals on thesignal lines wireless device 16 and/or other suitable control signals. The rangingreceiver 14 also comprises a real-time clock 232 that is operable to be calibrated to a remote clock across a wireless link or based on satellite message data. - FIG. 3 is a block diagram illustrating the ranging
receiver 14 in accordance with another embodiment of the present invention. In the illustrated embodiment, anintegrated device 250 comprises the function of a rangingreceiver 14 integrated with awireless device 16 that comprises a digital cellular telephone. However, as described in more detail above in connection with FIG. 1, thewireless device 16 may comprise any suitable device capable of wireless communication. - The
integrated device 250 comprises anantenna 252 that is capable of receiving positioning signals. According to one embodiment, theantenna 252 comprises a GPS antenna that is capable of receiving GPS signals from thesatellites 12. For this embodiment, theantenna 252 may comprise a circularly polarized ceramic patch antenna or other suitable antenna. Theintegrated device 250 also comprises anantenna 254 that is operable to communicate with abase station 256. Thus, for the digital cellular telephone embodiment, theantenna 254 is capable of receiving and transmitting cellular communication signals. - The
antenna 252 is coupled to a positioning signal (“PS”) preselect filter 260, and theantenna 254 is coupled to a cellular signal preselectfilter 262. The output from each of thefilters 260 and 262 is coupled to asignal selection switch 264. - The
signal selection switch 264 is operable to select either the positioning signals or the cellular communication signals for processing by theintegrated device 250. The output of thesignal selection switch 264, which corresponds to the output of thefilter 260 or 262 selected by theswitch 264, is coupled to additionalcell phone circuitry 266. The additionalcell phone circuitry 266 is operable to process positioning signals as described above in connection with FIG. 2 and to process cellular communication signals in a manner similar to astandard wireless device 16 without an integrated rangingreceiver 14. - FIG. 4 is a flow diagram illustrating a method for obtaining an initial calibration location estimate based on an initial trigger for the ranging
receiver 14 in accordance with one embodiment of the present invention. The method begins atstep 400 where the rangingreceiver 14 detects an initial trigger. - A trigger may comprise a request generated by the
wireless device 16 automatically, a request generated by user of thewireless device 16 such as by pushing abutton 30 on the rangingreceiver 14, a request from an external source such as the Internet, ageolocation processor 24 or other suitable external source, or any other suitable trigger. The initial trigger detected instep 400 may comprise, for example, a trigger that is automatically generated in response to turning on thewireless device 16 that is coupled to the rangingreceiver 14. In addition, as described in more detail below, the initial trigger may comprise a trigger that is automatically generated after a previous initial trigger was followed by an unsuccessful attempt to obtain a calibration location estimate. - At
decisional step 402, a determination is made regarding the status of a superframe in the rangingreceiver 14. According to one embodiment, the superframe comprises 25 frames, each of which further comprises five subframes. The superframe comprises 37,500 bits, which are transmitted from thesatellites 12 at 50 bits per second. Each of the 25 frames comprises a 1500-bit message that includes timing, identification, and ephemeris data, along with portions of the constellation's almanac data and various telemetry, checksum, and counterwords for eachsatellite 12. - Changes in the message relating to updates to the ephemeris and almanac data occur at infrequent intervals, usually between four and 24 hours, and affect only a small portion of the message for each update. Therefore, if the superframe in the ranging
receiver 14 is relatively current, the message in that superframe may be used by the rangingreceiver 14. - If no superframe is present in the ranging
receiver 14 or if the superframe is expired, the method follows the Expired branch fromdecisional step 402 to step 404. The superframe may be considered expired if the superframe is greater than 96 hours old. However, it will be understood that the superframe may be considered expired based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention. Atstep 404, the rangingreceiver 14 downloads the superframe from thesatellites 12 or from thegeolocation processor 24. - If the superframe in the ranging
receiver 14 is not current, the method follows the Not Current branch fromdecisional step 402 to step 406. The superframe may be considered not current if the superframe is between 4 and 96 hours old. However, it will be understood that the superframe may be considered not current based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention. - At
step 406, the rangingreceiver 14 downloads an update to the superframe from thesatellites 12 or from thegeolocation processor 24. Any data obtained from thegeolocation processor 24 insteps modems 40 or via an alternate pathway using, for example, a control channel for thewireless carrier network 20 or other suitable data pathway. - Returning to
decisional step 402, if the superframe in the rangingreceiver 14 is current, the method follows the Current branch fromdecisional step 402 todecisional step 408. Also, after a superframe has been downloaded instep 404 or an update has been downloaded instep 406, the method continues todecisional step 408. The superframe may be considered current if the superframe is less than 4 hours old. However, it will be understood that the superframe may be considered current based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention. - At
decisional step 408, a determination is made regarding whether or not a fresh calibration location estimate is available. According to one embodiment, a fresh calibration location estimate comprises a location estimate that has been performed within the past ten minutes. However, it will be understood that a calibration location estimate may be considered fresh after any suitable period of time or based on other suitable criteria without departing from the scope of the present invention. - If no fresh calibration location estimate is available, the method follows the No branch from
decisional step 408 to step 410. Atstep 410, the location circuitry of the rangingreceiver 14 is turned on. Thus, for example, thepower management circuitry 230 may provide full power to each of thecomponents step 412, the rangingreceiver 14 begins collecting samples for CFO extraction and attempts to perform CFO extraction based on the collected samples. - At
decisional step 414, a determination is made regarding whether or not the CFO extraction was successful. If the CFO extraction was successful, the method follows the Yes branch fromdecisional step 414 to step 416. Atstep 416, the rangingreceiver 14 enters a stand-alone mode for pseudorange estimation. Atstep 418, the rangingreceiver 14 estimates pseudorange. According to one embodiment, the rangingreceiver 14 estimates pseudorange in accordance with the method of FIGS. 7 and 8. - At
decisional step 420, a determination is made regarding whether or not the real-time clock 232 has the current time. If the real-time clock 232 does not have the current time, the method follows the No branch fromdecisional step 420 to step 422. - At
step 422, the real-time clock 232 for the rangingreceiver 14 is calibrated, or synchronized, to a standardized time of day (TOD), such as GPS time, across the wireless link or to the TOD information received in the positioning signals. Once calibrated, the real-time clock 232 keeps track of real time so that the timing of events in the rangingreceiver 14, such as message data bit transition times, can be accurately tracked. Fromstep 422, the method continues to step 424. - Returning to
decisional step 420, if the real-time clock 232 has the current time, the method follows the Yes branch fromdecisional step 420 to step 424. Atstep 424, the rangingreceiver 14 performs a calibration location estimate. - At
step 426, the rangingreceiver 14 determines its receiver bias based on geometric and measured data. The geometric data may comprise satellite message data, approximate location data and/or other suitable data useful for estimating Doppler frequency shift. The approximate location data may comprise a previous location estimate, such as a calibration location estimate, or general location information provided by an external source, such as a cell site identification provided by a PSAP or an estimate provided by a user of thewireless device 16. According to one embodiment, the rangingreceiver 14 determines its receiver bias by first determining the actual Doppler frequency shift for the satellite signals being processed based on the geometric data from eachsatellite 12. Based on the actual Doppler frequency shifts (estimated from the geometric data) and the measured CFOs, the rangingreceiver 14 calculates the receiver frequency bias for the rangingreceiver 14, which is stored for future use. Atstep 428, the rangingreceiver 14 reverts to the low-power standby condition and waits for another trigger. - At
step 430, the rangingreceiver 14 sets a timer for a recalibration trigger. Thus, after the timer expires, a recalibration trigger will be generated instep 434 to prompt the rangingreceiver 14 to perform another location estimate. The method then returns to step 430 where the timer is reset for another recalibration trigger. In this way, the location estimate may be automatically updated periodically. - According to one embodiment, the timer set in
step 430 expires after approximately 10 minutes. However, it will be understood that the timer may expire after any suitable amount of time without departing from the scope of the present invention. For example, according to one embodiment, the timer may expire after a varying amount of time based on comparing consecutive location estimates. Thus, for this embodiment, the timer may expire after a reduced amount of time when consecutive location estimates indicate that the rangingreceiver 14 is moving at greater than a certain velocity and may expire after an increased amount of time when consecutive location estimates indicate that the rangingreceiver 14 is moving at less than a certain velocity. - Returning to
decisional step 414, if the CFO extraction was not successful, the method follows the No branch fromdecisional step 414 to step 440. Atstep 440, the rangingreceiver 14 sets a timer for an initial trigger. Thus, after a specified amount of time has passed (i.e., after the timer expires), an initial trigger will be generated instep 442. The method then returns to step 400 where the rangingreceiver 14 detects the initial trigger and the method begins again. In this way, the calibration location estimate may be re-attempted automatically at a later time. According to one embodiment, the specified amount of time is approximately 10 minutes. However, it will be understood that the specified amount of time may be any suitable length of time without departing from the scope of the present invention. - Returning to
decisional step 408, if a fresh calibration location estimate is determined to be available, the method follows the Yes branch fromdecisional step 408 to step 430 where the timer is set for a recalibration trigger as described above. In this way, the calibration location estimate may be updated automatically after the specified period of time. - FIG. 5 is a flow diagram illustrating a method for obtaining a location estimate based on a non-initial trigger for the ranging
receiver 14 in accordance with one embodiment of the present invention. The method begins atstep 500 where the rangingreceiver 14 detects a non-initial trigger. - According to one embodiment, the non-initial trigger may comprise a recalibration trigger that is automatically generated by the ranging
receiver 14 periodically based on a timer. Thus, when the recalibration trigger is generated, the timer for the recalibration trigger may be automatically reset to trigger another location estimate after a specified amount of time has passed. The non-initial trigger may also comprise a trigger that is generated by a user of thewireless device 16 pushing abutton 30 on the rangingreceiver 14, generated by aservice requester 62, or based on any other suitable request. - At
decisional step 502, a determination is made regarding the status of a superframe in the rangingreceiver 14. If no superframe is present in the rangingreceiver 14 or if the superframe is expired, the method follows the Expired branch fromdecisional step 502 to step 504. The superframe may be considered expired if the superframe is greater than 96 hours old. However, it will be understood that the superframe may be considered expired based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention. Atstep 504, the rangingreceiver 14 downloads the superframe from thesatellites 12 or from thegeolocation processor 24. - If the superframe in the ranging
receiver 14 is not current, the method follows the Not Current branch fromdecisional step 502 to step 506. The superframe may be considered not current if the superframe is between 4 and 96 hours old. However, it will be understood that the superframe may be considered not current based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention. Atstep 506, the rangingreceiver 14 downloads an update to the superframe from thesatellites 12 or from thegeolocation processor 24. - Any data obtained from the
geolocation processor 24 insteps modems 40 or via an alternate pathway using, for example, a control channel for thewireless carrier network 20 or other suitable data pathway. - Returning to
decisional step 502, if the superframe in the rangingreceiver 14 is current, the method follows the Current branch fromdecisional step 502 to step 508. Also, after a superframe has been downloaded instep 504 or an update has been downloaded instep 506, the method continues to step 508. The superframe may be considered current if the superframe is less than 4 hours old. However, it will be understood that the superframe may be considered current based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention. - At
step 508, the location circuitry of the rangingreceiver 14 is turned on. Atstep 510, the rangingreceiver 14 begins collecting samples for CFO extraction and attempts to perform CFO extraction based on the collected samples. - At
decisional step 512, a determination is made regarding whether or not the CFO extraction was successful. If the CFO extraction was successful, the method follows the Yes branch fromdecisional step 512 to step 514. Atstep 514, the ranging receiver enters the stand-alone mode for pseudorange estimation. Atstep 516, the rangingreceiver 14 estimates pseudorange. According to one embodiment, the rangingreceiver 14 estimates pseudorange in accordance with the method of FIGS. 7 and 8. - At
decisional step 518, a determination is made regarding whether or not the real-time clock 232 has the current time. If the real-time clock 232 does not have the current time, the method follows the No branch fromdecisional step 518 to step 520. - At
step 520, the real-time clock 232 for the rangingreceiver 14 is calibrated, or synchronized, to a remote clock across the wireless link or based on TOD information in the positioning signals. Once calibrated, the real-time clock 232 keeps track of real time so that the timing of events in the rangingreceiver 14, such as message bit transition times, can be accurately tracked. Fromstep 520, the method continues to step 522. - Returning to
decisional step 518, if the real-time clock 232 has the current time, the method follows the Yes branch fromdecisional step 518 to step 522. Atstep 522, the rangingreceiver 14 performs the location estimate. - At
step 524, the rangingreceiver 14 determines its receiver bias based on geometric data. The geometric data may comprise satellite message data, approximate location data and/or other suitable data useful for estimating CFO for compensation during pseudorange processing in the geometric mode. The approximate location data may comprise a previous location estimate, such as a calibration location estimate, or general location information provided by an external source, such as a cell site identification provided by a PSAP or an estimate provided by a user of thewireless device 16. According to one embodiment, the rangingreceiver 14 determines its receiver bias by first calculating the actual Doppler frequency shift for each of the satellite signals being received based on the geometric data for eachsatellite 12 and the most recent location estimate. Based on these actual Doppler frequency shifts, the rangingreceiver 14 calculates the difference between the actual measured CFOs and the calculated Doppler frequency shifts to determine the frequency bias for the rangingreceiver 14, which is stored for future use. Fromstep 524, the method continues to step 526. - Returning to
decisional step 512, if the CFO extraction was not successful, the method follows the No branch fromdecisional step 512 to step 528. Atstep 528, the rangingreceiver 14 enters the geometric mode. Thus, when the rangingreceiver 14 can successfully perform CFO extraction, the rangingreceiver 14 enters the stand-alone mode in order to determine a pseudorange. However, when the rangingreceiver 14 is unable to perform CFO extraction due to the weak level of the signals being received at the rangingreceiver 14, the rangingreceiver 14 enters the geometric mode in order to determine a pseudorange. According to one embodiment, the rangingreceiver 14 enters the geometric mode if attempted CFO extraction is unsuccessful within a predefined period of time. Depending on the application or embodiment, the pre-defined period of time may comprise approximately 1 to 30 seconds or any other suitable period of time. - At
step 530, the rangingreceiver 14 obtains geometric data for the location estimating process. As used herein “to obtain data” means to retrieve or receive data from a local memory store or from a remote device. According to one embodiment, the geometric data comprises satellite message data and approximate location data. The approximate location data may comprise a previous location estimate, such as a calibration location estimate, or general location information provided by an external source, such as a cell site identification provided by a PSAP or an estimate provided by a user of thewireless device 16. - At
step 532, the rangingreceiver 14 estimates the CFO for eachsatellite 12. According to one embodiment, these CFOs are estimated by summing the Doppler frequency shifts (which may be determined based on the geometric data) and the receiver frequency bias (which was previously determined during the calibration process). - At
step 534, the rangingreceiver 14 obtains message data fragments from thegeolocation processor 24 or from the results of the method for predicting satellite message data described in FIG. 12 or other suitable prediction method. Atstep 536, the rangingreceiver 14 estimates pseudorange. According to one embodiment, the rangingreceiver 14 estimates pseudorange in accordance with the method of FIGS. 13A, 13B and 13C. Atstep 538, the rangingreceiver 14 performs the location estimate. - From
steps receiver 14 stores the location estimate, receiver bias and current time. Atstep 540, the rangingreceiver 14 reverts to the low-power standby condition. Atdecisional step 542, a determination is made regarding whether the trigger detected instep 500 was a recalibration trigger. If the trigger was not a recalibration trigger, the method follows the No branch fromdecisional step 542 to step 544. Atstep 544, the rangingreceiver 14 sends the location estimate to the requester who generated the trigger, at which point the method comes to an end. However, if the trigger was determined to be a recalibration trigger indecisional step 542, the method follows the Yes branch fromdecisional step 542 and comes to an end. - FIGS. 6A and 6B are flow diagrams illustrating a method for direct CFO extraction in the
system 10 in accordance with one embodiment of the present invention. The method begins atstep 600 where the location circuitry of the rangingreceiver 14 is turned on. Atstep 602, a decimated output matrix, DM, of dimension (P,W) with element pointer p,w, is initialized and the decimated output pointer, p, is initialized to 1. - At
step 604, sample sizes S1 and S2 are initialized, a maximum number of samples, MAX, is initialized to S1, and a sample number, s, is set to 1. Also atstep 604, a rate correction indicator, RC, is set to 0. In one embodiment, the sample size S1 is set to correspond to a sampled duration of approximately one second and the sample size S2 is set to correspond to a sampled duration between approximately 5 and 100 seconds. However, it will be understood that the sample sizes may be set to any suitable number without departing from the scope of the present invention. - At
step 606, a number W of rate values, Rw, is initialized and w is set to a value of one. In one embodiment, the number of values is selected to ensure that the error range between values is less than 0.1 Hz/second. The number of values may be selected as the maximum rate range divided by the error range. According to one embodiment, the maximum rate range may reach approximately 1.0 Hz/second and the number of values may be selected to be 1/(0.1-−0.1), or 5. It will be understood, however, that any suitable criteria may be used in selecting the number of values. - At
step 608, a decimation counter is initialized. According to one embodiment, the decimation counter is initialized to a decimation rate, DR, that corresponds to the rate at which the samples will be decimated. This decimation rate may be chosen in relation to the signal-sampling rate (which may be 1,024 kHz×2, with n=1, 2 or 3, or other suitable rate). For example, the signal may be sampled directly to result in down-conversion to baseband at these sampling rates or at higher rates to produce results that may be easily converted to I/Q samples. According to one embodiment, the decimation rate may be chosen to yield a signal with at least a 20 kHz bandwidth, thereby allowing for the maximum range of the CFOs and the doubling in frequency caused by the squaring step. Thus, for a 2,048 kHz complex sampling rate (n=1, above), the decimation rate (DR) may be chosen to be approximately 100. - At
step 610, the rangingreceiver 14 collects a new signal sample. Atstep 611, the rangingreceiver 14 increments the sample counter, s. Atstep 612, the rangingreceiver 14 squares the signal sample in order to recover the original carrier on which the biphase Gold code is modulated and to double its original frequency. Atstep 614, the rangingreceiver 14 adds the squared sample value to an accumulator. According to one embodiment, the squared sample is multiplied by a filtering coefficient identified by the decimation counter before being added to the accumulator. Atstep 616, the rangingreceiver 14 decrements the decimation counter. - At
decisional step 618, a determination is made regarding whether or not the decimation counter is equal to zero. If the decimation counter is not equal to zero, the method follows the No branch fromdecisional step 618 and returns to step 610 for the collection of another signal sample. However, if the decimation counter is equal to zero, the method follows the Yes branch fromdecisional step 618 todecisional step 620. - At
decisional step 620, a determination is made regarding whether or not RC equals 1. According to the illustrated embodiment, rate correction is applied when RC equals 1 and is not applied when RC equals 0. However, it will be understood that rate correction may be applied based on any suitable vales for RC or based on other suitable criteria without departing from the scope of the present invention. For the illustrated embodiment, if RC equals 1, the method follows the Yes branch fromdecisional step 620 to step 621. Atstep 621, w is set to a value of one. - At
step 622, the rangingreceiver 14 gets the wth Doppler correction. In order to determine the wth Doppler correction, the rangingreceiver 14 computes a pointer to a table of sine and cosine values. These tabular values are used to implement multiplication of the samples by the phase rotation vector e−jωt, i.e., cos(ωt)−j·sin(ωt), where j represents the square root of −1 and ω is the frequency term 2π(Dw+Rwt), where Dw is the current, or wth, Doppler frequency shift and Rw is the current, or wth, Doppler rate. Since Dw is unknown, it is set to zero, and since the estimate producing the largest response will identify the appropriate rate Rw, Dw will come out of the spectral analysis of each of the W rate-compensated arrays as the CFO. The variable t is the time from the beginning of the analysis to the center of the current decimated sample, i.e., t=i/fsample-rate, and i=signal sample number at the center of this decimated sample. - At
step 624, the rangingreceiver 14 complex multiplies the complex decimated sample (I/Q sampling) accumulated atstep 614 by the wth complex Doppler correction. Atstep 626, the rangingreceiver 14 stores the results of the complex multiplication at a location identified by p,w in the decimated output matrix in thesignal sample memory 216. Atstep 628, the rangingreceiver 14 increments w. - At
decisional step 630, a determination is made regarding whether or not w is greater than W. If w is not greater than W, the method follows the No branch fromdecisional step 630 and returns to step 622, where the rangingreceiver 14 gets the Doppler correction for the incremented w. However, if w is greater than W, the method follows the Yes branch fromdecisional step 630 to step 632. Atstep 632, the rangingreceiver 14 increments p. - Returning to
decisional step 620, if RC does not equal 1, the method follows the No branch fromdecisional step 620 to step 634. Atstep 634, the value in the accumulator described instep 614 is stored at a location identified by p,w in thesignal sample memory 216. At this point, the method continues to step 632 where the rangingreceiver 14 increments p. Fromstep 632, the method continues todecisional step 635. - At
decisional step 635, a determination is made regarding whether or not p is equal to the maximum number of decimated samples, MAX/DR. If p is not equal to MAX/DR, the method follows the No branch fromdecisional step 635 and returns to step 608 where the decimation counter is re-initialized for the process of collecting additional signal samples. However, if p is equal to MAX/DR, the method follows the Yes branch fromdecisional step 635 to step 636. - At
step 636, the rangingreceiver 14 attempts to find significant carriers in the sample sets. According to one embodiment, the rangingreceiver 14 attempts to find significant carriers in accordance with the method of FIG. 6B. While the ranging receiver is attempting to find significant carriers, the method continues todecisional step 640. - At
decisional step 640, a determination is made regarding whether or not s is greater than MAX. If s is not greater than MAX, the method follows the No branch fromdecisional step 640 and returns to step 608 where the decimation counter is re-initialized. However, if s is greater than MAX, the method follows the Yes branch fromdecisional step 640 to step 642. Atstep 642, RC is set to a value of one, and MAX is increased from S1 to the greater value S2. - At
decisional step 644, a determination is made regarding whether or not s is greater than MAX. If s is not greater than MAX, the method follows the No branch fromdecisional step 644 and returns to step 608 where the decimation counter is re-initialized. However, if s is greater than S2, the method follows the Yes branch fromdecisional step 644 to step 646. Atstep 646, a flag is set to indicate that the signal is too weak for successful CFO extraction, at which point the method comes to an end. - FIG. 6B is a flow diagram illustrating a method for attempting to find significant carriers in the method of FIG. 6A in accordance with one embodiment of the present invention. The method begins at
step 650 where the decimated sample sets stored in thesignal sample memory 216, each of which corresponds to a Doppler-rate compensation estimate, are Fourier-transformed into the frequency domain. - At
step 652, the spectrum of each set is searched for significant carriers, i.e., carriers that are sufficiently above a noise-background threshold. According to one embodiment, a carrier is sufficiently above the noise-background threshold when the carrier is at least 6 dB above the noise-background threshold. However, it will be understood that a carrier may be sufficiently above the noise-background threshold when the carrier is any suitable level above the noise-background threshold. - In a particular embodiment, the six highest peaks are identified as possible carriers and the 20 next highest peaks are averaged to establish a noise-background threshold. The possible carriers may be confirmed as carriers that are sufficiently above the noise-background threshold when the carriers are at least four times, or the equivalent of 6 dB, higher than the threshold. It will be understood that the noise-background threshold may be otherwise suitably determined without departing from the scope of the present invention. In addition, the carriers may be considered to be sufficiently above the noise-background threshold when the carriers are at any suitable level above the threshold.
- At
decisional step 654, a determination is made regarding whether a specified minimum number of significant carriers sufficiently above the noise-background threshold has been found. According to one embodiment, the specified minimum number is four. According to another embodiment, the specified minimum number may be greater than four since the availability of more pseudorange estimates improves the quality or confidence level of a location estimate. However, it will be understood that any suitable number of significant carriers may be specified. - If the specified number of significant carriers has been found, the method follows the Yes branch from
decisional step 654 to step 656. Atstep 656, the rangingreceiver 14 stores the CFO results. Atstep 658, the direct CFO extraction of the method of FIG. 6A is ended due to the successful attempt to find significant carriers. In this way, CFOs can be extracted from approximately one second of signal sample processing from signals obstructed up to approximately 10 dB of attenuation or can be extracted from approximately 10 seconds of signal sample processing from signals obstructed up to approximately 15 dB of attenuation. - Returning to
decisional step 654, if the specified number of significant carriers has not been found, the method follows the No branch fromdecisional step 654 and returns to the method of FIG. 6A for the continuation of direct CFO extraction. - FIG. 7 is a flow diagram illustrating a method for determining a pseudorange in the ranging
receiver 14 in the stand-alone mode in accordance with one embodiment of the present invention. The method begins atstep 700 where the rangingreceiver 14 begins to collect samples for pseudorange estimation from the signals received from thesatellites 12. Atstep 702, the rangingreceiver 14 selects one of the CFOs determined from the direct CFO extraction process of FIG. 6 for thesatellites 12. Atstep 704, the rangingreceiver 14 begins to process the pseudorange samples by compensating the samples for the selected CFO. As used herein, “pseudorange samples” means signal samples from which pseudorange may be estimated. - At
step 706, the rangingreceiver 14 removes satellite message data modulation from the pseudorange samples by multiplying out the biphase message data modulation, as described in more detail below in connection with FIGS. 8A and 8B. - At
step 708, the rangingreceiver 14 linearly combines, or stacks, the samples into a single epoch duration result for eachsatellite 12. Atstep 710, the rangingreceiver 14 compensates for time dilation. Atstep 712, the rangingreceiver 14 correlates the Gold codes for thesatellites 12 to give the pseudoranges from thosesatellites 12. According to one embodiment, the rangingreceiver 14 correlates the Gold codes by Fourier transform means. For this embodiment, each CFO-compensated stack of samples which has been Fourier-transformed is multiplied by the Fourier transform of the time-reversed series of the Gold code for a satellite 12 (sampled at the same rate as the pseudorange samples and stored inmemory 216 or 220). The product is then inverse-Fourier transformed to yield the pseudorange time sequence. - At
decisional step 714, a determination is made regarding whether a correlation peak exists in each of the pseudorange time sequences that is sufficiently above a noise-background threshold. According to one embodiment, a correlation peak is sufficiently above the noise-background threshold when the correlation peak is at least 6 dB above the noise-background threshold. However, it will be understood that a correlation peak may be sufficiently above the noise-background threshold when the correlation peak is any suitable level above the noise-background threshold. If such a peak does not exist for any of the pseudorange time sequences, the method follows the No branch fromdecisional step 714 todecisional step 716. - At
decisional step 716, a determination is made regarding whether a maximum number of combined pseudorange samples has been exceeded for the pseudorange time sequences without a correlation peak. According to various embodiments, the maximum number of combined samples is based on a corresponding amount of sampling time for a location estimate that is approximately 1 to 30 seconds. However, it will be understood that the maximum number of combined samples may be any suitable number. - If the maximum number of combined pseudorange samples has been exceeded, this indicates that the corresponding pseudorange signals being received at the ranging
receiver 14 are too weak to be used. In this situation, the method follows the Yes branch fromdecisional step 716 to step 717 where a flag is set to indicate that the signal is too weak, at which point the method comes to an end. However, if the maximum number of combined pseudorange samples has not been exceeded, the method follows the No branch fromdecisional step 716 and returns to step 700 to process more samples to be combined with previously compensated and stacked samples for pseudorange estimation. - Returning to
decisional step 714, if a correlation peak that is sufficiently above the noise-background threshold does exist for each of the pseudorange time sequences, the method follows the Yes branch fromdecisional step 714 to step 718. Atstep 718, a pseudorange is determined based on the correlation peak, after which the method comes to an end. According to one embodiment, a multi-path correcting centroid calculation is applied to determine a substantially exact location of the center of each of the peaks based on techniques that compensate for the distortion of each peak's shape by the presence of multi-path signals occurring near the correlation peak. In this way, a useable pseudorange may be determined based on approximately 0.1 seconds worth of received signal samples comprising a minimum carrier-to-noise density ratio of approximately 20 dB. - FIGS. 8A and 8B are flow diagrams illustrating a method for aligning message data to determine a pseudorange in the ranging
receiver 14 in a stand-alone mode in accordance with one embodiment of the present invention. The method of FIG. 8A begins with the availability of a specified number of identified significant carriers, each having a CFO. According to one embodiment, the carriers are identified through the direct CFO extraction process described above in connection with FIGS. 6A and 6B. - For each of the CFOs, a pointer-step increment, g(m), is generated at
step 800. This pointer-step increment is used to increment a pointer that indexes a table of sine and cosine trigonometric values to be used for frequency compensation by complex-vector rotation. The magnitude of the increment is proportional to the frequency to be compensated. In one embodiment, by using the moduli and signs of the pointer value, the table can be restricted to one quadrant of values. - At
step 802, a number of epochs per sub-stack, P, is initialized and its counter, p, is set to a value of one. According to one embodiment, P is initialized to a value of four or five. Atstep 804, a number of sub-stacks per analysis, Q, is initialized and its counter, q, is set to a value of one. According to one embodiment Q is initialized to a value of 60/P, or twelve for the embodiment in which P is initialized to a value of five. - At
step 806, a number of samples per epoch, K, is initialized, and a samples per epoch counter, k, is set to a value of one. According to one embodiment, K is initialized to a value of 1,023×2n, with n=1, 2 or 3. Atstep 808, a number of carriers, M, is initialized and a signal sample counter, i, is set to a value of one. According to one embodiment, M is initialized to a value of four, five, or six, based on the specified number of significant carriers available, as described above. Atstep 810, a carrier counter, m, is set to a value of one. - At
step 812, the rangingreceiver 14 gets a signal sample. Atstep 814, the rangingreceiver 14 gets the mth CFO compensation term for the ith sample. In one embodiment, the ith pointer value for the mth CFO is n=modulo[g(m) i], where the modulus is equal to the number of entries in the trigonometric table that represent theinterval 0 to 90 degrees of rotation. The sine and cosine values at this pointer value are fetched from the table to form the complex rotational compensation vector w=cosine [n]+j sine [n], where j represents the square root of −1. Atstep 816, the rangingreceiver 14 complex multiplies the sample by the CFO compensation term. Atstep 818, the rangingreceiver 14 accumulates the result of the complex multiplication at a location identified by k,q (i.e., position k in sub-stack q) in an mth array. Atstep 820, the rangingreceiver 14 increments m. - At
decisional step 822, a determination is made regarding whether or not m is greater than M. If m is not greater than M, the method follows the No branch fromdecisional step 822 and returns to step 814. However, if m is greater than M, the method follows the Yes branch fromdecisional step 822 to step 824. Atstep 824, the rangingreceiver 14 increments both k and i. - At
decisional step 826, a determination is made regarding whether or not k is greater than K. If k is not greater than K, the method follows the No branch fromdecisional step 826 and returns to step 810 where m is set to a value of one before another signal sample is collected. However, if k is greater than K, the method follows the Yes branch fromdecisional step 826 to step 828. Atstep 828, k is set to a value of one. Atstep 830, the rangingreceiver 14 increments p. - At
decisional step 832, a determination is made regarding whether or not p is greater than P. If p is not greater than P, the method follows the No branch fromdecisional step 832 and returns to step 810 where m is set to a value of one before another signal sample is collected. However, if p is greater than P, the method follows the Yes branch fromdecisional step 832 to step 834. Atstep 834, p is set to a value of one. Atstep 836, the rangingreceiver 14 increments q. - At
decisional step 838, a determination is made regarding whether or not q is greater than Q. If q is not greater than Q, the method follows the No branch fromdecisional step 838 and returns to step 810 where m is set to a value of one before another signal sample is collected. However, if q is greater than Q, the method follows the Yes branch fromdecisional step 838 and comes to an end. At this point, sub-stacks have been generated for use in determining message data alignment, as described in more detail below and in connection with FIGS. 9, 10 and 11. - The method of FIG. 8B begins at
step 844 where the rangingreceiver 14 sets k, p, q and a sub-stacks per bit counter, r, all to a value of one and initializes a number of sub-stacks per data bit, R. According to one embodiment, R is initialized to a value of 20/P. Atstep 846, the rangingreceiver 14 sets m to a value of one. Atstep 848, the rangingreceiver 14 adds the value at the location identified by k,q of the mth array to the value at the location identified by k,r of the mth array. Atstep 850, the rangingreceiver 14 adds the value at the location identified by k,q+R of the mth array to the value at the location identified by k,r+R of the mth array. Atstep 852, the rangingreceiver 14 increments m. - At
decisional step 854, a determination is made regarding whether or not m is greater than M. If m is not greater than M, the method follows the No branch fromdecisional step 854 and returns to step 848 to add the values at the incremented mth array. However, if m is greater than M, the method follows the Yes branch fromdecisional step 854 to step 856. Atstep 856, the rangingreceiver 14 increments k. - At
decisional step 858, a determination is made regarding whether or not k is greater than K. If k is not greater than K, the method follows the No branch fromdecisional step 858 and returns to step 846 where m is set to a value of one. However, if k is greater than K, the method follows the Yes branch fromdecisional step 858 to step 860. Atstep 860, the rangingreceiver 14 sets k to a value of one. Atstep 862, the rangingreceiver 14 increments p. - At
decisional step 864, a determination is made regarding whether or not p is greater than P. If p is not greater than P, the method follows the No branch fromdecisional step 864 and returns to step 846 where m is set to a value of one. However, if p is greater than P, the method follows the Yes branch fromdecisional step 864 to step 866. Atstep 866, the rangingreceiver 14 sets p to a value of one. Atstep 868, the rangingreceiver 14 increments r. - At
decisional step 870, a determination is made regarding whether or not r is greater than R. If r is not greater than R, the method follows the No branch fromdecisional step 870 and returns to step 846 where m is set to a value of one. However, if r is greater than R, the method follows the Yes branch fromdecisional step 870 to step 872. Atstep 872, the rangingreceiver 14 sets both r and k to a value of one. Atstep 874, the rangingreceiver 14 sets m to a value of one. - At
step 876, the rangingreceiver 14 adds the value at the location identified by k,r of the mth array to the value at the location identified by k,r of an mth sum stack and to the value at the location identified by k,r+R of an mth difference stack. - At
step 878, the rangingreceiver 14 adds the value at the location identified by k,r+R of the mth array to the value at the location identified by k,r of the mth sum stack. Atstep 880, the rangingreceiver 14 subtracts the value at the location identified by k,r+R of the mth array from the value at the location identified by k,r+R of the mth difference stack. Atstep 882, the rangingreceiver 14 increments m. - At
decisional step 884, a determination is made regarding whether or not m is greater than M. If m is not greater than M, the method follows the No branch fromdecisional step 884 and returns to step 874 where m is set to a value of one. However, if m is greater than M, the method follows the Yes branch fromdecisional step 884 to step 886. Atstep 886, the rangingreceiver 14 increments k. - At
decisional step 888, a determination is made regarding whether or not k is greater than K. If k is not greater than K, the method follows the No branch fromdecisional step 888 and returns to step 874 where m is set to avalue 1. However, if k is greater than K, the method follows the Yes branch fromdecisional step 888 to step 890. Atstep 890, the rangingreceiver 14 sets k to a value of one. - At
step 892, the rangingreceiver 14 correlates each sum stack (evaluating the same-signed data bits) and difference stack (evaluating the different-signed data bits) with the corresponding Gold codes to obtain pseudorange peaks and stores the peak values and their polarities in an output array at locations (m,r). Atstep 894, the rangingreceiver 14 increments r. - At
decisional step 896, a determination is made regarding whether or not r is greater than R. If r is not greater than R, the method follows the No branch fromdecisional step 896 and returns to step 874 where m is set to a value of one. However, if r is greater than R, the method follows the Yes branch fromdecisional step 896 to step 898. Atstep 898, the rangingreceiver 14 evaluates the results of the pseudorange correlations stored instep 892 in order to determine the quality of the message data alignment obtained during the current iteration. Based on the maxima of the results, the rangingreceiver 14 determines the alignment, and based on the sign of the maxima, the rangingreceiver 14 determines the polarity of the corresponding message data bit. At this point, stacks have been generated and used to determine coarse message data alignment, as described in more detail below in connection with FIGS. 9A and 9B. - FIGS. 9A and 9B are block diagrams illustrating a
system 900 for generating accumulated sub-stacks and stacks of CFO-compensated samples and for finding which of the alignments of those stacks with the message data bits produces the largest pseudorange estimates in accordance with one embodiment of the present invention. By determining alignment for the satellite message data, the rangingreceiver 14 may remove the satellite navigation message data modulation from the received signal by inverting the signal (multiplying the received signal by negative one (−1)) where the bits of the satellite navigation message data modulation result in the Gold code modulation being inverted. Multiple, synchronous repetitions of the signals (i.e., code-epoch duration sets of signal samples) may then be added together to improve the signal-to-noise ratio. In this way, processing gain may be increased as compared to a signal that is squared in order to remove the satellite message data. - The
system 900 comprises adata stream 902 that represents the signal being received at the rangingreceiver 14 from thesatellites 12. In the illustrated embodiment, each message data bit comprises 20 code epochs. For the illustrated example, a portion of a first message data bit 902 a is followed by a second message data bit 902 b, a third message data bit 902 c and a fourth message data bit 902 d. Thedata stream 902 comprises a plurality ofepochs 912 that are received at the rangingreceiver 14 from thesatellites 12. In the illustrated embodiment, for GPS signals, there are 1,023 Gold-code chips in anepoch 912, which may be sampled at 2,048 or 4,096 samples per code epoch or other suitable sampling rate. Thus, eachepoch 912 may include 2,048 signal samples for the first sampling rate. - To determine the satellite message data alignment in accordance with one embodiment of the present invention, the ranging
receiver 14 combines a plurality of code-epoch duration sets ofsamples 912 into a plurality ofsub-stacks 914. According to the illustrated embodiment, each sub-stack 914 comprises five code-epoch duration sample sets 912. The rangingreceiver 14 then further combines the sub-stacks 914 into a plurality ofstacks 916. According to the illustrated embodiment, eachstack 916 comprises four sub-stacks 914. In an alternative embodiment, each sub-stack 914 could comprise four code epoch duration sample sets 912 and eachstack 916 could comprise fivesub-stacks 914. It will be understood that other suitable numbers of code-epochs duration sample sets 912 may be included in each sub-stack 914 and other suitable numbers ofsub-stacks 914 may be included in eachstack 916 without departing from the scope of the present invention. - The ranging
receiver 14 then identifies pairs ofstacks 916 such that each pair comprises adjacent code-epoch duration sample sets 912 of thedata stream 902. For example, thepair 916 a comprises stack S1, which includes the first 20 code-epoch duration sample sets 912 of thedata stream 902, and stack S7, which includes the second 20 code-epoch duration sample sets 912 of thedata stream 902. For each such pair ofstacks 916, the rangingreceiver 14 forms both the sum and difference values in each of thestacks 916. The message data alignment may then be determined based on the largest pseudorange peak values for each sum and difference pair. In addition, the polarities of the largest pseudorange peak values indicate the signs for the corresponding message data bit pairs. Knowledge of whether the sum or difference provided the larger pseudorange peak value may be used to determine the order of the data bit-pair (e.g., “01” or “10” for difference and “00” or “11” for sum). - FIG. 9B is a block diagram illustrating a portion of the
system 900 in greater detail in accordance with one embodiment of the present invention. The illustratedsystem 900 comprises a plurality of code-epoch duration sample sets 912 a to 912 e that comprise signal samples that are representative of the Gold code chips for the signal received from asatellite 12 at the rangingreceiver 14. To determine coarse satellite message data alignment, the rangingreceiver 14 begins at an arbitrary time to accumulate samples of the signal for asatellite 12 inaccumulators 918. - As used herein, “coarse” alignment means alignment to within 2.5
epochs 912, which arises from the choice of 5epochs 912 persub-stack 914. According to one embodiment, the number ofaccumulators 918 corresponds to the number of samples in anepoch 912. Thus, for the embodiment in which eachepoch 912 comprises 1, 023 chips and the signal-sampling rate is 2,048 samples per code epoch, thesystem 900 comprises 2,048accumulators 918. - As each sample of the signal is received at the ranging
receiver 14, the signal is accumulated in anaccumulator 918. For example, if the sampling rate was a sample per chip and synchronous with its position in the Gold code epoch and if the rangingreceiver 14 begins to accumulate samples of the Gold code with the 733rd chip of the Gold code, the sample representing the 733rd chip of the Gold code would be accumulated in theAl accumulator 918, the sample representative of the 734th chip of the Gold code would be accumulated in the A2 accumulator 918, and so on, with the sample representing the 732nd chip of the Gold code accumulated in the An accumulator 918. - After the samples of the first code-epoch duration sample set912, which comprises an entire cycle of the Gold code, are accumulated in the
accumulators 918, the samples of the next code-epoch duration sample set 912, or cycle of samples of the Gold code signal, is similarly accumulated such that eachaccumulator 918 accumulates the sample representing the same chip of the Gold code. Thus, while within the same navigation message data bit, the samples representing the first chip of eachepoch 912 are accumulated with the same algebraic sign, and so on for all the samples in theepochs 912 representing the current message data bit. When the sign of the next message bit changes, the sign of all the signal samples representing the new message data bit are inverted and, when accumulated, diminish the previously accumulated sums. - According to the illustrated embodiment, each
accumulator 918 accumulates samples for five code-epoch duration sample sets 912. However, it will be understood that theaccumulators 918 may accumulate samples for any suitable number ofepochs 912 without departing from the scope of the present invention. - After five code-epoch duration sample sets912 are accumulated in the
accumulators 918, the resulting values in theaccumulators 918 are saved into a sub-stack 914, such as the sub-stacks 914 labeled A through M in the illustrated embodiment. Theaccumulators 918 may then be cleared and begin accumulating samples for the duration of the next fiveepochs 912 to be combined into thenext sub-stack 914. - For the embodiment in which the
accumulators 918 accumulate chips for the duration of fiveepochs 912, each sub-stack 914 comprises a combination of five code-epoch duration sample sets 912. However, it will be understood that the sub-stacks 914 may comprise any suitable number of code-epoch duration sample sets 912 based on the number of code-epoch durations accumulated in theaccumulators 918 without departing from the scope of the present invention. - The sub-stacks914 are further combined into
stacks 916. According to one embodiment, eachstack 916 comprises four sub-stacks 914. Thus, for the embodiment in which each sub-stack 914 comprises five code-epoch duration sample sets 912, eachstack 916 comprises 20 code-epoch duration sample sets 912. This corresponds to the length of a bit of satellite navigation message data, which is 20epochs 912. However, it will be understood that thestacks 916 may comprise any suitable number ofsub-stacks 914 without departing from the scope of the present invention. - The
stacks 916 are grouped into pairs ofstacks 916 representing adjacent data bits. Thus, for example, thepair 916 a comprises stack Si (comprising sub-stacks A, B, C and D) and stack S7 (comprising sub-stacks E, F, G and H). Thepair 916 b comprises stack S2 (comprising sub-stacks B, C, D and E) and stack S8 (comprising sub-stacks F, G, H and I). For the illustrated embodiment based onsub-stacks 914 of A through M, the sub-stacks 914 may be combined into twelvestacks 916, or six pairs ofstacks - To determine a coarse alignment for the satellite message data, the
stacks 916 in each pair are summed and differenced and the sum and difference arrays are evaluated for pseudorange peaks. Thus, for example, the values of Stack S1 and Stack S7 are added together and subtracted from each other, while the values of Stack S2 and Stack S8 are added together and subtracted from each other, and so on for each of the six pairs ofstacks - FIG. 10 is a block diagram illustrating a
system 920 for refining satellite message data alignment in thesystem 10 in accordance with one embodiment of the present invention. The refining process begins with the twostacks 916 derived in the coarse alignment method described above in connection with FIG. 9. - For coarse alignment to have occurred, the two message data bits represented by the stacks producing the match, such as S1 and S7, are either of opposite logical value (e.g., . . . x,0,1,x . . . or . . . x,1,0,x . . . ) or are bounded by bits of opposite logical value (e.g., . . . 0,1,1,0 . . . or . . . 1,0,0,1 . . . ). These two
stacks 916 are sub-divided intopartial stacks - Two refining stacks924 U and Z may be included to provide an enlarged refining shift range with higher resolution than was used in the coarse alignment method described above in connection with FIG. 9. This refining shift range may allow the
stacks 916 to be shifted earlier by an interval represented by twoepochs 912 and later by the same amount of time for a more refined alignment. According to one embodiment, the refining stacks 924 are formed from thesignal samples 912, which have been saved previously during the coarse alignment stacking process, as described further below. - Given that the choice of a sub-stack duration of five
epochs 912 in the coarse alignment process described above provided an alignment of within 5/2, or 2.5,epochs 912, the choice of tworefining stacks 924 in this illustration tests the alignment further by tworefining stacks 924 and moves the alignment within 1epoch 912, which is referred to herein as a “refined” alignment. As compared to thesystem 900, thissystem 920 reduces computational load for reaching a closer alignment by adding or subtracting only small refining-stacks 924 to the ends of thecoarse alignment stacks 916 derived in thesystem 900. - According to one embodiment, each partial stack922 comprises sixteen code epochs' worth of CFO-compensated signal samples and each
refining stack 924 comprises two code epochs' worth. Thus, according to the embodiment in which eachstack 916 comprises 20 code epochs' worth of samples, astack 916 comprises a partial stack 922 and two refining stacks 924. For the illustrated embodiment, arefined alignment stack 916 may comprise thepartial stack 922 a with the refining stacks 924 of U and V, V and W, or W and X, i.e., allowing a total of three possible shifts spanning a total of fourepochs 912. Thecorresponding stack 916 for a pair ofstacks 916 may comprise thepartial stack 922 b with the refining stacks 924 of W and X, X and Y, or Y and Z. - According to one embodiment, the ranging
receiver 14 synchronously accumulates samples of the signal fromsatellites 12 in theaccumulators 918 as described above in connection with FIG. 9B. However, in the event that refined alignment will be performed, pairs of code-epoch duration sample sets formed by thesystem 900 during the coarse alignment process are temporarily stored for later use in the refined alignment process. In this case, when the coarse alignment has been determined, additional refining stacks 924 U, V, W, X, Y and Z are formed out of the corresponding sample-set pairs saved. - For this embodiment, the number of epoch summations to be performed to reach a particular alignment quality is reduced over the number required if the
system 900 is used. First, summing each of the sixrefining stacks 924 results in six sums. Second, the aligningstacks 916 may be shifted by adding or subtracting theappropriate refining stacks 924 to shift the alignment in the desired direction. - For example, if the desired shift is to the left (earlier), then the shifted
S1 stack 916 would include S1+U−W, and the shiftedS7 stack 916 would include S7+W−Y. Once these shiftedstacks 916 have been formed, the shiftedstacks 916 are evaluated as described in relation to thesystem 900 above. If the desired shift is to the right (later), then the shiftedS1 stack 916 would include S1+X−V, and the shiftedS7 stack 916 would include S7+Z−X, and the outcome would again be evaluated as described in relation to thesystem 900 above. Thus, only two additional single-epoch duration adds and subtracts per stack pair, over the computations carried out in the coarse alignment process using thesystem 900, allows the alignment to be refined to within about oneepoch 912. - This process of alignment refinement by smaller shifts may be extended to achieve any suitable degree of alignment refinement, but alignment to within less than an epoch's duration yields very little additional processing gain.
- Once a coarse or, if desired, a refined alignment has been achieved, the alignment may be used to decode the continuing satellite message data, two message data bits at a time, by carrying out a simpler,20 plus 20 code-epoch stacking routine for each of the subsequent bit pairs. The magnitude and polarity of the sum or difference determines the values of the respective message data bits.
- FIG. 11 is a flow diagram illustrating a method for aligning message data in the ranging
receiver 14 in accordance with one embodiment of the present invention. The method begins atstep 1100 where the rangingreceiver 14 generatessub-stacks 914 based onepochs 912 accumulated in theaccumulators 918. Atstep 1102, the rangingreceiver 14 combines the sub-stacks 914 intostacks 916 which are grouped together in pairs. Atstep 1104, the rangingreceiver 14 calculates a sum and difference for each pair ofstacks 916. - At
step 1106, the rangingreceiver 14 determines the maxima of the pseudorange peaks, the peaks being based on correlations of thestacks 916 with the satellite Gold codes. According to one embodiment, this is accomplished by searching for the six largest values in the correlates of the sum and difference stacks, along with the offsets at which the maxima occur. After the maxima are found, a satellite ID is determined from the Gold code yielding the peak and the pseudorange is determined by the centroid of the correlation peak. In this way, the satellite message data may be aligned to within 2.5epochs 912. - At
decisional step 1108, a determination is made regarding whether or not the alignment is to be refined. If the alignment is not to be refined, the method follows the No branch fromdecisional step 1108 and comes to an end. However, if the alignment is to be refined, the method follows the Yes branch fromdecisional step 1108 to step 1109. - At
step 1109, the rangingreceiver 14 identifies partial stacks 922 andrefining stacks 924 which may be combined intostacks 916. Atstep 1110, the rangingreceiver 14 determines sums for the refining stacks 924. Atstep 1112, the rangingreceiver 14 shifts thestacks 916 based on the refining stacks 924, as described in more detail above in connection with FIG. 10. Atstep 1114, the rangingreceiver 14 determines a refined alignment based on the shiftedstacks 916, at which point the method comes to an end. In this way, the satellite message data may be aligned to within 0.5epochs 912. - FIG. 12 is a flow diagram illustrating a method for predicting satellite message data received in positioning signals at the ranging
receiver 14 in accordance with one embodiment of the present invention. The method begins atdecisional step 1200 where a determination is made regarding the status of a superframe in the rangingreceiver 14. - If no superframe is present in the ranging
receiver 14 or if the superframe is expired, the method follows the Expired branch fromdecisional step 1200 to step 1202. The superframe may be considered expired if the superframe is greater than 96 hours old. However, it will be understood that the superframe may be considered expired based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention. Atstep 1202, the rangingreceiver 14 downloads the superframe from thesatellites 12 or from thegeolocation processor 24. - If the superframe in the ranging
receiver 14 is not current, the method follows the Not Current branch fromdecisional step 1200 to step 1204. The superframe may be considered not current if the superframe is between 4 and 96 hours old. However, it will be understood that the superframe may be considered not current based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention. Atstep 1204, the rangingreceiver 14 downloads an update to the superframe from thesatellites 12 or from thegeolocation processor 24. - Any data obtained from the
geolocation processor 24 insteps modems 40 or via an alternate pathway using, for example, a control channel for thewireless carrier network 20 or other suitable data pathway. - Returning to
decisional step 1200, if the superframe in the rangingreceiver 14 is current, the method follows the Current branch fromdecisional step 1200 todecisional step 1206. Also, after a superframe has been downloaded instep 1202 or an update has been downloaded instep 1204, the method continues todecisional step 1206. The superframe may be considered current if the superframe is less than 4 hours old. However, it will be understood that the superframe may be considered current based on another suitable amount of time or other suitable criteria without departing from the scope of the present invention. - At
decisional step 1206, a determination is made regarding whether or not the real-time clock 232 has the current time. If the real-time clock 232 does not have the current time, the method follows the No branch fromdecisional step 1206 to step 1208. Atstep 1208, the real-time clock 232 for the rangingreceiver 14 is calibrated, or synchronized, to GPS time based on a remote clock or TOD information in the positioning signals. Once calibrated, the real-time clock 232 keeps track of GPS time. - At
step 1210, the rangingreceiver 14 sets up a common table that is operable to store data that is common to the superframe for each satellite in the constellation of satellites. According to one embodiment, approximately 60% of the superframe is common to each satellite in the constellation. - At
step 1212, for each of the satellites, the rangingreceiver 14 sets up a unique table that is operable to store data that is unique to the superframe of the corresponding satellite. For example, this unique data may comprise ephemeris data, telemetry data, tropospheric data, ionospheric propagation models, and other suitable data relating to the satellite. At this point, along with time and date information from the real-time clock 232 at the time it is required, the message predictor has been set up for subsequent use by the rangingreceiver 14 in predicting satellite message data for a specifiedsatellite 12 from which positioning signals are received. Fromstep 1212, the method continues to step 1214. - Returning to
decisional step 1206, if the real-time clock 232 has the current time, the method follows the Yes branch fromdecisional step 1206 todecisional step 1215. Atdecisional step 1215, a determination is made regarding whether the prediction tables, which include the common table and the unique tables, are current. Each of the prediction tables may comprise any suitable data store. If the prediction tables are not current, the method follows the No branch fromdecisional step 1215 and proceeds to step 1210 where the rangingreceiver 14 sets up a common table. - However, if the prediction tables are current, the method follows the Yes branch from
decisional step 1215 to step 1214. Atstep 1214, the rangingreceiver 14 begins to predict a message fragment. Atstep 1216, the rangingreceiver 14 identifies thesatellite 12, and the time interval, corresponding to the message fragment to be predicted. Atstep 1218, the rangingreceiver 14 generates a message fragment table for predicting the message fragment. - At
step 1220, the rangingreceiver 14 adds data from the common table to the message fragment table. Atstep 1222, the rangingreceiver 14 adds data from the unique table for thesatellite 12 identified instep 1216 to the message fragment table. Atstep 1224, the rangingreceiver 14 adds time-dependent data, such as bit transition timing information, to the message fragment table based on the current GPS time obtained from the real-time clock 232. - At
step 1226, the rangingreceiver 14 provides the predicted message fragment, which comprises the data for predicting the satellite message data, to the requester. Thus, in this way, the rangingreceiver 14 may predict the satellite message data in the positioning signals so that the message data may be removed after alignment, which may be performed as described above in connection with FIGS. 9, 10 and 11. - FIGS. 13A, 13B and13C are flow diagrams illustrating a method for determining a pseudorange estimate in the ranging
receiver 14 in a geometric mode in accordance with one embodiment of the present invention. The method provides for determining a pseudorange based on the availability at the rangingreceiver 14 of: (i) accurately known real time (with reference to the satellite constellation and within about a millisecond); (ii) an estimate of the current location of the ranging receiver 14 (within about a mile); (iii) an estimate of the frequency bias of the rangingreceiver 14; (iv) recent (within about 24 hours) ephemeris data; and (v) recent (within about 96 hours) constellation superframe data. - For example, real time data may be received from a first set of satellites, ephemeris data may be received from a second set of satellites, and superframe data may be received from a third set of satellites. The sets of satellites, which may each comprise one or more satellites, may comprise none, some or all of the same satellites in the satellite constellation. According to one embodiment, the first set of satellites comprises one of the in-
view satellites 12, the second set of satellites comprises at least four of the in-view satellites 12, and the third set of satellites comprises one of the satellites in the constellation. In an alternative embodiment, theapplication server 64 and/or theworkstation 46 may serve as a satellite information server from which ephemeris data and/or superframe data may be received. - In FIG. 13A, the method begins at
step 1300 where the rangingreceiver 14 determines a set of Doppler frequency shift, Doppler-rate and satellite ID data for a selected set of satellites from calculations based on the current geometric data referred to above. This set of data may be selected from among thesatellites 12 potentially viewable from the location of the rangingreceiver 14 at that time. This selection may be based on suitable criteria, such as low geometric dilution of precision, low elevation angle, or any suitable criteria. Atstep 1302, for eachsatellite 12 in the set, the rangingreceiver 14 sets up a table of message data bits that will be transmitted during the time that pseudorange samples will be processed. - At
step 1304, the rangingreceiver 14 computes the CFO and CFO-rate for each of thesatellites 12. The CFO is determined by adding the frequency bias of the rangingreceiver 14 to the computed Doppler frequency shift. The rangingreceiver 14 then assigns the Doppler rate to the CFO-rate for each of thesatellites 12. Atstep 1306, the rangingreceiver 14 stores the CFOs and the corresponding CFO-rates in a table. - At
step 1308, the rangingreceiver 14 initializes a maximum number of samples, I, and sets a sample counter, i, to one. The maximum number of samples may be chosen to limit the maximum integration time to suit the application, such as 10 to 30 seconds, but other values outside this range are also possible. Atstep 1310, a number of epochs, P, to be averaged is initialized. The number of epochs (which corresponds to the number of samples) to be averaged during one loop-through may be selected according to various criteria, such as the total processing gain to be provided per loop-through, the amount of memory available for table or intermediate result storage and any other suitable criteria. Atstep 1312, a number of carriers, M, is initialized. - At
step 1314, a number of samples per epoch, K, is initialized. Atstep 1316, the rangingreceiver 14 sets the epoch sample number, k, to a value of one. Atstep 1318, the rangingreceiver 14 sets the carrier counter, m, to a value of one. - At
step 1320, the rangingreceiver 14 gets a signal sample for processing. Atstep 1322, the rangingreceiver 14 gets the mth CFO compensation term for the ith sample. Atstep 1324, the rangingreceiver 14 complex multiplies the sample by the CFO compensation term. Atstep 1326, the rangingreceiver 14 scalar multiplies the CFO-compensated sample by its corresponding data bit polarity, which may be determined in accordance with the method of FIG. 13B. - At
step 1328, the rangingreceiver 14 adds the result of the multiplication instep 1326 to a location identified by k in an mth array. Atstep 1330, the rangingreceiver 14 increments m. Atdecisional step 1332, a determination is made regarding whether or not m is greater than M. If m is not greater than M, the method follows the No branch fromdecisional step 1332 and returns to step 1322. However, if m is greater than M, the method follows the Yes branch fromdecisional step 1332 to step 1334. Atstep 1334, the rangingreceiver 14 increments both k and i. - At
decisional step 1336, a determination is made regarding whether or not k is greater than K. If k is not greater than K, the method follows the No branch fromdecisional step 1336 and returns to step 1318 where m is set to a value of one. However, if k is greater than K, the method follows the Yes branch fromdecisional step 1336 to step 1338. Atstep 1338, the rangingreceiver 14 sets k to a value of one. Atstep 1340, the rangingreceiver 14 increments p. - At
decisional step 1342, a determination is made regarding whether or not p is greater than P. If p is not greater than P, the method follows the No branch fromdecisional step 1342 and returns to step 1318 where m is set to a value of one. However, if p is greater than P, the method follows the Yes branch fromdecisional step 1342 to step 1344. Atstep 1344, the rangingreceiver 14 sets m to a value of one. - At
step 1346, the rangingreceiver 14 correlates an mth pseudorange stack with a Gold code for an mth satellite ID. Atstep 1348, the rangingreceiver 14 compensates for time dilation by correlation peak shifting. According to one embodiment, time-dilation compensation may be accomplished by vector rotation in the frequency domain during the correlation by FFT means duringstep 1346. According to another embodiment, time-dilation compensation may be accomplished by suitable sub-stack sample shifting prior to final accumulation and conversion to pseudorange by correlation. In yet another embodiment, the time-dilation compensation may be performed in accordance with the time-shifting method of FIG. 13C. Atstep 1350, the pseudorange stack is added to an mth extended output stack and the mth pseudorange is evaluated for an adequate peak. Atstep 1352, the rangingreceiver 14 increments m. - At
decisional step 1354, a determination is made regarding whether or not m is greater than M. If m is not greater than M, the method follows the No branch fromdecisional step 1354 and returns to step 1346 where the mth pseudorange stack is correlated with the Gold code of the mth satellite ID for the incremented m. However, if m is greater than M, the method follows the Yes branch fromdecisional step 1354 todecisional step 1356. - At
decisional step 1356, a determination is made regarding whether any peak is not adequate. If each peak is adequate, then the minimum number, M, of pseudoranges has been detected successfully and the method follows the No branch fromdecisional step 1356 and comes to an end. In this way, a pseudorange may be determined in the range of 1 to 30 seconds based on received signals comprising a minimum carrier-to-noise density ratio in the range of 5 dB to 10 dB. However, if any peak is found to be not adequate, the method follows the Yes branch fromdecisional step 1356 todecisional step 1358. - At
decisional step 1358, a determination is made regarding whether or not a maximum number of samples, I, has been exceeded. If the maximum number of samples has been exceeded, the method follows the Yes branch fromdecisional step 1358 to step 1360. Atstep 1360, a flag is set to indicate that the signal is too weak for the minimum number, M, of pseudoranges to be detected successfully, at which point the method comes to an end. - Returning to
decisional step 1358, if the maximum number of samples has not been exceeded, the method follows the No branch fromdecisional step 1358 to step 1362. Atstep 1362, the rangingreceiver 14 clears the input sample stacks. At this point, the method returns to step 1316 where k is set to a value of one. - FIG. 13B is a flow diagram illustrating a method for removing message data modulation in the method of FIG. 13A in accordance with one embodiment of the present invention. The method begins at
step 1364 where, based on geometric prediction, the rangingreceiver 14 obtains satellite IDs, Doppler frequency shift, and Doppler rates. Atstep 1366, the rangingreceiver 14 stores a message bit transition offset, T(m), for each of theM satellites 12 based on the results of the method for predicting satellite message data described in FIG. 12. These offsets also include the signal transit time to the rangingreceiver 14 for eachsatellite 12. - At
step 1368, the rangingreceiver 14 stores a specified number of message data bits for eachsatellite 12 based on the results of the method for predicting satellite message data described in FIG. 12. According to one embodiment, the specified number of message data bits is equal to the result of dividing (a) the maximum number of samples by (b) 20 times the product of the sampling rate (samples per chip) and the chips per epoch. However, it will be understood that any suitable number of message data bits may be stored without departing from the scope of the present invention. Also, according to one embodiment, message data bits of logical (1) and (0) may be stored as values of +1 and −1, respectively, or as values of −1 and +1, respectively. However, it will be understood that the message data bits may be stored in any suitable manner without departing from the scope of the present invention. - At
step 1370, the rangingreceiver 14 multiplies the CFO-compensated samples by the corresponding stored message data bits. According to one embodiment, for the mth satellite, the value of the pointer to the message data bit may be determined by the rangingreceiver 14 based on the following formula: - IntegerPart[{T(m)+i}/K]+1,
- where T(m) is the message bit transition offset for the message bits from the mth satellite 12, i is the sample number and K is the number of samples per epoch.
- FIG. 13C is a flow diagram illustrating a method for compensating for time dilation in the method of FIG. 13A in accordance with one embodiment of the present invention. In this method, a time offset, t, from the beginning of the analysis to the beginning of the current sub-stack has a value of i-PK when the routine is entered from
step 1348 of FIG. 13A. The mth Doppler at the beginning of this sub-stack, n(m), is equal to d(m)+t r(m), where d(m) is the mth Doppler at the beginning of the analysis and r(m) is the mth Doppler rate expressed in per-sample terms, rather than per-second terms. The average of the mth Doppler, ad(m), from the beginning of the current analysis to the beginning of the current sub-stack is equal to d(m)+(t r(m))/2. The average of the mth Doppler in the current sub-stack, adstack(m), is equal to n(m)+t r(m)/2. The time shift to the beginning of this sub-stack, Del(m), is equal to ad(m)Tt/f(c) in second terms and ad(m)t/fc in sample terms. The time shift within the current sub-stack, Dstack(m), is equal to adstack(m)TPK/f(c) in second terms and ad(m)PK/fc in sample terms. The total time shift, TS(m), is equal to Del(m)+Dstack(m). - In addition, the following variables are defined for the purpose of this illustration, without limiting the application to only the GPS satellite constellation characteristics, as follows: i=sample number; M=number of carriers; d(m)=value of Doppler frequency shift, per instance of m; n(m)=value of Doppler at the beginning of the stacking process (i.e., when i=1)+the accumulated bias rate up to the beginning of the current sub-stack, per instance of m; r(m)=value of Doppler rate, per instance of m; K=number of samples per epoch; P=number of epochs per integration cycle; S=number of samples per sub-stack; c=speed of light; f(c)=GPS satellite carrier frequency (i.e., 1575.42 MHz); T=interval between samples; v=sample index within current sub-stack; u=sample index within extended output stack; TS=total time shift; SS=sub-stack sample; OS=output stack sample; FP[ ]=FractionalPart of; and IP[ ]=IntegerPart of.
- The method begins at
step 1380 where the rangingreceiver 14 sets the sample index, v, to a value of one. Atdecisional step 1382, a determination is made regarding whether the time shift is positive or negative (which depends on, and is opposite to, the sign of the Doppler frequency shift). If the time shift is negative, the method follows the Negative branch fromdecisional step 1382 to step 1384. Atstep 1384, the rangingreceiver 14 adds (FP[TS])*SS(v) to OS(m), (v+IP[TS]−1). Atstep 1386, the rangingreceiver 14 adds (1−FP[TS])*SS(v) to OS(m), (v+IP[TS]). Atstep 1388, the ranging receiver increments v. - At
decisional step 1390, a determination is made regarding whether or not v is greater than K. If v is not greater than K, the method follows the No branch fromdecisional step 1390 and returns to step 1384. However, if v is greater than K, pseudorange peaks may be evaluated and the method follows the Yes branch fromdecisional step 1390 and returns to step 1350 in FIG. 13A. - Returning to
decisional step 1382, if the time shift is positive, the method follows the Positive branch fromdecisional step 1382 to step 1392. Atstep 1392, the rangingreceiver 14 adds (1−FP[TS])*SS(v) to OS(m),(v+IP[TS]). Atstep 1394, the rangingreceiver 14 adds FP[TS]*SS(v) to OS(m),(v+IP[TS]+1). Atstep 1396, the rangingreceiver 14 increments v. - At
decisional step 1398, a determination is made regarding whether or not v is greater than K. If v is not greater than K, the method follows the No branch fromdecisional step 1398 and returns to step 1392. However, if v is greater than K, pseudorange peaks may be evaluated and the method follows the Yes branch fromdecisional step 1398 and returns to step 1350 in FIG. 13A. - FIG. 14 is a flow diagram illustrating a method for determining geolocation in the ranging
receiver 14 with matching assistance in accordance with one embodiment of the present invention. The method begins atstep 1400 where the rangingreceiver 14 waits in a low-power standby mode for a trigger to start the pseudorange estimating process. The trigger may comprise a request generated by thewireless device 16 automatically, a request generated by a user of thewireless device 16 such as by pushing abutton 30 on the rangingreceiver 14, a request from an external source such as the Internet, ageolocation processor 24 or other suitable external source, or any other suitable trigger. - Once the trigger is received, the location circuitry of the ranging
receiver 14 is turned on atstep 1402. Thus, for example, thepower management circuitry 230 may provide full power to each of thecomponents - At
step 1404, the real-time clock 232 for the rangingreceiver 14 is calibrated, or synchronized, to a remote clock across the wireless link or based on TOD information in the positioning signals. Once calibrated, the real-time clock 232 keeps track of real time so that the timing of events in the rangingreceiver 14 can be accurately tracked. - At
step 1406, the rangingreceiver 14 clears any prior signal samples in thesignal sample memory 216. Atstep 1408, the rangingreceiver 14 begins to collect samples for carrier detection by direct CFO extraction from the signals received from thesatellites 12. Atstep 1410, the CFOs are directly extracted from the samples, as described in more detail above in connection with FIGS. 6A and 6B. - At
decisional step 1412, a determination is made regarding whether at least a specified number of significant carriers and their CFOs have been found. According to one embodiment, the specified number is four. However, it will be understood that the specified number may comprise any suitable number. If the specified number of significant carriers has not been found, the method follows the No branch fromdecisional step 1412 todecisional step 1414. - At
decisional step 1414, a determination is made regarding whether a maximum number of collected CFO extraction samples has been exceeded. According to one embodiment, the maximum number of collected samples comprises the number of samples that may be collected in approximately one second. Thus, the maximum number of collected samples may be based on the sampling rate. However, it will be understood that the maximum number of collected samples may be any suitable number. - If the maximum number of collected CFO extraction samples has been exceeded, this indicates that the signals being received at the ranging
receiver 14 are too weak to be used. In this situation, the method follows the Yes branch fromdecisional step 1414 and comes to an end. However, if the maximum number of collected CFO extraction samples has not been exceeded, the method follows the No branch fromdecisional step 1414 and returns to step 1408 for the collection of more signal samples for CFO extraction. - Returning to
decisional step 1412, if the specified number of significant carriers has been found, the method follows the Yes branch fromdecisional step 1412 to step 1416. Atstep 1416, the rangingreceiver 14 sends CFO results to thegeolocation processor 24 through theservice center 18. According to one embodiment, the CFO results comprise the CFO estimates, the real time for the CFO estimate measurements and/or other suitable data related to the CFO estimates. Atstep 1418, the rangingreceiver 14 receives satellite information from thegeolocation processor 24. The satellite information may comprise satellite IDs, the most recent satellite message data fragments, and bit transition information for each of thesatellites 12 identified by thegeolocation processor 24 based on the CFO results and/or any other suitable information. - At
step 1420, the rangingreceiver 14 associates the CFOs with theirrespective satellites 12 based on the satellite information received from thegeolocation processor 24. Atstep 1422, the rangingreceiver 14 begins to collect samples for pseudorange estimation from the signals received from thesatellites 12. Atstep 1424, the rangingreceiver 14 begins to process the pseudorange samples by compensating the samples for the CFOs. - At
step 1426, the rangingreceiver 14 aligns satellite message data fragments with the pseudorange samples and removes the message data modulation from the samples by multiplying out the biphase message data modulation, as described in more detail above in connection with FIGS. 8, 9, 10, 11 and 12. - At
step 1428, the rangingreceiver 14 linearly combines, or stacks, the samples into a single stack result of one-epoch duration for eachsatellite 12. Atstep 1430, the rangingreceiver 14 correlates the single epoch-duration stack with the Gold codes for thesatellites 12. - According to one embodiment, the ranging
receiver 14 correlates the single epoch-duration stack result with the Gold codes by Fourier transform. For this embodiment, the Fourier transform of each CFO-compensated stack of samples is multiplied by the Fourier transform of the time-reversed series of the Gold code for a satellite 12 (sampled at the same rate as the pseudorange samples and stored inmemory 216 or 220). The product is then either compensated for time-dilation by complex vector multiplication in the frequency domain before it is inverse-Fourier transformed to yield the time-dilation compensated pseudorange time sequence, or the product is inverse-Fourier transformed to yield the un-compensated pseudorange time sequence, which is compensated for time dilation by element-shifting, as described in FIG. 13C, atstep 1432. - According to an alternative embodiment, the ranging
receiver 14 correlates the single epoch-duration stack result with the respective Gold code in hardware, such as a convolution processor using over 2,000 correlators per satellite signal. Such processors have as many correlators per satellite channel as there are samples per code epoch, with each correlator having the same number of stages as the number of samples per code epoch. In other words, each satellite channel uses N2 correlator stages, where N=number of samples per code epoch. (See, e.g., the paper titled “Indoor GPS Technology” by Frank van Diggelen & Charles Abrams of Global Locate, Inc., presented at the CTIA Wireless Agenda, Dallas, May 2001.) - At
decisional step 1434, a determination is made regarding whether a correlation peak exists in each of the pseudorange time sequences that is sufficiently above a noise-background threshold. According to one embodiment, a correlation peak is sufficiently above the noise-background threshold when the correlation peak is at least 6 dB above the noise-background threshold. However, it will be understood that a correlation peak may be sufficiently above the noise-background threshold when the correlation peak is any suitable level above the noise-background threshold. If such a peak does not exist for any of the pseudorange time sequences, the method follows the No branch fromdecisional step 1434 todecisional step 1436. - At
decisional step 1436, a determination is made regarding whether a maximum number of signal samples that have been combined for pseudorange estimation has been exceeded for the pseudorange time sequences without a correlation peak. According to one embodiment, the maximum number of signal samples that have been combined for pseudorange estimation comprises the number of samples that may be combined in approximately one second. Thus, the maximum number of signal samples that have been combined for pseudorange estimation may be based on the sampling rate. However, it will be understood that the maximum number of combined samples may be any suitable number. - If the maximum number of combined pseudorange samples has been exceeded, this indicates that the corresponding pseudorange signals being received are too weak at the ranging
receiver 14 to be used. In this situation, the method follows the Yes branch fromdecisional step 1436 to step 1437. Atstep 1437, the rangingreceiver 14 sets a flag to indicate that the signal is too weak and returns to step 1400 where the rangingreceiver 14 reverts to the low-power standby condition and waits for another trigger. However, if the maximum number of combined pseudorange samples has not been exceeded, the method follows the No branch fromdecisional step 1436 and returns to step 1422 to collect more signal samples for pseudorange estimation. - Returning to
decisional step 1434, if a correlation peak that is sufficiently above the noise-background threshold does exist for each of the pseudorange time sequences, the method follows the Yes branch fromdecisional step 1434 to step 1438. Atstep 1438, a multi-path correcting centroid calculation is applied to determine a substantially exact location of the center of each of the peaks based on techniques that compensate for the distortion of each peak's shape by the presence of multi-path signals occurring near the correlation peak. - At step1442, the ranging
receiver 14 sends pseudorange data for each of the carriers detected from the constellation ofsatellites 12 to thegeolocation processor 24 for calculation of the geolocation of the rangingreceiver 14. According to one embodiment, the pseudorange data comprises the estimate of the pseudorange, the measurement time, the satellite ID for eachsatellite 12 and/or any other suitable data. Atstep 1444, the rangingreceiver 14 or other requesting application receives the geolocation of the rangingreceiver 14 from thegeolocation processor 24, after which the method returns to step 1400 where the rangingreceiver 14 reverts to the low-power standby condition and waits for another trigger. - FIG. 15 is a flow diagram illustrating a method for determining geolocation in the
geolocation processor 24 by providing matching assistance in accordance with one embodiment of the present invention. The method begins atstep 1500 where thegeolocation processor 24 receives geolocation initiating information. For example, the geolocation initiating information may comprise protocol identifying information and version information for the rangingreceiver 14 provided by the rangingreceiver 14 in response to a trigger. However, it will be understood that the geolocation initiating information may comprise any suitable information related to the initiation of the geolocation process. According to one embodiment, the geolocation initiating information is received from the rangingreceiver 14 over the voice channel for thewireless device 16 by way of theservice center 18. - At
step 1502, thegeolocation processor 24 sends an acknowledgement of the receipt of the geolocation initiating information. For example, thegeolocation processor 24 may transmit a handshake code to the rangingreceiver 14 in order to establish communication and acknowledge compatibility. - At
step 1504, thegeolocation processor 24 receives a time calibration signal from the rangingreceiver 14. The time calibration signal may comprise a complete sequence of, for example, a maximal length pseudorandom noise sequence or a Barker code modulated on an audio carrier tone. It will be understood, however, that the time calibration signal may comprise any other suitable timing signal. - At
step 1506, thegeolocation processor 24 sends a time calibration response based on the time calibration signal. According to one embodiment, thegeolocation processor 24 sends the time calibration response a predefined period of time after receiving the time calibration signal. For example, the pre-defined period of time may comprise 10 milliseconds or other suitable period of time. The time calibration response may comprise a different maximal length pseudorandom noise sequence modulated on the same carrier tone as the time calibration signal, followed by a message indicating a real time associated with the response. The real time information may be used by the rangingreceiver 14 in order to calibrate the real-time clock 232. - At
step 1508, thegeolocation processor 24 receives CFO estimates from the rangingreceiver 14. Atstep 1510, thegeolocation processor 24 matches the differences in the CFO estimates from the rangingreceiver 14 to differences in Doppler frequency shift measurements for signals received by thereceivers 48 and/or 60 or based on geometric prediction from the satellite constellation's current geometric data. - At
step 1512, any duplicate matches found instep 1510 are eliminated in order to identify thesatellites 12. According to one embodiment, duplicate matches are eliminated by a least-squares regression method. Atstep 1514, thegeolocation processor 24 sends satellite information to the rangingreceiver 14. The satellite information may comprise the satellite IDs, the satellite message data patterns, the timing information for bit transitions in the satellite message data patterns and/or any other suitable information. - At
step 1516, thegeolocation processor 24 receives pseudorange data, which is generated based on the satellite information, from the rangingreceiver 14. The pseudorange data may comprise an estimate of the pseudorange, a measurement time, a satellite ID for eachsatellite 12 and/or any other suitable data. - At
step 1518, thegeolocation processor 24 determines the geolocation of the rangingreceiver 14 based on the pseudorange data, the current ephemeris data and/or any other suitable information. Atstep 1520, thegeolocation processor 24 sends the geolocation of the rangingreceiver 14 to the requesting application, at which point the method comes to an end. The geolocation may be sent in-band over the voice channel of thewireless device 16, over thedata network 66, or by any other suitable means. - Although the present invention has been described with several embodiments, various changes and modifications may be suggested to one skilled in the art. It is intended that the present invention encompass such changes and modifications as fall within the scope of the appended claims.
Claims (58)
1. A method for processing positioning signals in a ranging receiver in a geometric mode, comprising:
receiving timing information from a first set of satellites in a satellite constellation at the ranging receiver, the satellite constellation comprising a plurality of satellites;
determining a time of day based on the received timing information;
determining approximate location data for the ranging receiver;
determining a frequency bias for the ranging receiver;
receiving ephemeris data from a second set of satellites in the satellite constellation;
receiving superframe data for the satellite constellation from a third set of satellites in the satellite constellation at the ranging receiver; and
determining a pseudorange estimate in the ranging receiver based on the time of day, the approximate location data, the frequency bias, the ephemeris data, and the superframe data.
2. The method of claim 1 , at least a portion of at least two of the first, second and third sets of satellites comprising the same satellites.
3. The method of claim 1 , determining a time of day based on the received timing information comprising determining the time of day to within approximately one millisecond of a time of day for the satellite constellation.
4. The method of claim 1 , the approximate location data comprising an estimate of a current location of the ranging receiver to within approximately one mile.
5. The method of claim 1 , the approximate location data comprising a location estimate previously determined at the ranging receiver.
6. The method of claim 1 , the approximate location data comprising general location information provided by a source external to the ranging receiver.
7. The method of claim 6 , the general location information comprising a cell site identification.
8. The method of claim 1 , the approximate location data comprising an estimate provided by a user of a wireless device comprising the ranging receiver.
9. The method of claim 1 , determining a pseudorange estimate in the ranging receiver based on the time of day, the approximate location data, the frequency bias, the ephemeris data, and the superframe data comprising determining the pseudorange estimate based on ephemeris data received within approximately 24 hours and superframe data received within approximately 96 hours of the determination of the pseudorange estimate.
10. A system for processing positioning signals in a ranging receiver in a geometric mode, comprising:
a computer-processable medium; and
logic stored on the computer-processable medium, the logic operable to receive timing information from a first set of satellites in a satellite constellation at the ranging receiver, the satellite constellation comprising a plurality of satellites, to determine a time of day based on the received timing information, to determine approximate location data for the ranging receiver, to determine a frequency bias for the ranging receiver, to receive ephemeris data from a second set of satellites in the satellite constellation, to receive superframe data for the satellite constellation from a third set of satellites in the satellite constellation at the ranging receiver, and to determine a pseudorange estimate in the ranging receiver based on the time of day, the approximate location data, the frequency bias, the ephemeris data, and the superframe data.
11. The system of claim 10 , at least a portion of at least two of the first, second and third sets of satellites comprising the same satellites.
12. The system of claim 10 , the logic operable to determine the time of day based on the received timing information to within approximately one millisecond of a time of day for the satellite constellation.
13. The system of claim 10 , the approximate location data comprising an estimate of a current location of the ranging receiver to within approximately one mile.
14. The system of claim 10 , the approximate location data comprising a location estimate previously determined at the ranging receiver.
15. The system of claim 10 , the approximate location data comprising general location information provided by a source external to the ranging receiver.
16. The system of claim 15 , the general location information comprising a cell site identification.
17. The system of claim 10 , the approximate location data comprising an estimate provided by a user of a wireless device comprising the ranging receiver.
18. The system of claim 10 , the logic operable to determine the pseudorange estimate in the ranging receiver based on ephemeris data received within approximately 24 hours and superframe data received within approximately 96 hours of the determination of the pseudorange estimate.
19. A system for processing positioning signals in a ranging receiver in a geometric mode, comprising:
means for receiving timing information from a first set of satellites in a satellite constellation at the ranging receiver, the satellite constellation comprising a plurality of satellites;
means for determining a time of day based on the received timing information;
means for determining approximate location data for the ranging receiver;
means for determining a frequency bias for the ranging receiver;
means for receiving ephemeris data from a second set of satellites in the satellite constellation;
means for receiving superframe data for the satellite constellation from a third set of satellites in the satellite constellation at the ranging receiver; and
means for determining a pseudorange estimate in the ranging receiver based on the time of day, the approximate location data, the frequency bias, the ephemeris data, and the superframe data.
20. The system of claim 19 , at least a portion of at least two of the first, second and third sets of satellites comprising the same satellites.
21. The system of claim 19 , the means for determining a time of day based on the received timing information comprising means for determining the time of day to within approximately one millisecond of a time of day for the satellite constellation.
22. The system of claim 19 , the approximate location data comprising an estimate of a current location of the ranging receiver to within approximately one mile.
23. The system of claim 19 , the approximate location data comprising a location estimate previously determined at the ranging receiver.
24. The system of claim 19 , the approximate location data comprising general location information provided by a source external to the ranging receiver.
25. The system of claim 24 , the general location information comprising a cell site identification.
26. The system of claim 19 , the approximate location data comprising an estimate provided by a user of a wireless device comprising the ranging receiver.
27. The system of claim 19 , the means for determining a pseudorange estimate in the ranging receiver based on the time of day, the approximate location data, the frequency bias, the ephemeris data, and the superframe data comprising means for determining the pseudorange estimate based on ephemeris data received within approximately 24 hours and superframe data received within approximately 96 hours of the determination of the pseudorange estimate.
28. A method for processing positioning signals in a ranging receiver in a geometric mode, comprising:
determining a Doppler frequency shift, a Doppler rate and a satellite identifier for each of a specified set of satellites, the satellites operable to transmit positioning signals, the positioning signals comprising, for each satellite, a Gold code and message data bits;
for each satellite, predicting message data bits to be transmitted by the satellite;
determining a carrier frequency offset (CFO) and a CFO rate for each satellite;
assigning the Doppler rate to the corresponding CFO rate for each satellite;
collecting a signal sample for processing;
complex multiplying the sample by each of a set of CFO compensation terms to generate a first result for each of the CFO compensation terms;
scalar multiplying each of the first results by a corresponding data bit polarity to generate a second result for each of the first results;
correlating each of a plurality of pseudorange stacks with the Gold code for a corresponding one of the satellites, the pseudorange stacks comprising the second results;
compensating each pseudorange stack for time dilation;
adding each pseudorange stack to an extended output stack;
determining whether a minimum number of adequate peaks exists in the extended output stack; and
determining a pseudorange based on the adequate peaks when the minimum number of adequate peaks exists in the extended output stack.
29. The method of claim 28 , the specified set of satellites determined based on geometric dilution of precision criteria.
30. The method of claim 28 , the specified set of satellites determined based on elevation angle criteria.
31. The method of claim 28 , determining a CFO comprising adding a frequency bias for the ranging receiver to the determined Doppler frequency shift.
32. The method of claim 28 , compensating for time dilation comprising correlation peak shifting.
33. The method of claim 28 , compensating for time dilation comprising vector rotation in a frequency domain during correlation by Fast Fourier Transform means.
34. The method of claim 28 , compensating for time dilation comprising sample shifting.
35. The method of claim 28 , determining a pseudorange comprising determining a pseudorange from stacked compensated signal samples accumulated over an interval in the range of approximately 1 to 30 seconds, the positioning signals comprising a minimum carrier-to-noise density ratio of approximately 5 dB to 10 dB.
36. A method for removing message data modulation from positioning signals received at a ranging receiver, the positioning signals comprising pseudorange samples, the method comprising:
obtaining a satellite identifier, a Doppler frequency shift, and a Doppler rate for each of a plurality of satellites;
determining a message bit transition offset for each satellite;
determining a specified number of message data bits for each satellite;
compensating each of the pseudorange samples for carrier frequency offset; and
multiplying each of the compensated pseudorange samples by a corresponding stored message data bit value.
37. The method of claim 36 , obtaining a satellite identifier, a Doppler frequency shift, and a Doppler rate for each of a plurality of satellites comprising obtaining a satellite identifier, a Doppler frequency shift, and a Doppler rate for each of a plurality of satellites based on geometric prediction.
38. The method of claim 36 , each message bit transition offset comprising a transit time for the positioning signals received from the corresponding satellite.
39. The method of claim 36 , the specified number of message data bits determined by dividing a maximum number of samples by a number of samples per message data bit.
40. A system for removing message data modulation from positioning signals received at a ranging receiver, the positioning signals comprising pseudorange samples, the system comprising:
a computer-processable medium; and
logic stored on the computer-processable medium, the logic operable to obtain a satellite identifier, a Doppler frequency shift, and a Doppler rate for each of a plurality of satellites, to determine a message bit transition offset for each satellite, to determine a specified number of message data bits for each satellite, to compensate each of the pseudorange samples for carrier frequency offset, and to multiply each of the compensated pseudorange samples by a corresponding stored message data bit.
41. The system of claim 40 , the logic operable to obtain a satellite identifier, a Doppler frequency shift, and a Doppler rate for each of a plurality of satellites based on geometric prediction.
42. The system of claim 40 , each message bit transition offset comprising a transit time for the positioning signals received from the corresponding satellite.
43. The system of claim 40 , the logic further operable to determine the specified number of message data bits by dividing a maximum number of samples by a number of samples per message data bit.
44. A system for removing message data modulation from positioning signals received at a ranging receiver, the positioning signals comprising pseudorange samples, the system comprising:
means for obtaining a satellite identifier, a Doppler frequency shift, and a Doppler rate for each of a plurality of satellites;
means for determining a message bit transition offset for each satellite;
means for determining a specified number of message data bits for each satellite;
means for compensating each of the pseudorange samples for carrier frequency offset; and
means for multiplying each of the compensated pseudorange samples by a corresponding stored message data bit.
45. The system of claim 44 , the means for obtaining a satellite identifier, a Doppler frequency shift, and a Doppler rate for each of a plurality of satellites comprising means for obtaining a satellite identifier, a Doppler frequency shift, and a Doppler rate for each of a plurality of satellites based on geometric prediction.
46. The system of claim 44 , each message bit transition offset comprising a transit time for the positioning signals received from the corresponding satellite.
47. The system of claim 44 , the specified number of message data bits determined by dividing a maximum number of samples by a number of samples per message data bit.
48. A method for processing positioning signals in a ranging receiver in a geometric mode, the positioning signals received from a plurality of satellites in a satellite constellation, the method comprising:
receiving timing information from one of the satellites at the ranging receiver;
determining a time of day based on the received timing information;
determining approximate location data for the ranging receiver;
determining a frequency bias for the ranging receiver;
receiving ephemeris data;
receiving superframe data for the satellite constellation at the ranging receiver; and
determining a pseudorange estimate in the ranging receiver based on the time of day, the approximate location data, the frequency bias, the ephemeris data, and the superframe data.
49. The method of claim 48 , receiving ephemeris data comprising receiving ephemeris data from a satellite information server.
50. The method of claim 48 , receiving superframe data comprising receiving superframe data from a satellite information server.
51. The method of claim 48 , the approximate location data comprising an estimate of a current location of the ranging receiver to within approximately one mile.
52. The method of claim 48 , the approximate location data comprising a location estimate previously determined at the ranging receiver.
53. The method of claim 48 , the approximate location data comprising general location information provided by a source external to the ranging receiver.
54. The method of claim 53 , the general location information comprising a cell site identification.
55. A method for compensating for time dilation of positioning signals received at a ranging receiver, the positioning signals comprising pseudorange samples in a single epoch duration sub-stack of samples, during accumulation of the sub-stack into an output-stack, the method comprising:
determining a movement amount for each sub-stack, the movement amount proportional to a Doppler frequency shift for the sub-stack and comprising a whole number of sample positions and a first fractional part of a sample position for the sample;
multiplying the sample value by the first fractional part to generate a first sample fragment;
subtracting the first fractional part from 1 to determine a second fractional part;
multiplying the sample value by the second fractional part to generate a second sample fragment;
adding the fragments of the sample being accumulated to each of two output-stack sample positions overlapped by the corresponding moved sample position based on the movement amount; and
adding the fragments of the sample being accumulated to each of two output-stack sample positions overlapped by the corresponding moved sample positions at the other end of the output-stack, when the movement amount implies a destination beyond the ends of the output-stack.
56. A method for processing positioning signals in a ranging receiver in a geometric mode, comprising:
receiving timing information from a first set of satellites in a satellite constellation at the ranging receiver, the satellite constellation comprising a plurality of satellites;
determining a time of day based on the received timing information to within approximately one millisecond of a time of day for the satellite constellation;
determining approximate location data for the ranging receiver, the approximate location data comprising an estimate of a current location of the ranging receiver to within approximately one mile;
determining a frequency bias for the ranging receiver;
receiving ephemeris data from a second set of satellites in the satellite constellation;
receiving superframe data for the satellite constellation from a third set of satellites in the satellite constellation at the ranging receiver, at least a portion of at least two of the first, second and third sets of satellites comprising the same satellites; and
determining a pseudorange estimate in the ranging receiver based on the time of day, the approximate location data, the frequency bias, and ephemeris data received within approximately 24 hours and superframe data received within approximately 96 hours of the determination of the pseudorange estimate.
57. A method for processing positioning signals in a ranging receiver in a geometric mode, comprising:
determining a Doppler frequency shift, a Doppler rate and a satellite identifier for each of a specified set of satellites, the satellites operable to transmit positioning signals, the positioning signals comprising, for each satellite, a Gold code and message data bits;
for each satellite, predicting message data bits to be transmitted by the satellite;
determining a carrier frequency offset (CFO) and a CFO rate for each satellite by adding a frequency bias for the ranging receiver to the determined Doppler frequency shift;
assigning the Doppler rate to the corresponding CFO rate for each satellite;
collecting a signal sample for processing;
complex multiplying the sample by each of a set of CFO compensation terms to generate a first result for each of the CFO compensation terms;
scalar multiplying each of the first results by a corresponding data bit polarity to generate a second result for each of the first results;
correlating each of a plurality of pseudorange stacks with the Gold code for a corresponding one of the satellites, the pseudorange stacks comprising the second results;
compensating each pseudorange stack for time dilation;
adding each pseudorange stack to an extended output stack;
determining whether a minimum number of adequate peaks exists in the extended output stack; and
determining a pseudorange based on the adequate peaks when the minimum number of adequate peaks exists in the extended output stack, the pseudorange determined from stacked compensated signal samples accumulated over an interval in the range of approximately 1 to 30 seconds, the positioning signals comprising a minimum carrier-to-noise density ratio of approximately 5 dB to 10 dB.
58. A method for removing message data modulation from positioning signals received at a ranging receiver, the positioning signals comprising pseudorange samples, the method comprising:
obtaining a satellite identifier, a Doppler frequency shift, and a Doppler rate based on geometric prediction for each of a plurality of satellites;
determining a message bit transition offset for each satellite, each message bit transition offset comprising a transit time for the positioning signals received from the corresponding satellite;
determining a specified number of message data bits for-each satellite, the specified number of message data bits determined by dividing a maximum number of samples by a number of samples per message data bit;
compensating each of the pseudorange samples for carrier frequency offset; and
multiplying each of the compensated pseudorange samples by a corresponding stored message data bit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/338,094 US6774841B2 (en) | 2001-07-18 | 2003-01-07 | Method and system for processing positioning signals in a geometric mode |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/908,403 US6515620B1 (en) | 2001-07-18 | 2001-07-18 | Method and system for processing positioning signals in a geometric mode |
US10/338,094 US6774841B2 (en) | 2001-07-18 | 2003-01-07 | Method and system for processing positioning signals in a geometric mode |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/908,403 Division US6515620B1 (en) | 2001-07-18 | 2001-07-18 | Method and system for processing positioning signals in a geometric mode |
Publications (2)
Publication Number | Publication Date |
---|---|
US20030137450A1 true US20030137450A1 (en) | 2003-07-24 |
US6774841B2 US6774841B2 (en) | 2004-08-10 |
Family
ID=25425745
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/908,403 Expired - Lifetime US6515620B1 (en) | 2001-07-18 | 2001-07-18 | Method and system for processing positioning signals in a geometric mode |
US10/338,094 Expired - Lifetime US6774841B2 (en) | 2001-07-18 | 2003-01-07 | Method and system for processing positioning signals in a geometric mode |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/908,403 Expired - Lifetime US6515620B1 (en) | 2001-07-18 | 2001-07-18 | Method and system for processing positioning signals in a geometric mode |
Country Status (1)
Country | Link |
---|---|
US (2) | US6515620B1 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050078032A1 (en) * | 2002-12-19 | 2005-04-14 | Gilkes Alan Martin | System and method for providing time to a satellite positioning system (SPS) receiver from a networked time server |
US20050113124A1 (en) * | 2003-11-26 | 2005-05-26 | Jari Syrjarinne | Method and apparatus for lowering power use by a ranging receiver |
EP1538454A1 (en) * | 2003-12-01 | 2005-06-08 | Nobuhiro Kishimoto | GPS position measuring method and GPS position measuring system |
WO2006048676A1 (en) * | 2004-11-05 | 2006-05-11 | University Of Bath | A method and apparatus for correlating data sequences |
US20070247358A1 (en) * | 2004-05-21 | 2007-10-25 | Kimmo Alanen | Gps Device |
US20070260144A1 (en) * | 2004-02-12 | 2007-11-08 | Neurosonix Ltd. | Acoustic Control of Emboli in Vivo |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7079584B2 (en) | 1998-08-10 | 2006-07-18 | Kamilo Feher | OFDM, CDMA, spread spectrum, TDMA, cross-correlated and filtered modulation |
US6470055B1 (en) * | 1998-08-10 | 2002-10-22 | Kamilo Feher | Spectrally efficient FQPSK, FGMSK, and FQAM for enhanced performance CDMA, TDMA, GSM, OFDN, and other systems |
US6411892B1 (en) * | 2000-07-13 | 2002-06-25 | Global Locate, Inc. | Method and apparatus for locating mobile receivers using a wide area reference network for propagating ephemeris |
US7970411B2 (en) | 2000-05-18 | 2011-06-28 | Sirf Technology, Inc. | Aided location communication system |
US8078189B2 (en) * | 2000-08-14 | 2011-12-13 | Sirf Technology, Inc. | System and method for providing location based services over a network |
US8116976B2 (en) | 2000-05-18 | 2012-02-14 | Csr Technology Inc. | Satellite based positioning method and system for coarse location positioning |
US7263440B2 (en) * | 2000-05-18 | 2007-08-28 | Sirf Technology, Inc. | Satellite based positioning method and system for coarse location positioning |
US7929928B2 (en) * | 2000-05-18 | 2011-04-19 | Sirf Technology Inc. | Frequency phase correction system |
US7949362B2 (en) * | 2000-05-18 | 2011-05-24 | Sirf Technology, Inc. | Satellite positioning aided communication system selection |
US20020123325A1 (en) * | 2001-03-01 | 2002-09-05 | Cooper Gerald M. | Method and apparatus for increasing the security of wireless data services |
US6628234B2 (en) * | 2001-07-18 | 2003-09-30 | Fast Location.Net, Llc | Method and system for processing positioning signals in a stand-alone mode |
US6882309B2 (en) * | 2001-07-18 | 2005-04-19 | Fast Location. Net, Llc | Method and system for processing positioning signals based on predetermined message data segment |
US9052374B2 (en) | 2001-07-18 | 2015-06-09 | Fast Location.Net, Llc | Method and system for processing positioning signals based on predetermined message data segment |
US6515620B1 (en) | 2001-07-18 | 2003-02-04 | Fast Location.Net, Llc | Method and system for processing positioning signals in a geometric mode |
US6985811B2 (en) * | 2001-10-30 | 2006-01-10 | Sirf Technology, Inc. | Method and apparatus for real time clock (RTC) brownout detection |
US6684157B2 (en) * | 2001-12-06 | 2004-01-27 | Yazaki North America, Inc. | Method and system for interfacing a global positioning system, other navigational equipment and wireless networks with a digital data network |
WO2003100455A1 (en) * | 2002-05-24 | 2003-12-04 | Fast Location.Net, Llc | Method and system for processing positoning signals based on predetermined message data segment |
KR100532279B1 (en) * | 2003-08-14 | 2005-11-29 | 삼성전자주식회사 | System and method for assigning pseudo random noise code to pseudo satellite |
US7050903B1 (en) * | 2003-09-23 | 2006-05-23 | Navteq North America, Llc | Method and system for developing traffic messages |
JP4315832B2 (en) * | 2004-02-17 | 2009-08-19 | 三菱電機株式会社 | Thermal infrared sensor element and thermal infrared sensor array |
WO2005086933A2 (en) * | 2004-03-09 | 2005-09-22 | Procon, Inc. | Combination service request and satellite radio system |
US7359449B2 (en) * | 2004-10-05 | 2008-04-15 | Kamilo Feher | Data communication for wired and wireless communication |
US7421004B2 (en) * | 2004-10-05 | 2008-09-02 | Kamilo Feher | Broadband, ultra wideband and ultra narrowband reconfigurable interoperable systems |
US7450064B2 (en) * | 2005-03-22 | 2008-11-11 | Qualcomm, Incorporated | Methods and systems for deriving seed position of a subscriber station in support of unassisted GPS-type position determination in a wireless communication system |
US7647171B2 (en) * | 2005-06-29 | 2010-01-12 | Microsoft Corporation | Learning, storing, analyzing, and reasoning about the loss of location-identifying signals |
US7925995B2 (en) * | 2005-06-30 | 2011-04-12 | Microsoft Corporation | Integration of location logs, GPS signals, and spatial resources for identifying user activities, goals, and context |
US20070032245A1 (en) * | 2005-08-05 | 2007-02-08 | Alapuranen Pertti O | Intelligent transportation system and method |
US7929908B2 (en) * | 2006-05-24 | 2011-04-19 | The Boeing Company | Method and system for controlling a network for power beam transmission |
US7545317B2 (en) * | 2006-11-10 | 2009-06-09 | Sirf Technology, Inc. | Method and apparatus for navigation data downloads from weak signals |
US8094758B2 (en) * | 2006-12-18 | 2012-01-10 | Sirf Technology Holdings, Inc. | Ephemeris download from weak signals |
US7903028B2 (en) * | 2006-12-18 | 2011-03-08 | Sirf Technology Holdings, Inc. | Ephemeris download from weak signals |
JP4985310B2 (en) * | 2007-10-23 | 2012-07-25 | セイコーエプソン株式会社 | POSITIONING METHOD, PROGRAM, POSITIONING DEVICE, AND ELECTRONIC DEVICE |
US8700049B2 (en) * | 2008-04-18 | 2014-04-15 | Qualcomm Incorporated | System and/or method for reducing initial position uncertainty in SPS operation |
EP2481058B1 (en) * | 2009-09-25 | 2020-05-20 | MHE Technologies, Inc. | Cask handling system and method |
WO2011057000A1 (en) * | 2009-11-04 | 2011-05-12 | Maxlinear, Inc. | Gps baseband controller architecture |
WO2013112428A1 (en) | 2012-01-23 | 2013-08-01 | Fast Location.Net, Llc | Method and system for processing positioning signals based on predetermined message data segment |
DE102013205486A1 (en) * | 2013-03-27 | 2014-10-02 | Deere & Company | Arrangement and method for position detection with a hand-held device |
KR101827706B1 (en) * | 2016-09-20 | 2018-02-12 | 현대자동차주식회사 | Vehicle and control method for the vehicle |
US10444322B2 (en) * | 2017-08-09 | 2019-10-15 | Swfl, Inc. | Systems and methods for coherence based positioning |
CN112904386A (en) * | 2021-01-15 | 2021-06-04 | 武汉梦芯科技有限公司 | Method and system for compensating LoRa Doppler frequency offset based on GNSS |
Family Cites Families (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4241411A (en) | 1978-11-16 | 1980-12-23 | Probe Systems, Incorporated | FFT Parallel processor having mutually connected, multiple identical cards |
US5119104A (en) | 1990-05-04 | 1992-06-02 | Heller Alan C | Location system adapted for use in multipath environments |
US5043736B1 (en) | 1990-07-27 | 1994-09-06 | Cae Link Corp | Cellular position location system |
GB9115350D0 (en) | 1991-07-16 | 1991-08-28 | Navstar Ltd | A radio receiver |
US5271034A (en) | 1991-08-26 | 1993-12-14 | Avion Systems, Inc. | System and method for receiving and decoding global positioning satellite signals |
JP3210060B2 (en) | 1992-03-18 | 2001-09-17 | パイオニア株式会社 | Setting method of search center frequency in GPS receiver |
US5355222A (en) | 1992-05-15 | 1994-10-11 | Precision Tracking Fm, Inc. | Optical receiver for area location system |
US5276496A (en) | 1992-10-30 | 1994-01-04 | Precision Tracking Fm, Inc. | Optical receiver for area location system |
US5457729A (en) | 1993-03-15 | 1995-10-10 | Symmetricom, Inc. | Communication network signalling system link monitor and test unit |
US5387993A (en) | 1993-06-25 | 1995-02-07 | Precision Tracking Fm, Inc. | Method for receiving and transmitting optical data and control information to and from remotely located receivers and transmitters in an optical locator system |
US5394155A (en) | 1993-08-16 | 1995-02-28 | Unisys Corporation | Apparatus and method for estimating weather spectral moments |
US5388147A (en) | 1993-08-30 | 1995-02-07 | At&T Corp. | Cellular telecommunication switching system for providing public emergency call location information |
US5479482A (en) | 1993-08-30 | 1995-12-26 | At&T Corp. | Cellular terminal for providing public emergency call location information |
US5548637A (en) | 1993-09-09 | 1996-08-20 | Precision Tracking Fm, Inc. | Method and apparatus for locating personnel and objects in response to telephone inquiries |
US5929752A (en) | 1993-11-24 | 1999-07-27 | Trimble Navigation Limited | Clandestine missing vehicle location reporting using cellular channels |
US5477458A (en) | 1994-01-03 | 1995-12-19 | Trimble Navigation Limited | Network for carrier phase differential GPS corrections |
US5555286A (en) | 1994-01-31 | 1996-09-10 | Tendler Technologies, Inc. | Cellular phone based automatic emergency vessel/vehicle location system |
GB2292257B (en) | 1994-06-22 | 1999-04-07 | Sidney John Branson | An antenna |
JP3378360B2 (en) | 1994-06-30 | 2003-02-17 | 松下電器産業株式会社 | Speed sensor coefficient calculation device |
US5572195A (en) | 1994-08-01 | 1996-11-05 | Precision Tracking Fm, Inc. | Sensory and control system for local area networks |
GB9417450D0 (en) | 1994-08-25 | 1994-10-19 | Symmetricom Inc | An antenna |
US5646632A (en) | 1994-11-14 | 1997-07-08 | Lucent Technologies Inc. | Method and apparatus for a portable communication device to identify its own location |
US5913170A (en) | 1994-11-16 | 1999-06-15 | Highwaymaster Communications, Inc. | Locating system and method using a mobile communications network |
US5525999A (en) | 1994-11-28 | 1996-06-11 | Motorola, Inc. | Multi-receiver master control station for differential GPS and method |
US6334061B1 (en) | 1994-12-21 | 2001-12-25 | Itt Manufacturing Enterprises, Inc. | Integrated vehicle applique unit for the position enhanced cellular system |
US6072396A (en) | 1994-12-30 | 2000-06-06 | Advanced Business Sciences | Apparatus and method for continuous electronic monitoring and tracking of individuals |
US5734966A (en) | 1995-01-20 | 1998-03-31 | Diablo Research Corporation | Wireless communication system for adapting to frequency drift |
US5659596A (en) | 1995-04-12 | 1997-08-19 | International Business Machines Corporation | System for location of communication end users |
US5638379A (en) | 1995-06-06 | 1997-06-10 | Symmetricom, Inc. | Encoding system for distribution of synchronization |
US5828670A (en) | 1995-06-06 | 1998-10-27 | Symmetricom, Inc. | Distribution of synchronization in a synchronous optical environment |
US5646519A (en) | 1995-06-07 | 1997-07-08 | Symmetricom, Inc. | Digital phase detector employing a digitally controllable delay line |
US5873048A (en) | 1995-07-27 | 1999-02-16 | Lucent Technologies Inc. | Locator and method for a wireless communication system |
US5654717A (en) | 1995-08-03 | 1997-08-05 | Trimble Navigation, Ltd. | GPS/radio antenna combination |
US5587716A (en) | 1995-09-29 | 1996-12-24 | Trimble Navigation, Ltd. | Gap coverage for GPS signals |
US5831574A (en) | 1996-03-08 | 1998-11-03 | Snaptrack, Inc. | Method and apparatus for determining the location of an object which may have an obstructed view of the sky |
AU7397596A (en) | 1995-10-09 | 1997-04-30 | Precision Tracking, Inc. | A gps receiver and method for processing gps signals |
US6131067A (en) | 1995-10-09 | 2000-10-10 | Snaptrack, Inc. | Client-server based remote locator device |
AU7397396A (en) | 1995-10-09 | 1997-04-30 | Precision Tracking, Inc. | Combined gps positioning system and communications system utilizing shared circuitry |
US5663734A (en) | 1995-10-09 | 1997-09-02 | Precision Tracking, Inc. | GPS receiver and method for processing GPS signals |
US6002363A (en) | 1996-03-08 | 1999-12-14 | Snaptrack, Inc. | Combined GPS positioning system and communications system utilizing shared circuitry |
WO1997014055A1 (en) | 1995-10-09 | 1997-04-17 | Snaptrack, Inc. | Method and apparatus for determining the location of an object which may have an obstructed view of the sky |
US5841396A (en) | 1996-03-08 | 1998-11-24 | Snaptrack, Inc. | GPS receiver utilizing a communication link |
US5884214A (en) | 1996-09-06 | 1999-03-16 | Snaptrack, Inc. | GPS receiver and method for processing GPS signals |
US5825327A (en) | 1996-03-08 | 1998-10-20 | Snaptrack, Inc. | GPS receivers and garments containing GPS receivers and methods for using these GPS receivers |
US6127945A (en) | 1995-10-18 | 2000-10-03 | Trimble Navigation Limited | Mobile personal navigator |
GB2306827B (en) | 1995-10-24 | 2000-05-31 | Int Mobile Satellite Org | Satellite radiodetermination |
US5926745A (en) | 1995-11-30 | 1999-07-20 | Amsc Subsidiary Corporation | Network operations center for mobile earth terminal satellite communications system |
GB9524754D0 (en) | 1995-12-04 | 1996-04-24 | Symmetricom Inc | Mobile position determination |
US5740538A (en) | 1996-01-05 | 1998-04-14 | Lucent Technologies, Inc. | System and method for identifying the location of a wireless terminal |
GB9601250D0 (en) | 1996-01-23 | 1996-03-27 | Symmetricom Inc | An antenna |
GB9603914D0 (en) | 1996-02-23 | 1996-04-24 | Symmetricom Inc | An antenna |
US5945944A (en) | 1996-03-08 | 1999-08-31 | Snaptrack, Inc. | Method and apparatus for determining time for GPS receivers |
US5689238A (en) | 1996-03-08 | 1997-11-18 | Lucent Technologies, Inc. | Object locator system and methods therefor |
US5901171A (en) | 1996-03-15 | 1999-05-04 | Sirf Technology, Inc. | Triple multiplexing spread spectrum receiver |
US5897605A (en) | 1996-03-15 | 1999-04-27 | Sirf Technology, Inc. | Spread spectrum receiver with fast signal reacquisition |
US6041280A (en) | 1996-03-15 | 2000-03-21 | Sirf Technology, Inc. | GPS car navigation system |
GB9606593D0 (en) | 1996-03-29 | 1996-06-05 | Symmetricom Inc | An antenna system |
US5751777A (en) | 1996-05-03 | 1998-05-12 | Symmetricom, Inc. | Multiple input frequency locked loop |
US5689271A (en) | 1996-05-03 | 1997-11-18 | Trimble Navigation Limited | Method and apparatus for civilian receiver operation with P(Y) code in satellite positioning system receiver |
US5764704A (en) | 1996-06-17 | 1998-06-09 | Symmetricom, Inc. | DSP implementation of a cellular base station receiver |
US6151353A (en) | 1996-07-12 | 2000-11-21 | General Electric Company | Pre-acquisition frequency offset removal in a GPS receiver |
US6327534B1 (en) | 1996-09-30 | 2001-12-04 | Qualcomm Incorporated | Unambiguous position determination using two low-earth orbit satellites |
US5890068A (en) | 1996-10-03 | 1999-03-30 | Cell-Loc Inc. | Wireless location system |
US5918181A (en) | 1996-10-15 | 1999-06-29 | Tatung Telecom Corporation | Method and apparatus for tracking location of wireless terminals in a nanocellular digital cordless terminal network coupled to a local exchange |
US6215442B1 (en) | 1997-02-03 | 2001-04-10 | Snaptrack, Inc. | Method and apparatus for determining time in a satellite positioning system |
US5812087A (en) | 1997-02-03 | 1998-09-22 | Snaptrack, Inc. | Method and apparatus for satellite positioning system based time measurement |
GB2321833B (en) | 1997-02-03 | 2001-08-08 | Symmetricom Inc | Phase detector |
US6215441B1 (en) | 1997-04-15 | 2001-04-10 | Snaptrack, Inc. | Satellite positioning reference system and method |
CA2260762C (en) | 1997-05-19 | 2002-08-06 | Integrated Data Communications, Inc. | System and method to communicate time stamped, 3-axis geo-position data within telecommunication networks |
US5912644A (en) | 1997-08-05 | 1999-06-15 | Wang; James J. M. | Spread spectrum position determination, ranging and communication system |
US5917383A (en) | 1997-11-26 | 1999-06-29 | Sirf Technology, Inc. | Compact voltage controlled ring oscillator with quadrature outputs |
US5949374A (en) | 1997-12-15 | 1999-09-07 | Trimble Navigation Limited | Two-channel fast-sequencing high-dynamics GPS navigation receiver |
US6014109A (en) | 1998-02-11 | 2000-01-11 | Trimble Navigation Limited | Offset-antenna total station |
US6044257A (en) | 1998-03-19 | 2000-03-28 | American Secure Care, Llc | Panic button phone |
US6226510B1 (en) | 1998-03-19 | 2001-05-01 | American Secure Care, Llc | Emergency phone for automatically summoning multiple emergency response services |
US5999124A (en) | 1998-04-22 | 1999-12-07 | Snaptrack, Inc, | Satellite positioning system augmentation with wireless communication signals |
AU4181199A (en) | 1998-04-28 | 1999-11-16 | Snaptrack, Inc. | Method and apparatus for providing location-based information via a computer network |
US6061018A (en) | 1998-05-05 | 2000-05-09 | Snaptrack, Inc. | Method and system for using altitude information in a satellite positioning system |
US6236354B1 (en) | 1998-07-02 | 2001-05-22 | Snaptrack, Inc. | Reducing satellite signal interference in a global positioning system receiver |
US6298229B1 (en) | 1998-12-04 | 2001-10-02 | General Electric Company | GPS receiver for emergency location reporting during intermittent shadowing |
US6370357B1 (en) | 1998-12-21 | 2002-04-09 | Nortel Networks Limited | Mobile speed estimation for digital cellular radio systems |
US6577271B1 (en) | 1999-03-30 | 2003-06-10 | Sirf Technology, Inc | Signal detector employing coherent integration |
US6205377B1 (en) | 1999-04-27 | 2001-03-20 | Trimble Navigation Ltd | Method for navigation of moving platform by using satellite data supplemented by satellite-calibrated baro data |
US6285316B1 (en) | 2000-06-02 | 2001-09-04 | Cellguide Ltd. | Locating a mobile unit using signals from both mobile beacons and stationary beacons |
US6295023B1 (en) | 2000-01-21 | 2001-09-25 | Ericsson Inc. | Methods, mobile stations and systems for acquiring global positioning system timing information |
US6331836B1 (en) | 2000-08-24 | 2001-12-18 | Fast Location.Net, Llc | Method and apparatus for rapidly estimating the doppler-error and other receiver frequency errors of global positioning system satellite signals weakened by obstructions in the signal path |
KR100416990B1 (en) | 2000-11-03 | 2004-02-05 | 삼성전자주식회사 | Receiving performance improvement method for network aided gps receiver |
US6515620B1 (en) | 2001-07-18 | 2003-02-04 | Fast Location.Net, Llc | Method and system for processing positioning signals in a geometric mode |
-
2001
- 2001-07-18 US US09/908,403 patent/US6515620B1/en not_active Expired - Lifetime
-
2003
- 2003-01-07 US US10/338,094 patent/US6774841B2/en not_active Expired - Lifetime
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050078032A1 (en) * | 2002-12-19 | 2005-04-14 | Gilkes Alan Martin | System and method for providing time to a satellite positioning system (SPS) receiver from a networked time server |
US7142156B2 (en) * | 2002-12-19 | 2006-11-28 | Texas Instruments Incorporated | System and method for providing time to a satellite positioning system (SPS) receiver from a networked time server |
US20050113124A1 (en) * | 2003-11-26 | 2005-05-26 | Jari Syrjarinne | Method and apparatus for lowering power use by a ranging receiver |
US7409188B2 (en) * | 2003-11-26 | 2008-08-05 | Nokia Corporation | Method and apparatus for lowering power use by a ranging receiver |
EP1538454A1 (en) * | 2003-12-01 | 2005-06-08 | Nobuhiro Kishimoto | GPS position measuring method and GPS position measuring system |
US20070260144A1 (en) * | 2004-02-12 | 2007-11-08 | Neurosonix Ltd. | Acoustic Control of Emboli in Vivo |
US20070247358A1 (en) * | 2004-05-21 | 2007-10-25 | Kimmo Alanen | Gps Device |
US7893870B2 (en) * | 2004-05-21 | 2011-02-22 | Nokia Corporation | GPS device |
WO2006048676A1 (en) * | 2004-11-05 | 2006-05-11 | University Of Bath | A method and apparatus for correlating data sequences |
Also Published As
Publication number | Publication date |
---|---|
US6774841B2 (en) | 2004-08-10 |
US6515620B1 (en) | 2003-02-04 |
US20030016170A1 (en) | 2003-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6774841B2 (en) | Method and system for processing positioning signals in a geometric mode | |
US6628234B2 (en) | Method and system for processing positioning signals in a stand-alone mode | |
US7154437B2 (en) | Method and system for processing positioning signals based on predetermined message data segment | |
US9052374B2 (en) | Method and system for processing positioning signals based on predetermined message data segment | |
US6529160B2 (en) | Method and system for determining carrier frequency offsets for positioning signals | |
US6650285B2 (en) | Method and apparatus for rapidly estimating the doppler-error and other receiver frequency errors of global positioning system satellite signals weakened by obstructions in the signal path | |
US6633255B2 (en) | Method for open loop tracking GPS signals | |
US6829534B2 (en) | Method and apparatus for performing timing synchronization | |
KR100924877B1 (en) | Method and apparatus for increasing coherent integration length while receiving a positioning signal | |
US20070046536A1 (en) | Fast fourier transform with down sampling based navigational satellite signal tracking | |
CN101305294A (en) | Method and system for mobile network auxiliary orientation | |
US20030016166A1 (en) | Method and system for processing positioning signals with matching assistance | |
EP2807501A1 (en) | Method and system for processing positioning signals based on predetermined message data segment | |
EP1512027B1 (en) | Method and system for processing positoning signals based on predetermined message data segment | |
EP1428039A2 (en) | Method and system for processing positioning signals |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
SULP | Surcharge for late payment |
Year of fee payment: 11 |