Processing GNSS signals based on Doppler estimation

By using Doppler estimation and inertial measurements in GNSS receivers to process GNSS signals, the problem of degradation of positioning accuracy caused by signal reception difficulties and multipath interference is solved, and higher receiver sensitivity and positioning accuracy are achieved.

CN119846668APending Publication Date: 2025-04-18U-BLOX
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202411444109.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-10-17
Filing Date
2024-10-16
Publication Date
2025-04-18

AI Technical Summary

Technical Problem

In challenging signal reception conditions, it is difficult for the GNSS receiver to maintain locking of the GNSS signal, especially when multipaths exist, resulting in a decrease in positioning accuracy.

Method used

The carrier phase is initialized and updated with Doppler estimation and combined with inertial measurements to compensate for the receiver's motion, extending the coherent integration time to improve the receiver's sensitivity.

Benefits of technology

Effectively improves the sensitivity and positioning accuracy of GNSS receivers in challenging signal environments, reducing the negative impact of dynamic motion on coherent integrals.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119846668A_ABST
    Figure CN119846668A_ABST
Patent Text Reader

Abstract

The invention relates to processing GNSS signals based on Doppler estimation. A method and apparatus for processing a GNSS signal received at a receiver is provided. A carrier phase of the local carrier signal is initialized for the current epoch based on the first Doppler estimate. The first Doppler estimate is derived from measurements collected in previous epochs. The carrier phase is repeatedly updated for the current epoch while the GNSS signal is mixed with the local carrier signal. The update depends on second Doppler estimates that are based on inertial measurements taken at the receiver.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to Global Navigation Satellite Systems (GNSS). In particular, the present invention relates to supporting long coherent integration of GNSS signals using Doppler estimation. Background Art

[0002] GNSS positioning technology is well known in the art. Existing GNSS include the Global Positioning System (GPS), Galileo, GLONASS and the BeiDou Satellite Navigation System (BDS), also referred to herein as "BeiDou". Each GNSS includes a satellite constellation, also referred to in the art as a "space vehicle" (SV), which orbits the earth. Typically, each SV sends multiple satellite signals. These signals are received by a GNSS receiver, and the position of the GNSS receiver needs to be calculated. The GNSS receiver can use these signals to perform multiple ranging measurements to obtain information about the distance between the receiver and the corresponding satellite. When a sufficient number of measurements can be performed, the position of the receiver can be calculated through multi-point positioning.

[0003] In order to make a GNSS measurement, the relevant GNSS signal must be acquired and tracked. While this may be relatively easy in open air conditions, it can become more challenging in more difficult signal reception conditions. Multipath conditions can present particular difficulties. The accuracy of the position calculation depends on the accuracy of the ranging measurements. However, when significant multipath is present, the GNSS receiver may acquire and track a reflected version of the satellite signal instead of the direct "line of sight" (LoS) signal. The reflected version is likely to have a different path length and therefore produce a different ranging measurement, which can corrupt or reduce the accuracy of the final position fix.

[0004] In challenging signal reception conditions, the received LoS signal may be weak. Therefore, in order to successfully acquire and track the LoS signal, the receiver sensitivity should be as high as possible. Increasing the receiver sensitivity increases the probability of detecting the LoS GNSS signal, which in turn increases the probability of rejecting multipath.

[0005] One way to improve sensitivity is to increase the coherent integration time at the receiver. Summary of the invention

[0006] It is desirable to make a receiver more sensitive to GNSS signals. In particular, it is desirable to increase the maximum coherent integration time that a receiver can use. However, as the coherent integration time increases, the integration becomes more susceptible to changes in the speed or direction of travel of the GNSS receiver. Sudden acceleration may cause the receiver to lose lock on the GNSS signals. Even if the lock is not lost, the impact on the calculations may negate the benefit of increasing the coherent integration period.

[0007] The present inventors have recognised that knowledge of changes in velocity and orientation can be used to mitigate the negative effects of dynamic motion on coherent integration.Inertial measurements can be used to compensate for motion when detecting GNSS signals and deriving GNSS measurements therefrom.

[0008] A method and apparatus for processing GNSS signals received at a receiver is provided. A carrier phase of a local carrier signal is initialized for a current epoch based on a first Doppler estimate. The first Doppler estimate is derived from measurements collected in a previous epoch. The carrier phase is repeatedly updated for the current epoch while the GNSS signal is mixed with the local carrier signal. The updates rely on second Doppler estimates that are based on inertial measurements made at the receiver.

[0009] In addition, a method and apparatus for processing GNSS signals received at a receiver is provided. The GNSS signals can be tracked in different ways in two or more corresponding operating modes. A first epoch is processed according to a first operating mode. In this mode, a carrier phase of a local carrier signal is controlled using a phase-locked loop to track the carrier phase of the GNSS signal. A second epoch is processed according to a second operating mode. In this operating mode, the carrier phase is controlled based at least in part on at least one Doppler estimate. The at least one Doppler estimate depends on inertial measurements made at the receiver.

[0010] According to a first aspect of the present disclosure, there is provided a method of processing a GNSS signal received at a receiver at a current epoch based on information derived at least in part from a previous epoch, the method comprising the steps of:

[0011] obtaining samples of the GNSS signal for the current epoch,

[0012] The first spreading code iteration for the current epoch:

[0013] obtaining a first Doppler estimate for the GNSS signal, wherein the first Doppler estimate is derived from the previous epoch;

[0014] initializing a carrier phase of a local carrier signal for the current epoch based on the first Doppler estimate;

[0015] mixing the local carrier signal with a first plurality of the samples to generate first carrier-free signal samples; and

[0016] correlating the first carrier-free signal sample with a local spreading code to generate a first complex-valued correlation result for the current epoch,

[0017] For each of a plurality of subsequent spreading code iterations of the current epoch:

[0018] obtaining a second Doppler estimate for the GNSS signal, wherein the second Doppler estimate is based on inertial measurements made at the receiver;

[0019] updating a carrier phase of the local carrier signal based on the second Doppler estimate;

[0020] mixing the local carrier signal with a second plurality of the samples to generate second carrier-free signal samples; and

[0021] correlating the second carrier-free signal sample with the local spreading code to generate a second complex-valued correlation result,

[0022] The method also includes processing the first complex-valued correlation result and the second complex-valued correlation result to produce at least one of: an indication of whether the GNSS signal is detected; and a GNSS measurement result for the current epoch.

[0023] According to the above method, for each first Doppler estimate, multiple second Doppler estimates are obtained (because multiple second Doppler estimates are obtained for each epoch). The interval between the reception of consecutive first Doppler estimates can correspond to the interval between consecutive epochs. The interval between the reception of consecutive second Doppler estimates can be shorter than the interval between epochs. The first Doppler estimate can be obtained at a first rate, and the second Doppler estimate can be obtained at a second rate, wherein the second rate is greater than the first rate. For example, the first rate can be greater than 0.25 Hz and less than 4 Hz, optionally 1 Hz. The second rate can be greater than 10 Hz, or greater than 25 Hz. The second rate can be less than 100 Hz, or less than 75 Hz. The second rate can be, for example, 50 Hz.

[0024] The local carrier signal may also be referred to as a carrier replica or a replica carrier signal. The local spreading code may also be referred to as a spreading code replica or a replica spreading code.

[0025] During the acquisition or reacquisition phase, it may be useful to indicate whether a GNSS signal is detected. For example, reacquisition may be needed when a car is exiting a tunnel, or in a hot start scenario when the receiver is briefly turned off and restarted but timing is still accurately maintained. In both cases, the lock on the GNSS signal is lost, but the receiver is able to predict the delay and Doppler in the near future fairly accurately.

[0026] The method may further include, for a first iteration of the spreading code: obtaining a code phase estimate for the GNSS signal, wherein the code phase estimate is derived from a navigation solution for the previous epoch; and initializing a code phase of the local spreading code for the current epoch based on the code phase estimate, and for each of a plurality of subsequent spreading code iterations: updating the code phase of the local spreading code based on the second Doppler estimate.

[0027] The step of processing the first complex-valued correlation result and the second complex-valued correlation result optionally comprises coherently integrating the first complex-valued correlation result and the second complex-valued correlation result.

