WO2024258418A1 - Mitigation of multipath-induced error effects in a navigation satellite signal receiver - Google Patents
Mitigation of multipath-induced error effects in a navigation satellite signal receiver Download PDFInfo
- Publication number
- WO2024258418A1 WO2024258418A1 PCT/US2023/034191 US2023034191W WO2024258418A1 WO 2024258418 A1 WO2024258418 A1 WO 2024258418A1 US 2023034191 W US2023034191 W US 2023034191W WO 2024258418 A1 WO2024258418 A1 WO 2024258418A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- accordance
- determination
- samples
- iterative process
- estimate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
- G01S19/428—Determining position using multipath or indirect path propagation signals in position determination
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/22—Multipath-related issues
Definitions
- GNSS global navigation satellite systems
- GNSS Global Navigation Satellite Systems
- GPS Global Positioning System
- GLONASS Global Orbiting Navigation Satellite System
- BDS Chinese BeiDou System
- WAAS Wide Area Augmentation System
- QZSS Japanese Quasi-Zenith Satellite System
- PN code pseudorandom code
- PRN code pseudorandom noise code
- the PN code is, for example, a series of ones and zeroes that looks random, but in fact uniquely identifies the satellite.
- the GNSS receivers acquire and track the GNSS satellite signals. From its code and carrier tracking loops, a GNSS receiver can then generate range or range rate measurements, such as pseudorange measurements, carrier phase measurements and doppler shift measurements. In some instances, using other data, such as ephemeris data and almanac data, that is encoded in the received signal, “on top of” the pseudorandom code, using various modulation schemes (e.g., BPSK, BOC), the receiver can determine the time at which the signal was sent by the satellite. Using signals received from four or more satellites, the receiver can determine its position (e.g., on Earth).
- Multipath is one of the major error sources in GNSS.
- a signal from a GNSS satellite to a GNSS receiver is reflected by surroundings (e.g., buildings, mountains, lakes, other objects, and/or the ground)
- this reflected signal called a multipath
- a GNSS receiver can receive a composite of a line-of-sight direct-path signal and zero, one or more multiple signals from each satellite.
- multipath signals are also internally processed by GNSS receivers, thus introducing errors to code and carrier phase measurements and reducing GNSS positioning accuracy.
- a method of mitigating the effect of a multipath-induced error in a GNSS is performed at a respective GNSS signal receiver.
- the method includes receiving a band-limited composite signal corresponding to a respective satellite in the GNSS.
- the band-limited composite signal includes a band-limited direct-path signal and a band-limited multipath signal.
- the direct-path signal and the multipath signal are modulated with a pseudorandom (PN) code.
- the method includes obtaining, for a code chip edge transition of the PN code, n pairs of correlation samples of the composite signal during a corresponding n time instances, each having a different time offset from the code chip edge transition.
- the code chip edge transition has a predetermined filter step response function SR(t).
- Each respective pair of correlation samples of the n pairs of correlation samples consists of a respective in-phase component sample I(ti) and a respective quadrature component sample Q(ti), wherein i is a positive integer from one to n.
- the n pairs of correlation samples consist of n in-phase component samples of the composite signal (I(t) samples) and n quadrature component samples of the composite signal (Q(t) samples).
- the method includes obtaining, for each respective pair of correlation samples of the n pairs of correlation samples, a corresponding sample of the filter step response function SR(ti) corresponding in time with the respective pair of correlation samples, thereby obtaining n samples of the filter step response function (predetermined SR(t) samples) during the corresponding n time instances.
- the method includes, in accordance with a determination that a computed similarity between the I(t) samples and the SR(t) samples satisfies a first threshold value, determining that a phase ⁇ ⁇ is ⁇ 90° within a first predefined margin, wherein the phase ⁇ ⁇ is equal to 180° minus a sum of (i) a carrier phase multipath error ⁇ ⁇ and (ii) a phase difference ⁇ ⁇ between the direct-path signal and the multipath signal.
- the method includes, in accordance with a determination that the computed similarity between the I(t) samples and the SR(t) samples does not satisfy the first threshold value: solving a first set of matrix equations, thereby obtaining a solution for tan ⁇ ⁇ and for ⁇ ⁇ tan ⁇ ⁇ , wherein ⁇ ⁇ is a response time error of the code chip edge transition due to the multipath signal.
- the method includes, in accordance with a determination that
- the method includes, in accordance with a determination that
- the method includes adjusting a pseudorange measurement for the respective satellite in accordance with the determined ⁇ ⁇ ; and/or adjusting a carrier phase measurement for the respective satellite in accordance with a parameter corresponding to the determined ⁇ ⁇ .
- the method includes performing a navigation function using the adjusted pseudorange and/or the adjusted carrier phase measurement for the respective satellite. [0007] In some embodiments, the method further includes determining a sign of the carrier phase multipath error ⁇ ⁇ .
- the method incudes, in accordance with a determination that the computed similarity between the I(t) samples and the SR(t) samples satisfies the first threshold value: determining that ⁇ ⁇ is +90° within the first predefined margin when the sign of the carrier phase multipath error ⁇ ⁇ is positive; and determining that ⁇ ⁇ is -90° within the first predefined margin when the sign of the carrier phase multipath error ⁇ ⁇ is negative.
- the method further includes, in accordance with a determination that the phase ⁇ ⁇ is 0° or 180° within the second predefined margin: determining a position of a peak of the I(t) samples relative to a position of a peak of the predetermined SR(t) samples.
- the method includes, in accordance with a determination that the position of the peak of the I(t) samples occurs later in time than the position of the peak of the SR(t) samples, determining that ⁇ ⁇ is 0° within the second predefined margin; and in accordance with a determination that the position of the peak of the I(t) samples occurs earlier in time than the position of the peak of the predetermined SR(t) samples, determining that ⁇ ⁇ is 180° within the second predefined margin.
- the computed similarity between the I(t) samples and the SR(t) samples is obtained using a mean squared error (MSE), defined by ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ( ⁇ ) ⁇ ⁇ ⁇ ⁇ ( ⁇ ) ⁇ , wherein ⁇ ⁇ ⁇ cos ⁇ , ⁇ is a magnitude of the direct-path signal, and ⁇ ⁇ is the carrier phase multipath error.
- MSE mean squared error
- solving the first set of matrix equations includes obtaining (i) an initial estimate ⁇ ⁇ ⁇ , ⁇ for the phase ⁇ , (ii) an initial estimate ⁇ ⁇ ⁇ for the response time error ⁇ ⁇ , and (iii) an initial estimate ⁇ ⁇ ⁇ for a magnitude ⁇ of the composite signal; and using the initial estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , and ⁇ ⁇ ⁇ to solve the first set of matrix equations via a Least Squares fitting process to obtain the solution for tan ⁇ ⁇ and ⁇ ⁇ tan ⁇ ⁇ .
- the method further includes, in accordance with the determination that
- the method includes, in accordance with a determination that a number of iterations for which the first iterative process has looped satisfies a third threshold value: outputting information that no valid solution for ⁇ ⁇ has been determined; and terminating the first iterative process without producing a solution for ⁇ ⁇ .
- the method further includes, in accordance with a determination that a number of iterations for which the first iterative process has looped does not satisfy the third threshold value: in accordance with a determination that a magnitude based on the updated estimate ⁇ ⁇ ⁇ or based on the updated estimate tan ⁇ ⁇ ⁇ , ⁇ satisfies a fourth threshold value: determining that the Least Squares fitting process has converged; outputting the updated estimates tan ⁇ , ⁇ and the updated estimate ⁇ ⁇ as the solutions for tan ⁇ and ⁇ ⁇ , respectively; calculating the phase ⁇ ⁇ from the updated estimate tan ⁇ ⁇ ⁇ , ⁇ ; and terminating the first iterative process.
- the method also includes, in accordance with a determination that (i) the magnitude based on the updated estimate ⁇ ⁇ ⁇ or based on the updated estimate tan ⁇ ⁇ ⁇ , ⁇ does not satisfy the fourth threshold value, performing a next iteration of the first iterative process.
- the method further includes, in accordance with a determination that a valid solution for the phase ⁇ ⁇ has been determined: determining (i) an initial estimate ⁇ ⁇ ⁇ , ⁇ for ⁇ , wherein ⁇ ⁇ ⁇ cos ⁇ , ⁇ is a magnitude of the direct-path signal, and ⁇ ⁇ is the carrier phase multipath error; (ii) an initial estimate ⁇ ⁇ ⁇ , ⁇ for a magnitude ⁇ , wherein ⁇ ⁇ ⁇ sin ⁇ ; (iii) an initial estimate ⁇ ⁇ ⁇ , ⁇ for a magnitude ⁇ of the multipath signal, and (iv) an initial estimate ⁇ ⁇ ⁇ for a time delay ⁇ of the multipath signal relative to the direct-path signal, or determine a subset of those initial estimates.
- the method includes using at least a subset of (i) the initial estimate ⁇ ⁇ ⁇ , ⁇ , (ii) the initial estimate ⁇ ⁇ ⁇ , ⁇ , (iii) the initial estimate ⁇ ⁇ ⁇ , ⁇ , and (iv) the initial estimate ⁇ ⁇ as starting values, performing one or more iterative processes to obtain solutions for at least a subset of ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ ; computing the carrier phase multipath error ⁇ ⁇ in accordance with the obtained solutions for at least the subset of ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ ; and correcting the carrier phase measurement for the respective satellite in accordance with the carrier phase multipath error ⁇ ⁇ .
- the method further includes, in accordance with a determination that a valid solution for the phase ⁇ ⁇ has been determined: determining (i) an initial estimate ⁇ ⁇ ⁇ ⁇ , ⁇ for ⁇ ⁇ , wherein ⁇ ⁇ ⁇ ⁇ ⁇ cos ⁇ ⁇ , ⁇ ⁇ is a magnitude of the direct-path signal, and ⁇ ⁇ is the carrier phase multipath error; (ii) an initial estimate ⁇ ⁇ ⁇ , ⁇ for a magnitude ⁇ ⁇ , wherein ⁇ ⁇ ⁇ ⁇ sin ⁇ ⁇ ; (iii) an initial estimate ⁇ ⁇ ⁇ ⁇ , ⁇ for a magnitude ⁇ ⁇ of the multipath signal, and (iv) an initial estimate ⁇ ⁇ ⁇ for a time delay ⁇ of the multipath signal relative to the direct-path signal.
- the initial estimate ⁇ ⁇ ⁇ , ⁇ corresponds to a magnitude of a last in-phase component sample I(tn) of the I(t) samples; and the initial estimate ⁇ ⁇ ⁇ , ⁇ corresponds to a magnitude of a last quadrature component Q(tn) of the Q(t) samples.
- the initial estimate ⁇ ⁇ ⁇ ⁇ , ⁇ corresponds to a magnitude of a first in-phase component sample I(t 1 ) of the I(t) samples; and the initial estimate ⁇ ⁇ ⁇ , ⁇ corresponds to a magnitude of a first quadrature component Q(t1) of the Q(t) samples.
- the method includes, in accordance with the determination that the phase ⁇ ⁇ corresponds to ⁇ 90° within the first predefined margin: assigning the obtained solution as the initial estimate ⁇ ⁇ ⁇ ⁇ ,0.
- the method includes, in accordance with the determination that the phase ⁇ ⁇ is 0° or 180° within the second predefined margin: assigning the initial estimate ⁇ ⁇ ⁇ , ⁇ as zero. [0018] In some embodiments, the initial estimate ⁇ ⁇ ⁇ , ⁇ is 0.5.
- the method further includes, in accordance with the determination that the phase ⁇ ⁇ does not correspond to ⁇ 90° within the first predefined margin: using the initial estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ as starting values to obtain a solution for ⁇ ⁇ , ⁇ ⁇ , and ⁇ via a second iterative process, wherein k is a positive integer representing a number of iterations of the second iterative process.
- a k th iteration of the second iterative process includes: obtaining n estimated in-phase component values ( ⁇ ( ⁇ ) values) for the I(t) samples based on estimates ⁇ , , an ⁇ th ⁇ , ⁇ d ⁇ from a previous (k-1) iteration of the second iterative process; determining, for each estimated in-phase component value ⁇ ⁇ ⁇ ⁇ , ⁇ of the ⁇ ⁇ ⁇ ( ⁇ ) values, a corresponding in-phase component estimation error between (i) the respective estimated in-phase component value ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ and (ii) the respective in-phase component sample I(ti) of the I(t) samples, thereby obtaining n in-phase component estimation errors ( ⁇ ⁇ ( ⁇ ⁇ ) estimation errors); solving a second set of matrix equations based on the ⁇ ( ⁇ ) estimation errors, thereby obtaining updated estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇
- the method includes, in accordance with a determination that (i) the updated estimate ⁇ ⁇ ⁇ , ⁇ is within a corresponding first valid range and (ii) the updated estimate ⁇ ⁇ ⁇ is within a corresponding second valid range: in accordance with a determination that the number of iterations ⁇ satisfies a fifth threshold value: in accordance with a determination that a change in value of one or more predetermined first parameters between the k th iteration and the (k-1) th iteration satisfies a respective corresponding threshold: determining that the second iterative process has converged; outputting the updated estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ as the solution for ⁇ , ⁇ , and ⁇ , respectively; and terminating the second iterative process.
- the method includes, in accordance with the determination that the change in value of the one or more predetermined parameters between the k th iteration and the (k-1) th iteration does not satisfy the respective corresponding threshold, performing a next iteration of the second iterative process.
- the method includes, in accordance with the determination that (i) the number of iterations ⁇ does not satisfy the fifth threshold value, terminating the second iterative process without producing a solution for ⁇ ⁇ , ⁇ ⁇ , and ⁇ .
- the method includes, in accordance with a determination that (i) the updated estimate ⁇ ⁇ ⁇ ⁇ , ⁇ is not within the corresponding first valid range or (ii) the updated estimate ⁇ ⁇ ⁇ is not within the corresponding second valid range: adjusting the initial estimate for the time delay ⁇ from ⁇ ⁇ ⁇ to ⁇ ⁇ ⁇ ′ ; and executing the second iterative process using the initial estimates ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ , ⁇ and the adjusted initial estimate ⁇ ⁇ ′ as the starting values.
- the method includes, in accordance with a determination that (i) the updated estimate ⁇ ⁇ ⁇ ⁇ , ⁇ is not within the corresponding first valid range or (ii) the updated estimate ⁇ ⁇ ⁇ is not within the corresponding second valid range: in accordance with a determination that a next adjusted value for the time delay would fall within a range of time values for the n pairs of correlation samples, repeating the steps of adjusting the initial estimate for the time delay ⁇ and executing the second iterative process; and otherwise, outputting information that no valid solution for ⁇ ⁇ , ⁇ ⁇ , and ⁇ has been determined.
- the method includes, after outputting the updated estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ as the solution for ⁇ , ⁇ , and ⁇ , respectively, and in accordance with the determination that the phase ⁇ ⁇ is 0° or 180° within the second predefined margin: assigning a value of zero as the solution for ⁇ ⁇ .
- the method includes determining the carrier phase multipath error ⁇ ⁇ based on the solutions for ⁇ ⁇ and ⁇ ⁇ ; and correcting a pseudorandom phase measurement for the respective satellite in accordance with the carrier phase multipath error ⁇ ⁇ .
- the method includes, after outputting (e.g., at an end of the second iterative process) the updated estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ as the solution for ⁇ , ⁇ ⁇ , and ⁇ , respectively, and in accordance with the determination that the phase ⁇ ⁇ is not 0° or 180° within the second predefined margin: starting with the initial estimate for ⁇ ⁇ ⁇ , ⁇ , obtaining a solution for ⁇ ⁇ via a third iterative process, wherein k is a positive integer representing a number of iterations of the third iterative process (e.g., k is set or reset to 1 at beginning of the third iterative process).
- a k th iteration of the third iterative process includes: obtaining n estimated quadrature component values ( ⁇ ⁇ ⁇ ( ⁇ ) values) for the Q(t) samples based on an initial estimate from a previous (k-1) th iteration of the third iterative process; determining, for each estimated quadrature component value ⁇ ⁇ ⁇ of the ⁇ ⁇ ⁇ ( ⁇ ⁇ ) values, a corresponding quadrature component estimation error ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ between (i) the respective estimated quadrature component value ⁇ ⁇ ⁇ ⁇ , ⁇ and (ii) the respective quadrature component sample Q(t i ), thereby obtaining n quadrature component estimation errors estimation errors); solving a third set of matrix equations based on the estimation errors, thereby obtaining an updated estimate ⁇ ⁇ ⁇ , ⁇ for the k th iteration.
- the method includes, in accordance with a determination that a change in value of one or more predetermined second parameters between the k th iteration and the (k-1) th iteration satisfies a respective corresponding threshold: determining that the third iterative process has converged; outputting the updated estimate the solution for ⁇ ; and terminating the third iterative process.
- the method includes, in accordance with a determination that the change in value of the one or more predetermined second parameters between the k th iteration and the (k-1) th iteration does not satisfy a respective corresponding threshold, performing a next iteration of the third iterative process.
- the method includes, in accordance with the determination that (i) the number of iterations ⁇ does not satisfy the sixth threshold value, terminating the third iterative process without producing a solution for ⁇ ⁇ .
- the method includes computing the carrier phase multipath error ⁇ ⁇ based on the solutions for ⁇ ⁇ and ⁇ ⁇ ; correcting the pseudorange measurement for the respective satellite in accordance with ⁇ ⁇ ; and correcting the carrier phase measurement for the respective satellite in accordance with the carrier phase multipath error ⁇ ⁇ .
- the method includes, in accordance with the determination that the phase ⁇ ⁇ corresponds to ⁇ 90° within the first predefined margin: using the initial estimates as starting values, obtaining a solution for ⁇ ⁇ , ⁇ ⁇ , and ⁇ via a fourth iterative process, wherein k is a positive integer representing a number of iterations of the fourth iterative process.
- a k th iteration of the fourth iterative process includes: obtaining n estimated quadrature component values ( ⁇ ⁇ ⁇ ( ⁇ ) values) for the Q(t) samples based on initial estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ from a previous (k-1) th iteration of the fourth iterative process; determining, for each estimated quadrature component value ⁇ ⁇ ⁇ ⁇ , ⁇ of the ⁇ ⁇ ⁇ ( ⁇ ) values, a respective quadrature component estimation error ⁇ ⁇ , ⁇ between (i) the respective estimated quadrature component value and (ii) the respective quadrature component sample Q(ti), thereby obtaining n quadrature component estimation errors ( ⁇ ⁇ ( ⁇ ⁇ ) estimation errors); and solving a fourth set of matrix equations based on the estimation errors, thereby obtaining updated estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇
- the method includes, in accordance with a determination that (i) the updated estimate ⁇ ⁇ ⁇ ⁇ , ⁇ is within a corresponding third valid range and (ii) the updated estimate ⁇ ⁇ ⁇ ⁇ is within a corresponding fourth valid range: in accordance with a determination that the number of iterations ⁇ satisfies a seventh threshold value: in accordance with a determination that a change in value of one or more predetermined second parameters between the k th iteration and the (k-1) th iteration satisfies a respective corresponding threshold: determining that the fourth iterative process has converged; outputting the updated estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ as the solution for ⁇ ⁇ , ⁇ ⁇ , and ⁇ , respectively; and terminating the fourth iterative process.
- the method includes, in accordance with the determination that the change in value of the one or more predetermined parameters between the k th iteration and the (k-1) th iteration does not satisfy the respective corresponding threshold, performing a next iteration of the fourth iterative process.
- the method includes, in accordance with the determination that (i) the number of iterations ⁇ does not satisfy the seventh threshold value, terminating the fourth iterative process without producing a solution for ⁇ ⁇ .
- the method includes, in accordance with a determination that (i) the updated estimate ⁇ ⁇ ⁇ ⁇ , ⁇ is not within a corresponding third valid range or (ii) the updated estimate ⁇ ⁇ ⁇ ⁇ is not within a corresponding fourth valid range: updating the initial estimate for the time delay ⁇ from ⁇ ⁇ ⁇ to ⁇ ⁇ ⁇ ′ ; and executing the fourth iterative process using the initial estimates ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ , ⁇ and the updated initial estimate ⁇ ⁇ ⁇ ′ as the starting values.
- the method includes using the initial estimates ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ , ⁇ and the adjusted initial estimate ⁇ ⁇ ⁇ ′ as the starting values.
- the method includes, in accordance with a determination that (i) the updated estimate ⁇ ⁇ ⁇ , ⁇ is not within the corresponding third valid range or (ii) the updated estimate ⁇ ⁇ ⁇ ⁇ is not within the corresponding fourth valid range: in accordance with a determination that a next adjusted value for the time delay would fall within a range of time values for the n pairs of correlation samples, repeating the steps of updating the initial estimate for the time delay ⁇ and executing the fourth iterative process; and otherwise, outputting information that no valid solution for ⁇ ⁇ , ⁇ ⁇ , and ⁇ has been determined.
- the method includes, in conjunction with outputting the updated estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ as the solution for ⁇ ⁇ , ⁇ ⁇ , and ⁇ , respectively: obtaining a solution for ⁇ ⁇ by solving a matrix equation [0030]
- the method includes computing the carrier phase multipath error ⁇ ⁇ based on the solution for ⁇ ⁇ and the solution for ⁇ ⁇ ; and correcting the carrier phase measurement for the respective satellite in accordance with the carrier phase multipath error ⁇ ⁇ .
- a navigation module, or a global navigation satellite system (GNSS) receiver, or a device for mitigating the effect of a multipath-induced error in a global navigation satellite system (GNSS) includes one or more processors and memory.
- the memory stores instructions that, when executed by the one or more processors, cause the navigation module, or GNSS receiver, or device, to perform any of the methods disclosed herein.
- a computer-readable storage medium stores instructions which, when executed by a navigation module, or a global navigation satellite system (GNSS) receiver, or a device, that includes one or more processors, cause the navigation module, or the GNSS receiver, or the device, to perform the any of the methods described herein.
- GNSS global navigation satellite system
- Figure 1B illustrates a block diagram of a GNSS receiver in accordance with some embodiments.
- Figure 1C is a block diagram of a computer system, such as a computer system that is part of a moveable object’s navigation system, according to some embodiments.
- Figure 2 illustrates a block diagram of a baseband DSP channel in accordance with some embodiments.
- Figure 3 illustrates an example where both a direct-path signal and a multipath signal from a satellite are received by an antenna of a GNSS receiver, in accordance with some embodiments.
- Figure 4A illustrates a phasor diagram of the in-phase and quadrature components of a direct-path signal, in accordance with some embodiments.
- Figure 4B illustrates a phasor diagram of the in-phase and quadrature components of a composite signal, which is composed of a direct-path signal and a multipath signal, in accordance with some embodiments.
- Figure 5 illustrates the magnitude of a filter step response function ⁇ ⁇ ( ⁇ ) versus time, in accordance with some embodiments.
- Figure 6 illustrates a correlator arrangement in which 16 pairs of samples are arranged along a code chip transition, and a delayed version of the filter step response function ⁇ ⁇ ( ⁇ ⁇ ⁇ ), in accordance with some embodiments.
- Figures 7A and 7B are phasor diagrams illustrating multipath scenarios where angle ⁇ ⁇ is equal to +90° and -90°, respectively, in accordance with some embodiments.
- Figures 8A and 8B are phasor diagrams illustrating multipath scenarios where angle ⁇ ⁇ is equal to 0° and 180°, respectively, in accordance with some embodiments.
- Figure 9 is a workflow for Procedure 1 of the phase multipath mitigation algorithm, in accordance with some embodiments
- Figures 10A and 10B show an example of ⁇ ( ⁇ ⁇ ) measurement samples when angle ⁇ ⁇ is equal to 0° and 180°, respectively, in accordance with some embodiments.
- Figure 11 illustrates a workflow 1100 for Procedure 2 of the phase multipath mitigation algorithm, in accordance with some embodiments.
- Figure 12 illustrates a workflow for solving the unknown parameters, ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ when ⁇ ⁇ is not ⁇ 90°, in accordance with some embodiments.
- Figure 13 illustrates a workflow for solving for the unknown parameters ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ when ⁇ ⁇ is equal to ⁇ 90°, in accordance with some embodiments.
- Figure 14 illustrates a series of different initial estimates ⁇ ⁇ ⁇ ⁇ that can be tried sequentially, in accordance with some embodiments.
- Figure 15A illustrates a phasor diagram for a very weak multipath scenario with ⁇ ⁇ ⁇ 30°.
- Figure 15B illustrates a correct solution to angle ⁇ ⁇ even when this multipath scenario is detected as a case of ⁇ ⁇ ⁇ ⁇ 90°.
- Figures 16A and 16B illustrate a flowchart diagram for a method of mitigating the effect of a multipath-induced error in a GNSS, in accordance with some embodiments.
- DESCRIPTION OF EMBODIMENTS [0052]
- Figure 1A is a block diagram illustrating a navigation system 100, according to some embodiments.
- Navigation system 100 enables a moveable object 110 (e.g., a phone, specialized GNSS receiver, a boat, a truck or other vehicle, a farming appliance, mining appliance, drilling system, etc.) to determine, at any point of time, its current position 112 with respect to a global coordinate system (e.g., a coordinate system for Earth 114).
- Moveable object 110 is equipped with a satellite receiver (navigation signal receiver 120), typically including or coupled to one or more satellite antennas 140, to receive satellite navigation signals from at least four satellites 115 that are orbiting Earth.
- the satellite navigation signals received by moveable object 110 are typically global navigation satellite system (GNSS) signals.
- GNSS global navigation satellite system
- Moveable object 110 optionally receives satellite orbit correction information and satellite clock correction information (sometimes collectively called “correction information”) for the plurality of satellites.
- the correction information is typically broadcast by and received from one or more satellites 118 distinct from the GNSS satellites 115, using an antenna 142 and signal receiver 152 (see Figure 1C) distinct from antenna 140 and navigation signal receiver 120 used to receive the satellite navigation signals. However, in some embodiments, the same antenna and receiver are used to receive both satellite navigation signals and correction information [0054]
- Moveable object 110 determines a position of moveable object 110, using the received satellite navigation signals and, optionally, the received satellite orbit correction information and satellite clock correction information for the plurality of satellites.
- FIG. 1B illustrates a block diagram of an example GNSS receiver 170 (e.g., navigation signal receiver 120) in accordance with some embodiments.
- the GNSS receiver 170 receives signals from one or more GNSS satellites (e.g., GNSS satellite 171), processes the signals, and delivers Position, Velocity and Time (PVT) results 180.
- GNSS satellites e.g., GNSS satellite 171
- PVT Position, Velocity and Time
- the GNSS receiver 170 includes an antenna 172, a radio frequency (RF) front end module 174, a baseband digital signal processing (DSP) module 176, and a positioning and navigation module 178.
- the antenna 172 is the first stage of the GNSS receiver 170 and receives RF signals from all visible GNSS satellites.
- the antenna 172 is equipped with a built-in amplifier.
- the GNSS receiver 170 is equipped with multiple antennas or an antenna array. The received RF signals are filtered, amplified, down-converted, and digitized by the RF front end module 174.
- the RF front end module 174 typically includes one or more stages of down-conversions and filters, to convert the RF signals to different intermediate frequency (IF) bands with designated bandwidths while excluding out-of-band interferences.
- the final filter in high-precision GNSS receivers typically has a wide bandwidth (e.g., 30 MHz or more).
- One important characteristic of the final filter of the RF front end module 174 is its step response, which will be described later.
- Analog-to-digital (A/D) converters in the RF front end module convert received analog signals, e.g., from the final filter, into digital Intermediate Frequency (IF) signals.
- the RF front end electronics 174 are integrated into a RF Application-Specific Integrated Circuit (ASIC) chip.
- ASIC Application-Specific Integrated Circuit
- the RF front end module 174 outputs digital IF signals, which are processed by the baseband DSP module 176.
- the baseband DSP module 176 acquires and tracks each individual visible satellite (e.g., each satellite for which there is a direct line of sight to the receiver 170), generates range measurements, including code phase measurements (and therefore pseudorange measurements), carrier phase measurements and doppler measurements, and decodes navigation data bits encoded in the signal(s) received from each satellite.
- phase multipath mitigation is performed by the baseband DSP module 176.
- the baseband DSP module 176 comprises both hardware and firmware, but the division of these two portions is often not clearly defined and depends on a variety of design considerations.
- the baseband DSP electronics are integrated into a baseband ASIC chip.
- the RF front-end electronics and the baseband DSP electronics are integrated into a single-die System-On-Chip (SOC) chip.
- SOC System-On-Chip
- the positioning and navigation module 178 is implemented in software executed by a microprocessor, while the firmware portion of the baseband DSP module 176 is implemented in either the same microprocessor as the microprocessor of the positioning and navigation module 178, or in a separate microprocessor.
- the GNSS receiver 170 includes more than one microprocessor.
- Figure 1C is a block diagram of computer system 130 in, and used by, a moveable object (e.g., moveable object 110, Figure 1A) to determine the position of the moveable object, according to some embodiments.
- Computer system 130 typically includes one or more processors (sometimes called CPUs, or hardware processors) 202 for executing programs or instructions; memory 210; one or more communications interfaces 206; and one or more communication buses 205 for interconnecting these components.
- Computer system 130 optionally includes a user interface 209 comprising a display device 211 and one or more input devices 213 (e.g., one or more of a keyboard, mouse, touch screen, keypad, etc.) coupled to other components of computer system 130 by the one or more communication buses 205.
- Navigation signal receiver 120 or GNSS receiver 170
- supplemental receiver(s) 152 are also coupled to other components of computer system 130 by the one or more communication buses 205.
- the one or more communication buses 205 may include circuitry (sometimes called a chipset) that interconnects and controls communications between system components.
- Communication interface 206 e.g., a receiver or transceiver
- Memory 210 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices.
- Memory 210 optionally includes one or more storage devices remotely located from the CPU(s) 202.
- Memory 210 or alternately the non-volatile memory device(s) within memory 210, comprises a computer readable storage medium (e.g., a non-transitory computer readable storage medium).
- memory 210 or the computer readable storage medium of memory 210 stores the following programs, modules and data structures, or a subset thereof: • an operating system 212 that includes procedures for handling various basic system services and for performing hardware dependent tasks; • a communications module 214 that operates in conjunction with communication interface 206 (e.g., a receiver and/or transceiver) to handle communications between moveable object 110 and external systems 160 ( Figure 1); the connection between computer system 130 and external systems 160 may include a communication network 162, such as the internet or a public or proprietary wireless network; • optionally, a user interface module 216 for receiving information from one or more input device 213 of user interface 209, and to convey information to a user of moveable object 110 via one or more display or output devices 211; • a navigation module 218 for determining a position of the moveable object and performing one or more navigation functions (e.g., routing of the mobile object; displaying on a map one or more suggested routes for moving the mobile object from a current location to a specified or target location
- tracking module 222 samples a GNSS satellite signal using a tracking frequency and code shift initially determined by the acquisition module 220, and then adjusted by the tracking module itself as the tracking module determines code phase corrections for respective channels of the received satellite navigation signals.
- Operating system 212 and each of the above identified modules and applications correspond to a set of instructions for performing a function described above.
- the set of instructions can be executed by the one or more processors 202 of computer system 130.
- the above identified modules, applications or programs i.e., sets of instructions
- memory 210 stores a subset of the modules and data structures identified above. Furthermore, memory 210 optionally stores additional modules and data structures not described above.
- Figure 1C is intended more as a functional description of the various features which may be present in a computer system 130 of a moveable object 110 than as a structural schematic of the embodiments described herein. In practice, and as recognized by those of ordinary skill in the art, items shown separately could be combined and some items could be separated. For example, some items shown separately in Figure 1C could be combined into a single module or component, and single items could be implemented using two or more modules or components. The actual number of modules and components, and how features are allocated among them will vary from one implementation to another.
- CPUs 202 include specialized hardware for performing these and other tasks.
- some of the operations described above with respect to computer system 130 are performed by navigation signal receiver 120 and/or GNSS receiver 170 rather than computer system 130.
- the baseband DSP module 176 processes digital IF signals channel by channel (e.g., one channel per satellite being tracked).
- Figure 2 illustrates a block diagram of a baseband DSP channel 250 in accordance with some embodiments.
- Each channel may include hardware and software components configured to acquire and track one code signal of one satellite.
- multi-constellation, multi-frequency receivers there can be tens or hundreds of nearly identical channels running and sharing the baseband DSP hardware resources, for example using time multiplexing.
- the baseband DSP module 176 receives (e.g., fetches) digital in-phase (I) IF samples 252 and quadrature (Q) IF samples 254 from the RF front-end module 174 of the GNSS receiver 170.
- the digital I IF samples 252 and Q IF samples 254 are first mixed with the replicas of the carrier signal in carrier removal mixers 256, so the carrier frequency of the received signals is stripped off, and the digital IF signals are down-converted to baseband I and Q samples, respectively.
- the receiver generated carrier signal is synchronized with the frequency of the received IF signals.
- Maintaining carrier frequency synchronization is a primary goal of the carrier tracking loop in each channel of the receiver. Furthermore, when the carrier tracking loop of a DSP channel 250 is configured to align the phase of the receiver generated carrier signal with the carrier phase of the received IF signals, the carrier tracking loop is called a phase lock loop or phase-locked loop (PLL).
- PLL phase-locked loop
- the I and Q signals output by the carrier removal mixers 256 are then correlated with n replicas of code (e.g., the pseudorandom code corresponding to the satellite for which IF signals are being processed, provided by code phase management unit 272) in n pairs of correlators 258 (e.g., correlator pair 258-1, correlator pair 258-2, ... and correlator pair 258-n).
- each of the n replicas of the code has a different phase delay.
- the code phase of one of the n replicas is better aligned with the code phase of the received signals than any of the other replicas, and the correlation of that replica with the received signals has a peak value relative to the other correlations.
- the strongest correlation is identified and used by the code tracking loop’s discriminator and filter 264, and the carrier tracking loop’s discriminator and filter 266, to adjust the code tracking loop and carrier tracking loop, and to remove the code (sometimes called a spreading spectrum code) from the received I and Q samples.
- each of the n replicas of the code has a different phase delay.
- the code phase of one of the n replicas is aligned with the code phase of the received signals, therefore their correlation can achieve a peak value.
- the goal of Code Tracking Loop in the receiver is to maintain this code phase synchronization or code phase lock.
- All 2n correlation results are coherently integrated for a pre-detection integration time in integrate and dump circuits 260, and then dumped for further signal detection tracking and/or multipath mitigation (e.g., via phase multipath mitigation unit 262), etc.
- the length of the pre-detection integration (PDI) time depends on the received signal’s navigation data bit rate or symbol rate and other design considerations. A typical value of the PDI is 1 ms.
- the n pairs of coherent integration I and Q samples are denoted as ⁇ ( ⁇ ⁇ ) 259-1I and ⁇ ( ⁇ ⁇ ) 259-1Q, ⁇ ( ⁇ ⁇ ) 259-2I and ⁇ ( ⁇ ⁇ ) 259-2Q, ..., and ⁇ ( ⁇ ⁇ ) 259-nI and ⁇ ( ⁇ ⁇ ) 259-nQ.
- the coherent integration samples can be further coherently or non-coherently integrated for a longer duration in a receiver to achieve a higher signal to noise ratio (SNR).
- ACF auto- correlation function
- the code tracking loop’s discriminator and filter 264 can identify the code phase difference between the received signals and the Prompt replica of the code, filter it, and use it to adjust and drive code numerically controlled oscillator (NCO) 268.
- the output of the code NCO 268 is used by code generator or loader 270 to control the frequency and phase of the Prompt code replica such that it is kept aligned with those of the received signals.
- the code tracking loop’s discriminator and filter 264 can generate code phase measurements of the received signals. Using time information obtained by combining information obtained from the satellite signals of four or more satellites, the code phase measurements are used to generate pseudorange measurements, which are one type of key satellite range measurement for GNSS positioning (e.g., determining the position of a mobile object, such as mobile object 110, Figure 1A).
- the carrier tracking loop’s discriminator and filter 266 typically utilizes only the pair of Prompt correlations, discriminates the frequency difference and/or phase difference between the received signals and the receiver generated carrier signal, filters the difference(s), and drives carrier NCO 274 so as to maintain synchronization between the received signals (e.g., from the satellite being tracked by the baseband DSP channel 250) and the carrier signal replica produced by carrier NCO 274 and carrier phase summation unit 276.
- the carrier tracking loop’s discriminator and filter 266 can also output raw navigation data bits or symbols embedded in the satellite signal being processed by the baseband DSP channel 250.
- Figure 3 illustrates an example where both a direct-path signal 302 and a multipath signal 304 from a satellite 170 are received by an antenna 172 of a GNSS receiver.
- LOS line-of-sight
- multipath multipath signal
- t represents the time that the composite signal is sampled or measured
- ⁇ ⁇ is an amplitude of the direct-path signal 302
- ⁇ ⁇ is an amplitude of the multipath signal 304
- ⁇ is a time delay of the multipath signal 304 relative to the direct-path signal 302 ( ⁇ is also referred to as “multipath time delay”)
- ⁇ is a phase delay of the multipath signal 304 relative to the direct-path signal 302 ( ⁇ is also referred to as “multipath phase delay”).
- the time delay ⁇ is always larger than zero.
- the multipath signal amplitude ⁇ ⁇ is typically smaller than the direct-path signal amplitude ⁇ ⁇ .
- the multipath phase delay ⁇ can be any value ranging from -180° to 180°. When ⁇ is equal to 0°, the multipath signal is in- phase with the direct-path signal. When ⁇ is equal to 180°, the multipath signal is out-of- phase with the direct-path signal.
- ⁇ ⁇ , ⁇ , and ⁇ are the three independent parameters that describe a multipath signal.
- Equation 1 assumes that a direct-path signal always exists, i.e., ⁇ ⁇ is always larger than 0. If the direct-path signal is blocked (e.g., by trees or buildings), corresponding multipath signals, if any, may be detected and excluded by the GNSS receiver using multipath mitigation mechanisms different from those described in this document. Equation 1 also assumes that there is at most one multipath signal for each direct-path signal. If more than one multipath signal exists, it is assumed that the strongest multipath signal is a dominant signal that is much stronger than all the remaining multipath signals such that all the remaining multipath signals can be omitted or ignored for purposes of mitigating multipath-induced errors in GNSS receiver positioning.
- Figure 4A illustrates a phasor diagram of the in-phase (I) and quadrature (Q) components of a direct-path signal in accordance with some embodiments.
- Figure 4A shows that this phasor vector is aligned with the I axis, i.e., the value of Q component is equal to 0, and the magnitude of the vector, ⁇ ⁇ 402, is equal to the value of I component.
- This pair of I and Q samples is just one of the n pairs of coherent integration I and Q samples as shown in Figure 2.
- the carrier tracking loop utilizes this pair of I and Q samples to make the phase of the generated carrier signal phase-locked with that of the received signal by driving Q component to zero.
- Figure 4A is a phasor diagram when the carrier tracking loop is in a steady state of phase lock.
- the vector magnitude ⁇ ⁇ 402 may not be numerically equal to the direct-path signal magnitude ⁇ ⁇ in equation 1 due to receiver signal processing; however, they only differ by a scale factor since the receiver signal processing can be regarded as a linear system.
- multipath errors can be introduced to range measurements, for example, pseudorange and carrier phase measurements.
- Figure 4B illustrates a phasor diagram of I (401) and Q (403) components of a composite signal, i.e., a direct-path signal plus a multipath signal, where ⁇ ⁇ 404 is the magnitude of the direct-path signal phasor vector, ⁇ ⁇ 406 is the magnitude of the multipath signal phasor vector, and ⁇ ⁇ 408 is the magnitude of the composite signal phasor vector.
- the resulted coherent integration I and Q samples are the linear sum of integration values from the direct-path signal and integration values from the multipath signal, corresponding to the sum of the two vectors in the phasor diagram.
- the summation vector represented by the dashed line of the composite signal phasor vector, is aligned with (e.g., parallel to) the I axis.
- the direct-path signal phasor vector would be aligned with the I axis instead, just as shown in Figure 4A. Therefore, the angle, ⁇ ⁇ 410 between the summation vector and the direct-path signal vector is the carrier phase multipath error introduced by the multipath signal.
- An objective of methods and systems disclosed herein is to estimate the carrier phase multipath error ⁇ ⁇ 410, and correct and mitigate multipath errors in the corresponding carrier phase measurement for the respective satellite in accordance with the carrier phase multipath error ⁇ ⁇ 410.
- Figure 4B shows that the direct-path signal phasor vector, the multipath signal phasor vector, and the composite signal phasor vector form a triangle.
- Phase difference angle ⁇ ⁇ 412 between the direct-path signal vector and the multipath signal vector is supplementary to the multipath phase delay ⁇ as defined in equation 1.
- Equation 3 When I and Q samples are taken at code chip edge-up or edge-down transitions, equation 3 needs to be changed into the following form: where ⁇ ⁇ ( ⁇ ) is the magnitude step response of the last stage band pass filter in a receiver’s RF front end 174. Equation 6 contains both the step response ⁇ ⁇ ( ⁇ ) and its delayed version ⁇ ⁇ ( ⁇ ⁇ ⁇ ), and, as discussed below, can be used to estimate the multipath parameters (e.g., ⁇ ⁇ , ⁇ , and/or ⁇ ).
- a GNSS signal is a sinusoidal carrier signal modulated at least by some code, where the code is a pseudo random sequence of ones and zeros, which are called chips.
- the signal carrier phase will undergo a 180° phase reversal at a code chip edge transition, either from 0 to 1 or from 1 to 0.
- GPS L1 Coarse Acquisition (CA) signal has a center carrier frequency of 1575.42 MHz, and its CA code has a chipping rate of 1.023 MHz.
- the baseband DSP 176 carries on correlation and integration for a PDI period of 1 ms, a received GPS L1 CA signal would be expected to have about 1023 code chip edge transitions during each PDI period of 1 ms.
- Figure 5 illustrates an example of the magnitude 502 of a filter step response function ⁇ ⁇ ( ⁇ ) versus time, in accordance with some embodiments.
- the dashed line 508 represents an ideal code chip edge-up transition from 0 to 1 instantaneously at time 0. However, because of the RF front end filtering, or equivalently, because the received signal is filtered and thus bandwidth limited, it is impossible to have such an ideal transition which contains infinitely high frequency components in practice.
- the solid line 506 represents an example of the actual magnitude of the filter step response function ⁇ ⁇ ( ⁇ ) versus time, where a code chip edge-up transition serves as a step input function. Compared to the corresponding ideal step response (represented by the dashed line 508), the actual step response ⁇ ⁇ ( ⁇ ) shown by the solid line 506 not only has a response time of ⁇ 510 but also has some overshoots before and after the transition.
- step response characteristics are determined by the type and bandwidth of the final filter in the receiver’s RF front end module 174.
- a 6-pole Butterworth filter with an IF equivalent bandwidth of 30 MHz has a step response time of about 50 ns and enters steady state after about 150 ns.
- the code chip edge transition step response model ⁇ ⁇ ( ⁇ ) is determined and stored in memory of the receiver before the phase multipath mitigation algorithm (e.g., as described in Figures 9, 11, 12, and 13) is executed.
- the baseband DSP module 176 of a GNSS receiver outputs I and Q samples along code chip edge transitions.
- code phase management unit 272 can properly control and set the phase delays of n pairs of code replicas in such a way that the corresponding n pairs of correlation results, ⁇ ( ⁇ ⁇ ) 259-1I and ⁇ ( ⁇ ⁇ ) 259-1Q, ⁇ ( ⁇ ⁇ ) 259-2I and ⁇ ( ⁇ ⁇ ) 259-2Q, ..., and ⁇ ( ⁇ ⁇ ) 259-nI and ⁇ ( ⁇ ⁇ ) 259-nQ, are along code chip edge transitions.
- the correlation measurements ⁇ ( ⁇ ⁇ ) and ⁇ ( ⁇ ⁇ ) are the summed, or equivalently, averaged ones over all code chip edge transitions in one period of correlation duration.
- only a subset of all these ⁇ pairs of correlators are arranged along code chip edge transitions for the purpose of phase multipath mitigation.
- the effective correlators for the purpose of phase multipath mitigation are constructed in a different approach, for example, by utilizing multiple channel resources.
- the number of pairs of correlation samples can be increased to cover a larger portion (e.g., even covering a tail portion) of the PN code sequence so as to accurately measure even long delayed multipath signals.
- enough correlators are arranged to cover a entire code chip edge transition.
- some aspects of the present disclosure estimate the unknown signal parameters (e.g., the carrier phase multipath error ⁇ ⁇ , the multipath time delay ⁇ , and the amplitude of the multipath signal ⁇ ⁇ ) in two procedures, also referred to herein as Procedure 1 and Procedure 2, which are described below (e.g., with respect to Figures 9 and 11).
- the code chip edge transition of a direct-path signal can be distorted, and accordingly the code chip edge transition response time can be changed from ⁇ 510, as shown in Figure 5, to ⁇ + ⁇ ⁇ , where the time error ⁇ ⁇ is unknown but of interest since it largely reveals the code tracking error and code phase measurement error due to the influence of the multipath signal.
- ⁇ ( ⁇ ) ⁇ ⁇ ⁇ ⁇ ( ⁇ ) sin ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ( ⁇ ⁇ ⁇ ) sin ⁇ ⁇ (11) [0089]
- filter gains which are usually less than 1.
- Equation 19 indicates that estimate ⁇ ⁇ ⁇ ⁇ is the sum of the previous estimate ⁇ ⁇ ⁇ and instantaneous solution ⁇ ⁇ , and then this essentially accumulated estimate ⁇ ⁇ ⁇ is used to convert ⁇ ( ⁇ ⁇ ) to ⁇ ( ⁇ ⁇ ) using equation 15.
- the instantaneous solution ⁇ ⁇ will be very close to zero as the Least Squares fitting process iterates and converges. Once the Least Squares fitting process converges and ⁇ ⁇ is very close to zero, both equations 16 and 17 suggest that small errors in estimate ⁇ ⁇ ⁇ ⁇ should not be a concern, because the product of ⁇ ⁇ ⁇ ⁇ and ⁇ ⁇ will eventually approach to zero. [0095] Not all multipath scenarios can be handled by equation 17. For example, in some scenarios, the angle ⁇ ⁇ is equal or very close to either +90° or -90°, as illustrated in Figure 7A and Figure 7B, respectively.
- tan ⁇ ⁇ will approach ⁇ infinity, and thus solving the corresponding matrix equation 17 will be numerically impossible.
- the angle ⁇ ⁇ is equal or very close to either 0° or 180°, as illustrated Figure 8A and Figure 8B, respectively, and thus tan ⁇ has a value that is very close to zero. If tan ⁇ is equal or very close to zero, then all multiplications in the matrix equation 17 will produce values that are zero or close to zero, and the right-hand side ⁇ ( ⁇ ⁇ ) of equation 16 should also be zero in theory, and thus solving matrix equation 17 will be numerically unreliable or meaningless.
- Equation 20 can be equivalently written into the following matrix form: [0098]
- Figure 9 is a workflow 900 for Procedure 1 of the phase multipath mitigation algorithm, in accordance with some embodiments.
- the workflow 900 is performed by a GNSS receiver, such as the GNSS receiver 170 in Figure 1B, or by a computing device (e.g., computer system 130, Figure 1C).
- a GNSS receiver such as the GNSS receiver 170 in Figure 1B
- a computing device e.g., computer system 130, Figure 1C.
- ⁇ e.g., corresponding to ⁇ ( ⁇ ⁇ ) 259-1I and ⁇ ( ⁇ ⁇ ) 259-1Q, ⁇ ( ⁇ ⁇ ) 259-2I and ⁇ ( ⁇ ⁇ ) 259-2Q, ..., and ⁇ ( ⁇ ⁇ ) 259-nI and ⁇ ( ⁇ ⁇ ) 259-
- the n pairs of ⁇ ( ⁇ ⁇ ) and ⁇ ( ⁇ ⁇ ) are delivered by integrate and dump circuits 260 as illustrated in Figure 2.
- the chip edge transition model ⁇ ⁇ ( ⁇ ) or ⁇ ⁇ ( ⁇ ⁇ ) is pre-determined and therefore available.
- An example of a pre-determined chip edge transition model ⁇ ⁇ ( ⁇ ) or ⁇ ⁇ ( ⁇ ⁇ ) is been illustrated in Figures 5 and 6. As can be seen in these figures, the amplitude of ⁇ ⁇ ( ⁇ ) is normalized to 1.
- the workflow 900 includes determining (904) a sign of carrier phase multipath error ⁇ ⁇ 410.
- the sign of ⁇ ⁇ is positive if a triangle formed by the direct-path signal phasor vector, the multipath signal phasor vector, and the composite signal phasor vector is in the first quadrant (e.g., Quadrant 1416 in Figure 4B). Otherwise, the sign of ⁇ ⁇ is negative if the triangle is in the fourth quadrant (e.g., Quadrant 4418 in Figure 4B).
- ⁇ ⁇ ⁇ 90°
- ⁇ ⁇ +90° if the sign of ⁇ ⁇ has been determined as positive; otherwise, ⁇ ⁇ is ⁇ 90° if the sign of ⁇ ⁇ is negative.
- the workflow 900 continues with the path indicated by step 914, to iteratively solve for ⁇ ⁇ and ⁇ ⁇ , using a first iterative process.
- an iteration count e.g., k
- an iteration count e.g., k
- the values of parameters ⁇ ⁇ , ⁇ ⁇ and ⁇ ⁇ are estimated (916) (e.g., initial estimates of these values are set, determined or obtained).
- ⁇ ⁇ (referred to as “x hat”) denotes an estimate of parameter ⁇ in iteration ⁇ .
- ⁇ ⁇ is used as the initial estimate for a next iteration (i.e., iteration ⁇ + 1) of the first iterative process.
- the initial estimate of ⁇ i.e., ⁇ ⁇ ⁇
- the initial estimate ⁇ ⁇ ⁇ can be assigned using the magnitude of the first pair of I and Q samples, e.g., ⁇ ( ⁇ ⁇ ) and ⁇ ( ⁇ ⁇ ) for a chip edge- down transition.
- the absolute value of tan ⁇ ⁇ i.e.,
- is smaller than the predefined threshold (e.g., Threshold2) (922), this is a case of ⁇ ⁇ 0° or 180° (924).
- Threshold 2 another predefined threshold
- the peak of their composited correlations will shift to right (i.e., be delayed) if a multipath signal is in phase with its direct-path signal.
- the peak of their composited correlations will shift to left (i.e., be advanced) if a multipath signal is 180° out of phase with its direct-path signal.
- the star markers represent ⁇ ( ⁇ ⁇ ) measurement samples
- the dot markers represent the code chip edge transition model samples ⁇ ⁇ ( ⁇ ⁇ ).
- the carrier phase multipath error ⁇ ⁇ is 0.
- the uncertainty or error is tolerable and does not affect the accuracy of estimating the carrier phase multipath error ⁇ ⁇ .
- the Least Squares fitting process updates (928) the estimate of tan ⁇ ⁇ and ⁇ ⁇ based on equations 18 and 19 to obtain new estimates tan ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ at this k th iteration, respectively.
- the workflow 900 then proceeds to determine (930) whether the Least Squares fitting process has converged, diverged or not.
- workflow 900 determines that the Least Squares fitting process has converged (932), outputs a solution for ⁇ ⁇ (934), and terminates the first iterative process.
- the change of estimates of tan ⁇ in the last two iterations e.g., ⁇ tan ⁇ , ⁇ ⁇ tan ⁇ , ⁇ ⁇
- workflow 900 determines that the Least Squares fitting process has converged (932), outputs a solution for ⁇ ⁇ (934), and terminates the iterative process.
- the workflow 900 determines that the iterative process has diverged (or at least cannot converge anymore) and therefore terminates the iterative process without producing a solution for ⁇ ⁇ (934). Otherwise (e.g., k ⁇ Threshold3 or k ⁇ Threshold3), since the process has yet to converge but has not diverged, the workflow 900 repeats the iterative process after increasing the number of iterations ⁇ by 1 (938).
- a threshold e.g., k > Threshold3
- the sign of carrier phase error ⁇ ⁇ which was determined in step 904, is utilized again: if the sign of carrier phase error ⁇ ⁇ is positive while ⁇ ⁇ calculated from arctangent is negative, then ⁇ ⁇ + 180° is re-assigned to the final solution of ⁇ ⁇ ; similarly, if the sign of ⁇ ⁇ is negative while ⁇ ⁇ calculated from arctangent is positive, then ⁇ ⁇ ⁇ 180° is re-assigned to the final ⁇ ⁇ .
- Procedure 1 has solved parameter ⁇ ⁇ and parameter ⁇ ⁇ , based on the results of the last iteration of Procedure 1 (e.g., using equations 18 and 19), while Procedure 2 (as described in Figures 11, 12, and 13) will continue to solve for the remaining signal parameters, e.g., ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , ⁇ , and the carrier phase error ⁇ ⁇ .
- Procedure 1 may fail to converge and deliver a no-solution (e.g., no valid solution). If this happens, Procedure 2 will not be executed.
- Equation 26 has four unknowns ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ . Since Equation 26 is non- linear, Taylor expansion and linearization techniques are applied here.
- Equation 28 can be rewritten into the following form: where, ⁇ ⁇ ( ⁇ ⁇ ) and ⁇ ⁇ ( ⁇ ⁇ ) are the differences between I & Q measurements and their corresponding estimates, i.e., [00116]
- equation 30 can be written into the following two matrix equations: [00117] As can be seen, the coefficient matrices in the matrix equations 32 and 33 happen to be same.
- One approach is to solve equations 32 and 33 separately, while estimates of ⁇ ⁇ , ⁇ ⁇ and ⁇ for equation 32 are updated based on equations 34, 36 and 37, and estimates of ⁇ ⁇ , ⁇ ⁇ and ⁇ for equation 33 are updated based on equations 35, 36 and 37.
- the final solution ⁇ ⁇ can be a weighted sum of the solution ⁇ ⁇ from equation 32 and the other ⁇ ⁇ from equation 33.
- the final solution ⁇ can also be a weighted sum of the two ⁇ solutions from equations 32 and 33.
- Equations 32 and 33 Another approach involves converting/combining the two ⁇ ⁇ 3 matrix equations (equations 32 and 33) into one ( 2 ⁇ ) ⁇ 4 matrix equation with a total of four unknowns (e.g., unknowns ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ ⁇ ), and solving the ( 2 ⁇ ) ⁇ 4 matrix equation (e.g., instead of combining solutions).
- equation 32 is solved to obtain solutions ⁇ ⁇ , ⁇ ⁇ and ⁇ . Because the unknowns ⁇ ⁇ and ⁇ have been solved, their values are now known.
- Equation 35 can still be used to update ⁇ ⁇ ⁇ , ⁇ iteratively.
- the third approach solves matrix equation 41 (instead of matrix equation 33) to obtain ⁇ ⁇ .
- the third approach offers two advantages.
- the third approach solves a ⁇ ⁇ 3 matrix (equation 32) and a ⁇ ⁇ 1 matrix (equation 41), thus reducing the amount of computational power used to produce a solution.
- an ⁇ ⁇ 1 matrix equation e.g., equation 41
- an ⁇ ⁇ 1 matrix equation typically converges in fewer iterations (e.g., two or three iterations). Therefore, solutions for the unknown parameters can be obtained more quickly and efficiently.
- Figure 11 illustrates a workflow 1100 for Procedure 2 of the phase multipath mitigation algorithm, in accordance with some embodiments.
- the workflow 1100 is performed by a GNSS receiver (e.g., navigation signal receiver 120 or GNSS receiver 170) or by a computing device (e.g., computer system 130, Figure 1C).
- a GNSS receiver e.g., navigation signal receiver 120 or GNSS receiver 170
- a computing device e.g., computer system 130, Figure 1C
- the steps in the workflow 1100 are executed after Procedure 1 (described in the workflow 900) outputs a valid estimation for the carrier phase multipath error ⁇ ⁇ .
- the workflow 1100 includes determining (1102) initial estimates, ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ , of four unknown parameters, ⁇ , ⁇ , ⁇ , and ⁇ .
- the initial estimates ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ , ⁇ can be assigned with the last pair of correlation measurements, i.e., ⁇ ( ⁇ ⁇ ) and ⁇ ( ⁇ ⁇ ).
- Procedure 1 e.g., the workflow 900
- ⁇ ⁇ ⁇ ⁇ , ⁇ can assigned to the value of ⁇ ⁇ that has been solved for from equation 22.
- the final solution of ⁇ ⁇ is also equal to this value.
- ⁇ ⁇ ⁇ , ⁇ can assigned to 0.
- the final solution of ⁇ ⁇ in this case is also 0.
- the initial multipath signal amplitude estimate ⁇ ⁇ ⁇ ⁇ , ⁇ can be usually set at 0.5, e.g., half of the amplitude which is used to normalize the chip edge transition model ⁇ ⁇ ( ⁇ ) and correlation samples ⁇ ( ⁇ ⁇ ) and ⁇ ( ⁇ ⁇ ).
- the estimate ⁇ ⁇ ⁇ ⁇ , ⁇ can be scaled down accordingly.
- Equation 26 shows that ⁇ ( ⁇ ⁇ ) and ⁇ ( ⁇ ⁇ ) measurement models are linear with parameters ⁇ ⁇ , ⁇ ⁇ and ⁇ ⁇ , so these initial estimates typically work well. [00131] Equation 26 shows that both ⁇ ( ⁇ ⁇ ) and ⁇ ( ⁇ ⁇ ) measurement models are highly nonlinear functions in terms of the multipath time delay parameter ⁇ , and therefore it is critical to make its initial estimate ⁇ ⁇ ⁇ as accurate as possible.
- the initial multipath time delay estimate ⁇ ⁇ (e.g., ⁇ ⁇ ⁇ 1010 in Figure 10A and ⁇ ⁇ 1020 in Figure 10B) can be set as [00132] If later the Least Squares fitting process cannot converge using this estimate ⁇ ⁇ ⁇ , it suggests this estimate ⁇ ⁇ ⁇ is probably too erroneous.
- Figures 10A and 10B are examples of ⁇ ( ⁇ ⁇ ) measurement samples when angle ⁇ ⁇ is equal to 0° and 180°, respectively, this method of estimating ⁇ is valid for all multipath scenarios.
- Procedure 2 Having determined the initial estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ , Procedure 2 selects an appropriate algorithm to iteratively solve for the unknown parameters, ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ , depending on whether ⁇ ⁇ is equal to ⁇ 90° or not (1104).
- FIG. 12 illustrates a workflow 1200 for solving the unknown parameters, ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ when ⁇ ⁇ is not ⁇ 90°, in accordance with some embodiments.
- an iterative process at iteration k first estimates (1204) I measurements, ⁇ ⁇ ⁇ ⁇ , ⁇ , based on initial estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ using equation 29, calculates its estimation error using equation 31, constructs I-matrix equation 32, and solves for unknowns ⁇ ⁇ , ⁇ ⁇ and ⁇ ⁇ using the Least-Squares method (1206).
- the workflow 1200 updates (1208) ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ using equations 34, 36 and 37.
- a post-fix ⁇ ⁇ ⁇ ⁇ , ⁇ at each iteration is also calculated as follows: [00135]
- the workflow 1200 includes determining (1210) whether the iterative process has diverged or the number of iterations, ⁇ , is larger than a threshold (e.g., Threshold4).
- a threshold e.g., Threshold4
- the workflow 1200 determines that the iterative process has diverged (1224). This is because, since a multipath signal must travel through a longer path than its direct-path signal, the multipath time delay ⁇ should always be larger than 0. However, if ⁇ ⁇ ⁇ is larger than ⁇ , it means that the multipath signal effect is not observable even by the last pair of correlators.
- ⁇ ⁇ ⁇ ⁇ , ⁇ is less than 0, it means multipath signal is either too weak or does not exist.
- These thresholds may need some fine-tuning or margin, since, for example, ⁇ ⁇ ⁇ ⁇ may oscillate to a slightly negative value before converging to a small positive one.
- the way of determining convergence here is similar to the one in Procedure 1: if changes in the estimates between two latest iterations are smaller than the corresponding thresholds, and/or if the change in ⁇ ⁇ ⁇ ⁇ , i.e., ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ , is smaller than a threshold, and/or if ⁇ ⁇ ⁇ ⁇ , ⁇ itself is smaller than a threshold, then the workflow 1200 determines that the iterative process has converged (1216); otherwise, the iterative process has not converged yet (1220).
- Figure 12 also illustrates that in some instances, if the iterative process has diverged or if ⁇ is larger than a threshold (1224), then the current iteration is terminated and a no-solution (e.g., no valid solution) is output (1231). In some instances, divergence may be caused by a bad initial estimate ⁇ ⁇ .
- a new, different initial estimate ⁇ ⁇ ⁇ is tried, as illustrated in steps 1226 and 1228.
- a series of different initial estimates ⁇ ⁇ ⁇ ⁇ can be tried sequentially (e.g., in a “tree pattern”). This is illustrated in Figure 14. If the first estimate ⁇ ⁇ ⁇ 1402 results in a divergence, a second new estimate ⁇ ⁇ ′ 1404 can be adjusted to its right. If the second estimate ⁇ ⁇ ⁇ ′ 1404 also fails, then a third new estimate ⁇ ⁇ ⁇ ′′ 1406 with a value smaller than the first estimate ⁇ ⁇ ⁇ 1402 can be tried.
- the adjustment step size can be a constant (e.g., equal to the correlator spacing).
- the range for the adjustments say, from ⁇ ⁇ 1420 to ⁇ ⁇ 1422, should cover all correlation sample times, i.e., from 1424 to ⁇ ⁇ 1426, with some margin. Once an adjustment moves beyond this range, it means that all possible initial estimates in this corresponding direction have been tried.
- an iteration count e.g., k, representing a number of iterations of the third iterative process is set or reset to an initial value, e.g., 1.
- the third iterative process calculates (1240) Q measurements, ⁇ ⁇ ⁇ ⁇ , ⁇ , based on the initial estimate using equation 39, calculates (1240) the measurement estimation error ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ using equation 31, constructs Q-matrix equation 41, solves (1242) for unknowns ⁇ ⁇ using the Least-Squares method, and updates (1242) ⁇ ⁇ ⁇ , ⁇ using equation 35. Meanwhile, a post-fix ⁇ ⁇ ⁇ , ⁇ at each iteration is also calculated as follows: [00141] At the end of each iteration (e.g., iteration k), the workflow 1200 determines (1244) whether convergence of the third iterative process has occurred.
- a way of checking convergence is similar to that described above with respect to step 1214: if the change of estimates of ⁇ in the last two iterations, e.g., is smaller than a threshold, and/or if the change in ⁇ ⁇ ⁇ ⁇ , i.e., ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ , is smaller than a threshold, and/or if ⁇ ⁇ ⁇ ⁇ , ⁇ itself is smaller than a threshold, then the third iterative process has successfully converged (1246), and thus ⁇ ⁇ is obtained (1248).
- the workflow 1200 in Figure 12 describes the steps of solving for ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ when ⁇ ⁇ is not equal to ⁇ 90°.
- the iterative process for determining parameters ⁇ ⁇ , ⁇ ⁇ and ⁇ , or the iterative process (e.g., the third iterative process) for determining ⁇ ⁇ can be stopped (e.g., when divergence occurs or when the numbers of iterations has exceeded a threshold number, such as Threshold4 or Threshold5) and information indicating that no valid solution has been determined is output.
- Figure 13 illustrates a workflow 1300 for solving for the unknown parameters ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ when ⁇ ⁇ is equal to ⁇ 90° (step 1302, Figure 13), in accordance with some embodiments.
- Procedure 1 (workflow 900) has determined that ⁇ ⁇ is equal to ⁇ 90° using ⁇ ( ⁇ ⁇ ) measurements based on equation 22, which is used to solve for ⁇ ⁇ , there is no need to repeat this process of solving for some unknowns from ⁇ ( ⁇ ⁇ ) measurements. Instead, the solution ⁇ ⁇ to equation 22 obtained in Procedure 1 can be assigned not only to the initial estimate but also to the final solution of ⁇ ⁇ .
- the remaining steps in the workflow 1300 solve for ⁇ ⁇ , ⁇ ⁇ and ⁇ using matrix equation 33.
- the steps for solving matrix equation 33 which are shown in the workflow 1300, are similar to those for solving matrix equation 32, which are shown on the left portion of the workflow 1200.
- the workflow 1300 in Figure 13 is an iterative process (e.g., a fourth iterative process) that includes calculating (1304) (e.g., at iteration k) Q measurements, based on initial estimates ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ using equation 29, calculating (1304) the estimation error ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ using equation 31, constructing Q-matrix equation 33, and solving (1306) for unknowns ⁇ ⁇ , ⁇ ⁇ and ⁇ ⁇ using the Least-Squares method.
- calculating (1304) e.g., at iteration k
- Q measurements based on initial estimates ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ using equation 29, calculating (1304) the estimation error ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ using equation 31, constructing Q-matrix equation 33, and solving (1306) for unknowns ⁇ ⁇ , ⁇ ⁇ and ⁇ ⁇ using the Least
- an iteration count e.g., k, representing a number of iterations of the four iterative process is set or reset to an initial value, e.g., 1.
- the workflow 1300 includes updating (1308) ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ using equations 35, 36 and 37. Meanwhile, a post-fix ⁇ ⁇ ⁇ , ⁇ at each iteration is also calculated using equation 44.
- the workflow 1300 determines (1310) whether the iterative process has diverged or the number of iterations, ⁇ , is larger than a threshold (e.g., Threshold6). If estimates are out of their valid range (e.g., if estimate ⁇ ⁇ ⁇ is larger than the allowably maximal time delay corresponding to the last pair of correlators, ⁇ , or if ⁇ ⁇ ⁇ is less than 0, or if estimate ⁇ ⁇ ⁇ , ⁇ is less than 0, then the iterative process is determined to have diverged (1320).
- a threshold e.g., Threshold6
- these thresholds may be fine-tuned to some margin, since ⁇ ⁇ ⁇ may oscillate to a slightly negative value before converging to a small positive one.
- the workflow 1300 determines that the fourth iterative process has converged (1316). Otherwise, the workflow 1300 determines that the fourth iterative process has not converged. If the fourth iterative process has converged (1316), the Q-matrix equation 33 has been successfully solved, and the ⁇ ⁇ , ⁇ ⁇ and ⁇ are obtained (1318).
- the workflow 1300 includes re-solving equation 33 using a new, different estimate ⁇ ⁇ ⁇ (1322). For example, in some embodiments, Procedure 2 selects different initial estimates ⁇ ⁇ ⁇ ⁇ using the approach that is explained above with respect to Figure 14.
- Procedure 2 has solved for parameters ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ , regardless of whether ⁇ ⁇ is equal to ⁇ 90° or not. It is also possible that no valid solution is obtained in Procedure 1 and/or Procedure 2 (steps 110, 1112 and 1114). In some embodiments, if there is no valid solution, this means that no error correction to carrier or code phase measurements is available.
- the phase multipath mitigation techniques output information indicating that there is not a valid solution, instead of a suspiciously bad solution, to protect GNSS receivers’ reliability performance.
- angles ⁇ ⁇ , ⁇ ⁇ and ⁇ ⁇ are all positive if a triangle formed by three phasor vectors is in Quadrant 1 416, as illustrated in Figure 4B; otherwise, they are all negative if the triangle is in Quadrant 4418.
- all of the unknown parameters including ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ ⁇ , and ⁇ , have been solved.
- the carrier phase measurement error ⁇ ⁇ can be used to correct the corresponding carrier phase measurement, and thus the carrier phase multipath error is mitigated.
- the time error ⁇ ⁇ if solved in Procedure 1, can be used as a reference to correct the corresponding code phase measurement and pseudorange measurement. In some embodiments, these parameters, whose values have been determined, can be further used, for example, to mitigate other errors using other signal tracking and multipath mitigation techniques. [00154] Some applications solve for the carrier phase multipath error ⁇ ⁇ and/or the time error ⁇ ⁇ . In these instances, the steps (described above) that are used to calculate other parameters can be skipped as soon as ⁇ ⁇ and ⁇ ⁇ are obtained.
- Procedure 1 determines that ⁇ ⁇ is equal to 0° or 180°, then the entire Procedure 2 can be skipped and a correct solution to ⁇ ⁇ can be directly delivered ( ⁇ ⁇ is equal to 0° in this case).
- ⁇ ⁇ is equal to 0° in this case.
- computational power and time can be saved.
- the geometry in Figure 15A is assumed to reflect a weak multipath scenario, where the multipath signal amplitude ⁇ ⁇ ⁇ ⁇ ⁇ , and the value of the angle ⁇ ⁇ (“true value”) is equal to 30°.
- ⁇ ⁇ is detected to be 90° by Procedure 1, and then the steps described in Figure 13 are executed, where low SNR measurements ⁇ ( ⁇ ⁇ ) are utilized, and these nearly zero-valued measurements ⁇ ( ⁇ ⁇ ) result in small values of solutions ⁇ ⁇ and ⁇ ⁇ .
- the comparison between Figure 15A and Figure 15B demonstrates that the solution for the carrier phase multipath error ⁇ ⁇ in Figure 15B is quite close to the ⁇ ⁇ carrier phase multipath error in Figure 15A, even though the solution ⁇ ⁇ could be very different from the “true value” of ⁇ ⁇ .
- n data marks 602-i in Figure 6 (representing n pairs of correlation measurements) only cover a portion of the transition, this will result in an ambiguity between multipath time delay ⁇ and multipath signal amplitude ⁇ ⁇ . In other words, this phase multipath mitigation may converge to a wrong solution or even diverge. Therefore, it is recommended that n pairs of correlation measurements should be arranged along the whole code chip edge transition including its tail. [00160] In addition to a code chip edge transition model ⁇ ⁇ ( ⁇ ), Figure 6 also illustrates its time-delayed version ⁇ ⁇ ( ⁇ ⁇ ⁇ ).
- Figure 6 shows that ⁇ ⁇ ( ⁇ ⁇ ⁇ ) and the corresponding multipath signal may not be observable even by the last pair of receiver correlators if multipath time delay ⁇ is too large, larger than the last correlator pair’s code phase ⁇ ⁇ .
- more correlator resources are needed in receiver hardware design to cover and measure the very tail part of the code chip edge transition model ⁇ ⁇ ( ⁇ ), if correlator spacing remains unchanged.
- phase multipath mitigation system needs to deal with very short- and very long-delayed multipath scenarios, it demands more correlator resources. This tradeoff between receiver hardware complexity and multipath mitigation performance should be considered in GNSS receiver design. In some instances. when the receiver hardware does not have enough resources to support multipath mitigation for some multipath scenarios, the phase multipath mitigation algorithm that is described in Procedure 1 and Procedure 2 should determine the MSE values for most if not all steps, as described above, and deliver a no- solution as needed, to ensure that the receiver’s reliability and integrity performance are protected.
- FIGS 16A and 16B illustrate a flowchart diagram for a method 1600 of mitigating the effect of a multipath-induced error in a global navigation satellite system (GNSS), in accordance with some embodiments.
- the method 1600 is performed at a GNSS receiver (e.g., navigation signal receiver 120 in Figure 1A or GNSS receiver 170 in Figure 1B), or at a computing device (e.g., computer system 130) that includes one or more processors (e.g., CPU(s) 202) and memory (e.g., memory 210).
- a GNSS receiver e.g., navigation signal receiver 120 in Figure 1A or GNSS receiver 170 in Figure 1B
- a computing device e.g., computer system 130
- processors e.g., CPU(s) 202
- memory e.g., memory 210
- the GNSS receiver receives (1602) a band-limited composite signal corresponding to a respective satellite in the GNSS, including a band-limited direct-path signal and a band-limited multipath signal.
- the direct-path signal and the multipath signal are modulated with a pseudorandom (PN) code
- PN pseudorandom
- the GNSS receiver obtains (1604), for a code chip edge transition of the PN code (e.g., a chip edge-up transition or a chip edge-down transition), n pairs of correlation samples (e.g., samples 602-i, Figure 6) of the composite signal during a corresponding n time instances, each having a different time offset from the code chip edge transition.
- n is a positive integer such as 16, 32, 48, or the like.
- the code chip edge transition has a predetermined filter step response function SR(t) (see, e.g., Figure 5).
- Each respective pair of correlation samples of the n pairs of correlation samples consists of a respective in-phase component sample I(ti) and a respective quadrature component sample Q(ti), wherein i is a positive integer from one to n.
- the n pairs of correlation samples consist of n in-phase component samples of the composite signal (I(t) samples) and n quadrature component samples of the composite signal (Q(t) samples).
- the n pairs of correlation samples are uniformly arranged along the code chip edge transition.
- the n pairs of correlation are arranged over one period of correlation duration.
- a respective pair of correlation samples (I(ti), Q(ti)) is summed or averaged over multiple periods of correlation duration.
- the number of the pairs of correlation samples can be increased to cover a larger portion (e.g., even covering a tail portion) of the PN code sequence so as to accurately measure even long delayed multipath.
- the GNSS receiver obtains (1606), for each respective pair of correlation samples of the n pairs of correlation samples, a corresponding sample of the filter step response function SR(ti) corresponding in time with the respective pair of correlation samples, thereby obtaining n samples of the filter step response function (predetermined SR(t) samples) during the corresponding n time instances.
- the GNSS receiver determines (1608) that a phase ⁇ ⁇ is ⁇ 90° within a first predefined margin (e.g., no greater than 1, 2, 3, 4 or 5 degrees).
- the phase ⁇ ⁇ is equal to 180° minus a sum of (i) a carrier phase multipath error ⁇ ⁇ (e.g., which can be used to correct carrier phase measurement) and (ii) a phase difference ⁇ ⁇ between the direct-path signal and the multipath signal (see Equation 2).
- ⁇ ⁇ is equal to 180 degrees minus the difference between the direct-path signal and the multipath signal.
- the GNSS receiver solves (1610) a first set of matrix equations (e.g., Equation 17), thereby obtaining a solution for tan ⁇ ⁇ and for ⁇ ⁇ tan ⁇ ⁇ , wherein ⁇ ⁇ is a response time error of the code chip edge transition due to the multipath signal.
- Equation 17 a first set of matrix equations
- the GNSS receiver determines (1612) that the phase ⁇ ⁇ is 0° or 180° within a second predefined margin (e.g., no greater 1, 0.5, 0.1, 0.01, or 0.001 degrees).
- the second threshold value e.g., Threshold2 in Figure 9, step 920
- the second threshold value is a value such as 0.01 or less, with some examples being 0.0001, 0.001, 0.005, or 0.01.
- the GNSS receiver determines (1614) ⁇ ⁇ in accordance with the solution for tan ⁇ ⁇ (see above discussion of Figure 9, steps subsequent to step 926). For example, in some embodiments,
- the GNSS receiver adjusts (1616) a pseudorange measurement for the respective satellite in accordance with the determined ⁇ ⁇ ; and/or adjusts a carrier phase measurement for the respective satellite in accordance with a parameter (e.g., the carrier phase multipath error ⁇ ⁇ ) corresponding to the determined ⁇ ⁇ .
- the GNSS receiver performs (1618) a navigation function (e.g., determines a location of the GNSS receiver) using the adjusted pseudorange and/or carrier phase measurements for the respective satellite.
- the GNSS receiver determines, based on the Q(t) samples, a sign (e.g., positive or negative) of the carrier phase multipath error ⁇ ⁇ .
- the phasor diagram is in the first quadrant (e.g., Quadrant 1416, Figure 4B) and the sign of the carrier phase multipath error ⁇ ⁇ is positive.
- the phasor diagram is in the fourth quadrant (e.g., Quadrant 4418) and the sign of the carrier phase multipath error ⁇ ⁇ is negative.
- some ⁇ ( ⁇ ⁇ ) are positive while some are negative.
- the GNSS receiver finds the maximum of their magnitudes, say
- the GNSS receiver determines that ⁇ ⁇ is +90° within the first predefined margin when the sign of the carrier phase multipath error ⁇ ⁇ is positive, and determines that ⁇ ⁇ is -90° within the first predefined margin when the sign of the carrier phase multipath error ⁇ ⁇ is negative.
- the GNSS receiver determines a position of a peak of the I(t) samples relative to a position of a peak of the predetermined SR(t) samples. In accordance with a determination that the position of the peak of the I(t) samples (e.g., ⁇ ⁇ , ⁇ 1004 in Figure 10A) occurs later in time than the position of the peak of the SR(t) samples (e.g., ⁇ ⁇ , ⁇ 1008 in Figure 10A), the GNSS receiver determines that ⁇ ⁇ is 0° within the second predefined margin.
- MSE mean squared error
- ⁇ ⁇ ⁇ cos ⁇ ⁇ , where ⁇ ⁇ is a magnitude of the direct-path signal, and ⁇ ⁇ is the carrier phase multipath error.
- solving the first set of matrix equations comprises: obtaining (i) an initial estimate ⁇ ⁇ ⁇ , ⁇ for the phase ⁇ , (ii) an initial estimate ⁇ ⁇ ⁇ for the response time error ⁇ ⁇ , and (iii) an initial estimate ⁇ ⁇ ⁇ for a magnitude ⁇ of the composite signal (See Figure 9, step 916).
- the initial estimate ⁇ ⁇ ⁇ , ⁇ is set to zero.
- the initial estimate ⁇ ⁇ ⁇ is set to zero.
- the GNSS receiver uses the initial estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , and ⁇ ⁇ ⁇ to solve the first set of matrix equations (e.g., Equation 17) via a Least Squares fitting process to obtain the solution for tan ⁇ ⁇ and ⁇ ⁇ tan ⁇ ⁇ .
- the GNSS receiver in accordance with the determination that
- Each iteration of the first iterative process includes: obtaining an updated estimate tan ⁇ ⁇ ⁇ , ⁇ for the phase ⁇ ⁇ and an updated estimate ⁇ ⁇ ⁇ ⁇ for the response time error ⁇ ⁇ (e.g., according to Equations 18 and 19) (see, e.g., Figure 9, step 928).
- a number of iterations e.g., the current number of iterations, k
- a third threshold value e.g., k > Threshold3 or k ⁇ Threshold3 as illustrated in Figure 9, steps 930 and 932: the GNSS receiver outputs information that no valid solution for ⁇ ⁇ has been determined (see, e.g., Figure 9, step 934) and terminates the first iterative process without producing a solution for ⁇ ⁇ .
- the first iterative process has diverged (or at least cannot converge anymore) and therefore should be cancelled with a no valid solution.
- each iteration of the first iterative process further includes: in accordance with a determination that the number of iterations for the first iterative process does not satisfy the third threshold value (e.g., k ⁇ Threshold3 or k ⁇ Threshold3) (e.g., the first iterative process has not diverged, or the number of iterations, ⁇ , for the least squares fitting process does not equal or exceed a maximum value): in accordance with a determination that a magnitude based on the updated estimate ⁇ ⁇ ⁇ (e.g., ⁇ ⁇ ⁇ ) or based on the updated estimate tan ⁇ ⁇ ⁇ , ⁇ (e.g., a difference in magnitude between the updated estimate tan ⁇ , ⁇ and the estimate tan ⁇ , ⁇ from the previous iteration, ⁇ ) satisfies (e.g., is less than, or is less than or equal to) a fourth threshold value: determining that the Least Squares fitting process has
- each iteration of the first iterative process further includes: in accordance with a determination that the magnitude based on the updated estimate ⁇ ⁇ ⁇ ⁇ or based on the updated estimate tan ⁇ ⁇ ⁇ , ⁇ does not satisfy the fourth threshold value, performing a next iteration of the first iterative process (see., e.g., Figure 9, step 938).
- the magnitude based on the updated estimate ⁇ ⁇ ⁇ ⁇ or based on the updated estimate tan ⁇ ⁇ ⁇ , ⁇ does not satisfy the fourth threshold value when ⁇ ⁇ ⁇ is greater than, or is greater than or equal to, the fourth threshold value, or when is greater than, or is greater than or equal to, the fourth threshold value.
- the GNSS receiver uses at least a subset of (i) the initial estimate ⁇ ⁇ ⁇ , ⁇ , (ii) the initial estimate ⁇ ⁇ ⁇ , ⁇ , (iii) the initial estimate ⁇ ⁇ ⁇ , ⁇ , and (iv) the initial estimate ⁇ ⁇ as starting values, performing one or more iterative processes to obtain solutions for at least a subset of ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ (e.g. using Procedure 2, as illustrated in Figures 11, 12, and 13).
- the GNSS receiver computes the carrier phase multipath error ⁇ ⁇ in accordance with the obtained solutions for at least the subset of ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ , and corrects the carrier phase measurement for the respective satellite in accordance with the carrier phase multipath error ⁇ ⁇ .
- the initial estimate ⁇ ⁇ ⁇ , ⁇ corresponds to a magnitude of a last in-phase component sample I(tn) of the I(t) samples; and the initial estimate ⁇ ⁇ ⁇ , ⁇ corresponds to a magnitude of a last quadrature component Q(tn) of the Q(t) samples.
- the initial estimate ⁇ ⁇ ⁇ ⁇ , ⁇ corresponds to a magnitude of a first in-phase component sample I(t 1 ) of the I(t) samples; and the initial estimate ⁇ , ⁇ corresponds to a magnitude of a first quadrature component Q(t1) of the Q(t) samples.
- the GNSS receiver in accordance with the determination that the phase ⁇ ⁇ corresponds to ⁇ 90° within the first predefined margin, the GNSS receiver obtains a solution for ⁇ ⁇ by solving a matrix equation (see Equation 22), and assigning the obtained solution as the initial estimate ⁇ ⁇ ⁇ , ⁇ . [00185] In some embodiments, in accordance with the determination that the phase ⁇ ⁇ is 0° or 180° within the second predefined margin, the GNSS receiver assigns the initial estimate ⁇ ⁇ ⁇ , ⁇ as zero.
- the initial estimate ⁇ ⁇ ⁇ , ⁇ is 0.5 (e.g., half of the amplitude that is used to normalize the chip edge transition model ⁇ ⁇ ( ⁇ ) and correlation samples ⁇ ( ⁇ ⁇ ) and ⁇ ( ⁇ ⁇ )).
- estimate ⁇ ⁇ ⁇ , ⁇ can be scaled down accordingly.
- the GNSS receiver uses the initial estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ as starting values (e.g., obtained using equation 29) to obtain a solution for ⁇ ⁇ , ⁇ ⁇ , and ⁇ via a second iterative process (see, e.g., workflow 1200 in Figure 12).
- an iteration count e.g., k, representing a number of iterations of the second iterative process is set or reset to an initial value, e.g., 1.
- the one or more predetermined first parameters include one or more of ⁇ ⁇ , ⁇ ⁇ , and ⁇ .
- the determination that the second iterative process has converged is in accordance with a determination that (i) the change in an estimated value of ⁇ ⁇ between the k th iteration and the (k-1) th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (i.e., ⁇ ⁇ h ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ ⁇ ⁇ ), and/or (ii) the change in an estimated value of ⁇ ⁇ between the k th iteration and the (k-1) th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (i.e., ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ h ⁇ ⁇ h ⁇ ⁇ ⁇ ⁇ ⁇ ), and/or (ii) the change in an estimated value of
- the one or more predetermined first parameters include a post-fix mean squared error (MSE) for the in-phase component estimation error, defined by the k th iteration (see Equation 43).
- MSE post-fix mean squared error
- the determining that the second iterative process has converged is in accordance with a determination that a change in the post-fix MSE for the in-phase component estimation error between the k th iteration and the (k-1) th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold ⁇ ⁇ h ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ , ⁇ )).
- a k th iteration of the second iterative process further includes, in accordance with the determination that the change in value of the one or more predetermined parameters between the k th iteration and the (k-1) th iteration does not satisfy the respective corresponding threshold (e.g., the second iterative process has not converged), performing a next iteration of the second iterative process (see, e.g., Figure 12, steps 1220 and 1222).
- the change in value of the one or more predetermined parameters between the k th iteration and the (k-1) th iteration does not satisfy the respective corresponding threshold when or ⁇ h ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ , ⁇ .
- a k th iteration of the second iterative process further includes: in accordance with the determination that (i) the number of iterations ⁇ does not satisfy the fifth threshold value (e.g., k does not satisfy the fifth threshold value when k > Threshold4 or k ⁇ Threshold4, as illustrated in Figure 12, step 1210), terminating the second iterative process without producing a solution for ⁇ ⁇ , ⁇ ⁇ , and ⁇ (see, e.g., Figure 12, step 1231).
- the fifth threshold value e.g., k does not satisfy the fifth threshold value when k > Threshold4 or k ⁇ Threshold4, as illustrated in Figure 12, step 1210
- the GNSS receiver in accordance with a determination that (i) the updated estimate ⁇ ⁇ ⁇ , ⁇ is not within the corresponding first valid range or (ii) the updated estimate ⁇ ⁇ ⁇ is not within the corresponding second valid range (i.e., the second iterative process has diverged), the GNSS receiver adjusts the initial estimate for the time delay ⁇ from ⁇ ⁇ to ⁇ ⁇ ⁇ ′ (see, e.g., Figure 12, step 1226). The GNSS receiver executes the second iterative process using the initial estimates ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ , ⁇ and the adjusted initial estimate ⁇ ⁇ ⁇ ′ as the starting values.
- ⁇ ⁇ can be tried using the pattern illustrated in Figure 14. For example, if the first estimate 1402 ( ⁇ ⁇ ⁇ ⁇ ) results in a divergence, a second new estimate 1404 ( ⁇ ⁇ ⁇ ′ ) can be adjusted to a value that is larger than (e.g., to the right of) that of the first estimate 1402 ( ⁇ ⁇ ⁇ ⁇ ). If the second new estimate 1404 also fails, then a third new estimate 1406 ( ⁇ ⁇ ⁇ ⁇ ) can be adjusted to a value that is smaller than (e.g., to left of) that of the first estimate 1402 ( ⁇ ⁇ ⁇ ⁇ ).
- a fourth new estimate 1408 can be adjusted to a value that is larger than (e.g., to the right of) that of the second estimate 1404 ( ⁇ ⁇ ⁇ ′ ).
- the adjustment step size can be a constant (e.g., equal to the correlator spacing).
- executing the second iterative process using the initial estimates ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ , ⁇ and the adjusted initial estimate ⁇ ⁇ ′ as the starting values includes: in accordance with a determination that (i) the updated estimate ⁇ ⁇ ⁇ , ⁇ (e.g., produced during a k th iteration of the second iterative process) is not within the corresponding first valid range or (ii) the updated estimate ⁇ ⁇ ⁇ is not within the corresponding second valid range: in accordance with a determination that a next adjusted value for the time delay would fall within a range of time values for the n pairs of correlation samples, the GNSS receiver repeats the steps of adjusting the initial estimate for the time delay ⁇ and executing the second iterative process (see, e.g., the path corresponding to steps 1226, 1228, and 1204 in Figure 12), and otherwise (e.g., in accordance with a determination that a next adjusted value for the time delay would not fall
- the adjustment range (e.g., ⁇ ⁇ 1420 to ⁇ ⁇ 1422 in Figure 14) for the time delay ⁇ should cover all correlation sample times (e.g., from ⁇ ⁇ to ⁇ ⁇ ) with some margin. Once an adjustment moves beyond this range, it means that all possible initial estimates in this corresponding direction have been tried. If adjustments have covered the whole range without producing an updated estimate ⁇ ⁇ ⁇ , ⁇ within the corresponding first valid range and an updated estimate ⁇ ⁇ ⁇ within the corresponding second valid range, the GNSS receiver stops the second iterative process and outputs information that there is a no valid solution (e.g., see, e.g., Figure 12, steps 1230, 1231).
- the GNSS receiver corrects the pseudorandom phase measurement for the respective satellite in accordance with the carrier phase multipath error ⁇ ⁇ .
- the GNSS receiver after outputting the updated estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ as the solution for ⁇ , ⁇ , and ⁇ , respectively (see, e.g., Figure 12, step 1218), and in accordance with the determination that the phase ⁇ ⁇ is not 0° or 180° within the second predefined margin (see, e.g., Figure 12, step 1238): the GNSS receiver starts with the initial estimate for ⁇ ⁇ ⁇ , ⁇ (e.g., see above discussion of step 1102, Figure 11) and obtains a solution for ⁇ ⁇ via a third iterative process.
- k is a positive integer (e.g., starting from one (e.g., reset to 1 at step 1240 of the flowchart in Figure 12) representing a number of iterations of the third iterative process.
- the one or more predetermined second parameters include the parameter ⁇ ⁇ .
- the determination that the third iterative process has converged is made in accordance with a determination that the change in an estimated value of ⁇ ⁇ between the k th iteration and the (k-1) th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (e.g., ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ ⁇ ⁇ ).
- the one or more predetermined second parameters include a post-fix mean squared error (MSE) for the quadrature component estimation error, defined by ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ for the k th iteration (See Equation 44).
- MSE mean squared error
- the determining that the third iterative process has converged is in accordance with a determination that a change in the post-fix MSE for the quadrature component estimation error between the k th iteration and the (k-1) th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (i.e., ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ ⁇ , ⁇ ), and/or if ⁇ ⁇ ⁇ ⁇ , ⁇ itself is smaller than (or does not exceed) a corresponding threshold.
- a corresponding threshold i.e., ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ ⁇ , ⁇
- the k th iteration of the third iterative process further includes, in accordance with a determination that the change in value of the one or more predetermined second parameters between the k th iteration and the (k-1) th iteration does not satisfy a respective corresponding threshold, performing a next iteration of the third iterative process (see, e.g., Figure 12, step 1252).
- the change in value of the one or more predetermined second parameters between the k th iteration and the (k-1) th iteration does not satisfy a respective corresponding threshold when or when ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ ), or when ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ ⁇ , ⁇ ), or when [00200]
- the k th iteration of the third iterative process further includes: in accordance with the determination that the number of iterations ⁇ does not satisfy the sixth threshold value (e.g., k > Threshold5 or k ⁇ Threshold5 in Figure 12), terminating the third iterative process without producing a solution for ⁇ ⁇ (see, e.g., Figure 12, steps
- the GNSS receiver corrects the pseudorange measurement for the respective satellite in accordance with ⁇ ⁇ and/or corrects the carrier phase measurement for the respective satellite in accordance with the carrier phase multipath error ⁇ ⁇ .
- the GNSS receiver uses the initial estimates as starting values and obtains a solution for ⁇ ⁇ , ⁇ ⁇ , and ⁇ via a fourth iterative process (see, using workflow 1300 in Figure 13).
- k is a positive integer (e.g., starting from one when the fourth iterative process begins) representing a number of iterations of the fourth iterative process.
- a k th iteration of the fourth iterative process includes: obtaining n estimated quadrature component values ( ⁇ ⁇ ⁇ ( ⁇ ) values) for the Q(t) samples based on initial estimates and ⁇ ⁇ ⁇ from a previous (k-1) th iteration of the fourth iterative process (e.g., using equation 29) (see, e.g., Figure 13, step 1304), or for a first iteration of the fourth iterative process, based on previously determine initial estimates (e.g., as explained above with reference to step 1102, Figure 11); determining, for each estimated quadrature component value ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ of the ⁇ ⁇ ⁇ ( ⁇ ) values, a respective quadrature component estimation error ⁇ ⁇ , ⁇ between (i) the respective estimated quadrature component value ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ and (ii) the respective quadrature component sample Q(t i ) (e.g., using equation
- equations 32 and 33 are solved separately, while estimates of ⁇ ⁇ , ⁇ ⁇ and ⁇ for equation 33 are updated based on equations 35, 36 and 37.
- the two ⁇ ⁇ 3 matrix equations (equations 32 and 33) are combined into one ( 2 ⁇ ) ⁇ 4 matrix equation with a total of four unknowns (e.g., unknowns ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , and ⁇ ⁇ ), and the ( 2 ⁇ ) ⁇ 4 matrix equation is solved (e.g., instead of combining solutions).
- the one or more predetermined second parameters include one or more of ⁇ ⁇ , ⁇ ⁇ , and ⁇ .
- the determination that the fourth iterative process has converged is made in accordance with a determination that (i) the change in an estimated value of ⁇ ⁇ between the k th iteration and the (k-1) th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (e.g., and/or (ii) the change in an estimated value of ⁇ between the k th iteration and the (k-1) th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (e.g., ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ ), and/or (iii) the change in an estimated value of ⁇ between the k th iteration and the (k-1) th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (e.g., ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ h ⁇
- MSE mean squared error
- determining that the fourth iterative process has converged is in accordance with a determination that a change in the post-fix MSE for the quadrature component estimation error between the k th iteration and the (k-1) th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (e.g., ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ iteration of the fourth iterative process further includes: in accordance with the determination that the change in value of the one or more predetermined parameters between the k th iteration and the (k-1) th iteration does not satisfy the respective corresponding threshold (e.g., the fourth iterative process has not converged, see Figure 13, Step 1328), performing a next iteration of the fourth iterative process ( Figure 13, Step 1330).
- the change in value of the one or more predetermined parameters between the k th iteration and the (k-1) th iteration does not satisfy the respective corresponding threshold when ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ h ⁇ ⁇ ), or ⁇ h ⁇ ⁇ ⁇ h ⁇ ⁇ ⁇ ⁇ , ⁇ ).
- the k th iteration of the fourth iterative process further includes: in accordance with the determination that the number of iterations ⁇ does not satisfy the seventh threshold value (e.g., k ⁇ Threshold6 or k > Threshold6 in Figure 13, step 1310) (e.g., the fourth iterative process has diverged or failed to converge), terminating the fourth iterative process without producing a solution for ⁇ ⁇ (see, e.g., Figure 13, step 1326).
- the seventh threshold value e.g., k ⁇ Threshold6 or k > Threshold6 in Figure 13, step 1310
- the GNSS receiver updates the initial estimate for the time delay ⁇ from ⁇ ⁇ ⁇ to ⁇ ⁇ ⁇ ′ .
- the GNSS receiver executes the fourth iterative process (i.e., executes the fourth iterative process an additional time) using the initial estimates ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ , ⁇ and the updated initial estimate ⁇ ⁇ ⁇ ′ as the starting values.
- the GNSS receiver uses the initial estimates ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ , ⁇ and the adjusted initial estimate ⁇ ⁇ ⁇ ′ as the starting values.
- the GNSS receiver uses the initial estimates ⁇ ⁇ ⁇ , ⁇ and ⁇ ⁇ ⁇ , ⁇ and the adjusted initial estimate ⁇ ⁇ ⁇ ′ as the starting values.
- the GNSS receiver repeats the steps of adjusting the initial estimate for the time delay ⁇ and executing the fourth iterative process with the updated initial estimate for the time delay ⁇ .
- the GNSS receiver in conjunction with outputting the updated estimates ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ , ⁇ , and ⁇ ⁇ ⁇ as the solution for ⁇ , ⁇ , and ⁇ , respectively, the GNSS receiver obtains Because Procedure 1 (see workflow 900, Figure 9) determines that ⁇ ⁇ is equal to ⁇ 90° (see steps 906, 908, 910, 912, Figure 12, and step 1302, Figure 13) using ⁇ ( ⁇ ⁇ ) measurements based on the same equation, equation 22, use to solve for ⁇ ⁇ , in Procedure 2 (see, e.g., workflow 1100 in Figure 11 and workflow 1300 in Figure 13), there is no need to repeat this process of solving for some unknowns from ⁇ ( ⁇ ⁇ ) measurements.
- the solution ⁇ ⁇ to equation 22 obtained in Procedure 1 can be assigned not only to the initial estimate ⁇ ⁇ ⁇ , ⁇ but also to the final solution of ⁇ ⁇ .
- the GNSS receiver computes the carrier phase multipath error ⁇ ⁇ based on the solution for ⁇ ⁇ and the solution for ⁇ ⁇ (e.g., using Equation 46).
- the GNSS receiver corrects the carrier phase measurement for the respective satellite in accordance with the carrier phase multipath error ⁇ ⁇ .
- ⁇ ⁇ and ⁇ ⁇ are known.
- first means “first,” “second,” etc.
- these elements should not be limited by these terms. These terms are only used to distinguish one element from another.
- a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact, without changing the meaning of the description, so long as all occurrences of the “first contact” are renamed consistently and all occurrences of the second contact are renamed consistently.
- the first contact and the second contact are both contacts, but they are not the same contact.
- the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the claims.
- the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in accordance with a determination” or “in response to detecting,” that a stated condition precedent is true, depending on the context.
- the phrase “if it is determined [that a stated condition precedent is true]” or “if [a stated condition precedent is true]” or “when [a stated condition precedent is true]” may be construed to mean “upon determining” or “in response to determining” or “in accordance with a determination” or “upon detecting” or “in response to detecting” that the stated condition precedent is true, depending on the context.
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
Abstract
Description
Claims
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2023456885A AU2023456885A1 (en) | 2023-06-12 | 2023-09-29 | Mitigation of multipath-induced error effects in a navigation satellite signal receiver |
| CN202380099371.7A CN121488173A (en) | 2023-06-12 | 2023-09-29 | Suppression of multipath induced error effects in navigation satellite signal receivers |
| EP23895569.4A EP4695629A1 (en) | 2023-06-12 | 2023-09-29 | Mitigation of multipath-induced error effects in a navigation satellite signal receiver |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202363472574P | 2023-06-12 | 2023-06-12 | |
| US63/472,574 | 2023-06-12 | ||
| US18/373,913 US20240411029A1 (en) | 2023-06-12 | 2023-09-27 | Phase Multipath Mitigation in a Navigation Satellite Signal Receiver |
| US18/373,913 | 2023-09-27 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024258418A1 true WO2024258418A1 (en) | 2024-12-19 |
Family
ID=91302290
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2023/034191 Pending WO2024258418A1 (en) | 2023-06-12 | 2023-09-29 | Mitigation of multipath-induced error effects in a navigation satellite signal receiver |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2024258418A1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060083293A1 (en) * | 2004-10-18 | 2006-04-20 | Keegan Richard G | Phase multi-path mitigation |
| US20140376598A1 (en) * | 2013-05-03 | 2014-12-25 | Deere & Company | Phase Multi-Path Mitigation |
-
2023
- 2023-09-29 WO PCT/US2023/034191 patent/WO2024258418A1/en active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060083293A1 (en) * | 2004-10-18 | 2006-04-20 | Keegan Richard G | Phase multi-path mitigation |
| US20140376598A1 (en) * | 2013-05-03 | 2014-12-25 | Deere & Company | Phase Multi-Path Mitigation |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20220276389A1 (en) | Satellite navigation receiver for acquisition of gnss signals | |
| JP5957025B2 (en) | User receiver positioning method | |
| US10859709B2 (en) | Satellite navigation receiver with fixed point sigma rho filter | |
| US9515697B2 (en) | Scanning correlator for global navigation satellite system signal tracking | |
| USRE42676E1 (en) | Method for determining a boundary of an information element, a system, and an electronic device | |
| US6725157B1 (en) | Indoor GPS clock | |
| US12379508B2 (en) | Satellite navigation receiver with aggregate channel digital baseband processing | |
| US8306093B2 (en) | Method and apparatus for multipath mitigation | |
| US20060140254A1 (en) | Multi-path detection method for CDMA receivers | |
| US12066551B2 (en) | Multi-constellation, multi-frequency GNSS system for interference mitigation | |
| US11391847B2 (en) | GNSS correlation distortion detection and mitigation | |
| US7903026B2 (en) | Positioning apparatus and positioning apparatus control method | |
| US12153143B2 (en) | Multi-constellation, multi-frequency GNSS system for interference mitigation | |
| US6252546B1 (en) | Method and apparatus for processing multipath reflection effects in timing systems | |
| EP4542262A1 (en) | Processing a gnss signal and wiping off a data bit based on doppler estimates | |
| US7693211B2 (en) | Fast fourier transform based phase locked loop for navigational receivers | |
| EP3362818B1 (en) | Satellite navigation receiver with fixed point sigma rho filter | |
| US8295411B2 (en) | Method and system for maintaining integrity of a binary offset carrier signal | |
| WO2009091516A1 (en) | Measurement of energy potential (signal-to-noise ratio) in digital global navigation satellite systems receivers | |
| US20250123406A1 (en) | Processing a gnss signal based on doppler estimates | |
| US20250123407A1 (en) | Processing a gnss signal based on doppler estimates | |
| US20240411029A1 (en) | Phase Multipath Mitigation in a Navigation Satellite Signal Receiver | |
| US6618006B1 (en) | Method for defining the error of reference time and an electronic device | |
| WO2024258418A1 (en) | Mitigation of multipath-induced error effects in a navigation satellite signal receiver |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23895569 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: AU2023456885 Country of ref document: AU Ref document number: 2023895569 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2023895569 Country of ref document: EP Effective date: 20251112 |
|
| ENP | Entry into the national phase |
Ref document number: 2023895569 Country of ref document: EP Effective date: 20251112 |
|
| ENP | Entry into the national phase |
Ref document number: 2023456885 Country of ref document: AU Date of ref document: 20230929 Kind code of ref document: A |
|
| ENP | Entry into the national phase |
Ref document number: 2023895569 Country of ref document: EP Effective date: 20251112 |
|
| ENP | Entry into the national phase |
Ref document number: 2023895569 Country of ref document: EP Effective date: 20251112 |
|
| REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112025026063 Country of ref document: BR |
|
| ENP | Entry into the national phase |
Ref document number: 2023895569 Country of ref document: EP Effective date: 20251112 |
|
| ENP | Entry into the national phase |
Ref document number: 2023895569 Country of ref document: EP Effective date: 20251112 |
|
| ENP | Entry into the national phase |
Ref document number: 2023895569 Country of ref document: EP Effective date: 20251112 |
|
| ENP | Entry into the national phase |
Ref document number: 2023895569 Country of ref document: EP Effective date: 20251112 |
|
| ENP | Entry into the national phase |
Ref document number: 2023895569 Country of ref document: EP Effective date: 20251112 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWP | Wipo information: published in national office |
Ref document number: 2023895569 Country of ref document: EP |













