Method and apparatus for determining frequency-related parameters of a frequency source
The method corrects local oscillator errors in consumer devices using phase and motion compensation, enhancing positioning accuracy in unstable conditions by identifying frequency offsets from multiple signals, addressing instability issues in consumer devices.
Patent Information
- Application Number
- JP2025523618
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-11-10
- Filing Date
- 2023-08-03
- Publication Date
- 2025-10-30
AI Technical Summary
Consumer devices with low-cost local oscillators, such as smartphones and car navigation systems, face instability due to factors like temperature, vibration, and acceleration, affecting their ability to accurately determine frequency-related parameters for positioning calculations, especially in challenging signal environments.
A method that uses phase compensation and motion compensation to correct local oscillator errors over multiple time periods, utilizing inertial sensors and multiple signals to identify frequency offsets, and applying these corrections to improve positioning accuracy even in unstable conditions.
Enables accurate determination of frequency-related parameters and improved positioning calculations by correcting local oscillator instability, allowing for coherent integration in poor signal environments.
Smart Images

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