The disclosed embodiments relate generally to a global navigation satellite systems (GNSS) and more specifically, to systems and methods for mitigating multipath-induced errors in GNSS receiver positioning.
Global Navigation Satellite Systems (GNSS), such as Global Positioning System (GPS), the Global Orbiting Navigation Satellite System (GLONASS), the European Galileo and EGNOS, Chinese BeiDou System (BDS), the Wide Area Augmentation System (WAAS), and Japanese Quasi-Zenith Satellite System (QZSS), are used in many applications. In a GNSS system, each satellite transmits a signal that identifies the satellite and allows a receiver to determine the time at which the signal was sent. To do so, a GNSS satellite transmits a pseudorandom code (PN code) (also called a pseudorandom noise code (PRN 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. When 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, can also be received by the GNSS receiver. Therefore, 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. Just like direct-path signals, multipath signals are also internally processed by GNSS receivers, thus introducing errors to code and carrier phase measurements and reducing GNSS positioning accuracy.
To improve GNSS range measurement accuracy and positioning accuracy, many techniques have been invented to mitigate or eliminate code multipath errors and carrier phase multipath errors. However, improving the performance of these multipath migration techniques, for example, their practicable implementation, reliability, effectiveness, and accuracy, is always of importance and of interest in the GNSS industry. Accordingly, there is a need for a technique to mitigate the effect of multipath-induced errors.
In accordance with some embodiments, 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(t1) and a respective quadrature component sample Q(t1), 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(t1) 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 ϕ3rd is ±90° within a first predefined margin, wherein the phase ϕ3rd is equal to 180° minus a sum of (i) a carrier phase multipath error ϕe and (ii) a phase difference ϕm 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 ϕ3rd and for Δt tan ϕ3rd, wherein Δt 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 |tan ϕ3rd| satisfies a second threshold value, determining that the phase ϕ3rd is 0° or 180° within a second predefined margin. The method includes, in accordance with a determination that |tan ϕ3rd| does not satisfy the second threshold value, determining ϕ3rd in accordance with the solution for tan ϕ3rd. The method includes adjusting a pseudorange measurement for the respective satellite in accordance with the determined Δt; and/or adjusting a carrier phase measurement for the respective satellite in accordance with a parameter corresponding to the determined ϕ3rd. The method includes performing a navigation function using the adjusted pseudorange and/or the adjusted carrier phase measurement for the respective satellite.
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 ϕ3rd is +90° within the first predefined margin when the sign of the carrier phase multipath error ϕε is positive; and determining that ϕ3rd is −90° within the first predefined margin when the sign of the carrier phase multipath error ϕε is negative.
In some embodiments, the method further includes, in accordance with a determination that the phase ϕ3rd 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 ϕ3rd 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 ϕ3rd is 180° within the second predefined margin.
In some embodiments, the computed similarity between the I(t) samples and the SR(t) samples is obtained using a mean squared error (MSE), defined by
wherein AI=Ad cos ϕε, Ad is a magnitude of the direct-path signal, and ϕε is the carrier phase multipath error.
In some embodiments, solving the first set of matrix equations includes obtaining (i) an initial estimate for the phase ϕ3rd, (ii) an initial estimate for the response time error Δt, and (iii) an initial estimate for a magnitude Ad+m 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 ϕ3rd and Δt tan ϕ3rd.
In some embodiments, the method further includes, in accordance with the determination that |tan ϕ3rd| does not satisfy the second threshold value, obtaining a solution for tan ϕ3rd and Δt tan ϕ3rd via a first iterative process, each iteration of the first iterative process including: obtaining an updated estimate tan for the phase ϕ3rd and an updated estimate for the response time error Δt. 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 ϕ3rd has been determined; and terminating the first iterative process without producing a solution for ϕ3rd. 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 ϕ3rd and Δt, respectively; calculating the phase ϕ3rd 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.
In some embodiments, the method further includes, in accordance with a determination that a valid solution for the phase ϕ3rd has been determined: determining (i) an initial estimate for AI, wherein AI=Ad cos ϕε, Ad is a magnitude of the direct-path signal, and ϕε is the carrier phase multipath error; (ii) an initial estimate for a magnitude AQ, wherein AQ=Ad sin ϕε; (iii) an initial estimate for a magnitude Am 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 AI, AQ, Am, and δ; computing the carrier phase multipath error ϕε in accordance with the obtained solutions for at least the subset of AI, AQ, Am, and δ; and correcting the carrier phase measurement for the respective satellite in accordance with the carrier phase multipath error ϕε.
In some embodiments, the method further includes, in accordance with a determination that a valid solution for the phase ϕ3rd has been determined: determining (i) an initial estimate for AI, wherein AI=Ad cos ϕε, Ad is a magnitude of the direct-path signal, and ϕε is the carrier phase multipath error; (ii) an initial estimate for a magnitude AQ, wherein AQ=Ad sin ϕε; (iii) an initial estimate for a magnitude Am of the multipath signal, and (iv) an initial estimate for a time delay δ of the multipath signal relative to the direct-path signal.
In some embodiments, in accordance with a determination that the code chip edge transition is a code chip edge-up transition: 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.
In some embodiments, in accordance with the code chip edge transition is a code chip edge-down transition: the initial estimate corresponds to a magnitude of a first in-phase component sample I(t1) 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.
In some embodiments, the method includes, in accordance with the determination that the phase ϕ3rd corresponds to ±90° within the first predefined margin: obtaining a solution for AI by solving a matrix equation
and assigning the obtained solution as the initial estimate .
In some embodiments, the method includes, in accordance with the determination that the phase ϕ3rd is 0° or 180° within the second predefined margin: assigning the initial estimate as zero.
In some embodiments, the initial estimate is 0.5.
In some embodiments, the method further includes, in accordance with the determination that the phase ϕ3rd does not correspond to ±90° within the first predefined margin: using the initial estimates , , and as starting values to obtain a solution for AI, Am, and δ via a second iterative process, wherein k is a positive integer representing a number of iterations of the second iterative process. A kth iteration of the second iterative process includes: obtaining n estimated in-phase component values (Î(tk−1) values) for the I(t) samples based on estimates , , and from a previous (k−1)th iteration of the second iterative process; determining, for each estimated in-phase component value Î(ti,k−1) of the Î(tk−1) values, a corresponding in-phase component estimation error yI(ti,k) between (i) the respective estimated in-phase component value Î(ti,k−1) and (ii) the respective in-phase component sample I(ti) of the I(t) samples, thereby obtaining n in-phase component estimation errors (yI(tk) estimation errors); solving a second set of matrix equations based on the yI(tk) estimation errors, thereby obtaining updated estimates , , and for the kth iteration. 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 k satisfies a fifth threshold value: in accordance with a determination that a change in value of one or more predetermined first parameters between the kth 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 Ai, Am, 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 kth 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 k does not satisfy the fifth threshold value, terminating the second iterative process without producing a solution for AI, Am, and δ.
In some embodiments, 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.
In some embodiments, the method includes using the initial estimates and and the adjusted initial estimate as the starting values for the second iterative process (e.g., restarted from the beginning, with k=1). 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 AI, Am, and δ has been determined.
In some embodiments, the method includes, after outputting the updated estimates , , and as the solution for AI, Am, and δ, respectively, and in accordance with the determination that the phase ϕ3rd is 0° or 180° within the second predefined margin: assigning a value of zero as the solution for AQ.
In some embodiments, the method includes determining the carrier phase multipath error ϕe based on the solutions for AI and AQ; and correcting a pseudorandom phase measurement for the respective satellite in accordance with the carrier phase multipath error ϕe.
In some embodiments, the method includes, after outputting (e.g., at an end of the second iterative process) the updated estimates , , and as the solution for AI, Am, and δ, respectively, and in accordance with the determination that the phase ϕ3rd is not 0° or 180° within the second predefined margin: starting with the initial estimate for , obtaining a solution for AQ 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 kth iteration of the third iterative process includes: obtaining n estimated quadrature component values ({circumflex over (Q)}(tk−1) 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 {circumflex over (Q)}(ti,k−1) of the {circumflex over (Q)}(tk−1) values, a corresponding quadrature component estimation error yQ(ti,k) between (i) the respective estimated quadrature component value {circumflex over (Q)}(ti,k−1) and (ii) the respective quadrature component sample Q(ti), thereby obtaining n quadrature component estimation errors (yQ(tk) estimation errors); solving a third set of matrix equations based on the yQ(tj) estimation errors, thereby obtaining an updated estimate for the kth iteration. In accordance with a determination that the number of iterations k satisfies a sixth threshold value, the method includes, in accordance with a determination that a change in value of one or more predetermined second parameters between the kth iteration and the (k−1)th iteration satisfies a respective corresponding threshold: determining that the third iterative process has converged; outputting the updated estimate as the solution for AQ; 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 kth 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 k does not satisfy the sixth threshold value, terminating the third iterative process without producing a solution for AQ.
In some embodiments, the method includes computing the carrier phase multipath error ϕe based on the solutions for AI and AQ; correcting the pseudorange measurement for the respective satellite in accordance with Δt; and correcting the carrier phase measurement for the respective satellite in accordance with the carrier phase multipath error ϕε.
In some embodiments, the method includes, in accordance with the determination that the phase ϕ3rd corresponds to ±90° within the first predefined margin: using the initial estimates , , and as starting values, obtaining a solution for AQ, Am, and δ via a fourth iterative process, wherein k is a positive integer representing a number of iterations of the fourth iterative process. A kth iteration of the fourth iterative process includes: obtaining n estimated quadrature component values ({circumflex over (Q)}(tk−1) 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 {circumflex over (Q)}(ti,k−1) of the {circumflex over (Q)}(tk−1) values, a respective quadrature component estimation error yQ(ti,k) between (i) the respective estimated quadrature component value {circumflex over (Q)}(ti,k−1) and (ii) the respective quadrature component sample Q(ti), thereby obtaining n quadrature component estimation errors (yQ(tk) estimation errors); and solving a fourth set of matrix equations based on the yQ(tk) estimation errors, thereby obtaining updated estimates , , and for the kth iteration. 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 k satisfies a seventh threshold value: in accordance with a determination that a change in value of one or more predetermined second parameters between the kth 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 AQ, Am, 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 kth 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 k does not satisfy the seventh threshold value, terminating the fourth iterative process without producing a solution for AQ.
In some embodiments, 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.
In some embodiments, 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 AQ, Am, and δ has been determined.
In some embodiments, the method includes, in conjunction with outputting the updated estimates , , and as the solution for AQ, Am, and δ, respectively: obtaining a solution for AI by solving a matrix equation
In some embodiments, the method includes computing the carrier phase multipath error ϕε based on the solution for AI and the solution for Am; and correcting the carrier phase measurement for the respective satellite in accordance with the carrier phase multipath error ϕε.
In accordance with some embodiments, 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.
In accordance with some embodiments, a computer-readable storage medium is provided that 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.
For a better understanding of the various described embodiments, reference should be made to the Description of Embodiments below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures.
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
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. In some embodiments, received satellite navigation signals are processed by navigation signal receiver 120, including analog signal processing circuitry 122 and a digital signal processor 124, optionally taking into account the correction information, to determine code measurements and phase measurements for signals received from four or more satellites 115. Embedded computer system 130 determines the position of moveable object 110 based on those measurements.
The RF front end module 174 outputs digital IF signals, which are processed by the baseband DSP module 176. By processing the digital IF signals, 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. According to some embodiments of the present disclosure, phase multipath mitigation is performed by the baseband DSP module 176. In some embodiments, 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. In some embodiments, the baseband DSP electronics are integrated into a baseband ASIC chip. In some embodiments, the RF front-end electronics and the baseband DSP electronics are integrated into a single-die System-On-Chip (SOC) chip.
The baseband DSP module 176 outputs range measurements and navigation data that are used by the positioning and navigation module 178 to calculate PVT results 180. In some embodiments, the PVT results 180 are used by user applications. In some embodiments, 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. In some embodiments, the GNSS receiver 170 includes more than one microprocessor.
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), and supplemental receiver(s) 152, if provided, 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) is used by computer system 130, and more generally moveable object 110, to convey information to external systems (e.g., external system(s) 160,
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). In some embodiments, memory 210 or the computer readable storage medium of memory 210 stores the following programs, modules and data structures, or a subset thereof:
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) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various embodiments. In some embodiments, 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.
In addition, in some embodiments, some or all of the above-described functions may be implemented with hardware circuits (e.g., which may comprise graphics processors for efficiently performing discrete Fourier transforms (DFTs), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), a “system on a chip” that includes processors and memory, or the like). To that end, in some embodiments, CPUs 202 include specialized hardware for performing these and other tasks. In some embodiments, 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.
In some embodiments, the baseband DSP module 176 processes digital IF signals channel by channel (e.g., one channel per satellite being tracked).
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. To completely strip off the carrier frequency, including doppler shift of the carrier frequency, 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).
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). Controlled by code phase management unit 272, each of the n replicas of the code has a different phase delay. Typically, 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. After the received signals are de-spread by the correlators 258, the resulting signals represent the navigation data bits or symbols that are encoded (e.g., embedded) in the received satellite signal. Controlled by code phase management unit 272, each of the n replicas of the code has a different phase delay. Typically, 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/(t1) 259-1I and Q(t1) 259-1Q, I(t2) 259-2I and Q(t2) 259-2Q, . . . , and/(tn) 259-nI and Q(tn) 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).
In some embodiments, a conventional design generates three replicas of code (n=3), called Early, Prompt and Late, indicating their code phases relative to the code phase of the received signals, and thus this design obtains three samples of the signal's auto-correlation function (ACF). Based on the Early, Prompt and Late correlation results, 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. Based on the phase of the Prompt code, 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,
Meanwhile, 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. In addition to carrier phase measurements, which is another type of key satellite range measurement for GNSS positioning, 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.
In some embodiments, a composite signal s (t) of a direct-path signal and its multipath signal can be mathematically modeled as:
where t represents the time that the composite signal is sampled or measured, Ad is an amplitude of the direct-path signal 302, Am 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”), and ϕ is a phase delay of the multipath signal 304 relative to the direct-path signal 302 (ϕ is also referred to as “multipath phase delay”). Since the path-length of a multipath signal 304 is always longer than that of the corresponding direct-path signal 302, the time delay δ is always larger than zero. The multipath signal amplitude Am is typically smaller than the direct-path signal amplitude Ad. 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. In some embodiments, Am, δ, and ϕ are the three independent parameters that describe a multipath signal.
The composite signal model in equation 1 assumes that a direct-path signal always exists, i.e., Ad 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.
When a direct-path signal 302 and a multipath signal 304 are both received and processed by a receiver, multipath errors can be introduced to range measurements, for example, pseudorange and carrier phase measurements.
If the triangle lies in the first quadrant (i.e., in Quadrant 1 416) of this I-Q phasor coordinate system, then all the three angles ϕε410, ϕm412, and ϕ3rd 414, are defined to be positive; otherwise, if the triangle lies in the fourth quadrant (i.e., in Quadrant 4 418), then all three angles are defined to be negative.
Based on the geometry in
As explained above, coherent integration Q is zero ideally at the steady state of a phase lock loop if noise does not exist, in which case:
Meanwhile, from the geometry in
Equation 3 does not contain the multipath time delay δ, since it assumes that I and Q integration samples are taken when the values of the direct-path signal and the multipath signal both have reached their amplitudes Ad and Am, respectively. 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 SR(t) 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 SR(t) and its delayed version SR(t−δ), and, as discussed below, can be used to estimate the multipath parameters (e.g., Am, δ, and/or ϕ).
In general, 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. For example, 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. Thus, if 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.
In some embodiments, the baseband DSP module 176 of a GNSS receiver outputs I and Q samples along code chip edge transitions. When a satellite signal is tracked and locked, 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, I(t1) 259-1I and Q(t1) 259-1Q,/(t2) 259-2I and Q(t2) 259-2Q, . . . , and/(tn) 259-nI and Q(tn) 259-nQ, are along code chip edge transitions. The ith pair of I and Q samples can be rewritten as
where i=1, 2, . . . , n.
Given the step response model SR(t) and n pairs of correlation measurements I(ti) and Q(ti) along code chip edge transitions, 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 Am) in two procedures, also referred to herein as Procedure 1 and Procedure 2, which are described below (e.g., with respect to
In some embodiments, due to the influence of a multipath signal, 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
where t represents time, and
Before Procedure 1 (as will be described with reference to
Multiplying equation 10 by
Subtracting equation 13 from equation 11 results in
stands for the value of
at t′. Un one hand, based on directly given measurement samples of I(t) and Q(t) at ti with i=1, 2, . . . , n, indirect measurements x(t) and y(t) at ti can be calculated as follows:
On the other hand, equation 14 can also be discretized into the following form:
The above equation can be equivalently written into the following matrix equation form:
The goal of Procedure 1 is to solve for ϕ3rd and Δt from matrix equation 17. Matrix equation 17 can be solved in several different ways. One way is a Least Squares fitting process. Starting with a set of initial estimates for ϕ3rd, Δt, and Ad+m at iteration k, say, , and , the Least Squares fitting process converts n pairs of I(ti) and Q(ti) samples into x(ti) and y ti) values based on equation 15, where i=1, 2, . . . , n, and forms the matrix equation 17. Then, the Least Squares fitting process solves for tan ϕ3rd and Δt tan ϕ3rd from the matrix equation, and generates the k-th estimates of tan ϕ3rd and Δt, i.e., tan and , respectively, according to
where, κϕ and κΔt are filter gains, which are usually less than 1. Like equations 18 and 19, many other smoothing or filtering methods can also be validly used to filter instantaneous solutions from equation 17. Starting with newly updated estimates tan and , the Least Squares fitting process performs a new iteration (e.g., iteration k+1), if needed (e.g., if the Least Squares fitting process has not yet converged), as discussed below with reference to
Equation 19 indicates that estimate is the sum of the previous estimate and instantaneous solution Δt, and then this essentially accumulated estimate k is used to convert I(ti) to x(ti) using equation 15. In some embodiments, the instantaneous solution Δt will be very close to zero as the Least Squares fitting process iterates and converges. Once the Least Squares fitting process converges and Δt 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 Δt will eventually approach to zero.
Not all multipath scenarios can be handled by equation 17. For example, in some scenarios, the angle ϕ3rd is equal or very close to either +90° or −90°, as illustrated in
Further, when angle ϕ3rd is equal or very close to either +90° or −90°, i.e., cos ϕ3rd=0, the I component of Equation 7 becomes
where AI is defined as
Equation 20 indicates a mechanism of detecting whether a received satellite signal includes a multipath signal for which ϕ3rd=±90°: if function I(ti) has the same shape as the chip edge transition model SR(ti), then this (e.g., the received satellite signal, including both direct and multipath signals) is a multipath scenario of ϕ3rd=±90°. Equation 20 can be equivalently written into the following matrix form:
Unknown AI can be easily solved from the above linear matrix equation by, for example, a Least Squares method. With AI being solved, the Mean Squared Error (MSE) of this estimation can be calculated as
The smaller the value of MSEA
The workflow 900 includes obtaining (902) inputs corresponding to n pairs of I(ti) and Q(ti) along chip edge transitions with i=1, 2, . . . , n (e.g., corresponding to I(t1) 259-1I and Q(t1) 259-1Q, I(t2) 259-2I and Q(t2) 259-2Q, . . . , and I(tn) 259-nI and Q(tn) 259-nQ). In some embodiments, the n pairs of I(ti) and Q(ti) are delivered by integrate and dump circuits 260 as illustrated in
The workflow 900 includes determining (904) a sign of carrier phase multipath error ϕε410. As described with reference to
The workflow 900 includes checking (906) the similarity between I(ti) and SR(ti) to determine whether the current multipath scenario is a case of ϕ3rd=±90°. This involves solving for A, from equation 22, calculating the Mean Squared Error, MSEA
If the current multipath scenario is not a case of ϕ3rd=±90°, the workflow 900 continues with the path indicated by step 914, to iteratively solve for ϕ3rd and Δt, using a first iterative process. At the beginning of the first iterative process, an iteration count, e.g., k, representing a number of iterations of the first iterative process is set or reset to an initial value, e.g., 1. In addition, before the first iterative process begins, the values of parameters ϕ3rd, Δt and Ad+m are estimated (916) (e.g., initial estimates of these values are set, determined or obtained). In some embodiments, the initial estimates of both ϕ3rd and Δt are set to 0, i.e., =0 and =0 for the first iteration, i.e., k=1. As used herein, the term (referred to as “x hat”) denotes an estimate of parameter x in iteration k. In some embodiments, is used as the initial estimate for a next iteration (i.e., iteration k+1) of the first iterative process.
In some embodiments, the initial estimate of Ad+m, i.e., , can be set as the magnitude of the last pair of I and Q samples for a code chip edge-up transition, e.g.,
Otherwise, in some embodiments, the initial estimate can be assigned using the magnitude of the first pair of I and Q samples, e.g., I(t1) and Q(t1) for a chip edge-down transition. The estimate is not updated in the Least Squares fitting process; however, the estimation of Ad+m using equation 24 is quite accurate and reliable, and as explained above, any error in estimate should not be a concern as the Least Squares fitting process converges.
Starting with initial estimates , k−1 and at iteration k, the Least Squares fitting process converts n pairs of I(ti) and Q(ti) samples into x(ti) and y(ti) (in step 918) based on equation 15 with i=1, 2, . . . , n, constructs the matrix equation 17, and solves for tan ϕ3rd and Δt tan ϕ3rd using the Least Squares method. To avoid any potential “divided by zero” error, and more importantly, to check whether the current multipath scenario is a case of ϕ3rd=0° or 180°, the absolute value of tan ϕ3rd, i.e., |tan ϕ3rd|, is compared to (920) another predefined threshold (e.g., Threshold 2) which is typically a very small positive value. If |tan ϕ3rd| is smaller than the predefined threshold (e.g., Threshold2) (922), this is a case of ϕ3rd=0° or 180° (924). Otherwise, if |tan ϕ3rd| is larger than the predefined threshold (e.g., Threshold2) (926), then this is not a case of ϕ3rd=0° or 180°. It is noted that this document references multiple thresholds, each of which may be different than the other threshold, and each of which may be set so as to make the multipath mitigation process both efficient and reliable.
If the multipath scenario for a received satellite signal is detected as a case of ϕ3rd=0° or 180°, further determination on whether ϕ3rd is equal to 0° or 180° is needed. Recall that
With continued reference to
In some embodiments, if the number of iterations, k, for which the Least Squares fitting process has looped is larger than a threshold (930) (e.g.,k>Threshold3), 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 ϕ3rd (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 k by 1 (938).
If the Least Squares fitting process has successfully converged, the updated estimates of tan ϕ3rd and Δt obtained from the last iteration are regarded as the final solutions. The value of parameter ϕ3rd can be calculated from the solution tan ϕ3rd using arctangent function, i.e.,
However, arctangent function tan−1(·) returns an angle in a range of −90° to +90°, while ϕ3rd can be in a range of −180° to +180°. To resolve this ambiguity, 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 ϕ3rd calculated from arctangent is negative, then ϕ3rd+180° is re-assigned to the final solution of ϕ3rd; similarly, if the sign of ϕε is negative while ϕ3rd calculated from arctangent is positive, then ϕ3rd−180° is re-assigned to the final ϕ3rd.
Procedure 1 has solved parameter ϕ3rd and parameter Δt, based on the results of the last iteration of Procedure 1 (e.g., using equations 18 and 19), while Procedure 2 (as described in
The derivation of equations for Procedure 2 also starts with I and Q measurement model equation 7, which is now rewritten into the following form:
where, AI is defined in Equation 21, and
Equation 26 has four unknowns AI, AQ, Am, and δ. Since Equation 26 is non-linear, Taylor expansion and linearization techniques are applied here. Given initial estimates of these four unknowns at iteration k, noted as , , , and , the Taylor expansion of I(ti) and Q(tI) at these initial estimates can be expressed as:
where, the 2nd and higher order terms are omitted, Î(ti,k−1) and {circumflex over (Q)}(ti,k−1) are the estimated values of I(ti) and Q(ti) at , , , and , i.e.,
and
stands for
and it is equivalent to
Equation 28 can be rewritten into the following form:
where, yI(ti) and yQ(ti) are the differences between I & Q measurements and their corresponding estimates, i.e.,
Equivalently, equation 30 can be written into the following two matrix equations:
As can be seen, the coefficient matrices in the matrix equations 32 and 33 happen to be same. Once ΔA
Given the updated estimates , , , and from iteration k, Procedure 2 can start a new iteration (e.g., iteration k+1) and so on, until the process converges.
Since ΔA
Another approach involves converting/combining the two n×3 matrix equations (equations 32 and 33) into one (2n)×4 matrix equation with a total of four unknowns (e.g., unknowns ΔA
A third approach for solving equations 32 and 33 and combining their solutions is described here. First, equation 32 is solved to obtain solutions AI, Am and δ. Because the unknowns Am and δ have been solved, their values are now known. Thus, when Q(ti) in equation 26 is Taylor expanded and linearized, it becomes
where {circumflex over (Q)}(ti,k−1) is the estimated value of Q(ti) at at the beginning of iteration k, i.e.,
Accordingly, the equation regarding yQ(ti,k), which is defined in equation 31, now becomes the following:
or equivalently in a matrix form:
Equation 35 can still be used to update iteratively. In other words, the third approach solves matrix equation 41 (instead of matrix equation 33) to obtain AQ. The third approach offers two advantages. First, it solves for all possible unknowns (i.e., AI, Am and δ) based solely on higher signal-to-noise ratio (SNR) measurements I(ti) and the corresponding yI (ti), while measurements Q(ti) and the corresponding yQ(ti) are often close to zero in value and have a much lower SNR. Therefore, this approach can deliver more accurate solutions. Second, instead of solving two n×3 matrix equations (questions 32 and 33) (using the first approach) or a solving (2n)×4 matrix equation (using the second approach), the third approach solves a n×3 matrix (equation 32) and a n×1 matrix (equation 41), thus reducing the amount of computational power used to produce a solution. Furthermore, compared to other larger-sized matrices, an n×1 matrix equation (e.g., equation 41) typically converges in fewer iterations (e.g., two or three iterations). Therefore, solutions for the unknown parameters can be obtained more quickly and efficiently.
The workflow 1100 includes determining (1102) initial estimates, , , , and , of four unknown parameters, AI, AQ, Am, and δ.
In some embodiments, the initial estimates and can be assigned with the last pair of correlation measurements, i.e., I(tn) and Q(tn).
In some embodiments, if Procedure 1 (e.g., the workflow 900) determines that this is a multipath scenario with ϕ3rd=±90°, then can assigned to the value of AI that has been solved for from equation 22. As will be shown later, the final solution of A, is also equal to this value.
In some embodiments, if Procedure 1 determines that this is a multipath scenario with ϕ3rd=0° or 180°, then can assigned to 0. As will be shown later, the final solution of AQ in this case is also 0.
In some embodiments, 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 SR(t) and correlation samples I(ti) and Q(ti).
In some embodiments, for a very weak direct-path signal partially indicated by a small value of AI,0, the estimate can be scaled down accordingly. Equation 26 shows that I(ti) and Q(ti) measurement models are linear with parameters AI, AQ and Am, so these initial estimates typically work well.
Equation 26 shows that both I(ti) and Q(ti) 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. As illustrated in
If later the Least Squares fitting process cannot converge using this estimate , it suggests this estimate is probably too erroneous. As will be explained later, in
Having determined the initial estimates , , , and , Procedure 2 selects an appropriate algorithm to iteratively solve for the unknown parameters, AI, AQ, Am, and δ, depending on whether ϕ3rd is equal to ±90° or not (1104). If Procedure 1 determines that ϕ3rd is not equal to ±90° (1104—No, 1106), then the steps in workflow 1200 (
At the end of each iteration (e.g., iteration k), the workflow 1200 includes determining (1210) whether the iterative process has diverged or the number of iterations, k, is larger than a threshold (e.g., Threshold4). If estimates are out of their valid ranges (e.g., estimate is larger than the allowably maximal time delay corresponding to the last pair of correlators (i.e., tn), or is less than 0, or estimate is less than 0), then 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 tn, it means that the multipath signal effect is not observable even by the last pair of correlators. If 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.
With continued reference to
In some embodiments, a series of different initial estimates can be tried sequentially (e.g., in a “tree pattern”). This is illustrated in
Once the workflow 1200 has successfully solved for parameters AI, Am and δ from I-matrix equation 32 (1218), it will continue to solve for the remaining parameter AQ from Q-matrix equation 41. However, if Procedure 1 has determined that ϕ3rd is equal to 0° or 180°, then AQ can be directly assigned to 0. See steps 1232, 1234, and 1236.
When ϕ3rd is not equal to 0° or 180° (1238), the workflow 1200 proceeds to iteratively solve for AQ using a third iterative process. Note that the iterations for solving equation 41 are independent of iterations for solving equation 32. Before the third iterative process, or at the beginning of the third iterative process (e.g., starting from step 1240), 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. At iteration k, the third iterative process calculates (1240) Q measurements, {circumflex over (Q)}(ti,k−1), based on the initial estimate using equation 39, calculates (1240) the measurement estimation error yQ(ti,k) using equation 31, constructs Q-matrix equation 41, solves (1242) for unknowns ΔA
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 AQ in the last two iterations, e.g., |−|, is smaller than a threshold, and/or if the change in MSEQ, i.e., |MSEQ,k−MSEQ,k−1|, is smaller than a threshold, and/or if MSEQ,k itself is smaller than a threshold, then the third iterative process has successfully converged (1246), and thus AQ is obtained (1248). Otherwise, if the third iterative process has not converged while the number of iterations, k, is larger than a threshold (e.g., Threshold5), this means that this process cannot converge and thus should be terminated with an output indicating that there is no valid solution (1248). A third possibility is that the third iterative process has not converged (1250) and that k is smaller than a threshold, then a new iteration with k=k+1 commences (1252).
To recap, the workflow 1200 in
The workflow 1300 in
At the end of each iteration (e.g., iteration k) of the fourth iterative process, the workflow 1300 determines (1310) whether the iterative process has diverged or the number of iterations, k, 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, tn, or if is less than 0, or if estimate is less than 0, then the iterative process is determined to have diverged (1320). In some embodiments, these thresholds may be fine-tuned to some margin, since may oscillate to a slightly negative value before converging to a small positive one.
If the fourth iterative process has not diverged and the iteration count, k, for the fourth iterative process is smaller than a threshold (1312), the workflow 1300 determines whether the fourth iterative process has converged (1314). For example, if changes in the estimates between two latest iterations are smaller than the corresponding thresholds, and/or if the change in MSEQ, i.e., |MSEQ,k−MSEQ,k−1|, is smaller than a threshold, and/or if MSEQ,k itself is smaller than a threshold, then 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 AQ, Am and δ are obtained (1318). Otherwise, the fourth iterative process has not converged (1328) and a new iteration with k=k+1 (1330) is executed (1330).
In some embodiments, if the fourth iterative process has diverged or if k is larger than a threshold (1320), then the current iteration is terminated, as illustrated in steps 1324 and 1326. In some embodiments, 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
Referring again to
With continued reference to
Steps 1116, 1124, and 1126 of
Regardless of whether ϕ3rd is equal to ±90° or not, the amplitude Ad of the direct-path signal is:
And ϕm can be calculated (1122) using equation 2. As a reminder, angles ϕ3rd, ϕε and ϕm are all positive if a triangle formed by three phasor vectors is in Quadrant 1 416, as illustrated in
So far, all of the unknown parameters, including ϕ3rd, ϕε, ϕm, AI, AQ, Am, Ad, Δt, 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 Δt, 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.
Some applications solve for the carrier phase multipath error ϕε and/or the time error Δt. In these instances, the steps (described above) that are used to calculate other parameters can be skipped as soon as ϕε and Δt are obtained. For example, if Procedure 1 determines that ϕ3rd 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). Thus, depending which of the unknown parameters are of interest, computational power and time can be saved.
The above procedures can also work in instances where a multipath signal is weak or does not exist. Considering weak multipath or no-multipath scenarios, for example when Am is close to 0, the I component of equation 7 will become equation 20. In other words, weak multipath and no-multipath scenarios will be detected as cases of ϕ3rd=±90° in Procedure 1.
In some instances, weak multipath and no-multipath scenarios can also possibly be detected as cases of ϕ3rd=0° or 180°, if they are not detected as cases of ϕ3rd=±90° in Procedure 1. If this happens,
Now that the phase multipath mitigation algorithm has been fully described, the code chip edge transition model SR(t) needs to be further discussed. Recall that
In addition to a code chip edge transition model SR(t),
On the other hand, when multipath time delay δ is very small, the function SR(t) and SR(t−δ) will almost overlap in time, I(ti) and Q(ti) measurements of a direct-path signal and of a multipath can have a very similar pattern. Therefore, it can be very challenging for this phase multipath mitigation technique to estimate multipath parameters based on I(ti) and Q(ti) measurements of the corresponding composite signal. More correlators need to be densely arranged along code chip edge transitions if the system needs to mitigate a short-delayed multipath.
When the 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.
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
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,
In some embodiments, the n pairs of correlation samples are uniformly arranged along the code chip edge transition. In some embodiments, the n pairs of correlation are arranged over one period of correlation duration. In some embodiments, a respective pair of correlation samples (I(ti), Q(ti)) is summed or averaged over multiple periods of correlation duration. In some embodiments, 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.
In accordance with a determination that a computed similarity between the I(t) samples and the SR(t) samples satisfies a first threshold value, the GNSS receiver determines (1608) that a phase ϕ3rd is ±90° within a first predefined margin (e.g., no greater than 1, 2, 3, 4 or 5 degrees). The phase ϕ3rd 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 ϕm between the direct-path signal and the multipath signal (see Equation 2). In some embodiments, ϕm is equal to 180 degrees minus the difference between the direct-path signal and the multipath signal.
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, the GNSS receiver solves (1610) a first set of matrix equations (e.g., Equation 17), thereby obtaining a solution for tan ϕ3rd and for Δt tan ϕ3rd, wherein Δt is a response time error of the code chip edge transition due to the multipath signal.
In accordance with a determination that |tan ϕ3rd| satisfies a second threshold value (e.g., |tan ϕ3rd|<Threshold2 or |tan ϕ3rd|≤Threshold2, as illustrated in
In accordance with a determination that |tan ϕ3rd| does not satisfy the second threshold value (see
The GNSS receiver adjusts (1616) a pseudorange measurement for the respective satellite in accordance with the determined Δt; 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 ϕ3rd.
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.
In some embodiments, the GNSS receiver determines, based on the Q(t) samples, a sign (e.g., positive or negative) of the carrier phase multipath error Øg. For example, in some embodiments, if all Q(ti) samples are positive, then the phasor diagram is in the first quadrant (e.g., Quadrant 1 416,
In some embodiments, the GNSS receiver determines a sign of the carrier phase multipath error ϕε (e.g., positive or negative). In accordance with a determination that the computed similarity between the I(t) samples and the SR(t) samples satisfies (e.g., is less than, or is less than or equal to) the first threshold value (see
In some embodiments, in accordance with a determination that the phase ϕ3rd is 0° or 180° within the second predefined margin, 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., tI,peak 1004 in
In some embodiments, the computed similarity between the I(t) samples and the SR(t) samples is obtained using a mean squared error (MSE), defined by:
(see Equation 23). Furthermore, in such embodiments, AI=Ad cos ϕε, where Ad is a magnitude of the direct-path signal, and ϕε is the carrier phase multipath error.
In some embodiments, solving the first set of matrix equations comprises: obtaining (i) an initial estimate for the phase ϕ3rd, (ii) an initial estimate for the response time error Δt, and (iii) an initial estimate for a magnitude Ad+m of the composite signal (See
In some embodiments, in accordance with the determination that |tan ϕ3rd| does not satisfy the second threshold value (see, e.g.,
In some embodiments, in accordance with a determination that a valid solution for the phase ϕ3rd has been determined (e.g., when ϕ3rd is one of: ±90° within the first predefined margin, 0° or 180° within the second predefined margin, or the updated estimate tan ), the GNSS receiver determines (i) an initial estimate (e.g., a value) for AI, wherein AI=Ad cos ϕε (see Equation 21), Ad is a magnitude of the direct-path signal, and ϕε is the carrier phase multipath error; (ii) an initial estimate for a magnitude AQ, wherein AQ=Ad sin ϕε (see Equation 27); (iii) an initial estimate for a magnitude Am of the multipath signal, and (iv) an initial estimate for a time delay δ of the multipath signal relative to the direct-path signal (see, e.g.,
In some embodiments, in accordance with a determination that a valid solution for the phase ϕ3rd has been determined (e.g., when ϕ3rd is one of: ±90° within the first predefined margin, 0° or 180° within the second predefined margin, or the updated estimate tan ), the GNSS receiver determines (i) an initial estimate (e.g., a value) for AI, wherein AI=Ad cos ϕε (see Equation 21), Ad is a magnitude of the direct-path signal, and ϕε is the carrier phase multipath error; (ii) an initial estimate for a magnitude AQ, wherein AQ=Ad sin ϕε (see Equation 27); (iii) an initial estimate for a magnitude Am of the multipath signal, and (iv) an initial estimate for a time delay δ of the multipath signal relative to the direct-path signal. This is also illustrated in
In some embodiments, in accordance with a determination that the code chip edge transition is a code chip edge-up transition (and in accordance with the determination that the phase ϕ3rd does not correspond to ±90° within the first predefined margin): 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.
In some embodiments, in accordance with the code chip edge transition is a code chip edge-down transition (and in accordance with the determination that the phase ϕ3rd does not correspond to ±90° within the first predefined margin): the initial estimate corresponds to a magnitude of a first in-phase component sample I(t1) 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.
In some embodiments, in accordance with the determination that the phase ϕ3rd corresponds to ±90° within the first predefined margin, the GNSS receiver obtains a solution for AI by solving a matrix equation
(see Equation 22), and assigning the obtained solution as the initial estimate .
In some embodiments, in accordance with the determination that the phase ϕ3rd is 0° or 180° within the second predefined margin, the GNSS receiver assigns the initial estimate as zero.
In some embodiments, the initial estimate is 0.5 (e.g., half of the amplitude that is used to normalize the chip edge transition model SR(t) and correlation samples I(ti) and Q(ti)). In some embodiments, for a very weak direct-path signal partially indicated by a small value of AI,0, estimate can be scaled down accordingly.
In some embodiments, in accordance with the determination that the phase ϕ3rd does not correspond to ±90° within the first predefined margin (see, e.g.,
In some embodiments, the one or more predetermined first parameters include one or more of AI, Am, and δ. In some embodiments, the determination that the second iterative process has converged is in accordance with a determination that (i) the change in an estimated value of AI between the kth iteration and the (k−1)th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (i.e., |−|<ThresholdAI), and/or (ii) the change in an estimated value of Am between the kth iteration and the (k−1)th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (i.e., |−|<ThresholdAM), and/or (iii) the change in an estimated value of δ between the kth iteration and the (k−1)th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (i.e., |−|<Thresholdδ). In some embodiments, the one or more predetermined first parameters include a post-fix mean squared error (MSE) for the in-phase component estimation error, defined by
for the kth iteration (see Equation 43). In some embodiments, 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 kth iteration and the (k−1)th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (i.e., |MSEI,k−MSEI,k−1|<ThresholdMSE,I)).
In some embodiments, a kth 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 kth 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.,
In some embodiments, a kth iteration of the second iterative process further includes: in accordance with the determination that (i) the number of iterations k 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
In some embodiments, 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.,
In some embodiments, different initial estimates can be tried using the pattern illustrated in
In some embodiments, 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 kth 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
In some embodiments, after outputting the updated estimates , , and as the solution for AI, Am, and δ, respectively, and in accordance with the determination that the phase ϕ3rd is 0° or 180° within the second predefined margin: the GNSS receiver assigns a value of zero as the solution for AQ (see, e.g.,
In some embodiments, the GNSS receiver determines the carrier phase multipath error ϕε based on the solutions for AI and AQ (e.g., using Equation 45:
The GNSS receiver corrects the pseudorandom phase measurement for the respective satellite in accordance with the carrier phase multipath error ϕε.
In some embodiments, after outputting the updated estimates , , and as the solution for AI, Am, and δ, respectively (see, e.g.,
For example, in some embodiments, the one or more predetermined second parameters include the parameter AQ. In some embodiments, the determination that the third iterative process has converged is made in accordance with a determination that the change in an estimated value of AQ between the kth iteration and the (k−1)th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (e.g., |−|<ThresholdAQ).). In some embodiments, 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 kth iteration (See Equation 44). In some embodiments, 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 kth iteration and the (k−1)th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (i.e., |MSEQ,j−MSEQ,k−1|<ThresholdMSE,Q), and/or if MSEQ,k itself is smaller than (or does not exceed) a corresponding threshold.
In some embodiments, the kth 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 kth 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.,
For example, in some embodiments, the change in value of the one or more predetermined second parameters between the kth iteration and the (k−1)th iteration does not satisfy a respective corresponding threshold when |−|≥ThresholdAQ), or when |−|>Threshold AQ), or when |MSEQ,j−MSEQ,j−1|≥ThresholdMSE,Q), or when |MSEQ,k−MSEQ,k−1|>ThresholdMSE,Q).
In some embodiments, the kth iteration of the third iterative process further includes: in accordance with the determination that the number of iterations j does not satisfy the sixth threshold value (e.g., k>Threshold5 or k≥Threshold5 in
In some embodiments, the GNSS receiver computes the carrier phase multipath error ϕε based on the solutions for AI and AQ (using Equation 45:
The GNSS receiver corrects the pseudorange measurement for the respective satellite in accordance with Δt and/or corrects the carrier phase measurement for the respective satellite in accordance with the carrier phase multipath error ϕε.
In some embodiments, in accordance with the determination that the phase ϕ3rd corresponds to ±90° within the first predefined margin (see, e.g.,
For example, in some embodiments there are a few approaches for solving the fourth set of matrix equations. In one approach, equations 32 and 33 are solved separately, while estimates of AQ, Am and δ for equation 33 are updated based on equations 35, 36 and 37. In another approach, the two n×3 matrix equations (equations 32 and 33) are combined into one (2n)×4 matrix equation with a total of four unknowns (e.g., unknowns ΔA
For example, in some embodiments, the one or more predetermined second parameters include one or more of AQ, Am, and δ. In some embodiments, 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 AQ between the kth iteration and the (k−1)th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (e.g., |−|<ThresholdAI), and/or (ii) the change in an estimated value of Am between the kth iteration and the (k−1)th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (e.g., |−|<ThresholdAM), and/or (iii) the change in an estimated value of δ between the kth iteration and the (k−1)th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (e.g., |−|<Thresholdδ). In some embodiments, 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 kth iteration (See Equation 4a). In some embodiments, 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 kth iteration and the (k−1)th iteration has a magnitude that is smaller than (or does not exceed) a corresponding threshold (e.g., |MSEQ,k−MSEQ,k−1|<ThresholdMSE,Q)).
In some embodiments, the kth 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 kth iteration and the (k−1)th iteration does not satisfy the respective corresponding threshold (e.g., the fourth iterative process has not converged, see
For example, in some embodiments, the change in value of the one or more predetermined parameters between the kth iteration and the (k−1)th iteration does not satisfy the respective corresponding threshold when |−|>ThresholdAI), or |−|≥ThresholdAI), or |−|>ThresholdAM), or |−|≥ThresholdAM), or |−|>Thresholdδ), or |−|≥Thresholdδ), or |MSEQ,k−MSEQ,k−1|>ThresholdMSE,Q), or |MSEQ,k−MSEQ,k−1|≥ThresholdMSE,Q).
In some embodiments, the kth iteration of the fourth iterative process further includes: in accordance with the determination that the number of iterations k does not satisfy the seventh threshold value (e.g., k≥Threshold6 or k>Threshold6 in
In some embodiments, 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: 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.
In some embodiments, the GNSS receiver uses the initial estimates and and the adjusted initial estimate as the starting values. 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, 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 δ. Otherwise, the GNSS receiver outputs information that no valid solution for AQ, Am, and δ has been determined.
In some embodiments, in conjunction with outputting the updated estimates , , and as the solution for AQ, Am, and δ, respectively, the GNSS receiver obtains a solution for AI by solving a matrix equation
(See Equation 22). Because Procedure 1 (see workflow 900,
In some embodiments, the GNSS receiver computes the carrier phase multipath error ϕε based on the solution for AI and the solution for Am (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 ϕε. At this point, ϕε and ϕ3rd are known. The phase difference om can be computing by: ϕm=180°−(ϕε+ϕ3rd).
It will be understood that although the terms “first,” “second,” etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, 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. As used in the description of the embodiments and the appended claims, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
As used herein, 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. Similarly, 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.
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated.
This application claims priority to U.S. Provisional Patent Application No. 63/472,574, filed Jun. 12, 2023, which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63472574 | Jun 2023 | US |