WO2024028608A1 - Method and apparatus for determining a frequency related parameter of a frequency source - Google Patents

Method and apparatus for determining a frequency related parameter of a frequency source Download PDF

Info

Publication number
WO2024028608A1
WO2024028608A1 PCT/GB2023/052056 GB2023052056W WO2024028608A1 WO 2024028608 A1 WO2024028608 A1 WO 2024028608A1 GB 2023052056 W GB2023052056 W GB 2023052056W WO 2024028608 A1 WO2024028608 A1 WO 2024028608A1
Authority
WO
WIPO (PCT)
Prior art keywords
frequency
signal
local
offset
operating conditions
Prior art date
Application number
PCT/GB2023/052056
Other languages
French (fr)
Inventor
Ramsey Michael Faragher
Robert Mark Crockett
Peter James Duffett-Smith
Original Assignee
Focal Point Positioning Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Focal Point Positioning Ltd. filed Critical Focal Point Positioning Ltd.
Publication of WO2024028608A1 publication Critical patent/WO2024028608A1/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/26Acquisition or tracking or demodulation of signals transmitted by the system involving a sensor measurement for aiding acquisition or tracking
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/29Acquisition or tracking or demodulation of signals transmitted by the system carrier including Doppler, related
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/30Acquisition or tracking or demodulation of signals transmitted by the system code related