[0028] The GNSS measurements may be based on the results of coherent integration. Coherent integration may include integrating over at least 0.25 seconds, at least 0.5 seconds, at least 1 second, or at least 2 seconds. It may include integrating over less than 10 seconds, less than 5 seconds, or less than 4 seconds. (All combinations of these endpoints are disclosed herein.)

[0029] The step of processing the first complex-valued correlation result and the second complex-valued correlation result optionally includes performing a discrete Fourier transform (DFT) on the first complex-valued correlation result and the second complex-valued correlation result. The GNSS measurement may be based on the results of the DFT. For example, the GNSS measurement results may include Doppler frequency and code-phase delay, which are obtained by finding peaks in one or more DFT results.

[0030] The step of correlating the first mixed signal sample and the second mixed signal sample with the local spreading code optionally comprises correlating the first mixed signal sample and the second mixed signal sample with an advance version of the local spreading code and a lag version of the local spreading code. Typically, the correlation further comprises correlating the mixed signal samples with an immediate version of the spreading code. Coherent integration (particularly DFT) can be applied separately to the results of the lag correlation, the immediate correlation and the advance correlation.

[0031] The GNSS measurement result optionally includes a code phase of the GNSS signal, wherein the step of processing the first complex-valued correlation result and the second complex-valued correlation result optionally includes determining the code phase of the GNSS signal based on the first complex-valued correlation result and the second complex-valued correlation result.

[0032] The method may also include calculating a navigation solution based on the determined code phase, wherein the navigation solution includes a new first Doppler estimate for use in a later epoch.

[0033] The method may further comprise estimating a rate of change of the second Doppler estimate and extrapolating a third Doppler estimate from the second Doppler estimate, wherein the third Doppler estimate is extrapolated based on the estimated rate of change, wherein the step of updating the carrier phase comprises updating the carrier phase based on the third Doppler estimate.

[0034] The third Doppler estimate may be extrapolated based on the rate of change of the second Doppler estimate and a measurement delay associated with the inertial measurement.

[0035] In some cases, the first Doppler estimate may be derived from a navigation solution of the previous epoch. The navigation solution may be provided by a positioning engine (PE). The positioning engine may be configured to process GNSS measurements to generate a navigation solution. The navigation solution may include a state vector. The positioning engine may be configured to estimate a state vector at each epoch. The state vector may include a plurality of state variables, the state variables including one or more Doppler estimates, and optionally one or more of the following: a position variable, a velocity variable, and a time variable.

[0036] In some cases, the first Doppler estimate may be derived from the previous epoch using a phase locked loop. In this case, the Doppler estimate may be provided within a measurement engine (ME). The measurement engine may be configured to generate GNSS measurements but not process these measurements to generate a navigation solution. The Doppler estimate may be derived by comparing the phase of a local carrier signal with the phase of a carrier of a GNSS signal.

[0037] According to a first aspect, there is also provided a computer program, the computer program comprising computer program code, the computer program code being configured to, when the computer program is run on one or more physical computing devices, cause the one or more physical computing devices to perform all the steps of the method as described above. The one or more physical computing devices may comprise or consist of one or more processors of a GNSS receiver. The computer program may be stored on a computer-readable medium (optionally, non-transitory).

[0038] According to a first aspect, there is also provided a global navigation satellite system (hereinafter referred to as GNSS) receiver, the GNSS receiver being configured to process GNSS signals received at a current epoch based on information derived at least in part from a previous epoch, the GNSS receiver comprising a measurement engine, the measurement engine being configured to:

[0039] obtaining samples of the GNSS signal for the current epoch,

[0040] The first spreading code iteration for the current epoch:

[0041] obtaining a first Doppler estimate for the GNSS signal, wherein the first Doppler estimate is derived from the previous epoch;

[0042] initializing a carrier phase of a local carrier signal for the current epoch based on the first Doppler estimate;

[0043] mixing the local carrier signal with a first plurality of the samples to generate first carrier-free signal samples; and

[0044] correlating the first carrier-free signal sample with a local spreading code to generate a first complex-valued correlation result for the current epoch,

[0045] For each of a plurality of subsequent spreading code iterations of the current epoch:

[0046] obtaining a second Doppler estimate for the GNSS signal, wherein the second Doppler estimate is based on inertial measurements made at the receiver;

[0047] updating a carrier phase of the local carrier signal based on the second Doppler estimate;

[0048] mixing the local carrier signal with a second plurality of the samples to generate second carrier-free signal samples; and

[0049] correlating the second carrier-free signal sample with the local spreading code to generate a second complex-valued correlation result,

[0050] The method also includes processing the first complex-valued correlation result and the second complex-valued correlation result to produce at least one of: an indication of whether the GNSS signal is detected; and a GNSS measurement result for the current epoch.

[0051] The GNSS receiver may further include an RF front end for receiving, down-converting and digitizing the GNSS signal, and a mixer for erasing residual carrier from the signal. The GNSS receiver may further include an intermediate frequency (IF) processing unit for processing the signal down-converted from RF to IF by the RF front end. The output of the RF front end may be connected to the input of the intermediate frequency processing unit. The output of the IF processing unit may be connected to the input of the mixer.

[0052] The GNSS receiver may further comprise at least a first correlator coupled to the output of the mixer and configured to erase a spreading code of the GNSS signal.The first correlator may be part of a group of correlators comprising an early, prompt and late correlator.

[0053] One or more outputs of the first correlator may be coupled to at least one tracking loop, including one or both of a code tracking loop and a carrier tracking loop.

[0054] At least one tracking loop may include a code-phase feedback controller configured to estimate a code phase of the GNSS signal; the GNSS receiver may also include a code generator configured to generate a local spreading code. The code generator may be controlled based at least in part on the second Doppler estimate.

[0055] The code generator may include a numerically controlled oscillator (NCO) configured to generate a clock signal for generating the local spreading code.

[0056] The code generator can provide an input to the correlator, enabling it to erase the spreading code of the GNSS signal.

[0057] The GNSS receiver may further include a carrier generator configured to generate a local carrier signal to erase the residual carrier from the GNSS signal. The carrier generator may include an NCO configured to generate the local carrier signal.

[0058] According to a second aspect of the present disclosure, there is provided a method for processing a GNSS signal received at a receiver, the method comprising the following steps:

[0059] For the first epoch:

[0060] Obtaining a first sample of the GNSS signal;

[0061] generating a local carrier signal;

[0062] mixing the local carrier signal with the first sample to generate a first carrier-free signal sample;

[0063] Generate local spreading codes;

[0064] correlating the first carrier-free signal samples with the local spreading code to generate a first complex-valued correlation result for the first epoch; and

[0065] processing the first complex-valued correlation result to produce at least one of: a first indication of whether the GNSS signal is detected; and a first GNSS measurement result for the first epoch,

[0066] wherein during the mixing step for the first epoch, a phase locked loop is used to control the carrier phase of the local carrier signal to track the carrier phase of the GNSS signal, and

[0067] For the second epoch:

[0068] obtaining a second sample of the GNSS signal,

[0069] obtaining at least one Doppler estimate for the GNSS signal, wherein the at least one Doppler estimate is based on inertial measurements made at the receiver,

[0070] mixing the local carrier signal with the second sample to generate a second carrier-free signal sample;

[0071] correlating the second carrier-free signal samples with the local spreading code to generate a second complex-valued correlation result for the second epoch; and

[0072] processing the second complex-valued correlation result to produce at least one of: a second indication of whether the GNSS signal is detected; and a second GNSS measurement result for the second epoch,

[0073] wherein during the mixing step performed for the second epoch, a carrier phase of the local carrier signal is controlled based at least in part on the at least one Doppler estimate.

[0074] According to an embodiment of the method, the GNSS receiver can track the code phase and / or carrier phase of the GNSS signal in at least two different ways. The two ways can be used at different times.

[0075] It should be understood that the reference to a "first" epoch and a "second" epoch requires only that there be two different epochs. The "first" epoch may be before or after the "second" epoch. The first epoch and the second epoch may be consecutive epochs, or there may be one or more other epochs (possibly many epochs) between the first epoch and the second epoch.

[0076] The first tracking method (corresponding to the first epoch above) involves tracking using a phase locked loop and / or a delay locked loop. This method does not require reliance on a navigation solution to track code phase and / or carrier phase.

