Method and apparatus for determining frequency-dependent parameters of frequency source

By using the frequency reference provided by the local oscillator in the positioning device and performing multi-signal reception and phase compensation, the problem of degradation of positioning accuracy caused by unstable local oscillators is solved, and high-precision positioning in complex signal environments is achieved.

CN119998690APending Publication Date: 2025-05-13FOCAL POINT POSITIONING LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202380071110.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-11-10
Filing Date
2023-08-03
Publication Date
2025-05-13

AI Technical Summary

Technical Problem

Existing positioning equipment is difficult to accurately determine the position or pseudorange when using unstable local oscillators, especially under complex signal environments or external factors.

Method used

By using the frequency reference provided by a local oscillator in the receiver, multiple signals are received, motion of the receiver is determined, and phase compensated based on multiple hypothetical frequency offsets, phase compensated coherent signals are generated to determine the preferred frequency offset and frequency rate shift.

Benefits of technology

The positioning accuracy and signal processing capability of the positioning device under unstable local oscillator conditions are improved, and GNSS positioning can be effectively performed in poor signal environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119998690A_ABST
    Figure CN119998690A_ABST
Patent Text Reader

Abstract

A method is disclosed, comprising: providing a local frequency reference; receiving, at the receiver, at least one signal (14, 16, 18) from at least one remote source (2, 4, 6) along a respective direction of arrival; determining a motion of the receiver; determining one or more operating conditions in a system performing the method; determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions; providing a local signal using the local frequency reference; providing a coherent signal by correlating the local signal with the received signal; and providing phase compensation based on the motion of the receiver determined along the respective direction of arrival to generate a phase compensated coherent signal; based on the phase compensated coherent signal and the initial estimated frequency offset, a frequency offset value is dynamically adjusted to determine a preferred estimate of the frequency offset in the local frequency reference.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a system that is capable of determining a more accurate value (such as a local oscillator frequency or a frequency drift rate) from a received signal using a receiver having an unstable local oscillator. Background Art

[0002] Existing modern devices such as cell phones have local oscillators that can provide frequency references for a variety of different applications. Cellular devices typically include a relatively low-cost local oscillator such as a quartz oscillator. These devices can provide a stable frequency reference for a short period of time. However, the frequency references they produce may not be stable over longer periods of time and may also be unstable when their operating conditions change. Examples of changing operating conditions include temperature, vibration, and acceleration forces, such as shock when the device is bumped or dropped.

[0003] One application that requires a frequency reference from a local oscillator is GNSS positioning.

[0004] The purpose of the present invention is to improve the ability of a positioning device to determine a positioning calculation such as a position fix or pseudorange when the local oscillator is unstable. This is often the case with consumer devices such as smartphones, smart watches or car navigation systems, which all use 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 within a positioning device to determine frequency-related errors (such as frequency offset) of its local oscillator, and to perform such determinations while conserving computing resources even when the receiver is used in difficult signal environments such as urban canyons. Summary of the invention

[0006] According to a first aspect of the present invention, a method is provided, comprising: providing a local frequency reference using a local oscillator at a receiver; receiving at least one first signal from at least one first remote source along a corresponding arrival direction; determining the movement of the receiver in each of a plurality of consecutive time periods; for each of the at least one first signal received: providing a first local signal using the local frequency reference; providing a first coherent signal by correlating the first local signal with the received first signal; and providing a plurality of assumed frequency offsets, and for each of the plurality of assumed frequency offsets: providing a first local signal, a first received signal and a first coherent signal based on the movement of the receiver determined along the corresponding arrival direction. A phase compensation is provided to produce a phase-compensated first coherent signal; based on multiple assumed frequency offsets in each time period of multiple consecutive time periods and the generated phase-compensated first coherent signal, a preferred frequency offset is determined to provide a vector including multiple unique frequency offsets in a local frequency reference within each time period of multiple consecutive time periods; a second signal is received from a second remote source along an arrival direction at a receiver; a second local signal is provided using a local frequency reference; a second coherent signal is provided by correlating the second local signal with the second signal; and a phase compensation is provided for at least one of the second local signal, the received second signal and the second coherent signal based on a motion determined along the arrival direction of the received second signal and the vector.