Definitions

  • the present invention relates to a system that can determine a more accurate value (such as a local oscillator frequency or frequency drift rate) from a received signal using a receiver that has an unstable local oscillator.
  • a more accurate value such as a local oscillator frequency or frequency drift rate
  • Modem devices such as cellular phones have local oscillators that can provide a frequency reference for a variety of different applications.
  • cellular devices comprise relatively low cost local oscillators, such as quartz oscillators. These devices can provide stable frequency references over short time periods. However, the frequency reference they produce can be unstable over longer time periods, and can also be unstable when their operating conditions change. Examples of changing operating conditions include temperature, vibrations, and accelerating forces such as shocks when the device is jolted or dropped.
  • GNSS positioning One application that requires a frequency reference from a local oscillator is GNSS positioning.
  • An object of the present invention is to improve the ability of a positioning device to determine positioning calculations such as a position fix or pseudoranges when the local oscillator is unstable. This is typically the case with consumer devices, such as smartphones, smartwatches or automotive navigation systems, which all feature low-cost crystal oscillators that are inherently unstable, and are easily perturbed by external factors such as accelerations, shocks, temperature and voltage fluctuations.
  • Another object of the present invention is to improve the ability of a receiver within a positioning device to determine frequency-related errors (such as the frequency offset) of its local oscillator and to enable such a determination to be made even while the receiver is being used in a difficult signal environment such as an urban canyon while conserving computational resources.
  • frequency-related errors such as the frequency offset
  • a method comprising: providing a local frequency reference using a local oscillator; receiving at least one first signal at a receiver from at least one first remote source, along respective directions of arrival; determining a movement of the receiver in each of a plurality of sequential time periods; for each of the at least one first received signals: using the local frequency reference to provide a first local signal; providing a first correlation signal by correlating the first local signal with the first received signal; and providing a plurality of hypothesised frequency offsets and, for each of the plurality of hypothesised frequency offsets: providing phase compensation of at least one of the first local signal, the first received signal, and the first correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated first correlation signal; determining a preferred frequency offset based on the plurality of hypothesised frequency offsets in each of the plurality of sequential time periods and the produced phase compensated first correlation signals to provide a vector comprising a plurality of unique frequency offsets in
  • the method may be performed in a positioning system, and the at least one first signal and the second signal may be positioning signals.
  • different local oscillator corrections can be provided across an extended period, which is the sum of the plurality of sequential time periods.
  • the second local signal can be generated with different local oscillator corrections in each of the sequential time periods.
  • This daisy-chained second local signal can then be correlated against the received second signal, and can be phase compensated.
  • This technique can allow SupercorrelationTM processing (i.e. long coherent integration of signals) to be performed even when there is a relatively unstable local oscillator because each period of instability can be independently corrected. This has previously not been possible, and it advantageously improves the ability of a positioning system to determine a range to a GNSS satellite in a poor signal environment when the system itself has a relatively poor local oscillator.
  • the different oscillator corrections can instead be applied, using the vector, to the received second signal or the second correlation signal, or any combination of the second local signal, the second signal, and the second correlation signal.
  • the second signal rather than the second local signal, can be adjusted using the vector. This effectively introduces the same or very similar variations that are present in the second local signal due to the relatively poor local oscillator into the second signal. This would improve the result of correlating the second signal (adjusted using the vector) and the (unadjusted) second local signal because similar variations would be then present in each signal.
  • Calculating the vector of unique frequency offsets involves providing a plurality of hypothesised frequency offsets and providing phase compensation of at least one of the first local signal, the at least one first signal, and the first correlation signal based on the determined movement in the respective direction of arrival for the plurality of hypothesised frequency offsets, and determining a preferred frequency offset based on the plurality of hypothesised frequency offsets in each of the plurality of sequential time periods and the produced phase compensated first correlation signals.
  • the method may search for the frequency offset that can provide the best correlation results. This corresponds to a search in frequency space. In other arrangements there can be a two-dimensional search across frequency and rate of change of frequency to find the combination of variables that provide the best correlation results (e.g. the highest peak for the correlation signal), and reveals the best solution for the local oscillator frequency related errors.
  • the frequency offset can be determined relative to another frequency reference that is a close approximation to a “true” frequency reference, which may be derived from a well-modelled, high fidelity atomic oscillator.
  • the frequency offset can therefore be determined with respect to a “known or predictable frequency” that is generated using a much more accurate oscillator than the local oscillator.
  • the at least one first signal and the second signal may be generated using a similar frequency reference such as atomic clocks in the respective first and second remote sources.
  • the local signals may be replicas of a pseudorandom number sequence from a GNSS satellite.
  • the second local signal can be generated based on the frequency reference from the local oscillator together with the plurality of unique frequency offsets, which correspond to the determined error in the local oscillator frequency reference across sequential time periods. This can create a second local signal in which local oscillator error is substantially removed, and this can significantly enhance positioning accuracy.
  • the method may comprise using an inertial sensor such as an accelerometer and/or gyroscope that can provide the determined movement in the plurality of sequential time periods.
  • an inertial sensor such as an accelerometer and/or gyroscope that can provide the determined movement in the plurality of sequential time periods.
  • the phase compensation can be applied using techniques known in the art. For example, the phase compensation can be applied to only one of, or more than one of: the second signal, the second local signal, or the second correlation signal resulting from correlating the second signal and the second local signal. Similarly, phase compensation can be applied to any of the at least one first signal, the first local signal and the resulting first correlation signal.
  • the correlation step may be performed using known correlation techniques in GNSS (Global Navigation Satellite Systems) or other positioning systems.
  • the step of determining a movement of the receiver in each of the plurality of sequential time periods may comprise determining a component of motion of the receiver along a line of sight to each respective remote source, which may be a positioning source or any other type of source.
  • the local frequency reference may be a timing signal of various possible forms, such as a sine wave or a square wave.
  • the method further comprises providing a plurality of hypothesised frequency rate offsets; wherein the step of providing phase compensation for each of the plurality of hypothesised frequency offsets comprises providing phase compensation for each of the plurality of hypothesised frequency and frequency rate offsets; and wherein the step of determining the preferred frequency offset based on the plurality of hypothesised frequency offsets in each of the plurality of sequential time periods comprises determining the preferred frequency offset and a preferred frequency rate offset in each of the plurality of sequential time periods to provide the vector comprising the plurality of unique frequency offsets and a plurality of unique frequency rate offsets in the local frequency reference in each of the plurality of sequential time periods.
  • the frequency rate corrections can be applied, using the vector, to any of the second local signal, the second signal or the second correlation signal, or any combination of the second local signal, the second signal, and the second correlation signal.
  • frequency rate offset refers to the difference in the rate of change of frequency ( “frequency rate”) of the local oscillator compared to a fully stable ideal frequency source, which would have a rate of change of frequency of zero.
  • the unique frequency rate offsets can be provided as a separate vector to the vector of unique frequency offsets, or these vectors can be provided together in a combined vector or matrix.
  • matrix and vector may be used interchangeably.
  • the vectors or matrix could be represented in many ways, such as a list with entries for frequency offsets corresponding to particular time periods of the plurality of sequential time periods.
  • the step of providing phase compensation for each of the plurality of hypothesised frequency and frequency rate offsets comprises providing phase compensation for each of a plurality of pairs of the hypothesised frequency and frequency rate offsets.
  • phase compensated first correlation signals can be produced for each combination of frequency and frequency rate. This allows the optimal combination of frequency and frequency rate to be determined in each of the plurality of sequential time periods so that the evolving error in the local oscillator can be mapped more precisely.
  • receiving at least one first signal comprises receiving a plurality of first signals at the receiver from a plurality of first remote sources, wherein determining the preferred frequency offset based on the plurality of hypothesised frequency offsets in each of the plurality of sequential time periods and the phase compensated first correlation signal is performed based on a plurality of phase compensated first correlation signals.
  • the preferred frequency offset is determined based on a plurality of received first signals, which avoids one issue that can arise in some scenarios when using only one first signal from a single first remote source.
  • One such scenario can arise when the first signal is received along a direct line of sight and, at the same time, along an indirect direction of arrival resulting from a reflection having an increased path length from the remote source to the receiver.
  • only one of the hypothesised frequency offsets corresponds to an error in the local oscillator.
  • the remaining hypothesised frequency offset can correspond to the reflected first signal. If the preferred frequency offset is selected (or otherwise determined) based on the hypothesis corresponding to the reflected signal, then the preferred frequency offset would represent a phase offset caused by the increased path difference of the reflected signal. In this case, the preferred frequency offset does not represent the error in the local oscillator in a given time period. This means that preferred frequency offset in general cannot be used to apply a correction in the processing of other received signals (such as the second signal) to achieve better phase compensated correlation results.
  • each of the received first signals has a common hypothesised frequency offset that produces a better phase compensated first correlation signal.
  • the common hypothesised frequency offset corresponds to the error in the local frequency reference produced by the unstable local oscillator. Therefore, determining the preferred frequency offset in each sequential time period based on a plurality of first signals allows the hypothesised frequency offset corresponding to the error in the local oscillator to be recognised through a comparison of the phase compensated first correlation signals.
  • the step of determining the preferred frequency offset based on the plurality of phase compensated first correlation signals is performed by, for each hypothesised frequency offset, combining the phase compensated first correlation signals produced for each of the plurality of received first signals and determining the hypothesised frequency offset corresponding to the highest combined correlation.
  • the hypothesised frequency offset corresponding to the error in the local frequency reference produced by the unstable local oscillator can be identified.
  • the combination can be a sum or a multiplication.
  • a suitable cost function can be used to determine the frequency and/or frequency rate corresponding to the highest combined correlation.
  • the method may comprise determining one or more operating conditions in a system performing the method in each of the plurality of sequential time periods and determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions.
  • the initial estimated frequency offset can be a rough prediction or estimate of the error in the local oscillator in a given time period of the sequential time periods.
  • the initial estimated frequency offset can be used as a starting point or initial condition when calculating the offset more precisely using the plurality of hypothesised frequency offsets, which enables the vector to be produced more efficiently.
  • the determination of the initial estimated frequency offset can be performed in a variety of ways.
  • a lookup table can be used to retrieve frequency offsets calculated previously in the same or similar operating conditions.
  • a model configured to predict a frequency offset in the local oscillator based on the operating conditions of the system can take the determined one or more operating conditions as an input. The model can then output a frequency prediction based on the one or more operating conditions. Using a model in this manner can also be referred to as “predictive control”.
  • the model can be a neural network or machine learning model or algorithm, a formula, or any other suitable kind of model.
  • the model may be pre-trained and/or may be retrained continuously based on calculations of preferred frequency offsets and their corresponding determined operating conditions.
  • the method can comprise a step of retraining the model based on the one or more determined operating conditions and the preferred frequency offset.
  • the lookup table may provide an input to the model.
  • the one or more determined operating conditions include one or more of temperature, a rate of change of temperature, an operating state, or a determined movement of a component in the system.
  • the one or more operating conditions can be determined using a sensor that measures a physical variable that enables a relevant parameter such as temperature to be calculated.
  • a determination of whether a component is turned on or off may be performed using control logic without a sensor.
  • the method further comprises providing the preferred frequency offset in each of the plurality of sequential time periods and the one or more determined operating conditions to a stored dataset.
  • the behaviour of the local oscillator in particular operating conditions can be tracked for future reference.
  • the determined operating conditions may include temperature.
  • the determined operating conditions may also include whether the temperature is increasing or decreasing. This is because oscillators can exhibit temperature hysteresis, i.e. , can behave differently at a given temperature depending on the recent or historical temperature of the oscillator.
  • each temperature value may have two corresponding frequency offset entries in the stored data set. One offset entry can correspond to when the oscillator is at the respective temperature and the temperature is increasing and the other offset entry can correspond to the same temperature but when the temperature is decreasing. In this way, the stored data set can be configured to account for temperature hysteresis effects in the local oscillator. Similarly, two entries for frequency rate (or any other phase or frequency correction term) may be stored for each temperature.
  • a large number of potential operating conditions may be measured in order to update a multi-dimensional lookup table. Temperature may be measured using a thermocouple or a thermistor that is in close proximity with the local oscillator in a device of the system. Other active applications or components within the device may be another operating condition.
  • the device may be a positioning device. It has been found that running some applications or components, or running a particular combination of applications or devices, can have an adverse effect on the stability of the local oscillator, and therefore it can be valuable to tabulate the observed effect of running these applications in the lookup table.
  • Another example of an operating condition includes active hardware in the system or positioning system. For example, a touchscreen or wireless interface in a positioning device may be on or off, and this may affect the local oscillator. Any hardware of a device that affects the local oscillator may be used as an operating condition.
  • operating conditions include temperature, a rate of change of temperature, a voltage of, or associated with, the local oscillator, a rate of change of this voltage, and a motion of the local oscillator, such as the presence or degree of an impact or vibration. Any number of and combination of operating conditions may be implemented. In a specific example, temperature and temperature rate may be measured and frequency offset values for combinations of temperature and temperature rate measurement values may be stored.
  • An initial estimated frequency offset from the stored dataset or an initial the model may provide initial conditions when calculating the vector of unique frequency offsets in the local frequency reference in the plurality of sequential time periods.
  • the values in the stored dataset or output from the model may be used as seed values or initial values, and may also define a search window. This has a dual benefit by increasing the likelihood that the seed values are close to the true values, and by decreasing the processing power required to search across all possible frequency offset values.
  • the “seed value” is the first point within a search space to be tested within a search window of the test space.
  • the search window may be set to a particular narrower width based on the values in the stored dataset or produced from the model. For example, the width of a search window for frequency or frequency rate values may be set based on a percentage of a previously calculated frequency or frequency rate value. Alternatively, the narrower search window may have a fixed width that is centred on a previously calculated value. A wider search window may be set if the dataset contains no previously calculated value for the corresponding operating condition or conditions, wherein the wider search window is wider than the narrower search window.
  • the at least one first signal may be less attenuated than the second signal.
  • the respective directions of arrival of the at least one first signal may be more favourable lines of sight to the receiver compared to the direction of arrival of the second signal, such that the at least one first signal can be received with a better signal to noise ratio than the second signal.
  • the more favourable at least one first signals are used to determine a frequency offset that can be used in turn to correct the second local signal, thus enabling correlation with the less favourable second signal over an extended period.
  • the at least one first signal can preferably be integrated coherently over the instability period of the local oscillator.
  • a duration of one or more of the plurality of sequential time periods is determined based on the one or more determined operating conditions of the system performing the method.
  • At least two of the plurality of sequential time periods have different durations with respect to one another.
  • the vector can account for the evolving behaviour of the local oscillator more effectively.
  • the individual length of each of the sequential time periods may be stored in memory by default in the device.
  • the default length of each individual time period is around 0.1 seconds, 0.2 seconds, 0.5 seconds, 1 second or 2 seconds.
  • the duration and number of sequential time periods can be selected in order to minimise the number of offset calculations required while still providing sufficient oscillator corrections. As calculating each offset in the local oscillator can be computationally intensive, this creates a faster and more efficient calculation of the vector.
  • Each of the plurality of sequential time periods corresponds to a duration over which the local oscillator is calculated or assumed to provide a stable frequency reference.
  • each of the plurality of sequential time periods may not correspond to a duration over which the local oscillator is calculated or assumed to be stable.
  • each of the sequential time periods may be longer than an assumed or calculated period of stability, and interpolation may be applied between calculated values.
  • the combined duration of the plurality of sequential time periods may be at least equal to an integration period over which the second local signal and the received second signal are correlated during the step of providing the second correlation signal.
  • the vector can store the frequency offsets in the local oscillator across the full integration period in order to map the evolving error in the local oscillator for the full integration period.
  • the vector can be combined with the local frequency reference to generate a second local signal that is corrected across the whole integration period to enable a coherent integration to be performed for longer than the instability period of the local oscillator.
  • the integration period may be 0.5 seconds or longer, such as, 1 second, 2 seconds, 3 seconds, or longer.
  • this approach requires that the sampling rate is high enough to correctly characterise trends in the frequency and frequency rate offsets.
  • determining a preferred frequency offset based on the plurality of hypothesised frequency offsets comprises interpolating a preferred frequency offset between two or more of the plurality of hypothesised frequency offsets.
  • the interpolation may be applied retroactively after calculating frequency offsets corresponding to some or all of the plurality of sequential time periods. Additionally, interpolation may be applied after determining that the frequency offsets vary gradually, smoothly and/or predictably across some or all of the sequential time periods. The interpolation may be performed in response to determining that the operating conditions meet a threshold.
  • the threshold may be a set of one or more criteria that indicates the operating conditions are relatively favourable for the local oscillator, i.e. the environment of the local oscillator is favourable for enabling good oscillator stability. Equivalently, if it is found that frequency offsets vary predictably, the duration of the time periods within the plurality of sequential time periods may be increased.
  • determining a preferred frequency offset based on the plurality of hypothesised frequency offsets can comprise selecting one of the hypothesised frequency offsets, which may correspond to the highest or best of the produced phase compensated first correlation signals. In some scenarios, selecting one of the hypothesised offsets can provide a sufficient offset of the frequency.
  • the method can comprise a determination of whether an interpolation is required.
  • the method may include determining an additional frequency offset and adjusting the vector based on the determined additional frequency offset.
  • this can be carried out by, for each of the at least one first received signals: using the local frequency reference to provide a third local signal; providing third correlation signals by correlating the third local signal with each of the one or more received first signals; providing a further plurality of hypothesised frequency offsets and, for each of the further plurality of hypothesised frequency offsets: providing phase compensation of at least one of the third local signal, the one or more received first signals, and the third correlation signals based on the vector and the determined movement of the receiver along the respective direction of arrival to produce phase compensated third correlation signals; and determining a frequency correction based on the further plurality of hypothesised frequency offsets and the produced phase compensated third correlation signals; and adding the determined frequency correction to the vector in each of the plurality of sequential time periods.
  • the method can correct for an overarching frequency error that is present across several of the sequential time periods. This improves the ability of the vector to correct any of the second local signal, the second signal or the second correlation signal, or any combination thereof.
  • an additional overarching frequency rate offset can also be calculated and used to adjust the calculated vector in the same way.
  • the method further comprises calculating, based on the second correlation signal, a range or a pseudo-range of the receiver to the second remote source.
  • the range or pseudorange can be combined with a plurality of other ranges or pseudoranges obtained from a plurality of remote sources to determine a position as known in the art.
  • the method may be performed at least partially in a positioning device, such as a mobile device, comprising a 5G modem, wherein the local oscillator is provided in the positioning device.
  • a positioning device such as a mobile device, comprising a 5G modem, wherein the local oscillator is provided in the positioning device.
  • a system comprising: a local oscillator configured to provide a local frequency reference; a receiver configured to receive at least one first signal from at least one first remote source, along respective directions of arrival, and a second signal from a second remote source, along a direction of arrival; a motion module, configured to determine a motion of the receiver; and a processor configured to: for each of the at least one first received signals: use the local frequency reference to provide a first local signal; provide a first correlation signal by correlating the first local signal with the received first signal; and provide a plurality of hypothesised frequency offsets and, for each of the plurality of hypothesised frequency offsets: provide phase compensation of at least one of the first local signal, the first received signal, and the first correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated first correlation signal; determine a preferred frequency offset based on the plurality of hypothesised frequency offsets in each of the plurality of sequential time periods and the produced phase compensate
  • a method for determining a frequency related parameter of a frequency source within a receiver comprising: receiving a plurality of signals from a plurality of remote sources; generating motion compensated correlation results using a determined receiver motion, the received signals and a local signal derived from the local frequency source; phase compensating the motion compensated correlation results to produce phase compensated correlation results using a plurality of phasor sequences that represent frequency error of the local frequency source; and jointly analysing the phase compensated correlation results associated with the plurality of remote sources to determine a frequency related parameter of the local frequency source.
  • an apparatus for performing signal correlation within a signal processing system comprising at least one processor and at least one non-transient computer readable medium for storing instructions that, when executed by the at least one processor, causes the apparatus to perform operations comprising: receiving a plurality of signals from a plurality of remote sources; generating motion compensated correlation results using a determined receiver motion, the received signals and a local signal derived from the local frequency source; phase compensating the motion compensated correlation results to produce phase compensated correlation results using a plurality of phasor sequences that represent frequency error of the local frequency source; and jointly analysing the phase compensated correlation results associated with the plurality of remote sources to determine a frequency related parameter of the local frequency source.
  • a method which may be performed in a positioning system, comprising: providing a local frequency reference using a local oscillator; receiving at least one signal, at a receiver, from at least one remote source, along respective directions of arrival; determining a movement of the receiver; determining one or more operating conditions in a system performing the method; determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions; for each of the at least one received signals: using the local frequency reference to provide a local signal; providing a correlation signal by correlating the local signal with the received signal; and providing phase compensation of at least one of the local signal, the at least one received signal, and the correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated correlation signal; dynamically adjusting, based on the phase compensated correlation signals and the initial estimated frequency offset, a frequency offset value to determine a preferred estimated value for the frequency offset in the local frequency reference.
  • the initial estimated frequency offset can be used as a starting point or initial condition when determining the preferred frequency offset, which corresponds to a more precise determination of the offset in the local oscillator calculated using the at least one signal. This enables the preferred estimated value to be determined more efficiently.
  • the determination of the initial estimated frequency offset can be performed in a variety of ways.
  • the method may determine the initial estimated frequency by comparing the one or more determined operating conditions to a frequency offset calculated previously for the same or similar operating conditions.
  • this comparison can be performed using a stored data set from which frequency offsets calculated previously in the same or similar operating conditions can be retrieved.
  • the comparison can be performed using a model configured to predict a frequency offset in the local oscillator based on the determined operating conditions of the system.
  • the model can take the determined one or more operating conditions as an input and output a frequency prediction or estimation.
  • the model can be a neural network or machine learning model or algorithm, a formula, or any other suitable kind of model. Using a model in this manner can also be referred to as “predictive control”.
  • the model may be pre-trained and/or may be re-trained continuously based on calculations of frequency offsets and their corresponding determined operating conditions.
  • the lookup table may provide an input to the model, or could be used to continuously retrain the model as the lookup table is updated.
  • the one or more operating conditions can be determined using a sensor that measures a physical variable that enables a relevant parameter such as temperature to be calculated.
  • a determination of whether a component is turned on or off may be performed using control logic without a sensor.
  • the method further comprises the step of supplying the preferred estimated value for the frequency offset and the corresponding one or more determined operating conditions to a stored dataset.
  • the method can build a lookup table that is indicative of frequency offset values during different measured or determined operating conditions. This can advantageously reduce computational loads because the values stored in the lookup table can provide initial conditions that are close to the real values during any particular observation.
  • the measured frequency offset values can be stored directly in the dataset so that the stored values represent the values that were measured most recently.
  • the stored values may represent an average value, such as the calculated mean, based on all observations. In this way, the stored dataset may be updated so that it represents a moving average.
  • the data set could be stored locally in a device or remotely in a distributed network.
  • the one or more operating conditions include a physical variable or parameter of the local oscillator.
  • the one or more operating conditions include one or more of temperature, a rate of change of temperature, an operating state, a determined movement, or an indication of whether a component in the system is turned on or off.
  • the one or more operating conditions may represent a more complete characterisation of the conditions affecting the local oscillator.
  • the one or more operating conditions may include all of the above conditions.
  • the determined operating conditions in the system include temperature.
  • the one or more operating conditions may also include whether the temperature is increasing or decreasing. This is because oscillators can exhibit temperature hysteresis, i.e., can behave differently at a given temperature depending on the recent or historical temperature of the oscillator.
  • each temperature value may have two corresponding frequency offset entries in the stored data set. One offset entry can correspond to when the oscillator is at a respective temperature and the temperature is increasing and the other offset entry can correspond to the same temperature but when the temperature is decreasing. In this way, the stored data set can be configured to account for temperature hysteresis effects in the local oscillator. Similarly, two entries for frequency rate (or any other phase or frequency correction term) may be stored for each temperature.
  • Other measured operating conditions may include a rate of change of temperature, data from inertial sensors, information on other processing operations that are being performed in the device or other applications that are in- use, whether the screen of the device is on, and many other factors.
  • a multi-dimensional lookup table can be generated that is indicative of frequency offsets that have been observed historically in different operating conditions.
  • This lookup table is of great utility because of the high likelihood of repeatability of measurements.
  • an observed frequency offset is likely to be close to a frequency offset that was observed previously during similar operating conditions.
  • the lookup table may comprise a list of operating condition measurements or determinations and corresponding preferred frequency offsets produced under the measured operating conditions.
  • Temperature may be measured using a thermistor, a thermocouple or any other suitable sensor.
  • determining the operating conditions comprises determining whether a component in the system is turned on or off.
  • the component may be any hardware or application in the system.
  • the component may be related or unrelated to the system.
  • the component may be a wireless interface or touchscreen of a handheld device in proximity to the local oscillator.
  • the method may include taking a remedial action based on the determined one or more operating conditions to mitigate an operating condition negatively affecting the stability of the local oscillator.
  • the remedial action can be one or more of reducing the power consumption of a component or turning off a component completely. Any suitable remedial action may be implemented.
  • the method further comprises the step of, at a later time: determining one or more subsequent operating conditions of the system and supplying a frequency offset from the stored dataset, corresponding to the one or more subsequent operating conditions, as an initial estimated frequency offset for performing the step of dynamically adjusting a frequency offset value to determine a preferred estimated value for the frequency offset in the local frequency reference.
  • the dynamic adjustment can be performed more rapidly when it is seeded with an accurate initial condition.
  • the initial condition is known to be more accurate because it is based on observations of local oscillator behaviour in similar operating conditions in previous time periods.
  • the method further comprises: determining an initial estimated frequency rate offset in the local frequency reference based on the one or more operating conditions; and dynamically adjusting, based on the phase compensated correlation signals and the initial estimated frequency rate offset, a frequency rate offset value to determine a preferred estimated value for the frequency rate offset in the local frequency reference.
  • the preferred (i.e., more accurate) estimation of the frequency rate offset in the local oscillator can also be calculated more efficiently because it can be seeded with an initial estimate based on similar operating conditions in previous time periods.
  • the method further comprises the step of, at a later time, determining one or more subsequent operating conditions of the system and supplying a frequency rate offset from the stored dataset, corresponding to the one or more subsequent operating conditions, as an initial estimated frequency rate offset for performing the step of dynamically adjusting a frequency rate offset value to determine a preferred estimated value for the frequency rate offset in the local frequency reference.
  • previous calculations of frequency rate offsets can also be stored and provided later to provide accurate seed values for determining preferred frequency rate offsets.
  • the step of determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions is performed using a model configured to predict a frequency offset in the local oscillator based on the one or more operating conditions.
  • the initial frequency estimate can be determined.
  • the model can be a neural network or machine learning model or algorithm, a formula, or any other suitable kind of model.
  • the model may be pre-trained and/or may be re-trained continuously based on calculations of frequency offsets and their corresponding determined operating conditions.
  • the method may include a further step of updating the model based on the preferred frequency offset value and the determined one or more operating conditions.
  • the model can also be used to predict the frequency rate offset, or any other higher order correction terms in addition to the frequency offset.
  • the lookup table may provide an input to the model.
  • a search window for the preferred estimated value for the frequency offset may be defined based on the initial estimated frequency offset. Equally, a search window for a preferred estimated value of a frequency rate offset may be defined based on an estimated frequency rate offset.
  • a number of candidate values may be ‘tested’, and the best-fit value can be selected.
  • the process of testing candidate values is computationally intensive, and therefore it is advantageous to reduce the task as much as possible.
  • the search window may be defined based on fixed values that are greater than and less than the initial estimated value.
  • the search window may be defined based on, for example as a percentage value of, estimated frequency offset values in the stored dataset or produced from the model.
  • the search window may be defined based on a certain number of standard deviations away from the average. This can helpfully focus the search space on the most likely frequency offset values, reducing computational load by avoiding calculations related to frequency offset values that are statistically unlikely to occur, based on the previous measurements.
  • a search window for the preferred estimated value for the frequency rate offset may be defined, based on the initial estimated frequency rate offset.
  • the one or more received signals signal are positioning signals generated by one or more remote positioning sources.
  • the one or more received signals may be generated using a known or predictable frequency, as described elsewhere.
  • the positioning sources may be selected for having a strong enough signal to noise ratio to perform phase compensation on the positioning signals over a short instability period of the local oscillator. This may enable a frequency or frequency rate offset calculation to be performed for the instability period. In this way, the calculated offset can be applied in the a correlation of a weaker received signal or positioning signal from a different remote source that cannot otherwise be integrated coherently over a required integration period.
  • the step of dynamically adjusting can be performed in a variety of ways. Any suitable method of adjusting a frequency offset value to determine a preferred or more accurately estimated value for the frequency offset in the local frequency reference based on the phase compensated correlation signals and the initial estimated frequency offset may be used.
  • the method further comprises: providing a plurality of hypothesised frequency offsets based on the estimated frequency offset and for each of the plurality of hypothesised frequency offsets: performing the step of providing phase compensation of at least one of the local signal, the received signal, and the correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated first correlation signal; and the step of dynamically adjusting comprises determining the preferred estimated frequency offset based on the plurality of hypothesised frequency offsets and the produced phase compensated correlation signals.
  • determining the preferred estimated frequency offset based on the phase compensated correlation signals is performed by, for each hypothesised frequency offset, combining the phase compensated correlation signals produced for each of the plurality of received signals.
  • the method may further include determining the hypothesised frequency offset corresponding to the highest combined correlation.
  • the preferred estimated frequency offset can be calculated in the same manner as the first aspect of the invention.
  • the amount, range and/or mode value of the hypothesised frequency offsets may be selected based on the initial estimated value, in one example. This allows the search space represented by the hypothesised frequency offsets to be smaller because the initial estimated frequency offset is likely to be close to the preferred or more accurate frequency offset of the local oscillator.
  • the method further comprises using the preferred estimated value for the frequency offset in the local frequency reference to correct a signal derived from the local frequency reference.
  • the signal derived from the local frequency reference can be corrected efficiently.
  • the step of determining one or more operating conditions may comprise determining a plurality of operating conditions, and updating the stored dataset or the model may comprise updating the stored dataset or the model based on the plurality of measured operating conditions.
  • updating the stored dataset comprises storing a frequency offset value corresponding to a combination of measurement outcomes from measuring a plurality of operating conditions.
  • the use of more operating conditions means the approximate behaviour of the local oscillator can be predicted more accurately, meaning that less computationally intensive searching for best-fit frequency offsets needs to be carried out.
  • considering a plurality of operating conditions may enable a narrower search window to be defined, because the approximate behaviour of the local oscillator can be predicted with greater confidence using more measurement data and varied types of measurement data.
  • the method may be performed at least partially in a positioning device, such as a mobile device, comprising a 5G modem, wherein the local oscillator is provided in the positioning device or in the modem.
  • a positioning device such as a mobile device, comprising a 5G modem
  • the local oscillator is provided in the positioning device or in the modem.
  • a system comprising: a local oscillator configured to provide a local frequency reference; a receiver configured to receive at least one signal from at least one remote source, along respective directions of arrival; a motion module configured to determine a movement of the receiver; and a controller configured to: determine one or more operating conditions in the system; determine an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions; for each of the at least one received signals: use the local frequency reference to provide a local signal; provide a correlation signal by correlating the local signal with the received signal; and provide phase compensation of at least one of the local signal, the at least one received signal, and the correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated correlation signal; dynamically adjust, based on the phase compensated correlation signals and the initial estimated frequency offset, a frequency offset value to determine a preferred estimated value for the frequency offset in the local frequency reference.
  • the system may be a positioning system, and the received signal may be a positioning signal.
  • a method for determining a frequency related parameter of a frequency source within a receiver comprising: receiving a plurality of signals from a plurality of remote sources; generating motion compensated correlation results using a determined receiver motion, the received signals and a local signal derived from the local frequency source; phase compensating the motion compensated correlation results to produce phase compensated correlation results using a plurality of phasor sequences that represent an error in the frequency related parameter of the local frequency source; using predictive control to predict the frequency related parameter; and jointly analysing the phase compensated correlation results associated with the plurality of remote sources to determine a frequency related parameter of the local frequency source.
  • apparatus for performing signal correlation within a signal processing system comprising at least one processor and at least one non-transient computer readable medium for storing instructions that, when executed by the at least one processor, causes the apparatus to perform operations comprising: receiving a plurality of signals from a plurality of remote sources; generating motion compensated correlation results using a determined receiver motion, the received signals and a local signal derived from the local frequency source; phase compensating the motion compensated correlation results to produce phase compensated correlation results using a plurality of phasor sequences that represent frequency error of the local frequency source; using predictive control to define the frequency error; and jointly analysing the phase compensated correlation results associated with the plurality of remote sources to determine a frequency related parameter of the local frequency source.
  • Figure 1 is a schematic diagram of a positioning system according to an embodiment of the invention.
  • Figure 2 is a schematic diagram of a control system of a positioning device in a positioning system according to an embodiment of the invention
  • Figure 3A is a schematic flow diagram for a method of performing a positioning calculation according to an embodiment of the invention
  • Figure 3B is a continuation of the method of Figure 3A of performing a positioning calculation according to an embodiment of the invention
  • Figure 4A is a schematic flow diagram for a method of creating and calculating a vector of frequency offsets according to an embodiment of the invention
  • Figure 4B is a continuation of the method of Figure 4Afor creating and calculating a vector according to an embodiment of the invention.
  • Figure 5 is a graph representing a search space used to calculate a frequency and frequency rate offset according to an embodiment of the invention.
  • the method may be used to perform channel estimation in a communication system. It is envisaged that other types of systems configured to determine a value using an unstable local oscillator may employ the method of the invention. In such cases, the positioning signals as described below may be replaced more generally with other types of signals.
  • FIG. 1 is a schematic diagram illustrating, by way of example, an environment in which the method and positioning system of the present invention may be used to provide a positioning solution.
  • a positioning system 1 includes a positioning device 100 comprising an antenna 102 configured to receive signals from remote reference sources.
  • the positioning device 100 of a user 10 receives radio signals via the antenna 102 from remote reference sources comprising a first satellite 2, a second satellite 4, a third satellite 6, and a remote ground source 8.
  • a tall building 12 bisects the lines of sight from the positioning device 100 to the third satellite 6 and the ground source 8.
  • the building 12 attenuates the signals from the third satellite 6 and the ground source 8, making the signals weaker and thus making it more difficult for the positioning device 100 to obtain an accurate measurement of position.
  • the same building 12 could also provide a path for a reflected signal from the first satellite 2 to the antenna 102.
  • the remote reference sources which may be referred to alternatively as “positioning sources”, may operate as part of any navigation system known in the art, for example a GNSS positioning system.
  • the reference sources can be comprised of any combination of satellite sources, terrestrial sources, or other types of reference sources.
  • FIG. 2 shows a schematic diagram of the positioning device 100.
  • the positioning device 100 comprises an antenna 102, a receiver 104 in connection with the antenna 102, a local oscillator 106, a controller 108, a memory 110, a motion sensor 112 and a temperature sensor 114.
  • the receiver 104 is configured to process signals received by the antenna 102 and may comprise any suitable components, such as an amplifier or an analogue to digital converter.
  • the local oscillator 106 is generally simple and low cost, and may comprise a quartz oscillator in one example.
  • the local oscillator 106 is configured to provide a timing signal for various applications in the positioning device 100.
  • the controller 108 is configured to control the operation of the electronic components of the positioning device 100, including the components shown in Figure 2 as well as other components of the positioning device 100 not directly related to the positioning system 1 , such as a touchscreen.
  • the controller 108 comprises a single processor that operates a plurality of modules described further below, the modules configured to perform specific functions.
  • the modules may be provided separately with different associated processors, or may be provided in a distributed fashion across a network.
  • the memory 110 may comprise non-transitory computer readable media such as one or more of a random access memory unit, read-only memory unit or a combination thereof configured to store executable instructions of the various modules of the controller 108.
  • the motion sensor 112 may comprise a plurality of separate motion and/or orientation sensors, such as inertial sensors, gyroscopic sensors, or magnetometers.
  • the temperature sensor 114 is configured to determine a temperature and/or rate of change of temperature of the local oscillator 106, and thus may be positioned on or near the local oscillator 106.
  • the temperature sensor 114 may comprise a thermocouple, thermistor or other suitable means for determining temperature. Other sensors for measuring operating parameters or determining operating conditions of the positioning device 100 may be provided in addition or alternatively to the temperature sensor 114.
  • the controller 108 comprises a number of modules, including a reference source selector 116, a local signal generator 118, a correlator 120, a motion determination module 122, a local oscillator offset calculator 124, a phase compensation module 126, a stability period determination module 128, a positioning calculator 130, and a prediction model 134.
  • the memory 110 stores a lookup table 132 and prediction data 136 for the prediction model 134. The functionality of these modules of the controller 108 and the lookup table 132 are described further below with reference to Figures 3-5.
  • the positioning device 100 may be configured as a smartphone, laptop, or any other type of device capable of determining a position.
  • reference sources such as those shown in Figure 1 utilise high quality oscillators, such as atomic oscillators.
  • high quality oscillators operate within much narrower frequency windows compared to local oscillators typically found on handheld positioning devices such as smartphones. In other words, the high quality oscillators are more accurate and operate within a much lower frequency tolerance compared to many low quality oscillators.
  • This allows the reference sources to provide consistent and reliable frequency reference signals to generate in turn, using the frequency reference signals, consistent and reliable positioning signals.
  • the stability of the reference source local oscillators enables the positioning device 100 to store, lookup or assume the frequency of the reference signals provided by those reference sources to a high degree of accuracy compared to the “actual” reference signal.
  • Tall buildings can attenuate signals from the reference sources where they block the light of sight between a reference source and the positioning device 100, as shown in Figure 1. This may reduce the signal to noise ratio of the positioning signals received from the reference sources. In some instances, the resulting signal strengths may be too low for use in positioning calculations, unless the signals are integrated over a relatively long period (perhaps as much as 1 second, or longer) during correlation. Integrating over a longer time period time enables the positioning device 100 to effectively improve the signal to noise ratio of received signals to sufficient levels to obtain an accurate position fix from the reference sources. A similar problem can arise where there are reflected signals and it is difficult for the receiver to distinguish the line-of-sight signal from the reflected signal.
  • the local oscillator 106 is only stable over time periods shorter than the required integration period.
  • the local oscillator 106 is stable over about 0.2 seconds, and the required integration period to detect attenuated signals may be about 1 second.
  • This instability makes it difficult or impossible to integrate coherently over the full integration period using known techniques, such as SupercorrelationTM.
  • previous approaches have not been able to coherently integrate for long enough periods while using poor quality oscillators to achieve a position fix from weak positioning signals.
  • the local signal generator 118 uses a local frequency reference provided by the local oscillator 106 to generate a local signal that attempts to replicate a received positioning signal from a reference source.
  • the correlation can involve integrating these signals over longer periods of time to improve the result of the correlation.
  • the local frequency reference has to be stable over the integration period for this to work because the local signal is generated using this local frequency reference. This means that any errors in the local frequency reference (i.e. discrepancies with respect to a known or predictable frequency reference signal used by the reference source to produce the positioning signal) propagate to the local signal.
  • the local oscillator 106 is not stable over the integration period, then using known approaches the local signal will also not be stable over the integration period.
  • Phase compensation is one technique that can be applied to improve the detection of weak signals. Phase compensation involves correcting one of the signals involved in, or the resulting signal of, the correlation based on a movement of the receiver 104 along the line of sight to the positioning source. However, it is only useful to apply phase compensation with a stable frequency reference from a local oscillator. Phase compensation may not be a sufficient countermeasure for detecting weak signals when applied to shorter sections of signals corresponding to a period of shortened oscillator stability. Thus, known approaches have not been able to make use of phase compensation in cases where the local oscillator is only stable for periods less than the required integration period. Phase compensation is sometimes referred to as “motion compensation” because adjusting the phase of a received or produced signal can be used to counteract the effects of relative motion between a source and a receiver on a correlation.
  • the stability of the local oscillator 106 changes in different operating conditions and may fluctuate even under constant operating conditions. Temperature is one example of an operating condition that can affect oscillator stability.
  • 5G modems that have been found to generate significantly more heat than modems for previous generations of telecommunication standards.
  • the heat from a 5G modem can heat the local oscillator 106 to temperature regimes in which the local oscillator 106 is more unstable.
  • Local oscillators typically found on mobile devices are not sufficiently equipped to compensate for the effects of the extra heat from these 5G modems. Accordingly, some more recent mobile device models have experienced degraded performance when performing positioning calculations.
  • Figures 3A and 3B show a schematic flow diagram of a method 300 that can be implemented by the positioning system 1 of Figures 1 and 2 to determine an accurate position of the positioning device 100 despite the instability of the local oscillator 106.
  • the local oscillator 106 provides a local frequency reference.
  • the local frequency reference can be any form of timing signal that can be used as a reference for generating other signals (for example, positioning signals) with a desired frequency.
  • the local frequency reference could be a sine wave, a square wave, or another form of timing signal.
  • the local frequency reference will generally deviate from a “true” frequency reference, based on Universal Time, or the frequency reference provided by a higher fidelity oscillator such as an atomic clock. This means that the local frequency reference inevitably contains time-varying errors or “offsets”.
  • the receiver 104 can optionally receive one or more frequency reference signals via the antenna 102 from a plurality of reference sources, including the satellites 2, 4, 6 and the ground source 8.
  • Each of the reference sources has a highly stable local oscillator that is more stable than the local oscillator 106 of the positioning device 100.
  • the highly stable local oscillators may be based on an atomic clock.
  • the reference source selector 116 selects a particular reference source from which to receive a frequency reference.
  • the reference source selector 116 may select any suitable available reference source.
  • the reference source selector 116 may be configured to select the reference source providing the frequency reference signal with the best signal to noise ratio, as measured by the receiver 104.
  • the reference source selector 116 selects the first satellite 2, which provides a frequency reference signal 14.
  • the first satellite 2 may provide a good signal strength due to its current position being near the zenith of the receiver 102 enabling it to provide a line of sight that avoids the tall building 12.
  • the reliability of the local oscillator of the first satellite 2 means that the received reference signal 14 has a known or predictable frequency. This known frequency can be stored in the memory 110 or retrieved from an online database by the positioning device 100 via an internet connection.
  • Positioning signals are generated using the known or predictable frequency reference provided by high quality oscillators.
  • the received frequency reference can therefore be included in or derivable from a positioning signal from such a reference source. For this reason, it may not be necessary to receive a frequency reference signal separate from a positioning signal, as in the present example. Instead, the error in the local oscillator 106 can be determined with respect to the frequency included in (or used to generate) a positioning signal. It is possible to determine the frequency used to generate a positioning signal by analysing the positioning signal using known techniques. Of course, determining the offset in the local frequency reference with respect to a frequency reference included in a positioning signal versus determining the offset with respect to a separately received frequency reference would be alternative approaches.
  • the stability period determination module 128 determines the time period during which the local oscillator 106 is stable, or is assumed to be stable, which may be referred to as the “stability period” of the local oscillator 106.
  • the stability of the local oscillator 106 is influenced by the particular operating conditions of the local oscillator 106. For instance, the stability period may be shorter when the local oscillator 106 is at a higher temperature, or while a touchscreen of the positioning device 100 is in operation (due to heating or electromagnetic effects, for example). Therefore, the stability period may be calculated during each positioning calculation based on a measurement of operating parameters.
  • Operating parameters are a numerical representation of an operating condition, such as temperature or screen state. However, for brevity the terms operating conditions and operating parameters may be used interchangeably herein.
  • the operating parameters are measured by the temperature sensor 114 or the controller 108 and other sensors to determine or characterise the operating conditions of the local oscillator 106.
  • the calculation may be based on a formula that may be stored in the memory 110 and used by the stability period determination module 128 to determine the required stability period during each positioning calculation.
  • the formula could be stored remotely and performed by a remote processor across a network in a distributed system.
  • the determination of the stability period may be calculated using the prediction model 134, as is described in further detail below.
  • the stability period may be set to a fixed duration, for example 0.1 or 0.2 seconds.
  • the fixed duration may be based on the specifications of the local oscillator 106 included in the positioning device 100.
  • the fixed stability period may be stored in the memory 110. Using a fixed stability period assumes rather than calculates the stability period, which may reduce processing demands. It is envisaged that other methods of calculating or determining the stability period could be implemented.
  • the stability period is set to a fixed duration or calculated based on measured operating conditions, it may be desirable to assume a stability period that is as long as possible while still producing good results. This may minimise the number of individual frequency offsets that must be calculated during a later step.
  • the receiver 104 receives at least one positioning signal from the remote sources 2, 4, 6, 8.
  • the reference source selector 116 selects a positioning signal 14 from the first satellite 2 and a positioning signal 18 from the second satellite 4, which can be referred to collectively as the “first” signals.
  • the first signals include two separate signals from two corresponding remote sources along respective directions of arrival.
  • the method 300 can be performed using only one of the positioning signal 14 or the positioning signal 18 or, advantageously, with 3 or more signals, in other embodiments.
  • the motion determination module 122 utilises data provided by the motion sensor 112, which may include a plurality of measurements from different constituent motion and/or orientation sensors, to determine a motion of the receiver 104. Specifically, the motion determination module 122 determines the motion along the line of sight to the currently selected positioning source or sources, in this case the first satellite 2 and the second satellite 4. The approximate position of the first satellite 2 and the second satellite 4 and an approximate position of the receiver 104 can be used to determine the component of the motion of the receiver 104 along the line of sight to the first satellite 2 and the second satellite 4.
  • the motion of the receiver 104 during each of a plurality of sequential stability periods is determined.
  • the speed, direction and the degree of acceleration of the motion of the receiver may change between each sequential time period. These changes are tracked by the motion sensor 112 so that the particular motion during a particular stability period can be known and later used in calculations.
  • the motion can be measured directly using the motion sensor 112.
  • the motion could be assumed or inferred based on previous measurements from the motion sensor 112. For example, if the motion sensor 112 and the motion determination module 122 establish that the receiver 104 is moving at a fixed speed in a straight direction, e.g. while driving or on a train, it may be possible to assume the movement based on a calculation. This may be simpler or less computationally intensive in some cases than performing a measurement.
  • the motion of the receiver 104 may be determined through measurement of the receiver motion (e.g., using one or more measurements of gyroscope, magnetometer, velocity, step counting, etc.,) or through assuming the receiver motion based upon past motion (e.g., constant motion in a particular direction due to travel in a vehicle or repetitive motion due to pedestrian travel).
  • motion may be extrapolated or computed from prior motion in specific environments. Machine learning techniques may be used in such situations to predict receiver motion.
  • the local oscillator offset calculator 124 creates an empty vector of offsets.
  • m is the total number of consecutive stability periods whose sum is greater than or equal to a required integration period, described further below in step S322.
  • the vector is comprised of a series of frequency offset and frequency rate offset “value pairs”, fN , fN. These offset values represent the offset in frequency and in the time derivative of frequency (i.e.
  • frequency rate between the local signal reference produced using the local oscillator 106 in step S302 and a known or predictable frequency, which may be a frequency derived from a positioning signal or a separate frequency reference.
  • a known or predictable frequency which may be a frequency derived from a positioning signal or a separate frequency reference.
  • Adjacent value pairs (shown in Equation 1 as separated by semi-colons) in the vector correspond to adjacent sequential stability periods of the local oscillator 106 in real-time.
  • Each value pair characterises the error in the local oscillator 106 during a particular period of stability of the local oscillator 106.
  • each offset provides an accurate correction within a given stability period. Therefore, the vector characterises frequency offsets across an extended time period to map the evolving error in the local frequency reference across that extended time period.
  • the vector of offsets could be represented by phase and phase rate offsets alternatively (and equivalently) to frequency offsets.
  • the vector of offsets uses only frequency and frequency rate offsets; however higher order time derivative offsets could be used in addition to provide a more accurate correction of the local oscillator 106. It has been found that using only up to first order time derivatives of phase or frequency provides a sufficient level of correction without unduly burdening the controller 108 in terms of processing load. However, in order to reduce processing load further, the method 300 can also be performed without considering time derivative offsets and only using zeroth order frequency or phase offsets (although such an approach would necessitate a reduction in the duration of the stability periods of the local oscillator).
  • the vector of offsets could be split into a first vector for the frequency offsets in each stability period and a second vector for the offsets in frequency rate in each stability period.
  • Vectors of other combinations and dimensions could be used in other embodiments.
  • the local oscillator offset calculator 124 then populates the vector initialised in step S314 with each calculated offset. This results in a complete vector of offsets that maps the error in the local reference signal across a plurality of sequential time periods. In other examples, the vector may be populated as each individual value pair is calculated.
  • the method uses the received first signals and involves generating a first local signal and adjusting the first local signal based on various estimated local oscillator 106 offset values.
  • a set of first correlation signals is provided by correlating each of the first positioning signals (in this example, the positioning signal 14 and the positioning signal 18) and the first local signal.
  • Phase compensation is applied to the first correlation signals and the offset values that produce the best correlation result provide the true offset in the local oscillator 106.
  • a further positioning signal is received, which may be referred to as the “second positioning signal” and in general is weaker or more attenuated (i.e. , is received with a lower signal to noise ratio) than the first positioning signals.
  • the receiver 104 receives the positioning signal 16, which has a low signal to noise ratio due to attenuation by the tall building 12. Therefore, the positioning signal 16 must be processed using phase compensation in order to be correlated effectively.
  • receiving the second positioning signal may occur at any previous time in the method, such as together with the positioning signal 14 and the positioning signal 18 at step S310.
  • step S3108 the local signal generator 118 generates a second local signal using the local frequency reference corrected using the vector of offsets. Corrections based on the offset vector may be applied to the local frequency reference using known corrective techniques for correcting a timing signal. The corrective techniques may be based on the received frequency reference and its known or predictable frequency. Corrections could also be applied directly to the second local signal, or other signals that depend on or are used in combination with the second local signal, as discussed in further detail below.
  • the second local signal is generated using the corrected local frequency reference, and thus the corrections propagate to the second local signal.
  • the local signal generator 118 generates a second local signal across an extended time period that benefits from the increased stability of the local oscillator, once corrections have been applied.
  • This improved second local signal enables coherent correlation to take place between a more attenuated positioning signal, such as the positioning signal 16, and the second local signal over an extended time period, thereby improving the signal to noise ratio of the correlation signal. This enables a pseudorange to be determined from the third satellite 6, despite the attenuated positioning signal 16.
  • the frequency corrections have been applied to the second local signal using the vector.
  • This adjusts the second local signal so that it corresponds more closely to the positioning signal 16, thereby improving the correlation between the second local signal and the positioning signal 16 across the required integration period.
  • the different oscillator corrections can instead be applied to the received positioning signal 16.
  • the positioning signal 16 would be adjusted using the vector to match the second local signal more closely, which would have the same effect of improving the resulting correlation between the positioning signal 16 and the second local signal.
  • the frequency corrections could be applied directly to the correlation signal resulting from correlating the second local signal and the positioning signal 16 in the later step S322, or could be applied to any combination of the second local signal, the received positioning signal 16, and the correlation signal of step S322.
  • the phase compensation module 126 performs phase compensation on the second local signal. This involves adjusting the second local signal to account for changes in the received positioning signal 16 that arise due to the relative motion along the line of sight between the receiver 104 and the third satellite 6. In other examples, phase compensation can be performed alternatively on the received positioning signal 16, or on the correlation signal produced from correlating the second local signal with the positioning signal 16.
  • phase compensation By providing phase compensation corresponding to the direction which extends between the receiver 104 and the third satellite 6 it is possible to achieve preferential gain for signals received along this direction.
  • a line-of-sight signal between the receiver 104 and the third satellite 6 will receive gain preferentially over a reflected signal, e.g. from a nearby building, that is received in a different direction.
  • this can lead to a remarkable increase in positioning accuracy and a better estimate of the signal phase because non- line-of-sight signals (e.g. reflected signals) are significantly suppressed.
  • Applying phase compensation ensures the highest correlation may be achieved for the line- of-sight signal, even if the absolute power of this signal is less than that of a non- line-of-sight signal.
  • applying phase compensation boosts the signal to noise ratio of the received positioning signals to enable significantly more accurate positioning calculations.
  • a received positioning signal may include any known or unknown pattern of transmitted information, either digital or analogue. The presence of such a pattern can be determined by a crosscorrelation process using a local copy of the same pattern (in this example, the second local signal).
  • Received positioning signals may be encoded with a chipping code that can be used for ranging. Examples of such received signals include GPS signals, which include Gold Codes encoded within the radio transmission. Another example is the Extended T raining Sequences used in GSM cellular transmissions.
  • Performing the correlation involves integrating the first local signal and the positioning signal 16 over an “integration period”.
  • Such an approach requires that the second local signal is generated using a local oscillator that is stable over the integration period.
  • coherent integration is made possible despite the instability in the oscillator 106.
  • the different errors in the local oscillator 106 are identified and corrected during the integration period.
  • the second local signal can then be constructed in different sections, each of which have different local oscillator correction terms in different time periods. Phase compensation can therefore be applied to the second local signal across the full integration period, since the second local signal can now be integrated coherently despite the poor stability of the local oscillator 106 and the poor signal strength.
  • the integration period can be determined by the correlator 120 based on the signal to noise ratio of received signals, or alternatively can be set to a sufficiently long duration for detecting weak signals, such as 0.5 seconds, 1 second, 2 seconds or longer.
  • step S324 the positioning calculator 130 calculates a positioning range or pseudorange associated with the third satellite 6 based on the result of the correlation in step S322.
  • the precise position of the positioning device 100 can be inferred by obtaining positioning ranges from at least three further satellites and determining the intersection between the four calculated ranges.
  • the controller 108 performs a joint estimation during a phase compensation process in step S316 in order to directly determine values for frequency offset and frequency rate offset.
  • different values for frequency offset and frequency rate offset can be tested in a two-dimensional search space when performing the phase compensated correlation. This can allow precise determination of the frequency and frequency rate offset in step S316.
  • This approach is preferred because it is considered more accurate than determining the difference between the frequency of the local oscillator and the frequency of a reference source.
  • strong signals such as the “first” positioning signals 14 and 16
  • step S326 the controller 108 returns to previous step S302, in order to perform steps S302 to S324 for additional sources from which a positioning signal is being received by the receiver 104, although in practice these steps would generally be undertaken in parallel.
  • the positioning calculator 130 uses the at least four determined ranges to calculate a position of the positioning device 100.
  • Figures 4Aand 4B display an example method 400 for performing steps S314 and S316 of method 300. Specifically, Figures 4A and 4B show a flow diagram for a method of calculating the offsets between a known or predictable frequency and the local frequency reference produced using the local oscillator 106.
  • step S402 the method 400 begins by determining, by the local oscillator offset calculator 124, the number of sequential stability periods required to match or exceed a required integration period for performing an accurate correlation. This can be determined using the stability period calculated in step S308 by the stability period determination module 128.
  • the required integration period may be dynamically adjusted based on, for example, the signal to noise ratio of the received positioning signal 16. The required integration period may be longer for a poorer signal to noise ratio. Alternatively, the required integration period may be set at a fixed value stored in the memory 110 that is sufficiently long to enable very weak positioning signals to be correlated.
  • the local oscillator offset calculator 124 may calculate the required size of the vector of offsets, or “offset vector”, by determining the number of stability periods whose sum is greater than or equal to the required integration period. In this example, the local oscillator offset calculator 124 determines that m stability periods are required and initialises the offset vector accordingly with a length of (mx2).
  • step S404 the local oscillator offset calculator 124 initialises a loop to perform steps S406 to S426 a number of times so that the unique error in the local frequency reference, and hence the error in the local oscillator 106, can be determined for each sequential stability period.
  • the local oscillator offset calculator 124 initialises the loop to iterate m times and determines a particular frequency and frequency rate offset value in each iteration.
  • the particular error in the local oscillator 106 in a given time period is related to the operating conditions of the local oscillator 106 in that time period.
  • the local oscillator 106 may tend to provide an overly high local frequency reference when the local oscillator 106 is hotter, or while the positioning device 100 is being jolted or vibrated by external forces.
  • the local oscillator 106 may tend to provide a local frequency reference with a lower than average frequency when certain components of the positioning device 100 are in operation.
  • the local oscillator 106 may not be truly unstable because its instability can be predictable to some extent, based on its environment. In general, these environmental operating conditions can change between stability periods.
  • the present invention leverages these considerations in steps S406 to S412 to reduce the processing load involved in determining the particular offsets in a particular stability period.
  • the local oscillator offset calculator 124 determines the operating conditions of the local oscillator 106 during the specific stability period for which the frequency offsets are currently being calculated. For example, the local oscillator offset calculator 124 may utilise continuous measurements taken by the temperature sensor 114 and/or the motion sensor 112 to establish the operating conditions of the local oscillator 106 during the relevant time period. In subsequent steps, it is possible to check whether these operating conditions have been encountered by the positioning device 100 in the past by referring to the lookup table 132. Alternatively, or in addition, the prediction model 134 can use the determined operating conditions to make a prediction or initial estimation of the frequency offset.
  • the particular error in the local oscillator 106 is influenced, though not generally determined solely by, its environment and the conditions under which it operates. Therefore, storing previously calculated offsets in the lookup table 132 enables subsequent offset calculations to benefit from the knowledge of how the local oscillator 106 behaved in similar conditions in the past.
  • the lookup table 132 is used in steps S408 to S410 to reduce the processing load involved in calculating the error in the local oscillator 106 by considering previous offsets in the local frequency reference provided by the local oscillator 106.
  • the lookup table 132 is a dataset configured to store the frequency or phase offsets that have been measured during previous uses of the positioning device 100 in particular operating conditions.
  • the lookup table 132 is a multidimensional array that stores calculated frequency and frequency rate offset value pairs corresponding to particular operating conditions.
  • Some operating conditions such as whether a particular component (e.g., the touch screen or wireless interface) of the positioning device 100 is in operation may be characterised with a binary operating parameter.
  • a touchscreen can only be on or off, and the operating parameter may take a value of one or zero.
  • Other types of measurements may be continuous, such as the degree of vibration or the temperature of the local oscillator 106.
  • the lookup table 132 may be configured to use a bin width, such that measurements of an operating condition within the bin width correspond are considered the same measurement for the purposes of storing relevant offset calculations. This may be useful to maintain the lookup table 132 at a manageable length, and hence a manageable storage size.
  • the lookup table 132 may be configured so that certain dimensions of the lookup table have a length corresponding to a sensor resolution. For example, a dimension of the lookup table 132 corresponding to temperature may have a length equal to the measuring range of the temperature sensor 114 divided by its resolution. This would allow a pair of offsets to be stored for every possible sensor value.
  • the local offset calculator 124 may determine the particular error in the local frequency reference produced by the local oscillator 106 during operating conditions of: a local oscillator temperature of 20°C, the screen being in an “on” state, and substantially no jolting of the positioning device 100. The local offset calculator 124 may then add the calculated offset values to a corresponding location in the lookup table 132 corresponding to these operating conditions. In a subsequent calculation, the local oscillator offset calculator 124 may, for example, determine offsets for operating conditions that differ in respect of temperature, i.e., conditions of: local oscillator 106 temperature of 15°C, the screen being in operation, and substantially no jolting of the positioning device 100. The calculated offsets for these conditions may be stored in a different location in the lookup table 132. In this manner, over time, the lookup table 132 may store the results of offset calculations performed across a wide space of operating conditions.
  • the local oscillator offset calculator 124 may only consider the operating conditions of (i) temperature, and (ii) whether a touchscreen is in operation.
  • the lookup table 132 may be configured as a three dimensional array (AxBxC).
  • A may correspond to the temperature of the local oscillator 106, and may have a length equal to the number of temperature bins in use. In this simplified example, four bins of temperature may be in use, and the lookup table 132 may have a corresponding dimension length of four.
  • Another dimension, B may correspond to the state of the screen, and thus would have a length of two since the screen can only be on or off.
  • the remaining dimension, C corresponds to the frequency offset and the frequency rate offset measured under the corresponding operating conditions.
  • the dimension C has a length of two to store two different offset values for every possible combination of screen state and temperature bin.
  • the lookup table 132 can therefore be implemented as a matrix of values of dimensionality (4x2x2) storing either frequency offsets in the (/, j, 1) slice and frequency rate offsets in the (/, j, 2) slice, for arbitrary matrix indices / and j.
  • the lookup table 132 may typically have a higher dimensionality according to the number of additional operating parameters (e.g., degree of device jolting, acceleration or vibration, etc) that are factored into account. For example, if the presence of vibrations in the local oscillator 106 is also factored in, the lookup table 132 may be a four dimensional matrix or data structure.
  • additional operating parameters e.g., degree of device jolting, acceleration or vibration, etc
  • the lookup table 132 may also account for whether the temperature is increasing or decreasing. This is because oscillators can exhibit temperature hysteresis, i.e., can behave differently at a given temperature depending on the recent or historical temperature of the oscillator. For example, the local oscillator 106 may provide a relatively lower frequency reference when the temperature is at 20°C and increasing, and a relatively higher frequency reference when the temperature is at 20°C and decreasing.
  • the lookup table 132 can be configured to store offset values for each case of increasing or decreasing temperature.
  • the lookup table 132 can have an additional dimension Z of length 2, providing an array of (AxZxBxC) so that each temperature value has two corresponding frequency and frequency rate offset entries in the lookup table.
  • One pair of frequency and frequency rate offsets would correspond to when the local oscillator 106 is at a respective temperature and the temperature is increasing. The other pair would correspond to the same temperature but when the temperature is decreasing.
  • the additional dimension in this case could be embodied as a binary dimension, i.e. taking values of 1 or 0 only, similar to the operating condition of whether the touchscreen is in operation. This allows the lookup table 132 to account for temperature hysteresis effects in the local oscillator 106.
  • the dimension C could have a greater or shorter length depending on the order of frequency corrections in use.
  • the dimension C could have a length of one if only frequency offsets are applied, or could have a length of three if both first and second time derivative corrections are calculated and applied.
  • the lookup table 132 could be any form of dataset implemented in a variety of other ways, such as using other forms of data structures, or using a plurality of separate matrices or other data structures.
  • the lookup table 132 could be implemented using a table to store specific measurement values for each operating condition corresponding to a particular time period.
  • the table may store the corresponding offset values calculated for these conditions and the particular time period.
  • a list of measured operating conditions and the corresponding offset values calculated subsequently may be built up over time by the local oscillator offset calculator 124 in the lookup table 132.
  • the local oscillator offset calculator 124 may refer to the closest set of operating condition measurements in the list in order to restrict a “search space”, as discussed further below.
  • the lookup table 132 may be configured to store a plurality of offset values for the same operating conditions and store additionally an average offset value for those conditions.
  • the average offset for particular conditions may be calculated by the local oscillator offset calculator 124.
  • the average offset value for particular conditions may then be used to set a search window width, as discussed further below.
  • only the most recent offset values determined for a particular set of conditions may be stored, and thus subsequent measurements in the same operating conditions may overwrite previously measured offsets.
  • the prediction model 134 can include a mathematical formula or Al-based model, such as a neural network or machine learning model, that is able to make an initial estimate or initial prediction of the error in the local oscillator 106 based on the determined operating conditions. In any case, the prediction model 134 allows future behaviour of the local oscillator 106 to be predicted through a characterisation of past behaviour.
  • the prediction model 134 can be used in a similar manner as the lookup table 132 to provide an initial frequency estimation that constrains a search window for calculating the frequency offset more precisely, as explained in further detail below. Use of such a model can also be referred to as using “predictive control”.
  • the model can be pre-trained with prediction data 136 stored in the memory, or continuously retrained based on the determined operating conditions and each calculated frequency offset. Alternatively, the model can incorporate data from the lookup table 132. If a pre-trained model is used that is not continuously re-trained or updated based on calculated frequency offsets, it may not be necessary to store each calculated offset and the corresponding operating conditions. Continuously retraining the model would enable the model to be tailored to the particular device in which it is implemented.
  • Data from sensors or determinations made by the controller 108 may be used to control operational functions of the device 100 to mitigate operating conditions that negatively affect the stability of the local oscillator 106. For example, if a sensor indicates the local oscillator 106 temperature is becoming extreme to the point of making phase compensation a non-viable option to correct for the temperature, the controller 108 may inform the device 100 to perform a mitigating action to lower the temperature, e.g., deactivate the screen, slow the processor speed, deactivate one or more modems, etc.
  • a mitigating action e.g., deactivate the screen, slow the processor speed, deactivate one or more modems, etc.
  • step S408 the local offset calculator 124 can check the lookup table 132 to determine if the set of operating conditions determined in the previous step corresponds to a “known” set of operating conditions.
  • a given set of operating conditions may be “known” if these same measurements, or, for example, measurements within a certain similarity threshold, have been performed previously and used to determine an offset of the local frequency reference.
  • the local offset calculator 124 may restrict a search window in “(A , A )” space based on the previous calculation. For example, a previously calculated frequency and frequency rate offset corresponding to the determined operating conditions can be used as an initial estimated value for calculating the current frequency offset.
  • the search window can be set based on this initial estimated value.
  • the operating conditions may be provided as an input to the prediction model 134.
  • the prediction model 134 can then analyse the operating conditions and provide an initial estimated frequency offset, which can be used to define the search window instead.
  • Figure 5 shows a graph 500 comprising two axes that represent a range of possible frequency offset values on the y-axis and frequency rate offset values along the x-axis, for a particular stability period.
  • Points on the graph 500 correspond to a point in (A , A ) space, where each point in the space represents a possible combination of offset values.
  • a search window can be defined as an upper and lower bound along each axis of this (A , A ) space, between which a subset of points in the space are contained.
  • a large search window 502 is shown, encompassing a greater number of test points 504.
  • a narrow search window 506 is also shown, encompassing a lesser number of test points 508. In practice, only one of a larger or a narrower search window would be applied in a given iterative cycle. However, for the purposes of illustration the large search window 502 and the narrow search window 506 are shown simultaneously.
  • test points in the search window represent hypothesised frequency offsets or errors in the local frequency reference produced by the local oscillator 106.
  • a “preferred” frequency offset value i.e. , a best estimate of the error in the local oscillator 106, can be determined.
  • the local oscillator offset calculator 124 is configured to determine the “true” offset values for a particular stability period by performing a calculation for each test point in a single search window and determining the best-fit solution. To perform the calculation for each test point, a local “test signal”, i.e. , a “first local signal” that is different from the second local signal generated in step S318, is created using a local frequency reference adjusted using the offset value pair of the particular test point.
  • This local test signal is then correlated with each of one or more (“first”) positioning signals (such as the positioning signal 14 and the positioning signal 18 referred to as the “first positioning signals” above) with better signal to noise ratios than the (“second”) positioning signal 16 that allows phase compensation to be performed coherently over the instability period of the local oscillator 106.
  • the first positioning signals are generated using a known or predictable frequency, for example using a high fidelity local oscillator of a reference source. This may be included in (or used to derive) the first positioning signals.
  • the first positioning signals are then correlated with the local test signal using the phase compensation module 126 to apply phase compensation to one of the signals in, or the result of, the correlation over a single stability period.
  • a correlation result “z” is a function “F” of frequency offset and frequency rate offset, as shown in equation (2) below.
  • Example (arbitrary) contours are plotted on the graph 500 as a simplified illustration of how values of the function F could change over the (A , A ) space.
  • a maximum 510 of the function F is shown in Figure 5. The maximum 510 corresponds to the best-fit values 512, 514 for the frequency offset and frequency rate offset in a particular stability period.
  • the correlator 120 performs the correlation for each test point in the search window, until it can be established that the maximum 510 has been found.
  • the offset values corresponding to the maximum 510 of the function F provide the best-fit values 512, 514, which most closely represent the true error in the local oscillator 106 during the particular period of stability.
  • the maximum 510 is a maximum value in this example; however the correlation results z may be analysed to determine best-fit values 512, 514 using any other constraint mechanism. For example, a search for a minimum value may be performed, or alternatively a best-fit determination based on more complex criteria may be performed.
  • the search window size may be set based on a percentage of the previously calculated offset under those conditions, such as a search window of ⁇ 50% of the previously calculated frequency and frequency rate offsets.
  • the search window size may alternatively be calculated using more complicated formulas.
  • setting a narrow search window 506 avoids performing the test correlation calculation for a large number of points in the (A , ) space, thereby reducing the processing load to determine a single offset pair in known conditions.
  • the first test point of a search window effectively sets the initial estimate for the offset values.
  • a narrow search window 506 sets an initial estimate, (or “initial condition”) that is closer to the “true” or the final best-fit value.
  • the search window could be set based on an initial estimate of the frequency offset from the prediction model 134.
  • the search window could be ⁇ 50% of initial estimated frequency and frequency rate offsets made by the prediction model 134.
  • the method 400 may then proceed to step S414.
  • step S412 a wide search window 502 is set by the local oscillator offset calculator 124.
  • the local oscillator offset calculator 124 may add the measured operating conditions to the lookup table 132.
  • the lookup table 132 may not record particular operating condition measurements. In such cases, the lookup table 132 may have a pre-allocated but currently empty storage location corresponding to the particular measured operating conditions for storing an offset value pair.
  • the search window size can also be constrained in other ways.
  • the prediction model 134 can determine a confidence or variability score based on the determined operating conditions.
  • the score can represent the variability of the local oscillator 106 in the corresponding operating conditions.
  • a high score can indicate that the local oscillator 106 is particularly unstable and that a wider search window 502 should be used.
  • a lower score may indicate that a narrower search window 506 can be used because the local oscillator 106 is known to be somewhat more stable in the current conditions.
  • the prediction model 134 can compare the frequency offset most recently calculated with a more recent frequency offset prediction.
  • the size of the difference between the more recent prediction and the most recently calculated value can define the size of the search window. For example, if the prediction and current values are very different, the number of hypotheses may be expanded. Conversely, if the difference is small, a lesser number of hypotheses may be used.
  • step S414 the local oscillator offset calculator 124 initialises a loop to be performed for each point in (A , ) space within the search window.
  • step S416 for a particular test point in (A , A ) space, the local signal generator 118 constructs a local test signal of duration corresponding to the duration of the stability period. This is performed using the local frequency reference from the local oscillator 106 adjusted according to the point in (A , A ) space currently being tested.
  • this local test signal is correlated by the correlator 120 with one of the "first" positioning signals, or each of the first positioning signals in turn, which may have a better signal to noise ratio than the positioning signal 16, over a stability period.
  • the receiver 104 receives a positioning signal 18 from the second satellite 4 as the first positioning signal along the line of sight to the second satellite 4. The result of the correlation produces a first correlation signal.
  • the phase compensation module 126 applies phase compensation to one of the local test signal, the positioning signal 18, or the resulting first correlation signal to produce a phase compensated first correlation signal. Phase compensation can be performed in step S418 using the motion of the receiver 104 during the relevant stability period determined in step S312.
  • the phase compensation may be performed based on the line of sight motion to the second satellite 4.
  • the resulting signal of the phase-compensated correlation may be turned into a “test value” using the function F, for example using a formula or by performing an integration, to provide the correlation result z of Equation 2.
  • step S420 the local oscillator offset calculator 124 checks to see if the test value calculated in step S418 is greater than the previous largest test value obtained from performing steps S416 and S418 for previous test points in (A , A ) space. If the current test value is larger than any calculated during previous iterations of the loop initialised in step S414, then the local oscillator offset calculator 124 determines that a new best-fit offset value pair has been found. The best-fit offset values that produced the maximum are recorded. Otherwise, if the test value is not greater than the previous best-fit test value, then the frequency offsets corresponding to the current test point may be discarded due to being less accurate.
  • the method 400 dynamically adjusts the frequency offset values by continuously replacing a best- fit pair of offsets with a better-fitting pair of offsets based on the phase- compensated correlation.
  • the local oscillator offset calculator 124 may determine that the best fit frequency offsets are likely to lie between two of the hypothesised test values and thus may interpolate between the test values to provide the best estimate of the frequency and frequency rate offsets.
  • step S422 the local oscillator offset calculator 124 performs steps S416-S420 for each test point within the search window of (A , A ) space. After performing the loop for each test point, a global maximum test value of z within the search window is determined and the corresponding offset values are stored. For example, the local oscillator offset calculator 124 may identify the best-fit values 512, 514 of maximum 510, as shown in Figure 5. If the operating conditions were found to be known and a narrower search window was set at step S410, steps S416-420 can be performed fewer times due to less test points being encompassed by the smaller search window.
  • Steps S418-S422 have been performed using a single “first” positioning signal 18 from the second satellite 4. However, these steps may be repeated (or performed in parallel) for additional positioning signals received from a plurality of (“first”) remote sources, such as the first satellite 2 and the corresponding positioning signal 14. In general, a large number of first positioning signals may be used. Steps S418-S422 may be repeated in a loop for each of the first positioning signals. Alternatively, a correlation may be performed between the local test signal and each received first signal at step S418 to produce a phase compensated correlation result for each test point in the search window and for each of the received first signals.
  • the function F may be constructed by combining the test values computed in (A , ) space for each additional first positioning signal.
  • the positioning signal 18 is used in the method 400 and the positioning signal 18 is received along a direct line of sight and, at the same time, along an indirect direction of arrival resulting from a reflection, issues can occur.
  • only one of the hypothesised frequency offsets actually corrects an error in the local oscillator 106.
  • the remaining hypothesised frequency offset effectively “corrects”, or counteracts, a phase offset resulting from the positioning signal 18 taking the reflected path, leading to a stronger correlation result.
  • This remaining hypothesised frequency offset can be mistakenly determined to be the frequency offset value resulting from the local oscillator 106 instability for a given time period.
  • the calculated frequency offset does not represent the error in the local oscillator 106 in the given time period. This means that calculated frequency offset cannot be used to apply an accurate correction in the processing of other received signals (such as the weaker “second” positioning signal 16) to achieve better phase compensated correlation results.
  • each of the received positioning signals has a common hypothesised frequency offset that produces a strong phase compensated first correlation signal.
  • the common hypothesised frequency offset corresponds to the error in the local frequency reference produced by the unstable local oscillator 106.
  • the frequency offsets corresponding to reflected paths from each of the remote sources will generally not coincide because each remote source is at a different position and elevation, leading to differing degrees of path length differences and hence different phase delays. Therefore, combining the phase compensated first correlation results produced for each of the first positioning signals allows the hypothesised frequency offset corresponding to the error in the local oscillator 106 to be revealed.
  • the combination can be carried out by a sum or weighted sum of the test values computed for each test point in (A , A ) space.
  • step S424 the local oscillator offset calculator 124 sets, for the current period of stability in the vector of offsets, the frequency offset and the frequency rate offset equal to the best-fit values 512, 514. At this point, the local oscillator offset calculator 124 has now determined the error in the local oscillator 106 for a particular time period.
  • the local oscillator offset calculator 124 may add the best-fit values 512, 514 to the lookup table 132. If the lookup table 132 is configured as a multidimensional array, as described previously, the best-fit values may be stored at a location in the lookup table 132 corresponding to the operating conditions relevant to the calculated best-fit values 512, 514. In some embodiments, any previously calculated offsets stored in the lookup table 132 may be overwritten. In other embodiments, the lookup table 132 may be configured to store a range of offset values for particular conditions in order to calculate an average. Thus, in such embodiments the best-fit values 132 may be added to the lookup table 132 in addition to previously calculated best-fit values. Similarly, if the lookup table 132 is configured to store particular measurement values and the corresponding measured offsets, these data may be added to the lookup table 132 at step S426.
  • the prediction model 134 can also be updated or retrained based on the best fit values 512, 514 and the determined operating conditions of step S406.
  • step S428, the method 400 returns to step S406 and steps S406-426 are repeated for each of the sequential periods of stability of the local oscillator 106 until the vector of offsets is fully populated with offset values. In this way, the method 400 creates a vector representing a daisy-chain of corrections in the local oscillator 106 for sequential time periods.
  • each frequency offset and each frequency rate offset is highly likely or even certain to be numerically unique (if the values are represented with enough significant figures), due to the stochastic nature of the physical processes governing the behaviour of the local oscillator 106.
  • the method 400 may include a further step of performing an additional joint estimation process.
  • the offset vector calculated in the preceding steps may be applied to correct a local test signal similar to the local test signal generated in step S416 but having a longer duration equal to, for example, the full length of the desired integration period.
  • the processes of steps S418 to S422 may be repeated using the positioning signal 18, the positioning signal 14, and any other positioning signals together with the longer local test signal that has been corrected by the offsets calculated in steps S402 to S428. This calculates a single frequency and frequency rate offset correction for the longer local test signal.
  • This additional correction pair is generally small and relates to an overarching frequency and frequency rate offset in the local oscillator 106 that may not be accounted for by the previous steps.
  • This additional overarching correction can then be applied (e.g., added) to each of the previously calculated frequency and frequency rate offsets in the vector, resulting in a small shift in frequency and frequency rate across the whole integration period. This results in a more accurate estimation of the error in the local oscillator 106 over the integration period.
  • the offset vector can then be used in the method 300 to produce a second local signal of duration equal to or greater to than that of the required integration period.
  • the second local signal is created using the local frequency reference, which is corrected in different ways at different portions of the local frequency reference according to each pair of best-fit offsets in the offset vector. In turn, these corrections propagate to the second local signal produced using the local frequency reference. This allows the second local signal to be integrated coherently across the full integration period in the correlation step S322, despite the instability of the local oscillator 106.
  • the vector could be used to apply corrections to the positioning signal 16 or the correlation signal resulting from step S322.
  • the method 400 may comprise additional steps to further increase the efficacy of the correction applied to the local frequency reference signal.
  • the local oscillator offset calculator 124 can be configured to assess the trend in offset values in the offset vector across the sequential periods of stability.
  • the local oscillator offset calculator 124 may establish that the frequency offset values, for example, vary in a steady and continuous manner between adjacent stability periods.
  • the local oscillator offset calculator 124 may perform a statistical analysis to attempt to determine a trend, for example a polynomial or logarithmic trend. If a trend can be identified with a sufficiently high quality of fit, interpolation may be applied.
  • fit quality may be characterised by a metric related to residuals, such as an “r-squared” value, as known in the art.
  • a similar assessment may be made with respect to the frequency rate offset values.
  • a steady variation in offsets may occur where the local oscillator 106 is operating in favourable conditions, e.g. low temperatures.
  • the local oscillator offset calculator 124 can be configured to increase the length of the offset vector in order to accommodate further offset value pairs. The local oscillator offset calculator 124 may then interpolate offset values that lie between calculated offset values. Advantageously, this enables a more fine-scale correction of the local frequency reference to be performed without having to execute the computationally demanding process of steps S416-422 for additional stability periods. Alternatively, if it is determined that there is a predictable behaviour between time periods then the time periods may be extended in order to reduce the computational load.
  • using interpolation in this way may be carried out in the method 400 retroactively, i.e. , after an initial vector of offsets is calculated at step S428.
  • interpolation may be carried out prior to step S428 after offsets for at least three consecutive periods of stability have been calculated. For example, between steps S412 and steps S414 it could be checked whether there appears to be a smooth variation in offset values, and if so interpolation may be applied.
  • Applying interpolation retroactively rather than in real-time may have the benefit that the behaviour of the local oscillator 106 across the full scope of the integration period may be checked for smooth variation before making assumptions about the behaviour of the local oscillator 106.
  • the interpolation may be applied when the operating conditions meet a certain criteria, for example when the temperature is below a threshold value, that indicate favourable conditions for local oscillator stability.
  • the local oscillator offset calculator 124 may choose not to apply interpolation to avoid making incorrect assumptions regarding offset values.
  • the search space used in the example method 400 is two dimensional due to the use of up to first order frequency corrections, frequency offset and frequency rate offset. However, in other embodiments the search space could be one dimensional if only frequency offsets are calculated, or three or more dimensional if higher order corrective terms are calculated.

Abstract

A method is disclosed, comprising: providing a local frequency reference; receiving at least one signal (14, 16, 18), at a receiver, from at least one remote source (2, 4, 6, 8), along respective directions of arrival; determining a movement of the receiver; determining one or more operating conditions in a system performing the method; determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions; using the local frequency reference to provide a local signal; providing a correlation signal by correlating the local signal with the received signal; and providing phase compensation based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated correlation signal; dynamically adjusting, based on the phase compensated correlation signal and the initial estimated frequency offset, a frequency offset value to determine a preferred estimated value for the frequency offset in the local frequency reference.

Description

METHOD AND APPARATUS FOR DETERMINING A FREQUENCY RELATED PARAMETER OF A FREQUENCY SOURCE
FIELD OF INVENTION
The present invention relates to a system that can determine a more accurate value (such as a local oscillator frequency or frequency drift rate) from a received signal using a receiver that has an unstable local oscillator.
BACKGROUND TO THE INVENTION
Modem devices such as cellular phones have local oscillators that can provide a frequency reference for a variety of different applications. Often cellular devices comprise relatively low cost local oscillators, such as quartz oscillators. These devices can provide stable frequency references over short time periods. However, the frequency reference they produce can be unstable over longer time periods, and can also be unstable when their operating conditions change. Examples of changing operating conditions include temperature, vibrations, and accelerating forces such as shocks when the device is jolted or dropped.
One application that requires a frequency reference from a local oscillator is GNSS positioning.
An object of the present invention is to improve the ability of a positioning device to determine positioning calculations such as a position fix or pseudoranges when the local oscillator is unstable. This is typically the case with consumer devices, such as smartphones, smartwatches or automotive navigation systems, which all feature low-cost crystal oscillators that are inherently unstable, and are easily perturbed by external factors such as accelerations, shocks, temperature and voltage fluctuations.
Another object of the present invention is to improve the ability of a receiver within a positioning device to determine frequency-related errors (such as the frequency offset) of its local oscillator and to enable such a determination to be made even while the receiver is being used in a difficult signal environment such as an urban canyon while conserving computational resources.
SUMMARY OF INVENTION
According to a first aspect of the invention, there is provided a method, comprising: providing a local frequency reference using a local oscillator; receiving at least one first signal at a receiver from at least one first remote source, along respective directions of arrival; determining a movement of the receiver in each of a plurality of sequential time periods; for each of the at least one first received signals: using the local frequency reference to provide a first local signal; providing a first correlation signal by correlating the first local signal with the first received signal; and providing a plurality of hypothesised frequency offsets and, for each of the plurality of hypothesised frequency offsets: providing phase compensation of at least one of the first local signal, the first received signal, and the first correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated first correlation signal; determining a preferred frequency offset based on the plurality of hypothesised frequency offsets in each of the plurality of sequential time periods and the produced phase compensated first correlation signals to provide a vector comprising a plurality of unique frequency offsets in the local frequency reference in each of the plurality of sequential time periods; receiving a second signal at the receiver from a second remote source along a direction of arrival; using the local frequency reference to provide a second local signal; providing a second correlation signal by correlating the second local signal with the second signal; and providing phase compensation of at least one of the second local signal, the second received signal, and the second correlation signal based on the determined movement along the direction of arrival of the second received signal and the vector.
The method may be performed in a positioning system, and the at least one first signal and the second signal may be positioning signals. In this way, different local oscillator corrections can be provided across an extended period, which is the sum of the plurality of sequential time periods. In one example implementation, the second local signal can be generated with different local oscillator corrections in each of the sequential time periods. This daisy-chained second local signal can then be correlated against the received second signal, and can be phase compensated. This technique can allow Supercorrelation™ processing (i.e. long coherent integration of signals) to be performed even when there is a relatively unstable local oscillator because each period of instability can be independently corrected. This has previously not been possible, and it advantageously improves the ability of a positioning system to determine a range to a GNSS satellite in a poor signal environment when the system itself has a relatively poor local oscillator.
The skilled person would understand that in other implementations the different oscillator corrections can instead be applied, using the vector, to the received second signal or the second correlation signal, or any combination of the second local signal, the second signal, and the second correlation signal. For example, the second signal, rather than the second local signal, can be adjusted using the vector. This effectively introduces the same or very similar variations that are present in the second local signal due to the relatively poor local oscillator into the second signal. This would improve the result of correlating the second signal (adjusted using the vector) and the (unadjusted) second local signal because similar variations would be then present in each signal.
Calculating the vector of unique frequency offsets involves providing a plurality of hypothesised frequency offsets and providing phase compensation of at least one of the first local signal, the at least one first signal, and the first correlation signal based on the determined movement in the respective direction of arrival for the plurality of hypothesised frequency offsets, and determining a preferred frequency offset based on the plurality of hypothesised frequency offsets in each of the plurality of sequential time periods and the produced phase compensated first correlation signals. In this way the method may search for the frequency offset that can provide the best correlation results. This corresponds to a search in frequency space. In other arrangements there can be a two-dimensional search across frequency and rate of change of frequency to find the combination of variables that provide the best correlation results (e.g. the highest peak for the correlation signal), and reveals the best solution for the local oscillator frequency related errors.
The frequency offset can be determined relative to another frequency reference that is a close approximation to a “true” frequency reference, which may be derived from a well-modelled, high fidelity atomic oscillator. The frequency offset can therefore be determined with respect to a “known or predictable frequency” that is generated using a much more accurate oscillator than the local oscillator. The at least one first signal and the second signal may be generated using a similar frequency reference such as atomic clocks in the respective first and second remote sources.
In some embodiments, the local signals may be replicas of a pseudorandom number sequence from a GNSS satellite. The second local signal can be generated based on the frequency reference from the local oscillator together with the plurality of unique frequency offsets, which correspond to the determined error in the local oscillator frequency reference across sequential time periods. This can create a second local signal in which local oscillator error is substantially removed, and this can significantly enhance positioning accuracy.
The method may comprise using an inertial sensor such as an accelerometer and/or gyroscope that can provide the determined movement in the plurality of sequential time periods. In some instances it may be possible to assume or predict movement of the system. In one example this may be done if the system has been moving in a predictable or consistent way over a number of time periods. This may occur when, for example, the user is on a train or is driving on a long, straight road. In such a scenario it may be possible to predict the receiver's movement without actually measuring it using the inertial sensors.
The phase compensation can be applied using techniques known in the art. For example, the phase compensation can be applied to only one of, or more than one of: the second signal, the second local signal, or the second correlation signal resulting from correlating the second signal and the second local signal. Similarly, phase compensation can be applied to any of the at least one first signal, the first local signal and the resulting first correlation signal. The correlation step may be performed using known correlation techniques in GNSS (Global Navigation Satellite Systems) or other positioning systems. The step of determining a movement of the receiver in each of the plurality of sequential time periods may comprise determining a component of motion of the receiver along a line of sight to each respective remote source, which may be a positioning source or any other type of source. The local frequency reference may be a timing signal of various possible forms, such as a sine wave or a square wave.
Preferably, the method further comprises providing a plurality of hypothesised frequency rate offsets; wherein the step of providing phase compensation for each of the plurality of hypothesised frequency offsets comprises providing phase compensation for each of the plurality of hypothesised frequency and frequency rate offsets; and wherein the step of determining the preferred frequency offset based on the plurality of hypothesised frequency offsets in each of the plurality of sequential time periods comprises determining the preferred frequency offset and a preferred frequency rate offset in each of the plurality of sequential time periods to provide the vector comprising the plurality of unique frequency offsets and a plurality of unique frequency rate offsets in the local frequency reference in each of the plurality of sequential time periods. As described previously, the skilled person would appreciate the frequency rate corrections can be applied, using the vector, to any of the second local signal, the second signal or the second correlation signal, or any combination of the second local signal, the second signal, and the second correlation signal.
In this way, the local oscillator can be corrected in terms of its frequency and its rate of change of frequency. It would be possible to provide higher order corrections as well. However, it has been found that sufficiently accurate corrections can be provided using only frequency and frequency rate offsets, which minimises computational loads. The skilled person would appreciate that the term “frequency rate offset” refers to the difference in the rate of change of frequency ( “frequency rate”) of the local oscillator compared to a fully stable ideal frequency source, which would have a rate of change of frequency of zero.
The unique frequency rate offsets can be provided as a separate vector to the vector of unique frequency offsets, or these vectors can be provided together in a combined vector or matrix. The skilled person would appreciate that the terms matrix and vector may be used interchangeably. The skilled person would appreciate that the vectors or matrix could be represented in many ways, such as a list with entries for frequency offsets corresponding to particular time periods of the plurality of sequential time periods.
Preferably, the step of providing phase compensation for each of the plurality of hypothesised frequency and frequency rate offsets comprises providing phase compensation for each of a plurality of pairs of the hypothesised frequency and frequency rate offsets. In this way, phase compensated first correlation signals can be produced for each combination of frequency and frequency rate. This allows the optimal combination of frequency and frequency rate to be determined in each of the plurality of sequential time periods so that the evolving error in the local oscillator can be mapped more precisely.
Preferably, receiving at least one first signal comprises receiving a plurality of first signals at the receiver from a plurality of first remote sources, wherein determining the preferred frequency offset based on the plurality of hypothesised frequency offsets in each of the plurality of sequential time periods and the phase compensated first correlation signal is performed based on a plurality of phase compensated first correlation signals. In this way, the preferred frequency offset is determined based on a plurality of received first signals, which avoids one issue that can arise in some scenarios when using only one first signal from a single first remote source.
One such scenario can arise when the first signal is received along a direct line of sight and, at the same time, along an indirect direction of arrival resulting from a reflection having an increased path length from the remote source to the receiver. In this case, there can be two hypothesised frequency offsets that appear to produce a better phase compensated first correlation signal. However, only one of the hypothesised frequency offsets corresponds to an error in the local oscillator. The remaining hypothesised frequency offset can correspond to the reflected first signal. If the preferred frequency offset is selected (or otherwise determined) based on the hypothesis corresponding to the reflected signal, then the preferred frequency offset would represent a phase offset caused by the increased path difference of the reflected signal. In this case, the preferred frequency offset does not represent the error in the local oscillator in a given time period. This means that preferred frequency offset in general cannot be used to apply a correction in the processing of other received signals (such as the second signal) to achieve better phase compensated correlation results.
Using a plurality of first signals avoids this issue because, for a given time period, each of the received first signals has a common hypothesised frequency offset that produces a better phase compensated first correlation signal. The common hypothesised frequency offset corresponds to the error in the local frequency reference produced by the unstable local oscillator. Therefore, determining the preferred frequency offset in each sequential time period based on a plurality of first signals allows the hypothesised frequency offset corresponding to the error in the local oscillator to be recognised through a comparison of the phase compensated first correlation signals.
Preferably, the step of determining the preferred frequency offset based on the plurality of phase compensated first correlation signals is performed by, for each hypothesised frequency offset, combining the phase compensated first correlation signals produced for each of the plurality of received first signals and determining the hypothesised frequency offset corresponding to the highest combined correlation. In this way, the hypothesised frequency offset corresponding to the error in the local frequency reference produced by the unstable local oscillator can be identified. In one example, the combination can be a sum or a multiplication. A suitable cost function can be used to determine the frequency and/or frequency rate corresponding to the highest combined correlation.
Preferably, the method may comprise determining one or more operating conditions in a system performing the method in each of the plurality of sequential time periods and determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions. The initial estimated frequency offset can be a rough prediction or estimate of the error in the local oscillator in a given time period of the sequential time periods. In this way, the initial estimated frequency offset can be used as a starting point or initial condition when calculating the offset more precisely using the plurality of hypothesised frequency offsets, which enables the vector to be produced more efficiently.
The determination of the initial estimated frequency offset can be performed in a variety of ways. In one example, a lookup table can be used to retrieve frequency offsets calculated previously in the same or similar operating conditions. In another example, a model configured to predict a frequency offset in the local oscillator based on the operating conditions of the system can take the determined one or more operating conditions as an input. The model can then output a frequency prediction based on the one or more operating conditions. Using a model in this manner can also be referred to as “predictive control”. The model can be a neural network or machine learning model or algorithm, a formula, or any other suitable kind of model. The model may be pre-trained and/or may be retrained continuously based on calculations of preferred frequency offsets and their corresponding determined operating conditions. The method can comprise a step of retraining the model based on the one or more determined operating conditions and the preferred frequency offset. In a further example, the lookup table may provide an input to the model.
Preferably, the one or more determined operating conditions include one or more of temperature, a rate of change of temperature, an operating state, or a determined movement of a component in the system. The one or more operating conditions can be determined using a sensor that measures a physical variable that enables a relevant parameter such as temperature to be calculated. Alternatively or in addition, in the case of the one or more operating conditions including an operating state of a component, a determination of whether a component is turned on or off may be performed using control logic without a sensor.
Preferably, the method further comprises providing the preferred frequency offset in each of the plurality of sequential time periods and the one or more determined operating conditions to a stored dataset. In this way, the behaviour of the local oscillator in particular operating conditions can be tracked for future reference.
The determined operating conditions may include temperature. The determined operating conditions may also include whether the temperature is increasing or decreasing. This is because oscillators can exhibit temperature hysteresis, i.e. , can behave differently at a given temperature depending on the recent or historical temperature of the oscillator. In one example, each temperature value may have two corresponding frequency offset entries in the stored data set. One offset entry can correspond to when the oscillator is at the respective temperature and the temperature is increasing and the other offset entry can correspond to the same temperature but when the temperature is decreasing. In this way, the stored data set can be configured to account for temperature hysteresis effects in the local oscillator. Similarly, two entries for frequency rate (or any other phase or frequency correction term) may be stored for each temperature.
In one example, a large number of potential operating conditions may be measured in order to update a multi-dimensional lookup table. Temperature may be measured using a thermocouple or a thermistor that is in close proximity with the local oscillator in a device of the system. Other active applications or components within the device may be another operating condition. The device may be a positioning device. It has been found that running some applications or components, or running a particular combination of applications or devices, can have an adverse effect on the stability of the local oscillator, and therefore it can be valuable to tabulate the observed effect of running these applications in the lookup table. Another example of an operating condition includes active hardware in the system or positioning system. For example, a touchscreen or wireless interface in a positioning device may be on or off, and this may affect the local oscillator. Any hardware of a device that affects the local oscillator may be used as an operating condition.
Further examples of operating conditions include temperature, a rate of change of temperature, a voltage of, or associated with, the local oscillator, a rate of change of this voltage, and a motion of the local oscillator, such as the presence or degree of an impact or vibration. Any number of and combination of operating conditions may be implemented. In a specific example, temperature and temperature rate may be measured and frequency offset values for combinations of temperature and temperature rate measurement values may be stored.
An initial estimated frequency offset from the stored dataset or an initial the model may provide initial conditions when calculating the vector of unique frequency offsets in the local frequency reference in the plurality of sequential time periods.
Specifically, the values in the stored dataset or output from the model may be used as seed values or initial values, and may also define a search window. This has a dual benefit by increasing the likelihood that the seed values are close to the true values, and by decreasing the processing power required to search across all possible frequency offset values. In one example, the “seed value” is the first point within a search space to be tested within a search window of the test space.
The search window may be set to a particular narrower width based on the values in the stored dataset or produced from the model. For example, the width of a search window for frequency or frequency rate values may be set based on a percentage of a previously calculated frequency or frequency rate value. Alternatively, the narrower search window may have a fixed width that is centred on a previously calculated value. A wider search window may be set if the dataset contains no previously calculated value for the corresponding operating condition or conditions, wherein the wider search window is wider than the narrower search window.
The use of the one or more operating conditions with the stored data set or the model has been described with respect to frequency offsets in the local oscillator; however, the model and/or stored dataset can be applied to provide an initial estimate of frequency rate offset, or any higher order corrections, in each of the sequential time periods.
The at least one first signal may be less attenuated than the second signal. In one example, the respective directions of arrival of the at least one first signal may be more favourable lines of sight to the receiver compared to the direction of arrival of the second signal, such that the at least one first signal can be received with a better signal to noise ratio than the second signal. In this way, the more favourable at least one first signals are used to determine a frequency offset that can be used in turn to correct the second local signal, thus enabling correlation with the less favourable second signal over an extended period. The at least one first signal can preferably be integrated coherently over the instability period of the local oscillator.
Preferably, a duration of one or more of the plurality of sequential time periods is determined based on the one or more determined operating conditions of the system performing the method.
Preferably, at least two of the plurality of sequential time periods have different durations with respect to one another. In this way, the vector can account for the evolving behaviour of the local oscillator more effectively.
Longer time periods may be used if the operating parameter of the positioning system is indicative of relatively benign conditions for the local oscillator. On the other hand, if the operating conditions are extreme then the time periods may be shorter. Extreme operating conditions may include high or low temperatures, sudden temperature changes, vibrations or sudden movements, or the use of particular applications or hardware. It has been found that these operating conditions can adversely affect the stability of the local oscillator, and therefore counter action may be desirable, such as the use of shorter time periods.
Absent the detection of any external operating parameter the individual length of each of the sequential time periods may be stored in memory by default in the device. In some embodiments the default length of each individual time period is around 0.1 seconds, 0.2 seconds, 0.5 seconds, 1 second or 2 seconds.
The duration and number of sequential time periods can be selected in order to minimise the number of offset calculations required while still providing sufficient oscillator corrections. As calculating each offset in the local oscillator can be computationally intensive, this creates a faster and more efficient calculation of the vector.
Each of the plurality of sequential time periods corresponds to a duration over which the local oscillator is calculated or assumed to provide a stable frequency reference.
In this way, frequency offsets calculated for each of the sequential time periods can be an accurate offset across each individual time period. Alternatively, each of the plurality of sequential time periods may not correspond to a duration over which the local oscillator is calculated or assumed to be stable. For example, each of the sequential time periods may be longer than an assumed or calculated period of stability, and interpolation may be applied between calculated values.
The combined duration of the plurality of sequential time periods may be at least equal to an integration period over which the second local signal and the received second signal are correlated during the step of providing the second correlation signal.
In this way, the vector can store the frequency offsets in the local oscillator across the full integration period in order to map the evolving error in the local oscillator for the full integration period. The vector can be combined with the local frequency reference to generate a second local signal that is corrected across the whole integration period to enable a coherent integration to be performed for longer than the instability period of the local oscillator. In some examples, the integration period may be 0.5 seconds or longer, such as, 1 second, 2 seconds, 3 seconds, or longer.
In some embodiments it may be possible to interpolate corrections between time periods. Thus, it may be possible to increase the number of sequential time periods or to decrease the number of measurements of frequency offset so that interpolation can be used between measurement points. However, this approach requires that the sampling rate is high enough to correctly characterise trends in the frequency and frequency rate offsets.
Preferably, determining a preferred frequency offset based on the plurality of hypothesised frequency offsets comprises interpolating a preferred frequency offset between two or more of the plurality of hypothesised frequency offsets.
In this way, a greater number of frequency correction terms can be obtained using a process that is less computationally intensive than calculating the frequency offsets directly. The interpolation may be applied retroactively after calculating frequency offsets corresponding to some or all of the plurality of sequential time periods. Additionally, interpolation may be applied after determining that the frequency offsets vary gradually, smoothly and/or predictably across some or all of the sequential time periods. The interpolation may be performed in response to determining that the operating conditions meet a threshold. The threshold may be a set of one or more criteria that indicates the operating conditions are relatively favourable for the local oscillator, i.e. the environment of the local oscillator is favourable for enabling good oscillator stability. Equivalently, if it is found that frequency offsets vary predictably, the duration of the time periods within the plurality of sequential time periods may be increased.
Alternatively, or in addition, determining a preferred frequency offset based on the plurality of hypothesised frequency offsets can comprise selecting one of the hypothesised frequency offsets, which may correspond to the highest or best of the produced phase compensated first correlation signals. In some scenarios, selecting one of the hypothesised offsets can provide a sufficient offset of the frequency. The method can comprise a determination of whether an interpolation is required.
In some embodiments, after the step of providing a vector comprising a plurality of unique frequency offsets in the local frequency reference in each of the plurality of sequential time periods, the method may include determining an additional frequency offset and adjusting the vector based on the determined additional frequency offset.
In one example, this can be carried out by, for each of the at least one first received signals: using the local frequency reference to provide a third local signal; providing third correlation signals by correlating the third local signal with each of the one or more received first signals; providing a further plurality of hypothesised frequency offsets and, for each of the further plurality of hypothesised frequency offsets: providing phase compensation of at least one of the third local signal, the one or more received first signals, and the third correlation signals based on the vector and the determined movement of the receiver along the respective direction of arrival to produce phase compensated third correlation signals; and determining a frequency correction based on the further plurality of hypothesised frequency offsets and the produced phase compensated third correlation signals; and adding the determined frequency correction to the vector in each of the plurality of sequential time periods.
In this way, the method can correct for an overarching frequency error that is present across several of the sequential time periods. This improves the ability of the vector to correct any of the second local signal, the second signal or the second correlation signal, or any combination thereof. The skilled person would understand that an additional overarching frequency rate offset can also be calculated and used to adjust the calculated vector in the same way.
In an embodiment, the method further comprises calculating, based on the second correlation signal, a range or a pseudo-range of the receiver to the second remote source. The range or pseudorange can be combined with a plurality of other ranges or pseudoranges obtained from a plurality of remote sources to determine a position as known in the art.
In some examples, the method may be performed at least partially in a positioning device, such as a mobile device, comprising a 5G modem, wherein the local oscillator is provided in the positioning device.
According to a further aspect of the invention there is provided a system, comprising: a local oscillator configured to provide a local frequency reference; a receiver configured to receive at least one first signal from at least one first remote source, along respective directions of arrival, and a second signal from a second remote source, along a direction of arrival; a motion module, configured to determine a motion of the receiver; and a processor configured to: for each of the at least one first received signals: use the local frequency reference to provide a first local signal; provide a first correlation signal by correlating the first local signal with the received first signal; and provide a plurality of hypothesised frequency offsets and, for each of the plurality of hypothesised frequency offsets: provide phase compensation of at least one of the first local signal, the first received signal, and the first correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated first correlation signal; determine a preferred frequency offset based on the plurality of hypothesised frequency offsets in each of the plurality of sequential time periods and the produced phase compensated first correlation signals to provide a vector comprising a plurality of unique frequency offsets in the local frequency reference in each of the plurality of sequential time periods; use the local frequency reference to provide a second local signal; provide a second correlation signal by correlating the second local signal with the second signal; and provide phase compensation of at least one of the second local signal, the second received signal, and the second correlation signal based on the determined movement along the direction of arrival of the second received signal and the vector. The system may be a positioning system, and the first and second signals may be positioning signals.
According to a further aspect of the invention there is provided a method for determining a frequency related parameter of a frequency source within a receiver, comprising: receiving a plurality of signals from a plurality of remote sources; generating motion compensated correlation results using a determined receiver motion, the received signals and a local signal derived from the local frequency source; phase compensating the motion compensated correlation results to produce phase compensated correlation results using a plurality of phasor sequences that represent frequency error of the local frequency source; and jointly analysing the phase compensated correlation results associated with the plurality of remote sources to determine a frequency related parameter of the local frequency source.
According to a further aspect of the invention there is provided an apparatus for performing signal correlation within a signal processing system, comprising at least one processor and at least one non-transient computer readable medium for storing instructions that, when executed by the at least one processor, causes the apparatus to perform operations comprising: receiving a plurality of signals from a plurality of remote sources; generating motion compensated correlation results using a determined receiver motion, the received signals and a local signal derived from the local frequency source; phase compensating the motion compensated correlation results to produce phase compensated correlation results using a plurality of phasor sequences that represent frequency error of the local frequency source; and jointly analysing the phase compensated correlation results associated with the plurality of remote sources to determine a frequency related parameter of the local frequency source.
According to a second aspect of the invention, there is provided a method, which may be performed in a positioning system, comprising: providing a local frequency reference using a local oscillator; receiving at least one signal, at a receiver, from at least one remote source, along respective directions of arrival; determining a movement of the receiver; determining one or more operating conditions in a system performing the method; determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions; for each of the at least one received signals: using the local frequency reference to provide a local signal; providing a correlation signal by correlating the local signal with the received signal; and providing phase compensation of at least one of the local signal, the at least one received signal, and the correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated correlation signal; dynamically adjusting, based on the phase compensated correlation signals and the initial estimated frequency offset, a frequency offset value to determine a preferred estimated value for the frequency offset in the local frequency reference.
In this way, the initial estimated frequency offset can be used as a starting point or initial condition when determining the preferred frequency offset, which corresponds to a more precise determination of the offset in the local oscillator calculated using the at least one signal. This enables the preferred estimated value to be determined more efficiently.
The determination of the initial estimated frequency offset can be performed in a variety of ways. The method may determine the initial estimated frequency by comparing the one or more determined operating conditions to a frequency offset calculated previously for the same or similar operating conditions.
In one example, this comparison can be performed using a stored data set from which frequency offsets calculated previously in the same or similar operating conditions can be retrieved. In another example, the comparison can be performed using a model configured to predict a frequency offset in the local oscillator based on the determined operating conditions of the system. The model can take the determined one or more operating conditions as an input and output a frequency prediction or estimation. The model can be a neural network or machine learning model or algorithm, a formula, or any other suitable kind of model. Using a model in this manner can also be referred to as “predictive control”. The model may be pre-trained and/or may be re-trained continuously based on calculations of frequency offsets and their corresponding determined operating conditions. In a further example, the lookup table may provide an input to the model, or could be used to continuously retrain the model as the lookup table is updated.
The one or more operating conditions can be determined using a sensor that measures a physical variable that enables a relevant parameter such as temperature to be calculated. Alternatively or in addition, in the case of the one or more operating conditions including an operating state of a component, a determination of whether a component is turned on or off may be performed using control logic without a sensor.
Preferably, the method further comprises the step of supplying the preferred estimated value for the frequency offset and the corresponding one or more determined operating conditions to a stored dataset. In this way, the method can build a lookup table that is indicative of frequency offset values during different measured or determined operating conditions. This can advantageously reduce computational loads because the values stored in the lookup table can provide initial conditions that are close to the real values during any particular observation.
The measured frequency offset values can be stored directly in the dataset so that the stored values represent the values that were measured most recently. Alternatively, the stored values may represent an average value, such as the calculated mean, based on all observations. In this way, the stored dataset may be updated so that it represents a moving average. The data set could be stored locally in a device or remotely in a distributed network.
Preferably, the one or more operating conditions include a physical variable or parameter of the local oscillator.
Physical properties of the local oscillator, such as temperature or its inertial state affect the stability of the local reference signal produced by the local oscillator. Therefore, measuring an operating condition that is a physical variable or parameter of the local oscillator means the operating condition may be particularly relevant to calculating the frequency offset. Preferably, the one or more operating conditions include one or more of temperature, a rate of change of temperature, an operating state, a determined movement, or an indication of whether a component in the system is turned on or off. In this way, the one or more operating conditions may represent a more complete characterisation of the conditions affecting the local oscillator. In one example, the one or more operating conditions may include all of the above conditions.
In some embodiments, the determined operating conditions in the system include temperature. The one or more operating conditions may also include whether the temperature is increasing or decreasing. This is because oscillators can exhibit temperature hysteresis, i.e., can behave differently at a given temperature depending on the recent or historical temperature of the oscillator. In one example, each temperature value may have two corresponding frequency offset entries in the stored data set. One offset entry can correspond to when the oscillator is at a respective temperature and the temperature is increasing and the other offset entry can correspond to the same temperature but when the temperature is decreasing. In this way, the stored data set can be configured to account for temperature hysteresis effects in the local oscillator. Similarly, two entries for frequency rate (or any other phase or frequency correction term) may be stored for each temperature.
Other measured operating conditions may include a rate of change of temperature, data from inertial sensors, information on other processing operations that are being performed in the device or other applications that are in- use, whether the screen of the device is on, and many other factors. In this way, a multi-dimensional lookup table can be generated that is indicative of frequency offsets that have been observed historically in different operating conditions. This lookup table is of great utility because of the high likelihood of repeatability of measurements. Thus, an observed frequency offset is likely to be close to a frequency offset that was observed previously during similar operating conditions. In another example, the lookup table may comprise a list of operating condition measurements or determinations and corresponding preferred frequency offsets produced under the measured operating conditions.
Temperature may be measured using a thermistor, a thermocouple or any other suitable sensor.
In an embodiment, determining the operating conditions comprises determining whether a component in the system is turned on or off. The component may be any hardware or application in the system. The component may be related or unrelated to the system. For example, the component may be a wireless interface or touchscreen of a handheld device in proximity to the local oscillator.
The method may include taking a remedial action based on the determined one or more operating conditions to mitigate an operating condition negatively affecting the stability of the local oscillator. For example, the remedial action can be one or more of reducing the power consumption of a component or turning off a component completely. Any suitable remedial action may be implemented.
Preferably, the method further comprises the step of, at a later time: determining one or more subsequent operating conditions of the system and supplying a frequency offset from the stored dataset, corresponding to the one or more subsequent operating conditions, as an initial estimated frequency offset for performing the step of dynamically adjusting a frequency offset value to determine a preferred estimated value for the frequency offset in the local frequency reference.
This can improve computational efficiency because the dynamic adjustment can be performed more rapidly when it is seeded with an accurate initial condition. In this case the initial condition is known to be more accurate because it is based on observations of local oscillator behaviour in similar operating conditions in previous time periods.
Preferably, the method further comprises: determining an initial estimated frequency rate offset in the local frequency reference based on the one or more operating conditions; and dynamically adjusting, based on the phase compensated correlation signals and the initial estimated frequency rate offset, a frequency rate offset value to determine a preferred estimated value for the frequency rate offset in the local frequency reference. In this way, the preferred (i.e., more accurate) estimation of the frequency rate offset in the local oscillator can also be calculated more efficiently because it can be seeded with an initial estimate based on similar operating conditions in previous time periods.
Preferably, the method further comprises the step of, at a later time, determining one or more subsequent operating conditions of the system and supplying a frequency rate offset from the stored dataset, corresponding to the one or more subsequent operating conditions, as an initial estimated frequency rate offset for performing the step of dynamically adjusting a frequency rate offset value to determine a preferred estimated value for the frequency rate offset in the local frequency reference. In this way, previous calculations of frequency rate offsets can also be stored and provided later to provide accurate seed values for determining preferred frequency rate offsets.
Preferably, the step of determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions is performed using a model configured to predict a frequency offset in the local oscillator based on the one or more operating conditions. In this way, the initial frequency estimate can be determined. Using a model in this manner can also be referred to as “predictive control”. The model can be a neural network or machine learning model or algorithm, a formula, or any other suitable kind of model.
The model may be pre-trained and/or may be re-trained continuously based on calculations of frequency offsets and their corresponding determined operating conditions. Thus, the method may include a further step of updating the model based on the preferred frequency offset value and the determined one or more operating conditions. The model can also be used to predict the frequency rate offset, or any other higher order correction terms in addition to the frequency offset. In a further example, the lookup table may provide an input to the model.
A search window for the preferred estimated value for the frequency offset may be defined based on the initial estimated frequency offset. Equally, a search window for a preferred estimated value of a frequency rate offset may be defined based on an estimated frequency rate offset.
In the process of searching for the estimated value for the frequency offset, a number of candidate values may be ‘tested’, and the best-fit value can be selected. The process of testing candidate values is computationally intensive, and therefore it is advantageous to reduce the task as much as possible. By using the estimated frequency offset, which could be supplied from the stored dataset or output from the model, it is possible to start the searching process in confidence that the initial value is already quite close to the expected true value.
The search window may be defined based on fixed values that are greater than and less than the initial estimated value. In one arrangement, the search window may be defined based on, for example as a percentage value of, estimated frequency offset values in the stored dataset or produced from the model. In one example, where the stored frequency offset values are based on averages, the search window may be defined based on a certain number of standard deviations away from the average. This can helpfully focus the search space on the most likely frequency offset values, reducing computational load by avoiding calculations related to frequency offset values that are statistically unlikely to occur, based on the previous measurements.
A search window for the preferred estimated value for the frequency rate offset may be defined, based on the initial estimated frequency rate offset.
In this way, there may be a two-dimensional search window across frequency and rate of change of frequency. Reducing the size of this search window is highly advantageous in improving computational efficiency.
In some embodiments, the one or more received signals signal are positioning signals generated by one or more remote positioning sources. The one or more received signals may be generated using a known or predictable frequency, as described elsewhere. The positioning sources may be selected for having a strong enough signal to noise ratio to perform phase compensation on the positioning signals over a short instability period of the local oscillator. This may enable a frequency or frequency rate offset calculation to be performed for the instability period. In this way, the calculated offset can be applied in the a correlation of a weaker received signal or positioning signal from a different remote source that cannot otherwise be integrated coherently over a required integration period.
The step of dynamically adjusting can be performed in a variety of ways. Any suitable method of adjusting a frequency offset value to determine a preferred or more accurately estimated value for the frequency offset in the local frequency reference based on the phase compensated correlation signals and the initial estimated frequency offset may be used.
In one particular example, for each of the at least one first received signals, the method further comprises: providing a plurality of hypothesised frequency offsets based on the estimated frequency offset and for each of the plurality of hypothesised frequency offsets: performing the step of providing phase compensation of at least one of the local signal, the received signal, and the correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated first correlation signal; and the step of dynamically adjusting comprises determining the preferred estimated frequency offset based on the plurality of hypothesised frequency offsets and the produced phase compensated correlation signals. More preferably, determining the preferred estimated frequency offset based on the phase compensated correlation signals is performed by, for each hypothesised frequency offset, combining the phase compensated correlation signals produced for each of the plurality of received signals. The method may further include determining the hypothesised frequency offset corresponding to the highest combined correlation. In this way, the preferred estimated frequency offset can be calculated in the same manner as the first aspect of the invention. The amount, range and/or mode value of the hypothesised frequency offsets may be selected based on the initial estimated value, in one example. This allows the search space represented by the hypothesised frequency offsets to be smaller because the initial estimated frequency offset is likely to be close to the preferred or more accurate frequency offset of the local oscillator.
Preferably, the method further comprises using the preferred estimated value for the frequency offset in the local frequency reference to correct a signal derived from the local frequency reference. In this way, the signal derived from the local frequency reference can be corrected efficiently.
The step of determining one or more operating conditions may comprise determining a plurality of operating conditions, and updating the stored dataset or the model may comprise updating the stored dataset or the model based on the plurality of measured operating conditions. In another embodiment, updating the stored dataset comprises storing a frequency offset value corresponding to a combination of measurement outcomes from measuring a plurality of operating conditions.
In this way, a greater number of factors can be considered for the purposes of determining a starting estimate for the frequency and/or frequency rate offsets. The use of more operating conditions means the approximate behaviour of the local oscillator can be predicted more accurately, meaning that less computationally intensive searching for best-fit frequency offsets needs to be carried out. In one example, considering a plurality of operating conditions may enable a narrower search window to be defined, because the approximate behaviour of the local oscillator can be predicted with greater confidence using more measurement data and varied types of measurement data.
In some examples, the method may be performed at least partially in a positioning device, such as a mobile device, comprising a 5G modem, wherein the local oscillator is provided in the positioning device or in the modem. Alternatives and embodiments discussed according to the first aspect of the invention may generally be combined with embodiments discussed in relation to the second aspect of the invention.
According to a further aspect of the invention, there is provide a system, comprising: a local oscillator configured to provide a local frequency reference; a receiver configured to receive at least one signal from at least one remote source, along respective directions of arrival; a motion module configured to determine a movement of the receiver; and a controller configured to: determine one or more operating conditions in the system; determine an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions; for each of the at least one received signals: use the local frequency reference to provide a local signal; provide a correlation signal by correlating the local signal with the received signal; and provide phase compensation of at least one of the local signal, the at least one received signal, and the correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated correlation signal; dynamically adjust, based on the phase compensated correlation signals and the initial estimated frequency offset, a frequency offset value to determine a preferred estimated value for the frequency offset in the local frequency reference.
The system may be a positioning system, and the received signal may be a positioning signal.
According to a further aspect of the invention there is provided a method for determining a frequency related parameter of a frequency source within a receiver, comprising: receiving a plurality of signals from a plurality of remote sources; generating motion compensated correlation results using a determined receiver motion, the received signals and a local signal derived from the local frequency source; phase compensating the motion compensated correlation results to produce phase compensated correlation results using a plurality of phasor sequences that represent an error in the frequency related parameter of the local frequency source; using predictive control to predict the frequency related parameter; and jointly analysing the phase compensated correlation results associated with the plurality of remote sources to determine a frequency related parameter of the local frequency source.
According to a further aspect of the present invention there is provided apparatus for performing signal correlation within a signal processing system, comprising at least one processor and at least one non-transient computer readable medium for storing instructions that, when executed by the at least one processor, causes the apparatus to perform operations comprising: receiving a plurality of signals from a plurality of remote sources; generating motion compensated correlation results using a determined receiver motion, the received signals and a local signal derived from the local frequency source; phase compensating the motion compensated correlation results to produce phase compensated correlation results using a plurality of phasor sequences that represent frequency error of the local frequency source; using predictive control to define the frequency error; and jointly analysing the phase compensated correlation results associated with the plurality of remote sources to determine a frequency related parameter of the local frequency source.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the invention are now described, by way of example, with reference to the drawings, in which:
Figure 1 is a schematic diagram of a positioning system according to an embodiment of the invention;
Figure 2 is a schematic diagram of a control system of a positioning device in a positioning system according to an embodiment of the invention;
Figure 3A is a schematic flow diagram for a method of performing a positioning calculation according to an embodiment of the invention;
Figure 3B is a continuation of the method of Figure 3A of performing a positioning calculation according to an embodiment of the invention; Figure 4A is a schematic flow diagram for a method of creating and calculating a vector of frequency offsets according to an embodiment of the invention;
Figure 4B is a continuation of the method of Figure 4Afor creating and calculating a vector according to an embodiment of the invention; and
Figure 5 is a graph representing a search space used to calculate a frequency and frequency rate offset according to an embodiment of the invention.
DETAILED DESCRIPTION OF THE DRAWINGS
The following example embodiments and methods are described with respect to a positioning system. However, in one example alternative, the method may be used to perform channel estimation in a communication system. It is envisaged that other types of systems configured to determine a value using an unstable local oscillator may employ the method of the invention. In such cases, the positioning signals as described below may be replaced more generally with other types of signals.
Figure 1 is a schematic diagram illustrating, by way of example, an environment in which the method and positioning system of the present invention may be used to provide a positioning solution. A positioning system 1 includes a positioning device 100 comprising an antenna 102 configured to receive signals from remote reference sources. In this example, the positioning device 100 of a user 10 receives radio signals via the antenna 102 from remote reference sources comprising a first satellite 2, a second satellite 4, a third satellite 6, and a remote ground source 8. A tall building 12 bisects the lines of sight from the positioning device 100 to the third satellite 6 and the ground source 8. The building 12 attenuates the signals from the third satellite 6 and the ground source 8, making the signals weaker and thus making it more difficult for the positioning device 100 to obtain an accurate measurement of position. The same building 12 could also provide a path for a reflected signal from the first satellite 2 to the antenna 102.
The remote reference sources, which may be referred to alternatively as “positioning sources”, may operate as part of any navigation system known in the art, for example a GNSS positioning system. In general, the reference sources can be comprised of any combination of satellite sources, terrestrial sources, or other types of reference sources.
Figure 2 shows a schematic diagram of the positioning device 100. In this example embodiment, the positioning device 100 comprises an antenna 102, a receiver 104 in connection with the antenna 102, a local oscillator 106, a controller 108, a memory 110, a motion sensor 112 and a temperature sensor 114.
The receiver 104 is configured to process signals received by the antenna 102 and may comprise any suitable components, such as an amplifier or an analogue to digital converter.
The local oscillator 106 is generally simple and low cost, and may comprise a quartz oscillator in one example. The local oscillator 106 is configured to provide a timing signal for various applications in the positioning device 100.
The controller 108 is configured to control the operation of the electronic components of the positioning device 100, including the components shown in Figure 2 as well as other components of the positioning device 100 not directly related to the positioning system 1 , such as a touchscreen. In this example, the controller 108 comprises a single processor that operates a plurality of modules described further below, the modules configured to perform specific functions. In other embodiments, the modules may be provided separately with different associated processors, or may be provided in a distributed fashion across a network.
The memory 110 may comprise non-transitory computer readable media such as one or more of a random access memory unit, read-only memory unit or a combination thereof configured to store executable instructions of the various modules of the controller 108.
The motion sensor 112 may comprise a plurality of separate motion and/or orientation sensors, such as inertial sensors, gyroscopic sensors, or magnetometers. The temperature sensor 114 is configured to determine a temperature and/or rate of change of temperature of the local oscillator 106, and thus may be positioned on or near the local oscillator 106. The temperature sensor 114 may comprise a thermocouple, thermistor or other suitable means for determining temperature. Other sensors for measuring operating parameters or determining operating conditions of the positioning device 100 may be provided in addition or alternatively to the temperature sensor 114.
The controller 108 comprises a number of modules, including a reference source selector 116, a local signal generator 118, a correlator 120, a motion determination module 122, a local oscillator offset calculator 124, a phase compensation module 126, a stability period determination module 128, a positioning calculator 130, and a prediction model 134. The memory 110 stores a lookup table 132 and prediction data 136 for the prediction model 134. The functionality of these modules of the controller 108 and the lookup table 132 are described further below with reference to Figures 3-5.
The positioning device 100 may be configured as a smartphone, laptop, or any other type of device capable of determining a position.
Typically, reference sources such as those shown in Figure 1 utilise high quality oscillators, such as atomic oscillators. Such high quality oscillators operate within much narrower frequency windows compared to local oscillators typically found on handheld positioning devices such as smartphones. In other words, the high quality oscillators are more accurate and operate within a much lower frequency tolerance compared to many low quality oscillators. This allows the reference sources to provide consistent and reliable frequency reference signals to generate in turn, using the frequency reference signals, consistent and reliable positioning signals. Additionally, the stability of the reference source local oscillators enables the positioning device 100 to store, lookup or assume the frequency of the reference signals provided by those reference sources to a high degree of accuracy compared to the “actual” reference signal.
Tall buildings can attenuate signals from the reference sources where they block the light of sight between a reference source and the positioning device 100, as shown in Figure 1. This may reduce the signal to noise ratio of the positioning signals received from the reference sources. In some instances, the resulting signal strengths may be too low for use in positioning calculations, unless the signals are integrated over a relatively long period (perhaps as much as 1 second, or longer) during correlation. Integrating over a longer time period time enables the positioning device 100 to effectively improve the signal to noise ratio of received signals to sufficient levels to obtain an accurate position fix from the reference sources. A similar problem can arise where there are reflected signals and it is difficult for the receiver to distinguish the line-of-sight signal from the reflected signal.
However, in this example the local oscillator 106 is only stable over time periods shorter than the required integration period. In one example, the local oscillator 106 is stable over about 0.2 seconds, and the required integration period to detect attenuated signals may be about 1 second. This instability makes it difficult or impossible to integrate coherently over the full integration period using known techniques, such as Supercorrelation™. In other words, previous approaches have not been able to coherently integrate for long enough periods while using poor quality oscillators to achieve a position fix from weak positioning signals.
In more detail, in a correlation the local signal generator 118 uses a local frequency reference provided by the local oscillator 106 to generate a local signal that attempts to replicate a received positioning signal from a reference source. The correlation can involve integrating these signals over longer periods of time to improve the result of the correlation. However, the local frequency reference has to be stable over the integration period for this to work because the local signal is generated using this local frequency reference. This means that any errors in the local frequency reference (i.e. discrepancies with respect to a known or predictable frequency reference signal used by the reference source to produce the positioning signal) propagate to the local signal. Thus, if the local oscillator 106 is not stable over the integration period, then using known approaches the local signal will also not be stable over the integration period. Phase compensation is one technique that can be applied to improve the detection of weak signals. Phase compensation involves correcting one of the signals involved in, or the resulting signal of, the correlation based on a movement of the receiver 104 along the line of sight to the positioning source. However, it is only useful to apply phase compensation with a stable frequency reference from a local oscillator. Phase compensation may not be a sufficient countermeasure for detecting weak signals when applied to shorter sections of signals corresponding to a period of shortened oscillator stability. Thus, known approaches have not been able to make use of phase compensation in cases where the local oscillator is only stable for periods less than the required integration period. Phase compensation is sometimes referred to as “motion compensation” because adjusting the phase of a received or produced signal can be used to counteract the effects of relative motion between a source and a receiver on a correlation.
As an additional complication, the stability of the local oscillator 106 changes in different operating conditions and may fluctuate even under constant operating conditions. Temperature is one example of an operating condition that can affect oscillator stability. Problematically, some recent mobile devices are fitted with 5G modems that have been found to generate significantly more heat than modems for previous generations of telecommunication standards. In some instances, the heat from a 5G modem can heat the local oscillator 106 to temperature regimes in which the local oscillator 106 is more unstable. Local oscillators typically found on mobile devices are not sufficiently equipped to compensate for the effects of the extra heat from these 5G modems. Accordingly, some more recent mobile device models have experienced degraded performance when performing positioning calculations.
Figures 3A and 3B show a schematic flow diagram of a method 300 that can be implemented by the positioning system 1 of Figures 1 and 2 to determine an accurate position of the positioning device 100 despite the instability of the local oscillator 106.
At step S302, the local oscillator 106 provides a local frequency reference. The local frequency reference can be any form of timing signal that can be used as a reference for generating other signals (for example, positioning signals) with a desired frequency. For example, the local frequency reference could be a sine wave, a square wave, or another form of timing signal. The local frequency reference will generally deviate from a “true” frequency reference, based on Universal Time, or the frequency reference provided by a higher fidelity oscillator such as an atomic clock. This means that the local frequency reference inevitably contains time-varying errors or “offsets”.
At step S304, the receiver 104 can optionally receive one or more frequency reference signals via the antenna 102 from a plurality of reference sources, including the satellites 2, 4, 6 and the ground source 8. Each of the reference sources has a highly stable local oscillator that is more stable than the local oscillator 106 of the positioning device 100. The highly stable local oscillators may be based on an atomic clock.
At step S306, which is also optional, the reference source selector 116 selects a particular reference source from which to receive a frequency reference. The reference source selector 116 may select any suitable available reference source. The reference source selector 116 may be configured to select the reference source providing the frequency reference signal with the best signal to noise ratio, as measured by the receiver 104. In this example, the reference source selector 116 selects the first satellite 2, which provides a frequency reference signal 14. The first satellite 2 may provide a good signal strength due to its current position being near the zenith of the receiver 102 enabling it to provide a line of sight that avoids the tall building 12. The reliability of the local oscillator of the first satellite 2 means that the received reference signal 14 has a known or predictable frequency. This known frequency can be stored in the memory 110 or retrieved from an online database by the positioning device 100 via an internet connection.
Positioning signals are generated using the known or predictable frequency reference provided by high quality oscillators. The received frequency reference can therefore be included in or derivable from a positioning signal from such a reference source. For this reason, it may not be necessary to receive a frequency reference signal separate from a positioning signal, as in the present example. Instead, the error in the local oscillator 106 can be determined with respect to the frequency included in (or used to generate) a positioning signal. It is possible to determine the frequency used to generate a positioning signal by analysing the positioning signal using known techniques. Of course, determining the offset in the local frequency reference with respect to a frequency reference included in a positioning signal versus determining the offset with respect to a separately received frequency reference would be alternative approaches.
At step S308, the stability period determination module 128 determines the time period during which the local oscillator 106 is stable, or is assumed to be stable, which may be referred to as the “stability period” of the local oscillator 106. In general, the stability of the local oscillator 106 is influenced by the particular operating conditions of the local oscillator 106. For instance, the stability period may be shorter when the local oscillator 106 is at a higher temperature, or while a touchscreen of the positioning device 100 is in operation (due to heating or electromagnetic effects, for example). Therefore, the stability period may be calculated during each positioning calculation based on a measurement of operating parameters. Operating parameters are a numerical representation of an operating condition, such as temperature or screen state. However, for brevity the terms operating conditions and operating parameters may be used interchangeably herein.
In this example, the operating parameters are measured by the temperature sensor 114 or the controller 108 and other sensors to determine or characterise the operating conditions of the local oscillator 106. The calculation may be based on a formula that may be stored in the memory 110 and used by the stability period determination module 128 to determine the required stability period during each positioning calculation. Alternatively, the formula could be stored remotely and performed by a remote processor across a network in a distributed system. In a further example, the determination of the stability period may be calculated using the prediction model 134, as is described in further detail below.
In other examples, the stability period may be set to a fixed duration, for example 0.1 or 0.2 seconds. The fixed duration may be based on the specifications of the local oscillator 106 included in the positioning device 100. The fixed stability period may be stored in the memory 110. Using a fixed stability period assumes rather than calculates the stability period, which may reduce processing demands. It is envisaged that other methods of calculating or determining the stability period could be implemented.
Regardless of whether the stability period is set to a fixed duration or calculated based on measured operating conditions, it may be desirable to assume a stability period that is as long as possible while still producing good results. This may minimise the number of individual frequency offsets that must be calculated during a later step.
At step S310, the receiver 104 receives at least one positioning signal from the remote sources 2, 4, 6, 8. In this example, the reference source selector 116 selects a positioning signal 14 from the first satellite 2 and a positioning signal 18 from the second satellite 4, which can be referred to collectively as the “first” signals. In this example, the first signals include two separate signals from two corresponding remote sources along respective directions of arrival. The method 300 can be performed using only one of the positioning signal 14 or the positioning signal 18 or, advantageously, with 3 or more signals, in other embodiments.
At step S312, the motion determination module 122 utilises data provided by the motion sensor 112, which may include a plurality of measurements from different constituent motion and/or orientation sensors, to determine a motion of the receiver 104. Specifically, the motion determination module 122 determines the motion along the line of sight to the currently selected positioning source or sources, in this case the first satellite 2 and the second satellite 4. The approximate position of the first satellite 2 and the second satellite 4 and an approximate position of the receiver 104 can be used to determine the component of the motion of the receiver 104 along the line of sight to the first satellite 2 and the second satellite 4.
In particular, the motion of the receiver 104 during each of a plurality of sequential stability periods (over which the local signal will be correlated in a later step) is determined. In general, the speed, direction and the degree of acceleration of the motion of the receiver may change between each sequential time period. These changes are tracked by the motion sensor 112 so that the particular motion during a particular stability period can be known and later used in calculations.
The motion can be measured directly using the motion sensor 112. Alternatively, the motion could be assumed or inferred based on previous measurements from the motion sensor 112. For example, if the motion sensor 112 and the motion determination module 122 establish that the receiver 104 is moving at a fixed speed in a straight direction, e.g. while driving or on a train, it may be possible to assume the movement based on a calculation. This may be simpler or less computationally intensive in some cases than performing a measurement.
The motion of the receiver 104 (or, equivalently, the antenna 102) may be determined through measurement of the receiver motion (e.g., using one or more measurements of gyroscope, magnetometer, velocity, step counting, etc.,) or through assuming the receiver motion based upon past motion (e.g., constant motion in a particular direction due to travel in a vehicle or repetitive motion due to pedestrian travel). In addition, motion may be extrapolated or computed from prior motion in specific environments. Machine learning techniques may be used in such situations to predict receiver motion.
In step S314, the local oscillator offset calculator 124 creates an empty vector of offsets. In this example, the local oscillator offset calculator 124 creates the vector v as an (mx2) matrix to store frequency offsets values for A/ = 1 to A/ = m, as shown in equation (1) below, where N denotes a particular stability period. In this instance, m is the total number of consecutive stability periods whose sum is greater than or equal to a required integration period, described further below in step S322. The vector is comprised of a series of frequency offset and frequency rate offset “value pairs”, fN , fN. These offset values represent the offset in frequency and in the time derivative of frequency (i.e. “frequency rate”) between the local signal reference produced using the local oscillator 106 in step S302 and a known or predictable frequency, which may be a frequency derived from a positioning signal or a separate frequency reference. Thus, the vector stores m pairs of offsets for m sequential periods of stability. v = ( A l , A l; A/2 , A/2 ; ... ; A/W , fN) (1)
Adjacent value pairs (shown in Equation 1 as separated by semi-colons) in the vector correspond to adjacent sequential stability periods of the local oscillator 106 in real-time. Each value pair characterises the error in the local oscillator 106 during a particular period of stability of the local oscillator 106. Thus, each offset provides an accurate correction within a given stability period. Therefore, the vector characterises frequency offsets across an extended time period to map the evolving error in the local frequency reference across that extended time period.
In other examples, the vector of offsets could be represented by phase and phase rate offsets alternatively (and equivalently) to frequency offsets. In the above example, the vector of offsets uses only frequency and frequency rate offsets; however higher order time derivative offsets could be used in addition to provide a more accurate correction of the local oscillator 106. It has been found that using only up to first order time derivatives of phase or frequency provides a sufficient level of correction without unduly burdening the controller 108 in terms of processing load. However, in order to reduce processing load further, the method 300 can also be performed without considering time derivative offsets and only using zeroth order frequency or phase offsets (although such an approach would necessitate a reduction in the duration of the stability periods of the local oscillator).
In other examples, the vector of offsets could be split into a first vector for the frequency offsets in each stability period and a second vector for the offsets in frequency rate in each stability period. Vectors of other combinations and dimensions could be used in other embodiments.
In step S316, the local oscillator offset calculator 124 calculates, for each instability period in the vector of offsets, in this example for N = 1 to N = m, the corresponding frequency offset and frequency rate offset between the local frequency reference and the known or predictable frequency. The local oscillator offset calculator 124 then populates the vector initialised in step S314 with each calculated offset. This results in a complete vector of offsets that maps the error in the local reference signal across a plurality of sequential time periods. In other examples, the vector may be populated as each individual value pair is calculated.
One method of performing this calculation is discussed in greater detail below with reference to Figures 4Aand 4B. Briefly, the method uses the received first signals and involves generating a first local signal and adjusting the first local signal based on various estimated local oscillator 106 offset values. A set of first correlation signals is provided by correlating each of the first positioning signals (in this example, the positioning signal 14 and the positioning signal 18) and the first local signal. Phase compensation is applied to the first correlation signals and the offset values that produce the best correlation result provide the true offset in the local oscillator 106.
The positioning method of Figure 3A continues in Figure 3B.
At step S317, a further positioning signal is received, which may be referred to as the “second positioning signal” and in general is weaker or more attenuated (i.e. , is received with a lower signal to noise ratio) than the first positioning signals. In this example, the receiver 104 receives the positioning signal 16, which has a low signal to noise ratio due to attenuation by the tall building 12. Therefore, the positioning signal 16 must be processed using phase compensation in order to be correlated effectively. As the skilled person would appreciate, receiving the second positioning signal may occur at any previous time in the method, such as together with the positioning signal 14 and the positioning signal 18 at step S310.
In step S318, the local signal generator 118 generates a second local signal using the local frequency reference corrected using the vector of offsets. Corrections based on the offset vector may be applied to the local frequency reference using known corrective techniques for correcting a timing signal. The corrective techniques may be based on the received frequency reference and its known or predictable frequency. Corrections could also be applied directly to the second local signal, or other signals that depend on or are used in combination with the second local signal, as discussed in further detail below.
The second local signal is generated using the corrected local frequency reference, and thus the corrections propagate to the second local signal. In this way, the local signal generator 118 generates a second local signal across an extended time period that benefits from the increased stability of the local oscillator, once corrections have been applied. This improved second local signal enables coherent correlation to take place between a more attenuated positioning signal, such as the positioning signal 16, and the second local signal over an extended time period, thereby improving the signal to noise ratio of the correlation signal. This enables a pseudorange to be determined from the third satellite 6, despite the attenuated positioning signal 16.
In the example method of Figures 3Aand 3B, the frequency corrections have been applied to the second local signal using the vector. This adjusts the second local signal so that it corresponds more closely to the positioning signal 16, thereby improving the correlation between the second local signal and the positioning signal 16 across the required integration period. The skilled person would understand that in other implementations the different oscillator corrections can instead be applied to the received positioning signal 16. In this case, the positioning signal 16 would be adjusted using the vector to match the second local signal more closely, which would have the same effect of improving the resulting correlation between the positioning signal 16 and the second local signal. Equally, the frequency corrections could be applied directly to the correlation signal resulting from correlating the second local signal and the positioning signal 16 in the later step S322, or could be applied to any combination of the second local signal, the received positioning signal 16, and the correlation signal of step S322. In step S320, the phase compensation module 126 performs phase compensation on the second local signal. This involves adjusting the second local signal to account for changes in the received positioning signal 16 that arise due to the relative motion along the line of sight between the receiver 104 and the third satellite 6. In other examples, phase compensation can be performed alternatively on the received positioning signal 16, or on the correlation signal produced from correlating the second local signal with the positioning signal 16. These techniques are described in commonly assigned patent publication WO 2017/163042 which is hereby incorporated herein by reference.
By providing phase compensation corresponding to the direction which extends between the receiver 104 and the third satellite 6 it is possible to achieve preferential gain for signals received along this direction. Thus, a line-of-sight signal between the receiver 104 and the third satellite 6 will receive gain preferentially over a reflected signal, e.g. from a nearby building, that is received in a different direction. In a GNSS receiver, this can lead to a remarkable increase in positioning accuracy and a better estimate of the signal phase because non- line-of-sight signals (e.g. reflected signals) are significantly suppressed. Applying phase compensation ensures the highest correlation may be achieved for the line- of-sight signal, even if the absolute power of this signal is less than that of a non- line-of-sight signal. However, even in cases where there are no reflected signals, applying phase compensation boosts the signal to noise ratio of the received positioning signals to enable significantly more accurate positioning calculations.
In step S322, the correlator 120 is configured to correlate the second local signal with the positioning signal 16 received from the third satellite 6 to provide a second phase compensated correlation signal. In general, a received positioning signal may include any known or unknown pattern of transmitted information, either digital or analogue. The presence of such a pattern can be determined by a crosscorrelation process using a local copy of the same pattern (in this example, the second local signal). Received positioning signals may be encoded with a chipping code that can be used for ranging. Examples of such received signals include GPS signals, which include Gold Codes encoded within the radio transmission. Another example is the Extended T raining Sequences used in GSM cellular transmissions.
Performing the correlation involves integrating the first local signal and the positioning signal 16 over an “integration period”. Such an approach requires that the second local signal is generated using a local oscillator that is stable over the integration period. Using the method 300, coherent integration is made possible despite the instability in the oscillator 106. The different errors in the local oscillator 106 are identified and corrected during the integration period. The second local signal can then be constructed in different sections, each of which have different local oscillator correction terms in different time periods. Phase compensation can therefore be applied to the second local signal across the full integration period, since the second local signal can now be integrated coherently despite the poor stability of the local oscillator 106 and the poor signal strength.
The integration period can be determined by the correlator 120 based on the signal to noise ratio of received signals, or alternatively can be set to a sufficiently long duration for detecting weak signals, such as 0.5 seconds, 1 second, 2 seconds or longer.
In step S324, the positioning calculator 130 calculates a positioning range or pseudorange associated with the third satellite 6 based on the result of the correlation in step S322. As known in the art, the precise position of the positioning device 100 can be inferred by obtaining positioning ranges from at least three further satellites and determining the intersection between the four calculated ranges.
The controller 108 performs a joint estimation during a phase compensation process in step S316 in order to directly determine values for frequency offset and frequency rate offset. As described in WO 2019/063983, different values for frequency offset and frequency rate offset can be tested in a two-dimensional search space when performing the phase compensated correlation. This can allow precise determination of the frequency and frequency rate offset in step S316. This approach is preferred because it is considered more accurate than determining the difference between the frequency of the local oscillator and the frequency of a reference source. For strong signals (such as the “first” positioning signals 14 and 16) it may be possible to perform phase compensation over a short time period, which is equal to the stability period of the local oscillator 106. Therefore, the joint estimation process can be applied for stronger signals over this short time period in order to determine the values for frequency and frequency rate offset. These values can then be used directly in step S316.
In step S326, the controller 108 returns to previous step S302, in order to perform steps S302 to S324 for additional sources from which a positioning signal is being received by the receiver 104, although in practice these steps would generally be undertaken in parallel.
At step S328, the positioning calculator 130 uses the at least four determined ranges to calculate a position of the positioning device 100.
Figures 4Aand 4B display an example method 400 for performing steps S314 and S316 of method 300. Specifically, Figures 4A and 4B show a flow diagram for a method of calculating the offsets between a known or predictable frequency and the local frequency reference produced using the local oscillator 106.
In step S402, the method 400 begins by determining, by the local oscillator offset calculator 124, the number of sequential stability periods required to match or exceed a required integration period for performing an accurate correlation. This can be determined using the stability period calculated in step S308 by the stability period determination module 128. The required integration period may be dynamically adjusted based on, for example, the signal to noise ratio of the received positioning signal 16. The required integration period may be longer for a poorer signal to noise ratio. Alternatively, the required integration period may be set at a fixed value stored in the memory 110 that is sufficiently long to enable very weak positioning signals to be correlated. The local oscillator offset calculator 124 may calculate the required size of the vector of offsets, or “offset vector”, by determining the number of stability periods whose sum is greater than or equal to the required integration period. In this example, the local oscillator offset calculator 124 determines that m stability periods are required and initialises the offset vector accordingly with a length of (mx2).
In step S404, the local oscillator offset calculator 124 initialises a loop to perform steps S406 to S426 a number of times so that the unique error in the local frequency reference, and hence the error in the local oscillator 106, can be determined for each sequential stability period. In particular, the local oscillator offset calculator 124 initialises the loop to iterate m times and determines a particular frequency and frequency rate offset value in each iteration.
In general, the particular error in the local oscillator 106 in a given time period is related to the operating conditions of the local oscillator 106 in that time period. For example, the local oscillator 106 may tend to provide an overly high local frequency reference when the local oscillator 106 is hotter, or while the positioning device 100 is being jolted or vibrated by external forces. In another example, the local oscillator 106 may tend to provide a local frequency reference with a lower than average frequency when certain components of the positioning device 100 are in operation. Thus, the local oscillator 106 may not be truly unstable because its instability can be predictable to some extent, based on its environment. In general, these environmental operating conditions can change between stability periods. The present invention leverages these considerations in steps S406 to S412 to reduce the processing load involved in determining the particular offsets in a particular stability period.
In step S406, the local oscillator offset calculator 124 determines the operating conditions of the local oscillator 106 during the specific stability period for which the frequency offsets are currently being calculated. For example, the local oscillator offset calculator 124 may utilise continuous measurements taken by the temperature sensor 114 and/or the motion sensor 112 to establish the operating conditions of the local oscillator 106 during the relevant time period. In subsequent steps, it is possible to check whether these operating conditions have been encountered by the positioning device 100 in the past by referring to the lookup table 132. Alternatively, or in addition, the prediction model 134 can use the determined operating conditions to make a prediction or initial estimation of the frequency offset.
Further details regarding the form and operation of the lookup table 132 and the prediction model 134 will now be provided before returning to the method 400 of Figures 4A and 4B. As discussed above, the particular error in the local oscillator 106 is influenced, though not generally determined solely by, its environment and the conditions under which it operates. Therefore, storing previously calculated offsets in the lookup table 132 enables subsequent offset calculations to benefit from the knowledge of how the local oscillator 106 behaved in similar conditions in the past. The lookup table 132 is used in steps S408 to S410 to reduce the processing load involved in calculating the error in the local oscillator 106 by considering previous offsets in the local frequency reference provided by the local oscillator 106.
The lookup table 132 is a dataset configured to store the frequency or phase offsets that have been measured during previous uses of the positioning device 100 in particular operating conditions. In this embodiment, the lookup table 132 is a multidimensional array that stores calculated frequency and frequency rate offset value pairs corresponding to particular operating conditions.
Some operating conditions, such as whether a particular component (e.g., the touch screen or wireless interface) of the positioning device 100 is in operation may be characterised with a binary operating parameter. For example, a touchscreen can only be on or off, and the operating parameter may take a value of one or zero. Other types of measurements may be continuous, such as the degree of vibration or the temperature of the local oscillator 106. For these continuous variables, the lookup table 132 may be configured to use a bin width, such that measurements of an operating condition within the bin width correspond are considered the same measurement for the purposes of storing relevant offset calculations. This may be useful to maintain the lookup table 132 at a manageable length, and hence a manageable storage size. In other embodiments, the lookup table 132 may be configured so that certain dimensions of the lookup table have a length corresponding to a sensor resolution. For example, a dimension of the lookup table 132 corresponding to temperature may have a length equal to the measuring range of the temperature sensor 114 divided by its resolution. This would allow a pair of offsets to be stored for every possible sensor value.
In one specific example, the local offset calculator 124 may determine the particular error in the local frequency reference produced by the local oscillator 106 during operating conditions of: a local oscillator temperature of 20°C, the screen being in an “on” state, and substantially no jolting of the positioning device 100. The local offset calculator 124 may then add the calculated offset values to a corresponding location in the lookup table 132 corresponding to these operating conditions. In a subsequent calculation, the local oscillator offset calculator 124 may, for example, determine offsets for operating conditions that differ in respect of temperature, i.e., conditions of: local oscillator 106 temperature of 15°C, the screen being in operation, and substantially no jolting of the positioning device 100. The calculated offsets for these conditions may be stored in a different location in the lookup table 132. In this manner, over time, the lookup table 132 may store the results of offset calculations performed across a wide space of operating conditions.
In another simplified example, the local oscillator offset calculator 124 may only consider the operating conditions of (i) temperature, and (ii) whether a touchscreen is in operation. In this case, the lookup table 132 may be configured as a three dimensional array (AxBxC). One dimension, A, may correspond to the temperature of the local oscillator 106, and may have a length equal to the number of temperature bins in use. In this simplified example, four bins of temperature may be in use, and the lookup table 132 may have a corresponding dimension length of four. Another dimension, B, may correspond to the state of the screen, and thus would have a length of two since the screen can only be on or off. The remaining dimension, C, corresponds to the frequency offset and the frequency rate offset measured under the corresponding operating conditions. Thus, the dimension C has a length of two to store two different offset values for every possible combination of screen state and temperature bin. In this example, the lookup table 132 can therefore be implemented as a matrix of values of dimensionality (4x2x2) storing either frequency offsets in the (/, j, 1) slice and frequency rate offsets in the (/, j, 2) slice, for arbitrary matrix indices / and j.
In more involved embodiments, the lookup table 132 may typically have a higher dimensionality according to the number of additional operating parameters (e.g., degree of device jolting, acceleration or vibration, etc) that are factored into account. For example, if the presence of vibrations in the local oscillator 106 is also factored in, the lookup table 132 may be a four dimensional matrix or data structure.
In one specific more involved embodiment, the lookup table 132 may also account for whether the temperature is increasing or decreasing. This is because oscillators can exhibit temperature hysteresis, i.e., can behave differently at a given temperature depending on the recent or historical temperature of the oscillator. For example, the local oscillator 106 may provide a relatively lower frequency reference when the temperature is at 20°C and increasing, and a relatively higher frequency reference when the temperature is at 20°C and decreasing. The lookup table 132 can be configured to store offset values for each case of increasing or decreasing temperature.
Continuing the above example, the lookup table 132 can have an additional dimension Z of length 2, providing an array of (AxZxBxC) so that each temperature value has two corresponding frequency and frequency rate offset entries in the lookup table. One pair of frequency and frequency rate offsets would correspond to when the local oscillator 106 is at a respective temperature and the temperature is increasing. The other pair would correspond to the same temperature but when the temperature is decreasing. The additional dimension in this case could be embodied as a binary dimension, i.e. taking values of 1 or 0 only, similar to the operating condition of whether the touchscreen is in operation. This allows the lookup table 132 to account for temperature hysteresis effects in the local oscillator 106.
In practice, a much greater number of bins for continuous variables may be used than the four temperature bins in the above example. In the above example, the dimension C could have a greater or shorter length depending on the order of frequency corrections in use. For example, the dimension C could have a length of one if only frequency offsets are applied, or could have a length of three if both first and second time derivative corrections are calculated and applied. In other embodiments, the lookup table 132 could be any form of dataset implemented in a variety of other ways, such as using other forms of data structures, or using a plurality of separate matrices or other data structures. For example, the lookup table 132 could be implemented using a table to store specific measurement values for each operating condition corresponding to a particular time period. In addition, the table may store the corresponding offset values calculated for these conditions and the particular time period. Thus, a list of measured operating conditions and the corresponding offset values calculated subsequently may be built up over time by the local oscillator offset calculator 124 in the lookup table 132. In this case, when referring to the lookup table 132 at a later time, the local oscillator offset calculator 124 may refer to the closest set of operating condition measurements in the list in order to restrict a “search space”, as discussed further below.
In some embodiments, the lookup table 132 may be configured to store a plurality of offset values for the same operating conditions and store additionally an average offset value for those conditions. The average offset for particular conditions may be calculated by the local oscillator offset calculator 124. The average offset value for particular conditions may then be used to set a search window width, as discussed further below. Alternatively, only the most recent offset values determined for a particular set of conditions may be stored, and thus subsequent measurements in the same operating conditions may overwrite previously measured offsets.
Another approach that can be used in place of or in conjunction with the lookup table 132 involves the use of the prediction model 134. The prediction model 134 can include a mathematical formula or Al-based model, such as a neural network or machine learning model, that is able to make an initial estimate or initial prediction of the error in the local oscillator 106 based on the determined operating conditions. In any case, the prediction model 134 allows future behaviour of the local oscillator 106 to be predicted through a characterisation of past behaviour. The prediction model 134 can be used in a similar manner as the lookup table 132 to provide an initial frequency estimation that constrains a search window for calculating the frequency offset more precisely, as explained in further detail below. Use of such a model can also be referred to as using “predictive control”.
The model can be pre-trained with prediction data 136 stored in the memory, or continuously retrained based on the determined operating conditions and each calculated frequency offset. Alternatively, the model can incorporate data from the lookup table 132. If a pre-trained model is used that is not continuously re-trained or updated based on calculated frequency offsets, it may not be necessary to store each calculated offset and the corresponding operating conditions. Continuously retraining the model would enable the model to be tailored to the particular device in which it is implemented.
Data from sensors or determinations made by the controller 108 may be used to control operational functions of the device 100 to mitigate operating conditions that negatively affect the stability of the local oscillator 106. For example, if a sensor indicates the local oscillator 106 temperature is becoming extreme to the point of making phase compensation a non-viable option to correct for the temperature, the controller 108 may inform the device 100 to perform a mitigating action to lower the temperature, e.g., deactivate the screen, slow the processor speed, deactivate one or more modems, etc.
Now returning briefly to the method 400, in step S408 the local offset calculator 124 can check the lookup table 132 to determine if the set of operating conditions determined in the previous step corresponds to a “known” set of operating conditions. A given set of operating conditions may be “known” if these same measurements, or, for example, measurements within a certain similarity threshold, have been performed previously and used to determine an offset of the local frequency reference.
In step S410, if the measured operating conditions are known, the local offset calculator 124 may restrict a search window in “(A , A )” space based on the previous calculation. For example, a previously calculated frequency and frequency rate offset corresponding to the determined operating conditions can be used as an initial estimated value for calculating the current frequency offset. The search window can be set based on this initial estimated value.
Alternatively, rather than checking whether the operating conditions are known, the operating conditions may be provided as an input to the prediction model 134. The prediction model 134 can then analyse the operating conditions and provide an initial estimated frequency offset, which can be used to define the search window instead.
With reference to Figure 5, the (A , ) space and its relation to the offset calculation will now be described before returning to the method 400.
Figure 5 shows a graph 500 comprising two axes that represent a range of possible frequency offset values on the y-axis and frequency rate offset values along the x-axis, for a particular stability period. Points on the graph 500 correspond to a point in (A , A ) space, where each point in the space represents a possible combination of offset values. A search window can be defined as an upper and lower bound along each axis of this (A , A ) space, between which a subset of points in the space are contained. A large search window 502 is shown, encompassing a greater number of test points 504. A narrow search window 506 is also shown, encompassing a lesser number of test points 508. In practice, only one of a larger or a narrower search window would be applied in a given iterative cycle. However, for the purposes of illustration the large search window 502 and the narrow search window 506 are shown simultaneously.
In either case, the test points in the search window represent hypothesised frequency offsets or errors in the local frequency reference produced by the local oscillator 106. Once each test point in the search window has been evaluated, a “preferred” frequency offset value, i.e. , a best estimate of the error in the local oscillator 106, can be determined.
The local oscillator offset calculator 124 is configured to determine the “true” offset values for a particular stability period by performing a calculation for each test point in a single search window and determining the best-fit solution. To perform the calculation for each test point, a local “test signal”, i.e. , a “first local signal” that is different from the second local signal generated in step S318, is created using a local frequency reference adjusted using the offset value pair of the particular test point. This local test signal is then correlated with each of one or more (“first”) positioning signals (such as the positioning signal 14 and the positioning signal 18 referred to as the “first positioning signals” above) with better signal to noise ratios than the (“second”) positioning signal 16 that allows phase compensation to be performed coherently over the instability period of the local oscillator 106. The first positioning signals are generated using a known or predictable frequency, for example using a high fidelity local oscillator of a reference source. This may be included in (or used to derive) the first positioning signals. The first positioning signals are then correlated with the local test signal using the phase compensation module 126 to apply phase compensation to one of the signals in, or the result of, the correlation over a single stability period. The dependency of the local test signal on the local frequency reference means that a correlation result “z” is a function “F” of frequency offset and frequency rate offset, as shown in equation (2) below. Example (arbitrary) contours are plotted on the graph 500 as a simplified illustration of how values of the function F could change over the (A , A ) space. A maximum 510 of the function F is shown in Figure 5. The maximum 510 corresponds to the best-fit values 512, 514 for the frequency offset and frequency rate offset in a particular stability period.
Z = F(A/,A/) (2)
In use during a positioning calculation, the correlator 120 performs the correlation for each test point in the search window, until it can be established that the maximum 510 has been found. The offset values corresponding to the maximum 510 of the function F provide the best-fit values 512, 514, which most closely represent the true error in the local oscillator 106 during the particular period of stability.
The maximum 510 is a maximum value in this example; however the correlation results z may be analysed to determine best-fit values 512, 514 using any other constraint mechanism. For example, a search for a minimum value may be performed, or alternatively a best-fit determination based on more complex criteria may be performed.
Returning to step S410 of the method 400, it may be determined that the measured operating conditions are known. Subsequently, the search window size may be set based on a percentage of the previously calculated offset under those conditions, such as a search window of ± 50% of the previously calculated frequency and frequency rate offsets. The search window size may alternatively be calculated using more complicated formulas. Advantageously, setting a narrow search window 506 avoids performing the test correlation calculation for a large number of points in the (A , ) space, thereby reducing the processing load to determine a single offset pair in known conditions. The first test point of a search window effectively sets the initial estimate for the offset values. Setting a narrow search window 506 based on previous calculations sets an initial estimate, (or “initial condition”) that is closer to the “true” or the final best-fit value. Equally, the search window could be set based on an initial estimate of the frequency offset from the prediction model 134. For example, the search window could be ± 50% of initial estimated frequency and frequency rate offsets made by the prediction model 134.
After a narrow search window 506 has been set, the method 400 may then proceed to step S414.
However, if the operating conditions are not known, then the method 400 proceeds to step S412 in which a wide search window 502 is set by the local oscillator offset calculator 124. In some embodiments, depending on the particular implementation of the lookup table 132, at this point the local oscillator offset calculator 124 may add the measured operating conditions to the lookup table 132. In other embodiments, the lookup table 132 may not record particular operating condition measurements. In such cases, the lookup table 132 may have a pre-allocated but currently empty storage location corresponding to the particular measured operating conditions for storing an offset value pair. The search window size can also be constrained in other ways. In one example incorporating the prediction model 134, the prediction model 134 can determine a confidence or variability score based on the determined operating conditions. The score can represent the variability of the local oscillator 106 in the corresponding operating conditions. A high score can indicate that the local oscillator 106 is particularly unstable and that a wider search window 502 should be used. Conversely, a lower score may indicate that a narrower search window 506 can be used because the local oscillator 106 is known to be somewhat more stable in the current conditions.
In another example, the prediction model 134 can compare the frequency offset most recently calculated with a more recent frequency offset prediction. The size of the difference between the more recent prediction and the most recently calculated value can define the size of the search window. For example, if the prediction and current values are very different, the number of hypotheses may be expanded. Conversely, if the difference is small, a lesser number of hypotheses may be used.
In step S414, the local oscillator offset calculator 124 initialises a loop to be performed for each point in (A , ) space within the search window.
In step S416, for a particular test point in (A , A ) space, the local signal generator 118 constructs a local test signal of duration corresponding to the duration of the stability period. This is performed using the local frequency reference from the local oscillator 106 adjusted according to the point in (A , A ) space currently being tested.
In step S418, this local test signal is correlated by the correlator 120 with one of the "first" positioning signals, or each of the first positioning signals in turn, which may have a better signal to noise ratio than the positioning signal 16, over a stability period. In this example, the receiver 104 receives a positioning signal 18 from the second satellite 4 as the first positioning signal along the line of sight to the second satellite 4. The result of the correlation produces a first correlation signal. During this step, the phase compensation module 126 applies phase compensation to one of the local test signal, the positioning signal 18, or the resulting first correlation signal to produce a phase compensated first correlation signal. Phase compensation can be performed in step S418 using the motion of the receiver 104 during the relevant stability period determined in step S312. The phase compensation may be performed based on the line of sight motion to the second satellite 4. The resulting signal of the phase-compensated correlation may be turned into a “test value” using the function F, for example using a formula or by performing an integration, to provide the correlation result z of Equation 2.
In step S420, the local oscillator offset calculator 124 checks to see if the test value calculated in step S418 is greater than the previous largest test value obtained from performing steps S416 and S418 for previous test points in (A , A ) space. If the current test value is larger than any calculated during previous iterations of the loop initialised in step S414, then the local oscillator offset calculator 124 determines that a new best-fit offset value pair has been found. The best-fit offset values that produced the maximum are recorded. Otherwise, if the test value is not greater than the previous best-fit test value, then the frequency offsets corresponding to the current test point may be discarded due to being less accurate. Thus, over a plurality of iterations of steps S416-S420, the method 400 dynamically adjusts the frequency offset values by continuously replacing a best- fit pair of offsets with a better-fitting pair of offsets based on the phase- compensated correlation.
In other embodiments, the local oscillator offset calculator 124 may determine that the best fit frequency offsets are likely to lie between two of the hypothesised test values and thus may interpolate between the test values to provide the best estimate of the frequency and frequency rate offsets.
In step S422, the local oscillator offset calculator 124 performs steps S416-S420 for each test point within the search window of (A , A ) space. After performing the loop for each test point, a global maximum test value of z within the search window is determined and the corresponding offset values are stored. For example, the local oscillator offset calculator 124 may identify the best-fit values 512, 514 of maximum 510, as shown in Figure 5. If the operating conditions were found to be known and a narrower search window was set at step S410, steps S416-420 can be performed fewer times due to less test points being encompassed by the smaller search window.
Steps S418-S422 have been performed using a single “first” positioning signal 18 from the second satellite 4. However, these steps may be repeated (or performed in parallel) for additional positioning signals received from a plurality of (“first”) remote sources, such as the first satellite 2 and the corresponding positioning signal 14. In general, a large number of first positioning signals may be used. Steps S418-S422 may be repeated in a loop for each of the first positioning signals. Alternatively, a correlation may be performed between the local test signal and each received first signal at step S418 to produce a phase compensated correlation result for each test point in the search window and for each of the received first signals.
In this case, the function F may be constructed by combining the test values computed in (A , ) space for each additional first positioning signal.
Combining the test results from several positioning sources avoids one issue that can arise in some scenarios when using only one first signal from a single first remote source.
For example, if only the positioning signal 18 is used in the method 400 and the positioning signal 18 is received along a direct line of sight and, at the same time, along an indirect direction of arrival resulting from a reflection, issues can occur. In this case, there can be two hypothesised frequency offsets or test values that produce a strong phase compensated first correlation signal (or equivalently a strong test result) at step S418. However, only one of the hypothesised frequency offsets actually corrects an error in the local oscillator 106. The remaining hypothesised frequency offset effectively “corrects”, or counteracts, a phase offset resulting from the positioning signal 18 taking the reflected path, leading to a stronger correlation result. This remaining hypothesised frequency offset can be mistakenly determined to be the frequency offset value resulting from the local oscillator 106 instability for a given time period. In this case, the calculated frequency offset does not represent the error in the local oscillator 106 in the given time period. This means that calculated frequency offset cannot be used to apply an accurate correction in the processing of other received signals (such as the weaker “second” positioning signal 16) to achieve better phase compensated correlation results.
Using a plurality of positioning signals to determine the frequency offset in each time period avoids this issue because each of the received positioning signals has a common hypothesised frequency offset that produces a strong phase compensated first correlation signal. The common hypothesised frequency offset corresponds to the error in the local frequency reference produced by the unstable local oscillator 106. However, the frequency offsets corresponding to reflected paths from each of the remote sources will generally not coincide because each remote source is at a different position and elevation, leading to differing degrees of path length differences and hence different phase delays. Therefore, combining the phase compensated first correlation results produced for each of the first positioning signals allows the hypothesised frequency offset corresponding to the error in the local oscillator 106 to be revealed.
In some examples, the combination can be carried out by a sum or weighted sum of the test values computed for each test point in (A , A ) space.
In step S424, the local oscillator offset calculator 124 sets, for the current period of stability in the vector of offsets, the frequency offset and the frequency rate offset equal to the best-fit values 512, 514. At this point, the local oscillator offset calculator 124 has now determined the error in the local oscillator 106 for a particular time period.
In step S426, the local oscillator offset calculator 124 may add the best-fit values 512, 514 to the lookup table 132. If the lookup table 132 is configured as a multidimensional array, as described previously, the best-fit values may be stored at a location in the lookup table 132 corresponding to the operating conditions relevant to the calculated best-fit values 512, 514. In some embodiments, any previously calculated offsets stored in the lookup table 132 may be overwritten. In other embodiments, the lookup table 132 may be configured to store a range of offset values for particular conditions in order to calculate an average. Thus, in such embodiments the best-fit values 132 may be added to the lookup table 132 in addition to previously calculated best-fit values. Similarly, if the lookup table 132 is configured to store particular measurement values and the corresponding measured offsets, these data may be added to the lookup table 132 at step S426.
The prediction model 134 can also be updated or retrained based on the best fit values 512, 514 and the determined operating conditions of step S406.
In step S428, the method 400 returns to step S406 and steps S406-426 are repeated for each of the sequential periods of stability of the local oscillator 106 until the vector of offsets is fully populated with offset values. In this way, the method 400 creates a vector representing a daisy-chain of corrections in the local oscillator 106 for sequential time periods. In practice, each frequency offset and each frequency rate offset is highly likely or even certain to be numerically unique (if the values are represented with enough significant figures), due to the stochastic nature of the physical processes governing the behaviour of the local oscillator 106.
Following step S428, the method 400 may include a further step of performing an additional joint estimation process. In one example implementation, the offset vector calculated in the preceding steps may be applied to correct a local test signal similar to the local test signal generated in step S416 but having a longer duration equal to, for example, the full length of the desired integration period. The processes of steps S418 to S422 may be repeated using the positioning signal 18, the positioning signal 14, and any other positioning signals together with the longer local test signal that has been corrected by the offsets calculated in steps S402 to S428. This calculates a single frequency and frequency rate offset correction for the longer local test signal. This additional correction pair is generally small and relates to an overarching frequency and frequency rate offset in the local oscillator 106 that may not be accounted for by the previous steps. This additional overarching correction can then be applied (e.g., added) to each of the previously calculated frequency and frequency rate offsets in the vector, resulting in a small shift in frequency and frequency rate across the whole integration period. This results in a more accurate estimation of the error in the local oscillator 106 over the integration period.
The offset vector can then be used in the method 300 to produce a second local signal of duration equal to or greater to than that of the required integration period. The second local signal is created using the local frequency reference, which is corrected in different ways at different portions of the local frequency reference according to each pair of best-fit offsets in the offset vector. In turn, these corrections propagate to the second local signal produced using the local frequency reference. This allows the second local signal to be integrated coherently across the full integration period in the correlation step S322, despite the instability of the local oscillator 106. As described previously, alternatively or in addition the vector could be used to apply corrections to the positioning signal 16 or the correlation signal resulting from step S322.
The method 400 may comprise additional steps to further increase the efficacy of the correction applied to the local frequency reference signal. The local oscillator offset calculator 124 can be configured to assess the trend in offset values in the offset vector across the sequential periods of stability. The local oscillator offset calculator 124 may establish that the frequency offset values, for example, vary in a steady and continuous manner between adjacent stability periods. The local oscillator offset calculator 124 may perform a statistical analysis to attempt to determine a trend, for example a polynomial or logarithmic trend. If a trend can be identified with a sufficiently high quality of fit, interpolation may be applied. In one example, fit quality may be characterised by a metric related to residuals, such as an “r-squared” value, as known in the art. A similar assessment may be made with respect to the frequency rate offset values. In one example, a steady variation in offsets may occur where the local oscillator 106 is operating in favourable conditions, e.g. low temperatures.
If a substantially steady variation in offset values can be determined, it can be presumed that the error in the local oscillator 106 behaves predictably between calculated offset values. To make use of this, the local oscillator offset calculator 124 can be configured to increase the length of the offset vector in order to accommodate further offset value pairs. The local oscillator offset calculator 124 may then interpolate offset values that lie between calculated offset values. Advantageously, this enables a more fine-scale correction of the local frequency reference to be performed without having to execute the computationally demanding process of steps S416-422 for additional stability periods. Alternatively, if it is determined that there is a predictable behaviour between time periods then the time periods may be extended in order to reduce the computational load.
In some example embodiments, using interpolation in this way may be carried out in the method 400 retroactively, i.e. , after an initial vector of offsets is calculated at step S428. Alternatively, interpolation may be carried out prior to step S428 after offsets for at least three consecutive periods of stability have been calculated. For example, between steps S412 and steps S414 it could be checked whether there appears to be a smooth variation in offset values, and if so interpolation may be applied. Applying interpolation retroactively rather than in real-time may have the benefit that the behaviour of the local oscillator 106 across the full scope of the integration period may be checked for smooth variation before making assumptions about the behaviour of the local oscillator 106. The interpolation may be applied when the operating conditions meet a certain criteria, for example when the temperature is below a threshold value, that indicate favourable conditions for local oscillator stability.
If the trend in behaviour of the local oscillator 106 is determined to be erratic or relatively unpredictable, the local oscillator offset calculator 124 may choose not to apply interpolation to avoid making incorrect assumptions regarding offset values.
The search space used in the example method 400 is two dimensional due to the use of up to first order frequency corrections, frequency offset and frequency rate offset. However, in other embodiments the search space could be one dimensional if only frequency offsets are calculated, or three or more dimensional if higher order corrective terms are calculated.

Claims

1 . A method comprising: providing a local frequency reference using a local oscillator; receiving at least one signal, at a receiver, from at least one remote source, along respective directions of arrival; determining a movement of the receiver; determining one or more operating conditions in a system performing the method; determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions; for each of the at least one received signals: using the local frequency reference to provide a local signal; providing a correlation signal by correlating the local signal with the received signal; and providing phase compensation of at least one of the local signal, the at least one received signal, and the correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated correlation signal; dynamically adjusting, based on the phase compensated correlation signals and the initial estimated frequency offset, a frequency offset value to determine a preferred estimated value for the frequency offset in the local frequency reference.
2. The method of claim 1 , wherein the one or more operating conditions include a physical variable or parameter of the local oscillator.
3. The method of claim 1 or claim 2, wherein the one or more operating conditions include one or more of temperature, a rate of change of temperature, an operating state, a determined movement, or an indication of whether a component in the system is turned on or off.
4. The method of any of the preceding claims, comprising the step of supplying the preferred estimated value for the frequency offset and the corresponding one or more determined operating conditions to a stored dataset.
5. The method of claim 4, comprising the step of, at a later time: determining one or more subsequent operating conditions of the system and supplying a frequency offset from the stored dataset, corresponding to the one or more subsequent operating conditions, as an initial estimated frequency offset for performing the step of dynamically adjusting a frequency offset value to determine a preferred estimated value for the frequency offset in the local frequency reference.
6. The method of any of the preceding claims, wherein the step of determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions is performed using a model configured to predict a frequency offset in the local oscillator based on the one or more operating conditions.
7. The method of any of the preceding claims, wherein a search window for the preferred estimated value for the frequency offset is defined based on the initial estimated frequency offset.
8. The method of any of the preceding claims, further comprising: determining an initial estimated frequency rate offset in the local frequency reference based on the one or more operating conditions; and dynamically adjusting, based on the phase compensated correlation signals and the initial estimated frequency rate offset, a frequency rate offset value to determine a preferred estimated value for the frequency rate offset in the local frequency reference.
9. The method of any of the preceding claims, wherein the one or more received signals signal are positioning signals generated by one or more remote positioning sources.
10. The method of any of the preceding claims, further comprising: for each of the at least one first received signals: providing a plurality of hypothesised frequency offsets based on the estimated frequency offset and for each of the plurality of hypothesised frequency offsets: performing the step of providing phase compensation of at least one of the local signal, the received signal, and the correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated first correlation signal; wherein the step of dynamically adjusting comprises determining the preferred estimated frequency offset based on the plurality of hypothesised frequency offsets and the produced phase compensated correlation signals.
11. The method of claim 10, wherein determining the preferred estimated frequency offset based on the phase compensated correlation signals is performed by, for each hypothesised frequency offset, combining the phase compensated correlation signals produced for each of the plurality of received signals and determining the hypothesised frequency offset corresponding to the highest combined correlation.
12. The method of any of the preceding claims, further comprising using the preferred estimated value for the frequency offset in the local frequency reference to correct a signal derived from the local frequency reference.
13. A system, comprising: a local oscillator configured to provide a local frequency reference; a receiver configured to receive at least one signal from at least one remote source, along respective directions of arrival; a motion module configured to determine a movement of the receiver; and a controller configured to: determine one or more operating conditions in the system; determine an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions; for each of the at least one received signals: use the local frequency reference to provide a local signal; provide a correlation signal by correlating the local signal with the received signal; and provide phase compensation of at least one of the local signal, the at least one received signal, and the correlation signal based on the determined movement of the receiver along the respective direction of arrival to produce a phase compensated correlation signal; dynamically adjust, based on the phase compensated correlation signals and the initial estimated frequency offset, a frequency offset value to determine a preferred estimated value for the frequency offset in the local frequency reference.
PCT/GB2023/052056 2022-08-03 2023-08-03 Method and apparatus for determining a frequency related parameter of a frequency source WO2024028608A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263394667P 2022-08-03 2022-08-03
US63/394,667 2022-08-03
US202263424185P 2022-11-10 2022-11-10
US63/424,185 2022-11-10

Publications (1)

Publication Number Publication Date
WO2024028608A1 true WO2024028608A1 (en) 2024-02-08

Family

ID=87570792

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/GB2023/052055 WO2024028607A1 (en) 2022-08-03 2023-08-03 Method and apparatus for determining a frequency related parameter of a frequency source
PCT/GB2023/052056 WO2024028608A1 (en) 2022-08-03 2023-08-03 Method and apparatus for determining a frequency related parameter of a frequency source

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/GB2023/052055 WO2024028607A1 (en) 2022-08-03 2023-08-03 Method and apparatus for determining a frequency related parameter of a frequency source

Country Status (1)

Country Link
WO (2) WO2024028607A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006137904A2 (en) * 2004-10-06 2006-12-28 Ohio University Systems and methods for acquisition and tracking of low cnr gps signals
EP2120061A1 (en) * 2008-05-09 2009-11-18 Research in Motion Limited Improved frequency aiding method and system for navigation satellite receiver with crystal oscillator frequency hysteresis
WO2017163042A1 (en) 2016-03-24 2017-09-28 Focal Point Positioning Limited A method, apparatus, computer program, chip set, or data structure for correlating a digital signal and a correlation code
WO2019063983A1 (en) 2017-09-26 2019-04-04 Focal Point Positioning Limited A method and system for calibrating a system parameter

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7471238B2 (en) * 2005-11-01 2008-12-30 The Aerospace Corporation Multitarget tracking antispoofing receiver
GB2593459B (en) * 2020-03-20 2024-04-10 Focal Point Positioning Ltd A method, system and computer program product for performing correlation in a positioning system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006137904A2 (en) * 2004-10-06 2006-12-28 Ohio University Systems and methods for acquisition and tracking of low cnr gps signals
EP2120061A1 (en) * 2008-05-09 2009-11-18 Research in Motion Limited Improved frequency aiding method and system for navigation satellite receiver with crystal oscillator frequency hysteresis
WO2017163042A1 (en) 2016-03-24 2017-09-28 Focal Point Positioning Limited A method, apparatus, computer program, chip set, or data structure for correlating a digital signal and a correlation code
WO2019063983A1 (en) 2017-09-26 2019-04-04 Focal Point Positioning Limited A method and system for calibrating a system parameter

Also Published As

Publication number Publication date
WO2024028607A1 (en) 2024-02-08

Similar Documents

Publication Publication Date Title
US20220283322A1 (en) Method and system for calibrating a system parameter
US20220404511A1 (en) Method and system for calibrating a system parameter
US11624843B2 (en) Systems and methods for reduced-outlier satellite positioning
US10816672B2 (en) Method and system for correcting the frequency or phase of a local signal generated using a local oscillator
EP3430429B1 (en) Satellite navigation receiver with improved ambiguity resolution
US10222484B2 (en) Satellite navigation receiver with improved ambiguity resolution
JP2018136298A (en) Distributed kalman filter architecture for carrier range ambiguity estimation
CN104730542B (en) The method and apparatus of the frequency inaccuracy of frequency generator for compensating such as oscillator
WO2024028607A1 (en) Method and apparatus for determining a frequency related parameter of a frequency source
Garcia et al. A Bayesian technique for real and integer parameters estimation in linear models and its application to GNSS high precision positioning
JP5300333B2 (en) POSITIONING DEVICE, POSITIONING METHOD, AND POSITIONING PROGRAM
KR102624834B1 (en) Portable device with gnss receiver saving power comsumption
US20240045077A1 (en) Method and apparatus for determining a frequency related parameter of a frequency source

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23754390

Country of ref document: EP

Kind code of ref document: A1