[0077] A second tracking method (corresponding to the second epoch described above) involves tracking using Doppler estimates based on inertial measurements. The Doppler estimate may be initialized based on a navigation solution for the second epoch. The navigation solution may be based on GNSS measurements and inertial measurements. The Doppler estimate may be updated based on inertial measurements for the second epoch. The updates based on inertial measurements may occur at intervals shorter than the intervals between epochs.

[0078] During the acquisition or reacquisition phase, it may be useful to indicate whether a GNSS signal is detected. For example, reacquisition may be needed when a car is exiting a tunnel, or in a hot start scenario when the receiver is briefly turned off and restarted but timing is still accurately maintained. In both cases, the lock on the GNSS signal is lost, but the receiver is able to predict the delay and Doppler in the near future fairly accurately.

[0079] It should be understood that references to a "first" and "second" epoch are merely labels. They are not necessarily consecutive epochs. Furthermore, the first epoch may precede or follow the second epoch in time.

[0080] The step of processing the first complex-valued correlation result optionally comprises coherently integrating the first complex-valued correlation result within a first coherent integration interval. The step of processing the second complex-valued correlation result optionally comprises coherently integrating the second complex-valued correlation result within a second coherent integration interval. The second coherent integration interval may be longer than the first coherent integration interval.

[0081] The GNSS measurement may be based on the result of the coherent integration. The second coherent integration interval may be at least 0.25 seconds, at least 0.5 seconds, at least 1 second, or at least 2 seconds. It may be less than 10 seconds, less than 5 seconds, or less than 4 seconds. (All combinations of these endpoints are disclosed herein.)

[0082] Increasing the coherent integration interval can help improve the sensitivity of a GNSS receiver, thereby enabling the reception and use of GNSS signals in more challenging signal environments. However, the rapid dynamics of the receiver may reduce the useful information that can be obtained from longer coherent integration intervals. By using methods according to examples of the present disclosure, the coherent integration interval can be extended even when the PLL and DLL cannot be used to track the signal. This can be achieved by using inertial measurements to compensate for the motion of the receiver during long coherent integration intervals.

[0083] The at least one Doppler estimate optionally comprises a plurality of Doppler estimates provided at intervals shorter than an interval between consecutive epochs.

[0084] The plurality of Doppler estimates optionally include a first Doppler estimate based on an earlier epoch prior to the second epoch and a plurality of second Doppler estimates based on inertial measurements of the second epoch.

[0085] The first Doppler estimate may be provided once per epoch. The second Doppler estimate may be provided at intervals shorter than the intervals between consecutive epochs.

[0086] The first Doppler estimate may be obtained at a first rate and the second Doppler estimate may be obtained at a second rate, wherein the second rate is greater than the first rate. The first rate may be greater than 0.25 Hz and less than 4 Hz, optionally for example 1 Hz. The second rate may be greater than 10 Hz, or greater than 25 Hz. The second rate may be less than 100 Hz, or less than 75 Hz. The second rate may be, for example, 50 Hz.

[0087] In some cases, the first Doppler estimate may be derived from a navigation solution of the earlier epoch. The navigation solution may be provided by a positioning engine (PE). The positioning engine may be configured to process GNSS measurements to generate a navigation solution. The navigation solution may include a state vector. The positioning engine may be configured to estimate a state vector at each epoch. The state vector may include a plurality of state variables, the state variables including one or more Doppler estimates, and optionally one or more of the following: a position variable, a velocity variable, and a time variable.

[0088] In some cases, the first Doppler estimate may be derived from the previous epoch using a phase locked loop. In this case, the Doppler estimate may be provided within a measurement engine (ME). The measurement engine may be configured to generate GNSS measurements but not process these measurements to generate a navigation solution. The Doppler estimate may be derived by comparing the phase of a local carrier signal with the phase of a carrier of a GNSS signal.

[0089] Optionally, during the correlation for the first epoch, a delay locked loop may be used to control the code phase of the local spreading code to track the code phase of the GNSS signal.

[0090] Optionally, during correlating for the second epoch, a code phase of the local spreading code is controlled based at least in part on the at least one Doppler estimate.

[0091] A code phase of the local spreading code may be initialized for the second epoch based on a navigation solution of an earlier epoch prior to the second epoch.

[0092] Optionally, the receiver has a first mode of operation and a second mode of operation, wherein the first mode is valid for the first epoch and the second mode is valid for the second epoch. The first mode may be selected in response to detecting a good quality signal reception condition, and the second mode may be selected in response to detecting a poor quality signal reception condition.

[0093] In some embodiments, a good quality signal reception condition can be distinguished from a poor quality signal reception condition by checking quality indicators such as carrier-to-noise density ratio (C / N0), carrier phase lock, or residual error. For example, if C / N0 is greater than 37 dB-Hz, or carrier phase lock is intact, or residual error is below a predetermined threshold, the signal reception condition can be classified as good quality.

[0094] The residual is the difference between (i) the estimated distance from the receiver to the corresponding satellite and (ii) the actual distance measurement. When the residual is low, it indicates that the range measurement of the current satellite of interest is in good agreement with the range measurements of other satellites.

[0095] In some examples, the modes may be selected independently for different GNSS signals. For example, a GNSS signal from one satellite may be tracked using a first mode, while a GNSS signal from another satellite may be tracked using a second mode. This may occur if the reception quality of one satellite signal is higher than that of another satellite signal.

[0096] The method may include: comparing, for the second epoch, a first carrier phase estimate generated by the phase-locked loop with a second carrier phase estimate derived from the at least one Doppler estimate; in response to determining that a difference between the first carrier phase estimate and the second carrier phase estimate is not greater than a threshold phase difference, initializing the carrier phase of the local carrier signal for the second epoch based on the first carrier phase estimate; and in response to determining that the difference is greater than the threshold phase difference, initializing the carrier phase of the local carrier signal for the second epoch based on the second carrier phase estimate.

[0097] This can be seen as a hybrid of the two ways of initializing the carrier phase. The second carrier phase estimate (based on a Doppler estimate that is based on inertial measurements) can serve as a cross-check on the first carrier phase estimate produced by the phase-locked loop. As long as the phase-locked loop is properly locked to the GNSS signal, it can produce a more reliable carrier phase estimate. When the first carrier phase estimate (produced by the PLL) deviates significantly from the second carrier phase estimate, this may indicate that the PLL no longer has a good lock on the signal. In these cases, the second carrier phase estimate (based on the Doppler estimate) may be more reliable than the first carrier phase estimate (produced by the PLL).

[0098] The method may include comparing, for the second epoch, a first code phase estimate generated by the delay locked loop with a second code phase estimate derived from the at least one Doppler estimate; in response to determining that a difference between the first code phase estimate and the second code phase estimate is not greater than a threshold delay difference, initializing a code phase of the local spreading code for the second epoch based on the first code phase estimate; and in response to determining that the difference is greater than the threshold delay difference, initializing a code phase of the local spreading code for the second epoch based on the second code phase estimate.

[0099] Optionally, during the mixing step performed for the second epoch, a carrier phase of the local carrier signal is controlled based at least in part on the at least one Doppler estimate. Optionally, during the correlation step performed for the second epoch, a code phase of the local spreading code is controlled based at least in part on the at least one Doppler estimate. The method may also include, for a third epoch: obtaining a third sample of the GNSS signal; obtaining at least one Doppler estimate for the GNSS signal, wherein the at least one Doppler estimate is based on inertial measurements performed at the receiver; obtaining a carrier phase estimate based on the at least one Doppler estimate; obtaining a code phase estimate based on the at least one Doppler estimate; selecting between a carrier phase estimate based on the at least one Doppler estimate and a carrier phase estimate generated by the phase-locked loop; mixing the local carrier signal with the third sample to generate a third carrier-free signal sample, wherein based on a carrier phase estimate selected to control the carrier phase of the local carrier signal; selecting between a code phase estimate based on the at least one Doppler estimate and a code phase estimate generated by a delay locked loop; correlating the third carrier-free signal samples with the local spreading code to generate a third complex-valued correlation result for the third epoch, wherein the code phase of the local spreading code is controlled based on the selected code phase estimate; and processing the third complex-valued correlation result to generate at least one of: a third indication of whether the GNSS signal is detected; and a third GNSS measurement result for the third epoch.

[0100] For a second epoch, the carrier phase and the code phase may be unconditionally controlled based on at least one Doppler estimate.

[0101] For the third epoch, the carrier phase may be controlled based on the PLL or at least one Doppler estimate according to a predetermined condition. Likewise, the code phase may be controlled based on the DLL or at least one Doppler estimate according to a predetermined condition. In particular, the selection may be made in the manner described above based on the difference between the respective estimates.

[0102] The receiver may have a third mode of operation, wherein the third mode is effective for a third epoch. The third mode may be selected in response to detecting a poor quality signal reception condition. The third mode may be selected over the second mode when sufficient resources are available. For example, the third mode may be selected over the second mode when the mobile device has sufficient battery power to support the additional computational requirements of the third mode.

[0103] In some examples, only one of the second mode and the third mode may be implemented. Therefore, the selection of the mode may be only between the first mode and the second mode, or only between the second mode and the third mode.

[0104] The step of processing the complex-valued correlation result optionally includes performing a discrete Fourier transform DFT on the complex-valued correlation result. The GNSS measurement may be based on the result of the DFT. For example, the GNSS measurement result may include Doppler frequency and code-phase delay, which are obtained by finding peaks in one or more DFT results.

[0105] According to a second aspect, there is also provided a computer program, the computer program comprising computer program code, the computer program code being configured to, when the computer program is run on one or more physical computing devices, cause the one or more physical computing devices to perform all the steps of the method as described above. The one or more physical computing devices may comprise or consist of one or more processors of a GNSS receiver. The computer program may be stored on a computer-readable medium (optionally, non-transitory).

[0106] According to a second aspect, a global navigation satellite system (hereinafter referred to as GNSS) receiver is further provided, wherein the GNSS receiver is configured to process GNSS signals, and the GNSS receiver comprises a measurement engine, wherein the measurement engine is configured to:

[0107] For the first epoch:

[0108] Obtaining a first sample of the GNSS signal;

[0109] generating a local carrier signal;

[0110] mixing the local carrier signal with the first sample to generate a first carrier-free signal sample;

[0111] Generate local spreading codes;

[0112] correlating the first carrier-free signal samples with the local spreading code to generate a first complex-valued correlation result for the first epoch; and

[0113] processing the first complex-valued correlation result to produce at least one of: a first indication of whether the GNSS signal is detected; and a first GNSS measurement result for the first epoch,

[0114] wherein during the mixing step for the first epoch, a phase locked loop is used to control the carrier phase of the local carrier signal to track the carrier phase of the GNSS signal, and

[0115] For the second epoch:

[0116] obtaining a second sample of the GNSS signal,

[0117] obtaining at least one Doppler estimate for the GNSS signal, wherein the at least one Doppler estimate is based on inertial measurements made at the receiver,

[0118] mixing the local carrier signal with the second sample to generate a second carrier-free signal sample;

[0119] correlating the second carrier-free signal samples with the local spreading code to generate a second complex-valued correlation result for the second epoch; and

[0120] processing the second complex-valued correlation result to produce at least one of: a second indication of whether the GNSS signal is detected; and a second GNSS measurement result for the second epoch,

[0121] wherein during the mixing step performed for the second epoch, a carrier phase of the local carrier signal is controlled based at least in part on the at least one Doppler estimate.

[0122] The GNSS receiver may further include an RF front end for receiving, down-converting and digitizing the GNSS signal, and a mixer for erasing residual carrier from the signal. The GNSS receiver may further include an intermediate frequency (IF) processing unit for processing the signal down-converted from RF to IF by the RF front end. The output of the RF front end may be connected to the input of the intermediate frequency processing unit. The output of the IF processing unit may be connected to the input of the mixer.

[0123] The GNSS receiver may further comprise at least a first correlator coupled to the output of the mixer and configured to erase a spreading code of the GNSS signal.The first correlator may be part of a group of correlators comprising an early, prompt and late correlator.

[0124] One or more outputs of the first correlator may be coupled to at least one tracking loop, including one or both of a code tracking loop and a carrier tracking loop.

[0125] At least one tracking loop may include a code-phase feedback controller configured to estimate a code phase of the GNSS signal; the GNSS receiver may also include a code generator configured to generate a local spreading code.

[0126] The code generator may include a numerically controlled oscillator (NCO) configured to generate a clock signal for generating the local spreading code.

[0127] The code generator can provide an input to the correlator, enabling it to erase the spreading code of the GNSS signal.

[0128] The GNSS receiver may further include a carrier generator configured to generate a local carrier signal to erase the residual carrier from the GNSS signal. The carrier generator may include an NCO configured to generate the local carrier signal. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0130] Figure 1 is a block diagram of a GNSS receiver operating in a first operating mode according to an example;

[0131] Figure 2 is a block diagram of a GNSS receiver operating in a second operating mode according to an example;

[0132] Figure 3 is a block diagram of a GNSS receiver operating in a third mode of operation according to an example;

[0133] Figure 4 is a high-level block diagram of a GNSS receiver operating in a hybrid operating mode according to an example; and

[0134] Figure 5 is a graph showing Doppler frequency extrapolation according to an example.

[0135] It should be noted that these figures are schematic only and are not drawn to scale. DETAILED DESCRIPTION

[0136] Reference will now be made in detail to examples according to the present disclosure, which are illustrated in the accompanying drawings.The described examples should not be construed as being limited to the description given in this section; the examples may have different forms.

[0137] Figure 1 is a block diagram of a GNSS receiver operating in a first operating mode according to an example. This particular operating mode reflects a conventional signal tracking method. This conventional method may be applicable in good signal reception conditions (e.g., open air conditions with little or no multipath).

[0138] The GNSS receiver is configured to receive satellite signals from GPS satellites. It can be alternatively or additionally configured to receive satellite signals from other constellations (e.g., Galileo and BeiDou). The GNSS receiver includes an antenna 10 for receiving satellite signals. The RF front end 20 connected to the antenna 10 is configured to down-convert and digitize the satellite signals received via the antenna 10. The RF front end essentially conditions the signal for subsequent signal processing. Other typical tasks performed by the front end include filtering, amplification, and automatic gain control. The satellite signals received at the RF front end 20 via the antenna 10 include L1 C / A signals.

[0139] The GNSS receiver further comprises an intermediate frequency (IF) processing unit 30, which is configured to process the satellite signal converted from a radio frequency (RF) to an IF in the RF front end. The output of the IF processing unit 30 is connected to the input of a mixer 40. Another input of the mixer 40 receives a local carrier, hereinafter referred to as a replica carrier signal, which is generated to replicate the carrier frequency and phase of the incoming signal. The replica carrier signal is a digital sinusoidal signal generated by a carrier generator 42. In this way, the mixer 40 is configured to erase (i.e., remove) any residual carrier, such as an offset caused by the Doppler effect, from the incoming signal by mixing the incoming signal with the replica carrier signal (in other words, calculating the product of the incoming signal and the replica carrier signal). In this example, it will be assumed that the intermediate frequency is (approximately) zero. Although the carrier of the satellite signal has been removed before the incoming signal reaches the mixer 40, there will still be a (small) constant residual IF and a varying carrier offset caused by the relative motion between the satellite and the GNSS receiver. The carrier generator 42 comprises a numerically controlled oscillator (NCO) 44 configured to generate the replica carrier signal.

[0140] The output of the mixer 40 is provided as an input to a correlator bank 50 comprising three correlators. Each correlator comprises a multiplier and an integrate-and-dump (I / D) unit ( Figure 1). The output of each multiplier is provided to a corresponding integration-removal (I / D) unit as input. Each multiplier multiplies the input signal with the replica spreading code. Each I / D unit calculates the sum of the resulting product values ​​within an appropriate dwell time. The dwell time defines the length of the coherent integration within the correlator and corresponds to an integer number of iterations (most commonly one iteration) of the spreading code used to modulate the GNSS signal. The correlator group includes an "early" (E) correlator, a "prompt" (P) correlator; and a "late" (L) correlator. As the names suggest, these three correlators use different shifted versions of the replica spreading code. The replica spreading code is a binary pseudo-random noise (PRN) signal generated by a code generator 52, which operates under the control of a code loop controller 62. The code loop controller 62 receives the outputs of the three I / D units. It should be understood that the use of three correlators is merely illustrative. In many examples, there may be more than three correlators. In particular, there may be multiple "early" correlators, each with a different delay (shift) of the replica spreading code. Likewise, there may be multiple "late" correlators, each with a different delay (shift) of the replica spreading code. According to one implementation, in addition to one prompt correlator, there are four "early" correlators and four "late" correlators, i.e., a total of nine correlators.

