Abstract:
Systems, methods and devices for using ephemeris data in GNSS receivers and systems are provided. Receivers using synthetic ephemeris data for longer ephemeris availability under poor reception conditions are updated using a variety of techniques that allow for the transfer of accurate information onto degraded synthetic ephemeris information.

Description:
CLAIM OF PRIORITY UNDER 35 U.S.C. §120 
       [0001]    This application is a divisional application of U.S. Non-Provisional patent application Ser. No. 12/025,252, filed Feb. 4, 2008, entitled “PREDICTION REFRESH METHOD FOR EPHEMERIS EXTENSIONS,” which claims the benefit of U.S. Provisional Patent Application 60/888,232, filed Feb. 5, 2007, entitled “PREDICTION REFRESH METHOD FOR EPHEMERIS EXTENSIONS”, the contents of which are hereby incorporated by reference. 
     
    
     SUMMARY OF THE INVENTION 
       [0002]    Global Navigation Satellite Systems (GNSS) are currently in widespread commercial use. Such systems include or are projected to include the Global Positioning System (GPS), Galileo, Compass, GLONASS, DORIS and IRNSS. 
         [0003]    GNSS receivers operate by storing data relating to the current and future positions and/or velocities of satellites in the system. Such data is often referred to as satellite ephemeris data. Satellite ephemeris data may be transferred to the receiver by the GNS Satellites themselves (“broadcast ephemeris”), or through some other communications link such as a wireless network or the Internet. Ephemeris data relating to future times are predictions whose accuracy degrades over time. It is therefore necessary to update GNSS receivers with new ephemeris data periodically. 
         [0004]    In some cases, it is difficult for GNSS receivers to receive ephemeris data from a GNSS satellite or other communications system. This may happen, for example, where the GNSS receiver does not have access to a wireless network, and is shielded from satellite reception by buildings or other obstacles. In such situations, it is useful to be able to slow the degradation of ephemeris data, such that the data can be used by a receiver for longer periods between data updates. 
         [0005]    Thus, there is currently a need for Ephemeris Extension techniques in the GNSS industry. The potential advantages are that there would be no need to wait for the broadcast ephemeris before a position is computed. The best case time for receiving broadcast ephemeris is 30 seconds with high signal strengths, or never in a worst case indoor environment. 
         [0006]    Currently, the state of the art allows for ephemeris predictions that are accurate enough to be useful for between 3 days and 7 days. There is an incentive to increase the limits of the prediction usability for ease of use by the end user and to decrease accesses of the prediction server. 
         [0007]    One difficulty is that the Ephemeris Extension accuracy degrades as the prediction age increases. The prediction is generally composed of 2 elements, satellite position prediction and clock prediction. 
         [0008]    The satellite position prediction error is usually split for convenience into three subcategories of errors, related to a local reference frame attached to the orbit of the satellite, Radial error, along track (down track) error and cross-track error. Each one of these errors has a different behavior with the age of the prediction, and impacts the user position in different ways. 
         [0009]    Typically for force model prediction algorithms, the errors behave as follows: (1) the along track/down track error increases according to a square law vs. age of the prediction; (2) the radial error increases linearly with the age of prediction; (3) the cross track error increases linearly with the age of prediction; and (4) the Clock error increases according to the square of the age of the prediction. 
         [0010]    Thus, the dominant source of error is the clock error as soon as the prediction duration reaches 7 days. The satellite position error is much less of a problem, as the force models are very sophisticated, and obey well-known (albeit complex) physical models. Up to some point, the satellite position error can be carefully controlled over a longer prediction period by increasing the complexity of the force models. 
         [0011]    In contrast, the clock models are very rudimentary, as clock error approaches a true random phenomenon that cannot be modeled well beyond the general tendency model of offset and drift. In particular, the random walk effect and the flicker effects are not predictable. 
         [0012]    Currently there is no known clock prediction method that reliably works beyond one week. The satellite position prediction (at least the radial component) can be quite good. Thus, there is currently a need to mitigate the limitations of the clock prediction by using partial refreshes. 
         [0013]    The presently disclosed embodiments allow a correction to ephemeris prediction based on newer data about combined satellite clock correction and satellite position error. Preferred embodiments of the present invention allow a position update where all error is attributed to the clock, assuming the satellite position prediction accurate. 
         [0014]    Additional embodiments of the invention describe refresh of the position data, which is more difficult to implement, as the orbital elements are consistent between themselves, but not across different curve fits. One of the difficulties is that one cannot substitute a single orbital element (OE) from a variation of elements type prediction file such as that disclosed in provisional application 60/815,838, entitled “METHOD AND SYSTEM FOR EPHEMERIS EXTENSION FOR GNSS APPLICATIONS”, filed Jun. 23, 2006, now U.S. patent application Ser. No. 11/812,957, filed Jun. 22, 2007, herein incorporated by reference, by the equivalent OE from broadcast ephemeris; as they are not issued from the same curve fitting operation, and thus incompatible. The only position refresh method possible would be to revert back to the satellite positions, and redo curve fitting and recompaction in the client (GNSS receiver) code. Usually the client code is limited in size and computing power and cannot be sophisticated enough to do curve fitting to blend old predictions and new predictions. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]      FIG. 1  illustrates steps of a method embodiment of the invention. 
           [0016]      FIG. 2  illustrates steps of another method embodiment of the invention. 
       
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0017]    The present description will refer to ephemeris data received from GNSS satellites as “broadcast” ephemeris data and ephemeris data predicted but not broadcast by GNSS satellites as part of a navigation message as “synthetic” ephemeris or prediction data. The term “extended” may also be used to refer to synthetic ephemeris data with an extended period of accuracy. 
         [0018]    A refresh method embodiment of the present invention is accomplished in 4 steps, described below. 
         [0019]    (1)-Collection of information for the satellite to correct; 
         [0020]    (2)-Validation of a prediction and determining if refresh is necessary; 
         [0021]    (3)-Estimation of the clock correction and possibly clock drift (possibly using other satellites information); 
         [0022]    (4)-Combination of the refreshed clock correction and the extended prediction information. 
         [0023]    Step 1: 
         [0024]    Depending on the type of correction, the collected information can be Broadcast Ephemeris, one or more pseudo range measurements or delay range measurements, or any combination thereof. 
         [0025]    There is no particular way to get measurements for the satellites, except that a previously computed prediction can be used as a priori information to speed up the acquisition of the satellite to correct, similar to what is done with the ephemeris in the traditional way. The code offset/Doppler search domain will have to be increased depending on the age and therefore accuracy of the predictions. 
         [0026]    Step 2: 
         [0027]    If at some point during the synthetic prediction interval, broadcast ephemeris is available for all satellites in the synthetic prediction or for a subset of the satellites, it is possible to validate the position and clock predictions. One method of revalidation is to perform statistical analysis of the clock and position differences between broadcast ephemeris and synthetic ephemeris and verify if the differences pass predefined criteria for acceptability. The statistical analyses may include but are not limited to the following techniques: hypothesis testing, tests for normality, distribution fitting etc. If the outcome of one or more of these analyses indicates a need for ephemeris refresh, then the techniques outlined in the following steps of this document can be implemented. 
         [0028]    Step 3: 
         [0029]    Step 3 may be carried out using several different methods, labeled herein as methods A-C. 
         [0030]    Method A-One broadcast ephemeris data set for satellite N combined with one synthetic ephemeris data set for satellite N yields one refreshed extended data set for satellite N. Herein satellite N refers to an arbitrary satellite in the satellite constellation of the particular GNS system. 
         [0031]    The toc, af0 and af1 terms defined in ICD 200 are “lifted” from the broadcast ephemeris data, and are used “as is” in step 3. 
         [0032]    This method can be used even if not enough satellites are visible for a position computation, if the one to correct is strong enough to get full broadcast ephemeris data with no transmission errors. 
         [0033]    Method B Method B uses a mix of broadcast/synthesized ephemeris (satellite  1  to satellite N), together with related pseudo ranges or delta ranges (satellite  1  to satellite N), predicted ephemeris for sat N+1 and pseudorange for satellite N+1 to yield refreshed extended ephemeris for satellite N+1. 
         [0034]    An exemplary algorithm can be described as below. 
         [0035]    (1) Position fix. Compute a position fix from all satellites with measurements and a satellite position prediction available (broadcast ephemeris or synthetic ephemeris). The relative weight of each measurement is adjusted according to the a priori knowledge of the associated prediction accuracy. An estimate of the position accuracy is also computed to be used in the next phase. 
         [0036]    (2) Theoretical PR Computation. For each satellite used in the fix, but with only synthetic ephemeris and pseudorange available, compute the theoretical pseudorange from the predicted satellite position and clock correction at the time of the transmission to the computed receiver position. 
         [0037]    (3) Compute clock correction at the time of the fix. The predicted satellite position used in step (2) is considered more accurate than the clock prediction. 
         [0038]    We assume that the difference between theoretical pseudorange and measured pseudorange is only due to the satellite clock error. The difference between the measured pseudorange and the calculated one is the correction to be applied on the predicted satellite clock correction to get a more accurate clock correction prediction. The clock correction uncertainty is estimated from the position uncertainty and the pseudorange measurement uncertainty. 
         [0039]      FIG. 1  illustrates a simplified case in a GNS system  100  where the position of a receiver on the Earth  118  is computed using only the satellites with available broadcast ephemeris (satellites  102  to  108 ), and wherein the receiver has synthetic ephemeris for satellite  110 . A pseudorange  116  (shown by the dashed line) is measured for satellite  110 , which because of the error in the synthetic ephemeris results in a poor position. The receiver then uses the position fix and the synthetic ephemeris to produce an expected pseudorange  112  (solid line), which is compared with the actual pseudorange measurement. The error  114  (dotted line) is attributed to the clock error. Only the satellite  110  clock correction in the synthetic ephemeris will be recalibrated. 
         [0040]    In a generalized implementation, all satellites will be used for fix computation, and all satellites with only synthetic ephemeris will be corrected. In the extreme case, we might have all satellites in the fix with only synthetic ephemeris. 
         [0041]    The clock and position information for the satellites  1  to N is used to correct the clock correction of the satellite N+1 for which we have no direct clock information. Only the consistency of the solution is considered here (i.e. the assumption that the pseudorange residual from the considered satellite to the calculated receiver position is zero). 
         [0042]    The same method can be applied to the delta range measurements, satellite velocity predictions, to obtain a satellite (N+1) clock drift correction estimate along with an accuracy estimate of the correction. 
         [0043]    This technique can be systematically applied every time a fix is made and will average out the clock predictions errors between satellites (offset and drift alike). 
         [0044]    Method C. Method C uses the receiver position in combination with the broadcast ephemeris for satellite  2 , psuedorange/delta range for satellite  2 , synthetic ephemeris for satellite  1  and psuedorange/delta range for satellite  1  to yield refreshed synthetic ephemeris for the satellite  1  clock offset(clock drift). 
         [0045]    The a priori knowledge of the receiver position by other means than GPS can be used to “transfer” the good clock knowledge of a satellite  2  onto a satellite  1 . 
         [0046]    It is similar to a code single differencing technique, but here we are using the psuedorange single difference for different satellites to the same receiver. The usual single difference technique is doing pseudorange differencing for the same satellite to different receivers. 
         [0047]    The method C is illustrated in  FIG. 2 , which shows a GNS system  200  with a receiver on road track  208 , receiving signals from satellites  202  (satellite  2 ) and  204  (satellite  1 ). Satellite  202  is broadcasting signals which allow the receiver, having a priori knowledge of its location, to form an accurate range  206  and measure a pseudorange. A pseudorange  212  (shown by the dashed line) is also measured from satellite  204 , having an error component  214  (dotted line). The pseudoranges can then be differenced as described below and solved for an estimate of the clock correction. 
         [0048]    A simple mathematical formula shows how pseudoranges for satellites  1  and  2  (denoted by superscripts which do not indicate powers) are expressed as ranges plus a number of contributing errors: 
         [0000]      ρ r   1   =r   r   1   +I   r   1   +T   r   1   +c ·( ∂t   r   −∂t   1 )+ε r   1  
 
         [0000]      ρ r   2   =r   r   2   +I   r   2   +T   r   2   c ·(∂ t   r   −∂t   2 )+ε r   2  
 
         [0049]    The single difference is expressed as: 
         [0000]      Δρ r   12 =( r   r   1   −r   r   2 )+( I   r   1   −I   r   2 )+( T   r   1   −T   r   2 )+ c ·(∂ t   2   −∂t   1 )+(ε r   1   −ε   r   2 )
 
         [0050]    If the following is known::
       a)—Δρ r   12  Pseudorange single difference   b)—(I r   1 −I r   2 ) Ionospheric differences (they do not cancel out, but can be modeled);   c)—(T r   1 −T r   2 ) Tropospheric differences (they do not cancel out, but can be modeled);   d)—∂t 2  Satellite  2  clock correction from the satellite  2  broadcast ephemeris;   e)—r r   2  Geometric distance from satellite  2  to receiver location (from Broadcast Ephemeris and known receiver location);   f)—r r   1  Geometric distance from satellite  1  to receiver location (from deemed precise satellite  1  predicted position to known receiver location).       
 
         [0057]    One can estimate the clock correction (af0 term) for the satellite  1  at the time of the fix: 
         [0000]        ∂t   1 ≈1/ c[−Δρ   r   12 +( r   r   1   −r   r   2 )+( I   r   1   −I   r   2 )+( T   r   1   −T   r   2 )+ c·∂t   2 ]
 
         [0058]    The same technique can be applied on the single delta range difference to estimate the drift (af1 term). 
         [0059]    This technique is relatively insensitive to the transmit/receive time uncertainty, as the geometric range difference between satellites slowly evolves. It is possible to not calibrate the receiver clock error (by computing a fix, for example) to apply this technique, even if the real time clock (RTC) is off from system time by several seconds. 
         [0060]    If the system time is accurately known (significantly sub microsecond absolute time), and the position is accurately known, one can recalibrate the satellite  1  clock correction even without information and measurements for another satellite. 
         [0061]    Submethod C1-Position on a road segment. If a GNSS receiver is used with a map matching engine, the position and velocities computed with a fix using synthetic ephemeris can be projected onto the map to unambiguously determine on which road segment the receiver is on. A “range” of geometrical range differences between satellites can be computed, and the satellite  2  correction can be measured against the satellite  1  precise information. The variation of the geometrical range difference is added to the uncertainty of the clock correction determination. A short road segment will not impact the clock correction accuracy very much. Similarly, a road segment, perpendicular to the plane defined by satellite  1  position, satellite  2  position, and the Earth&#39;s center will add no error to the clock correction estimation. 
         [0062]    Submethod C2-Position from another technique (cell based location technique, WiFi, . . . etc). The technique delineated earlier for a map matching engine can also be applied to any technique that can deliver a receiver position, the uncertainty on this position will directly add up to the clock correction uncertainty. 
         [0063]    Step 4: 
         [0064]    The correction information can be stored at the client (receiver) side in several ways: 
         [0065]    Option 1: The newly collected information is used to modify the structure of the synthetic ephemeris file. This minimizes the NVRAM code, and implies that the client code is clever enough to do this compaction operation on the fly. 
         [0066]    Option 2: Another method is to reserve a section of the NVRAM (aside from the synthetic ephemeris file storage area), and to store there the “corrections” or substitutions of some data present in the synthetic ephemeris file. During the decompaction of the synthetic ephemeris file, the extra information will be added on top of the synthetic ephemeris approximation. This can take the form of a correction table, or an extra approximation to be added on top of the ones already in the synthetic ephemeris file. This second method is the one preferred. 
         [0067]    The combination of new clock information with the existing clock information is another issue. The information from the measurements will be at worst only the clock correction, and at best clock correction and clock drift correction. This is only a first order approximation around the reference time, whereas the synthetic ephemeris correction is usually a second order with harmonic terms. 
         [0068]    Two methods can be applied here: 
         [0069]    (1) Translation of the predicted clock approximation. The constant offset in the clock polynomial correction method is adjusted to match the one measured at the reference time. 
         [0070]    (2) Translation and scale correction. Clock offset and first order are adjusted to fit the approximation. 
         [0071]    For these two methods, the fusion of information from two different sources must be made according to the relative a priori accuracy attached to each one. 
       System Operation 
       [0072]    The steps of operation of a system employing methods described herein is described now in an exemplary fashion. 
         [0073]    (1) Synthetic ephemeris download. The user downloads the most recent synthetic ephemeris file from the server at the time of the download (via the Internet during docking or with a wireless connection). 
         [0074]    (2) Synthetic ephemeris file usage. During the validity period of the synthetic ephemeris file, a position fix is attempted. 
         [0075]    (3) Broadcast download. The reception conditions are sufficient to collect several broadcast ephemeris data sets current at the time of the fix. The fix will probably be computed using synthetic ephemeris only data for the first 30 seconds, and then a mix of synthetic ephemeris predicted data (for the measurements without broadcast data available) and broadcast data (always higher priority over synthetic ephemeris when available). 
         [0076]    (4) Synthetic ephemeris refresh phase. During or just after the positioning session, the client uses the extra information from the broadcast data and updates the synthetic ephemeris file information, according to embodiments of the present invention. 
         [0077]    (5) Use of synthetic ephemeris refreshed data. At the next positioning session, the synthetic ephemeris data will have been “refreshed” and the quality (i.e. accuracy) of the synthetic ephemeris only fixes and mixed fixes will be improved. 
         [0078]    One system can be implemented using a server operating as or in communication with a computing platform for generating synthetic ephemeris prediction files. These files can be based on information from satellite tracking systems as is known in the art. The prediction files can be broadcast by a variety of communication links including wireless and landline based Internet channels to a GNSS receiver of a user. The user&#39;s GNSS receiver may be a combination of processing devices or a single processing device, equipped with hardwired logic or programmable circuitry capable of carrying the algorithms as disclosed herein.