Method for estimating delay and Doppler frequency shift of global navigation satellite system signal
By processing single discontinuous snapshots of GNSS signals and utilizing spectrum analysis and matrix processing techniques, the problem of inaccurate delay and Doppler shift estimation by GNSS receivers under discontinuous snapshot conditions was solved. This enabled efficient and accurate delay and Doppler shift estimation in power-saving scenarios, thereby improving navigation accuracy.
Patent Information
- Application Number
- CN202511305534.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-09-13
- Filing Date
- 2025-09-12
- Publication Date
- 2026-03-13
AI Technical Summary
Conventional GNSS receivers struggle to accurately estimate delays and Doppler shifts under non-continuous snapshot conditions, leading to decreased navigation accuracy.
By processing a single, discontinuous snapshot of the GNSS signal, and utilizing spectral analysis and matrix processing techniques, the delay and Doppler shift are estimated, avoiding closed-loop tracking and improving estimation accuracy.
It achieves accurate estimation of delay and Doppler shift in power-saving scenarios, improves the positioning and navigation accuracy of GNSS receivers, and reduces computational costs.
Smart Images

Figure CN121657074A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to methods for estimating the delay and Doppler shift of Global Navigation Satellite System (GNSS) signals. This disclosure also relates to modules and terminal devices. Background Technology
[0002] GNSS receivers are widely used in terminal devices to provide positioning information such as location, velocity, and navigation. A GNSS receiver receives GNSS signals from multiple satellites. By processing these signals, the receiver estimates position, velocity, and time, and can further provide navigation for the terminal device.
[0003] In a conventional GNSS receiver, the GNSS signal is received by a radio frequency (RF) front end and down-converted to an intermediate frequency (IF) by a downconverter. The analog IF signal is then converted to a digital IF signal by an analog-to-digital converter (A / D). The digital signal is processed in various signal processing steps to estimate position, velocity, and time, among other parameters. In a conventional signal processing procedure, signal search and acquisition are initially performed. After acquisition, a coarse estimate of the GNSS signal's delay and Doppler shift is obtained. Subsequently, signal tracking is performed to obtain a finer estimate of the delay and Doppler shift. For signal tracking, closed-loop tracking loops such as delay-locked loops (DLLs), phase-locked loops (PLLs), and frequency-locked loops (FLLs) are widely used to continuously update the fine estimate. The fine estimate of the delay and Doppler shift can be further used to estimate pseudorange, position, velocity, etc. A more accurate fine estimate of the delay and Doppler shift will result in a more accurate position, among other parameters.
[0004] When receiving GNSS signals, the RF front end of a GNSS receiver may take snapshots of the received signal. These snapshots can be taken from GNSS signals received over a period of time. In such implementations, subsequent processing within the GNSS receiver can be based on these snapshots. However, for signal tracking, the tracking loop requires continuous snapshots to output accurate estimates of delay and Doppler shift. If snapshots are not continuously available in certain scenarios (e.g., in power-saving scenarios), the tracking loop cannot be effectively used to output accurate estimates.
[0005] Therefore, obtaining accurate estimates of delay and Doppler shift through discontinuous snapshots remains challenging for conventional GNSS receivers. Summary of the Invention
[0006] The objective is to provide an improved processing concept for providing accurate estimates of delay and Doppler shift using discontinuous snapshots of GNSS signals.
[0007] This objective is achieved through the subject matter of this invention. Implementation methods and developments arise from other aspects.
[0008] According to this disclosure, a GNSS receiver takes and processes snapshots of GNSS signals. A snapshot is taken from GNSS signals received over a period of time (e.g., tens or hundreds of milliseconds). Signal acquisition can be performed using snapshots of GNSS signals. After acquiring the GNSS signal, coarse estimates, such as the approximate range of the GNSS signal's delay and Doppler shift, can be obtained. For example, the delay is the code phase in a pseudo-random noise (PRN) code sequence. The approximate range of the delay obtained after signal acquisition might be approximately ±1 chip duration of the GNSS signal, for example, ±1 μs. The pseudorange calculated using such a delay might be in the hundreds of meters, for example, ±150 meters for a GPS L1 system. Therefore, the snapshot is further processed to obtain a finer, more accurate delay estimate. For signal tracking, snapshots may not be continuously available, for example, due to power savings. The tracking loop cannot accurately track the phase and frequency of the GNSS signal, and therefore cannot effectively estimate the signal's delay and Doppler shift.
[0009] The improved processing concept is based on the idea that, after signal acquisition, a single snapshot (rather than consecutive snapshots) is processed to estimate delay and Doppler shift. The correlation between the snapshot and different delays is converted into a spectrum, and the delay and Doppler shift are estimated based on the values in the spectrum. The estimated delay and Doppler shift are accurate and can be used to calculate accurate pseudorange and position. For example, the estimated delay and Doppler shift are more accurate than the coarse estimates in signal acquisition. The estimated Doppler shift can be obtained within a window of ±4 Hz, and the estimated delay can be obtained within a window of ±0.5 chip durations (which can be approximately ±146 ns). Accurate pseudorange can be calculated using the estimated delay. For example, in a GPS L1 system, the calculated pseudorange window might be ±9 meters, and in a GPS L5 system, it might be ±2 meters.
[0010] By leveraging an improved processing concept, accurate estimation of delay and Doppler shift can be achieved without conventional closed-loop tracking loops (such as DLL, FLL, and PLL). GNSS receivers can operate efficiently using single and discontinuous snapshots of the GNSS signal, such as during power-saving periods. Accurate position and navigation can be further achieved using the estimated delay and Doppler shift. This solution is computationally efficient and can be implemented, at least partially, in a software environment at a lower cost than a fully hardware-based implementation.
[0011] According to this disclosure, a method for estimating the delay and Doppler shift of a GNSS signal includes the following steps: obtaining corresponding output sequences from N correlators used for snapshots of the received GNSS signal, wherein each sequence has K values, the N correlators correspond to N different delays of the PRN code sequence, and the K values of each sequence are the correlation values at K sampling time points output by each correlator, where N and K are positive integers. For example, the N correlators use N different delays of the PRN code sequence. N can be equal to or greater than 2. For example, N can be equal to or greater than 7. A larger number of N improves the estimation accuracy in high dynamic scenarios, multipath interference, or scenarios with limited signal bandwidth. A larger number of N can also allow for faster convergence after signal acquisition and avoid the problem of binary offset carrier (BOC) sidepeaks. The method further includes: obtaining a spectrum for each output sequence by calculating a K-point Discrete Fourier Transform (DFT) of the output sequence; obtaining an N×K matrix using N spectra; determining at least one peak in the N×K matrix; and estimating the delay and Doppler shift of the received GNSS signal using the index of the at least one peak in the N×K matrix. In this method, the N×K matrix has two dimensions. One dimension is a delay dimension, where the index corresponds to N different delays. The other dimension is a Doppler shift dimension, where the index corresponds to J different Doppler shifts. The estimated delay and Doppler shift are interpolated values between the indices in the corresponding dimensions. Therefore, the delay and Doppler shift can be estimated by using the indices of the peaks in the matrix. This estimation is accurate, comparable to conventional tracking loops using continuous snapshots.
[0012] In the example implementation, this method can be executed by one or more modules, such as a GNSS receiver or a terminal device with a GNSS receiver. This method can be implemented in software modules and is computationally efficient.
[0013] In some implementations, the method further includes selecting a reference value based on the absolute value in the N×K matrix, wherein the step of selecting the reference value includes selecting the value with the largest absolute value in the N×K matrix as the reference value; or, alternatively, the step of selecting the reference value includes selecting a subset of values in the N×K matrix whose absolute values are higher than a threshold, and selecting the value corresponding to the smallest delay in the subset as the reference value. The selected reference value represents the amplitude of the signal component in the line-of-sight (LOS) path. This reference value is quickly selected from the spectrum and can be further used to approximate accurate estimates of delay and Doppler shift.
[0014] In some implementations, the indices of the values in the N×K matrix are represented as (n,k), where n∈[1,N] and k∈[1,K]. The step of estimating the delay and Doppler shift of the received GNSS signal using the indices of the at least one peak in the N×K matrix includes: calculating the delay using a code phase discriminator with a subset of values in the matrix, wherein the subset includes values with the same index k as a reference value selected based on the absolute value in the N×K matrix, and any code phase discriminator can be applied, including early-late gates. (gate), multi-gate discriminators (e.g., dual-increment discriminators), any linear combination or nonlinear function of such discriminators, any zero-crossing interpolation between such discriminators evaluated at adjacent indices, the intersection of a line through two leading adjacent taps and a line through two lagging adjacent taps, or the peak coordinates of a fitted triangle or pulse shape or polynomial; and fitting a subset of values in the matrix to a polynomial curve or any other applicable spectral template and calculating the Doppler shift at the maximum value of the curve, wherein the subset includes values with the same index n as the reference value. The reference value can be selected by any of the above implementations. In these implementations, the delay and Doppler shift are estimated separately while using the same reference value.
[0015] In some alternative implementations, the step of estimating the delay and Doppler shift of the received GNSS signal using the index of the at least one peak in the N×K matrix includes: fitting part or all of the values in the matrix to a graph along the delay and Doppler shift dimensions using a two-dimensional fitting algorithm; and calculating the delay and Doppler shift at the peaks in the graph. In these implementations, the delay and Doppler shift are estimated simultaneously.
[0016] In some implementations, the values in the N spectra are represented as z[n,k] and have in-phase and quadrature components, n∈[1,N], k∈[1,K], and the step of obtaining the N×K matrix includes: calculating a reference value z based on the absolute value selection in the N×K matrix. ref The unit complex value u, where u is calculated by the following formula:
[0017]
[0018] Among them, |z ref |is z ref The absolute value; and converting each z[n,k] to (z[n,k]u * The in-phase components of the product of ), where u *It is the complex conjugate of the unit complex value u. The reference value can be selected through any of the above implementations. According to this method, the K-point DFT of each output sequence is calculated before obtaining the N×K matrix. The resulting N spectra contain N×K values and form the original N×J matrix. In these implementations, the values in the N spectra are complex values, i.e., having in-phase and quadrature components. The selected reference value is considered to correspond to the complex amplitude of the LOS component in the GNSS signal. By calculating the complex value in these implementations, the phase of the complex value is adjusted using the phase of the reference value (i.e., using the unit complex value u). Non-line-of-sight (NLOS) components in the GNSS signal can be suppressed. Furthermore, in the case of GNSS signals using BOC modulation, this expands the linear region of the correlation function, thereby mitigating the problems that BOC correlation side peaks may cause during estimation.
[0019] Through the above calculations, the complex values in the original N×K matrix are adjusted and converted into real values. The real-valued N×J matrix is then used to estimate the time delay and Doppler shift. By adjusting the phase of the values in the matrix, the accuracy of the estimated delay and Doppler shift can be further improved.
[0020] In some alternative implementations, the step of obtaining the N×J matrix includes converting the complex values in the N spectra to absolute values. The resulting N×J matrix is a real-valued matrix that can be further used to estimate delay and Doppler shift.
[0021] In some implementations, the step of obtaining the spectrum for each output sequence includes configuring the rotation factor and the number of frequency components of the discrete Fourier transform to adjust the spectrum. By configuring the rotation factor, the appropriate Doppler shift window to be considered in the estimation can be adjusted in different ways, for example, based on experience or different application scenarios. This ensures a reliable estimation of the Doppler shift.
[0022] In some implementations, the method further includes correcting parameters for the delay and frequency of the received GNSS signal using the estimated delay and estimated Doppler shift, and applying these parameters to local oscillator and correlator hardware to track the GNSS signal. Thus, the obtained estimates are further used to improve GNSS signal reception.
[0023] In some implementations, the method further includes each correlator performing a correlation operation to generate a corresponding output sequence, wherein each value in the output sequence is calculated at a sampling time point by correlation operation between the snapshot and the PRN code sequence of the correlator with a corresponding delay. For example, each correlator uses J sampling time points, so each output sequence contains J correlation values.
[0024] In some implementations, the method also includes taking snapshots of the received GNSS signal at predetermined time intervals. Therefore, these snapshots are not consecutive. The method processes each of the non-consecutive snapshots, and the estimation of the delay and Doppler shift of the current snapshot does not depend on previous snapshots. Therefore, this method allows the GNSS receiver to reduce energy consumption and save power.
[0025] In some implementations, a Doppler shift window of ±α Hz and / or a delay window of ±b nanoseconds are considered to estimate the delay and Doppler shift of the received GNSS signal, where a is less than 1000 and b is less than 2000.
[0026] This disclosure also provides a module for processing GNSS signals according to an improved processing concept. This module is configured to perform a method according to any of the above implementations.
[0027] This disclosure also provides a terminal device that includes modules according to any of the above implementations.
[0028] According to one embodiment of the improved processing concept, a computer program product includes instructions that, when executed on one or more processors of a device having hardware modules, cause one or more processors to perform a method according to any of the above implementations. Attached Figure Description
[0029] The improved processing concept will be explained in more detail below with reference to the accompanying drawings. In all the drawings, elements and functional blocks with the same or similar functions use the same reference numerals. Therefore, their descriptions will not be repeated in subsequent drawings.
[0030] In the attached diagram:
[0031] Figure 1 A flowchart is shown for a method used to estimate the delay and Doppler shift of GNSS signals;
[0032] Figure 2 An example sequence of related values is shown;
[0033] Figure 3 Examples illustrating values in a two-dimensional matrix are shown; and
[0034] Figure 4 An example of a module for estimating the delay and Doppler shift of a GNSS signal is shown.
[0035] List of reference numerals
[0036] 100 methods
[0037] Steps 101-105
[0038] 200 modules Detailed Implementation
[0039] Figure 1 A flowchart of an example implementation of a method 100 for estimating the delay and Doppler shift of a GNSS signal is shown.
[0040] Method 100 can be executed by one or more modules of a device such as a GNSS receiver or a terminal device having a GNSS receiver. The following description uses a GNSS receiver as an example to illustrate the execution of this method.
[0041] For example, prior to step 101 of method 100, the GNSS receiver receives a GNSS signal and takes a snapshot of the GNSS signal for a period of time. The duration of the snapshot can range from tens to thousands of milliseconds. The duration of the snapshot can be adjusted according to the current signal strength to accommodate signal accumulation requirements. The snapshot is down-converted to an intermediate frequency or baseband frequency and converted into a digital signal for further digital signal processing. Digital signal processing may involve various procedures. For example, initialization is performed to search for and acquire the GNSS signal. After initialization, a coarse estimate of the delay and Doppler shift of the GNSS signal is obtained. Thus, the GNSS receiver can roughly understand the possible range of the delay and Doppler shift of the GNSS signal based on the coarse estimate and experience. Subsequently, the GNSS receiver may require a finer, more accurate estimate of the delay and Doppler shift of the GNSS signal for further applications such as positioning and navigation. The GNSS receiver can perform method 100 to obtain an accurate estimate using a single snapshot.
[0042] In step 101 of method 100, the GNSS receiver obtains the corresponding output sequence from N correlators used for snapshots of the received GNSS signals.
[0043] In the example implementation, the GNSS receiver has multiple correlators. The correlators perform correlation operations. For example, they calculate the inner product of two inputs. To perform step 101, a snapshot of the received GNSS signal is the first input to each correlator. The input snapshot can be a digital signal converted from a received analog signal, its frequency converted to intermediate frequency band or baseband. Another input to each correlator is a pseudo-random noise (PRN) code sequence. The PRN code sequence is a known PRN code sequence used by the received GNSS signal. Each correlator input has the same PRN code sequence but different delays. The different delays refer to different code phases of the same PRN code sequence. When the GNSS receiver uses N correlators, the N correlators apply the same PRN code sequence with N corresponding delays to calculate the correlation with the snapshot.
[0044] The different delays applied by the correlator have a finer range compared to the delays used in the search and acquisition process for receiving GNSS signals. For example, the different delays applied by the correlator are selected within ±1 chip duration of the PRN code sequence used by the received GNSS signal. The different delays can be fractions of the chip duration of the PRN code sequence. Depending on the PRN code sequence used in different GNSS systems, the chip duration is the reciprocal of the GNSS signal chip rate, with example values of 511 kHz (GLONASS L1), 1023 kHz (GPS L1C / A), or 10230 kHz (GPS L5). The intervals between the different delays can be set to the same value, such as 1 / 8, 1 / 16, or 1 / 32 of the chip duration. For the GPS L1C / A system, the corresponding intervals are 122, 61, or 31 ns. The different delays can be calculated using the interval values and the chip duration. Therefore, the delays used in step 101 have a finer range compared to signal acquisition that yields a coarse delay range (e.g., ±1 μs) of approximately ±1 chip duration.
[0045] To calculate the correlation, the correlator performs correlation operations at discrete sampling time points. The sampling frequency used by the correlator may be much lower than the frequency of the input snapshot. For example, a 1kHz correlator can be used for a 32MHz or 64MHz signal due to despreading. This allows subsequent processing of the correlator's output to be performed via software implementation. By performing correlation operations at sampling time points, each correlator outputs a series of correlation values between the input snapshot and a PRN code sequence with corresponding delays. For example, for the input snapshot, each correlator performs correlation operations at K sampling time points during the snapshot period. Therefore, each output sequence has K correlation values. Assume the sampling interval of each correlator is T. S The sampling rate of each correlator is F. S =1 / T S If the duration of the input snapshot is T, then the number K is T / T. S =T·F S As an example, the duration of the input snapshot can be 200 ms, and the correlator applies a sampling rate of 1 kHz. Therefore, there are 200 sampling time points during the snapshot's duration. Consequently, each output sequence has 200 correlation values. The sampling rate can be less than 1 kHz, such as 500 Hz, or greater than 1 kHz, such as 2 kHz. A higher number of K results in smaller intervals between frequency bins after performing the DFT in step 102.
[0046] Figure 2An example sequence of output correlation values is shown. The figure illustrates five correlation values output by five correlators at the same sampling time point. These five correlators apply different delays over ±1 chip duration of the received GNSS signal. Among these five correlators, the correlator applying the delay closest to the received GNSS signal outputs the highest correlation value, i.e., the peak in the figure. This demonstrates that, among all the delays applied by the correlators, the delay corresponding to the peak correlation value is closest to the delay of the received GNSS signal.
[0047] exist Figure 2 In this context, the delays applied by the correlators are distributed over ±1 chip durations of the received GNSS signal, spaced apart from each other. These delays can be represented as delay taps or simply taps. A delay tap represents a delay with one interval value, two delay taps represent delays with two interval values, and so on. Thus, the N different delays used by N correlators can be conveniently represented by N delay taps.
[0048] Refer again Figure 1 In step 101, the GNSS receiver obtains corresponding output sequences from N correlators used for snapshots of the received GNSS signal. The K correlation values for each output sequence are calculated at K sampling time points within the snapshot duration. The N correlators apply the same PRN code sequence with N corresponding delays, and this PRN code sequence is used by the received GNSS signal. The GNSS receiver thus obtains N output sequences, each with K values.
[0049] In some implementations, the values in the output sequence are complex values with in-phase and quadrature components. For example, a snapshot input to a correlator contains complex values, and the correlator performs correlation operations on these complex values.
[0050] In step 102 of method 100, the GNSS receiver obtains the corresponding spectrum for each output sequence obtained in step 101 by calculating the K-point DFT of the output sequences. Since each output sequence has K values in the time domain, the K-point DFT calculation converts the sequence into a spectrum with K frequency components in the frequency domain. The amplitude in the spectrum reflects the correlation at the frequency components. The GNSS receiver thus obtains N spectra, each with K values.
[0051] Frequency components are distributed within a frequency window, with a certain interval between them. The frequency difference between frequency components is considered as a possible Doppler shift in the received GNSS signal. These frequency differences can be represented as frequency bins. One frequency bin refers to a frequency difference with one interval, two frequency bins refer to a frequency difference with two intervals, and so on. In this way, frequency differences can be conveniently represented using frequency bins.
[0052] In the example implementation, parameters in the DFT calculation can be configured to adjust the final spectrum. For example, the rotation factor selected in the DFT may affect the number of frequency bins and the resulting frequency window (where the frequency components are distributed). The number of frequency bins can be adjusted to be different from the number K of sampling times. In such an implementation, a number K′ of frequency bins greater than K can be obtained, so each spectrum contains K′ values. The frequency window is considered as the possible range used to estimate the Doppler shift. Therefore, the size of the frequency window affects the possible range used to estimate the Doppler shift. Thus, the frequency window is called the Doppler shift window. The rotation factor in the DFT can be configured to adjust the size of the resulting frequency window. Furthermore, different application scenarios for GNSS receivers (such as automotive, aviation, or wearable devices) may have different movement dynamics, speeds, etc. The Doppler shift may have different dynamics in different application scenarios, and the possible range of the Doppler shift may also vary depending on the application scenario. The rotation factor in the DFT can be configured based on the application scenario.
[0053] In some implementations, the values in the spectrum are complex values with in-phase and quadrature components. For example, the values in the sequence output from the correlator are complex values. DFT calculations are performed using complex values.
[0054] In step 103 of method 100, the GNSS receiver uses the N spectra obtained in step 102 to obtain an N×K matrix.
[0055] In the example implementation, N spectra, each with K values, can be directly represented as an N×K matrix for further processing. For example, the values in the N spectra can be represented as z[n,k], which are values in a two-dimensional matrix, n∈[1,N], k∈[1,K], where n is the index of the spectrum corresponding to the correlator and delay tap, and k is the index of the frequency component corresponding to the frequency bin. The value at (n,k) in the matrix reflects the correlation value at the nth delay tap and the kth frequency bin. When each spectrum has K′ values as described in step 102, the same implementation of K can be applied to J′ to obtain an N×J′ matrix for further processing.
[0056] In another example implementation, the values in the N spectra are complex values with in-phase and quadrature components. These complex values can be processed to obtain a real-valued N×K matrix for further processing. For example, each complex value z[n,k] is converted to its absolute value |z[n,k]|. The N×K matrix then contains only real values, i.e., the absolute values of the N spectra. Alternatively, reference values are used to process the individual complex values.
[0057] The reference value can be selected based on the absolute value of the complex values in N spectra. For example, the reference value is selected as the value with the largest absolute value among the N spectra. Alternatively, a subset of values with absolute values above a threshold is selected from the N spectra. The reference value is the value selected from this subset that corresponds to the minimum delay in that subset, i.e., the value corresponding to the minimum delay tap. In either example, the selected reference value can be represented as z. ref Its index can be represented as (n ref ,k ref ).
[0058] A selected reference value can be used to process each complex value in N spectra, and an N×K matrix containing the processed values can be obtained. For example, the selected reference value z can be calculated using the following formula. ref The unit complex value u:
[0059]
[0060] Where |z ref |is z ref The absolute value of z[n,k]. Then, each complex value z[n,k] is converted to (z[n,k]u * The in-phase component of the product of ), where u * It is the complex conjugate of the unit complex value u. In the multipath scenarios common in GNSS systems, the selected reference value is considered to correspond to the LOS component in the GNSS signal. Through the calculation of the unit complex value u using the reference value above, the phase of the complex value is adjusted using the phase of the reference value. The NLOS component in the GNSS signal can be largely eliminated. Subsequent estimations using the adjusted value will be more accurate. In addition, this expands the linear region of the correlation function when the GNSS signal uses BOC modulation, thereby mitigating the problems that BOC correlation side peaks may cause during estimation.
[0061] After this processing, each z[n,k] is processed and converted to a real value, and this real value is placed into an N×K matrix at its corresponding index (n,k). The N×K matrix then contains only real values, i.e., the in-phase components of the product. This real-valued N×K matrix will be used for further processing steps.
[0062] The GNSS receiver determines at least one peak in the N×K matrix obtained in step 103 to estimate the delay and Doppler shift. For example, the peak could be a peak in a curve or graph fitted using the N×K matrix. The step of determining at least one peak depends on which method is applied in step 105 to estimate the delay and Doppler shift.
[0063] In step 105 of method 100, the GNSS receiver uses the index of at least one peak in the N×K matrix obtained in the previous step to estimate the delay and Doppler shift of the received GNSS signal.
[0064] In the example implementation, the delay and Doppler shift are estimated separately, but both use the reference value z as described above. ref and its index (n ref ,k ref The reference value can be selected using any of the implementation methods described in step 103 above.
[0065] Figure 3 An example illustrating the values in a two-dimensional matrix is shown. The real values in an N×K matrix are depicted at their corresponding indices (n,k). One axis in the diagram represents the delay dimension, with each index n shown on the axis of the delay dimension. As mentioned above, the different delays used by the N correlators can be represented by different delay taps. Index n corresponds to a delay tap, and therefore to the delay value used by the correlator. Another axis in the diagram represents the frequency dimension, with each index k shown on the axis of the frequency dimension. As mentioned above, the frequency difference can be represented by a frequency bin. Index k corresponds to a frequency bin, and therefore to the frequency difference. The frequency dimension can also be called the Doppler shift dimension, because the frequency difference can be any possible Doppler shift. The values in the matrix are depicted in the diagram as amplitudes at (n,k). These amplitudes reflect the correlation between the nth delay tap and the kth frequency bin.
[0066] exist Figure 3 In the example shown, the value marked with a cross at (3,3) is indicated as the selected reference value. This reference value can be selected as described in step 103 above. This reference value can be used to estimate the delay and Doppler shift separately.
[0067] review Figure 1 To estimate the delay, a first subset of the values in the matrix is selected. This first subset contains values that are the same as the reference value z. ref Having the same index k ref The value of . Therefore, the first subset contains the index k = k ref And the value z[n,k] at n∈[1,N]. These values in the first subset correspond to different delay taps at the same frequency bin. Figure 3 In the example shown, you can choose the first subset of values at k=3, such as (2,3), (3,3), and (4,3) marked with squares.
[0068] Using the values from the first subset, a code phase discriminator is applied to calculate the delay. For example, a lead-lag gate discriminator defined as follows can be used:
[0069]
[0070] Alternatively, a dual-incremental multi-gate discriminator can be used, defined as follows:
[0071]
[0072] Where G is the gain factor, which is tuned according to the modulation used in the GNSS signal. For example, for a BOC-modulated Galileo E1 signal, G needs to be larger than for a Binary Phase Shift Keying (BPSK) modulated GPS L1C / A signal. The code phase discriminator output estimates the delay. Different types of code phase discriminators can be applied to calculate the delay.
[0073] In the example implementation, the delay is estimated independently based on the lead-lag gate discriminator D, where D is (n ref -1,k ref The matrix value at (n) and (n) ref +1,k ref The difference between the matrix values at position n, and then, with n ref The relevant estimated delay is calculated as D·T chip / A ref T chip It is the chip duration of the GNSS signal, A ref It is (n ref ,k ref The matrix value at ().
[0074] In the example implementation, the delay is estimated individually based on the multi-gate discriminator value D0, which is derived from the reference tap n. ref Adjacent taps (n) ref +x,k ref The calculated, for example, double-increment discriminator for x∈{-2,-1,1,2}, is then used to calculate the estimated delay as g. -1 (D0), where the function g is a pre-trained nonlinear function that reflects the relationship between the discriminator value D0 and the delay given the signal modulation and bandwidth.
[0075] In the example implementation, based on three multi-gate discriminator values D -1 The delays, D0 and D1 (e.g., double-increment type), are estimated separately, with these values referenced from adjacent matrix values (n). ref -1,k ref ), (n ref ,k ref ), (n ref +1,k ref ) calculated, and then used in D -1 The estimated delay is calculated using linear interpolation at the zero-crossing points between D0 or D0 and D1, depending on D.-1 Which pair of D0 and D1 presents opposite signs?
[0076] To estimate the Doppler shift, a second subset of the values in the matrix is selected. This second subset contains values that correspond to the reference value z. ref Having the same index n ref The value of n. Therefore, the second subset contains the index n = n. ref And the value z[n,k] at k∈[1,K]. These values in the second subset correspond to different frequency bins at the same delay tap. Figure 3 In the example shown, a second subset of the values at n=3 can be selected, such as (3,2), (3,3), and (3,4), which are marked with circles.
[0077] Using the values from the second subset, a curve can be fitted, and a peak can be found on the fitted curve. The frequency value corresponding to the position of the peak on the Doppler shift dimension axis is the estimated Doppler shift. For example, based on (n ref ,k ref -1), (n ref ,k ref ) and (n ref ,k ref The calculated position of the peak of the parabola fitted by the matrix value at +1) is relative to k. ref The associated frequencies are used to estimate the Doppler frequency shift separately. Figure 3 In the example shown, a dashed line is depicted, representing a curve fitted to the values at (3,2), (3,3), and (3,4). A peak can be found on the dashed curve. This peak is located between frequency bins 3 and 4 in the Doppler shift dimension. The frequency value corresponding to the precise location in the Doppler shift dimension is the estimated Doppler shift.
[0078] In another example implementation, a two-dimensional fitting algorithm is used to estimate the delay and Doppler shift together. The algorithm uses a two-dimensional N×K matrix to fit some or all of the values to the graph. For example, the values in the two-dimensional N×K matrix represent the amplitude of the three-dimensional graph to be fitted. Figure 3 Similarly, the two dimensions of the graph are the delay dimension and the Doppler shift dimension of the N×K matrix, with the values in the matrix located at these two dimensions in the graph. These values are represented in the third dimension of the graph as the amplitude to be fitted (the fitted graph is shown below). Figure 3 (As shown). Many known suitable two-dimensional fitting algorithms can be used. Find the peak in the fitted graph. The precise location of the peak in the delay dimension is the estimated delay, and the precise location of the peak in the Doppler shift dimension is the estimated Doppler shift.
[0079] In some implementations, a Doppler shift window of ±a Hz and / or a delay window of ±b nanoseconds are considered to estimate the delay and Doppler shift of the received GNSS signal, where a is less than 1000 and b is less than 1000. For example, the Doppler shift window could be ±4 Hz, and / or the delay window could be ±0.5 chip durations, which could be approximately ±146 ns. The delay estimated within these windows will result in an accurate pseudorange calculated using the estimated delay. For example, the calculated pseudorange window could be ±9 meters in a GPS L1 system or ±2 meters in a GPS L5 system. As another example, a can be less than 800, 500, 200, 100, 50, or as low as 5, and b can be less than 800, 500, 200, or as low as 100. The Doppler shift window can be adjusted by setting parameters in the DFT calculation in step 102. The delay window can be adjusted by setting the delay applied in the correlator.
[0080] In some implementations, after obtaining the estimated delay and Doppler shift in step 105, the GNSS receiver can use these estimates to correct the delay and frequency parameters of the received GNSS signal. The GNSS receiver can then apply the corrected parameters to a local oscillator to track the GNSS signal. The corrected parameters can also be used for navigation, for example, by a navigation engine.
[0081] In some implementations, after step 105, method 100 can be executed continuously, so that when snapshots are taken continuously, the method will restart processing additional snapshots from step 101. In some implementations, after step 105, the GNSS receiver can reduce power consumption for a period of time and stop taking continuous snapshots. For example, the GNSS receiver can reduce power consumption by shutting down certain processing and / or receiving modules or functions. GNSS signal snapshots are not taken continuously, but at time intervals. For example, during an operating cycle, the GNSS receiver can receive and take snapshots of the GNSS signal for a portion of the cycle, process the snapshots and estimate delays and Doppler shifts by executing method 100, and not take additional snapshots for the remainder of the cycle. For example, the cycle can be preset to 1 second, and the duty cycle (i.e., the percentage of time the GNSS receiver operates at full capacity during the entire cycle) can be preset to 20%. The duration of the snapshot can be the same as the length of the operating cycle. In this case, the GNSS receiver can use method 100 to process a 200ms snapshot, and may not perform any receiving or processing for 800ms. The duration of the duty cycle and the corresponding snapshot duration can be adjusted based on the current signal strength to accommodate signal accumulation requirements. By using a shorter duty cycle, better power savings are achieved at the GNSS receiver.
[0082] As another example, the period can be set to a few seconds. The period can be less than 1 second, such as several hundred milliseconds. The period can be less than 500ms, such as 400ms or 200ms. The work cycle is a portion of the period, such as 90% or 80% of the period. The work cycle can be set as low as 20%, 10%, 2%, or 1% of the period. The length of the work cycle can be between 20ms and 2 seconds. Correspondingly, the duration of the snapshot (the same as the length of the work cycle) can be a few seconds, such as 2 seconds. The duration of the snapshot can be set to less than 2 seconds, less than 1 second, less than 500ms, less than 200ms, or less than 100ms. The duration of the snapshot can be set as low as 500ms, 200ms, 100ms, 50ms, or 20ms.
[0083] Figure 4 An example of module 200 for estimating the delay and Doppler shift of a GNSS signal is shown. Module 200 can be configured to perform various implementations of method 100 described above. In some implementations, module 200 may be a single module, or multiple modules may be implemented to perform method 100. Module 200 can be implemented in software and / or hardware. For example, module 200 can be configured to connect to a correlator, which may be implemented in hardware, and module 200 can be implemented entirely in software to perform any further processing in method 100, including steps 101-105 starting from obtaining the output sequence. Module 200 can be included in a GNSS receiving module, implemented in a GNSS receiver, or implemented in a terminal device with a GNSS receiving module.
[0084] From the various implementation methods described above in conjunction with method 100, it is easy to see the further implementation methods of module 200.
[0085] In some implementations, a terminal device including module 200 can be implemented to execute method 100. Further implementations of the terminal device can be easily seen from the various implementations described above in conjunction with method 100.
[0086] Therefore, by employing the various implementations described above for improving GNSS signal delay and Doppler shift estimation, a single snapshot of the GNSS signal is processed to achieve accurate estimation of delay and Doppler shift. Continuous snapshots of the GNSS signal are no longer required, thus saving power for the GNSS receiver.
[0087] Various implementations of the improved processing concept for estimating the delay and Doppler shift of GNSS signals can be implemented in the form of logic, either in software, hardware, or a combination of both. This logic can be stored as an instruction set in a computer-readable or machine-readable storage medium, adapted to instruct one or more processors of a (distributed) computer system to execute a set of steps disclosed in the implementations of the improved processing concept. This logic can also form part of a computer program product adapted to instruct an information processing device to automatically execute a set of steps disclosed in the implementations of the improved processing concept.
[0088] Therefore, this specification and accompanying drawings should be considered illustrative rather than restrictive. However, it is obvious that various modifications and changes can be made thereto without departing from the scope of the invention as set forth in the claims.
Claims
1. A method for estimating the delay and Doppler shift of a Global Navigation Satellite System (GNSS) signal, the method comprising the following steps: - Obtain the corresponding output sequence from N correlators used for snapshots of received GNSS signals, wherein each sequence has J values and the N correlators correspond to N different delays of pseudo-random noise PRN code sequences, where N and J are positive integers; - For each output sequence, the spectrum is obtained by calculating the J-point discrete Fourier transform of the output sequence; - Obtain an N×K matrix using N spectra; - Determine at least one peak in the N×K matrix; and - Use the index of at least one peak in the N×K matrix to estimate the delay and Doppler shift of the received GNSS signal.
2. The method according to claim 1, further comprising selecting a reference value based on the absolute value in the N×K matrix, wherein, The step of selecting a reference value includes selecting the value with the largest absolute value in the N×K matrix as the reference value.
3. The method according to claim 1, further comprising selecting a reference value based on the absolute value in the N×K matrix, wherein, The step of selecting a reference value includes selecting a subset of values in the N×K matrix whose absolute values are higher than a threshold, and selecting the value corresponding to the minimum delay in the subset as the reference value.
4. The method according to any one of claims 1 to 3, wherein, The index of the value in the N×K matrix is represented as (n,k), where n∈[1,N] and k∈[1,K]. The step of estimating the delay and Doppler shift of the received GNSS signal using the index of the at least one peak in the N×K matrix includes: - Calculate the delay using a code phase discriminator using a subset of values in the matrix, wherein the subset includes values with the same index k as a reference value selected based on the absolute value in the N×K matrix; and - Fit a subset of values in the matrix to a polynomial curve and calculate the Doppler shift at the maximum value of the curve, wherein the subset includes values with the same index n as the reference value.
5. The method according to any one of claims 1 to 3, wherein, The step of estimating the delay and Doppler shift of the received GNSS signal using the index of at least one peak in the N×K matrix includes: - Use a two-dimensional fitting algorithm to fit some or all of the values in the N×K matrix to a graph along the delay dimension and the Doppler shift dimension; and - Calculate the delay and Doppler shift at the peaks in the graph.
6. The method according to any one of claims 1 to 3, wherein, The values in the N spectra are represented as z[n,k] and have in-phase and quadrature components, n∈[1,N], k∈[1,K]. The steps to obtain the N×K matrix include: - Calculate the reference value z based on the absolute value selection in the N×K matrix. ref The unit complex value u, where u is calculated by the following formula: Among them, |z ref |is z ref The absolute value; and - Convert each z[n,k] to (z[n,k]u * The in-phase components of the product of ), where u * It is the complex conjugate of the unit complex value u.
7. The method according to any one of claims 1 to 3, wherein, The values in the N spectra have in-phase and quadrature components, and the step of obtaining the N×K matrix includes converting the values into absolute values.
8. The method according to any one of claims 1 to 3, wherein, The step of obtaining the spectrum for each output sequence includes configuring the rotation factor of the K-point discrete Fourier transform to adjust the spectrum.
9. The method according to any one of claims 1 to 3, the method further comprising correcting parameters of the delay and frequency of the received GNSS signal by using the estimated delay and the estimated Doppler shift, and applying the parameters to a local oscillator to track the GNSS signal.
10. The method according to any one of claims 1 to 3, further comprising performing correlation operations by each correlator to generate a corresponding output sequence, wherein, Each value in the output sequence is calculated at the sampling time point by correlation operation between the snapshot and the PRN code sequence with the corresponding delay of the correlator.
11. The method according to any one of claims 1 to 3, further comprising taking and processing snapshots of the received GNSS signals at predetermined work cycles, wherein, The period is less than one second or a few seconds, and the snapshot and the working period are set to at least one of the following: - The duration of the snapshot is 200ms; - The work cycle is between 2% and 20% of the cycle; - The cycle time is between 20ms and 500ms.
12. The method according to any one of claims 1 to 3, wherein, The delay and Doppler shift of the received GNSS signal are estimated by considering a Doppler shift window of ±aHz and a delay window of ±b nanoseconds, and the Doppler shift window, the delay window, the N correlators, and the N different delays are set to at least one of the following: -a is less than 1000; -b is less than 2000; - The N different delays are fractions of the chip duration of the GNSS signal; and The N correlators use a sampling rate of 1 kHz for the snapshot to obtain K values for each correlator.
13. A module for processing Global Navigation Satellite System (GNSS) signals, the module being configured to perform the method according to any one of claims 1 to 12.
14. A terminal device, the terminal device comprising the module according to claim 13.
15. A computer program product comprising instructions that, when executed on one or more processors of a device having hardware modules, cause the one or more processors to perform the method according to any one of claims 1 to 12.