[0141] Based on which correlator (E, P, L) has the maximum output value for the current dwell time, the controller 62 determines whether to adjust (eg, increment or decrement) the code phase delay control signal it provides to the code generator 52 .

[0142] The code generator 52 is a signal code generator for the associated GNSS signal. It includes an NCO 54 configured to generate a clock signal for generating a replica spreading code for the GNSS signal. The NCO is controlled in part by a code phase delay control signal from a code loop controller 62 and in part based on a frequency estimate generated by the carrier loop controller 64.

[0143] In this way, the correlator group together with the code loop controller 62, the carrier loop controller 64 and the code generator 52 acts as a code phase tracking loop (in other words, a delay locked loop (DLL)) for the GNSS signal. The code phase tracking loop ensures that the code phase of the replica spreading code used by the "P" correlator tracks the actual code phase of the received other L1 signal with as little delay as possible.

[0144] The outputs of the I / D units within the correlator bank 50 consist of complex-valued samples, also referred to as in-phase and quadrature samples (I / Q samples). In particular, the outputs of the I / D units of the prompt (P) correlators represent I / Q samples of the GNSS signal. When implemented in hardware, each correlator (like other hardware blocks) will include separate I and Q branches. That is, there will be a multiplier and I / D unit for the in-phase (I) samples, and another multiplier and I / D unit for the quadrature phase (Q) samples. However, for simplicity, it is more convenient to conceptualize them as a single multiplier and a single I / D unit with a complex output, and this is how it will be described here.

[0145] The I / Q samples from the prompt ("P") correlator output are provided to a carrier loop controller 64. The carrier loop controller 64 estimates the carrier frequency and carrier phase of the GNSS signal. It outputs the estimate as a carrier control signal, which is fed back to control the NCO 44 of the carrier generator 42. In providing this feedback, the carrier loop controller 64 implements a carrier tracking loop for the GNSS signal, ensuring that the frequency (and phase) of the replica carrier signal (generated by the carrier generator 42) tracks the actual frequency (and phase) of the carrier of the received L1 signal as closely as possible. This enables the GNSS receiver to account for Doppler shifts due to relative motion between the receiver and the satellite. By controlling the frequency of the NCO in the carrier generator 42, both the frequency and phase of the replica carrier signal are controlled to match the frequency and phase of the residual carrier. (By increasing the frequency, the phase of the replica carrier signal is advanced; by decreasing the frequency, the phase of the replica carrier signal is delayed.) In effect, this implements a phase-locked loop (PLL) that tracks the residual carrier frequency and phase.

[0146] In the present implementation, the code loop controller 62 and the carrier loop controller 64 generate updates at the same rate (eg, 50 Hz). That is, they both operate with the same control period (20 milliseconds in this example).

[0147] In addition to updating the NCO 54 of the code generator 52 based on the code phase measurement results generated by the code loop controller 62, it is also advantageous to update the chip rate of the NCO 54 (and thus the code phase) based on the output of the carrier loop controller 64. The carrier auxiliary block 70 converts the output of the carrier loop controller 64 (which is actually an estimate of the Doppler frequency) into a chip rate control value for the code NCO 54. The code NCO 54 runs at a specified chip rate within a control period (e.g., 20 milliseconds). Thus, the chip rate affects the evolution of the code phase of the replica spreading code. The chip rate control value is a value reduced from the Doppler estimate, which is based on a constant ratio of the nominal carrier frequency to the nominal chip rate. If the code loop controller 62 detects a change / error in the code phase, it updates the code phase delay control signal accordingly in the next control period. This control of the code phase is added to the cumulative effect of the chip rate control.

[0148] Note that in contrast to the carrier NCO 44, the code NCO 54 has two inputs, one for chip rate control (from the carrier auxiliary block 70, based on the Doppler estimate from the carrier loop controller 64), and one for code phase control (from the code loop controller 62). They are controlled independently. The chip rate control determines the chip rate. The code phase control determines the initial code phase for the control period. As a result, unlike the previously described PLL (used to track carrier frequency and phase), the code phase is not necessarily continuous at the boundaries between control periods.

[0149] The above components enable a GNSS receiver to track GNSS signals in terms of frequency and phase of the carrier and code phase.The code tracking loop and the carrier loop form a "measurement engine" comprising blocks 40 to 70.