[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 of time, which is the sum of multiple consecutive time periods. In an example embodiment, a second local signal can be generated with a different local oscillator correction in each consecutive time period. The daisy-chained second local signal can then be correlated with the received second signal and phase compensated. This technique can perform supercorrelation even in the presence of a relatively unstable local oscillator. TM Super-correlation processing (i.e. long coherent integration of the signal) because each instability period can be independently corrected. This was not possible before and advantageously improves the ability of a positioning system to determine the distance to a GNSS satellite in a poor signal environment when the system itself has a relatively poor local oscillator.

[0009] Those skilled in the art will appreciate that in other embodiments, different oscillator corrections may be applied to the received second signal or second coherent signal, or any combination of the second local signal, the second signal, and the second coherent signal using a vector. For example, the second signal may be adjusted using a vector instead of the second local signal. This effectively introduces the same or very similar changes that occur in the second local signal due to a relatively poor local oscillator into the second signal. This will improve the coherence results of the second signal (adjusted using the vector) and the (unadjusted) second local signal, because similar changes will appear in each signal.

[0010] Calculating a vector of unique frequency offsets involves providing a plurality of assumed frequency offsets, and providing phase compensation for at least one of the first local signal, at least one first signal, and the first coherent signal based on the determined motion of the plurality of assumed frequency offsets in the corresponding directions of arrival, and determining a preferred frequency offset based on the plurality of assumed frequency offsets in each of a plurality of consecutive time periods and the resulting phase-compensated first coherent signal. In this way, the method can search for a frequency offset that can provide the best correlation result. This corresponds to a search in frequency space. In other arrangements, a two-dimensional search can be performed on frequency and frequency rate of change to find a combination of variables that provides the best correlation result (e.g., the highest peak of the coherent signal) and reveal the best solution to the local oscillator frequency-related error.

[0011] The frequency offset may be determined relative to another frequency reference that is very close to a "true" frequency reference that can be derived from a well-modeled, high-fidelity atomic oscillator. Thus, the frequency offset may be determined relative to a "known or predictable frequency" that is generated using an oscillator that is much more accurate than the local oscillator. At least one of the first and second signals may be generated using a similar frequency reference, such as an atomic clock in the respective first and second remote sources.

[0012] In some embodiments, the local signal may be a copy of a pseudo-random number sequence from a GNSS satellite. The second local signal may be generated based on a frequency reference from a local oscillator and a plurality of unique frequency offsets corresponding to determined errors in the local oscillator frequency reference over consecutive time periods. This may generate a second local signal in which the local oscillator error is substantially eliminated, and this may significantly improve positioning accuracy.

[0013] The method may include using an inertial sensor, such as an accelerometer and / or a gyroscope, that can provide a determined motion over multiple consecutive time periods. In some cases, it is possible to assume or predict the motion of the system. In one example, this may be done if the system has been moving in a predictable or consistent manner over multiple time periods. This may occur, for example, when a user is on a train or driving on a long, straight road. In such a scenario, it may be possible to predict the motion of the receiver without actually measuring it using an inertial sensor.

[0014] Phase compensation may be applied using techniques known in the art. For example, phase compensation may be applied only to one or more of the second signal, the second local signal, or a second coherent signal coherently generated by the second signal and the second local signal. Similarly, phase compensation may be applied to any one of at least one first signal, the first local signal, and the resulting first coherent signal. The correlation step may be performed using known correlation techniques in a GNSS (Global Navigation Satellite System) or other positioning system. The step of determining the motion of the receiver in each of a plurality of consecutive time periods may include determining a component of motion of the receiver along a line of sight to each corresponding remote source, which may be a positioning source or any other type of source. The local frequency reference may be a timing signal in various possible forms, such as a sine wave or a square wave.

[0015] Preferably, the method further comprises providing a plurality of assumed frequency rate offsets; wherein the step of providing phase compensation for each of the plurality of assumed frequency offsets comprises providing phase compensation for each of the plurality of assumed frequency and frequency rate offsets; and wherein the step of determining a preferred frequency offset based on the plurality of assumed frequency offsets in each of the plurality of consecutive time periods comprises determining a preferred frequency offset and a preferred frequency rate offset in each of the plurality of consecutive time periods to provide a vector comprising a plurality of unique frequency offsets and a plurality of unique frequency rate offsets in the local frequency reference in each of the plurality of consecutive time periods. As previously mentioned, it should be understood by those skilled in the art that the vector may be used to apply a frequency rate correction to any one of the second local signal, the second signal, or the second coherent signal, or any combination of the second local signal, the second signal, and the second coherent signal.

[0016] In this way, the local oscillator can be corrected based on its frequency and its rate of change of frequency. It is also possible to provide higher order corrections. However, it has been found that using only frequency and rate of change of frequency offsets can provide sufficiently accurate corrections, which minimizes the computational load.

[0017] Those skilled in the art will appreciate that the term "frequency rate offset" refers to the difference in the rate of change of the frequency of the local oscillator ("frequency rate") compared to a completely stable ideal frequency source with a frequency rate of zero.

[0018] The unique frequency rate of change offsets may be provided as a separate vector of vectors of unique frequency offsets, or the vectors may be provided together in a combined vector or matrix. It will be appreciated by those skilled in the art that the terms matrix and vector may be used interchangeably. It will be appreciated by those skilled in the art that the vector or matrix may be represented in a variety of ways, such as a list of frequency offset entries corresponding to specific time periods in a plurality of continuous time periods.

[0019] Preferably, the step of providing phase compensation for each of a plurality of assumed frequencies and frequency rate of change offsets comprises providing phase compensation for each of a plurality of pairs of assumed frequencies and frequency rate of change offsets. In this way, a phase-compensated first coherent signal may be generated for each combination of frequency and frequency rate of change. This allows the determination of an optimal combination of frequency and frequency rate of change in each of a plurality of consecutive time periods, thereby enabling a more accurate mapping of the evolving error in the local oscillator.

[0020] Preferably, receiving at least one first signal comprises, at the receiver, receiving a plurality of first signals from a plurality of first remote sources, wherein determining the preferred frequency offset based on a plurality of assumed frequency offsets and the phase-compensated first coherent signal in each of a plurality of consecutive time periods is based on the plurality of phase-compensated first coherent signals. In this way, determining the preferred frequency offset based on a plurality of received first signals avoids a problem that may arise in some scenarios when only one first signal from a single first remote source is used.

[0021] One such scenario may occur when a first signal is received along a direct line of sight and simultaneously along an indirect direction of arrival caused by reflections (increased path length from a remote source to a receiver). In this case, there may be two hypothesized frequency offsets that appear to generate a better phase-compensated first coherent signal. However, only one of the hypothesized frequency offsets corresponds to an error in a local oscillator. The remaining hypothesized frequency offset may correspond to the reflected first signal. If a preferred frequency offset is selected (or otherwise determined) based on an assumption corresponding to a reflected signal, the preferred frequency offset will represent a phase offset caused by an increased path difference of the reflected signal. In this case, the preferred frequency offset does not represent an error in a local oscillator within a given time period. This means that the preferred frequency offset cannot typically be used to apply corrections in the processing of other received signals (e.g., a second signal) to obtain better phase-compensated correlation results.

[0022] Using multiple first signals avoids this problem because, in a given time period, each received first signal has a common assumed frequency offset, thereby generating a better phase-compensated first coherent signal. The common assumed frequency offset corresponds to an error in a local frequency reference generated by an unstable local oscillator. Therefore, determining the preferred frequency offset in each consecutive time period based on multiple first signals allows the identification of the assumed frequency offset corresponding to the error in the local oscillator by comparison of the phase-compensated first coherent signals.

[0023] Preferably, the step of determining a preferred frequency offset based on a plurality of phase-compensated first coherent signals is performed by combining, for each assumed frequency offset, the phase-compensated first coherent signals generated for each of the plurality of received first signals and determining the assumed frequency offset corresponding to the highest combined coherence. In this way, an assumed frequency offset corresponding to an error in a local frequency reference generated by an unstable local oscillator can be identified. In one example, the combination can be a summation or a multiplication. A suitable cost function can be used to determine the frequency and / or frequency rate of change corresponding to the highest combined coherence.

[0024] Preferably, the method may include determining one or more operating conditions in a system performing the method in each of a plurality of consecutive time periods, and determining an initial estimated frequency offset in a 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 of a local oscillator in a given time period in the consecutive time periods. In this way, the initial estimated frequency offset may be used as a starting point or initial condition when the offset is more accurately calculated using a plurality of assumed frequency offsets, which enables a more efficient generation of the vector.

[0025] The determination of the initial estimated frequency offset can be performed in a variety of ways. In one example, a lookup table can be used to retrieve a frequency offset previously calculated under the same or similar operating conditions. In another example, a model configured to predict the frequency offset in a local oscillator based on the operating conditions of the system can take one or more determined 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 a 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 the calculation of the preferred frequency offset and their corresponding determined operating conditions. The method may include a step of retraining the model based on the one or more determined operating conditions and the preferred frequency offset. In another example, a lookup table can provide input to the model.

[0026] Preferably, the one or more operating conditions determined include one or more of temperature, rate of change of temperature, operating state, or determined motion of a component in the system.

[0027] The one or more operating conditions may be determined using sensors that measure physical variables that enable calculation of relevant parameters such as temperature. Alternatively or additionally, where the one or more operating conditions include an operating state of a component, the determination of whether a component is on or off may be performed using control logic without a sensor.

[0028] Preferably, the method further comprises providing the preferred frequency offset and the determined one or more operating conditions in each of the plurality of consecutive time periods to the stored data set. In this way, the behavior of the local oscillator under specific operating conditions can be tracked for future reference.

[0029] The operating condition determined may include temperature. The operating condition determined may also include whether the temperature is rising or falling. This is because the oscillator can exhibit temperature hysteresis, that is, at a given temperature, its behavior may be different according to the most recent or historical temperature of the oscillator. In one example, each temperature value may have two corresponding frequency offset entries in the stored data set. An offset entry may correspond to the time when the oscillator is at a corresponding temperature and the temperature is rising, and the time of another offset entry may correspond to the same temperature but the time when the temperature is decreasing. In this way, the stored data set may be configured to take into account the temperature hysteresis effect in the local oscillator. Similarly, two frequency change rate (or any other phase or frequency correction term) entries may be stored for each temperature.

[0030] In one example, a large number of potential operating conditions can be measured to update the multidimensional lookup table. Temperature can be measured using a thermocouple or thermistor that is very close to the local oscillator in the system device. Other active applications or components within the device can be another operating condition. The device can be a positioning device. It has been found that running some applications or components, or running a specific combination of applications or devices, can have an adverse effect on the stability of the local oscillator, and therefore, it is valuable to list the effects observed by running these applications in the lookup table. Another example of an operating condition includes active hardware in the system or positioning system. For example, a touch screen or wireless interface in a positioning device may be turned on or off, which may affect the local oscillator. Any hardware of the device that affects the local oscillator can be used as an operating condition.

[0031] Other examples of operating conditions include temperature, rate of change of temperature, voltage of a local oscillator or a voltage associated with a local oscillator, rate of change of that voltage, and motion of the local oscillator (such as the presence or extent of shock or vibration). Any number of operating conditions and combinations thereof may be implemented. In a specific example, temperature and rate of change of temperature may be measured, and a frequency offset value for a combination of the temperature and rate of change of temperature measurements may be stored.

[0032] An initial estimated frequency offset or an initial model from a stored data set may provide an initial condition when calculating a vector of unique frequency offsets in a local frequency reference over a plurality of consecutive time periods.

[0033] Specifically, a value located in a stored data set or output of a model can be used as a seed value or initial value, and a search window can also be defined. This has a dual benefit by increasing the likelihood that the seed value is close to the true value, and by reducing the processing power required to search all possible frequency offset values. In one example, the "seed value" is the first point in the search space to be tested in the search window of the test space.

[0034] The search window may be set to a particular narrower width based on values ​​located in a stored data set or generated by a model. For example, the width of the search window for frequency or rate of change of frequency values ​​may be set based on a percentage of previously calculated frequency or rate of change of frequency values. Alternatively, the narrower search window may have a fixed width centered on a previously calculated value. If the data set does not contain any previously calculated values ​​for the corresponding one or more operating conditions, a wider search window may be set, wherein the wider search window is wider than the narrower search window.

[0035] The use of one or more operating conditions and a stored data set or model has been described for frequency offset in a local oscillator; however, the model and / or stored data set may be applied to provide an initial estimate of the rate of change of frequency 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 respective directions of arrival of the at least one first signal may be a more favorable line of sight to the receiver than the direction of arrival of the second signal, so that the at least one second signal may be received with a better signal-to-noise ratio than the second signal. In this way, the more favorable at least one first signal is used to determine a frequency offset, which in turn may be used to correct the second local signal, thereby enabling coherence with the less favorable second signal over an extended period of time. The at least one first signal may preferably be coherently integrated within an unstable period of the local oscillator.

[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 a system performing the method.

[0038] Preferably, at least two of the plurality of consecutive time periods have durations that are different from each other. In this way, the vector can more effectively describe the evolving behavior of the local oscillator.

[0039] If the operating parameters of the positioning system indicate relatively benign conditions for the local oscillator, a longer time period may be used. On the other hand, if the operating conditions are extreme, the time period may be shorter. Extreme operating conditions may include high or low temperatures, sudden temperature changes, vibrations or sudden movements, or the use of specific applications or hardware. It has been found that these operating conditions can adversely affect the stability of the local oscillator, so countermeasures such as using a shorter time period may need to be taken.

[0040] In the absence of any external operating parameters detected, the individual length of each continuous time period can be stored in the memory of the device by default. In some embodiments, the default length of each individual time period is approximately 0.1 seconds, 0.2 seconds, 0.5 seconds, 1 second or 2 seconds.

[0041] The duration and number of consecutive time segments may be selected to minimize the number of offset calculations required while still providing adequate oscillator correction.Since calculating each offset in the local oscillator may be computationally intensive, this results in faster and more efficient vector calculations.

[0042] Each of the plurality of consecutive time periods corresponds to a time duration during which it is calculated or assumed that the local oscillator provides a stable frequency reference.

[0043] In this way, the frequency offset calculated for each continuous time period can be an accurate offset within each individual time period. Alternatively, each of the multiple continuous time periods may not correspond to the duration for which the local oscillator is calculated or assumed to be stable. For example, each continuous time period may be longer than the assumed or calculated stable time period, and interpolation may be applied between calculated values.

[0044] The combined duration of the plurality of consecutive time periods may be at least equal to an integration time period during which the second local signal and the received second signal are correlated during the step of providing the second coherent signal.

[0045] In this way, the vector can store the frequency offset in the local oscillator over the entire integration period so as to map the evolving error in the local oscillator over the entire integration period. The vector can be combined with the local frequency reference to generate a second local signal that is corrected over the entire integration period to enable coherent integration to be performed over a longer period 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 is possible to insert corrections between time periods. Thus, it is possible to increase the number of consecutive time periods or reduce the number of frequency offset measurements so that interpolation can be used between measurement points. However, this approach requires the sampling rate to be high enough to correctly characterize the trends of the frequency and frequency rate of change offsets.

[0047] Preferably, determining the preferred frequency offset based on the plurality of assumed frequency offsets comprises inserting the preferred frequency offset between two or more assumed frequency offsets of the plurality of assumed frequency offsets.

[0048] In this way, a greater number of frequency correction terms can be obtained using a less computationally intensive process than directly calculating the frequency offset. The interpolation can be applied retroactively after calculating the frequency offset corresponding to some or all of the multiple continuous time periods. In addition, the interpolation can be applied after determining that the frequency offset changes gradually, smoothly and / or predictably over some or all of the continuous time periods. The interpolation can be performed in response to determining that the operating conditions meet a threshold. The threshold can be a set of one or more criteria indicating that the operating conditions are relatively favorable for the local oscillator, i.e., the environment of the local oscillator is conducive to achieving good oscillator stability. Equivalently, if it is found that the frequency offset changes predictably, the duration of the time period within the multiple continuous time periods can be increased.

[0049] Alternatively or additionally, determining the preferred frequency offset based on a plurality of assumed frequency offsets may include selecting one of the assumed frequency offsets that may correspond to a highest or best frequency offset of the generated phase-compensated first coherent signal. In some cases, selecting one of the assumed frequency offsets may provide a sufficient frequency offset. The method may include determining whether interpolation is required.

[0050] In some embodiments, after the step of providing a vector comprising a plurality of unique frequency offsets in a local frequency reference for each of a plurality of consecutive time periods, the method may include determining additional frequency offsets and adjusting the vector based on the determined additional frequency offsets.

[0051] In one example, for each of at least one received first signal, this can be performed by: providing a third local signal using a local frequency reference; providing a third coherent signal by correlating the third local signal with each of one or more received first signals; providing a further plurality of assumed frequency offsets, and for each of the further plurality of assumed frequency offsets: providing phase compensation for the third local signal, the one or more received first signals and the third coherent signal based on the vector and a determined movement of the receiver along the corresponding arrival direction to generate a phase-compensated third coherent signal; and determining a frequency correction based on the further plurality of assumed frequency offsets and the generated phase-compensated third coherent signal; and adding the determined frequency correction to the vector in each of a plurality of consecutive time periods.

[0052] In this way, the method can correct the overall frequency error that occurs in multiple consecutive time periods. This improves the ability of the vector to correct any one of the second local signal, the second signal, or the second coherent signal, or any combination thereof. It will be appreciated by those skilled in the art that additional overall frequency rate of change offsets can also be calculated and used to adjust the calculated vector in the same manner.

[0053] In one embodiment, the method further comprises calculating a range or pseudorange from the receiver to a second remote source based on the second coherent signal.

[0054] This range or pseudorange may be combined with a plurality of other ranges or pseudoranges obtained from a plurality of remote sources to determine a position as is known in the art.

[0055] In some examples, the method can be performed at least in part in a positioning device (such as a mobile device) including a 5G modem, wherein the local oscillator is provided in the positioning device.

[0056] According to another aspect of the present invention, a system is provided, 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 a corresponding direction of arrival, and to receive a second signal from a second remote source along the direction of arrival; a motion module configured to determine the motion of the receiver; and a processor configured to: for each of the at least one first signal received: provide a first local signal using the local frequency reference; provide a first coherent signal by correlating the first local signal with the received first signal; and provide a plurality of assumed frequency offsets, and for each of the plurality of assumed frequency offsets: assume a frequency offset based on a received frequency reference along the corresponding direction of arrival. The invention relates to a method for providing a phase compensation signal for a first local signal, a received first signal and a first coherent signal based on a determined movement of a receiver to generate a phase-compensated first coherent signal; determining a preferred frequency offset based on a plurality of assumed frequency offsets in each of a plurality of consecutive time periods and the generated phase-compensated first coherent 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; providing a second local signal using the local frequency reference; providing a second coherent 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 coherent signal based on a determined movement along a direction of arrival of the received second signal and the vector.

[0057] The system may be a positioning system, and the first signal and the second signal may be positioning signals.

[0058] According to another aspect of the present invention, a method for determining frequency-related parameters of a frequency source within a receiver is provided, comprising: receiving multiple signals from multiple remote sources; generating motion-compensated correlation results using determined receiver motion, received signals, and local signals derived from local frequency sources; phase-compensating the motion-compensated correlation results using multiple phasor sequences representing frequency errors of the local frequency sources to generate phase-compensated coherent results; and jointly analyzing the phase-compensated coherent results associated with multiple remote sources to determine the frequency-related parameters of the local frequency sources.

[0059] According to another aspect of the present invention, there is provided an apparatus for performing signal correlation in a signal processing system, comprising at least one processor and at least one non-transitory computer-readable medium for storing instructions, wherein when executed by the at least one processor, the instructions cause the apparatus to include the following operations: receiving multiple signals from multiple remote sources; generating motion-compensated coherence results using determined receiver motion, received signals, and local signals derived from local frequency sources; phase-compensating the motion-compensated coherence results using multiple phasor sequences representing frequency errors of the local frequency sources to generate phase-compensated coherence results; and jointly analyzing the phase-compensated coherence results associated with multiple remote sources to determine frequency-related parameters of the local frequency sources.

[0060] According to a second aspect of the present invention, a method that can be performed in a positioning system is provided, comprising: providing a local frequency reference using a local oscillator at a receiver; receiving at least one first signal from at least one first remote source along a corresponding arrival direction; determining the 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 at least one received signal: providing a local signal using the local frequency reference; providing a coherent signal by correlating the local signal with the received signal; and providing phase compensation for at least one of the local signal, at least one received signal and the coherent signal based on the determined movement of the receiver along the corresponding arrival direction to generate a phase-compensated coherent signal; based on the phase-compensated coherent signal and the initial estimated frequency offset, dynamically adjusting the frequency offset value to determine a preferred estimated value 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 the preferred frequency offset (which corresponds to a more accurate determination of the offset in the local oscillator calculated using the at least one signal). This enables a more efficient determination of the preferred estimate.

[0062] The determination of the initial estimated frequency offset may be performed in a number of ways.The method may determine the initial estimated frequency by comparing one or more determined operating conditions to a frequency offset previously calculated for the same or similar operating conditions.

[0063] In one example, such a comparison can be performed using a stored data set from which frequency offsets previously calculated under the same or similar operating conditions can be retrieved. In another example, the comparison can be performed using a model configured to predict the frequency offset in the local oscillator based on the determined system operating conditions. The model can take one or more determined operating conditions as input and output a frequency prediction or estimate. The model can be a neural network or machine learning model or algorithm, 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 the calculation of the preferred frequency offset and their corresponding determined operating conditions. In another example, a lookup table can provide input to the model, or can be used to continuously retrain the model when the lookup table is updated.

[0064] The one or more operating conditions may be determined using sensors that measure physical variables that enable calculation of relevant parameters such as temperature. Alternatively or additionally, where the one or more operating conditions include an operating state of a component, the determination of whether a component is on or off may be performed using control logic without a sensor.

[0065] Preferably, the method further comprises the step of providing the preferred estimate of the frequency offset and the corresponding one or more determined operating conditions to the stored data set. In this way, the method can establish a lookup table indicating the frequency offset values ​​during 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 close to the true value during any particular observation.

[0066] The measured frequency offset values ​​may be stored directly in the data set so that the stored values ​​represent the most recently measured values. Alternatively, the stored values ​​may represent an average value based on all observations, such as a calculated average value. In this way, the stored data set may be updated so that it represents a moving average. The data set may be stored locally in the device, or remotely in a distributed network.

[0067] Advantageously, said one or more operating conditions comprise physical variables or parameters of a local oscillator.

[0068] The physical properties of the local oscillator, such as temperature or its inertial state, affect the stability of the local reference signal generated by the local oscillator. Therefore, measuring the operating condition as a physical variable or parameter of the local oscillator means that the operating condition may be particularly relevant for calculating the frequency offset.

[0069] Preferably, the one or more operating conditions include one or more of temperature, rate of change of temperature, operating state, determined motion, or an indication of whether a component in the system is on or off. In this way, the one or more operating conditions may represent a more complete characterization of conditions affecting the local oscillator. In one example, the one or more operating conditions may 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 may also include whether the temperature is rising or falling. This is because the oscillator can exhibit temperature hysteresis, that is, at a given temperature, its behavior may be different depending on the most recent or historical temperature of the oscillator. In one example, each temperature value may have two corresponding frequency offset entries in the stored data set. One offset entry may correspond to the time when the oscillator is at a corresponding temperature and the temperature is rising, while another offset entry may correspond to the same temperature but the time when the temperature is decreasing. In this way, the stored data set can be configured to take into account the temperature hysteresis effect in the local oscillator. Similarly, two frequency change rate (or any other phase or frequency correction term) entries may be stored for each temperature.

[0071] Other measured operating conditions may include the rate of change of temperature, data from inertial sensors, information about other processing operations being performed in the device or other applications being used, whether the device's screen is on, and many other factors. In this way, a multi-dimensional lookup table can be generated that indicates the frequency shifts historically observed under different operating conditions. This lookup table is very useful because the repeatability of the measurements is high. Therefore, the observed frequency shift is likely to be close to the frequency shift previously observed under similar operating conditions.

[0072] In another example, the lookup table may include a list of operating condition measurements or determinations 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 condition includes determining whether a component in the system is turned on or off. The component may be any hardware or application in the system. The component may be related to the system or unrelated to the system. For example, the component may be a wireless interface or a touch screen of a handheld device near a local oscillator.

[0075] The method may include taking remedial action based on the determined one or more operating conditions to mitigate the operating condition that negatively affects the stability of the local oscillator. For example, the remedial action may be to reduce the power consumption of the component or completely shut down one or more components in the component. Any suitable remedial action may be implemented.

[0076] Preferably, the method further comprises the steps of determining, at a later time, one or more subsequent operating conditions of the system and providing, from a stored data set, a frequency offset corresponding to the one or more subsequent operating conditions as an initial estimated frequency offset for performing the step of dynamically adjusting the frequency offset to determine a preferred estimated value of the frequency offset in a local frequency reference.

[0077] This can improve computational efficiency because dynamic adjustments can be performed more quickly when it is seeded with accurate initial conditions. In this case, the known initial condition is more accurate because it is based on observations of the local oscillator's behavior under similar operating conditions in previous time periods.

[0078] Preferably, the method further comprises: determining an initial estimated rate of change offset of a frequency in a local frequency reference based on the one or more operating conditions; and dynamically adjusting the value of the rate of change offset of the frequency based on the phase compensated coherent signal and the initial estimated rate of change offset of the frequency to determine a preferred estimate of the rate of change offset of the frequency in the local frequency reference. In this manner, a preferred (i.e., more accurate) estimate of the rate of change offset of the frequency in the local oscillator may also be calculated more efficiently because it may be seeded with an initial estimate based on similar operating conditions in a previous time period.

[0079] Preferably, the method further comprises the steps of, at a later time, 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 estimated value of the frequency rate offset in the local frequency reference, in such a way that a previous calculation of the frequency rate offset may also be stored and provided later to provide an accurate seed value for determining the preferred frequency rate offset.

[0080] Preferably, the step of determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions is performed using a model configured to predict the frequency offset in the local oscillator based on the one or more operating conditions. In this way, the initial frequency estimate can be determined. Using a model in this mode may also be referred to as "predictive control". The model may 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 retrained based on the calculation of frequency offsets and their corresponding determined operating conditions. Thus, the method may include the further step of updating the model based on the preferred frequency offset value and the determined one or more operating conditions. The model may also be used to predict the rate of change of frequency offset, or any other high order correction term in addition to the frequency offset.

[0082] In another example, a lookup table may provide input to the model.

[0083] A search window for a preferred estimate of frequency offset may be defined based on the initial estimated frequency offset. Likewise, a search window for a preferred estimate of frequency rate of change offset may be defined based on the estimated frequency rate of change offset.

[0084] In the process of searching for an estimate of the frequency offset, multiple candidate values ​​may be "tested" and the best fit selected. The process of testing candidate values ​​is computationally intensive, so it is advantageous to reduce the task as much as possible. By using the estimated frequency offset (which may be provided from a stored data set or output from a model) it is possible to start the search process with confidence that the initial value is already very close to the expected true value.

[0085] The search window may be defined based on fixed values ​​greater than and less than an initial estimate. In one arrangement, the search window may be defined based on a percentage value of estimated frequency offset values, such as in a stored data set or generated from a model. In one example, where the stored frequency offset values ​​are based on an average, the search window may be defined based on a specific number of standard deviations from the average. This may help focus the search space on the most likely frequency offset values, based on previous measurements, reducing computational load by avoiding computations associated with frequency offset values ​​that are statistically unlikely to occur.

[0086] A search window for a preferred estimate of the frequency rate offset may be defined based on the initial estimated frequency rate offset.

[0087] In this way, there can be a two-dimensional search window in frequency and frequency rate of change. Reducing the size of this search window is very beneficial for improving computational efficiency.

[0088] In some embodiments, the one or more signals received are positioning signals generated by one or more remote positioning sources. As described elsewhere, the one or more signals received may be generated using a known or predictable frequency. The positioning source may be selected to have a sufficiently strong signal-to-noise ratio to perform phase compensation on the positioning signal during a short unstable period of the local oscillator. This may enable frequency or frequency rate of change offset calculations to be performed for unstable periods of time. In this way, the calculated offsets may be applied to the coherence of weaker received signals or positioning signals from different remote sources that otherwise would not be coherently integrated within the required integration period.

[0089] The step of dynamically adjusting may be performed in a variety of ways.A frequency offset value may be adjusted based on the phase compensated coherent signal and the initial estimated frequency offset using any suitable method to determine a preferred or more accurate estimate of the frequency offset in the local frequency reference.

[0090] In a specific example, for each of at least one first signal received, the method further includes: providing a plurality of assumed frequency offsets based on the estimated frequency offset, and for each of the plurality of assumed frequency offsets: performing a step of providing phase compensation for at least one of the local signal, the received signal and the coherent signal based on the determined movement of the receiver along the corresponding arrival direction to generate a phase-compensated first coherent signal; and the step of dynamically adjusting includes determining a preferred estimated frequency offset based on the plurality of assumed frequency offsets and the generated phase-compensated coherent signal. More preferably, determining the preferred estimated frequency offset based on the phase-compensated coherent signal is performed by combining the phase-compensated coherent signals generated for each of the plurality of received signals for each assumed frequency offset. The method may also include determining the assumed frequency offset corresponding to the highest combined correlation.

[0091] In this way, the preferred estimated frequency offset can be calculated in the same manner as the first aspect of the present invention. In one example, the amount, range and / or mode value of the assumed frequency offset can be selected based on the initial estimate. This allows the search space represented by the assumed frequency offset to be smaller because the initial estimated frequency offset may be close to the preferred or more accurate frequency offset of the local oscillator.

[0092] Preferably, the method further comprises correcting a 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 effectively corrected.

[0093] The step of determining one or more operating conditions may include determining a plurality of operating conditions, and updating the stored data set or model may include updating the stored data set or model based on a 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 to determine a starting estimate of the frequency and / or frequency rate of change offset. The use of more operating conditions means that the approximate behavior of the local oscillator can be predicted more accurately, which means that less computationally intensive best fit frequency offset searches need to be performed. In one example, considering multiple operating conditions can enable a narrower search window to be defined because the approximate behavior of the local oscillator can be predicted with greater confidence using more measurement data and different types of measurement data.

[0095] In some examples, the method may be performed at least in part in a positioning device (such as a mobile device) that includes a 5G modem, wherein the local oscillator is provided in the positioning device or the modem.

[0096] The alternatives and embodiments discussed in accordance with the first aspect of the invention may generally be combined with the embodiments discussed in accordance with the second aspect of the invention.

[0097] According to another aspect of the present invention, a system is provided, 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 a corresponding arrival direction; a motion module configured to determine the 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 at least one received signal: provide a local signal using the local frequency reference; provide a coherent signal by correlating the local signal with the received signal; and based on the movement of the receiver determined along the corresponding arrival direction, provide phase compensation for at least one of the local signal, at least one received signal and the coherent signal to generate a phase-compensated coherent signal; based on the phase-compensated coherent signal and the initial estimated frequency offset, dynamically adjust the frequency offset value to determine a preferred estimated value of the frequency offset in the local frequency reference.

[0098] The system may be a positioning system, and the received signal may be a positioning signal.

[0099] According to another aspect of the present invention, a method for determining frequency-related parameters of a frequency source within a receiver is provided, comprising: receiving multiple signals from multiple remote sources; generating motion-compensated coherence results using determined receiver motion, received signals, and local signals derived from local frequency sources; phase-compensating the motion-compensated coherence results using multiple phasor sequences representing errors in the frequency-related parameters of the local frequency source to generate phase-compensated coherence results; predicting the frequency-related parameters using predictive control; and jointly analyzing the phase-compensated coherence results associated with multiple remote sources to determine the frequency-related parameters of the local frequency source.

[0100] According to another aspect of the present invention, there is provided an apparatus for performing signal coherence in a signal processing system, comprising at least one processor and at least one non-transitory computer-readable medium for storing instructions, which, when executed by at least one processor, causes the apparatus to perform operations including: receiving multiple signals from multiple remote sources; generating motion-compensated coherence results using determined receiver motion, received signals, and local signals derived from local frequency sources; phase-compensating the motion-compensated coherence results using multiple phasor sequences representing frequency errors of the local frequency sources to generate phase-compensated coherence results; defining frequency errors using predictive control; and jointly analyzing the phase-compensated coherence results associated with multiple remote sources to determine frequency-related parameters of the local frequency source. BRIEF DESCRIPTION OF THE DRAWINGS

[0101] Embodiments of the present invention will now be described by way of example with reference to the accompanying drawings, in which:

[0102] Figure 1 is a schematic diagram of a positioning system according to an embodiment of the present invention;

[0103] Figure 2 is a schematic diagram of a control system of a positioning device in a positioning system according to an embodiment of the present invention;

[0104] Figure 3A is a schematic flow chart of a method for performing positioning calculation according to an embodiment of the present invention;

[0105] Figure 3B is a method for performing positioning calculation according to an embodiment of the present invention Figure 3A Continuation of the method;

[0106] Figure 4A is a schematic flow chart of a method for creating and calculating a frequency offset vector according to an embodiment of the present invention;

[0107] Figure 4B is a method for creating and calculating a vector according to an embodiment of the present invention. Figure 4AContinuation of the method; and

[0108] Figure 5 is a diagram illustrating a search space for calculating frequency and frequency rate offsets according to an embodiment of the present invention. DETAILED DESCRIPTION

[0109] The following example embodiments and methods are described with respect to a positioning system. However, in an example alternative, the method can be used to perform channel estimation in a communication system. It is contemplated that other types of systems configured to determine values ​​using unstable local oscillators can employ the method of the present invention. In such cases, the positioning signal described below can be replaced more generally with other types of signals.

[0110] Figure 1 1 is a schematic diagram of an environment in which the method and positioning system of the present invention can be used to provide a positioning solution. The positioning system 1 includes a positioning device 100, which includes an antenna 102 configured to receive signals from a remote reference source. In this example, the positioning device 100 of the user 10 receives radio signals from remote reference sources including a first satellite 2, a second satellite 4, a third satellite 6, and a remote ground source 8 via the antenna 102. A high-rise building 12 divides the line of sight from the positioning device 100 to the third satellite 6 and the ground source 8 into two. The building 12 attenuates the signals from the third satellite 6 and the ground source 8, making the signals weaker, thereby making it more difficult for the positioning device 100 to obtain an accurate position measurement. The same building 12 can also provide a path for the reflected signal from the first satellite 2 to the antenna 102.

[0111] The remote reference source, alternatively 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.

[0112] Figure 2 A schematic diagram of a positioning device 100 is shown. In this example embodiment, the positioning device 100 includes an antenna 102, a receiver 104 connected to the antenna 102, a local oscillator 106, a controller 108, a memory 110, a motion sensor 112, and a temperature sensor 114.

[0113] Receiver 104 is configured to process signals received by antenna 102 and may include any suitable components such as an amplifier or an analog-to-digital converter.

[0114] The local oscillator 106 is typically simple and low cost, and in one example may include a quartz oscillator. The local oscillator 106 is configured to provide timing signals for various applications in the positioning device 100.

[0115] The controller 108 is configured to control the operation of the electronic components of the positioning device 100, including Figure 2 The components shown and other components (such as a touch screen) in the positioning device 100 that are not directly related to the positioning system 1. In this example, the controller 108 includes a single processor that operates multiple modules, which will be further described below, and these modules are configured to perform specific functions. In other embodiments, the modules can be individually equipped with different related processors, or can be provided in a distributed manner across a network.

[0116] 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 of various modules of the controller 108 .

[0117] The motion sensor 112 may include a plurality of individual motion and / or orientation sensors (such as an inertial sensor, a gyroscope sensor, or a magnetometer). The temperature sensor 114 is configured to determine the temperature and / or the rate of change of the temperature of the local oscillator 106, and may therefore 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 in lieu of the temperature sensor 114, other sensors for measuring operating parameters of the positioning device 100 or determining operating conditions of the positioning device 100 may be provided.

[0118] The controller 108 includes a plurality of modules, including a reference source selector 116, a local signal generator 118, a coherent device 120, a motion determination module 122, a local oscillator offset calculator 124, a phase compensation module 126, a stable time period determination module 128, a positioning calculator 130, and a prediction model 134. The memory 110 stores a lookup table 132 and prediction data 136 for the prediction model 134. The functions of these modules of the controller 108 and the lookup table 132 are further described below with reference to FIGS. 3-5 .

[0119] The positioning device 100 may be configured as a smartphone, a laptop computer, or any other type of device capable of determining a location.

[0120] Usually, if Figure 1The reference source shown uses a high-quality oscillator such as an atomic oscillator. Compared with the local oscillator commonly found on handheld positioning devices (such as smartphones), this high-quality oscillator operates within a much narrower frequency window. In other words, compared with many low-quality oscillators, high-quality oscillators are more accurate and operate within a much lower frequency tolerance. This allows the reference source to provide a consistent and reliable frequency reference signal, thereby generating a consistent and reliable positioning signal using the frequency reference signal. In addition, the stability of the reference source local oscillator enables the positioning device 100 to store, look up, or assume the frequencies of the reference signals provided by those reference sources with a high degree of accuracy compared to the "actual" reference signal.

[0121] like Figure 1 As shown, tall buildings can attenuate the signal from the reference source because they block the line of sight between the reference source and the positioning device 100. This may reduce the signal-to-noise ratio of the positioning signal received from the reference source. In some cases, the resulting signal strength may be too low to be used for positioning calculations unless the signal is integrated over a relatively long period of time (possibly up to 1 second or longer) during coherence. Integration over a longer period of time enables the positioning device 100 to effectively increase the signal-to-noise ratio of the received signal to a sufficient level to obtain an accurate position fix from the reference source. Similar problems may occur in the presence of reflected signals and where it is difficult for the receiver to distinguish the line-of-sight signal from the reflected signal.

[0122] However, in this example, the local oscillator 106 is only stable for a period of time 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 to use known techniques such as Supercorrelation. TM ) becomes difficult or impossible to perform coherent integration over the entire integration period. In other words, previous methods could not perform coherent integration over a long enough time period while achieving a position lock from a weak positioning signal using a poor quality oscillator.

[0123] In more detail, in coherence, the local signal generator 118 uses the local frequency reference provided by the local oscillator 106 to generate a local signal that attempts to replicate the positioning signal received from the reference source. The coherence may involve integrating these signals over a longer period of time to improve the results of the coherence. However, in order for this to work, the local frequency reference must remain stable over the integration period because the local signal is generated using this local frequency reference. This means that any error in the local frequency reference (i.e., a difference in the known or predictable frequency reference signal used to generate the positioning signal relative to the reference source) will propagate to the local signal. Therefore, if the local oscillator 106 is unstable over the integration period, then using known methods, the local signal will also be unstable over the integration period.

[0124] Phase compensation is a technique that can be applied to improve weak signal detection. Phase compensation involves correcting a signal involved in the coherence or one of the resulting signals of the coherence based on the motion of the receiver 104 along the line of sight to the localized source. However, phase compensation is only useful if it is applied using a stable frequency reference from a local oscillator. When applied to shorter signal segments corresponding to a shortened time period of oscillator stability, phase compensation may not be a sufficient countermeasure for detecting weak signals. Therefore, in the case where the local oscillator is only stable for a time period less than the required integration time period, known methods cannot utilize phase compensation. Phase compensation is sometimes referred to as "motion compensation" because adjusting the phase of the received or generated signal can be used to offset the effect of relative motion between the source and the receiver on the coherence.

[0125] As another complicating factor, the stability of the local oscillator 106 varies under different operating conditions and may fluctuate even under constant operating conditions. Temperature is an example of an operating condition that may affect the stability of the oscillator. Problematically, some newer sports devices are equipped with 5G modems, which have been found to generate significantly more heat than modems of previous generations of telecommunication standards. In some cases, the heat from the 5G modems can heat the local oscillator 106 to a temperature range where the local oscillator 106 is more unstable. Local oscillators commonly found on sports devices are not adequately configured to compensate for the effects of the additional heat from these 5G modems. As a result, some newer sports device models experience reduced performance when performing positioning calculations.

[0126] Figure 3A and 3B A schematic flow chart of a method 300 is shown, which may be performed by Figure 1 and Figure 2 The positioning system 1 is implemented to determine the precise position of the positioning device 100 when the local oscillator 106 is unstable.

[0127] 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 to generate other signals (e.g., positioning signals) with a desired frequency. For example, the local frequency reference can be a sine wave, a square wave, or other forms of timing signals. The local frequency reference will typically deviate from a "true" frequency reference based on universal time, or from a frequency reference provided by a high-fidelity oscillator such as an atomic clock. This means that the local frequency reference inevitably contains time-varying errors or "offsets."

[0128] In step S304, the receiver 104 may optionally receive one or more frequency reference signals from a plurality of reference sources (including satellites 2, 4, 6 and ground source 8) via the antenna 102. Each reference source has a highly stable local oscillator that is more stable than the local oscillator 106 of the positioning device 100. The highly stable local oscillator may be based on an atomic clock.

[0129] In step S306 (also optional), the reference source selector 116 selects a particular reference source (from which the frequency reference is received). The reference source selector 116 may select any suitable available reference source. The reference source selector 116 may be configured to select a reference source that provides a 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 that provides the frequency reference signal 14. The first satellite 2 may provide good signal strength because its current position is close to the apex of the receiver 102, enabling it to provide a line of sight that avoids the tall building 12. The reliability of the local oscillator of the first satellite 2 means that the received reference signal 14 has a known or predictable frequency. The known frequency may be stored in the memory 110 or retrieved from an online database by the positioning device 100 via an Internet connection.

[0130] A known or predictable frequency reference provided by a high-quality oscillator is used to generate a positioning signal. Therefore, the received frequency reference can be included in the positioning signal from such a reference source, or can be derived from the positioning signal. For this reason, it may not be necessary to receive a frequency reference signal independent of the positioning signal as in this example. On the contrary, the error in the local oscillator 106 can be determined relative to the frequency included in the positioning signal (or used to generate). It is possible to determine the frequency used to generate the positioning signal by analyzing the positioning signal using known techniques. Of course, determining the offset in the local frequency reference relative to the frequency reference included in the positioning signal and determining the offset relative to the frequency reference received separately will be an alternative method.

[0131] In step S308, the stabilization time period determination module 128 determines that the local oscillator 106 is a stable time period, or is assumed to be a stable time period, which can be referred to as a "stabilization time period" of the local oscillator 106. In general, the stability of the local oscillator 106 is affected by the specific operating conditions of the local oscillator 106. For example, when the local oscillator 106 is at a higher temperature, or when the touch screen of the positioning device 100 is in operation (for example, due to heating or electromagnetic effects), the stabilization time period may be shorter. Therefore, the stabilization time period can be calculated based on the measurement of an operating parameter during each positioning calculation. The operating parameter is a numerical representation of an operating condition (such as temperature or screen state). However, for the sake of brevity, the terms operating condition and operating parameter can be used interchangeably in this article.

[0132] In this example, the operating parameters are measured by the temperature sensor 114 or the controller 108 and other sensors to determine or characterize the operating condition of the local oscillator 106. The calculation can be based on a formula that can be stored in the memory 110 and used by the stable time period determination module 128 to determine the required stable time period during each positioning calculation. Alternatively, the formula can be stored remotely and executed by a remote processor in a distributed system over a network. In another example, the determination of the stable time period can be calculated using a prediction model 134, as described in further detail below.

[0133] In other examples, the stabilization time period can be set to a fixed duration, such as 0.1 or 0.2 seconds. The fixed duration can be based on the specifications of the local oscillator 106 included in the positioning device 100. The fixed stabilization time period can be stored in the memory 110. Using a fixed stabilization time period assumption rather than calculating the stabilization time period can reduce processing requirements. It is contemplated that other methods of calculating or determining the stabilization time period can be implemented.

[0134] Whether the stabilization period is set to a fixed duration or calculated based on measured operating conditions, it may be desirable to assume that the stabilization period is as long as possible while still producing good results. This can minimize the number of individual frequency offsets that must be calculated in subsequent steps.

[0135] In step S310, the receiver 104 receives at least one positioning signal from a remote source 2, 4, 6, 8. In this example, the reference source selector 116 selects the positioning signal 14 from the first satellite 2 and the positioning signal 18 from the second satellite 4, which may be collectively referred to as "first" signals. In this example, the first signal includes two separate signals from two corresponding remote sources along respective directions of arrival. In other embodiments, the method 300 may be performed using only one of the positioning signal 14 or the positioning signal 18, or advantageously, three or more signals.

[0136] In step S312, the motion determination module 122 uses the data provided by the motion sensor 112 (which may include multiple measurements from different configurations of motion and / or orientation sensors) 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 one or more positioning sources (in this case, the first satellite 2 and the second satellite 4), and 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 motion component of the receiver 104 along the line of sight of the first satellite 2 and the second satellite 4.

[0137] In particular, the motion of the receiver 104 during each of a plurality of consecutive stable time periods (during which the local signal will be coherently analyzed in a later step) is determined. In general, the speed, direction, and acceleration of the receiver motion may change between each consecutive time period. These changes are tracked by the motion sensor 112 so that the specific motion during a specific stable time period can be known and used in subsequent calculations.

[0138] The motion may be measured directly using the motion sensor 112. Alternatively, the motion may 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 in a straight direction at a fixed speed (e.g., while driving or on a train), it may be possible to assume this motion based on calculations. In some cases, this may be simpler or less computationally intensive than performing measurements.

[0139] The motion of the receiver 104 (or equivalently, the antenna 102) can be determined by measurements of the receiver's motion (e.g., using one or more measurements of a gyroscope, magnetometer, speed, pedometer, etc.) or by assuming the receiver's motion based on past motion (e.g., constant motion in a particular direction due to vehicle travel or repetitive motion due to pedestrian travel). Additionally, motion can be inferred or calculated based on previous motion in a particular environment. In such cases, machine learning techniques can be used to predict the receiver's motion.

[0140] In step S314, the local oscillator offset calculator 124 creates an empty offset vector. In this example, the local oscillator offset calculator 124 creates a vector v as an (mx2) matrix to store frequency offset values ​​from N=1 to N=m, as shown in equation (1) below, where N represents a particular stable time period. In this case, m is the total number of consecutive stable time periods whose sum is greater than or equal to the required integration time period, which will be further described below in step S322. The vector consists of a series of frequency offset and frequency rate of change offset "value pairs" These offset values ​​represent the offset in frequency and the time derivative of frequency (i.e., the “rate of change of frequency”) between the local signal reference generated in step S302 using the local oscillator 106 and a known or predictable frequency (the known or predictable frequency may be a frequency derived from a positioning signal or a separate frequency reference). Thus, the vector stores m pairs of offsets for m consecutive stable time periods.

[0141]

[0142] The adjacent value pairs in the vector (separated by semicolons in Equation 1) correspond in real time to adjacent, consecutive stable time periods of the local oscillator 106. Each value pair characterizes the error in the local oscillator 106 during a particular stable time period of the local oscillator 106. Thus, each offset provides an accurate correction within a given stable time period. Thus, the vector characterizes the frequency offset over an extended time period to map the evolving error in the local frequency reference over the extended time period.

[0143] In other examples, the offset vector may be represented by phase and phase rate of change offsets, instead of (and equivalent to) frequency offsets. In the above example, the offset vector uses only frequency and frequency rate of change offsets; however, in addition to providing more accurate correction of the local oscillator 106, higher order time derivative offsets may also be used. It has been found that using only the first order time derivative of phase or frequency provides a sufficient level of correction without overly burdening the controller 108 in terms of processing load. However, to further reduce the processing load, the method 300 may also be performed without considering the time derivative offset and using only the zero order frequency or phase offset (although this approach would require reducing the duration of the stabilization period of the local oscillator).

[0144] In other examples, the offset vector can be divided into a first vector of frequency offsets in each stable time period and a second vector of frequency change rate offsets in each stable time period. In other embodiments, vectors of other combinations and dimensions can be used.

[0145] In step S316, the local oscillator offset calculator 124 calculates the corresponding frequency offset and frequency rate of change offset between the local frequency reference and the known or predictable frequency for each unstable time period in the offset vector (in this example for N=1 to N=m). The local oscillator offset calculator 124 then populates the vector initialized in step S314 with each calculated offset. This results in a complete offset vector that maps the error in the local reference signal over multiple consecutive time periods. In other examples, the vector may be populated as each individual value pair is calculated.

[0146] The following will refer to Figure 4A and 4B A method of performing this calculation is discussed in more detail. In short, the method uses the received first signal and involves generating a first local signal and adjusting the first local signal based on various estimated local oscillator 106 offset values. A set of first coherent signals is provided by correlating each first positioning signal (in this example, positioning signal 14 and positioning signal 18) with the first local signal. Phase compensation is applied to the first coherent signal, and the offset value that generates the best coherent result provides the true offset in the local oscillator 106.

[0147] Figure 3A The positioning method is Figure 3B Continue.

[0148] In step S317, another positioning signal is received, which may be referred to as a "second positioning signal" and is typically weaker or more attenuated than the first positioning signal (i.e., received with a lower signal-to-noise ratio). In this example, receiver 104 receives positioning signal 16, which has a low signal-to-noise ratio due to attenuation by high-rise building 12. Therefore, positioning signal 16 must be processed using phase compensation in order to effectively coherent. As will be appreciated by those skilled in the art, receiving the second positioning signal may occur at any previous time in the method, such as in step S310 with positioning signal 14 and positioning signal 18.

[0149] In step S318, the local signal generator 118 generates a second local signal using a local frequency reference (which is corrected using an offset vector). Corrections based on the offset vector may be applied to the local frequency reference using known correction techniques for correcting timing signals. The correction techniques may be based on the received frequency reference and its known or predictable frequency. Corrections may also be applied directly to the second local signal, or may be dependent on the second local signal or other signals used in conjunction with the second local signal, as discussed in further detail below.

[0150] The second local signal is generated using the corrected local frequency reference, so the correction is propagated to the second local signal. In this way, once the correction is applied, the local signal generator 118 generates the second local signal over an extended period of time, which benefits from the increased stability of the local oscillator. This improved second local signal enables coherent correlation to occur over an extended period of time between a more attenuated positioning signal (e.g., positioning signal 16) and the second local signal, thereby improving the signal-to-noise ratio of the coherent signal. This enables the pseudorange to be determined from the third satellite 6, even though the positioning signal 16 has attenuated.

[0151] exist Figure 3A and 3B In the example method of , the vector is used to apply a frequency correction to the second local signal. This adjusts the second local signal so that it corresponds more closely to the positioning signal 16, thereby improving the coherence between the second local signal and the positioning signal 16 over the required integration time period. It will be appreciated by those skilled in the art that in other embodiments, different oscillator corrections may be applied to the received positioning signal 16 instead. In this case, the vector will be used to adjust the positioning signal 16 to more closely match the second local signal, which will have the same effect of improving the final coherence between the positioning signal 16 and the second local signal. Similarly, the frequency correction may be applied directly to the coherent signal generated by the coherence of the second local signal and the positioning signal 16 in the subsequent step S322, or may be applied to any combination of the second local signal, the received positioning signal 16, and the coherent signal of step S322. In step S320, the phase compensation module 126 performs phase compensation on the second local signal. This includes adjusting the second local signal to account for changes in the received positioning signal 16 due to the relative motion between the receiver 104 and the third satellite 6 along the line of sight. In other examples, phase compensation may alternatively be performed on the received positioning signal 16 or on a coherent signal generated by cohering 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.

[0152] By providing a 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 that direction. Therefore, the line-of-sight signal between the receiver 104 and the third satellite 6 will receive gain in preference to reflected signals received in different directions (e.g., reflected signals from nearby buildings). In a GNSS receiver, this can result in a significant improvement in positioning accuracy and a better estimate of the signal phase because non-line-of-sight signals (e.g., reflected signals) are significantly suppressed. Applying phase compensation ensures that the highest coherence can be achieved for the line-of-sight signal, even if the absolute power of the signal is less than the absolute power of the non-line-of-sight signal. However, even in the absence of a reflected signal, applying phase compensation will improve the signal-to-noise ratio of the received positioning signal, enabling more accurate positioning calculations.

[0153] 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 coherent signal. In general, the received positioning signal may include any known or unknown transmission information pattern, whether 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 can be encoded with a chipping code that can be used for ranging. Examples of such received signals include GPS signals, which include Gold codes encoded in radio transmissions. Another example is an extended training sequence used in GSM cellular transmissions.

[0154] Performing coherence involves integrating the first local signal and the positioning signal 16 over an "integration time period". This approach requires the use of a local oscillator that is stable over the integration time period to generate the second local signal. Using method 300, coherent integration is possible despite the instability of the oscillator 106. Different errors in the local oscillator 106 are identified and corrected between integration time periods. The second local signal can then be constructed in different segments, each with different local oscillator correction terms in different time periods. Therefore, despite the poor stability of the local oscillator 106 and poor signal strength, phase compensation can be applied to the second local signal over the entire integration time period because the second local signal can now be coherently integrated.

[0155] The integration time period may be determined by the correlator 120 based on the signal-to-noise ratio of the received signal, or may be set to a sufficiently long duration (such as 0.5 seconds, 1 second, 2 seconds, or longer) to detect weak signals.

[0156] In step S324, the positioning calculator 130 calculates a positioning range or pseudorange associated with the third satellite 6 based on the coherence result in step S322. As is known in the art, the precise position 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.

[0157] The controller 108 performs joint estimation during the phase compensation process in step S316 to directly determine the values ​​of frequency offset and frequency rate of change offset. As described in WO 2019 / 063983, when performing phase compensation coherence, different values ​​of frequency offset and frequency rate of change offset can be tested in a two-dimensional search space. This can allow the frequency and frequency rate of change offset to be accurately determined in step S316. This method is preferred because it is considered to be more accurate than determining the difference between the frequency of the local oscillator and the frequency of the reference source. For strong signals (such as "first" positioning signals 14 and 16), it is possible to perform phase compensation in a short period of time, which is equal to the stable period of the local oscillator 106. Therefore, in order to determine the values ​​of frequency and frequency rate of change offset, a joint estimation process can be applied to a stronger signal in this short period of time. These values ​​can then be used directly in step S316.

[0158] In step S326, the controller 108 returns to the previous step S302 to perform steps S302 to S324 for the additional sources from which the receiver 104 receives positioning signals, although in practice these steps are typically performed in parallel.

[0159] In step S328 , the positioning calculator 130 calculates the position of the positioning device 100 using the at least four determined distances.

[0160] Figure 4A and 4B An example method 400 for performing steps S314 and S316 of method 300 is shown. Specifically, Figure 4A and 4B A flow chart of a method of calculating an offset between a known or predictable frequency and a local frequency reference generated using the local oscillator 106 is shown.

[0161] In step S402, the method 400 begins with the local oscillator offset calculator 124 determining the number of consecutive stable time periods required to match or exceed the integration time period required for performing accurate correlation. This can be determined by the stable time period determination module 128 using the stable time period calculated in step S308. The required integration time period can be dynamically adjusted based on, for example, the signal-to-noise ratio of the received positioning signal 16. For a poor signal-to-noise ratio, the required integration time period may be longer. Alternatively, the required integration time period can be set to a fixed value stored in the memory 110, which is long enough to enable very weak positioning signals to be correlated. The local oscillator offset calculator 124 can calculate the required size of the offset vector or "offset vector" by determining the number of stable time periods whose sum is greater than or equal to the required integration time period. In this example, the local oscillator offset calculator 124 determines that m stable time periods are required and initializes the offset vector with a length (mx2) accordingly.

[0162] In step S404, the local oscillator offset calculator 124 initializes a loop to perform steps S406 to S426 multiple times so that a unique error in the local frequency reference and an error in the local oscillator 106 can be determined for each consecutive stable time period. Specifically, the local oscillator offset calculator 124 initializes the loop to iterate m times and determines a specific frequency and frequency rate offset value in each iteration.

[0163] In general, the specific error of the local oscillator 106 in a given time period is related to the operating conditions of the local oscillator 106 in the time period. For example, when the local oscillator 106 is hot, or when the positioning device 100 is shaken or vibrated by external forces, the local oscillator 106 may tend to provide a local frequency reference that is too high. In another example, when certain components of the positioning device 100 are in operation, the local oscillator 106 may tend to provide a local frequency reference with a lower than average frequency. Therefore, the local oscillator 106 may not be truly unstable because its instability is somewhat predictable based on its environment. In general, these environmental operating conditions may change between stable time periods. The present invention utilizes these considerations in steps S406 to S412 to reduce the processing load involved in determining a specific offset in a specific stable time period.

[0164] In step S406, the local oscillator offset calculator 124 determines the operating conditions of the local oscillator 106 during the specific stable time period (for which the frequency offset is currently being calculated). For example, the local oscillator offset calculator 124 can use continuous measurements made by the temperature sensor 114 and / or the motion sensor 112 to establish the operating conditions of the local oscillator 106 during the relevant time period. In a subsequent step, it is possible to 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 predict or initially estimate the frequency offset.

[0165] In return Figure 4A and Figure 4B Before describing method 400 , more details regarding the form and operation of lookup table 132 and prediction model 134 will now be provided.

[0166] As described above, specific errors in the local oscillator 106 are affected by its environment and operating conditions, but are generally not determined solely by its environment and conditions. Therefore, storing previously calculated offsets in the lookup table 132 enables subsequent offset calculations to benefit from knowing how the local oscillator 106 performed under similar conditions in the past. The lookup table 132 is used in steps S408 to S410 to reduce the processing load involved in calculating the error in the local oscillator 106 by taking into account previous offsets in the local frequency reference provided by the local oscillator 106.

[0167] The lookup table 132 is a data set configured to store frequency or phase offsets measured during previous use of the positioning device 100 under specific operating conditions. In this embodiment, the lookup table 132 is a multi-dimensional array that stores calculated frequency and frequency rate offset value pairs corresponding to specific operating conditions.

[0168] Certain operating conditions, such as whether a particular component of the positioning device 100 (e.g., a touch screen or a wireless interface) is in operation, can be characterized by a binary operating parameter. For example, a touch screen can only be turned on or off, and the value of the operating parameter can take the value 1 or 0. Other types of measurements, such as the vibration level of the local oscillator 106 or the temperature, can be continuous. For these continuous variables, the lookup table 132 can be configured to use a bin width so that the measurements of the operating conditions within the bin width are correspondingly considered to be the same measurement for the purpose of storing the associated offset calculation. This may help keep the lookup table 132 at a manageable length and, therefore, a manageable storage size. In other embodiments, the lookup table 132 can be configured so that some dimensions of the lookup table have a length corresponding to the sensor resolution. For example, the dimension of the lookup table 132 corresponding to temperature can have a length equal to the measurement range of the temperature sensor 114 divided by its resolution. This will allow a pair of offsets to be stored for each possible sensor value.

[0169] In one specific example, the local offset calculator 124 may determine a specific error in the local frequency reference generated by the local oscillator 106 under the following operating conditions: the local oscillator temperature is 20° C., the screen is in the “on” state, and the positioning device 100 is substantially free of jolts. The local offset calculator 124 may then add the calculated offset value to the corresponding position in the lookup table 132 corresponding to these operating conditions. In subsequent calculations, the local oscillator offset calculator 124 may, for example, determine the offset for operating conditions that are different in temperature, i.e., the following conditions: the temperature of the local oscillator 106 is 15° C., the screen is in operation, and the positioning device 100 is substantially free of jolts. The offsets calculated for these conditions may be stored in different positions in the lookup table 132. In this way, over time, the lookup table 132 may store the results of offset calculations performed under a wide range of operating conditions.

[0170] In another simplified example, the local oscillator offset calculator 124 may only consider the following operating conditions: (i) temperature and (ii) whether the touch screen is in operation. In this case, the lookup table 132 can be configured as a three-dimensional array (AxBxC). One dimension A can correspond to the temperature of the local oscillator 106 and can have a length equal to the number of temperature bins in use. In this simplified example, four temperature bins can be used, and the lookup table 132 can have a corresponding dimension length of 4. Another dimension B may correspond to the state of the screen, so the length is 2, because the screen can only be turned on or off. The remaining dimension C corresponds to the frequency offset and frequency change rate offset measured under the corresponding operating conditions. Therefore, the length of dimension C is 2, so that two different offset values ​​are stored for each possible combination of screen state and temperature bin. In this example, the lookup table 132 can therefore be implemented as a matrix of dimension values ​​(4×2×2), and for any matrix index i and j, the frequency offset is stored in the (i, j, 1) slice and the frequency change rate offset is stored in the (i, j, 2) slice.

[0171] In more complex embodiments, the lookup table 132 may generally have higher dimensions depending on the number of additional operating parameters considered (e.g., the extent of device bumps, accelerations, or vibrations, etc.). For example, if the presence of vibrations in the local oscillator 106 is also considered, the lookup table 132 may be a four-dimensional matrix or data structure.

[0172] In a more specific embodiment, the lookup table 132 may also take into account whether the temperature is increasing or decreasing. This is because the oscillator may exhibit temperature hysteresis, i.e., at a given temperature, it may behave differently depending on the recent or historical temperature of the oscillator. For example, when the temperature is 20°C and increasing, the local oscillator 106 may provide a relatively low frequency reference, and when the temperature is 20°C and decreasing, the local oscillator 106 may provide a relatively high frequency reference. The lookup table 132 may be configured to store offset values ​​for each case where the temperature is increasing or decreasing.

[0173] Continuing with the above example, the lookup table 132 can have an additional dimension Z of length 2 to provide an (AxZxBxC) array so that each temperature value has two corresponding frequency and frequency rate of change offset entries in the lookup table. One pair of frequency and frequency rate of change offset will correspond to when the local oscillator 106 is at the corresponding temperature and the temperature is rising. The other pair will correspond to the same temperature, but when the temperature is decreasing. In this case, the additional dimension can be embodied as a binary dimension, i.e., only taking the value 1 or 0, similar to the operating condition of whether the touch screen is in operation. This allows the lookup table 132 to take into account the temperature hysteresis effect in the local oscillator 106.

[0174] In practice, a greater number of continuous variable bins may be used than the four temperature bins in the above example. In the above example, dimension C may have a greater or shorter length depending on the order of frequency correction used. For example, if only a frequency offset is applied, the length of dimension C may be 1, or if both first and second order time derivative corrections are calculated and applied, the length of dimension C may be 3.

[0175] In other embodiments, the lookup table 132 can be any form of data set implemented in various 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 can be implemented using a table that stores specific measurements of each operating condition corresponding to a specific time period. In addition, the table can store corresponding offset values ​​calculated for these conditions and specific time periods. Therefore, the local oscillator offset calculator 124 can establish a list of measured operating conditions and subsequently calculated corresponding offset values ​​in the lookup table 132 over time. In this case, when later referencing the lookup table 132, the local oscillator offset calculator 124 can refer to the closest set of operating condition measurements in the list in order to limit the "search space", as discussed further below.

[0176] In some embodiments, the lookup table 132 can be configured to store multiple offset values ​​under the same operating conditions and additionally store an average offset value under these conditions. The average offset for a particular condition can be calculated by the local oscillator offset calculator 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 can be stored, so subsequent measurements under the same operating conditions can overwrite previously measured offsets.

[0177] Another approach that may be used in place of or in conjunction with the lookup table 132 involves the use of a prediction model 134. The prediction model 134 may include a mathematical formula or an AI-based model, such as a neural network or machine learning model, that is capable of making an initial estimate or initial prediction of the error in the local oscillator 106 based on the determined operating conditions. In any case, the prediction model 134 allows the future behavior of the local oscillator 106 to be predicted by characterizing past behavior. The prediction model 134 may be used in a similar manner to the lookup table 132 to provide an initial frequency estimate that constrains the search window to more accurately calculate the frequency offset, as explained in further detail below. Using such a model may also be referred to as using "predictive control."

[0178] The model may be pre-trained with prediction data 136 stored in memory, or continuously retrained based on the determined operating conditions and each calculated frequency offset. Alternatively, the model may incorporate data from a lookup table 132. If a pre-trained model is used that is not continuously retrained or updated based on the calculated frequency offsets, it may not be necessary to store each calculated offset and corresponding operating condition. Continuously retraining the model will enable the model to be customized to suit the specific device in which the model is implemented.

[0179] Data from the sensors or determinations made by the controller 108 may be used to control operating functions of the device 100 to mitigate operating conditions that negatively impact the stability of the local oscillator 106. For example, if the sensors indicate that the temperature of the local oscillator 106 is becoming extreme to the point where phase compensation is not a viable option to correct the temperature, the controller 108 may notify the device 100 to perform mitigating actions to reduce the temperature, such as disabling a screen, reducing processor speed, disabling one or more modems, etc.

[0180] Returning now briefly to method 400, in step S408, local offset calculator 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 measurements within a certain similarity threshold, for example, have been performed before and used to determine the offset of the local frequency reference.

[0181] In step S410, if the measured operating conditions are known, the local offset calculator 124 may limit the search window to For example, the previously calculated frequency and frequency rate offset corresponding to the determined operating condition can be used as an initial estimate for calculating the current frequency offset. The search window can be set based on the initial estimate.

[0182] Alternatively, rather than checking whether the operating conditions are known, the operating conditions are provided as input to the prediction model 134. The prediction model 134 may then analyze the operating conditions and provide an initial estimated frequency offset, which may be used to define the search window.

[0183] Reference Figure 5 Before returning to method 400, we will now describe Spaces and their relationship to offset calculations.

[0184] Figure 5A graph 500 is shown that includes two axes representing the range of possible frequency offset values ​​on the y-axis and the frequency rate of change offset values ​​on the x-axis within a particular stable time period. The points on the graph 500 correspond to A point in space, where each point in the space represents a possible combination of offset values. The search window can be defined along this 1 and 2. The upper and lower limits of each axis of the space contain a subset of points in the space between the upper and lower limits. A large search window 502 containing a greater number of test points 504 is shown. A narrow search window 506 containing a smaller number of test points 508 is also shown. In practice, only one of the larger or narrower search windows will be applied in a given iteration cycle. However, for illustrative purposes, both the large search window 502 and the narrow search window 506 are shown.

[0185] In either case, the test points in the search window represent a hypothesized frequency offset or an error in the local frequency reference generated by local oscillator 106. Once each test point in the search window has been evaluated, a "preferred" frequency offset value, i.e., a best estimate of the error in local oscillator 106, can be determined.

[0186] The local oscillator offset calculator 124 is configured to determine the "real" offset value for a specific stable time period by calculating each test point in a single search window and determining the best fit solution. In order to perform this 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 by using the offset value of the specific test point to the adjusted local frequency reference. Then, the local test signal is coherent with each of one or more ("first") positioning signals (e.g., the positioning signal 14 and the positioning signal 18 referred to as the "first positioning signal" above), which has a better signal-to-noise ratio than the ("second") positioning signal 16, which allows phase compensation to be performed coherently during the unstable time period of the local oscillator 106. The first positioning signal is generated using a known or predictable frequency (e.g., a high-fidelity local oscillator using a reference source). This can be included in the first positioning signal (or used to derive the first positioning signal). Then, the first positioning signal is coherently with the local test signal using the phase compensation module 126 to apply phase compensation to one of the signals in the coherence or the result of the coherence in a single stable time period. The dependence of the local test signal on the local frequency reference means that the coherence result "z" is a function "F" of the frequency offset and the frequency rate of change offset, as shown in equation (2) below. Example (arbitrary) contours are plotted on graph 500 as a function of how the function values ​​are plotted at Simplified illustration of spatial variation. Figure 5A maximum value 510 is shown for the function F. The maximum value 510 corresponds to the best-fit values ​​512, 514 of the frequency offset and the frequency rate of change offset in a particular stable time period.

[0187]

[0188] In use during a positioning calculation, the correlator 120 performs coherence on each test point in the search window until it can be determined that a maximum value 510 has been found. The offset value corresponding to the maximum value 510 of the function F provides a best fit value 512, 514 that most closely represents the true error in the local oscillator 106 within a particular settling time period.

[0189] however, any other constraint mechanism may be used to analyze the coherence result z to determine the best fit values ​​512, 514. For example, a search for a minimum value may be performed, or a best fit determination based on more complex criteria may be performed.

[0190] Returning to step S410 of method 400, it may be determined that the operating conditions of the measurement are known. Subsequently, the search window size may be set based on a percentage of the previously calculated offset under those conditions, such as a search window of ±50% of the previously calculated frequency and rate of change of frequency offset. Alternatively, a more complex formula may be used to calculate the search window size. Advantageously, setting a narrow search window 506 avoids the need for A large number of points in space are used to perform test coherence calculations, thereby reducing the processing load of determining a single offset pair under known conditions. The first test point in the search window effectively sets an initial estimate of the offset value. Setting a narrow search window 506 based on previous calculations sets an initial estimate (or "initial condition") that is closer to the "true" or final best fit value. Similarly, the search window can be set based on an initial estimate of the frequency offset from the prediction model 134. For example, the search window can be ±50% of the frequency and frequency rate of change offsets initially estimated by the prediction model 134.

[0191] After setting the narrow search window 506 , the method 400 may then proceed to step S414 .

[0192] However, if the operating condition is unknown, the method 400 proceeds to step S412, where a wide search window 502 is set by the local oscillator offset calculator 124. In some embodiments, the local oscillator offset calculator 124 may add the measured operating condition to the lookup table 132 at this time, depending on the specific implementation of the lookup table 132. In other embodiments, the lookup table 132 may not record specific operating condition measurements. In this case, the lookup table 132 may have a pre-allocated but currently empty storage location corresponding to the specific measured operating condition to store the offset value pair.

[0193] The search window size may also be limited in other ways. In one example in conjunction with the prediction model 134, the prediction model 134 may determine a confidence or variability score based on the determined operating conditions. The score may represent the variability of the local oscillator 106 under the corresponding operating conditions. A high score may indicate that the local oscillator 106 is particularly unstable and a wider search window 502 should be used. Conversely, a lower score may indicate that a narrower search window 506 may be used because it is known that the local oscillator 106 is more stable under the current conditions.

[0194] In another example, the prediction model 134 can compare the most recently calculated frequency offset to a more recent frequency offset prediction. The size of the difference between the more recent prediction and the most recently calculated value can define the size of the search window. For example, if the predicted value and the current value are very different, then the number of hypotheses can be expanded. Conversely, if the difference is small, then a smaller number of hypotheses can be used.

[0195] In step S414, the local oscillator offset calculator 124 calculates the local oscillator offset to be used for the search window. The loop is executed for each point in space to initialize.

[0196] In step S416, for At a specific test point in space, the local signal generator 118 constructs a local test signal of a duration corresponding to the duration of the stabilization period. This is performed using a local frequency reference from the local oscillator 106, which is based on the current tested The point in space to adjust.

[0197] In step S418, during the stabilization period, the correlator 120 correlates the local test signal with one of the "first" positioning signals, or each of the first positioning signals in turn, which may have a better signal-to-noise ratio than the positioning signal 16. 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 of the second satellite 4. The result of the coherence generates a first coherent 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 coherent signal to generate a phase-compensated first coherent signal. The phase compensation in step S418 can be performed using the motion of the receiver 104 during the relevant stabilization period determined in step S312. The phase compensation can be performed based on the line of sight motion to the second satellite 4. The result signal of the phase-compensated coherence can be converted to a "test value" using a function F (e.g., using a formula or by performing an integration) to provide a coherence result z of equation 2.

[0198] In step S420, the local oscillator offset calculator 124 checks whether the test value calculated in step S418 is greater than the value for The previous maximum test value obtained by executing steps S416 and S418 for the previous test point in space. If the current test value is greater than any value calculated during the previous iteration of the loop initialized in step S414, the local oscillator offset calculator 124 determines that a new best fit offset value pair has been found. The best fit offset value that generates the maximum value is recorded. Otherwise, if the test value is not greater than the previous best fit test value, the frequency offset corresponding to the current test point may be discarded due to being less accurate. Therefore, in multiple iterations of steps S416-S420, method 400 dynamically adjusts the frequency offset value by continuously replacing the best fit offset pair with a better fit offset pair based on the phase compensation coherence.

[0199] In other embodiments, the local oscillator offset calculator 124 may determine that the best fit frequency offset may be between two of the hypothesized test values ​​and may interpolate between the test values ​​to provide a best estimate of the frequency and frequency rate offset.

[0200] In step S422, the local oscillator offset calculator 124 calculates Steps S416-S420 are executed for each test point in the search window of the space. After executing the loop for each test point, the global maximum test value z in the search window is determined, and the corresponding offset value is stored. Figure 5As shown, the local oscillator offset calculator 124 may identify the best fit values ​​512, 514 of the maximum value 510. If the operating conditions are known and a narrower search window is set at step S410, steps S416-420 may be performed fewer times because the smaller search window contains fewer test points.

[0201] Steps S418-S422 have been performed using a single "first" positioning signal 18 from a 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 a first satellite 2 and corresponding positioning signals 14. In general, a large number of first positioning signals may be used. Steps S418-S422 may be repeated in a cyclic manner for each first positioning signal. Alternatively, in step S418, a coherence may be performed between a local test signal and each received first signal to generate a phase compensated coherence result for each test point and each received first signal in the search window.

[0202] In this case, the function F can be obtained by combining the It is constructed from test values ​​calculated in space.

[0203] Combining test results from multiple positioning sources avoids a problem that may arise in certain scenarios when only one first signal from a single first remote source is used.

[0204] For example, if only the positioning signal 18 is used in the method 400, and the positioning signal 18 is received along the direct line of sight and simultaneously along the indirect arrival direction generated by the reflection, a problem may occur. In this case, in step S418, there may be two assumed frequency offsets or test values ​​that generate a first coherent signal with strong phase compensation (or equivalently a strong test result). However, only one of the assumed frequency offsets actually corrects the error in the local oscillator 106. The remaining assumed frequency offset effectively "corrects" or offsets the phase offset caused by the positioning signal 18 taking the reflected path, resulting in a stronger coherent result. This remaining assumed frequency offset may be incorrectly determined as a frequency offset value caused by the instability of the local oscillator 106 in a given time period. In this case, the calculated frequency offset does not represent the error of the local oscillator 106 in the given time period. This means that the calculated frequency offset cannot be used for accurate correction when processing other received signals (such as the weaker "second" positioning signal 16) to obtain a better phase-compensated coherent result.

[0205] Using multiple positioning signals to determine the frequency offset in each time period can avoid this problem because each received positioning signal has a common assumed frequency offset, which generates a strongly phase-compensated first coherent signal. The common assumed frequency offset corresponds to the error in the local frequency reference generated by the unstable local oscillator 106. However, the frequency offset corresponding to the reflection path from each remote source will generally not be consistent because each remote source is at a different location and altitude, resulting in a different degree of path length difference and, therefore, a different phase delay. Therefore, combining the phase-compensated first coherent results generated for each first positioning signal allows the assumed frequency offset corresponding to the error in the local oscillator 106 to be revealed.

[0206] In some instances, this can be accomplished by targeting The test values ​​calculated at each test point in the space are combined by summing or weighted summing.

[0207] In step S424, the local oscillator offset calculator 124 sets the frequency offset and the frequency rate offset equal to the best fit values ​​512, 514 for the current stable time period in the offset vector. At this point, the local oscillator offset calculator 124 has now determined the error in the local oscillator 106 for the particular time period.

[0208] In step S426, the local oscillator offset calculator 124 may add the best fit values ​​512, 514 to the lookup table 132. If the lookup table 132 is configured as a multidimensional array, as described above, the best fit values ​​may be stored in the lookup table 132 at positions corresponding to the operating conditions 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 a particular condition in order to calculate an average value. Therefore, in these embodiments, in addition to the previously calculated best fit values, the best fit values ​​132 may also be added to the lookup table 132. Similarly, if the lookup table 132 is configured to store specific measured values ​​and corresponding measured offsets, these data may be added to the lookup table 132 in step S426.

[0209] The prediction model 134 may also be updated or retrained based on the best fit values ​​512 , 514 and the determined operating conditions of step S406 .

[0210] In step S428, the method 400 returns to step S406 and repeats steps S406-426 for each consecutive stable time period of the local oscillator 106 until the offset vector is completely populated with offset values. In this way, the method 400 creates a vector that represents the daisy-chain corrections in the local oscillator 106 for consecutive time periods. In practice, due to the random nature of the physical processes that control the behavior of the local oscillator 106, each frequency offset and each rate of change of frequency offset is likely or even certain to be numerically unique (if the values ​​are represented with enough significant digits).

[0211] After step S428, method 400 may include other steps of performing additional joint estimation processes. In one example embodiment, 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 equal to, for example, the full length of the desired integration time period. The process of steps S418 to S422 may be repeated using positioning signal 18, positioning signal 14, and any other positioning signal and a longer local test signal that has been corrected by the offset calculated in steps S402 to S428. This calculates a single frequency and frequency rate of change offset correction for the longer local test signal. This additional correction pair is typically small and is related to the overall (overarching) frequency and frequency rate of change offset in the local oscillator 106 that may not have been considered by the previous steps. Then, this additional overall correction can be applied (e.g., added) to each previously calculated frequency and frequency rate of change offset in the vector, resulting in a small offset in frequency and frequency rate of change over the entire integration time period. This results in a more accurate estimate of the error of the local oscillator 106 over the integration time period.

[0212] The offset vector can then be used in method 300 to generate a second local signal having a duration equal to or greater than the desired integration time period. The second local signal is created using the local frequency reference, and the second local signal is corrected in different ways at different parts of the local frequency reference according to each pair of best-fit offsets in the offset vector. Accordingly, these corrections are 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 time period in the coherence step S322, despite the instability of the local oscillator 106. As previously described, alternatively or additionally, the vector can be used to correct the positioning signal 16 or the coherent signal generated by step S322.

[0213] Method 400 may include additional steps to further improve the efficacy of the correction applied to the local frequency reference signal. The local oscillator offset calculator 124 may be configured to evaluate the trend of the offset value in the offset vector over a continuous stable time period. The local oscillator offset calculator 124 may determine that the frequency offset value changes in a stable and continuous manner, for example, between adjacent stable time periods. The local oscillator offset calculator 124 may perform statistical analysis to attempt to determine a trend, such as a polynomial or logarithmic trend. If the trend can be identified with a sufficiently high quality of adaptation, interpolation may be applied. In one example, the quality of adaptation may be characterized by a metric associated with the residual, such as an "r squared" value known in the art. A similar evaluation may be performed for the frequency rate of change offset value. In one example, when the local oscillator 106 operates under favorable conditions (e.g., low temperature), a stable change in the offset may occur.

[0214] If a substantially stable variation of the offset values ​​can be determined, it can be assumed that the error in the local oscillator 106 behaves predictably between the calculated offset values. To take advantage of this, the local oscillator offset calculator 124 can be configured to increase the length of the offset vector in order to accommodate more pairs of offset values. The local oscillator offset calculator 124 can then interpolate the offset values ​​that are between the calculated offset values. Advantageously, this enables a finer scale correction of the local frequency reference to be performed without having to perform the computationally demanding process of steps S416-422 for additional stable time periods. Alternatively, if it is determined that there is predictable behavior between time periods, the time periods can be extended in order to reduce the computational load.

[0215] In some example embodiments, the use of interpolation in this manner may be performed retroactively in the method 400, i.e., after the initial offset vector is calculated at step S428. Alternatively, the interpolation may be performed before step S428, after the offsets for at least three consecutive stable time periods have been calculated. For example, between step S412 and step S414, it may be checked whether the offset value appears to vary smoothly, and if so, interpolation may be applied. Applying interpolation retroactively rather than in real time may have the advantage that it may be checked whether the behavior of the local oscillator 106 varies smoothly over the entire range of the integration time period before assumptions are made about the behavior of the local oscillator 106. Interpolation may be applied when operating conditions meet certain criteria, such as when the temperature is below a threshold value that indicates favorable conditions for local oscillator stability.

[0216] If it is determined that the behavior trend of the local oscillator 106 is erratic or relatively unpredictable, the local oscillator offset calculator 124 may choose not to apply interpolation to avoid making incorrect assumptions about the offset value.

[0217] The search space used in the example method 400 is two-dimensional due to the use of up to first order frequency corrections, frequency offsets, and frequency rate of change offsets. However, in other embodiments, the search space may be one-dimensional if only frequency offsets are calculated, or three or more dimensions if higher order correction terms are calculated.

Claims

1. A method comprising: Use a local oscillator to provide a local frequency reference; receiving at a receiver at least one signal from at least one remote source along a corresponding direction of arrival; determining a motion of the receiver; determining one or more operating conditions in a system for 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 signal received: providing a local signal using the local frequency reference; providing a coherent signal by correlating the local signal with a received signal; as well as providing phase compensation for at least one of the local signal, the at least one received signal, and the coherent signal based on the determined motion of the receiver along the respective directions of arrival to generate a phase compensated coherent signal; A frequency offset value is dynamically adjusted based on the phase compensated coherent signal and the initial estimated frequency offset to determine a preferred estimate of the frequency offset in the local frequency reference.

2. The method according to claim 1, wherein: The one or more operating conditions include physical variables or parameters of the local oscillator.

3. The method according to claim 1 or claim 2, wherein: The one or more operating conditions include one or more of temperature, rate of change of temperature, operating state, a determination of motion, or an indication of whether a component in the system is on or off.

4. The method according to any one of the preceding claims, comprising the steps of: The preferred estimate of the frequency offset and the corresponding determined one or more operating conditions are provided to the stored data set.

5. The method according to claim 4, comprising the steps of: At a later time, Determine one or more subsequent operating conditions of the system and provide a frequency offset corresponding to the one or more subsequent operating conditions from a stored data set as an initial estimated frequency offset for performing the step of dynamically adjusting the frequency offset value to determine a preferred estimated value of the frequency offset in the local frequency reference.

6. A method according to any one of the preceding claims, wherein: The step of determining an initial estimated frequency offset in the local frequency reference based on the one or more operating conditions is performed using a model configured to predict a frequency offset in the local oscillator based on the at least one operating condition.

7. A method according to any one of the preceding claims, wherein: A search window for the preferred estimate of the frequency offset is defined based on the initial estimated frequency offset.

8. The method according to any one of the preceding claims, further comprising: determining an initial estimated rate of change of frequency offset in the local frequency reference based on the one or more operating conditions; as well as A frequency rate offset value is dynamically adjusted based on the phase compensated coherent signal and the initial estimated frequency rate offset to determine a preferred estimate of the frequency rate offset in the local frequency reference.

9. A method according to any one of the preceding claims, wherein: The received one or more signals are positioning signals generated by one or more remote positioning sources.

10. The method according to any one of the preceding claims, further comprising: For each of the at least one first signal received: providing a plurality of hypothesized frequency offsets based on the estimated frequency offset, and for each of the plurality of hypothesized frequency offsets: performing the steps of: providing phase compensation for at least one of the local signal, the received signal, and the coherent signal based on the determined motion of the receiver along the respective directions of arrival to generate a phase compensated first coherent signal; Therein, the step of dynamically adjusting comprises determining a preferred estimated frequency offset based on the plurality of hypothesized frequency offsets and the generated phase-compensated coherent signal.

11. The method according to claim 10, wherein: Determining the preferred estimated frequency offset based on the phase-compensated coherent signal is performed by combining the phase-compensated coherent signals generated for each of the received plurality of signals for each hypothesized frequency offset and determining the hypothesized frequency offset corresponding to the highest combined coherence 12. A method according to any preceding claim, further comprising correcting a signal derived from the local frequency reference using the preferred estimate of the frequency offset in the local frequency reference.

13. A system comprising: a local oscillator configured to provide a local frequency reference; a receiver configured to receive at least one signal from at least one remote source along a corresponding direction of arrival; a motion module configured to determine the motion of the receiver; and A controller, the controller being configured to: determining one or more operating conditions in the system; 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 signal received: providing a local signal using the local frequency reference; providing a coherent signal by correlating the local signal with a received signal; as well as providing phase compensation for at least one of the local signal, the at least one received signal, and the coherent signal based on the determined motion of the receiver along the respective directions of arrival to generate a phase compensated coherent signal; A frequency offset value is dynamically adjusted based on the phase compensated coherent signal and the initial estimated frequency offset to determine a preferred estimate of the frequency offset in the local frequency reference.

Citation Information

Patent Citations

  • A method, apparatus, computer program, chip set, or data structure for correlating a digital signal and a correlation code

    WO2017163042A1

  • A method and system for calibrating a system parameter

    WO2019063983A1