Method and apparatus for determining frequency-related parameters of a frequency source
The method corrects for local oscillator instability in consumer devices by using phase compensation and multiple signals to improve positioning accuracy in challenging environments, enabling longer coherent integration and precise distance measurements.
Patent Information
- Application Number
- JP2025505577
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-11-10
- Filing Date
- 2023-08-03
- Publication Date
- 2025-08-07
AI Technical Summary
Consumer devices with low-cost local oscillators, such as smartphones and car navigation systems, face instability due to factors like temperature, vibration, and acceleration, affecting their ability to perform accurate positioning calculations in challenging environments.
A method and system that use a local oscillator to provide a frequency reference, correct for frequency offsets using phase compensation based on receiver movement and multiple signals, and apply corrections over extended periods, even with unstable oscillators, enabling coherent integration and improved positioning accuracy.
This approach enhances positioning accuracy in poor signal environments by correcting for local oscillator instability, allowing for longer coherent integration and more precise distance measurements to GNSS satellites.
Smart Images

Figure 2025525837000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a system that can use a receiver with an unstable local oscillator to determine a more accurate value (such as the local oscillator frequency or frequency drift rate) from the received signal. [Background technology]
[0002] Modern devices, such as cellular telephones, have local oscillators that can provide frequency references for a variety of different applications. Cellular devices often include relatively low-cost local oscillators, such as crystal oscillators. These devices can provide stable frequency references over short periods of time. However, the frequency references they generate can become unstable over longer periods of time and as their operating conditions change. Examples of changing operating conditions include temperature, vibration, and acceleration forces, such as shock when the device is shaken or dropped.
[0003] One application that requires a frequency reference from a local oscillator is GNSS positioning.
[0004] An object of the present invention is to improve the ability of positioning equipment to determine positioning calculations such as position fixes or pseudoranges when the local oscillator is unstable. This is typically the case in consumer devices such as smartphones, smartwatches, or car navigation systems, all of which feature low-cost crystal oscillators that are inherently unstable and easily disturbed by external factors such as acceleration, shock, temperature, and voltage fluctuations.
[0005] Another object of the present invention is to improve the ability of a receiver in a positioning device to determine frequency-related errors (such as frequency offset) of its local oscillator, and to enable it to do so while conserving computational resources, even while the receiver is being used in difficult signal environments such as urban canyons. Summary of the Invention
[0006] According to a first aspect of the present invention, there is provided a method comprising the steps of 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 a respective direction of arrival, determining a movement of the receiver in each of a plurality of consecutive time periods, providing, for each of the at least one first received signal, a first local signal using the local frequency reference, providing a first correlated signal by correlating the first local signal with the first received signal, providing a plurality of hypothetical frequency offsets, and for each of the plurality of hypothetical frequency offsets, providing phase compensation of at least one of the first local signal, the first received signal, and the first correlated signal based on the determined movement of the receiver along the respective direction of arrival, and generating a first correlation signal; determining a preferred frequency offset based on a plurality of hypothetical frequency offsets in each of a plurality of consecutive time periods and the generated phase-compensated first correlation signal to provide a vector including a plurality of unique frequency offsets in a local frequency reference in each of a plurality of consecutive time periods; receiving a second signal at a receiver from a second remote source along a direction of arrival; providing the second local signal using the local frequency reference; providing the second correlated signal by correlating the second local signal with the second signal; and providing phase compensation for at least one of the second local signal, the received second signal, and the second correlated signal based on the determined movement along the direction of arrival and vector of the received second signal.
[0007] The method may be performed in a positioning system, and at least one of the first signal and the second signal may be a positioning signal.
[0008] In this way, different local oscillator corrections can be provided over an extended period that is the sum of multiple consecutive periods. In one exemplary implementation, a second local signal can be generated using different local oscillator corrections in each consecutive period. This daisy-chained second local signal can then be correlated and phase-compensated with respect to the received second signal. This technique can independently correct for each unstable period, allowing Supercorrelation™ processing (i.e., long coherent integration of the signal) to be performed even in the presence of relatively unstable local oscillators. This was previously not possible, but advantageously improves the positioning system's ability to determine distances to GNSS satellites in poor signal environments when the system itself has a relatively poor local oscillator.
[0009] Those skilled in the art will appreciate that in other embodiments, vectors can be used to instead apply different oscillator corrections to the received second signal or the second correlated signal, or any combination of the second local signal, the second signal, and the second correlated signal. For example, the second signal, rather than the second local signal, can be adjusted using a vector. This effectively introduces the same or very similar fluctuations present in the second local signal due to a relatively poor local oscillator into the second signal. This improves the results of correlating the second signal (adjusted using a vector) with the second local signal (unadjusted), since similar fluctuations are then present in each signal.
[0010] Calculating the vector of specific frequency offsets involves providing multiple hypothetical frequency offsets, providing phase compensation for 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 direction of arrival for each of the multiple hypothetical frequency offsets, and determining a preferred frequency offset based on the multiple hypothetical frequency offsets and the generated phase-compensated first correlation signal for each of multiple consecutive time periods. In this manner, the method can search for a frequency offset that can provide the best correlation result. This corresponds to a search in frequency space. In another configuration, there can be a two-dimensional search across frequency and frequency rate of change to find the combination of variables that provides the best correlation result (e.g., the highest peak in the correlation signal), revealing the best solution for the local oscillator frequency-related error.
[0011] The frequency offset can be determined relative to another frequency reference that is a close approximation of the "true" frequency reference, which may be derived from a well-modeled, high-fidelity atomic oscillator. Thus, the frequency offset can be determined relative to a "known or predictable frequency" generated using an oscillator that is much more accurate than the local oscillator. At least one of the first and second signals can be generated using a similar frequency reference, such as an atomic clock, at each of the first and second remote sources.
[0012] In some embodiments, the local signal may be a replica of a pseudorandom sequence from a GNSS satellite. The second local signal may be generated based on a frequency reference from a local oscillator with multiple unique frequency offsets corresponding to determined errors in the local oscillator frequency reference over successive time periods. This may create a second local signal in which the local oscillator error is substantially eliminated, thereby significantly improving positioning accuracy.
[0013] The method may include using inertial sensors, such as accelerometers and / or gyroscopes, that can provide determined movement over multiple consecutive time periods. In some cases, it may be possible to assume or predict system movement. In one example, this can be done when the system is moving in a predictable or consistent manner over several time periods. This may occur, for example, when a user is riding a train or driving down a long, straight road. In such scenarios, it may be possible to predict receiver movement without actually measuring the receiver movement using inertial sensors.
[0014] Phase compensation can be applied using techniques known in the art. For example, phase compensation can be applied to only one or more of the second signal, the second local signal, or the second correlation signal resulting from the correlation of the second signal with the second local signal. Similarly, phase compensation can be applied to at least one of the first signal, the first local signal, and the resulting first correlation signal. The correlation step can be performed using known correlation techniques in GNSS (Global Navigation Satellite System) or other positioning systems. Determining the receiver movement in each of the multiple consecutive time periods can include determining a component of the receiver movement along a line of sight to each respective remote source, which can be a positioning source or any other type of source. The local frequency reference can be a timing signal of various possible forms, such as a sine wave or a square wave.
[0015] Preferably, the method further includes providing a plurality of hypothetical frequency-rate offsets, wherein providing phase compensation for each of the plurality of hypothetical frequency offsets includes providing phase compensation for each of the plurality of hypothetical frequency offsets and frequency-rate offsets, and determining a preferred frequency offset based on the plurality of hypothetical frequency offsets for each of the plurality of consecutive time periods includes determining a preferred frequency offset and a preferred frequency-rate offset for each of the plurality of consecutive time periods to provide a vector including a plurality of unique frequency offsets and a plurality of unique frequency-rate offsets in the local frequency reference for each of the plurality of consecutive time periods. As mentioned above, those skilled in the art will understand that the frequency-rate correction can be applied using the vector to either the second local signal, the second signal, or the second correlated signal, or any combination of the second local signal, the second signal, and the second correlated signal.
[0016] In this way, the local oscillator can be corrected for its frequency and its rate of change. Higher order corrections can also be provided. However, it has been found that a sufficiently accurate correction can be provided using only frequency and frequency rate offsets, thereby minimizing the computational load.
[0017] Those skilled in the art will understand that the term "frequency rate offset" refers to the difference in the rate of change of frequency ("frequency rate") of a local oscillator compared to a perfectly stable ideal frequency source whose rate of change of frequency is zero.
[0018] The specific frequency rate offsets can be provided as a vector separate from the vector of specific frequency offsets, or these vectors can be provided together in a combined vector or matrix. Those skilled in the art will understand that the terms matrix and vector can be used interchangeably. Those skilled in the art will understand that a vector or matrix can be represented in many ways, such as a list having entries of frequency offsets corresponding to particular periods of multiple consecutive periods.
[0019] Preferably, the step of providing phase compensation for each of a plurality of hypothetical frequency offsets and frequency-rate offsets includes providing phase compensation for each of a plurality of hypothetical pairs of frequency offsets and frequency-rate offsets. In this manner, a phase-compensated first correlation signal can be generated for each combination of frequency and frequency-rate. This allows an optimal combination of frequency and frequency-rate to be determined for each of a plurality of consecutive time periods, thereby more accurately mapping the evolving error of the local oscillator.
[0020] Preferably, receiving at least one first signal includes receiving a plurality of first signals at the receiver from a plurality of first remote sources, and determining a preferred frequency offset based on a plurality of hypothetical frequency offsets in each of a plurality of consecutive time periods, and generating a phase-compensated first correlation signal based on the plurality of phase-compensated first correlation signals. In this manner, the preferred frequency offset is determined based on a plurality of received first signals, thereby avoiding one problem that may arise in some scenarios when using only one first signal from a single first remote source.
[0021] One such scenario may occur when a first signal is received along both a direct line of sight and an indirect direction of arrival resulting from reflections that increase the path length from the remote source to the receiver. In this case, there may be two hypothetical frequency offsets that appear to produce a better phase-compensated first correlation signal. However, only one of the hypothetical frequency offsets corresponds to a local oscillator error. The remaining hypothetical frequency offset may correspond to the reflected first signal. If a preferred frequency offset is selected (or otherwise determined) based on the hypothesis corresponding to the reflected signal, the preferred frequency offset represents the phase offset caused by the increased path difference of the reflected signal. In this case, the preferred frequency offset does not represent the local oscillator error for a given period of time. This generally means that the preferred frequency offset cannot be used to apply corrections in the processing of other received signals (such as the second signal) to achieve better phase-compensated correlation results.
[0022] Using multiple first signals avoids this problem because, over a given time period, each received first signal has a common hypothesized frequency offset that produces a better phase-compensated first correlation signal. The common hypothesized frequency offset corresponds to an error in the local frequency reference caused by an unstable local oscillator. Therefore, by determining a suitable frequency offset for each successive time period based on multiple first signals, it becomes possible to identify the hypothesized frequency offset corresponding to the local oscillator error through comparison of the phase-compensated first correlation signals.
[0023] Preferably, the step of determining a preferred frequency offset based on the plurality of phase-compensated first correlation signals is performed by combining the phase-compensated first correlation signals generated for each of the plurality of received first signals for each hypothetical frequency offset to determine a hypothetical frequency offset corresponding to the highest combined correlation. In this manner, a hypothetical frequency offset corresponding to an error in the local frequency reference generated by an unstable local oscillator can be identified. In one example, the combination can be a sum or multiplication. An appropriate cost function can be used to determine the frequency and / or frequency rate corresponding to the highest combined correlation.
[0024] Preferably, the method may further include determining one or more operating conditions in the system executing the method during each of a plurality of consecutive 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 may be a rough prediction or estimate of the error in the local oscillator during a given one of the consecutive time periods. In this manner, the initial estimated frequency offset may be used as a starting point or initial condition when calculating a more accurate offset using multiple hypothesized frequency offsets, thereby enabling more efficient generation of the vector.
[0025] Determining the initial estimated frequency offset can be performed in various ways. In one example, a lookup table can be used to retrieve a frequency offset previously calculated under the same or similar operating conditions. In another example, a model configured to predict a frequency offset in a local oscillator based on the operating conditions of a system can take the determined one or more operating conditions as 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 type of model. The model can be pre-trained and / or continuously retrained based on calculations of preferred frequency offsets and their corresponding determined operating conditions. The method can include retraining the model based on the one or more determined operating conditions and the preferred frequency offset. In a further example, a lookup table can provide input to the model.
[0026] Preferably, the one or more determined operating conditions include one or more of a temperature, a rate of change of temperature, an operating state, or a determined movement of a component within the system.
[0027] The one or more operating conditions may be determined using a sensor that measures a physical variable that allows for calculating a relevant parameter, such as temperature. Alternatively or additionally, for one or more operating conditions that include an operating state of a component, the determination of whether the component is turned on or off may be performed using control logic without a sensor.
[0028] Preferably, the method further includes providing the preferred frequency offset for each of a plurality of consecutive time periods and the one or more determined operating conditions to a stored data set, such that the behavior of the local oscillator at particular operating conditions can be tracked for future reference.
[0029] 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 may exhibit temperature hysteresis, i.e., may behave differently at a given temperature depending on the oscillator's recent or past temperatures. In one example, each temperature value may have two corresponding frequency offset entries in the stored data set. One offset entry may correspond to when the oscillator is at the respective temperature and the temperature is increasing, and the other offset entry may correspond to when the oscillator is at the same temperature but the temperature is decreasing. In this way, the stored data set may be configured to account for temperature hysteresis effects in the local oscillator. Similarly, two entries for the frequency rate (or any other phase or frequency correction term) may be stored for each temperature.
[0030] In one example, a number of potential operating conditions can be measured to update the multidimensional lookup table. Temperature can be measured using a thermocouple or thermistor proximate to a local oscillator in the system's equipment. Other active applications or components in the equipment may be other operating conditions. The equipment may be a positioning device. It has been found that running some applications or components, or certain combinations of applications or equipment, can adversely affect the stability of the local oscillator, and therefore it may be beneficial to aggregate the observed effects of running these applications in the lookup table. Another example of an operating condition includes the active hardware of the system or positioning system. For example, a touchscreen or wireless interface in the positioning device may be on or off, which may affect the local oscillator. Any hardware in the equipment that affects the local oscillator may be used as an operating condition.
[0031] Further examples of operating conditions include temperature, rate of change of temperature, local oscillator voltage or voltage associated with the local oscillator, rate of change of this voltage, and local oscillator behavior such as the presence or degree of shock or vibration. Any number and combination of operating conditions can be implemented. In a particular example, temperature and temperature rate can be measured, and a frequency offset value for the combined temperature and temperature rate measurements can be stored.
[0032] An initial estimated frequency offset or initial model from a stored data set can provide an initial condition when calculating a vector of characteristic frequency offsets in a local frequency reference at multiple consecutive time periods.
[0033] Specifically, values in a stored data set or outputs from a model can be used as seed or initial values and can also define a search window. This has the dual benefit of increasing the likelihood that the seed value is close to the true value and reducing the processing power required to search through all possible frequency offset values. In one example, the "seed value" is the first point in the search space to be tested within the search window of the test space.
[0034] The search window can be set to a specific narrower width based on values in a stored dataset or generated from a model. For example, the width of the search window for frequency or frequency rate values can be set based on a percentage of previously calculated frequency or frequency rate values. Alternatively, the narrower search window can have a fixed width centered on a previously calculated value. If the dataset does not include previously calculated values for one or more corresponding operating conditions, a wider search window can be set, the wider search window being wider than the narrower search window.
[0035] The use of one or more operating conditions with a stored data set or model is described with respect to a frequency offset in a local oscillator. However, the model and / or stored data set can be applied to provide an initial estimate of the frequency rate offset in each successive time period, or any higher order correction.
[0036] The at least one first signal may be less attenuated than the second signal. In one example, the direction of arrival of each of the at least one first signal may be a more favorable line of sight to the receiver compared to the direction of arrival of the second signal, such that the at least one first signal may be received with a better signal-to-noise ratio than the second signal. In this manner, the more favorable at least one first signal is used to determine a frequency offset that can be further used to correct the second local signal, thus enabling correlation with the less favorable second signal over a long period of time. The at least one first signal is preferably capable of coherently integrating over periods of local oscillator instability.
[0037] Preferably, the duration of one or more of the plurality of consecutive time periods is determined based on one or more determined operating conditions of the system performing the method.
[0038] Preferably, at least two of the plurality of consecutive periods have different durations relative to each other, in this way the vector can more effectively take into account the evolving behavior of the local oscillator.
[0039] If the operating parameters of the positioning system indicate a relatively benign condition of the local oscillator, a longer period can be used. On the other hand, if the operating conditions are extreme, a shorter period may be used. Extreme operating conditions may include high or low temperatures, sudden temperature changes, vibrations or sudden movements, or the use of certain applications or hardware. It has been found that these operating conditions can adversely affect the stability of the local oscillator, and therefore countermeasures such as using a shorter period may be desirable.
[0040] If no external operating parameters are detected, the individual lengths of each successive period may be stored in the device's memory by default, hi some embodiments, the default length of each individual period is approximately 0.1 seconds, 0.2 seconds, 0.5 seconds, 1 second, or 2 seconds.
[0041] The duration and number of consecutive periods can be selected to minimize the number of offset calculations required while still providing sufficient oscillator correction, which results in faster and more efficient calculation of the vector, as calculating each offset in the local oscillator can be computationally intensive.
[0042] Each of the plurality of consecutive periods corresponds to a duration calculated or assumed for the local oscillator to provide a stable frequency reference.
[0043] In this way, the frequency offset calculated for each successive period can be the exact offset for each individual period. Alternatively, each of the multiple successive periods may not correspond to the duration for which the local oscillator is calculated or assumed to be stable. For example, each of the successive periods may be longer than the assumed or calculated stable period, and interpolation may be applied between the calculated values.
[0044] The combined duration of the plurality of consecutive 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 a second correlation signal.
[0045] In this way, the vector can store the frequency offset of the local oscillator over the entire integration period to map the evolving error of the local oscillator over the entire integration period. The vector can be combined with a local frequency reference to generate a second local signal that is corrected over the entire integration period to allow coherent integration to be performed longer than the instability period of the local oscillator. In some examples, the integration period can be 0.5 seconds or longer, such as 1 second, 2 seconds, 3 seconds, or longer.
[0046] In some embodiments, it may be possible to interpolate the correction between periods. Thus, it may be possible to increase the number of consecutive periods or reduce the number of measurements of frequency offset so that interpolation can be used between measurement points. However, this approach requires that the sampling rate be high enough to properly characterize the trends in frequency and frequency-rate offset.
[0047] Preferably, determining a preferred frequency offset based on a plurality of hypothesized frequency offsets comprises interpolating a preferred frequency offset between two or more of the plurality of hypothesized frequency offsets.
[0048] In this manner, more frequency correction terms can be obtained using a less computationally intensive process than directly calculating the frequency offset. Interpolation may be applied retroactively after calculating the frequency offset corresponding to some or all of the consecutive time periods. Additionally, interpolation may be applied after determining that the frequency offset changes gradually, smoothly, and / or predictably over some or all of the consecutive time periods. Interpolation may be performed in response to determining that operating conditions satisfy a threshold. The threshold may be a set of one or more criteria indicating that operating conditions are relatively favorable for the local oscillator, i.e., that the local oscillator's environment is favorable to enable good oscillator stability. Similarly, if the frequency offset is found to change predictably, the duration of the time periods within the consecutive time periods may be increased.
[0049] Alternatively or additionally, determining a preferred frequency offset based on a plurality of hypothetical frequency offsets may include selecting one of the hypothetical frequency offsets that may correspond to the highest or best of the generated phase-compensated first correlation signals. In some scenarios, selecting one of the hypothetical offsets may provide a sufficient offset in frequency. The method may include determining whether interpolation is required.
[0050] In some embodiments, after providing a vector including a plurality of unique frequency offsets in a local frequency reference in each of a plurality of consecutive time periods, the method may include determining an additional frequency offset and adjusting the vector based on the determined additional frequency offset.
[0051] In one example, this can be done by: for each of the at least one first received signal, providing a third local signal using a local frequency reference; providing a third correlation signal by correlating the third local signal with each of the one or more received first signals; providing a further plurality of hypothetical frequency offsets; for each of the further plurality of hypothetical frequency offsets, providing phase compensation for at least one of the third local signal, the one or more received first signals, and the third correlation signal based on the vector and the determined movement of the receiver along the respective direction of arrival to generate a phase-compensated third correlation signal; determining a frequency correction based on the further plurality of hypothetical frequency offsets and the generated phase-compensated third correlation signal; and adding the determined frequency correction to the vector at each of a plurality of consecutive time periods.
[0052] In this way, the method can correct for global frequency errors that exist over several consecutive time periods. This improves the vector's ability to correct either the second local signal, the second signal, or the second correlated signal, or any combination thereof. Those skilled in the art will appreciate that additional global frequency rate offsets can also be calculated and used to adjust the calculated vector in the same manner.
[0053] In one embodiment, the method further includes calculating a range or pseudorange from the receiver to a second remote source based on the second correlation signal.
[0054] The range or pseudorange can be combined with multiple other ranges or pseudoranges obtained from multiple remote sources to determine a position as is known in the art.
[0055] In some examples, the method may be performed at least in part in a positioning device, such as a mobile device equipped with a 5G modem, and the local oscillator is provided within the positioning device.
[0056] According to a further aspect of the present invention, a system includes 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 a respective direction of arrival and a second signal from a second remote source along the respective direction of arrival; a movement module configured to determine movement of the receiver; and a processor configured to, for each of the at least one first received signal, provide a first local signal using the local frequency reference; provide a first correlated signal by correlating the first local signal with the received first signal; provide a plurality of hypothesized frequency offsets; and, for each of the plurality of hypothesized frequency offsets, calculate a frequency offset of the first local signal, the first received signal, and the first correlated signal based on the determined movement of the receiver along the respective direction of arrival. and a processor configured to: provide phase compensation for at least one of the second local signal, the received second signal, and the second correlated signal to generate a phase-compensated first correlation signal; determine a preferred frequency offset based on a plurality of hypothetical frequency offsets in each of a plurality of consecutive time periods and the generated phase-compensated first correlation signal to provide a vector including a plurality of unique frequency offsets in the local frequency reference in each of a plurality of consecutive time periods; provide a second local signal using the local frequency reference; provide the second correlated signal by correlating the second local signal with the second signal; and provide phase compensation for at least one of the second local signal, the received second signal, and the second correlated signal based on the determined movement along a direction of arrival and vector of the received second signal.
[0057] The system may be a positioning system and the first and second signals may be positioning signals.
[0058] According to a further aspect of the present invention, there is provided a method for determining frequency-related parameters of a frequency source in a receiver, the method including the steps of receiving a plurality of signals from a plurality of remote sources; generating a motion-compensated correlation result using determined receiver motion, the received signals, and a local signal derived from the local frequency source; phase-compensating the motion-compensated correlation result using a plurality of phasor sequences representative of frequency errors of the local frequency source to generate a phase-compensated correlation result; and jointly analyzing the phase-compensated correlation results associated with the plurality of remote sources to determine the frequency-related parameters of the local frequency source.
[0059] According to a further aspect of the present invention, there is provided an apparatus for performing signal correlation within a signal processing system, the apparatus comprising: at least one processor; and at least one non-transitory computer-readable medium for storing instructions that, when executed by the at least one processor, cause the apparatus to perform operations including receiving a plurality of signals from a plurality of remote sources; generating a motion-compensated correlation result using determined receiver motion, the received signals, and a local signal derived from a local frequency source; phase-compensating the motion-compensated correlation result using a plurality of phasor sequences representative of frequency errors of the local frequency source to generate a phase-compensated correlation result; and jointly analyzing the phase-compensated correlation results associated with the plurality of remote sources to determine a frequency-related parameter of the local frequency source.
[0060] According to a second aspect of the present invention, there is provided a method that can be performed in a positioning system, the method including the steps of providing a local frequency reference using a local oscillator; receiving at least one signal at a receiver from at least one remote source along a respective direction of arrival; determining movement of the receiver; determining one or more operating conditions in the 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 signal, providing a local signal using the local frequency reference; correlating the local signal with the received signal to provide a correlation signal; providing phase compensation for 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 generate a phase-compensated correlation signal; and dynamically adjusting the frequency offset value based on the phase-compensated correlation signal and the initial estimated frequency offset to determine a preferred estimate of the frequency offset in the local frequency reference.
[0061] In this way, the initial estimated frequency offset can be used as a starting point or initial condition when determining a preferred frequency offset, which corresponds to a more accurate determination of the offset in the local oscillator calculated using at least one signal, allowing for a more efficient determination of the preferred estimate.
[0062] Determining the initial estimated frequency offset can be performed in various ways: The method can determine the initial estimated frequency by comparing one or more determined operating conditions to a previously calculated frequency offset for the same or similar operating conditions.
[0063] In one example, the comparison can be performed using a stored data set from which previously calculated frequency offsets under 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 determined operating conditions of the system. The model can take one or more determined operating conditions as 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 type of model. Using a model in this manner can also be referred to as "predictive control." The model can be pre-trained and / or continuously retrained based on calculations of frequency offsets and their corresponding determined operating conditions. In a further example, a lookup table can provide input to the model or can be used to continuously retrain the model as the lookup table is updated.
[0064] The one or more operating conditions may be determined using a sensor that measures a physical variable that allows for calculating a relevant parameter, such as temperature. Alternatively or additionally, for one or more operating conditions that include an operating state of a component, the determination of whether the component is turned on or off may be performed using control logic without a sensor.
[0065] Preferably, the method further includes providing a stored data set with the preferred estimate of the frequency offset and the corresponding one or more determined operating conditions. In this manner, the method can build a lookup table indicating frequency offset values between different measured or determined operating conditions. This can advantageously reduce the computational load, as the values stored in the lookup table can provide initial conditions that are close to the actual values during any particular observation.
[0066] The measured frequency offset values can be stored directly in a data set, with the stored value representing the most recently measured value. Alternatively, the stored value can represent an average value, such as a calculated average based on all observations. In this manner, the stored data set can be updated to represent a running average. The data set can be stored locally within the device or remotely within a distributed network.
[0067] Preferably, the one or more operating conditions include a physical variable or parameter of the local oscillator.
[0068] The physical characteristics of the local oscillator, such as its temperature or its inertial state, affect the stability of the local reference signal generated by the local oscillator. Therefore, measuring the operating conditions, which are physical variables or parameters of the local oscillator, means that the operating conditions can be particularly relevant for calculating the frequency offset.
[0069] Preferably, the one or more operating conditions include one or more of a 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 manner, the one or more operating conditions can represent a more complete characterization of the conditions affecting the local oscillator. In one example, the one or more operating conditions can include all of the above conditions.
[0070] In some embodiments, the determined operating conditions in the system include temperature. The one or more operating conditions can also include whether the temperature is rising or falling. This is because oscillators may exhibit temperature hysteresis, i.e., may behave differently at a given temperature depending on the oscillator's recent or past temperatures. In one example, each temperature value may have two corresponding frequency offset entries in the stored data set. One offset entry may correspond to when the oscillator is at the respective temperature and the temperature is rising, and the other offset entry may correspond to when the oscillator is at the same temperature but the temperature is falling. In this way, the stored data set can be configured to account for temperature hysteresis effects in the local oscillator. Similarly, two entries for the frequency rate (or any other phase or frequency correction term) may be stored for each temperature.
[0071] Other measured operating conditions can include the rate of change of temperature, data from inertial sensors, information about other processing operations running on the instrument or other applications in use, whether the instrument's screen is on, and many other factors. In this way, a multidimensional lookup table can be generated that shows previously observed frequency offsets under different operating conditions. This lookup table is very useful because the measurements are likely to be highly repeatable. Thus, the observed frequency offset is likely to be close to frequency offsets previously observed during similar operating conditions.
[0072] In another example, the lookup table may include a list of measured or determined operating conditions and corresponding preferred frequency offsets generated under the measured operating conditions.
[0073] The temperature may be measured using a thermistor, thermocouple, or any other suitable sensor.
[0074] In one embodiment, determining the operating conditions includes determining whether a component in the system is turned on or off. A component may be any hardware or application in the system. A component may or may not be associated with the system. For example, a component may be a wireless interface or touchscreen of a handheld device in proximity to a local oscillator.
[0075] The method may include taking corrective action based on the determined one or more operating conditions to alleviate the operating conditions that adversely affect the stability of the local oscillator. For example, the corrective action may be one or more of reducing power consumption of a component or turning off the component entirely. Any suitable corrective action may be implemented.
[0076] Preferably, the method further includes the step of later determining one or more subsequent operating conditions of the system and providing a frequency offset corresponding to the one or more subsequent operating conditions from the stored data set as an initial estimated frequency offset for performing the step of dynamically adjusting the frequency offset value to determine a preferred estimate of the frequency offset in the local frequency reference.
[0077] This can improve computational efficiency because dynamic adjustments can be performed more quickly if seeded with accurate initial conditions, which are known to be more accurate because they are based on observations of the local oscillator's behavior under similar operating conditions at previous time periods.
[0078] Preferably, the method further includes determining an initial estimated frequency rate offset in the local frequency reference based on one or more operating conditions, and dynamically adjusting the frequency rate offset value based on the phase-compensated correlation signal and the initial estimated frequency rate offset to determine a preferred estimate of the frequency rate offset in the local frequency reference. In this manner, a preferred (i.e., more accurate) estimate 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 a previous period.
[0079] Preferably, the method further includes the step of later determining one or more subsequent operating conditions of the system and providing a frequency rate offset corresponding to the one or more subsequent operating conditions from the stored data set as an initial estimated frequency rate offset for performing the step of dynamically adjusting the frequency rate offset value to determine a preferred estimate of the frequency rate offset in the local frequency reference. In this way, previous calculations of the frequency rate offset can also be stored and provided at a later time to provide an accurate seed value for determining a preferred frequency rate offset.
[0080] Preferably, determining an initial estimated frequency offset in the local frequency reference based on one or more operating conditions is performed using a model configured to predict a frequency offset in the local oscillator based on one or more operating conditions. In this manner, an 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 type of model.
[0081] The model may be pre-trained and / or continuously re-trained based on calculations of frequency offsets and their corresponding determined operating conditions. Thus, the method may include the further step of updating the model based on a preferred frequency offset value and one or more determined operating conditions. In addition to frequency offset, the model may also be used to predict frequency rate offset or any other higher-order correction term.
[0082] In a further example, a lookup table can provide input to the model.
[0083] A search window for a preferred estimate of the frequency offset can be defined based on the initial estimated frequency offset. Similarly, a search window for a preferred estimate of the frequency rate offset can be defined based on the estimated frequency rate offset.
[0084] In the process of searching for an estimate of the frequency offset, several candidate values can be "tested" and the best-fit value can be selected. The process of testing candidate values is computationally intensive, and therefore it is preferable to reduce the task as much as possible. By using an estimated frequency offset, which can be sourced from a stored data set or output from a model, it is possible to begin the search process with confidence that the initial value is already fairly close to the expected true value.
[0085] The search window may be defined based on fixed values above and below the initial estimate. In one configuration, the search window may be defined based on a percentage value of estimated frequency offset values, e.g., as a percentage value, for example, within a stored data set or generated from a model. In one example, if the stored frequency offset values are based on an average, the search window may be defined based on a certain number of standard deviations away from the average. This can usefully focus the search space on the most likely frequency offset values and reduce the computational burden by avoiding calculations associated with frequency offset values that are statistically unlikely to occur based on previous measurements.
[0086] A search window for a preferred estimate of the frequency rate offset can be defined based on the initial estimated frequency rate offset.
[0087] In this way, there can be a two-dimensional search window over the frequency and rate of change of frequency, and reducing the size of this search window is highly advantageous for improving computational efficiency.
[0088] In some embodiments, the one or more received signals are positioning signals generated by one or more remote positioning sources. The one or more received signals may be generated using known or predictable frequencies, as described elsewhere. The positioning sources may be selected to have a sufficiently strong signal-to-noise ratio to perform phase compensation on the positioning signals over short periods of local oscillator instability. This may enable frequency or frequency-rate offset calculations to be performed over periods of instability. In this manner, the calculated offsets can be applied in correlations of weaker received signals or positioning signals from different remote sources that would otherwise not be able to integrate coherently over the required integration period.
[0089] The dynamically adjusting step can be performed in various ways: Any suitable method can be used to adjust the frequency offset value to determine a preferred or more accurate estimate of the frequency offset in the local frequency reference based on the phase-compensated correlation signal and the initial estimated frequency offset.
[0090] In one specific example, for each of the at least one first received signal, the method further includes: providing a plurality of hypothetical frequency offsets based on the estimated frequency offset; and, for each of the plurality of hypothetical frequency offsets, providing phase compensation for 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 generate a phase-compensated first correlation signal, wherein the dynamically adjusting step includes determining a preferred estimated frequency offset based on the plurality of hypothetical frequency offsets and the generated phase-compensated correlation signal. More preferably, the step of determining a preferred estimated frequency offset based on the phase-compensated correlation signal is performed by combining, for each hypothetical frequency offset, the phase-compensated correlation signal generated for each of the plurality of received signals. The method may further include determining a hypothetical frequency offset corresponding to the highest combined correlation.
[0091] In this manner, the preferred estimated frequency offset can be calculated in the same manner as in the first aspect of the present invention. The amount, range, and / or mode value of the hypothesized frequency offset may, in one example, be selected based on the initial estimate. This allows the search space represented by the hypothesized frequency offset to be smaller, since the initial estimated frequency offset is more likely to be close to the preferred or more accurate frequency offset of the local oscillator.
[0092] Preferably, the method further comprises the step of correcting the signal derived from the local frequency reference using a preferred estimate of the frequency offset in the local frequency reference, in this way the signal derived from the local frequency reference can be efficiently corrected.
[0093] Determining the one or more operating conditions can include determining a plurality of operating conditions, and updating the stored data set or model can include updating the stored data set or model based on the plurality of measured operating conditions. In another embodiment, updating the stored data set includes storing a frequency offset value corresponding to a combination of measurements from measuring the plurality of operating conditions.
[0094] In this way, more factors can be considered for purposes of determining a starting estimate of the frequency and / or frequency rate offset. Using more operating conditions means that the approximate behavior of the local oscillator can be predicted more accurately, meaning that less computationally intensive searches for best-fit frequency offsets need to be performed. In one example, considering multiple operating conditions may allow a narrower search window to be defined, since more measurement data and different types of measurement data can be used to more reliably predict the approximate behavior of the local oscillator.
[0095] In some examples, the method may be performed at least in part in a positioning device, such as a mobile device with a 5G modem, and the local oscillator is provided within the positioning device or the modem.
[0096] The alternatives and embodiments discussed according to the first aspect of the invention may be substantially combined with the embodiments discussed with respect to the second aspect of the invention.
[0097] According to a further aspect of the present 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 signal from at least one remote source along each direction of arrival; a movement module configured to determine 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 signal, provide a local signal using the local frequency reference; correlate the local signal with the received signal to provide a correlation signal; provide phase compensation for 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 each direction of arrival to generate a phase-compensated correlation signal; and dynamically adjust the frequency offset value based on the phase-compensated correlation signal and the initial estimated frequency offset to determine a preferred estimate of the frequency offset in the local frequency reference.
[0098] The system may be a positioning system and the received signals may be positioning signals.
[0099] According to a further aspect of the present invention, there is provided a method for determining a frequency-related parameter of a frequency source in a receiver, the method including receiving a plurality of signals from a plurality of remote sources; generating a motion-compensated correlation result using determined receiver motion, the received signals, and a local signal derived from the local frequency source; phase-compensating the motion-compensated correlation result using a plurality of phasor sequences representative of errors in the frequency-related parameter of the local frequency source to generate a phase-compensated correlation result; predicting the frequency-related parameter using predictive control; and jointly analyzing the phase-compensated correlation results associated with the plurality of remote sources to determine the frequency-related parameter of the local frequency source.
[0100] According to a further aspect of the present invention, there is provided an apparatus for performing signal correlation within a signal processing system, the apparatus comprising: at least one processor; and at least one non-transitory computer-readable medium for storing instructions that, when executed by the at least one processor, cause the apparatus to perform operations including receiving a plurality of signals from a plurality of remote sources; generating a motion-compensated correlation result using determined receiver motion, the received signals, and a local signal derived from a local frequency source; phase-compensating the motion-compensated correlation result using a plurality of phasor sequences representing frequency errors of the local frequency source to generate a phase-compensated correlation result; defining the frequency error using predictive control; and jointly analyzing the phase-compensated correlation results associated with the plurality of remote sources to determine a frequency-related parameter of the local frequency source.
[0101] Embodiments of the present invention will now be described, by way of example only, with reference to the drawings, in which: [Brief explanation of the drawings]
[0102] [Figure 1] 1 is a schematic diagram of a positioning system according to an embodiment of the present invention; [Figure 2] 1 is a schematic diagram of a control system for a positioning device in a positioning system according to an embodiment of the present invention. [Figure 3A] 1 is a schematic flow diagram of a method for performing positioning calculations according to an embodiment of the present invention; [Figure 3B] 3B is a continuation of the method of FIG. 3A for performing positioning calculations according to one embodiment of the present invention. [Figure 4A] FIG. 2 is a schematic flow diagram of a method for creating and calculating a vector of frequency offsets according to an embodiment of the present invention; [Figure 4B] 4B is a continuation of the method of FIG. 4A for creating and calculating vectors according to one embodiment of the present invention. [Figure 5] 1 is a graph illustrating a search space used to calculate frequency and frequency-rate offsets, according to one embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0103] The following exemplary embodiments and methods are described with respect to a positioning system. However, in one exemplary alternative, the methods may be used to perform channel estimation in a communication system. It is anticipated that other types of systems configured to determine values using unstable local oscillators may employ the methods of the present invention. In such cases, the positioning signals described below may be replaced more generally with other types of signals.
[0104] 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. Positioning system 1 includes positioning device 100 equipped with antenna 102 configured to receive signals from remote reference sources. In this example, user 10's positioning device 100 receives radio signals via antenna 102 from remote reference sources, including a first satellite 2, a second satellite 4, a third satellite 6, and a remote terrestrial source 8. A tall building 12 bisects the line of sight from positioning device 100 to third satellite 6 and terrestrial source 8. Building 12 attenuates signals from third satellite 6 and terrestrial source 8, weakening the signals and thus making it more difficult for positioning device 100 to obtain accurate location measurements. The same building 12 may also provide a path for reflected signals from first satellite 2 to antenna 102.
[0105] The remote reference source, which may alternatively be referred to as a "positioning source," may operate as part of any navigation system known in the art, such as a GNSS positioning system. In general, the reference source may consist of any combination of satellite sources, terrestrial sources, or other types of reference sources.
[0106] 2 shows a schematic diagram of positioning device 100. In this exemplary embodiment, positioning device 100 includes an antenna 102, a receiver 104 connected to antenna 102, a local oscillator 106, a control unit 108, a memory 110, a motion sensor 112, and a temperature sensor 114.
[0107] The receiver 104 is configured to process signals received by the antenna 102 and may include any suitable components, such as an amplifier or an analog-to-digital converter.
[0108] The local oscillator 106 may be substantially simple and low cost, and may include a crystal oscillator in one example. The local oscillator 106 is configured to provide timing signals for various applications in the positioning device 100.
[0109] 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 control unit 108 comprises a single processor that operates multiple modules configured to perform specific functions, as described further below. In other embodiments, the modules may be provided separately with different associated processors or distributed across a network.
[0110] The memory 110 may include a non-transitory computer-readable medium, such as one or more of a random access memory unit, a read-only memory unit, or a combination thereof, configured to store executable instructions for the various modules of the control unit 108.
[0111] The motion sensor 112 may include multiple separate motion and / or orientation sensors, such as inertial sensors, gyro sensors, or magnetometers. The temperature sensor 114 is configured to determine the temperature and / or rate of temperature change of the local oscillator 106 and therefore may be located on or near the local oscillator 106. The temperature sensor 114 may include a thermocouple, a thermistor, or other suitable means for determining temperature. In addition to or instead of the temperature sensor 114, other sensors may be provided to measure operating parameters or determine operating conditions of the positioning device 100.
[0112] The control unit 108 includes several modules, including a reference source selector 116, a local signal generator 118, a correlator 120, a motion determination module 122, a local oscillator offset calculation module 124, a phase compensation module 126, a stable period determination module 128, a positioning calculation module 130, and a prediction model 134. The memory 110 stores a lookup table 132 and prediction data 136 for the prediction model 134. The functions of these modules of the control unit 108 and the lookup table 132 are further described below with reference to Figures 3-5.
[0113] Positioning device 100 may be configured as a smartphone, laptop, or any other type of device capable of determining a position.
[0114] Typically, reference sources such as those shown in FIG. 1 utilize high-quality oscillators, such as atomic oscillators. Such high-quality oscillators operate within a much narrower frequency window than local oscillators typically found in handheld positioning devices such as smartphones. In other words, high-quality oscillators are more accurate and operate within a much tighter frequency tolerance than many lower-quality oscillators. This enables the reference sources to provide consistent and reliable frequency reference signals, which can then be used to generate consistent and reliable positioning signals. Additionally, the stability of the reference source local oscillators enables the positioning device 100 to store, retrieve, or assume the frequencies of the reference signals provided by those reference sources with greater precision than the “actual” reference signals.
[0115] Tall buildings can attenuate signals from a reference source, blocking the line of sight between the reference source and the positioning device 100, as shown in FIG. 1. This can reduce the signal-to-noise ratio of the positioning signal received from the reference source. In some cases, unless the signal is integrated over a relatively long period during correlation (perhaps as long as one second or longer), the resulting signal strength may be too low to be used in positioning calculations. Integrating over a longer period effectively allows the positioning device 100 to improve the signal-to-noise ratio of the received signal to a level sufficient to obtain an accurate position fix from the reference source. A similar problem can arise when reflected signals are present and the receiver has difficulty distinguishing between the line-of-sight signal and the reflected signal.
[0116] However, in this example, the local oscillator 106 is stable for only a period shorter than the required integration period. In one example, the local oscillator 106 is stable for approximately 0.2 seconds, and the integration period required to detect the decaying signal may be approximately 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 integrate coherently over a sufficiently long period while using a low-quality oscillator to achieve a position fix from a weak positioning signal.
[0117] More specifically, in 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 the received positioning signal from the reference source. Correlation can involve integrating these signals over a longer period to improve the correlation results. However, the local frequency reference must be stable over the integration period for this to work, since the local signal is generated using this local frequency reference. This means that any error in the local frequency reference (i.e., a mismatch with a known or predictable frequency reference signal used by the reference source to generate the positioning signal) will propagate to the local signal. Therefore, using known techniques, if the local oscillator 106 is not stable over the integration period, the local signal will also not be stable over the integration period.
[0118] 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 resulting from the correlation based on the 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 the local oscillator. Phase compensation may not be sufficient to detect weak signals if it is applied to a shorter section of the signal corresponding to a shortened period of oscillator stability. Therefore, known techniques have not been able to utilize phase compensation when the local oscillator is stable for a period shorter than the required integration period. Phase compensation is sometimes referred to as “motion compensation” because adjusting the phase of the received or generated signal can be used to counteract the effect of relative motion between the source and receiver on the correlation.
[0119] As a further complication, the stability of the local oscillator 106 varies under different operating conditions and may even fluctuate under certain operating conditions. Temperature is one example of an operating condition that can affect oscillator stability. Problematically, some recent mobile devices are equipped with 5G modems, which have been found to generate significantly more heat than modems for previous generations of telecommunications standards. In some cases, the heat from the 5G modem can heat the local oscillator 106 to a temperature range where the local oscillator 106 is more unstable. Local oscillators typically found in mobile devices are not adequately equipped to compensate for the effects of the extra heat from these 5G modems. Consequently, some more recent mobile device models are experiencing performance degradation when performing positioning calculations.
[0120] 3A and 3B show a schematic flow diagram of a method 300 that may be implemented by the positioning system 1 of FIGS. 1 and 2 to determine an accurate position of the positioning device 100 despite instability of the local oscillator 106.
[0121] In 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 (e.g., positioning signals) having a desired frequency. For example, the local frequency reference can be a sine wave, a square wave, or another form of timing signal. The local frequency reference generally deviates from a "true" frequency reference based on universal time or a frequency reference provided by a high-fidelity oscillator such as an atomic clock. This means that the local frequency reference necessarily includes a time-varying error or "offset."
[0122] In step S304, receiver 104 may optionally receive one or more frequency reference signals via antenna 102 from multiple reference sources, including satellites 2, 4, 6 and terrestrial sources 8. Each of the reference sources has a highly stable local oscillator that is more stable than local oscillator 106 of positioning device 100. The highly stable local oscillator may be based on an atomic clock.
[0123] In step S306, which is also optional, the reference source selector 116 selects a particular reference source from which to receive the 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 that provides 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 to provide the frequency reference signal 14. The first satellite 2 may provide good signal strength because its current position is near the zenith of the receiver 102, allowing it to provide line-of-sight to avoid tall buildings 12. The reliability of the first satellite 2's local oscillator means that the received reference signal 14 has a known or predictable frequency. This known frequency may be stored in memory 110 or retrieved from an online database by the positioning device 100 via an internet connection.
[0124] The positioning signals are generated using a known or predictable frequency reference provided by a high-quality oscillator. Therefore, the received frequency reference may be included in or derivable from the positioning signals from such a reference source. Therefore, it may not be necessary to receive a frequency reference signal separately from the positioning signals, as in this embodiment. Instead, the error of the local oscillator 106 can be determined with respect to the frequency included in (or used to generate) the positioning signals. By analyzing the positioning signals using known techniques, it is possible to determine the frequency used to generate the positioning signals. Of course, determining the offset of a local frequency reference relative to a frequency reference included in a positioning signal is a different approach than determining the offset relative to a separately received frequency reference.
[0125] In step S308, the stable period determination module 128 determines a period during which the local oscillator 106 is stable or is assumed to be stable, which may be referred to as the "stable period" of the local oscillator 106. Generally, the stability of the local oscillator 106 is affected by the specific operating conditions of the local oscillator 106. For example, the stable period may be shorter when the local oscillator 106 is at a higher temperature or while the touchscreen of the positioning device 100 is operating (e.g., due to heating or electromagnetic effects). Therefore, the stable period may be calculated during each positioning calculation based on measurements of operating parameters. Operating parameters are numerical representations of operating conditions, such as temperature or screen state. However, for simplicity, the terms operating conditions and operating parameters may be used interchangeably herein.
[0126] In this example, operating parameters are measured by temperature sensor 114 or control unit 108 and other sensors to determine or characterize the operating conditions of local oscillator 106. Calculations can be made to determine the required stability period during each positioning calculation based on equations that can be stored in memory 110 and used by stability period determination module 128. Alternatively, the equations can be stored remotely and executed by a remote processor over a network in a distributed system. In a further example, the determination of the stability period can be calculated using predictive model 134, as described in further detail below.
[0127] In other examples, the stable period may be set to a fixed period, for example, 0.1 or 0.2 seconds. The fixed period may be based on the specifications of the local oscillator 106 included in the positioning device 100. The fixed stable period may be stored in the memory 110. Using a fixed stable period rather than calculating the stable period may reduce processing requirements. It is anticipated that other methods of calculating or determining the stable period may be implemented.
[0128] Whether the stabilization period is set to a fixed duration or calculated based on measured operating conditions, it may be desirable to assume as long a stabilization period as possible while still producing good results, thereby minimizing the number of individual frequency offsets that must be calculated during later steps.
[0129] In step S310, receiver 104 receives at least one positioning signal from remote sources 2, 4, 6, and 8. In this example, reference source selector 116 selects positioning signal 14 from first satellite 2 and positioning signal 18 from second satellite 4, which may be collectively referred to as the "first" signal. In this example, the first signal includes two separate signals from two corresponding remote sources along respective directions of arrival. Method 300 may be performed in other embodiments using only positioning signal 14 or positioning signal 18, or preferably with three or more signals.
[0130] In step S312, the motion determination module 122 may utilize data provided by the motion sensor 112, which may include multiple measurements from motion and / or orientation sensors of different components, to determine the 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 positioning sources, which in this case are the first satellite 2 and the second satellite 4. The approximate positions of the first satellite 2 and the second satellite 4 and the approximate position of the receiver 104 can be used to determine the components of the motion of the receiver 104 along the line of sight to the first satellite 2 and the second satellite 4.
[0131] In particular, the motion of the receiver 104 during each of a number of successive stable periods (with which the local signal will be correlated in a later step) is determined. Generally, the speed, direction, and acceleration of the receiver motion may change between each successive period. These changes are tracked by the motion sensor 112 so that the specific motion during a particular stable period can be known and used in subsequent calculations.
[0132] Motion can be measured directly using the motion sensor 112. Alternatively, motion can 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 determine that the receiver 104 is moving at a constant speed in a straight line, such as while driving or on a train, it may be possible to assume motion based on a calculation, which may in some cases be simpler or less computationally intensive than performing measurements.
[0133] The motion of the receiver 104 (or equivalently the antenna 102) may be determined by measuring the motion of the receiver (e.g., using one or more measurements of a gyroscope, magnetometer, speed, step counting, etc.) or by projecting the motion of the receiver based on past motion (e.g., constant motion in a particular direction due to movement in a vehicle, or repetitive motion due to pedestrian movement). Additionally, motion may be extrapolated or calculated from previous motion in a particular environment. Machine learning techniques may be used to predict the motion of the receiver in such situations.
[0134] In step S314, the local oscillator offset calculation unit 124 creates an empty vector of offsets. In this example, the local oscillator offset calculation unit 124 creates a vector
number
number
number
[0135] In other examples, the vector of offsets can be represented by phase and phase rate offsets instead of (and equivalently) frequency offsets. In the above example, the vector of offsets uses only frequency and frequency rate offsets. However, in addition to providing more accurate correction of the local oscillator 106, higher order time derivative offsets can be used. It has been found that using only up to the first time derivative of phase or frequency provides a sufficient level of correction without overly burdening the control unit 108 in terms of processing load. However, to further reduce processing load, the method 300 can also be performed using only zero order frequency or phase offsets, without considering time derivative offsets (although such an approach requires a shorter duration of the local oscillator's stabilization period).
[0136] In another example, the vector of offsets can be divided into a first vector of frequency offsets in each stable period and a second vector of frequency rate offsets in each stable period. Other combinations and dimensions of vectors can be used in other embodiments.
[0137] In step S316, the local oscillator offset calculation unit 124 calculates the corresponding frequency offset and frequency rate offset between the local frequency reference and the known or predictable frequency for each unstable period in the vector of offsets, in this example for N=1 through N=m. The local oscillator offset calculation unit 124 then inputs each calculated offset into the vector initialized in step S314. This results in a complete vector of offsets that maps the error in the local reference signal over multiple consecutive periods. In other examples, the vector may be input as each individual value pair is calculated.
[0138] One method for performing this calculation is discussed in more detail below with reference to Figures 4A and 4B. Briefly, the method involves generating a first local signal using a received first 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 (positioning signals 14 and 18 in this example) with the first local signal. Phase compensation is applied to the first correlation signals, and the offset value that produces the best correlation result provides the true offset in the local oscillator 106.
[0139] The positioning method of FIG. 3A continues in FIG. 3B.
[0140] In step S317, an additional positioning signal is received, which may be referred to as a "second positioning signal," and which is generally weaker or more attenuated (i.e., received with a lower signal-to-noise ratio) than the first positioning signal. In this example, receiver 104 receives positioning signal 16, which has a low signal-to-noise ratio due to attenuation by tall building 12. Therefore, positioning signal 16 must be processed using phase compensation in order to be effectively correlated. As will be appreciated by those skilled in the art, reception of the second positioning signal may occur at any earlier point in the method, such as with positioning signals 14 and 18 in step S310.
[0141] In step S318, the local signal generator 118 generates a second local signal using the local frequency reference corrected using the offset vector. The correction based on the offset vector can be applied to the local frequency reference using known correction techniques for correcting timing signals. The correction technique can be based on the received frequency reference and its known or predictable frequency. As discussed in more detail below, the correction can 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.
[0142] The second local signal is generated using the corrected local frequency reference, so that the correction propagates to the second local signal. In this way, the local signal generator 118 generates the second local signal over an extended period that benefits from the improved local oscillator stability once the correction is applied. This improved second local signal allows coherent correlation to occur between the second local signal and a more attenuated positioning signal, such as positioning signal 16, over an extended period, thereby improving the signal-to-noise ratio of the correlated signal. This allows the pseudorange from the third satellite 6 to be determined despite the attenuation of positioning signal 16.
[0143] 3A and 3B, a frequency correction is applied to the second local signal using a vector. This adjusts the second local signal to more closely correspond to the positioning signal 16, thereby improving the correlation between the second local signal and the positioning signal 16 over the required integration period. Those skilled in the art will appreciate that in other implementations, a different oscillator correction can instead be applied to the received positioning signal 16. In this case, the positioning signal 16 is adjusted using a vector to more closely match the second local signal, which has the same effect of improving the resulting correlation between the positioning signal 16 and the second local signal. Similarly, the frequency correction can be applied directly to the correlation signal resulting from correlating the second local signal with the positioning signal 16 later in step S322, or can 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 occur due to relative line-of-sight motion between the receiver 104 and the third satellite 6. In other examples, phase compensation can alternatively be performed on the received positioning signal 16 or on a correlation signal generated by correlating the second local signal with the positioning signal 16. These techniques are described in commonly assigned patent publication WO 2017 / 163042, which is incorporated herein by reference.
[0144] By providing phase compensation corresponding to the direction extending between the receiver 104 and the third satellite 6, it is possible to achieve preferential gain for signals received along this direction. Thus, line-of-sight signals between the receiver 104 and the third satellite 6 receive preferential gain over signals received in a different direction, such as reflected signals from nearby buildings. Because non-line-of-sight signals (e.g., reflected signals) are significantly suppressed in the GNSS receiver, this can lead to significantly improved positioning accuracy and better estimation of signal phase. Applying phase compensation ensures that the highest correlation can be achieved for line-of-sight signals, even when their absolute power is smaller than that of non-line-of-sight signals. However, even in the absence of reflected signals, applying phase compensation increases the signal-to-noise ratio of the received positioning signals, enabling significantly more accurate positioning calculations.
[0145] 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, the received positioning signal may contain any known or unknown pattern of transmitted information, either digital or analog. The presence of such a pattern can be determined by a cross-correlation process using a local copy of the same pattern (in this example, the second local signal). The received positioning signal may be encoded with a chipping code that can be used for ranging. Examples of such received signals include GPS signals that contain Gold codes encoded within the wireless transmission. Another example is the extended training sequence used in GSM cellular transmissions.
[0146] 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 be generated using a local oscillator that is stable over the integration period. Using method 300, coherent integration is possible despite oscillator 106 instability. Different errors in the local oscillator 106 are identified and corrected during the integration period. The second local signal can then be composed of different sections, each with a different local oscillator correction term for a different period. Thus, phase compensation can be applied to the second local signal over the entire integration period, because the second local signal can now be coherently integrated despite the local oscillator 106 being less stable and having a lower signal strength.
[0147] The integration period can be determined by the correlator 120 based on the signal-to-noise ratio of the received signal, or alternatively can be set to a sufficiently long duration to detect weak signals, such as 0.5 seconds, 1 second, 2 seconds or more.
[0148] In step S324, the positioning calculation unit 130 calculates a positioning range or pseudorange associated with the third satellite 6 based on the correlation results in step S322. As is known in the art, the precise location of the positioning device 100 can be inferred by obtaining positioning ranges from at least three additional satellites and determining the intersection between the four calculated ranges.
[0149] The control unit 108 performs joint estimation during the phase compensation process in step S316 to directly determine the values of the frequency offset and frequency-rate offset. As described in International Publication No. 2019 / 063983, when performing the phase compensation correlation, different values of the frequency offset and frequency-rate offset can be tested in a two-dimensional search space. This can enable accurate determination of the frequency and frequency-rate offset in step S316. This approach is preferred because it is believed to be more accurate than determining the difference between the frequency of the local oscillator and the frequency of the reference source. For stronger signals (such as the “first” positioning signals 14 and 16), it may be possible to perform phase compensation over a short period equal to the stabilization period of the local oscillator 106. Therefore, the joint estimation process can be applied to the stronger signal over this short period to determine the values of the frequency and frequency-rate offset. These values can then be used directly in step S316.
[0150] In step S326, the control unit 108 returns to the previous step S302 to perform steps S302 to S324 for additional sources whose positioning signals are being received by the receiver 104, although in practice these steps are generally performed in parallel.
[0151] In step S328, the positioning calculation unit 130 calculates the position of the positioning device 100 using the determined at least four distances.
[0152] 4A and 4B illustrate an example method 400 for performing steps S314 and S316 of method 300. Specifically, FIGS. 4A and 4B illustrate a flow diagram of a method for calculating an offset between a known or predictable frequency and a local frequency reference generated using local oscillator 106.
[0153] In step S402, method 400 begins by determining, by the local oscillator offset calculation unit 124, the number of consecutive stable periods required to match or exceed the integration period required to perform accurate correlation. This can be determined using the stable period calculated in step S308 by the stable period determination module 128. The required integration period can 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 lower signal-to-noise ratios. Alternatively, the required integration period may be set to a fixed value stored in memory 110 that is long enough to allow very weak positioning signals to be correlated. The local oscillator offset calculation unit 124 can calculate the required size of a vector of offsets, or “offset vector,” by determining the number of stable periods whose sum is equal to or greater than the required integration period. In this example, the local oscillator offset calculation unit 124 determines that m stable periods are required and accordingly initializes the offset vector with a length of (m×2).
[0154] In step S404, the local oscillator offset calculation unit 124 initializes a loop to execute steps S406 through S426 a number of times so that the inherent error of the local frequency reference, and therefore the error of the local oscillator 106, can be determined for each successive stability period. In particular, the local oscillator offset calculation unit 124 initializes the loop to iterate m times, determining a particular frequency and frequency rate offset value in each iteration.
[0155] Generally, the specific error of the local oscillator 106 during a given period is related to the operating conditions of the local oscillator 106 during that period. For example, when the local oscillator 106 is hotter or while the positioning device 100 is being shaken or vibrated by an external force, the local oscillator 106 may tend to provide an excessively high local frequency reference. In another example, the local oscillator 106 may tend to provide a local frequency reference having a lower frequency than the average frequency when certain components of the positioning device 100 are operating. Thus, the local oscillator 106 may not be truly unstable because its instability may be somewhat predictable based on its environment. Generally, these environmental operating conditions may change between stable periods. The present invention leverages these considerations in steps S406 to S412 to reduce the processing load associated with determining a specific offset during a particular stable period.
[0156] In step S406, the local oscillator offset calculation unit 124 determines the operating conditions of the local oscillator 106 during the particular stable period for which the frequency offset is currently calculated. For example, the local oscillator offset calculation unit 124 can utilize continuous measurements obtained by the temperature sensor 114 and / or the motion sensor 112 to establish the operating conditions of the local oscillator 106 during the relevant period. In a subsequent step, it can check whether the positioning device 100 has encountered these operating conditions in the past by referring to the lookup table 132. Alternatively or additionally, the prediction model 134 can use the determined operating conditions to make a prediction or initial estimate of the frequency offset.
[0157] Further details regarding the form and operation of lookup table 132 and predictive model 134 are now provided before returning to method 400 of FIGS. 4A and 4B.
[0158] As discussed above, the particular error of the local oscillator 106 is influenced by, but not nearly solely determined by, its environment and the conditions under which it operates. Therefore, storing previously calculated offsets in the lookup table 132 allows subsequent offset calculations to benefit from knowledge of how the local oscillator 106 has behaved in similar conditions in the past. The lookup table 132 is used in steps S408 through S410 to reduce the processing load involved in calculating the error in the local oscillator 106 by taking into account previous offsets in the local frequency reference provided by the local oscillator 106.
[0159] Lookup table 132 is a data set configured to store frequency or phase offsets measured during previous uses of positioning device 100 under particular operating conditions. In this embodiment, lookup table 132 is a multidimensional array that stores pairs of calculated frequency and frequency-rate offset values corresponding to particular operating conditions.
[0160] Some operating conditions, such as whether a particular component of the positioning device 100 (e.g., a touchscreen or wireless interface) is operational, may be characterized by a binary operating parameter. For example, a touchscreen may only be on or off, and the operating parameter may take on a value of 1 or 0. Other types of measurements, such as the degree of vibration or the temperature of the local oscillator 106, may be continuous. For these continuous variables, the lookup table 132 may be configured to use a bin width such that measurements of the operating condition within the corresponding bin width are considered the same measurement for the purposes of storing the associated offset calculation. This may be useful for maintaining the lookup table 132 at a manageable length and, therefore, storage size. In other embodiments, the lookup table 132 may be configured such that a particular dimension of the lookup table has a length corresponding to the sensor resolution. For example, the dimension of the lookup table 132 corresponding to temperature may have a length equal to the measurement range of the temperature sensor 114 divided by its resolution. This allows for storing one pair of offsets for each possible sensor value.
[0161] In one particular example, the local offset calculation unit 124 may determine a particular error in the local frequency reference generated by the local oscillator 106 during the following operating conditions: a local oscillator temperature of 20°C, the screen is in the “on” state, and the positioning device 100 is not substantially agitated. The local offset calculation unit 124 may then add the calculated offset value to the corresponding location in the lookup table 132 that corresponds to these operating conditions. In subsequent calculations, the local oscillator offset calculation unit 124 may determine an offset for a different operating condition, e.g., with respect to temperature, i.e., a local oscillator 106 temperature of 15°C, the screen is in operation, and the positioning device 100 is not substantially agitated. The offsets calculated for these conditions may be stored in different locations in the lookup table 132. In this way, over time, the lookup table 132 may store the results of offset calculations performed over a wide range of operating conditions.
[0162] In another simplified example, the local oscillator offset calculation unit 124 may consider only the operating conditions of (i) temperature and (ii) whether the touchscreen is operating. 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 temperature bins may be used, 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 have a length of two because the screen can only be on or off. The remaining dimension, C, corresponds to the frequency offset and frequency-rate offset measured under the corresponding operating conditions. Therefore, dimension C has a length of two to store two different offset values for each possible combination of screen state and temperature bin. Thus, in this example, lookup table 132 can be implemented as a matrix of values (4x2x2) of dimensions that stores, for any matrix index i and j, either the frequency offset within the (i,j,1) slice or the frequency rate offset within the (i,j,2) slice.
[0163] In more relevant embodiments, lookup table 132 may have higher dimensions, typically according to the number of additional operating parameters that are taken into account (e.g., the degree of equipment sway, acceleration, or vibration, etc.) For example, if the presence of vibrations in local oscillator 106 is also taken into account, lookup table 132 may be a four-dimensional matrix or data structure.
[0164] In one particular, more relevant embodiment, the lookup table 132 may also take into account whether the temperature is rising or falling. This is because oscillators may exhibit temperature hysteresis, i.e., may behave differently at a given temperature depending on the oscillator's recent or past temperature. For example, the local oscillator 106 may provide a relatively low frequency reference if the temperature is rising by 20°C and a relatively high frequency reference if the temperature is falling by 20°C. The lookup table 132 may be configured to store offset values for each case of rising or falling temperature.
[0165] Continuing with the above example, lookup table 132 can have an additional dimension Z of length 2, providing an array of (AxZxBxC) such that each temperature value has two corresponding frequency and frequency-rate offset entries in the lookup table. One pair of frequency and frequency-rate offset corresponds to when local oscillator 106 is at the respective temperature and the temperature is increasing. The other pair corresponds to the same temperature, but when the temperature is decreasing. The additional dimension in this case can be embodied as a binary dimension, i.e., taking only values of 1 or 0, similar to the operating condition of whether the touchscreen is operating. This allows lookup table 132 to take into account temperature hysteresis effects in local oscillator 106.
[0166] In practice, many more bins than the four temperature bins in the above example can be used for continuous variables. In the above example, dimension C can have a longer or shorter length depending on the order of frequency corrections used. For example, dimension C can have a length of 1 if only a frequency offset is applied, or a length of 3 if both a first and second time derivative correction are calculated and applied.
[0167] In other embodiments, the lookup table 132 may be any form of data set implemented in a variety of other ways, such as using other forms of data structures or using multiple separate matrices or other data structures. For example, the lookup table 132 may be implemented using a table for storing specific measurements of each operating condition corresponding to a specific time period. In addition, the table may store these conditions and the corresponding offset values calculated for the specific time period. Thus, a list of measured operating conditions and their subsequently calculated corresponding offset values may be built over time by the local oscillator offset calculation unit 124 in the lookup table 132. In this case, when later referencing the lookup table 132, the local oscillator offset calculation unit 124 may reference the closest set of operating condition measurements in the list to limit the “search space,” as discussed further below.
[0168] In some embodiments, the lookup table 132 can be configured to store multiple offset values for the same operating conditions and additionally store an average offset value for those conditions. The average offset for a particular condition can be calculated by the local oscillator offset calculation unit 124. The average offset value for a particular condition can then be used to set the search window width, as discussed further below. Alternatively, only the most recent offset value determined for a particular set of conditions may be stored, so that subsequent measurements under the same operating conditions may overwrite previously measured offsets.
[0169] Another approach that can be used instead of or in conjunction with the lookup table 132 involves the use of a predictive model 134. The predictive model 134 can include a mathematical formula or an AI-based model, such as a neural network or machine learning model, that can provide an initial estimate or prediction of the error of the local oscillator 106 based on determined operating conditions. In either case, the predictive model 134 allows the future behavior of the local oscillator 106 to be predicted by characterizing past behavior. The predictive model 134 can be used similarly to the lookup table 132 to provide an initial frequency estimate that limits a search window for more accurately calculating the frequency offset, as described in more detail below. The use of such a model can also be referred to as using “predictive control.”
[0170] The model can be pre-trained with prediction data 136 stored in memory, or can be continuously re-trained based on determined operating conditions and each calculated frequency offset. Alternatively, the model can incorporate data from look-up 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 corresponding operating condition. Continuously re-training the model allows the model to be tailored to the particular equipment in which it is implemented.
[0171] Data from the sensors or decisions made by the controller 108 may be used to control operational functions of the device 100 to mitigate operating conditions that adversely affect the stability of the local oscillator 106. For example, if a sensor indicates that the temperature of the local oscillator 106 is becoming extreme to the point that phase compensation to correct for the temperature becomes an impractical option, the controller 108 may notify the device 100 to take mitigating action to reduce the temperature, such as deactivating the screen, slowing down the processor speed, deactivating one or more modems, etc.
[0172] Returning briefly now to method 400, in step S408, local offset calculation unit 124 may check lookup table 132 to determine whether 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 previously been performed and used to determine the offset of the local frequency reference.
[0173] In step S410, if the measured operating conditions are known, the local offset calculation unit 124 calculates "
number
[0174] Alternatively, rather than checking whether the operating conditions are known, the operating conditions can be provided as input to the predictive model 134. The predictive model 134 can then analyze the operating conditions and provide an initial estimated frequency offset that can be used to define a search window instead.
[0175] Referring to FIG. 5, before returning to method 400:
number
[0176] 5 shows a graph 500 including two axes representing the range of possible frequency offset values on the y-axis and frequency rate offset values along the x-axis for a particular stable period.
number
number
[0177] In either case, the test points within the search window represent a hypothesized frequency offset or error in the local frequency reference generated by the local oscillator 106. As each test point within the search window is evaluated, a "preferred" frequency offset value, i.e., a best estimate of the error in the local oscillator 106, can be determined.
[0178] The local oscillator offset calculation unit 124 is configured to determine a "true" offset value for a particular stable period by performing a calculation for each test point within 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" different from the second local signal generated in step S318, is created using a local frequency reference adjusted using the pair of offset values for the particular test point. This local test signal is then correlated with each of one or more ("first") positioning signals (such as the positioning signals 14 and 18 referred to above as "first positioning signals") that have a better signal-to-noise ratio than the ("second") positioning signal 16, allowing for coherent phase compensation over the unstable period of the local oscillator 106. The first positioning signal is 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 signal. The first positioning signal is then correlated with the local test signal using the phase compensation module 126, which applies phase compensation to either the signal in the correlation or the result of the correlation over a single stable period. The dependence of the local test signal on the local frequency reference means that the correlation result "z" is a function "F" of the frequency offset and frequency rate offset, as shown in equation (2) below. An exemplary (arbitrary) contour is shown when the value of the function F is
number
number
[0179] The maximum value 510 is the largest value in this example. However, the correlation result z may be analyzed to determine the 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.
[0180] Returning to step S410 of method 400, it can be determined that the measured operating conditions are known. The search window size can then 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 offset. Alternatively, the search window size may be calculated using a more complex formula. Preferably, setting the narrow search window 506 involves:
number
[0181] After the narrow search window 506 is set, the method 400 may then proceed to step S414.
[0182] However, if the operating conditions are not known, method 400 proceeds to step S412, where a wide search window 502 is established by local oscillator offset calculation unit 124. In some embodiments, depending on the particular implementation of lookup table 132, local oscillator offset calculation unit 124 may add the measured operating conditions to lookup table 132 at this point. In other embodiments, lookup table 132 may not record particular operating condition measurements. In such cases, lookup table 132 may have pre-allocated, but currently empty, storage locations corresponding to particular measured operating conditions for storing pairs of offset values.
[0183] The search window size can also be constrained in other ways. In one example incorporating a predictive model 134, the predictive model 134 can determine a reliability or variability score based on 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 can indicate that the local oscillator 106 is known to be somewhat more stable in the current conditions and therefore a narrower search window 506 can be used.
[0184] In another example, the prediction model 134 can compare the last calculated frequency offset with a more recent frequency offset prediction. The size of the difference between the more recent prediction and the last calculated value can define the size of the search window. For example, if the predicted value and the current value are very different, the number of hypotheses can be increased. Conversely, if the difference is small, a fewer number of hypotheses can be used.
[0185] In step S414, the local oscillator offset calculation unit 124 calculates the offset within the search window.
number
[0186] In step S416,
number
number
[0187] In step S418, the local test signal is correlated by the correlator 120 with one of the “first” positioning signals, or even each of the first positioning signals, that may have a better signal-to-noise ratio than the positioning signal 16 over a stable period. In this example, the receiver 104 receives the 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 generates 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 generate a phase-compensated first correlation signal. The movement of the receiver 104 during the associated stable period determined in step S312 can be used to perform the phase compensation in step S418. The phase compensation may be performed based on the movement of the line of sight to the second satellite 4. The signal resulting from the phase compensated correlation can be "tested" using a function F, for example, using the formula or by performing an integration, to provide the correlation result z of Equation 2.
[0188] In step S420, the local oscillator offset calculation unit 124 determines whether the test value calculated in step S418 is
number
[0189] In other embodiments, the local oscillator offset calculation unit 124 may determine that the best-fit frequency offset is likely to be between two of the hypothetical test values, and may therefore interpolate between the test values to provide a best estimate of the frequency and frequency rate offset.
[0190] In step S422, the local oscillator offset calculation unit 124 calculates
number
[0191] Steps S418-S422 are 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 multiple ("first") remote sources, such as the first satellite 2 and corresponding positioning signals 14. In general, multiple first positioning signals may be used. Steps S418-S422 may be repeated in a loop for each of the first positioning signals. Alternatively, in step S418, a correlation may be performed between the local test signal and each received first signal to generate a phase-compensated correlation result for each test point within the search window and each received first signal.
[0192] In this case, the function F is expressed as follows for each additional first positioning signal:
number
[0193] Combining test results from several positioning sources avoids one problem that can arise in some scenarios when using only one first signal from a single first remote source.
[0194] For example, a problem may arise if method 400 uses only the positioning signal 18 and simultaneously receives the positioning signal 18 along a direct line of sight and an indirect direction of arrival due to reflections. In this case, there may be two hypothetical frequency offsets or test values that produce a strong phase-compensated first correlation signal (or an equally strong test result) in step S418. However, only one of the hypothetical frequency offsets actually corrects for the error in the local oscillator 106. The remaining hypothetical frequency offset effectively “corrects” or cancels the phase offset resulting from the positioning signal 18 taking the reflected path, resulting in a stronger correlation result. This remaining hypothetical frequency offset may be erroneously determined to be a frequency offset value resulting from instability in the local oscillator 106 over a given period of time. In this case, the calculated frequency offset does not represent the error in the local oscillator 106 over the given period of time. This means that the calculated frequency offset cannot be used to apply accurate corrections in processing other received signals (such as the weaker “second” positioning signal 16) to achieve better phase-compensated correlation results.
[0195] Using multiple positioning signals to determine the frequency offset in each time period avoids this problem because each received positioning signal has a common hypothesized frequency offset that generates a strong phase-compensated first correlation signal. The common hypothesized frequency offset corresponds to an error in the local frequency reference generated by the unstable local oscillator 106. However, because each remote source is at a different location and height, resulting in different degrees of path length difference and therefore different phase delay, the frequency offsets corresponding to the reflected paths from each remote source will not substantially match. Therefore, combining the phase-compensated first correlation results generated for each first positioning signal makes it possible to identify the hypothesized frequency offset corresponding to the error in the local oscillator 106.
[0196] In some examples, the combination is:
number
[0197] In step S424, the local oscillator offset calculation unit 124 sets the frequency offset and frequency rate offset equal to the best fit values 512, 514 for the current stable period in the vector of offsets. At this point, the local oscillator offset calculation unit 124 has determined the error of the local oscillator 106 for the particular period.
[0198] In step S426, the local oscillator offset calculation unit 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 previously described, the best fit values may be stored in a location within the lookup table 132 corresponding to the operating condition associated with 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 the previously calculated best fit values. Similarly, if the lookup table 132 is configured to store particular measurements and corresponding measurement offsets, these data may be added to the lookup table 132 in step S426.
[0199] The predictive model 134 may also be updated or retrained based on the best fit values 512, 514 and the determined operating conditions of step S406.
[0200] In step S428, method 400 returns to step S406, and steps S406-426 are repeated for each successive period of local oscillator 106 stability until the vector of offsets is completely filled with offset values. In this way, method 400 creates a vector representing a daisy-chain of corrections in local oscillator 106 for successive periods. In practice, each frequency offset and each frequency-rate offset is likely, or even certain, to be numerically unique (if the values are expressed with enough significant figures) due to the stochastic nature of the physical processes that govern the behavior of local oscillator 106.
[0201] Following step S428, method 400 may include a further step of performing an additional joint estimation process. In one exemplary implementation, the offset vector calculated in the previous step may be applied to correct a local test signal similar to the local test signal generated in step S416 but having a longer duration, e.g., equal to the total length of the desired integration period. The process of steps S418-S422 may be repeated using positioning signal 18, positioning signal 14, and any other positioning signals, with the longer local test signal corrected by the offsets calculated in steps S402-S428. This calculates a single frequency and frequency-rate offset correction for the longer local test signal. This additional correction pair is substantially small and relates to a global frequency and frequency-rate offset in local oscillator 106 that may not have been accounted for by the previous step. This additional global correction may then be applied (e.g., added) to each of the previously calculated frequency and frequency-rate offsets in the vector, resulting in a small frequency and frequency-rate shift throughout the integration period. This provides a more accurate estimate of the error in the local oscillator 106 over the integration period.
[0202] The offset vector can then be used in method 300 to generate a second local signal of duration equal to or greater than the required integration period. The second local signal is created using a local frequency reference that is corrected differently in different portions of the local frequency reference according to each pair of best-fit offsets in the offset vector. These corrections are then propagated to the second local signal generated using the local frequency reference. This allows the second local signal to be coherently integrated over the entire integration period in correlation step S322, despite instability of the local oscillator 106. As previously mentioned, the vector can alternatively or additionally be used to apply corrections to the positioning signal 16 or the correlation signal resulting from step S322.
[0203] The method 400 may include additional steps to further enhance the effectiveness of the correction applied to the local frequency reference signal. The local oscillator offset calculation unit 124 may be configured to evaluate the trend of the offset values in the offset vector over successive stable periods. The local oscillator offset calculation unit 124 may establish that the frequency offset values change steadily and continuously, for example, between adjacent stable periods. The local oscillator offset calculation unit 124 may perform 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 fit quality, interpolation may be applied. In one example, the fit quality may be characterized by a metric related to the residual, such as an “r-squared” value, as known in the art. A similar evaluation may be performed for the frequency rate offset value. In one example, if the local oscillator 106 is operating in favorable conditions, for example, at a low temperature, steady fluctuations in the offset may occur.
[0204] If a substantially steady variation in the offset value can be determined, it can be inferred that the error of the local oscillator 106 behaves predictably between the calculated offset values. To take advantage of this, the local oscillator offset calculation unit 124 can be configured to increase the length of the offset vector to accommodate additional pairs of offset values. The local oscillator offset calculation unit 124 can then interpolate offset values between the calculated offset values. Advantageously, this allows for finer-scale correction of the local frequency reference to be performed without having to perform the computationally demanding processes of steps S416-S422 for additional stabilization periods. Alternatively, if it is determined that there is predictable behavior between periods, the periods can be extended to reduce the computational load.
[0205] In some exemplary embodiments, using interpolation in this manner may be performed retroactively in method 400, i.e., after the initial vector of offsets is calculated in step S428. Alternatively, interpolation may be performed before step S428, after the offsets of at least three consecutive stable periods have been calculated. For example, between steps S412 and S414, it may be checked whether the offset values appear to vary smoothly, and if so, interpolation may be applied. Applying interpolation retroactively, rather than in real time, may have the advantage that the behavior of the local oscillator 106 over the entire range of the integration period may be checked for smooth variations before making any assumptions regarding the behavior of the local oscillator 106. Interpolation may be applied when operating conditions meet certain criteria, for example, when the temperature falls below a threshold that indicates favorable conditions for local oscillator stability.
[0206] If the local oscillator 106 behavior is determined to be erratic or relatively unpredictable, the local oscillator offset calculation unit 124 may choose not to apply interpolation to avoid making erroneous assumptions about the offset value.
[0207] The search space used in the exemplary method 400 is two-dimensional due to the use of a maximum first-order frequency correction, a frequency offset, and a frequency rate offset. However, in other embodiments, the search space may be one-dimensional if only a frequency offset is calculated, or three or more dimensions if higher order correction terms are calculated.
Claims
1. 1. 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 each direction of arrival; determining the movement of the receiver during each of a plurality of consecutive time periods; For each of the at least one first received signal, providing a first local signal using the local frequency reference; providing a first correlation signal by correlating the first local signal with the first received signal; providing a plurality of hypothesized frequency offsets; For each of the plurality of hypothesized frequency offsets, providing phase compensation of at least one of the first local signal, the first received signal, and the first correlated signal based on the determined movement of the receiver along the respective directions of arrival to generate a phase-compensated first correlated signal; determining a preferred frequency offset based on the plurality of hypothesized frequency offsets in each of the plurality of consecutive time periods and the generated phase-compensated first correlation signal to provide a vector including a plurality of unique frequency offsets in the local frequency reference in each of the plurality of consecutive time periods; receiving a second signal at the receiver from a second remote source along the direction of arrival; providing a second local signal using the local frequency reference; providing a second correlated signal by correlating the second local signal with the second signal; providing phase compensation for at least one of the second local signal, the received second signal, and the second correlated signal based on the determined movement along the direction of arrival of the received second signal and the vector; A method comprising:
2. providing a plurality of hypothetical frequency rate offsets; providing phase compensation for each of the plurality of hypothesized frequency offsets includes providing phase compensation for each of the plurality of hypothesized frequency offsets and frequency rate offsets; 2. The method of claim 1, wherein determining the preferred frequency offset based on the multiple hypothesized frequency offsets in each of the multiple consecutive time periods comprises determining the preferred frequency offset and preferred frequency rate offset in each of the multiple consecutive time periods to provide the vector including the multiple unique frequency offsets and multiple unique frequency rate offsets in the local frequency reference in each of the multiple consecutive time periods.
3. 3. The method of claim 2, wherein providing phase compensation to each of the plurality of hypothesized frequency offsets and frequency-rate offsets comprises providing phase compensation to each of a plurality of pairs of the hypothesized frequency offsets and frequency-rate offsets.
4. receiving the at least one first signal includes receiving a plurality of first signals at the receiver from a plurality of first remote sources; 4. The method of claim 2, wherein determining the preferred frequency offset based on the plurality of hypothetical frequency offsets and the phase-compensated first correlation signal in each of the plurality of consecutive time periods is performed based on a plurality of phase-compensated first correlation signals.
5. 5. The method of claim 4, wherein the step of determining the preferred frequency offset based on the plurality of phase-compensated first correlation signals is performed by combining, for each hypothesized frequency offset, the phase-compensated first correlation signal generated for each of the plurality of received first signals.
6. The vector is For each of the at least one first received signal, providing a third local signal using the local frequency reference; providing a third correlated signal by correlating the third local signal with each of the one or more received first signals; providing a further plurality of hypothesized frequency offsets; and for each of the further plurality of hypothesized frequency offsets: providing phase compensation of at least one of the third local signal, the one or more received first signals, and the third correlated signal based on the vector and the determined movement of the receiver along the respective directions of arrival to generate a phase-compensated third correlated signal; determining a frequency correction based on the frequency offsets of the further plurality of hypotheses and the generated phase-compensated third correlation signal; adding the determined frequency correction to the vector at each of the plurality of consecutive time periods; The method of any one of claims 1 to 5, further comprising correcting by:
7. 7. The method of claim 1, wherein determining the preferred frequency offset based on the plurality of hypothesized frequency offsets comprises interpolating a preferred frequency offset between two of the plurality of hypothesized frequency offsets.
8. 8. The method of claim 1, wherein the combined duration of the plurality of consecutive periods is 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.
9. 9. The method of claim 1, further comprising: determining one or more operating conditions in a system performing the method in each of the plurality of consecutive time periods; and determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions.
10. The method of claim 9 , wherein the one or more determined operating conditions include one or more of a temperature, a rate of change of temperature, an operating state, or a determined movement of a component within the system.
11. 11. The method of claim 9 or 10, further comprising providing the preferred frequency offset and the one or more determined operating conditions for each of the plurality of consecutive time periods to a stored data set.
12. 12. The method of any one of claims 9 to 11, wherein the duration of one or more of the plurality of consecutive periods is determined based on the one or more determined operating conditions of the system.
13. The method of claim 12 , wherein at least two of the plurality of consecutive periods have different durations relative to each other.
14. The method of any one of claims 1 to 13, further comprising the step of calculating a distance or pseudorange from the receiver to the second remote source based on the second correlation signal.
15. 1. 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 each direction of arrival and a second signal from a second remote source along each direction of arrival; a motion module configured to determine motion of the receiver; 1. A processor, comprising: For each of the at least one first received signal, providing a first local signal using the local frequency reference; correlating the first local signal with the received first signal to provide a first correlated signal; providing a plurality of hypothesized frequency offsets; and for each of the plurality of hypothesized frequency offsets: providing phase compensation of at least one of the first local signal, the first received signal, and the first correlated signal based on the determined movement of the receiver along the respective directions of arrival to generate a phase-compensated first correlated signal; determining a preferred frequency offset based on the plurality of hypothesized frequency offsets in each of the plurality of consecutive time periods and the generated phase-compensated first correlation signal to provide a vector including a plurality of unique frequency offsets in the local frequency reference in each of the plurality of consecutive time periods; providing a second local signal using the local frequency reference; correlating the second local signal with the second signal to provide a second correlated signal; providing phase compensation for at least one of the second local signal, the received second signal, and the second correlated signal based on the determined movement along the direction of arrival of the received second signal and the vector; a processor configured to: A system comprising: