GNSS receiver adapted to produce, use, and communicate software-generated satellite signal data
11409005 · 2022-08-09
Assignee
Inventors
Cpc classification
G01S19/33
PHYSICS
International classification
G01S19/33
PHYSICS
G01S19/23
PHYSICS
Abstract
A Global Navigation Satellite System (GNSS) receiver that includes a satellite signal generator generating signal data for a signal that is not being tracked by the receiver. The receiver includes a satellite signal generator running an algorithm to process first and second received signals to produce a software-synthesized satellite signal, and the generated signal data is used to correct bias or is communicated to a spaced-apart GNSS receiver or used for onboard positioning calculations. The satellite constellation may be the Galileo constellation, with the first and second signals being E5A and E5B signals tracked by the receiver and the generated third signal being an E5AltBOC signal. With a half-a-cycle bias resolution technique, the satellite signal generator generates synthetic E5AltBOC data of high quality. For a receiver, which physically tracks E5AltBOC, synthetic E5AltBOC may be used to monitor polarity of a physically tracked E5AltBOC and correct it if error is detected.
Claims
1. A receiver for processing satellite signals, comprising: an antenna assembly with a sensor tracking assembly tracking and receiving satellite signals from a constellation of Global Navigation Satellite System (GNSS) satellites, wherein the constellation is Galileo and wherein the received satellite signals comprise E5AltBOC signals; a processor; a satellite signal generator module, provided by the processor executing code; a measurement preparation module extracting E5A and E5B raw data from the received satellite signals, wherein the satellite signal generator generates E5AltBOC raw signal data from the extracted E5A and E5B raw data, wherein the measurement preparation module verifies and corrects polarity of the E5AltBOC signals in the received satellite signals using the generated E5AltBOC raw signal data, and wherein the measurement preparation module processes the generated E5AltBOC raw signal data with corrected polarity to generate prepared GNSS raw signal data; and a measurements usage module processing the prepared GNSS raw signal data to determine a geographical position solution.
2. The receiver of claim 1, wherein the generated E5AltBOC raw signal data comprises an E5AltBOC pseudorange comprising a mean value of pseudoranges in the E5A and E5B raw data.
3. The receiver of claim 1, wherein the generated E5AltBOC raw signal data comprises an E5AltBOC Doppler observable comprising a mean value of Doppler observable in the E5A and E5B raw data.
4. The receiver of claim 1, wherein the generated E5AltBOC raw data comprises E5AltBOC carrier phase data comprising a mean value of carrier phase data in the E5A and E5B raw data.
5. The receiver of claim 4, wherein the satellite signal generator module determines when a half-a-cycle ambiguity is present for the mean value of carrier phase data in the E5A and E5B raw data and, when present, eliminating the half-a-cycle ambiguity.
6. The receiver of claim 1, further comprising a transceiver establishing a communication link with a spaced-apart GNSS receiver and receiving data from the spaced-apart GNSS receiver including correction data associated with the generated satellite signal data.
7. The receiver of claim 1, further comprising a transceiver establishing a communication link with a spaced-apart GNSS receiver operating as a rover and transmitting the generated satellite signal data for use in RTK positioning operations.
8. A receiver for processing satellite signals, comprising: a processor; a GNSS sensor tracking Galileo E5A and E5B signals; a satellite signal generator module, provided by the processor executing code, generating satellite signal data for a Galileo E5AltBOC signal by processing, in combination, raw signal data associated with both the Galileo E5A signal and the E5B signal tracked by the GNSS sensor; and a measurement preparation module processing the generated satellite signal data to generate prepared E5AltBOC raw signal data.
9. The receiver of claim 8, further comprising a measurements usage module processing the prepared E5AltBOC raw signal data to determine a geographical position solution.
10. The receiver of claim 8, wherein the generated satellite signal data comprises an E5AltBOC pseudorange comprising a mean value of pseudoranges in the E5A and E5B signals, wherein the generated satellite signal data comprises an E5AltBOC Doppler observable comprising a mean value of Doppler observable in the E5A and E5B signals, and wherein the generated satellite signal data comprises E5AltBOC carrier phase data comprising a mean value of carrier phase data in the E5A and E5B signals.
11. The receiver of claim 10, wherein the satellite signal generator module determines when a half-a-cycle ambiguity is present for the mean value of carrier phase data in the E5A and E5B signals and, when present, eliminating the half-a-cycle ambiguity during the generating of the generated satellite signal data.
12. The receiver of claim 8, further comprising a transceiver establishing a communication link with a spaced-apart GNSS receiver and receiving data from the spaced-apart GNSS receiver including correction data associated with the generated satellite signal data.
13. The receiver of claim 8, further comprising a transceiver establishing a communication link with a spaced-apart GNSS receiver operating as a rover and transmitting the generated satellite signal data for use in RTK positioning operations.
14. A receiver for processing satellite signals, comprising: a processor; a GNSS sensor tracking Galileo E5AltBOC signals; a measurement preparation module extracting E5A and E5B raw signal data from the tracked Galileo E5AltBOC signals; a satellite signal generator module, provided by the processor executing code, generating satellite signal data for a E5AltBOC signal synthesized by processing the E5A and E5B raw signal data, wherein the measurement preparation module processes the generated satellite signal data along with raw signal data associated with the tracked Galileo E5AltBOC signals to generate prepared signal data; and a measurements usage module processing the prepared signal data to determine a geographical position solution.
15. The receiver of claim 14, wherein the measurement preparation module verifies and corrects polarity of the tracked Galileo E5AltBOC signals using the generated satellite signal data.
16. The receiver of claim 15, further comprising a transceiver establishing a communication link with a spaced-apart GNSS receiver operating as a rover and transmitting the prepared signal data with corrected polarity for use in RTK positioning operations.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
DETAILED DESCRIPTION
(10) Briefly, the following description is directed toward methods of generating satellite signal data for a non-tracked signal to provide enhanced positioning precision and is further directed toward electronic devices that implement such methods (each which may be labeled “a GNSS receiver” or simply “receiver” herein). The new methods are particularly well suited for generating an E5AltBOC signal (or its signal data) by processing tracked Galileo E5A and E5B signals. There are three main problems that were recognized by the inventor and that the new methods and GNSS receivers address.
(11) With regard to the first problem, for standard RTK or post-processing operations, one of the fundamental steps in processing is building of Single-Difference (SD) observations. In order to do this, data from matching signals should be available from base and rover receivers. Thus, the base station should provide the most signals possible for the rover to be able to find the best match for its RTK operation. However, in the example of processing Galileo signals, some base receivers are capable of tracking Galileo E5A and E5B signals but are not capable of tracking the E5AltBOC signal due to its higher complexity. To solve this first problem, the inventor discovered that software-generated E5AltBOC signal data could enable those receivers to generate the full spectrum of Galileo E5 signals. This will have a positive impact on rover receiver performance and a user's productivity in the field.
(12) With regard to the second problem, for standard RTK or post-processing operations, one of the fundamental steps in signal and position processing is building single-difference (SD) observations. In order to do this, it is typically preferable to have data from matching signals from base and rover receivers. Often, the base station operates to provide data for only certain signals. For the L5 band, for example, the E5AltBOC signal is often selected since this signal usually has better multipath mitigation characteristics. However, some rover receivers are capable of tracking Galileo E5A and E5B signals but are not capable of tracking the E5AltBOC signal due to its higher complexity. To solve this second problem, software generated E5AltBOC signal data could be used to enable those rover receivers' processing of Galileo E5AltBOC signal data, which they receive from the base receiver. This will have a positive impact on rover receiver performance and user's productivity in the field.
(13) With regard to the third problem for a receiver in the field that tracks Galileo E5AltBOC signals, there exists a risk of providing Galileo E5AltBOC carrier phase with a half-a-cycle bias. Typically, a GNSS receiver (e.g., its satellite tracking module) is not able to detect this bias, and the bias may last a relatively long time (e.g., until loss of lock occurs), which may compromise the receiver's RTK/PPP performance. The inventor discovered that the software-generated E5AltBOC signal created to solve the first problem may also (or alternatively) be used for half-a-cycle bias detection. Hence, the E5AltBOC signal data can be used in such a E5AltBOC signal-tracking receiver to either repair the signal data or trigger a tracking channel reset.
(14) It should be understood that the first and second problems discussed above equally apply to real-time processing and to post processing. The second problem equally applies to RTK (including network RTK, e.g., VRS) and PPP (e.g., RTX) operations.
(15) With these problems and solutions in mind, the new GNSS receiver is configured (with software/firmware and/or hardware) to: (a) perform an algorithm to provide software-based generation of an E5AltBOC signal (e.g., its signal data), which may involve a procedure to reconstruct E5AltBOC signal data from its two individual components (i.e., E5A and E5B signal data); (b) using the software-generated E5AltBOC data on a reference receiver to provide this data to a roving receiver for RTK operations; (c) using the software generated E5AltBOC data on a rover receiver when working with reference data, which contains E5AltBOC signal data; and (d) using the software-generated E5AltBOC data on a rover receiver to validate polarity of tracked E5AltBOC signal data to eliminate potential half-a-cycle biases.
(16)
(17) During operations, the receivers 110, 120 each receive signals 112, 114, 122, and 124 from the visible GNSS satellites 102, 104. Further, the two receivers 110, 120 are configured with logic or executing code/software to provide the positioning techniques described herein including onboard generation of a satellite signal from signals 112, 114, 122, and/or 124 for a signal that is not tracked or received such as E5AltBOC signal from received/tracked E5A and E5B signals. The generated signal data may be used in positioning calculations (with corrections from a base station) and/or may be used to identify and/or correct any half-a-cycle bias in receiver 110 or 120.
(18)
(19) The receiver 200 further includes input/output (I/O) devices 230 whose operations are also managed by the processor 210, and the I/O devices 230 include wireless communication components allowing the GNSS receiver 200 to communicate with other GNSS receivers (not shown) such that the GNSS receiver 200 may act as a base station or a rover in a surveying pair to support SD and DD positioning techniques. In this regard, the other GNSS receiver may transmit its collected data in messages/signals that may include error or bias correction (e.g., for the signal 264 generated by logic 250 in some cases), and this data may be stored in the memory 260 by the processor 210. Further, the signals 235 may include satellite signal data 264 generated by the GNSS receiver 200 using the methods/algorithms taught herein to process the tracked signal data 262 to assist the other GNSS receiver or the GNSS receiver 200 in performing positioning calculations to provide a position solution 268.
(20) At this point in the description, it may be useful to specifically describe the algorithms used in generating a satellite signal from a pair of tracked signals. Particularly, algorithms for generating an E5AltBOC signal from an E5A and an E5B signal are described. E5A, E5B, and E5AltBOC signals are located very close in the spectrum. The E5AltBOC nominal frequency is located exactly in the middle between the E5A and E5B frequencies.
(21) With this in mind, the inventor determined that mean values of E5A and E5B pseudoranges and Doppler observables are very good estimates for E5AltBOC pseudorange and Doppler observables, respectively. Further, due to a good stability of the E5A-E5B-E5AltBOC inter-signal bias and its consistency across satellites, the mean value of E5A and E5B carrier phases is a good estimate for E5AltBOC carrier phase data. Such a combination of carrier phase observables will feature the following. First, it will be biased compared to the original AltBOC signal but, fortunately, RTK processing modules perform Double Different (DD) processing prior to making an Integer Ambiguity Search (which is typically essential for precise positioning). Further, this bias, being common for all satellites, will cancel out in the DD processing. Second, the combination of carrier phase observables may have a half-a-cycle ambiguity on some individual satellites. This may compromise RTK processing performance, and the inventor designed the new algorithm to eliminate this ambiguity.
(22) The half-a-cycle bias comes from the fact that the (E5A+E5B)/2 carrier phase value contains an (N1+N2)/2 ambiguity term, where N1 and N2 are integer ambiguities of E5A and E5B carrier phases. If (N1+N2) is an even number, reconstructed AltBOC data will feature an integer ambiguity, and, if (N1+N2) is an odd number, the reconstructed AltBOC signal data will have a half-a-cycle ambiguity (or half-a-cycle bias). In the algorithm carried out by the new GNSS receiver, the AltBOC data is corrected for this half-a-cycle bias before further processing.
(23) In order to identify the parity of (N1+N2) in the ambiguity term, the following steps are performed (e.g., by the new signal data generation module) or items are taken into account: (a) construct E5AltBOC using E5A data only (labeled “A1”); (b) construct E5AltBOC using E5B data only (labeled “A2”); (c) both A1 and A2 have some residual ionosphere and code noise, but both are introduced with relatively small coefficients; (d) the value (A1−A2) will contain ionosphere noise, code noise, differential-phase bias, and the value (N1−N2); (e) since introduced ionosphere and code noise are far less than a cycle, estimate fractional differential-phase bias (bias E5A minus bias E5B) by averaging the data from all available satellites; (f) having estimated a fractional part of the differential-phase bias, identify the parity of the (N1−N2) term; (g) since the integer part of the differential-phase bias is unknown, additional 0.5 cycle bias may be introduced (while correcting for half-a-cycle) for all satellites, which does not present any risk because it will cancel out in the DD construction; (h) since it is desirable to maintain bias consistency while not introducing any parasitic cycle slips, it is useful to remember estimated bias and verify its consistency over time such as by aligning estimated biases from next epochs to the one originally estimated; and (i) in case of some bias divergence, a loss-of-lock indicator can be triggered for the generated AltBOC signals.
(24) In many preferred implementations, in order to identify the parity of (N1+N2) in the ambiguity term, the steps discussed above are performed (e.g., by the new signal data generation module) with steps (a)-(e) being replaced with the following steps (and with steps (f)-(i) performed as described): (a) compute phase difference (PhaseE5A minus Phase E5B); (b) correct this phase difference for geometric part (distance, tropo, etc.) and for ionospheric part by adding a combination of CodeE5A and CodeE5B; (c) the value of this corrected phase difference will contain code noise and bias, differential-phase-bias, and the value (N1−N2)—the difference of ambiguities; and (d) since the coefficient applied to code combination is very small, the effect of code noise and bias is far less than a cycle, and this allows reliable estimation of a fractional differential-phase-bias (bias E5A minus bias E5B) by averaging the data from all available satellites.
(25) The following notations are used for signal data obtained from received/tracked satellite signals and for data of the satellite signal generated from processing such data: Phase1=carrier phase of E5A signal (in cycles of E5A band) Phase2=carrier phase of E5B signal (in cycles of E5B band) PhaseA=carrier phase of E5AltBOC signal (in cycles of E5AltBOC band) f1=frequency of E5A signal (in Hz) f2=frequency of E5B signal (in Hz) fA=frequency of E5AltBOC signal (in Hz) c=speed of light (in m/s) code1=code (PseudoRange) of E5A signal (in meters) code2=code (PseudoRange) of E5B signal (in meters) codeA=code (PseudoRange) of E5AltBOC signal (in meters) I=Ionosphere at E5AltBOC frequency (in meters) N1=E5A carrier phase ambiguity (integer number of cycles) N2=E5B carrier phase ambiguity (integer number of cycles) phaseBias1=fractional E5A phaseBias phaseBias2=fractional E5B phaseBias codeBias1=E5A codeBias codeBias2=E5B codeBias dist=geometrical component of observables (distance, orbit errors, satellites clock errors, receiver clock, troposphere).
(26) Using these notations, the following formulas, which are carried out by the signal data generation module or software, may be provided or defined (with noise omitted for simplicity):
Phase1=(f1/c)*dist−(f1/c)*(fa*fa)/(f1*f1)*I+N1+phaseBias1
Phase2=(f2/c)*dist−(f2/c)*(fa*fa)/(f2*f2)*I+N2+phaseBias2
PhaseA=(fA/c)*dist−(fA/c)*I+NA+phaseBiasA
Code1=dist+(fA*fA)/(f1*f1)*I+codeBias1
Code2=dist+(fA*fA)/(f2*f2)*I+codeBias2
CodeA=dist+I+codeBiasA
(27) Since fA=(f1+f2)/2, it becomes clear that: (Code1+Code2)/2=CodeA+(((fa*fa)/(f1*f1)+(fa*fa)/(f2*f2))/2−1.0)*I+(codeBias1+codeBias2)/2−codeBiasA. This coefficient of residual Ionosphere will be (((fa*fa)/(f1*f1)+(fa*fa)/(f2*f2))/2−1.0)=0.000497476 (approx.), which is a very small value. With 10 meters ionosphere, it will introduce additional error of just 4 mm. CodeBias will be shifted by “(codeBias1+codeBias2)/2−codeBiasA”, which will be readily absorbed by receiver clock estimate, so it will have no negative effect on positioning. Typically, it will also (statistically) reduce noise by a factor of 1/sqrt(2). As can be appreciated from the above, the calculations for code are straightforward.
(28) Now, the formulas pertaining to phase may be given as follows:
(Phase1+Phase2)/2=PhaseA−(((f1/c)*(fa*fa)/(f1*f1)+(f2/c)*(fa*fa)/(f2*f2))/2−(fA/c))*I+(N1+N2)/2+(phaseBias1+phaseBias2)/2−phaseBiasA
(29) Residual Ionosphere coefficient will be:
(((f1/c)*(fa*fa)/(f1*f1)+(f2/c)*(fa*fa)/(f2*f2))/2−(fA/c))=0.000659149 (approx.)
Thus, with 10 meters ionosphere, introduced error will be less than 0.007 cycle.
(30) Phase bias ((phaseBias1+phaseBias2)/2−phaseBiasA) will be identical for all satellites, thus will not introduce any problems for a RTK rover because it will cancel out in DD construction. The only remaining part is the ambiguity term: (N1+N2)/2. Having a continuous tracking of E5A and E5B, this will remain a constant number. Unfortunately, this number may be non-integer in cases where parities of N1 and N2 do not match. Such a half-a-cycle ambiguity is not acceptable for a typical RTK rover and has to be corrected for.
(31) To implement a first technique for estimating the parity of (N1+N2) (as noted above there are at least two useful approaches), PhaseA is reconstructed using Phase1 only and using Phase2 only:
PhaseA1=Phase1+(fa−f1)/c*Code1=PhaseA+coef1*I+bias1+noise1+N1
PhaseA2=Phase2+(fa−f2)/c*Code2=PhaseA+coef2*I+bias2+noise2+N2
These two reconstructed phases will have high noise and will be affected by ionosphere, but they will maintain the integer nature of ambiguity.
(32) Subtracting (PhaseA1−PhaseA2)=(bias1−bias2)+noise+(N1−N2) while considering the fact that: (a) bias1−bias2 may be considered to be identical for all satellites; (b) ionosphere coefficient is relatively low; and (c) code-noise is multiplied by a small coefficient and is expected to be within 0.1 cycle. This way we (omitting noise for simplicity) computed the value of (N1−N2)+fractionalBias.
(33) In place of this approach, the following or second technique may be used to estimate parity of (N1+N2) that may be more accurate and/or efficient in many settings. This new approach is a purely dual-band approach, which does not require individual A1 and A2 values. Moreover, unlike the previous approach, this one often will prove better since it fully removes the ionospheric part from the equation. This second technique involves computing the estimate of (N1−N2), which has the same parity as the (N1+N2):
Phase1−Phase2=(f1/c)*dist−(f1/c)*(fa*fa)/(f1*f1)*I+N1+phaseBias1−−(f2/c)*dist+(f2/c)*(fa*fa)/(f2*f2)*I−N2−phaseBias2
Phase1−Phase2=((f1−f2)/c)*dist−(f1/c)*(fa*fa)/(f1*f1)*I+N1+phaseBias1−+(f2/c)*(fa*fa)/(f2*f2)*I−N2−phaseBias2
(34) Compute ionosphere coefficient for (Phase1−Phase2):
(f1/c)*(fa*fa)/(f1*f1)+(f2/c)*(fa*fa)/(f2*f2)==−(fa*fa)/(f1*c)+(fa*fa)/(f2*c)=(fa*fa*(f1−f2))/(f1*f2*c)=((f1−f2)/c)*(fa*fa)/(f1*f2)
Phase1−Phase2=((f1−f2)/c)*dist+((f1−f2)/c)*(fa*fa)/(f1*f2)*I+(N1−N2)+(phaseBias1−phaseBias2)
((f1−f2)/c)*Code1=((f1−f2)/c)*dist+((f1−f2)/c)*(fa*fa)/(f1*f1)*I+((f1−f2)/c)*codeBias1
((f1−f2)/c)*Code2=((f1−f2)/c)*dist+((f1−f2)/c)*(fa*fa)/(f2*f2)*I+((f1−f2)/c)*codeBias2
(35) Subtracting any combination of two codes:
((f1−f2)/c)*(a*Code1+(1−a)*Code2) from (Phase1−Phase2)
will completely eliminate geometrical part (dist). And, as long as |a|<=1, the additional noise level introduced by code value will not grow.
Code1iono=((f1−f2)/c)*(fa*fa)/(f1*f1)=(approx.)−0.105058780554
Code2iono=((f1−f2)/c)*(fa*fa)/(f2*f2)=(approx.)−0.099784715084
PhaseDiff_iono=((f1−f2)/c)*(fa*fa)/(f1*f2)=(approx.)−0.102387794608
(36) Since, Code1iono<PhaseDiff_iono<Code2iono, an optimal coefficient a (|a|<1 may be computed, which would also eliminate ionosphere from the difference (Phase1−Phase2):
a=(Code2iono−PhaseDiff_iono)/(Code2iono−Code1iono)=(approx.) 0.493562231760
(37) Finally, one arrives at the following:
(Phase1−Phase2)−((f1−f2)/c)*(a*Code1+(1−a)*Code2)=(N1−N2)+(phaseBias1−phaseBias2)−((f1−f2)/c)*(a*codeBias1+(1+a)*codeBias2)
(phaseBias1−phaseBias2) can be considered to be identical across all satellites and coefficient ((f1−f2)/c)=(approx.)−0.102370820816
So, even a meter-level codeBias/multipath would transform only just 0.1 cycle in the Phase difference. Such accuracy is more than enough for identifying parity of the given Phase difference. Thus (omitting phase noise and noise introduced by code) we have computed the value of (N1−N2)+fractionalBias.
(38) For clarity, let us define a notation (N1−N2)+fractionalBias=dN, which is computed by using either the first or the second approach. One now can estimate the average fractional part of dN over all satellites, and then for each satellite one can analyze the following value:
Nearest Integer Of (dN−averageFractionalPart)
(39) This value may be either odd or even and, thus, form two groups of satellites. For one group of these satellites, reconstructed original PhaseA should be corrected by 0.5 cycles. As a result, the integer nature of DD ambiguities is maintained across all Galileo E5AltBOC carrier phases. Across epochs, the averageFractionalPart value is controlled to prevent its rollover, constraining the new value to be close to the previous one.
(40) To demonstrate the advantages of the new approach, the inventor recorded data from a GNSS receiver (i.e., a NetR9 receiver), which tracked Galileo E5A signals, E5B signals, and E5AltBOC signals. The inventor created three synthetic AltBOC carrier phase signals for this data and compared them with the original (or “true”) AltBOC signal data. In the plot 400 of
(41) With the above algorithm(s) and/or methods for generating satellite signal data understood, it may be useful to describe how software/firmware for implementing such an algorithm and/or method may be provided and used within a GNSS receiver to enhance its performance in the field.
(42) The GNSS sensor 510 is a block or assembly responsible for tracking satellites, such as those in the Galileo constellation to track the E5A and E5B signals. This block or module 510 of the GNSS receiver 500 operates to receive and track these signals and to provide raw signal data for each tracked signal. This raw data 515 is stored in local memory of the GNSS receiver 500 and/or communicated to the measurement preparation module 520. The raw signal data 515 may include all or a subset of the following: pseudorange, carrier phase, Doppler observables, signal-to-noise ratio, and tracked status flags. The measurement preparation module or block 520 is responsible for data preparation for later usage and output. The module 520 typically is responsible for outlier detection, code smoothing, signal selection for processing and output, data masking, and more. The prepared GNSS raw data (which may include Galileo E5A and E5B signal data) 525 is stored in local memory and/or communicated to the measurements usage module 530. The measurement usage block 530 is responsible for data processing the data 525 in positioning processes (e.g., autonomous, RTK, and so on) and data output (e.g., RTCM3-MSM message, CMRx messages, G-files, T0x-files, and so on) provided locally or sent to other GNSS receivers in a network (e.g., a base station and rover network or the like).
(43)
(44) The measurement preparation module 620 may be similarly configured to module 520 of receiver 500, but it is adapted to communicate with or use data produced by a satellite signal (or signal data) generator 625. Particularly, as shown, the measurement preparation module 620 is configured to send raw signal data 515 it receives to the generator module 625 as shown with arrow 623. In the Galileo-based examples described herein, the data 623 would include Galileo E5A and E5B raw signal data. The generator module 625 (as discussed above with regard to the algorithm/method of signal generation) operates to receive the signal raw data 623, to synthesize software-generated raw signal data for a non-tracked signal for the same constellation being tracked by sensor 510. For example, the raw signal data being generated may be Galileo E5AltBOC signal data generated from E5A and E5B raw data 623, which is output as shown with arrow 627 and may include pseudorange, carrier phase, Doppler observables, signal-to-ratio data, flags, and so on.
(45) The measurement preparation module 620 is configured to further process the data 627 as if this data had been received directly from the GNSS sensor 510. Hence, the measurement preparation module 620 outputs prepared GNSS raw data 629 for use by the measurements usage module 530, and this data 629 includes prepared data associated with the software-generated signal data 627 in addition to the tracked signal data 515 (e.g., Galileo E5AltBOC prepared raw data in addition to E5A and E5B prepared raw data).
(46)
(47)
(48) In step 850, the generator 625 acts to estimate parity (N1−N2). Then, in step 860, the generator 625 constructs the raw data for the synthesized satellite signal, which may involve generating E5AltBOC raw signal data using the received E5A and E5B signal data and the estimated parity value from step 850. In step 870, the generator 625 estimates SNR, assigns tracking status flags, and saves E5A, E5B cumulative loss of lock. At step 880, the generator 625 functions to output the completed signal data, with arrow 627 showing communication of this data to the measurement preparation module.
(49)
(50) The generator 920 processes the raw data 915 it receives (as discussed above) to generate Galileo E5AltBOC raw signal data that is then output as shown with arrow 925 for use by the measurement preparation module 910. Particularly, in step 916, the measurement preparation module 910 verifies and corrects polarity of the true or received E5AltBOC signal data using the generated raw signal data 925. Then, at step 918, the measurement preparation module 910 completes data preparation of the signal data and outputs messages with or based on this processed E5AltBOC signal data (as discussed above for GNSS receiver 600) as shown with arrow 935.
(51) Although the invention has been described and illustrated with a certain degree of particularity, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the combination and arrangement of parts can be resorted to by those skilled in the art without departing from the spirit and scope of the invention, as hereinafter claimed.
(52) As note herein, one prior technique can be used to generate a non-tracked signal out of a single tracked one, but the quality of such a signal is not very high due to noise and biases introduced by code. The prior technique does, however, maintain the integer nature of ambiguities and, thus, is relatively simple to generate.
(53) The new approach or technique taught herein, in contrast, is aiming at building a high-quality signal by utilizing a pair of real signals. The quality of such signal is very high such that it is pretty much on the level of an original signal. However, this approach is more complicated since it includes half-a-cycle ambiguity resolution. The new approach enables the usage of synthetic data for a reference receiver, and, most probably, a single-band-generated signal would not be good enough for this. This description also teaches the new usage of synthetic data to verify, monitor and correct polarity of a true signal. The higher quality of dual-band-generated AltBOC signal allows its usage in high-end products, which would not be reasonable for a single-band-generated signal. Hence, while the prior techniques may be useful for some low-end RTK rovers, the new techniques taught herein provide a novel solution for use in high-end RTK base and rover receivers.