Processing a GNSS signal based on doppler estimates
Processing a Global Navigation Satellite System (GNSS) signal that is received at a receiver includes, e.g., initializing a carrier phase of a local carrier signal for a current epoch and based on a first Doppler estimate, in which the first Doppler estimate is derived from a measurement gathered in a previous epoch. The carrier phase then is updated repeatedly for the current epoch while the GNSS signal is mixed with the local carrier signal. Updating the carrier phase relies on second Doppler estimates, which are based on inertial measurements made at the receiver. Using the inertial measurements can, in some cases, negative effects of dynamic motion associated with coherent integration.
1 . A method of processing a Global Navigation Satellite System (GNSS) signal received at a receiver at a current epoch, based on information derived at least in part from a previous epoch, comprising:
obtaining samples of the GNSS signal for the current epoch;
for a first spreading code iteration of 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 of the GNSS signal to generate first mixed carrier-free signal samples,
correlating the first mixed carrier-free signal samples 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 the 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 mixed carrier-free signal samples,
correlating the second mixed carrier-free signal samples with the local spreading code to generate a second complex-valued correlation result; and
processing the first and second complex-valued correlation results to produce at least one of: an indication of whether the GNSS signal is detected or not; and a GNSS measurement for the current epoch.
2 . The method of claim 1 , further comprising,
for the first spreading code iteration:
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 the plurality of subsequent spreading code iterations:
updating the code phase of the local spreading code based on the second Doppler estimate.
3 . The method of claim 1 , wherein processing the first and second complex-valued correlation results comprises coherently integrating the first and second complex-valued correlation results.
4 . The method of claim 1 , wherein processing the first and second complex-valued correlation results comprises performing a discrete Fourier transform (DFT) on the first and second complex-valued correlation results.
5 . The method of claim 1 , wherein correlating the first and second mixed carrier-free signal samples with the local spreading code comprises correlating them with an early version of the local spreading code and a late version of the local spreading code.
6 . The method of claim 1 , wherein the GNSS measurement comprises a code phase of the GNSS signal, and wherein processing the first and second complex-valued correlation results comprises determining the code phase of the GNSS signal based on the first and second complex-valued correlation results.
7 . The method of claim 6 , 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 of claim 1 , further comprising:
estimating a rate of change of the second Doppler estimates; and
extrapolating third Doppler estimates from the second Doppler estimates, wherein the third Doppler estimates are extrapolated based on the estimated rate of change,
wherein updating the carrier phase comprises updating the carrier phase based on the third Doppler estimates.
9 . The method of claim 1 , wherein the first Doppler estimate is derived from a navigation solution for the previous epoch.
10 . The method of claim 1 , wherein the first Doppler estimate is derived from the previous epoch using a phase locked loop.
11 . A computer program comprising computer program code configured to, when executed by one or more physical computing devices, causes the one or more physical computing devices to perform operations comprising:
obtaining samples of a GNSS signal for a current epoch,
for a first spreading code iteration of the current epoch:
obtaining a first Doppler estimate for the GNSS signal, wherein the first Doppler estimate is derived from a 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 mixed carrier-free signal samples; and
correlating the first mixed carrier-free signal samples 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 a receiver;
updating the 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 mixed carrier-free signal samples; and
correlating the second mixed carrier-free signal samples with the local spreading code to generate a second complex-valued correlation result,
the operations further comprising processing the first and second complex-valued correlation results to produce at least one of: an indication of whether the GNSS signal is detected or not; and a GNSS measurement for the current epoch.
12 . A Global Navigation Satellite System (GNSS) receiver configured to process a GNSS signal received at a current epoch, based on information derived at least in part from a previous epoch, the GNSS receiver comprising a measurement engine configured to:
obtain samples of the GNSS signal for the current epoch;
for a first spreading code iteration of the current epoch
obtain a first Doppler estimate for the GNSS signal, wherein the first Doppler estimate is derived from the previous epoch,
initialize a carrier phase of a local carrier signal for the current epoch based on the first Doppler estimate,
mix the local carrier signal with a first plurality of the samples to generate first carrier-free signal samples,
correlate the first carrier-free signal samples 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
obtain a second Doppler estimate for the GNSS signal, wherein the second Doppler estimate is based on inertial measurements made at the receiver,
update the carrier phase of the local carrier signal based on the second Doppler estimate,
mix the local carrier signal with a second plurality of the samples to generate second carrier-free signal samples,
correlating the second carrier-free signal samples with the local spreading code to generate a second complex-valued correlation result; and
process the first and second complex-valued correlation results to produce at least one of: an indication of whether the GNSS signal is detected or not; and a GNSS measurement for the current epoch.