This invention relates to a receiver for a Global Navigation Satellite System (GNSS) and to methods of processing satellite signals that have been received by such a receiver. It is particularly relevant to the Global Positioning System (GPS).
GPS is a satellite-based navigation system consisting of a network of up to 32 orbiting satellites (called space vehicles, “SV”) that are in six different orbital planes. 24 satellites are required by the system design, but more satellites provide improved coverage. The satellites are constantly moving, making two complete orbits around the Earth in just less than 24 hours.
The GPS signals transmitted by the satellites are of a form commonly known as Direct Sequence Spread Spectrum employing a pseudo-random code which is repeated continuously in a regular manner. The satellites broadcast several signals with different spreading codes including the Coarse/Acquisition or C/A code, which is freely available to the public, and the restricted Precise code, or P-code, usually reserved for military applications. The C/A code is a 1,023 bit long pseudo-random code broadcast with a chipping rate of 1.023 MHz, repeating every millisecond. Each satellite sends a distinct C/A code, which allows it to be uniquely identified.
A data message is modulated on top of the C/A code by each satellite and contains important information such as detailed orbital parameters of the transmitting satellite (called ephemeris), information on errors in the satellite's clock, status of the satellite (healthy or unhealthy), current date, and time. This information is essential to a GPS receiver for determining an accurate position. Each satellite only transmits ephemeris and detailed clock correction parameters for itself and therefore an unaided GPS receiver must process the appropriate parts of the data message of each satellite it wants to use in a position calculation.
The data message also contains the so called almanac, which comprises less accurate information about all the other satellites and is updated less frequently. The almanac data allows a GPS receiver to estimate where each GPS satellite should be at any time throughout the day so that the receiver can choose which satellites to search for more efficiently. Each satellite transmits almanac data showing the orbital information for every satellite in the system.
A conventional, real-time GPS receiver reads the transmitted data message and saves the ephemeris, almanac and other data for continual use.
To determine position, a GPS receiver compares the time a signal was transmitted by a satellite with the time it was received by the GPS receiver. The time difference tells the GPS receiver how far away that particular satellite is. The ephemeris for that satellite enables the GPS receiver to accurately determine the position of the satellite. By combining distance measurements from multiple satellites with the knowledge of their positions, position can be obtained by trilateration. With a minimum of three satellites, a GPS receiver can determine a latitude/longitude position (a 2D position fix). With four or more satellites, a GPS receiver can determine a 3D position which includes latitude, longitude, and altitude. The information received from the satellites can also be used to set (or correct) the real-time clock (RTC) within the GPS receiver.
By processing the apparent Doppler shifts of the signals from the satellites, a GPS receiver can also accurately provide speed and direction of travel (referred to as ‘ground speed’ and ‘ground track’, respectively).
A complete data signal from the satellites consists of a 37,500 bit Navigation Message, which takes 12.5 minutes to send at 50 bps. The data signal is divided into 25 30 s frames, each having 1500 bits and these are divided into five 6 s subframes. Each 6 s subframe is divided into ten 30 bit words. All the information necessary fora position fix (ephemeris etc) is contained within each frame and so a GPS receiver will typically take around 30 s to produce a position fix from a so-called cold start. This is often called “time to first fix” (TTFF).
The first subframe gives clock correction data, the second and third subframes give ephemeris data and the almanac data is in the fourth and fifth subframes.
The SVs all broadcast on the same frequency. In order to distinguish a signal from a particular satellite, the receiver needs to generate a replica of the C/A code known to be in use by that satellite and align it so that it is synchronised with the incoming signal which will be delayed by an unknown amount predominantly due to the time of flight of the signal in travelling from the satellite to the receiver (typically around 0.07 s). In general, it is not possible for a receiver to accurately predict the alignment necessary to get the replica in sync with the incoming signal, so some form of search is required, with a number of alignments being tried in turn and the best match being selected. This process of evaluating a number of candidate alignments is normally termed correlation as the receiver implements a correlation function between the received signal and the known C/A code for each satellite in turn, to determine if the received signal includes a component having the C/A code from a particular SV. The correlation function has to be calculated for multiple relative timings, and when the correlation peak is found, this corresponds to a particular timing and a particular SV. The discovered timing in turn corresponds to a particular distance from the SV.
The search for each satellite C/A code is complicated by the fact that the apparent frequency of the satellite signal observed by the receiver will vary. The principal sources of variation are the Doppler-effect due to the movement of the satellite; Doppler-effect due to movement of the receiver; and the drift and offset of the local oscillator (LO) unit within the receiver's frequency synthesizer. This means that an exhaustive search for the C/A code requires the evaluation of the correlation function at a range of phase (temporal) shifts for each of a range of frequency shifts.
The correlation process is sometimes referred to as “despreading”, since it removes the spreading code from the signal. The determined code-phase—that is, the timing of the peak of the correlation function—reveals the accurate timing information for use in the distance calculation. However, as the code is repeated every millisecond, the coarse timing also needs to be determined. Typically, less frequently repeating data components are used for the more coarse timing evaluation (i.e. to enable GPS time to be derived), such as the individual bits of the 50 bps data message and specific parts of it such as the subframe preamble or subframe handover word.
Together, the code-phase and coarse timing information comprise a “pseudo-range”, because they identify the time-of-flight of the message from the satellite. This time-of-flight is related to the distance travelled by c, the speed of light. This is a “pseudo”-range or relative range (rather than a true range) because the relative offset between the satellite's clock and the receiver's RTC is unknown. However, this offset is the same relative to all satellites (since their clocks are synchronized); so, pseudo-ranges for a set of diverse satellites provide sufficient information for the trilateration calculation to determine a unique position fix.
The majority of GPS receivers work by processing signals from the satellites in “real time”, as they are received, reporting the position of the device at the current time. Such “conventional” GPS receivers invariably comprise:
an antenna suitable for receiving the GPS signals,
analogue RF circuitry (often called a GPS front end) designed to amplify, filter, and mix down to an intermediate frequency (IF) the desired signals so they can be passed through an appropriate analogue-to-digital (A/D) converter at a sample rate normally of the order of a few MHz,
digital signal processing (DSP) hardware that carries out the correlation process on the IF data samples generated by the A/D converter, normally combined with some form of micro controller that carries out the “higher level” processing necessary to control the signal processing hardware and calculate the desired position fixes.
The less well known concept of “Store and Process Later” (also known, and hereinafter referred to, as “Capture-and-Process”) has also been investigated. This involves storing the IF data samples collected by a conventional antenna and analogue RF circuitry in some form of memory before processing them at some later time (seconds, minutes, hours or even days) and often at some other location, where processing resources are greater and/or the receiver is not powered by a battery.
This means that a Capture-and-Process receiver is considerably simpler than a real-time receiver. Only short segments of samples need to be stored—for example, 100-200 ms worth of data. There is no longer any need to decode the (very slow) data message from each SV; no need to perform correlation and determine pseudo-ranges; and no need to execute the trilateration calculation to derive a position fix. Accordingly, much of the digital signal processing hardware of the conventional receiver can be eliminated, reducing complexity and cost. Power consumption is also significantly reduced, leading to longer battery life.
Other Capture-and-Process receivers have also been proposed which include the DSP hardware necessary for calculating position fixes. In one mode, such a device receives, samples and stores GPS signals in a memory, but does not process them. When switched to a separate mode, the device ceases receiving signals and instead starts processing those samples which were stored previously. A device of this kind is suitable for generating a retrospective track-log, or history of movements, for example after the user has returned from a trip.
According to a first aspect of the present invention, there is provided a method of calculating a position fix from satellite signal samples, the method comprising:
obtaining first reference information produced during the calculation of a first position fix, the first position fix being the calculated position of a satellite-positioning receiver at a first time;
obtaining second reference information produced during the calculation of a second position fix, the second position fix being the calculated position of the receiver at a second time;
receiving a set of satellite signal samples generated by the receiver at a third time, or ranging measurements derived from such a set of satellite signal samples; and
processing the set of samples or the ranging measurements to calculate a third position fix,
wherein said processing is assisted by the reference information produced during the calculation of the first and second position fixes.
In this way, the calculation of the third position fix may be made simpler, faster, less energy-intensive, or more efficient in other ways. The first and second reference information derived from the calculation of the first and second position fixes, respectively, can be combined in order to intelligently support the calculation of the third position fix. For example, computational effort may be reduced by minimising duplication of effort across position fixes.
The present inventors have recognised that two or more pieces of reference information are extremely advantageous in many circumstances, compared with prediction from a single piece of reference information. For example, more accurate predictions are possible, because reference information for two points in time enables trends in the information to be taken into consideration. Search-ranges for unknown parameters can also potentially be constrained by knowledge of such trends. Thus, if two pieces of reference information are exploited, much greater efficiency savings may be possible in the calculation of the third position fix.
The first and second reference information is a product of the calculation of the first and second position fix, respectively. For example, it may be the position fix itself; an intermediate result, such as a ranging measurement; or information that is produced as a side-effect such as a clock error (that is, a difference between the receiver's clock and a satellite clock). Preferably, the reference information comprises information which is usable in the calculation of the third position fix to reduce the complexity or quantity of the calculations. The reference information may be used to bootstrap parameters in the calculation of the third position fix, for example. Preferably, the reference information comprises values that can be projected forward or backward in time, in order to predict corresponding values suitable for calculating the third position fix.
The first, second, and third times may occur occur in any sequence. No precedence is implied by the terms “first”, “second”, or “third”.
In some embodiments, neither samples nor ranging measurements (such as code-phases or pseudo-ranges) are stored in the memory. That is, the samples are processed immediately, to calculate a position fix, without being stored in the memory. This provides a real-time satellite positioning receiver.
In other embodiments, samples or ranging measurements are stored in the memory for an intentional delay, for later processing. This delayed processing may be performed by the satellite positioning receiver which generated the samples or by some other, external device to which the data is transferred. This approach is referred to herein as “Capture-and-Process” satellite positioning. Some embodiments may use a mixture of both the “Capture-and-Process” approach and real-time positioning.
A ranging measurement may comprise, for example, a code-phase, carrier-phase, or pseudo-range measurement. In general a ranging measurement is a value which (implicitly or explicitly) provides some information about a distance from the satellite positioning receiver to one satellite among the constellation of positioning-satellites. A ranging measurement may be a represented by a distance or by a time-of-flight or time-of-arrival of a signal. Many types of ranging measurements are not absolute or unique measurements—they typically incorporate some degree of relativity or ambiguity. For example a code-phase measurement, by itself, specifies the (relative) time-of-arrival within the period of one complete repetition of the spreading code—known in the art as a “code epoch”. There remains an ambiguity about which code epoch of the satellite data message is being observed. The term “ranging measurement” should therefore be understood to include both measurements including some degree of ambiguity as well as absolute and/or unique distance measurements.
The processing may use knowledge of the first, second, and third times or one or more relative comparisons among them.
This may comprise using relative knowledge of the times—such as a difference between the first and second; second and third; and/or first and third times. It may be easier to determine a time difference accurately than it is to determine the corresponding absolute times.
Measuring a time-difference may comprise measuring an elapsed time between receiving respective sets of samples used to calculate the position fixes.
That is, a record may be kept of the difference between the time of arrival of the satellite signals which give rise to one set of samples and the time of arrival of the satellite signals which give rise to another set of samples. It may be possible to measure this difference more accurately than it would be to calculate the difference by subtracting respective time-stamps. For example, the difference may be measured by counting periods of an oscillator signal generated at the receiver, such as a high-quality, high-frequency oscillator signal, or by counting periods of the carrier in the satellite signal. This may be done by observing and counting the number of rising or/and falling edges of a periodic signal, in order to improve precision. Preferably this counting technique is applied to the oscillator signal produced by a frequency synthesizer which generates the high-frequency clock signal for the analogue-to-digital conversion and the subsequent digital processing. This allows the measurement of elapsed time to benefit from the granularity of a high-frequency oscillator.
Each of the first and second reference information preferably comprises at least one of: the respective position fix; a satellite-clock time associated with the position fix; a clock-error between the satellite-clock time and a receiver-clock time; a ranging measurement between the receiver and a satellite; and an observed Doppler shift of a signal received from a satellite
The assistance preferably comprises predicting, based on the reference information at the first and second times, corresponding information at the third time.
Thus, the assistance may comprise predicting or estimating expected values for one or more of: the third position fix; a satellite-clock time corresponding to the third time; a clock-error at the third time; a ranging measurement at the third time; and a Doppler shift of a satellite signal which may have been observable by the receiver at the third time.
Prediction based on two pieces of reference information may be more sophisticated (and therefore provide more useful results) than simpler forms of prediction, such as copying a single piece of reference information generated during the earlier calculation of a different position fix. Here, making a prediction “based on” two pieces of reference information implies that changing the value of either one of the two pieces of reference information can change the result of the prediction.
The prediction may comprise interpolating or extrapolating a third value, corresponding to the third time, based on first and second values, corresponding to the first and second times, respectively.
Interpolation occurs if the third time occurs between the first and second times. In this case, the first reference information comes from a time before the set of samples was generated; and the second reference information comes from a time after the set of samples was generated.
Conversely, extrapolation occurs if the third time is not between the first and second times—that is, if the third time is before or after both of the first and second times.
The interpolation or extrapolation may use a variety of suitable methods. For example, the interpolation or extrapolation may be linear or non-linear.
The prediction step may advantageously include predicting the third position using an estimate of speed and/or direction of travel.
The estimate of speed, direction, or velocity may be based on measurements (for example, of instantaneous or average speed or direction of travel). Alternatively, parameters such as the speed may be inferred based on knowledge of the application for which a GPS receiver is being used, or is intended to be used. Thus, a maximum speed may be estimated if the receiver device is designed for use in a particular pursuit, such as walking, running or cycling. The GPS receiver may have different modes for different activities, and the estimate of maximum speed may depend upon which of the modes is currently selected.
The processing may be further assisted by reference information produced during the calculation of one or more further position fixes, corresponding to other times.
The further position fixes are the calculated positions of the receiver at these other times.
For non-linear methods of interpolation or extrapolation, in particular, it may be useful or necessary to exploit reference information from more than two points in time. Non-linear methods may include (but are not limited to) quadratic, cubic, or higher order polynomial interpolation or extrapolation; and curve fitting.
The assistance may comprise choosing or deriving a parameter to be used in the processing.
In some cases, the chosen parameter may be the same as the predicted information (predicted from the first and second reference information). For example, the reference information may comprise a Doppler shift; the predicted information may be a Doppler shift; and the parameter used in the calculation may be a Doppler shift.
In other cases, the parameter may be derived from the predicted information in some way. For example, the reference information may be the position coordinates of each (first and second) position fix; the predicted information may be expected position coordinates for the third position fix; and the parameter used in the processing may be an expected code-phase to be used as a starting point when despreading the set of signal samples. In this example, an expected code-phase can be derived from the predicted position, based also on some knowledge of the third time and the movements of the corresponding satellite.
The parameter is preferably an initial estimate of a ranging measurement or carrier frequency to be used in a despreading calculation.
For example, information about an expected Doppler shift can be combined with a known satellite-transmission frequency, in order to predict the observed carrier frequency at the receiver. This can be used as the starting point in a correlation operation (search) which performs the despreading.
According to a further aspect of the invention, there is provided a method of processing signals from a satellite positioning system, comprising:
receiving first, second, and third sets of data, each set comprising:
samples of satellite signals, obtainable by sampling satellite signals at a satellite positioning receiver, or
ranging measurements derived from such samples,
wherein the first, second, and third sets of data correspond to first, second and third time-instants;
processing the first and second sets of data to derive respective first and second position fixes, in the course of which processing respective first and second reference information is produced; followed by
processing the third set of data according to the method of claim 1.
Also provided is a computer program comprising computer program code means adapted to perform all the steps of a method as described above if said program is run on a computer, and such a computer program embodied on a computer readable medium.
According to another aspect of the invention, there is provided a satellite positioning receiver comprising:
an RE front end, for receiving satellite positioning signals;
an analogue-to-digital converter, for sampling the received signals to generate signal samples;
a memory; and
a processor adapted:
to process a first set of the samples, to calculate a first position fix;
to process a second set of the samples, to calculate a second position fix; and
to store in the memory first and second reference information produced in the course of the respective calculations,
wherein the processor is further adapted to process a third set of the samples, or ranging measurements derived from the third set of samples, to calculate a third position fix, assisted by the first and second reference information.
According to still another aspect of the invention, there is provided a satellite positioning receiver comprising:
an RF front end, for receiving satellite positioning signals;
an analogue-to-digital converter, for sampling the received signals to generate signal samples;
a memory; and