[0150] In tracking mode, the output of the code loop controller 62 provides real-time code phase measurements. Similarly, the output of the carrier loop controller 64 provides real-time Doppler measurements. The code phase measurements and Doppler measurements are provided to the positioning engine ( Figure 1 The code loop controller 62 can detect whether a GNSS signal has been successfully acquired, or whether the tracking loop is actually tracking noise. This can be done by comparing the correlation results of the lead, lag and instantaneous taps. When a GNSS signal is present, the amplitude of the correlation output of the instantaneous tap is significantly greater than the corresponding amplitudes of the lead and lag taps.

[0151] Figure 1Demodulation / bit detection is not illustrated in the simplified block diagram of . However, it should be understood that this is also typically performed in practice when receiving GNSS signals. When tracking the pilot sequence, bit detection is not required. When tracking the rest of the GNSS signal, bit detection can be performed by examining the phase changes from symbol to symbol on the prompt correlator output.

[0152] According to one aspect of the present disclosure, when the GNSS receiver determines that the signal reception conditions are good (at least for the GNSS signal in question), the GNSS receiver uses Figure 1 For example, the GNSS receiver may determine that C / N0 is greater than 37 dB-Hz, or that the carrier phase lock is intact, or that the residual is below a predetermined threshold (or may determine that a combination of two or more of these criteria are met). Note that this determination may be made independently for each GNSS signal that the receiver is tracking. Figure 1 The example shows a tracking method for one GNSS signal, but it should be understood that the receiver will typically track multiple GNSS signals simultaneously to generate a navigation solution.

[0153] Figure 2 is a block diagram of a GNSS receiver operating in a second operation mode according to an example. For simplicity, the antenna 10, the RF front end 20 and the IF processing unit 30 are omitted. Figure 1 The mixer 40, correlator bank 50, carrier generator 42, code generator 52 and carrier auxiliary block 70 operate in the same manner as in the example of FIG. Figure 1 and therefore will not be described further.

[0154] Figure 2 The operating modes shown are similar to Figure 1 The operating modes shown differ in the way the carrier and chips of the GNSS signal are tracked. Figure 2 In the illustrated mode of operation, there is no feedback loop within the measurement engine itself. Instead, feedback to control the carrier NCO 44 and code NCO 54 is provided by the positioning engine (PE) 110 which is responsible for calculating the navigation solution.

[0155] for Figure 2 In the illustrated mode of operation, the outputs of the lag, lead and lead taps of the correlator bank 50 are provided as inputs to respective bit removal (BR) blocks 82, 84 and 86. When a portion of a GNSS signal containing data (e.g., a navigation message) is received, the bit removal blocks 82, 84, 86 erase the detected data bits by multiplying the complex correlator outputs by 1 or -1, as appropriate. When a portion of a GNSS signal containing a pilot sequence is received, no bit detection is required because the bit sequence of the pilot signal is known in advance.

[0156] The output of each bit removal block 82, 84, 86 is provided as input to a corresponding discrete Fourier transform (DFT) block 83, 85, 87. Each DFT block calculates the Fourier transform of the complex correlator output within a defined coherent integration interval. The output of the DFT blocks 83, 85, 87 is provided as input to a line of sight (LoS) delay and Doppler estimator 90. The estimator 90 uses the information from the Fourier transform to estimate the carrier phase and code phase of the GNSS signal.

[0157] The aggregated outputs of DFT blocks 83, 85, 87 form a two-dimensional matrix that covers a range of frequencies and a range of code-phase delays. In a time-varying channel, each multipath component typically has Doppler and delay values ​​that are different from the LoS value. In this delay-frequency matrix, a correlation triangle appears at a specific Doppler value, with the peak of the triangle representing the delay and Doppler proximity of the multipath component. By inspecting the matrix, several such peaks in the delay-frequency grid can be identified. The peak with the shortest arrival time is detected as the line-of-sight path. Once completed, the taps on both sides of the correlation triangle are interpolated to give an estimate of the delay.

[0158] When the GNSS signal is accurately tracked (and there are no fast dynamics), the LoS component should remain aligned with the "instantaneous" tap, with a Doppler frequency of zero. Any deviation between the code phase of the local spreading code and the code phase of the received GNSS signal will cause the leading or lagging correlator tap to show an output with a larger amplitude than the instantaneous tap. At the same time, any deviation between the carrier frequency of the local carrier signal and the carrier frequency of the received GNSS signal will show up in the Fourier transform as a peak at a non-zero frequency.

[0159] The output of the estimator 90 corresponds to Figure 1 The outputs of the code loop controller 62 and the carrier loop controller 64 in FIG. Figure 2In the illustrated mode of operation, the output of the estimator is not used directly to control the carrier generator 42 or the code generator 52. Instead, the output of the estimator 90 is provided as one of the multiple inputs to the positioning engine 110. The positioning engine 110 also receives input from an inertial measurement unit (IMU) 120. One output of the positioning engine is a navigation solution, including estimates of position, velocity, time (PVT), and other state variables. The navigation solution is generated once per epoch and passed to a Tracking Intelligence Provider (TIP) generator 130. The positioning engine 110 also outputs more frequent estimates of the Doppler frequency based on the inertial measurements received since the most recent navigation solution. These Doppler frequency estimates are also output to the TIP generator. For example, the interval between epochs can be 1 second; therefore, the navigation solution can be output at a frequency of 1 Hz. The interval between Doppler estimates can be 20 milliseconds; therefore, the Doppler estimates can be output at a frequency of 50 Hz.

[0160] The TIP generator 130 converts the output of the positioning engine 110 into a code phase delay control signal for the code generator 52 and a carrier control signal for the carrier generator 42. To do this, the TIP generator 130 compares the current satellite positions with the current PVT solution from the positioning engine 110. From this comparison, the TIP generator predicts the delay and Doppler along the line of sight vector from the receiver to each satellite.

[0161] The code phase delay control signal is updated at a lower rate (e.g., 1 Hz). This is because the code phase estimate is generated once per epoch as part of the navigation solution. The carrier control signal is updated at a higher rate, based on the more frequent Doppler estimate. Note that although the code phase delay control signal is only updated at a lower rate (e.g., 1 Hz), the code phase of the code generator 52 is updated at a higher rate (e.g., 50 Hz). This is because the carrier auxiliary unit 70 continuously updates the code generator 52 at a higher rate in the interval between epochs based on the higher rate Doppler estimate. In this way, the high rate Doppler estimate can help compensate for the acceleration and high-order dynamics of the receiver during the coherent integration of the correlator group and DFT block. Note, however, that the code phase of the code NCO is reinitialized at the beginning of each epoch based only on the code phase delay control signal. In other words, the evolution of the code phase in the previous epoch due to the cumulative impact of the carrier auxiliary block 70 does not affect the setting of the code phase at the beginning of the next epoch.

[0162] Figure 2The measurement engine in includes blocks 40 to 90 (but not including blocks 110, 120, 130). The output of the measurement engine is the output of the estimator 90. The positioning engine 110 receives corresponding inputs from multiple measurement engines - one input for each tracked GNSS signal. Typically, at least four signals from different satellites will be tracked to support the calculation of the navigation solution. The positioning engine 110 combines the information provided by the GNSS measurements from the various measurement engines with the information provided by the inertial measurements from the IMU 120. To this end, the positioning engine 110 uses a Kalman filter or other state estimator. The output of the state estimator includes a position, velocity, and time (PVT) solution. As described above, the TIP generator 130 predicts the Doppler frequency and code phase of each GNSS signal based on the PVT solution and the corresponding satellite LoS vector. Please note that in some embodiments, the functionality of the TIP generator 130 can be incorporated into the positioning engine 110. For example, the positioning engine 110 can output state estimates of the Doppler frequency and code phase of each satellite.

[0163] Figure 2 The illustrated mode of operation may be particularly useful in difficult signal reception conditions. Completing the tracking loop by the positioning engine 110 helps to make the feedback to the code generator 52 and the carrier generator 42 as robust and stable as possible. In the event that the corresponding measurement engine may lose tracking lock on a weak GNSS signal, if it is operating independently, the information provided by the other measurement engine (and IMU 120) may enable continued tracking of the weak GNSS signal.

[0164] At the same time, since the tracking can maintain lock on the GNSS signal even in challenging signal reception conditions (even in fast dynamic situations due to the use of inertial measurements), the coherent integration time of the correlator bank 50 and subsequent DFT blocks 83, 85, 87 can be increased. This in turn increases the sensitivity of the measurement engine, enabling it to acquire and track weaker signals. In one example according to the present disclosure, the coherent integration time of the DFT block is 1 second.

[0165] The sequence of operations performed for each epoch will now be described in more detail. The positioning engine 110 provides code phase and Doppler inputs from the navigation solution, once per epoch. This is used to set NCO 44 and NCO 54. The correlator group 50 begins to generate millisecond samples. The positioning engine 110 provides high-rate Doppler inputs multiple times per epoch (for example, in this example, 50 times per epoch). Each time a new Doppler input is provided, the NCO 44 and NCO 54 are set based on this. (The code NCO 54 is set via the carrier auxiliary unit 70; the carrier NCO is set directly.) The correlator group 50 continues to generate millisecond samples. These are inputs to the DFT blocks 83, 85, 87 to calculate the DFT. After the DFT blocks 83, 85, 87 generate the Fourier transform, they are evaluated by the estimator 90.

[0166] Optionally, once the millisecond samples are available, they can be pre-integrated to begin calculating the DFT in a pipelined manner. Alternatively, the millisecond samples can be stored until enough samples are available for a complete coherent integration period (e.g., 1 second), and then the DFT can be calculated using the complete sample set.

[0167] Figure 3 is a block diagram of a GNSS receiver operating in a third operating mode according to an example. The third operating mode is essentially a hybrid of the first two modes. Figure 3 and Figure 2 It is easiest to understand by comparison. Figure 2 Likewise, for simplicity, the antenna, RF front end and IF processing unit are omitted. Figure 3 The operating mode depends on the Figure 2 All components are the same and operate in the same way. This includes the mixer 40, correlator bank 50, carrier generator 42, code generator 52, carrier assistance block 70, bit removal blocks 82, 84, 86, DFT blocks 83, 85, 87, estimator 90, positioning engine 110, IMU 120 and TIP generator 130. However, Figure 3 The operating mode of relies on two additional components, namely, the frequency control selector 140 and the code phase control selector 150 .

[0168] The frequency control selector 140 receives two inputs. One input is coupled to the output of the LoS delay and Doppler estimator 90. This provides the frequency control selector 140 with a Doppler estimate generated by the measurement engine (i.e., the estimator 90). The second input is coupled to the output of the TIP generator 130. This provides the frequency control selector 140 with a Doppler estimate generated from the output of the positioning engine 110 (based in part on inertial measurements from the IMU 120). For each epoch (i.e., for each coherent integration of the DFT blocks 83, 85, 87), the frequency control selector 140 selects one of the two Doppler estimates to control the carrier generator 42 (and the code generator 52 via the carrier assistance block 70). When the frequency control selector 140 selects the Doppler estimate generated by the estimator 90, the frequency control is switched to the carrier generator 42 in a manner similar to that of the carrier generator 52. Figure 1 When the frequency control selector 140 selects the Doppler estimate generated by the TIP generator 130, the frequency control is implemented in a manner similar to Figure 2 way to achieve it.

[0169] The code phase control selector 150 operates in a similar manner. It receives two inputs. One input is coupled to the output of the LoS delay and Doppler estimator 90. This provides the code phase control selector 150 with the code phase estimate generated by the measurement engine (i.e., the estimator 90). The second input is coupled to the output of the TIP generator 130. This provides the code phase estimate generated from the output of the positioning engine 110 (based in part on inertial measurements from the IMU 120) to the code phase control selector 150. For each epoch (i.e., for each coherent integration of the DFT blocks 83, 85, 87), the code phase control selector 150 selects one of the two code phase estimates to control the code generator 52. When the code phase control selector 150 selects the code phase estimate generated by the estimator 90, the code phase control is performed in a manner similar to Figure 1 When the code phase control selector 150 selects the code phase estimate generated by the TIP generator 130, the code phase control is implemented in a manner similar to Figure 2 way to achieve it.

[0170] Both the estimator 90 and the TIP generator 130 generate code phase estimates at a relatively low rate (e.g., 1 Hz). They both generate Doppler estimates at a relatively high rate (e.g., 50 Hz). The frequency control selector 140 and the code phase control selector 150 can independently select between their inputs. This allows Figure 3 The operating mode of the Figure 2 The operation mode can also be seen as Figure 3 A simplified version of the operating mode.

[0171] There are a number of ways to select which estimates are used to drive NCO 44 and NCO 54. According to the present example, the selection is based on checking for consistency between pairs of estimates.

[0172] The frequency control selector 140 compares the Doppler estimate generated by the estimator 90 with the Doppler estimate generated by the TIP generator 130. If the two estimates agree (i.e., if the absolute difference between them is less than a predetermined threshold), the frequency control selector 140 selects the Doppler estimate generated by the estimator 90 for the current epoch. Otherwise, the frequency control selector 140 selects the Doppler estimate generated by the TIP generator 130.

[0173] The code phase control selector 150 compares the code phase estimate generated by the estimator 90 with the code phase estimate generated by the TIP generator 130. If the two estimates agree (i.e., if the absolute difference between them is less than a predetermined threshold), the code phase control selector 150 selects the code phase estimate generated by the estimator 90 for the current epoch. Otherwise, the code phase control selector 150 selects the code phase estimate generated by the TIP generator 130.

[0174] Without being bound by theory, it is believed that as long as signal reception conditions are good, the Doppler estimate and code phase estimate produced by the measurement engine (i.e., estimator 90) are generally more accurate than those produced by the TIP generator 130. When signal reception conditions are poor, the measurement engine may begin to lose lock on the GNSS signal, and one or both estimates produced by the measurement engine may therefore deviate from the estimates produced by the TIP generator 130. By detecting this, the Doppler estimate and code phase estimate produced by the measurement engine (i.e., estimator 90) may be more accurate than those produced by the TIP generator 130. Figure 3 mode of operation, the system can switch to the more reliable estimate generated by the TIP generator 130.

[0175] According to various aspects of the present disclosure, Figures 1 to 3 The operating modes can be used in various configurations. For example, a GNSS receiver can be used only Figure 2 mode of operation, or just use Figure 3 According to some examples, the GNSS receiver may be configured to implement more than one operating mode. For example, the GNSS receiver may be configured to implement Figure 1 The operating mode and Figure 2 Alternatively, the GNSS receiver may be configured to implement Figure 1 The operating mode and Figure 3 modes of operation and choose between them in different situations.

[0176] In some examples, a GNSS receiver may be configured to implement all three modes of operation and select between them. Figure 4 is a high-level block diagram of a GNSS receiver operating in a hybrid mode of operation according to such an example. Figure 4 , antenna 10 is shown. However, for simplicity, RF front end 20 and IF processing unit 30 are not shown. IF samples from the IF processing unit are input to demultiplexer 210. Based on the mode selection signal generated by mode selector 230, demultiplexer 210 directs the samples to one of the three tracking loops. Mode 1 tracking loop 221 implements Figure 1 Mode of operation; Mode 2 tracking loop 222 implementation Figure 2 Mode of operation; Mode 3 tracking loop implementation Figure 3 The outputs of the three tracking loops 221, 222, 224 are provided to a multiplexer 212 which selects between them. Like the demultiplexer 210, the multiplexer 212 is controlled by a mode selector 230. The output of the multiplexer 212 is the GNSS measurement result produced by the corresponding selected tracking loop. (In this example, the positioning engine is treated as a separate component and is not included in the Figure 4 GNSS measurements are provided to the positioning engine to derive a navigation solution.

[0177] The mode selector 230 selects a mode based on the signal quality indication. In one example, if C / N0 is greater than 37 dB-Hz, or the carrier phase lock is intact, or the residual is below a predetermined threshold, the signal reception condition can be classified as good quality for the GNSS signal. In this case, mode 1 can be selected for the signal. If the signal quality is poor (i.e., poor quality), mode 3 can be selected. If the signal quality is poor but the receiver is trying to save power (because mode 2 can be considered a simplified version of mode 3), mode 2 can be selected. It should be understood that the mode selection can be made independently for each GNSS signal that the receiver is tracking. For example, for a given epoch, mode 1 can be selected for one or more GNSS signals, and mode 2 (or mode 3) can be selected for one or more other GNSS signals.

[0178] exist Figure 2 and Figure 3 In the 100 mode of operation, when the Doppler estimate is obtained from the TIP generator (based on the output of the positioning engine 110), an optional improvement can be applied. Although the TIP generator 130 provides Doppler estimates at a higher rate (e.g., 50 Hz) (which is the same rate as the estimator 90), there is an additional delay in the Doppler estimate produced by the TIP generator 130. One method to help compensate for this is to extrapolate the Doppler frequency expected when the carrier NCO 44 and code NCO 54 are next updated from the most recent estimate of the Doppler frequency.

[0179] According to the present implementation, the Doppler estimate is extrapolated assuming constant acceleration. This assumes a linear relationship between the Doppler frequency and time. The instantaneous acceleration (or rate of change of the Doppler frequency) is estimated by comparing the two most recently available Doppler estimates. The TIP generator 130 then uses the acceleration estimate to extrapolate from the most recent Doppler estimate to predict the Doppler frequency when the NCO 44, NCO 54 is next set. This is done in Figure 5 As an example, the update rate of the NCO is 50 Hz and the delay is assumed to be 40 ms. Figure 5 The plots in represent intervals equal to the coherent integration time of the DFT (1 second in this example).

[0180] The dashed line represents a hypothetical linear function of Doppler frequency with respect to time. In the example shown, the frequency increases with time. This corresponds to the situation where the GNSS receiver accelerates as it approaches the satellite. The Doppler frequency is approximated by a piecewise constant function because the Doppler is estimated and the NCO updates it every 20 milliseconds. Due to the time delay in the system (40 milliseconds, which is equal to two piecewise constant intervals), the Doppler estimate (dotted line) always lags behind the true Doppler frequency (dashed line). As the frequency increases, this means that the Doppler estimate lags behind the true Doppler. This is as shown in the figure. Figure 5 Shown - The lower step function (dotted line) represents the Doppler estimate with a 40 millisecond delay. To compensate for this delay, the TIP generator extrapolates upward to account for the (expected) further increase in Doppler frequency during the delay period. The extrapolation assumes that the Doppler frequency will continue to exhibit the same rate of change over time. The extrapolated Doppler estimate is represented by the upper step function (solid black line), which better approximates the true (linearly increasing) Doppler frequency. The triangular function around 0 Hz (shown as a dash-dotted line) is the residual Doppler frequency, which can be seen in the complex correlator output.

[0181] In the current implementation of the GNSS receiver, blocks 20, 30, 40, 42, 44, 50, 52 and 54 are implemented in dedicated hardware. Blocks 62, 64, 70, 82 to 87, 90, 110, 120, 130, 140 and 150 are currently implemented in software running on a processor of the GNSS receiver. However, they can also be implemented in dedicated hardware.

[0182] It should be understood that the scope of the present disclosure is not limited to the above examples. Based on the above description, many variations will be apparent to those skilled in the art.

[0183] The 20 millisecond dwell time / integration period for the coherent integration described above may be beneficial; however, the method is not limited in this respect. A longer or shorter integration period may be selected. The selection may be based on the signal conditions expected or encountered in use. For example, in a highly dynamic scenario, where the receiver is subject to frequent rapid changes in speed and / or direction, a shorter coherent integration period may be required to better cope with the signal dynamics. Conversely, if the receiver is expected to be static, it may be beneficial to extend the coherent integration period - for example, to integrate over multiple bit periods of the GNSS signal.

[0184] In the examples above, the measurement engine is described as generating GNSS measurements from GNSS signals. This is indeed the typical primary purpose of a measurement engine. However, the measurement engine may also (or alternatively) generate an indication of whether a GNSS signal is detected, i.e., whether a GNSS signal has been acquired before tracking the GNSS signal and / or taking a GNSS measurement. This may be very useful, particularly if a GNSS signal lock is lost during tracking of the GNSS signal.

[0185] Other variations involve the implementation of the blocks. In the examples discussed above, certain components are defined in software or software modules running on a processor of the GNSS receiver. However, in other examples, some or all of these units may be implemented in dedicated fixed-function hardware. Likewise, components defined in hardware according to the above examples may be defined in software in other implementations.

[0186] In the claims, any reference numerals placed in brackets shall not be construed as limiting the claims. The word "comprise" does not exclude the presence of elements or steps other than those listed in the claim. However, when the word "comprise" is used, this also discloses as a special case the possibility that the listed elements or steps are exhaustive - that is, the device or method may consist of only these elements or steps. The word "one" before an element does not exclude the presence of multiple such elements. The embodiment may be implemented by means of hardware comprising several different elements. In a device claim that lists several units, several of these units may be implemented by the same hardware. The fact that certain measures are described in different dependent claims does not in itself indicate that the combination of these measures cannot be fully utilized. In addition, in the appended claims, a list including "at least one of A, B and C" should be interpreted as (A and / or B) and / or C.

[0187] In flowcharts, abstracts, claims, and descriptions related to methods, the order in which the steps are listed is generally not intended to limit the order in which the steps are performed. The steps may be performed in an order different from that shown (unless otherwise specified, or a subsequent step depends on the product of a previous step). However, in some cases, the order in which the steps are described may reflect a preferred order of operation.

[0188] Furthermore, in general, various embodiments may be implemented in hardware or dedicated circuits, software, logic, or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software, which may be executed by a controller, microprocessor, or other computing device, although these are not limiting examples. Although various aspects described herein may be illustrated and described in block diagrams, flow charts, or using other graphical representations, it is fully understood that the blocks, devices, systems, techniques, or methods described herein may be implemented in hardware, software, firmware, dedicated circuits or logic, general hardware or controllers or other computing devices, or combinations thereof, as non-limiting examples.

[0189] The embodiments described herein can be implemented by computer software that can be executed by a data processor (e.g., a processor entity) of the device, or by hardware, or by a combination of software and hardware. In addition, it should be noted in this regard that any block of the logic flow in the figure can represent a program step, or interconnected logic circuits, blocks and functions, or a combination of program steps and logic circuits, blocks and functions. The software can be stored on physical media such as memory blocks implemented in a memory chip or processor, magnetic media (e.g., hard disk or floppy disk), and optical media (e.g., DVD and data variants thereof, CD).

[0190] The memory may be of any type suitable for the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor-based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory, and removable memory. The data processor may be of any type suitable for the local technical environment and may include one or more of a general-purpose computer, a special-purpose computer, a microprocessor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a gate-level circuit, and a processor based on a multi-core processor architecture, as non-limiting examples.

[0191] The embodiments discussed herein can be implemented in various components, such as integrated circuit modules. The design of integrated circuits is typically a highly automated process. Complex and powerful software tools are available to convert logic-level designs into semiconductor circuit designs that are ready to be etched and formed on semiconductor substrates.

Claims

1. A method of processing a GNSS signal received at a receiver at a current epoch based on information derived at least in part from a previous epoch, the method comprising the steps of: obtaining samples of the GNSS signal for the current epoch, The first spreading code iteration for the current epoch: obtaining a first Doppler estimate for the GNSS signal, wherein the first Doppler estimate is derived from the previous epoch; initializing a carrier phase of a local carrier signal for the current epoch based on the first Doppler estimate; mixing the local carrier signal with a first plurality of the samples to generate first carrier-free signal samples; and correlating the first carrier-free signal sample with a local spreading code to generate a first complex-valued correlation result for the current epoch, For each of a plurality of subsequent spreading code iterations of the current epoch: obtaining a second Doppler estimate for the GNSS signal, wherein the second Doppler estimate is based on inertial measurements made at the receiver; updating a carrier phase of the local carrier signal based on the second Doppler estimate; mixing the local carrier signal with a second plurality of the samples to generate second carrier-free signal samples; and correlating the second carrier-free signal sample with the local spreading code to generate a second complex-valued correlation result, The method also includes processing the first complex-valued correlation result and the second complex-valued correlation result to produce at least one of: an indication of whether the GNSS signal is detected; and a GNSS measurement result for the current epoch.

2. The method according to claim 1, further comprising: For the first iteration of the spreading code: A code phase estimate is obtained for the GNSS signal, wherein: The code phase estimate is derived from a navigation solution for the previous epoch; as well as initializing a code phase of the local spreading code for the current epoch based on the code phase estimate, and For each of the plurality of subsequent spreading code iterations: A code phase of the local spreading code is updated based on the second Doppler estimate.

3. The method according to claim 1 or 2, wherein: The step of processing the first complex-valued correlation result and the second complex-valued correlation result comprises coherently integrating the first complex-valued correlation result and the second complex-valued correlation result.

4. The method according to claim 1 or 2, wherein: The step of processing the first complex-valued correlation result and the second complex-valued correlation result comprises performing a discrete Fourier transform DFT on the first complex-valued correlation result and the second complex-valued correlation result.

5. The method according to claim 1 or 2, wherein: The step of correlating the first mixed signal sample and the second mixed signal sample with the local spreading code includes correlating the first mixed signal sample and the second mixed signal sample with an advanced version of the local spreading code and a lagging version of the local spreading code.

6. The method according to claim 1 or 2, wherein: The GNSS measurement result comprises a code phase of the GNSS signal, and wherein processing the first complex-valued correlation result and the second complex-valued correlation result comprises determining the code phase of the GNSS signal based on the first complex-valued correlation result and the second complex-valued correlation result.

7. The method according to claim 1 or 2, further comprising calculating a navigation solution based on the determined code phase, wherein: The navigation solution includes a new first Doppler estimate for use in a later epoch.

8. The method according to claim 1 or 2, further comprising: estimating a rate of change of the second Doppler estimate; as well as extrapolating a third Doppler estimate from the second Doppler estimate, wherein the third Doppler estimate is extrapolated based on the estimated rate of change, Therein, the step of updating the carrier phase comprises updating the carrier phase based on the third Doppler estimate.

9. The method according to claim 1 or 2, wherein: The first Doppler estimate is derived from a navigation solution of the previous epoch.

10. The method according to claim 1 or 2, wherein: The first Doppler estimate is derived from the previous epoch using a phase locked loop.

11. A computer program product comprising a computer program, the computer program comprising computer program code, the computer program code being configured to cause one or more physical computing devices to perform all the steps of the method according to any one of claims 1 to 10 when the computer program is run on the one or more physical computing devices.

12. A Global Navigation Satellite System (GNSS) receiver (100), the GNSS receiver being configured to process GNSS signals received at a current epoch based on information derived at least in part from a previous epoch, the GNSS receiver comprising a measurement engine, the measurement engine being configured to: obtaining samples of the GNSS signal for the current epoch, The first spreading code iteration for the current epoch: A first Doppler estimate is obtained for the GNSS signal, wherein: The first Doppler estimate is derived from the previous epoch; initializing a carrier phase of a local carrier signal for the current epoch based on the first Doppler estimate; mixing the local carrier signal with a first plurality of the samples to generate first carrier-free signal samples; as well as correlating the first carrier-free signal sample with a local spreading code to generate a first complex-valued correlation result for the current epoch, For each of a plurality of subsequent spreading code iterations of the current epoch: obtaining a second Doppler estimate for the GNSS signal, wherein the second Doppler estimate is based on inertial measurements made at the receiver; updating a carrier phase of the local carrier signal based on the second Doppler estimate; mixing the local carrier signal with a second plurality of the samples to generate second carrier-free signal samples; and correlating the second carrier-free signal sample with the local spreading code to generate a second complex-valued correlation result, The first complex-valued correlation result and the second complex-valued correlation result are processed to produce at least one of: an indication of whether the GNSS signal is detected; and a GNSS measurement result for the current epoch.

Citation Information

Cited By

  • Processing a GNSS signal based on doppler estimates

    US12693430B2

  • Processing a GNSS signal based on doppler estimates

    US20250123407A1