This disclosure relates generally to global navigation satellite system receivers and, more particularly, to estimation of inter-frequency bias for ambiguity resolution in global navigation satellite system (GNSS) receivers.
Some global navigation satellite systems, such as the global positioning system (GPS), the GALILEO system, the BEIDOU system and the quazi-zenith satellite system (QZSS), utilize satellites that broadcast their respective signals on the same carrier frequency in a particular satellite band, but with different pseudo-random (PRN) codes. However, the Russian GLONASS system utilizes satellites that transmit their respective signals with the same PRN code, but on different frequencies within a given satellite band using frequency division multiple access (FDMA). Due to FDMA, inter-frequency bias (IFB) from the GLONASS signals exists on both the code phase and carrier phase measurements in the satellite receiver. The presence of IFB can degrade the accuracy of integer ambiguity resolution when processing the received GLONASS satellite signals to determine position estimates.
Wherever possible, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts, elements, etc. In any of the drawings of this document, any arrow or line that connects any blocks, components, modules, multiplexers, memory, data storage, accumulators, data processors, electronic components, oscillators, signal generators, or other electronic or software modules may include one or more of the following items: a physical path of electrical signals, a physical path of an electromagnetic signal, a logical path for data, one or more data buses, a circuit board trace, and/or a transmission line; a link, a call, communication, and/or data message(s) between software modules, programs, data, and/or components; transmission and/or reception of data messages, software instructions, modules, subroutines and/or components, etc.
Methods, apparatus, systems and articles of manufacture (e.g., physical storage media) to estimate inter-frequency bias within ambiguity resolution in global navigation satellite system receivers are disclosed herein. Example methods disclosed herein for position estimation include accessing carrier phase measurements and code measurements obtained for a plurality of satellite signals received by a receiver (e.g., a mobile receiver, a reference receiver, etc.) from a plurality of satellites of a global navigation satellite system. Disclosed example methods also include determining an initial set of floating-point ambiguities based on the carrier phase measurements and the code measurements, the initial set of floating-point ambiguities including an inter-frequency bias. In some examples, the ambiguity can refer to GLONASS wide-lane ambiguity using a Melbourne-Wübbena (MW) linear combination of both code phase and carrier phase measurements in either a reference receiver or a mobile receiver. In some examples, the ambiguity can refer to GLONASS L1 or L2 ambiguities for real-time-kinematic (RTK) applications. Disclosed example methods further include performing a least squares search process based on the initial set of floating-point ambiguities to determine a selected (e.g., best) set of integer ambiguities and a corresponding estimate of the inter-frequency bias for use in at least one of estimating a position of the receiver or determining a satellite correction signal for broadcast.
Some disclosed example methods also include accessing correction data received by the mobile receiver. In some such disclosed examples, the initial set of floating-point ambiguities corresponds to a set of single-difference floating-point ambiguities, the set of integer ambiguities corresponds to a set of single-difference integer ambiguities, and the determining of the initial set of floating-point ambiguities includes determining the set of single-difference floating-point ambiguities based on the carrier phase measurements, the code measurements and the correction data.
Additionally or alternatively, in some disclosed example methods, the performing of the least squares search process includes performing a modified least-squares ambiguity decorrelation adjustment (LAMBDA) process adapted to determine the selected set of integer ambiguities and the corresponding estimate of the inter-frequency bias to minimize a value of a quadratic formula modeling an error between the initial set of floating-point ambiguities and the selected set of integer ambiguities after removal of the corresponding estimate of the inter-frequency bias from the initial set of floating-point ambiguities. In some such disclosed examples, the value is a first value and the quadratic formula is a first quadratic formula, and the first value is based on a difference of a second value of a second quadratic formula and a third value. In some such disclosed examples, the second quadratic formula models an error between the initial set of floating-point ambiguities and the set of integer ambiguities without removal of the estimate of the inter-frequency bias from the initial set of floating-point ambiguities, and the third value models a contribution of the estimate of the inter-frequency bias to the error modeled by the second quadratic formula.
Additionally or alternatively, in some disclosed example methods, performing the modified LAMBDA search process includes determining a plurality of candidate values of the quadratic formula for a plurality of candidate sets of integer ambiguities and corresponding candidate estimates of the inter-frequency bias. Some such disclosed example methods also include selecting one of the candidate sets of integer ambiguities and a corresponding one of the candidate estimates of the inter-frequency bias associated with a lowest value of the candidate values of the quadratic formula to be the set of integer ambiguities and the estimate of the inter-frequency bias determined by the modified LAMBDA search process.
Additionally or alternatively, in some disclosed example methods, the least squares search process determines the estimate of the inter-frequency bias based on a transformed version of the initial set of floating-point ambiguities, a transformed version of the set of integer ambiguities, a gain matrix and a transformation matrix. In some such disclosed examples, the transformed version of the initial set of floating-point ambiguities corresponds to the initial set of floating-point ambiguities multiplied by the transformation matrix, and the transformed version of the set of integer ambiguities corresponds to the set of integer ambiguities multiplied by the transformation matrix.
Additionally or alternatively, some disclosed example methods also include determining a plurality of estimates of the inter-frequency bias over a time period. Some such disclosed example methods further include processing the plurality of estimates of the inter-frequency bias with a median filter to determine a filtered estimate of the inter-frequency bias for use in the at least one of the estimating of the position of the receiver or the determining of the satellite correction signal.
These and other example methods, apparatus, systems and articles of manufacture (e.g., physical storage media) to estimate inter-frequency bias for ambiguity resolution in global navigation satellite system receivers are disclosed in further detail below.
A mobile location-determining receiver or satellite receiver, such as a Global Navigation Satellite System (GNSS) receiver, is capable of estimating a position of the receiver from code phase measurements and carrier phase measurements determined from received satellite signals. However, the carrier phase measurements are subject to ambiguities, such as integer ambiguities, in the cycles of the received satellite signal. The receiver determines or resolves ambiguities of carrier phase measurements to estimate accurately the precise position or coordinates of the receiver. Although code phase or pseudo-range measurements of the GNSS receiver are not associated with integer ambiguities in the cycles of the received satellite, code phase measurements do not provide the centimeter level position accuracy desired for certain applications. As used throughout this disclosure, ambiguities are often specific to the context of particular equations which relate to observations from one or more receivers of carrier phase signals from one or more satellites. Accordingly, it is possible to have wide-lane (WL) ambiguities, narrow-lane (NL) ambiguities, zero-difference (ZD) ambiguities, single-difference (SD) ambiguities, double-difference (DD) ambiguities, real-time-kinematic (RTK) ambiguities, and refraction-corrected (RC) ambiguities that relate to carrier phase measurements from one or more receivers, or one or more satellites. Further, certain ambiguities will be specific to certain modules or predictive filters (e.g., Kalman filters) within those modules to accommodate different update rates of the filters and states of the filters, and communication of data or states between the filters of different modules. In this document, any reference to ambiguity can refer to a singular ambiguity or plural ambiguities.
If the satellite navigation receiver can receive at least two frequencies, such as the L1 and L2 satellite band frequencies (e.g., 1602 MHz for the L1 band and 1246 MHz for the L2 band), the difference of the L1 and L2 carrier phase measurements can be combined to form wide-lane (WL) measurements (e.g., with a wavelength of approximately 86.25 centimeters for GPS) and the sum of the L1 and L2 carrier phase measurements can be combined to form narrow-lane (NL) measurements (e.g., with a wavelength of approximately 10.7 centimeters). The wide-lane measurements facilitate quick and efficient resolution of wide-lane integer ambiguities, whereas the narrow-lane measurements facilitate precise and accurate resolution of narrow-lane ambiguities with minimal phase noise. The refraction-ambiguities compensate for atmospheric delay bias, such as tropospheric delay bias.
In systems supporting precise point positioning (PPP), single difference measurements (e.g., of carrier phase or code phase) are generally formed from the WL measurements with respect to one satellite, a reference receiver and the mobile receiver (e.g., such an example rover receiver included in an example rover as disclosed in further detail below). In systems supporting RTK, double difference measurements are generally formed from the WL measurements with respect to two satellites, a reference receiver and a mobile receiver (e.g., such as a rover receiver), or by subtracting two single-difference measurements. However, some double-difference measurements can be formed with two single-difference measurements from the same reference receiver at two different times and associated with a pair of satellites.
As noted above, because some GNSS systems, such as the Russian GLONASS system, utilize FDMA, the code phase and carrier phase measurements determined by the mobile receiver from the received satellite signals exhibit inter-frequency bias (IFB). IFB can degrade the accuracy of integer ambiguity resolution unless it is removed from the double-difference (DD) observations/ambiguities in RTK or the single-difference (SD) observations/ambiguities in PPP. Many researchers have indicated that GLONASS receiver IFB on carrier phase measurements is nearly linearly correlated to satellite frequency number and, therefore, can be represented by a constant IFB rate or bias with respect to the frequency number. It was also shown that the IFBs in the L1 and L2 bands are similar in unit of length as well. These characteristics can be utilized in the modeling and estimating of IFB. Based on the linear relationship between IFB and the signal frequency number, several prior techniques have been developed to estimate the IFB rate. However, some such prior techniques need an a priori, initial value of the IFB rate with certain accuracy, or need the IFB bias to be a floating-point variable, the estimation of which may involve a time consuming search process. Also, in prior IFB estimation techniques, the modeling and correction of the carrier phase IFB is generally easier to achieve than the modeling and the correction of the code phase IFB or of a combined carrier/code phase IFB. As a consequence, difficulties occur in ambiguity resolution implementations (e.g., PPP or RTK implementations) in which the Melbourne-Wübbena (MW) linear combination of both code phase and carrier phase measurement is used for resolving the wide-lane ambiguities.
Instead of searching floating-point IFB or pre-calibrating IFB for carrier phase only IFB as in prior IFB estimation techniques, example IFB estimation techniques disclosed herein can yield an optimal IFB estimate during ambiguity search for a combination of carrier and code phase IFB, or for carrier phase only IFB. As described in further detail below, disclosed example IFB estimation techniques estimate IFB for a given possible candidate set of integer wide-lane ambiguities during a disclosed search process, and revise the quadratic form used to evaluate the ambiguity candidate. The candidate set of integer wide-lane ambiguities and the corresponding IFB estimate associated with the smallest revised quadratic form is considered to be the optimal candidate (assuming, in some examples, one or more validation criteria are met). In some disclosed examples, robust IFB estimation is further realized by median filtering of the IFB estimates determined over a fixed window time. Once the IFB bias is reliably derived, GLONASS integer ambiguity resolution can be conducted for both phase-only GLONASS ambiguity resolution and MW wide-lane ambiguity resolution. Hence, disclosed example IFB estimation techniques can be applied to real-time PPP applications without any a priori IFB information.
Turning to the figures, a block diagram of an example system 100 including an example mobile device 105 with an example GNSS receiver 112 implementing IFB estimation for ambiguity resolution in accordance with the teachings of this disclosure is illustrated in
The example system 100 of
In some examples, the data processing center 118 includes an example electronic data processor 120, an example data storage device 124, and one or more example data ports 126 that are coupled to an example data bus 122. The data processor 120, the data storage device 124 and the one or more data ports 126 may communicate with each other via the data bus 122. Software instructions and data that are stored in the data storage device 124 may be executed by the data processor 120 to implement one or more of the blocks, components or modules (e.g., electronic modules, software modules, or both) disclosed herein. The data processor 120 may include a microcontroller, a microprocessor, a programmable logic array, an application specific integrated circuit (ASIC), a digital signal processor, or another device for processing data, manipulating, accessing, retrieving, and storing data. The data storage device 124 may include volatile electronic memory, non-volatile electronic memory, an optical storage device, a magnetic storage device, and/or another device for storing digital and/or analog data on a tangible storage medium, such as an optical disk, a magnetic disk, and/or electronic memory. The data port(s) 126 may include a buffer memory, a transceiver or both for interfacing with other network elements, such as the example reference receiver(s) 130 and/or an example terrestrial satellite uplink station 128.
In some examples, the data processing center 118 and/or the data processor 120 receive(s) the phase measurements and corresponding satellite identifiers from the reference receivers 130, and reference receiver 130 identifiers (or corresponding coordinates), and processes the phase measurements to estimate a clock bias for each satellite 110, or rather each satellite signal, or a corresponding clock solution for incorporation into example correction data 116. In some examples, the data processing center 118 and/or the data processor 120 implement IFB estimation for ambiguity resolution in accordance with the teachings of this disclosure to determine IFB estimate(s), integer ambiguity solutions, etc., for inclusion in the example correction data 116. As illustrated in the example system 100 of
Precise point positioning (PPP) means the use of precise satellite orbit and clock corrections provided wirelessly via correction data (e.g., the example correction data 116), rather than normal satellite broadcast information (ephemeris data) that is encoded on the received satellite signals, to determine a relative position or absolute position of a mobile satellite navigation receiver (e.g., the mobile satellite receiver 112). PPP uses correction data that is applicable to a wide geographic area or based on a network of reference satellite receiver stations (e.g., the reference receivers 130) via a correction wireless device (e.g., the wireless correction device 114). PPP may be used without one or more local reference satellite receiver stations to provide local difference corrections (e.g., real time kinematic or RTK corrections) to the mobile receiver via a correction wireless device (e.g., the wireless correction device 114).
In the illustrated example of
A block diagram of an example implementation of the mobile device 105 of
In some examples, the mobile satellite receiver 112 disclosed herein includes a computer-implemented system, method or receiver in which one or more data processors (e.g., such as the example electronic data processor 259) process, store, retrieve, and otherwise manipulate data via data buses (e.g., such as the example data bus 257) and one or more data storage devices (e.g., accumulators or memory, such as the example data storage device 255) as described in this document and the accompanying drawings. As used in this document, “configured to,” “adapted to,” or “arranged to” can mean that the data processor or receiver (e.g., the mobile satellite receiver 112) is programmed with suitable software instructions, software modules, executable code, data libraries, and/or requisite data to execute any referenced functions, mathematical operations, logical operations, calculations, determinations, processes, methods, algorithms, subroutines, or programs that are associated with one or more blocks set forth in
In the illustrated example of
In some example, the receiver front-end module 210 includes an example radio frequency (RF) front end 212 coupled to an example analog-to-digital converter 214. The receiver front-end module 210 or the RF front end 212 receives a set of carrier signals from one or more satellite transmitters on one or more satellites (e.g., such as the satellites 110). The analog-to-digital converter 214 converts the set of carrier signals into digital signals, such as digital baseband signals or digital intermediate frequency signals, for processing by the electronic data processing system 229.
In some examples, the electronic data processing system 229 includes an example baseband processing module 218 (e.g., a baseband/intermediate frequency processing module) and an example navigation positioning estimator 230. In the illustrated example of
In some examples, the baseband processing module 218 includes an example carrier phase measurement module 251, an example code phase measurement module 253, or both (e.g., in an example measurement module 261). The carrier phase measurement module 251 facilitates the measurement of carrier phase of one or more carrier signals received by the mobile satellite receiver 112. The code phase measurement module 253 supports the measurement of code phase of one or more code signals that modulate the carrier signals received by the mobile satellite receiver 112.
In the illustrated example, the navigation positioning estimator 230 uses the carrier phase measurements, the code phase measurements or both to estimate the range between the mobile satellite receiver 112 and one or more satellites, or the position (e.g., three dimensional coordinates) of the mobile satellite receiver 112 with respect to one or more satellites (e.g., four or more satellites). For example, the code phase measurements and/or carrier phase measurements can be converted from propagation times, between each satellite and the mobile satellite receiver 112 that is within reception range of the receiver, to distances by dividing the propagation time by the speed of light. To determine such range/position estimates, the navigation positioning estimator 230 resolves ambiguities in the code phase measurements and/or carrier phase measurements, such as the integer ambiguity in the carrier phase of one or more received satellite signals, or a combination of carrier signals of different frequencies.
In the electronic data processing system 229 of the illustrated example, the data storage device 255 is coupled to a data bus 257. An example electronic data processor 259 may communicate with the data storage device 255 and the correction wireless device 114 via the data bus 257. The example data processor 259 may include one or more of the following: an electronic data processor, a microprocessor, a microcontroller, an application specific integrated circuit (ASIC), digital signal processor (DSP), a programmable logic device, an arithmetic logic unit, or another electronic data processing device. The data storage device 255 may include electronic memory, registers, shift registers, volatile electronic memory, a magnetic storage device, an optical storage device, or any other device for storing data.
In some examples, the navigation positioning estimator 230 includes an example precise position estimator, such as PPP estimator and/or a wide area difference GNSS position estimator, in which the navigation positioning estimator 230 receives correction data (such as the correction data 116) from the correction wireless device 114 (e.g., which includes a receiver or transceiver capable of communication with a base station or a wireless satellite communications device).
In some examples, the navigation positioning estimator 230 determines one or more of the following data: (1) an absolute position of the mobile satellite receiver 112 (or its antenna 217), (2) a reference trajectory (or reference points) of the mobile satellite receiver 112, and/or (3) bias-related parameters (e.g., then-current, bias-related parameters for storage in or retrieval from the data storage device 255) associated with previous or current precise point position estimates, where bias-related parameters relate to initial position bias of the relative position estimate, atmospheric delay bias, or receiver clock bias. The navigation positioning estimator 230 also determines IFB bias as disclosed in further detail below.
As noted above, the carrier phase measurement module 251 determines carrier phase measurements of one or more carrier signals received by the mobile satellite receiver 112, and the code phase measurement module 253 determines code phase measurements of one or more code signals that modulate the carrier signals received by the mobile satellite receiver 112. In some examples, the L1 and L2 band code phase measurements and the carrier phase measurements determined by the code phase measurement module 253 and the carrier phase measurement module 251, respectively, can be represented mathematically by Equation 1 through Equation 4, which are:
In Equation 1 through Equation 4, Pij and Lij are fundamental code phase and carrier phase measurements, respectively, for a given frequency i=(1, 2) and satellite j. In Equation 1 through Equation 4, ρj is the geometric distance between the satellite j phase center and the receiver phase center including satellite orbital correction, receiver tide displacement and earth rotation correction. In Equation 1 through Equation 4, τr is the receiver r clock error for a given GNSS system. In some examples, one receiver clock bias is estimated for each GNSS system, such as a first clock bias for a GPS constellation, a second clock bias for a GLONASS constellation, a third clock bias for a Galileo constellation, and a fourth clock bias for a Beidou constellation. In some examples, one clock bias is estimated for a primary constellation, such as GPS, and relative receiver clock biases are then estimated between the primary constellation and the rest of the GNSS constellations.
In Equation 1 through Equation 4, τj is the satellite clock error including relativistic correction and clock correction. In Equation 1 through Equation 4, T is the tropospheric delay, and can be divided into a dry component Tdry and a wet component Twet. The dry component can be accurately modeled using an a priori troposphere model. The remaining wet component, after removing the a priori dry model, can be further estimated by one zenith bias with mapping function bias and/or two additional horizontal gradient coefficients. In Equation 1 through Equation 4, bP
The satellite signals transmitted by GLONASS satellite are derived from the fundamental frequency (1602 MHz for L1 band, 1246 MHz for L2 band) of the satellite L-Band. Each GLONASS satellite transmits on a different frequency using an FDMA technique. The equation to give the L1 center frequency for a given satellite is given by Equation 5, which is:
f
1
j=1602 MHz+nj×0.5625 MHz Equation 5
The equation to give the L2 center frequency for a given satellite is given by Equation 6, which is:
f
2
j=1246 MHz+nj×0.4375 MHz Equation 6
In Equation 5 and Equation 6, nj is frequency channel number (n=−7, −6, . . . , 6) of satellite j.
A block diagram of an example implementation of the navigation positioning estimator 230 of
In the illustrated example of
The example wide-lane Kalman filter 305 of
{circumflex over (N)}WLj is also referred to as the zero difference floating point wide lane ambiguity. By expanding the above Equation 7 using Equation 1 through Equation 4, it can be shown that the geometric range related terms, including range, receiver and satellite clock, ionosphere and troposphere errors, and the phase wind-up term, are cancelled. The resulting expression for {circumflex over (N)}WLj is given in Equation 8 as:
{circumflex over (N)}
WL
j
=N
WL
jλWL+bWL+BWLj+εWLj Equation 8
In Equation 8, λWL is the wide-lane wavelength given by Equation 9 below, which is approximately 86.4 cm for GPS, where c is speed of light:
In Equation 8, NWLj is integer wide-lane ambiguity for satellite j, which is given by Equation 10:
N
WL
j
=N
1
j
−N
2
j Equation 10
In Equation 8, bWL is the wide-lane lane receiver bias (one per receiver and constellation for all visible satellites), which is a combination of L1 and L2 receiver code bias and phase bias, as indicated in Equation 11, which is:
The majority of the GLONASS inter-frequency bias bP
IFB
j
≈k
IFB
·n
f
j Equation 12
In Equation 12, kIFB is the IFB coefficient, and nfj is the GLONASS satellite frequency number for satellite j. The IFB varies from receiver to receiver, and also varies from one siting (antenna and cabling setup) to another siting.
In Equation 8, BWLj is the wide-lane satellite j bias (one per satellite), which is a combination of L1 and L2 satellite code bias and satellite phase bias as given in Equation 13, which is:
The wide-lane satellite bias changes slowly over time. In Equation 8, εWLj is the wide lane error for satellite j, including white noise, multipath and remaining un-modeled error.
In some examples, the expression for zero difference floating point wide lane ambiguity {circumflex over (N)}WLj in Equation 8 is simplified by dividing by the wide-lane wavelength λWL to remove the wide-lane wavelength, rewriting the IFB term using the linear model described above and a remainder term (BWLr) to represent other sources of receiver bias, and lumping the wide lane error εWLj into the zero difference floating point wide lane ambiguity term. The resulting expression for the zero difference floating point wide lane ambiguity {circumflex over (N)}WLj is given in Equation 14, which is:
{circumflex over (N)}
WL
j
=N
WL
j
+B
WL
r
−B
WL
j
+k
IFB
*n
f
j Equation 14
The example wide-lane Kalman filter 305 then uses zero-difference Melbourne-W{umlaut over (υ)}bbena linear combinations {circumflex over (N)}WLj from Equation 7 as raw measurements to estimate one wide-lane ambiguity state per visible satellite. The wide-lane satellite bias BWLj can be broadcast in real-time within the example correction data 116 to a receiver, and can be corrected according to Equation 8 or Equation 14. Because the receiver wide lane bias bwL is included in the floating point wide-lane ambiguity {circumflex over (N)}WLj, this zero difference wide-lane ambiguity no longer has integer characteristics. However, the single difference wide-lane ambiguity within each constellation is still integer and can be resolved in single difference form, where the receiver wide-lane bias bWL is cancelled. But for the GLONASS constellations, due to different frequencies being used by different satellites, the additional IFB term is also estimated by the navigation positioning estimator 230 and used by the wide-lane Kalman filter 305. The IFB varies from receiver to receiver, and also varies from one siting (antenna and cabling setup) to another siting. In some examples, the magnitude of IFB is less than 0.1 cycles per frequency number.
Given the zero difference float pint wide-lane ambiguity {circumflex over (N)}WLj is the sum of a zero difference integer ambiguity and the receiver bias (IFB), the receiver bias variance can be calculated dynamically according to Equation 15, which is:
In Equation 15, q is the process noise, which is multiplied by an all-ones matrix, and Δt is the time interval between time t−1 and t.
After a reference satellite for each constellation is chosen, the example wide-lane Kalman filter 305 then determines the single difference floating point wide-lane ambiguity and variance-covariance matrix based on the zero difference floating point ambiguity states and variance-covariance. The example IFB estimator 315 implements a modified ambiguity resolution process to estimate and resolve single difference integer wide lane ambiguities, while accounting for the potentially strong correlation between ambiguity and IFB. For example, the wide-lane Kalman filter 305 can determine the single difference floating point wide-lane ambiguity for satellite i and reference satellite j at a receiver m (e.g., the mobile receiver 112) as the difference of their zero difference ambiguities, that is, {circumflex over (N)}mi−{circumflex over (N)}mj. Using Equation 14, the single difference floating point wide-lane ambiguity {circumflex over (N)}mi−{circumflex over (N)}mj can be represented by Equation 16, which is:
{circumflex over (N)}
m
i
−{circumflex over (N)}
m
j
=N
m
i
−N
m
j
−B
WL
i
+B
WL
j
+k
IFB
*∇n
f
ij Equation 16
In Equation 16, ∇[ ]S
In some examples, the wide-lane Kalman filter 305 additionally or alternatively determines the double difference floating point wide-lane ambiguity and variance-covariance matrix based on the zero difference floating point ambiguity states and variance-covariance from two receivers, m and n. The example IFB estimator 315 additionally or alternatively implements a modified ambiguity resolution process to estimate and resolve double difference integer wide lane ambiguities, while accounting for the potentially strong correlation between ambiguity and IFB. For example, the wide-lane Kalman filter 305 can determine the double difference floating point wide-lane ambiguity for satellite i and reference satellite j for a receiver pair m and n (e.g., the mobile receiver 112 and measurements obtained from another receiver) as the difference of their single difference ambiguities, that is, {circumflex over (N)}mi−{circumflex over (N)}mj−{circumflex over (N)}ni+{circumflex over (N)}nj. Using Equation 14, {circumflex over (N)}mi−{circumflex over (N)}mj−{circumflex over (N)}ni+{circumflex over (N)}nj can be represented by Equation 17, which is:
In Equation 17, ∇[ ]S
For a visible constellation of S GLONASS satellites, the example wide-lane Kalman filter 305 determines S-1 single difference ambiguity state variables, with one of the visible satellites being the reference satellite. The resulting single difference ambiguity state variables for the constellation of S satellites can be represented in matrix form according to Equation 18, which is:
{circumflex over (N)}
SD
=∇·{circumflex over (N)}
ZD
Q
SD
=∇·Q
ZD·∇T
H=∇·F Equation 18
In Equation 18, {circumflex over (N)}ZD is a vector of zero-difference floating point wide lane ambiguities {circumflex over (N)}WLj={circumflex over (N)}mj determined by the receiver m for the j=1 . . . S visible satellites. In Equation 18, {circumflex over (N)}SD is a corresponding vector of single-difference floating point wide lane ambiguities {circumflex over (N)}mi−{circumflex over (N)}mj determined, by the receiver m, for the S−1 combinations of the reference satellite j with the other visible satellites i. In Equation 18, QZD is the zero-difference variance-covariance matrix given by Equation 15. In Equation 18, QSD is the corresponding single-difference variance-covariance matrix. In Equation 18, F is vector of GLONASS frequency numbers corresponding to the visible satellites, and H is a differential frequency number vector representing the differences between the frequency numbers of the reference and non-reference satellites used to compute the single difference values. In Equation 18, ∇ is a differencing matrix operator defining the differencing relationship between the zero difference ambiguities and single difference ambiguities in the equation. A matrix representation similar to Equation 18 can be used to represent the double difference ambiguity state variables for a constellation of S satellites and a collection of R receivers.
Returning to
({circumflex over (N)}−Nk)TQ{circumflex over (N)}{circumflex over (N)}−1({circumflex over (N)}−Nk)={tilde over (R)}k=min Equation 19
In Equation 19, {circumflex over (N)} is a vector of the set of single difference floating point wide-lane ambiguities {circumflex over (N)}mi−{circumflex over (N)}mj determined by the wide-lane Kalman filter 305 via Equation 16 and Equation 18. In Equation 19, Nk is a vector representing a candidate set of single difference integer wide-lane ambiguities
In some examples, the IFB estimator 315 uses Equation 19 to obtain, for each different candidate integer set Nk, a different value of quadratic form {tilde over (R)}k. Thus, a single value of the quadratic form {tilde over (R)}k is obtained for each candidate set Nk of integer ambiguities. In some examples, an optimal integer set Nk that satisfies Equation 19, by producing the smallest value of {tilde over (R)}k, and that also satisfies a discrimination test, is accepted by the example IFB estimator 315 as the correct integer ambiguity set and is used to produce the final fixed ambiguity solution. The Least-squares AMBiguity Decorrelation Adjustment (LAMBDA) search process may be used to perform such a search using transformed floating ambiguities. The LAMBDA search process is described in Teunissen, “A new method for fast carrier phase ambiguity estimation,” Proc. IEEE PLANS '94, Las Vegas, Nev., 11-12 Apr. 1994, pp. 862-873, which is incorporated herein by reference. The transformed integer ambiguities are constructed from the original ambiguities, and can be used to recover the original integer ambiguities once the solution for the transformed integer ambiguities has been determined. The advantage of this procedure is that the transformed floating ambiguities have smaller standard deviations and there is a smaller number of integer candidate sets and, thus, the computation time can be reduced. The LAMBDA process involves a discrete search strategy to fix the integer ambiguities. The LAMBDA process further features two distinctive procedures for integer ambiguity estimation, which include ambiguity decorrelation, also referred to as Z-transformation, followed by a discrete search for the integer ambiguities (e.g., the integer ambiguity estimation). The LAMBDA process also involves the computation of a transformation matrix for constructing multi-satellite ambiguity combinations.
In some examples, the IFB estimator 315 of
having a smaller diagonal elements than the original variance-covariance matrix Q{circumflex over (N)}{circumflex over (N)} Equation 20 and Equation 21 are:
Using Equation 20 and Equation 21, Equation 19 can be re-written as Equation 22, which is:
Thus, in some examples, the IFB estimator 315 obtains, for each different candidate, transformed integer set
N
k
=Z
−1
·
k Equation 23
In some examples, to ensure that the transformed ambiguity values
In the illustrated example of
to estimate the IFB parameter. This virtual measurement vector is related to the IFB parameter according to Equation 24 and Equation 25, which are:
In Equation 24, Y represents the IFB parameter, and H is the differential frequency number vector representing the differences between the GLONASS frequency numbers of the reference and non-reference satellites used to compute the single difference values (see Equation 18). When IFB is linear (or assumed to linear), the IFB parameter Y corresponds to the single scalar value kIFB of Equation 12. When IFB is non-linear (or assumed to be non-linear), the IFB parameter Y can be generalized to a vector of different IFB parameters.
The IFB parameter Y and its variance-covariance matrix QYY can be derived using a least square method to yield Equation 26 through Equation 28, which are:
Thus, according to Equation 26 through Equation 28, the IFB estimator 315 of the illustrated example determines a candidate value of the IFB parameter Yk for a given candidate ambiguity error vector {circumflex over (
Because the IFB estimator 315 of the illustrated example estimates both the candidate integer wide-lane ambiguity
From Equation 29, it can be seen that the IFB estimator 315 of the illustrated example reduces the original quadratic form {tilde over (R)}k of Equation 22 by the quantity YkTQYY−1Yk after estimating the IFB parameter for a given candidate search attempt k. In other words, the modified least squares quadratic form {tilde over (R)}k of Equation 29 models an error between the set of floating point wide-lane ambiguities {circumflex over (
Based on the foregoing description, an example implementation of the IFB estimator 315, which includes an example ambiguity resolution initializer 325, an example LAMBDA searcher 330, an example validator 335 and an example IFB filter 340, is illustrated in
of Equation 21, and the transformed floating point ambiguity vector fN={circumflex over (
After the initialization performed by the ambiguity resolution initializer 325, the example LAMBDA searcher 330 performs an iterative search through sets of candidate integer wide-lane ambiguities
After the LAMBDA searcher 330 identifies the candidate integer wide-lane ambiguities
Assuming the example validator 335 determines the identified candidate integer wide-lane ambiguities
In the illustrated example of
In some examples, the IFB filter 340 implements a median filter with a moving window size of 1 day. Assuming raw IFB parameter solutions Y are determined at a rate of one per minute per site (for PPP applications) or site-pair (for RTK applications), such a window size corresponds to 24*60=1440 raw IFB parameter samples Y. In some examples, the IFB filter 340 waits until a threshold number of raw IFB parameter samples Y, such as 720 samples corresponding to a half day of data, to output a median IFB parameter solution to augment estimation robustness.
In the illustrated example of
Although the foregoing examples illustrate IFB estimation associated with floating point wide-lane ambiguities, IFB estimation for ambiguity resolution in accordance with the teachings of this disclosure is not limited thereto. On the contrary, IFB estimation for ambiguity resolution, as disclosed herein, can be performed for many other ambiguities, such as single-frequency ambiguities, L1/L2 ambiguities, etc. In such examples, the floating point wide-lane ambiguities {circumflex over (N)}, described above can be replaced with other ambiguity observables. The foregoing examples can then be used to estimate IFB associated with such ambiguity observables.
While an example manner of implementing the navigation positioning estimator 230 of
Flowcharts representative of example machine readable instructions for implementing the example navigation positioning estimator 230, the example ambiguity resolution engine 302, the example wide-lane Kalman filter 305, the example IFB estimator 315, the example position determiner 320, the example ambiguity resolution initializer 325, the example LAMBDA searcher 330, the example validator 335 and/or the example IFB filter 340 are shown in
As mentioned above, the example processes of
An example program 500 that may be executed to implement the example navigation positioning estimator 230 of
At block 525, the navigation positioning estimator 230 determines whether processing is to continue. If processing is to continue (block 525), control returns to block 505 and blocks subsequent thereto at which the navigation positioning estimator 230 determines another set of integer wide-lane ambiguities (N) and inter-frequency bias estimate (Y) for another measurement interval (also referred to as a measurement epoch). Otherwise, execution of the example program 500 ends.
A first example program P515A that may be executed to implement the example IFB estimator 315 included in the example ambiguity resolution engine 302 of the navigation positioning estimator 230 of
the transformed floating point ambiguity vector fN={circumflex over (
At block 615, the example LAMBDA searcher 330 of the IFB estimator 315 performs a LAMBDA search, as described above, to search through sets of candidate integer wide-lane ambiguities
If the validation criteria are not met at block 620, processing proceeds to block 625 at which the IFB estimator 315 waits for the next measurement sample interval/epoch. However, if the criteria are met at block 620, then at block 630 the example IFB filter 340 of the IFB estimator 315 filters (e.g., with a median filter) the raw solutions for the IFB parameter Yk determined at block 615 over a measurement window, as described above. Execution of the example program P515A then ends.
A second example program P515B that may be executed to implement the example IFB estimator 315 included in the example ambiguity resolution engine 302 of the navigation positioning estimator 230 of
as described above. At block 720, the ambiguity resolution initializer 325 prepares the design matrix H, the gain matrix G and the variance-covariance matrix QYY, as described above.
At block 725, example LAMBDA searcher 330 of the IFB estimator 315 starts the LAMBDA search described above. For example, at block 730, the LAMBDA searcher 330 gets the next set of candidate integer wide-lane ambiguities
At block 745, the LAMBDA searcher 330 determines whether the value of the modified least squares quadratic form {tilde over (R)}k for the current candidate set being evaluated is better than either of the current two best candidate sets. If so, the LAMBDA searcher 330 updates the two best candidate sets to include the current candidate set, as appropriate. At block 755, the LAMBDA searcher 330 determines whether the search is finished and all possible candidate sets have been evaluated. If the search is not finished (block 755), processing returns to block 730 and blocks subsequent thereto at which the LAMBDA searcher 330 gets the next set of candidate integer wide-lane ambiguities
At block 760, the example validator 335 of the IFB estimator 315 accesses the two best candidates identified by the LAMBDA searcher 330. At block 765, the example validator 335 determines the ratio of the values of the modified least squares quadratic form {tilde over (R)}k for the best candidate set and the second best candidate set. If the ratio satisfies a threshold, the example validator 335 indicates the search was a success and outputs the best combination of candidate integer wide-lane ambiguities
The processor platform 800 of the illustrated example includes a processor 812. The processor 812 of the illustrated example is hardware. For example, the processor 812 can be implemented by one or more integrated circuits, logic circuits, microprocessors or controllers from any desired family or manufacturer. In the illustrated example of
The processor 812 of the illustrated example includes a local memory 813 (e.g., a cache). The processor 812 of the illustrated example is in communication with a main memory including a volatile memory 814 and a non-volatile memory 816 via a link 818. The link 818 may be implemented by a bus, one or more point-to-point connections, etc., or a combination thereof. The volatile memory 814 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory 816 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 814, 816 is controlled by a memory controller.
The processor platform 800 of the illustrated example also includes an interface circuit 820. The interface circuit 820 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface.
In the illustrated example, one or more input devices 822 are connected to the interface circuit 820. The input device(s) 822 permit(s) a user to enter data and commands into the processor 812. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, a trackbar (such as an isopoint), a voice recognition system and/or any other human-machine interface. Also, many systems, such as the processor platform 800, can allow the user to control the computer system and provide data to the computer using physical gestures, such as, but not limited to, hand or body movements, facial expressions, and face recognition.
One or more output devices 824 are also connected to the interface circuit 820 of the illustrated example. The output devices 824 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a tactile output device, a printer and/or speakers). The interface circuit 820 of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip or a graphics driver processor.
The interface circuit 820 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network 826 (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.).
The processor platform 800 of the illustrated example also includes one or more mass storage devices 828 for storing software and/or data. Examples of such mass storage devices 828 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, RAID (redundant array of independent disks) systems, and digital versatile disk (DVD) drives.
Coded instructions 832 corresponding to the instructions of
Although certain example methods, apparatus and articles of manufacture have been disclosed herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.
This patent claims the benefit of and priority from U.S. Provisional Application Ser. No. 62/310,301, which is entitled “ESTIMATION OF INTER-FREQUENCY BIAS FOR AMBIGUITY RESOLUTION IN GLOBAL NAVIGATION SATELLITE SYSTEM RECEIVERS,” and which was filed on Mar. 18, 2016. U.S. Provisional Application Ser. No. 62/310,301 is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62310301 | Mar 2016 | US |