Patent Publication Number: US-10330793-B2

Title: UTC time offset estimation at a GNSS receiver

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of co-pending U.S. patent application Ser. No. 13/557,015, filed Jul. 24, 2012, entitled “UTC Time Offset Estimation at a GNSS Receiver” which is incorporated herein by reference in its entirety for all purposes. 
    
    
     BACKGROUND 
     Global navigation satellite systems (GNSS) are increasingly used in a variety of contexts to achieve location-related capabilities. Generally, GNSS systems can receive signals from a set of satellites. Each signal can be decoded, the decoded signal indicating which satellite transmitted the signal and when it was transmitted. By analyzing a set of signals, a device (e.g., a vehicle-integrated device or mobile device) can estimate an absolute location of the device. Based on the estimated location, various information may be identified and presented to the user, such as directions from the estimated location to a destination. 
     BRIEF SUMMARY 
     Techniques are provided to quickly estimate a temporal shift of a global positioning satellite (GPS) signal based on an analysis of a Global Navigation Satellite System (GLONASS) signal. The shift can be a result of applied leap-second adjustments affecting GLONASS signals but not GPS signals. By identifying this shift, GPS and GLONASS signals can be considered together in order to estimate locations. The temporal shift can be determined, e.g., by estimating a separation between a GPS-signal frame feature (e.g., frame onset) and a GLONASS-signal frame feature (e.g., frame onset), or identifying coinciding frame features (e.g., a GPS-signal subframe coinciding with a GLONASS-signal string number). The techniques allow the temporal shift to be estimated based on an analysis of just a portion of the GPS-signal and GLONASS-signal frames, such that a speed of location estimations can be improved. 
     In some embodiments, a method for estimating a number of applied leap-second adjustments is provided. The method can include accessing a GLONASS signal. The method can also include determining a frame-related feature of the GLONASS signal. The method can further include estimating the number of applied leap-second adjustments based on the determined frame-related feature of the GLONASS signal. 
     In some embodiments, a device for estimating a time-related parameter is provided. The device can include one more receivers configured to receive a GLONASS signal from a GLONASS satellite. The device can also include one or more frame feature detectors configured to detect a GLONASS frame feature in the GLONASS signal. The device can further include a leap-second adjustment estimator configured to estimate the time-related parameter based on the detected GLONASS frame feature, the time-related parameter being dependent on a number of applied leap-second adjustments. 
     In some embodiments, a computer-readable medium is provided. The computer-readable medium can contain a program which executes the steps of: accessing a GLONASS signal; determining a frame-related feature of the GLONASS signal; and estimating a number of applied leap-second adjustments based on the determined frame-related feature of the GLONASS signal. 
     In some embodiments, a system for estimating a time-related parameter is provided. The system can include means for accessing a GLONASS signal. The system can also include means for determining a frame-related feature of the GLONASS signal. The system can further include means for estimating the number of applied leap-second adjustments based on the determined frame-related feature of the GLONASS signal. 
     In some embodiments, a method for estimating a number of applied leap-second adjustments is provided. The method can include accessing a first signal, the first signal comprising either a GLONASS signal or a GPS signal, the first signal being associated with a first time. The method can further include identifying a second time. The second time can include a GPS time if the first signal is a GLONASS signal. The second time can include a GLONASS time if the first signal is a GPS signal. The second time can correspond to the first time. The method can also include estimating the number of applied leap-second adjustments based on the first signal and the second time. 
     In some embodiments, a device for estimating a time-related parameter is provided. The device can include a receiver configured to receive a GLONASS signal from a GLONASS satellite or a GPS signal from a GPS satellite. The device can also include a time detector configured detect a time associated with the received signal. The second time can include a GPS time if the first signal is a GLONASS signal. The second time can include a GLONASS time if the first signal is a GPS signal. The second time can correspond to the first time. The device can further include a leap-second adjustment estimator configured to estimate the time-related parameter based on the received signal and the detected time, the time-related parameter being dependent on a number of applied leap-second adjustments. 
     In some embodiments, a computer-readable medium is provided. The computer-readable medium can contain a program which executes the steps of: accessing a first signal, the first signal comprising either a GLONASS signal or a GPS signal, the first signal being associated with a first time; identifying a second time, the second time comprising a GPS time if the first signal is a GLONASS signal, the second time comprising a GLONASS time if the first signal is a GPS signal, the second time corresponding to the first time; and estimating the number of applied leap-second adjustments based on the first signal and the second time. 
     In some embodiments, a system for estimating a number of applied leap-second adjustments is provided. The system can include means for accessing a first signal, the first signal comprising either a GLONASS signal or a GPS signal, the first signal being associated with a first time. The system can also include means for identifying a second time. The second time can include a GPS time if the first signal is a GLONASS signal. The second time can include a GLONASS time if the first signal is a GPS signal. The second time can correspond to the first time. The system can further include means for estimating the number of applied leap-second adjustments based on the first signal and the second time. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates an instance in which a mobile device can communicate with a set of satellites in order to estimate its location. 
         FIG. 2  illustrates communications between a mobile device and a remote server. 
         FIG. 3  is a block diagram showing an exemplary mobile device 
         FIG. 4  is a flow diagram of a process for converting between GPS-system time and GLONASS-system time according to an embodiment of the invention. 
         FIG. 5  shows an example of how frame features can be used to estimate cumulative leap-second adjustments. 
         FIG. 6  is a flow diagram of a process for analyzing a GPS signal according to an embodiment of the invention. 
         FIG. 7  is a flow diagram of a process for analyzing a GLONASS signal according to an embodiment of the invention. 
         FIG. 8  illustrates an embodiment of a computer system. 
     
    
    
     DETAILED DESCRIPTION 
     Traditionally, a global navigation satellite (GNSS) system is a global positioning satellite system (GPS) or a Global Navigation Satellite System (GLONASS). Each system includes a set of satellites that orbit the Earth along known trajectories and transmit regular signals. A GPS or GLONASS receiver near the Earth&#39;s surface can receive signals from respective satellites. The receiver includes a clock, which is used to identify time differences between when a satellite transmitted a signal and when it was received by the receiver. By analyzing a set of signals, a device can estimate its location relative to each of a set of satellites, and further estimate its own absolute location. 
     GPS and GLONASS receivers include different clock systems. GLONASS clocks are locked to the Coordinated Universal Time (UTC) time scale, while GPS clocks operate using a continuous time scale that is not locked to the UTC time scale. Therefore, GLONASS clocks (but not GPS clock) account for the UTC “leap seconds.” Leap seconds are whole second adjustments made to reconcile atomic-frequency standards with the astronomical time of day. Leap-second adjustments may be added on June 30 and/or on December 31 of any given year depending on whether a reconciliation is needed. It is possible to convert a GPS system time to a GLONASS system time (or UTC time) with accuracy, if the total number of previous leap-second adjustments is known (e.g., using knowledge of how many adjustments were implemented and the magnitude of the adjustment). 
     GPS signals include “messages” that are 12.5 minutes long. The message includes 25 30-second frames, each framing including five subframes. The data in subframes 1-3 is the same across the 25 frames, but the data in subframes 4-5 varies across the frames and is indexed according to “pages”. Each GPS message includes information that identifies the leap-second correction. However, this information is included only once per message (subframe 4, page 18). Thus, it can take 12.5 minutes to receive this data. 
     Some embodiments of the invention allow for the cumulative leap-second adjustments to be quickly estimated by analyzing a GLONASS signal with respect to a GPS signal. As used herein, “cumulative” leap-second adjustments indicates a combined total of all implemented leap-second adjustments. This summed variable allows for a GPS-system time to be converted to a GLONASS-system or UTC-system time. However, it is to be appreciated that the disclosure could be extended to estimating other leap-second variables (e.g., total leap-second variables within the past year or at a particular time point). This may be particularly advantageous when, e.g., a device has stored or received another variable identifying total adjustments occurring previous to an instant time period. 
     GPS signals include 30-second frames, each of which includes five 6-second subframes. GLONASS signals also include 30-second frames, each of which includes fifteen 2-second strings. If no leap-second adjustments were made, GPS-signal frames and GLONASS-signal frames would begin at the same time, and GLONASS strings would have a fixed correspondence to GPS subframes. Thus, an estimate of the actual leap-second adjustments may be made identifying occurrences of frame features. For example, coinciding intra-frame features can be identified (e.g., determining which GLONASS string and which portion of the string coincided with a beginning of a GPS subframe), or a separation between two mapped features can be identified (e.g., a beginning of a GLONASS frame and a beginning of a GPS frame). Based on the frame-feature analysis, a cumulative leap-second adjustment can be determined. 
     By quickly and accurately estimating cumulative leap-second adjustments, accuracy of a GPS clock can be improved, thereby improving accuracy of one or more GNSS systems that rely on the GPS clock. For example, clock accuracy can improve estimates of a satellite&#39;s navigation by using navigation correction equations. Further, clock accuracy can allow for accurate SV search data to be quickly generated, thereby reducing time required to locate a SV, acquire signals from the SV, and track the SV. Even further, when multiple navigation systems are used (e.g., both GPS and GLONASS), accurate clocks in each may allow for improved synchronization between the systems, leading to improved system integration, faster time to position fixes, and more accurate location estimates. Finally, accurate times may be provided in transmitted signals to external entities. 
       FIG. 1  illustrates an instance in which a mobile device  105  can receive signals from with a set of satellites  110  and/or  120  in order to estimate its location. Specifically, mobile device  105  can receive signals from one or more GPS satellites  110  and/or one or more GLONASS satellites  120 . Mobile device  105  can include any device that a user  115  is likely to carry on his person and that can communicate with satellites  110  and  120  as described herein. Mobile device  105  can include, e.g., a phone, a smartphone, an electronic device, or a laptop. In some instances, a non-mobile device and/or vehicle accessory can be used in place of mobile device  105 . 
       FIG. 2  illustrates additional communications that can involve mobile device  105 . Mobile device  105  can communicate with a remote server  240  via a wireless network  220  and network(s)  230 . Wireless network  220  can represent a cellular service provider&#39;s wireless network. Wireless network  220  can use one or more network(s)  230  to communicate with remote server  240 . Network(s)  230  can include one or more private networks, such as a corporate intranet, and/or one or more public networks, such as the Internet. Mobile device  105  can include a transmitter configured to transmit radio signals, e.g., over a wireless network. Mobile device  105 , as shown in  FIG. 2 , can include a variety of sensors (not shown or labeled), such as a microphone. 
     A processor  250   a  in mobile device  105  can process signals (e.g., received from satellites  110  and/or  120 ) and estimate a location of mobile device  105 . In some instances, data is transmitted to remote server  240 , and processor  250   b  of remote server  240  can perform some or all of the signal processing and/or location estimation. Storage devices  260   a  and/or  260   b  can store data, such as estimated locations or estimated clock biases. 
     As illustrated in  FIG. 1 , mobile device  105  can be capable of communicating with multiple types of satellites, such as a GPS satellite  110  and a GLONASS satellite  120 . Currently, over 30 GPS satellites  110  and over 20 GLONASS satellites  120  are in orbit. Receiving signals from both GPS satellites  110  and GLONASS satellites  120  can enable mobile device  105  to locate satellites and acquire satellite signals quickly and to improve location estimations. 
     Mobile device  105  can receive a signal from a satellite  110  or  120  that includes a pseudorandom noise code and data that identifies a location of satellite  110  or  120 . Mobile device  105  can detect a time at which the signal was received (using a local clock). Further, by estimating a delay between a self-generated version of the pseudorandom noise code and the received pseudorandom noise code (the codes being identical but shifted), mobile device  105  can estimate when a satellite transmitted the signal. Thus, a travelling time can be estimated based on the estimated transmission time and the detected receipt time. A distance separating mobile device  105  from satellite  110  or  120  can be estimated by multiplying the traveling time by the speed of light. Thus, mobile device  105  can estimate that it is located on a surface of a sphere with a radius equal to the estimated distance centered on the satellite&#39;s location. 
     By analyzing multiple signals, mobile device  105  can estimate its absolute location using trilateration. However, even a small clock bias can dramatically influence an accuracy of a location estimation. To combat such error, a least-squares error minimization technique can be applied to simultaneously perform the trilateration and estimate a clock bias. 
     This technique assumes a common clock bias and that received signals are operating within a same temporal system. Meanwhile, the illustration in  FIG. 1  is operating in two temporal systems—signals received from GLONASS satellite  120  are locked to the UTC system and account for leap seconds, while signals received from GPS satellite  110  do not account for leap seconds. Embodiments of the invention allow mobile device  105  to quickly and accurately estimate leap-second adjustments, such that signals from all satellites  110  and  120  can be analyzed in a comprehensive and integrative manner. 
       FIG. 3  is a block diagram showing exemplary components in mobile device  105  to achieve location capabilities according to an embodiment of the invention. Mobile device  105  can include a GPS receiver  305   a  configured to receive signals from GPS satellite  110  and a GLONASS receiver  305   b  configured to receive signals from GLONASS satellite  120 . In some instances, GPS receiver  305   a  and GLONASS receiver  305   b  are combined in a single receiver configured to receive signals from both GPS satellites  110  and GLONASS satellites  120 . 
     A time tracker  310  can identify a time to associate with a received signal. The time can include, e.g., an absolute time, a local time, a GPS time or a GLONASS time. The time can be determined based on a clock time identified by a clock  315 . Clock  315  can comprise, e.g., a crystal oscillator referenced clock. Time tracker  310  can determine a time by, e.g., adding or subtracting an offset to (or otherwise adjusting) a clock time. 
     An offset or adjustment to be applied to a local time can be determined, e.g., to account for small errors of the clock or to account for differences between clock systems (e.g., a difference between a local time and a GPS time, a difference between a local time and a GLONASS time, or a difference between a local time and a UTC time). Thus, in some instances, time tracker  310  stores a priori information about a GPS and/or GLONASS time and uses the a priori information to convert a local time to a GPS and/or GLONASS time. 
     The offset or adjustment can be determined based on an analysis of previously received GPS and/or GLONASS signals. For example, a GLONASS time (and thus an offset between a local time and GLONASS time) can be determined by analyzing a sufficient number of GLONASS signals received substantially simultaneously. As another example, a GPS time (and thus an offset between a local time and GPS time) can be determined by analyzing a sufficient number of GPS signals received substantially simultaneously. In some instances, the offset or adjustment is determined by determining a difference between a local time and a time identified in a a signal from a remote server. 
     A GPS signal received by GPS receiver  305   a  and/or a GLONASS signal received by GLONASS receiver  305   b  can be fed to a frame feature detector  320 . Frame feature detector  320  can detect frame-related feature in the GPS signal and/or GLONASS signal. A frame-related feature can include, e.g., a beginning of a frame, a data sync word, a string or subframe number associated with a particular time and a portion or a string or subframe associated with a particular time. For example, frame feature detector  320  can identify a string number in a GLONASS signal that coincides with a subframe number in a GPS signal. As another example, frame feature detector  320  can identify a portion of a string in a GLONASS signal that coincides with a header-element (e.g., a start of a preamble) in a GPS signal. 
     In some instances, frame-feature detector  320  further detects a frame feature and identifies an associated time (e.g., as identified by time tracker  310  or based on a time identified by time tracker  310 ). For example, frame feature detector  320  can detect at which time (e.g., at which GPS time) a particular frame or string number (e.g., of a GLONASS signal) began. Thus, e.g., frame feature detector  320  could determine that string #1 began at t sn  seconds relative to a start of a GLONASS signal. If time tracker  310  indicated that the start of the GLONASS signal was associated with a GPS time t GPS , a GPS time associated with string #1 could be defined as t sn +t GPS . 
     Frame feature detector  320  can transmit data about the detected frame features (e.g., a string number, a subframe number, a portion of a string or subframe, and/or a time) to a leap-second adjustment estimator  325 . Leap-second adjustment estimator  325  can further receive a time, such as a time identified by time tracker (e.g., which can be directly sent to leap-second adjustment estimator  325  or sent via frame feature detector  320 ) or a time associated with a detected frame feature by frame feature detector  320 . 
     Leap-second adjustment estimator  325  can estimate a clock offset between the GPS and GLONASS systems, which can reflect the cumulative number of leap-second adjustments applied under the UTC system. Specifically, each possible clock offset can result in a discrete shift in GPS intra-frame features relative to GLONASS intra-frame features. Thus, leap-second adjustment estimator  325  can identify coinciding frame features, time differences between mapped frame features (e.g., beginnings of frames), and/or system times associated with frame features (e.g., a GPS system time associated with a GLONASS frame feature or a GLONASS system time associated with a GPS frame feature). Based on this information, leap-second adjustment estimator can estimate the offset between the GPS and GLONASS systems. 
     In some instances, the estimation includes estimating a time at which a previous (e.g., most recent) or future (e.g., next) frame did or will begin. This estimation can depend on an identification of, e.g., when specific intra-frame features were detected. In some instances, one or more assumptions or constraints are applied by leap-second adjustment estimator, such as a constraint applies an upper bound (e.g., 6 seconds) defining a maximum estimated cumulative leap-second adjustment. 
     GPS and GLONASS signals can be transmitted to a location estimator  330 . In some instances, these signals are the same signals as those analyzed by frame feature detector  320 . In some instances, they are different. Location estimator  330  can estimate a distance separating mobile device  105  and each of a set of satellites  110  and/or  120 , along with a clock bias. Even though GPS and GLONASS signals may be locked to different clocks, location estimator  330  can account for this difference due to the estimated cumulative leap-second adjustments determined by leap-second adjustment estimator  325 . 
     While  FIG. 3  shows an embodiment in which mobile device  105  includes the depicted components, in some embodiments, remote server  240  can include some of these components. For example, mobile device  105  can include GPS receiver  305   a , GLONASS receiver  305   b , time tracker  310  and clock  315 , and remote server  240  can include the leap-second adjustment estimator  325  and location estimator  330 . 
       FIG. 4  is a flow diagram of a process  400  for converting between GPS-system time and GLONASS-system time according to an embodiment of the invention. Part or all of process  400  can be performed by mobile device  105 . 
     At block  405 , a GPS signal is accessed, and at block  410 , a GLONASS signal is accessed. For example, GPS receiver  305   a  can receive the GPS signal and GLONASS receiver  305   b  can receive the GLONASS signal. The signals can be accessed in any order (e.g., the GLONASS signal before the GPS signal, the GPS signal before the GLONASS signal, or substantially simultaneously). The GPS signal and GLONASS signal can include signals that were received (e.g., by mobile device  105 ) at similar times. In some instances, at least part of the GPS signal was received at a same time as at least part of the GLONASS signal. In some instances, only one of block  405  or block  410  are performed (e.g., such that a GPS signal is accessed but not a GLONASS signal or the converse). The accessed signal(s) can be associated with a time. For example, a GLONASS signal can be associated with a local time at which it was received or a GPS time associated with the signal&#39;s receipt (based on a local time and a GPS offset). 
     At block  415 , one or more frame features are identified. The frame features can include a current frame feature (i.e., a feature of a frame just received in a signal at mobile device  105 ) or a past frame feature (e.g., a start of a current frame, subframe or string). The identified one or more frame features can include one or more features associated with the GPS signal and/or with the GLONASS signal. In some instances, a future frame feature (i.e., a frame feature that will occur in a signal received in the future at mobile device  105 ) can be predicted based on a current and/or past frame feature. 
     The frame feature can include a start of a frame; a subframe number; a string number; and/or a portion of a frame, subframe or string (e.g., a header of a subframe). In some instances, the identification includes determining a time associated with a frame feature. For example, an identification can include that a current string in a GLONASS signal is “string 3” and that it began 1.3 seconds ago. 
     In some instances, block  415  involves identifying coinciding frame features. For example, a GLONASS-signal feature and a GPS-signal feature that occurred at a particular point in time (e.g., an approximate current time) can be identified. As another example, a GLONASS-signal feature that coincided with a particular GPS-signal feature (e.g., a preamble of a subframe) can be identified or the converse. 
     In some instances, block  415  involves identifying a time of two mapped frame features or a time difference between the two mapped frame features. For example, a time at which a GLONASS-signal frame began and at which a GPS-signal frame began can be identified. As another example, a time difference between when a GPS-signal subframe began and when a specific GLONASS-signal string number began can be identified. To specifically illustrate one instance of this example, a time difference between when GPS-signal subframe x began and when GLONASS-signal string number x*3 began can be identified. 
     In some instances, block  415  involves identifying a time at which a frame feature occurs. For example, block  415  can involve detecting a frame feature (e.g., a GLONASS frame feature) and determining a time (e.g., a GPS time) associated with the detected frame feature. This can be performed, e.g., by accessing a local time associated with a point in the signal (e.g., a time at which it was received) and adjusting the local time based on a stored offset (e.g., between a local time and a GPS time) and based on the time associated with the detected frame feature. This can also be performed, e.g., by accessing a non-local time (e.g., a GPS time) associated with a point in the signal and adjusting the non-local time based on the time associated with the detected frame feature. 
     At block  420 , a cumulative leap-second adjustment is estimated based on the identified one or more frame features. The alignment of a GPS frame with a GLONASS frame depends on the cumulative leap-second adjustments. If no adjustments had occurred, then the frames would start simultaneously, and each GPS subframe numbered x would correspond to exactly three GLONASS strings numbered x*3−2, x*3−1 and x*3. Meanwhile, each adjustment causes a start of the GPS frame to become progressively more delayed relative to a start of GLONASS frame. Thus, by identifying which intra-frame features are actually aligned or by identifying a GPS/GLONASS time associated with a GLONASS/GPS frame feature, the cumulative leap-second adjustments can be estimated. 
     It will be noted that, theoretically, multiple cumulative leap-second adjustments can be estimated based on temporal relationships between frame features. For example, a cumulative adjustment of 13 seconds can have a same alignment effect as a cumulative adjustment of 43, 73, and 103 seconds. However, leap-second adjustments occur infrequently: from 2002-2012, three 1-second leap-second adjustments were implemented. Thus, the estimate at block  420  can constrain the estimate using an absolute threshold or by restricting a change compared to a previously identified (e.g., historic or previously estimated) cumulative leap-second adjustments. In the above example, the estimates of 43, 73 and 103 seconds can be disregarded due to these types of constraints—resulting in a single estimate. 
     At block  425 , a time is converted based on the estimated adjustment. For example, a time can be converted from a GPS system to the GLONASS system or from the GLONASS system to the GPS system. As another example, a time can be converted from a GPS system to the UTC system or from the UTC system to the GPS system. The conversion can involve adding or subtracting the cumulative leap-second adjustments. 
       FIG. 5  shows an example of how frame features can be used to estimate cumulative leap-second adjustments. As shown, a GLONASS signal can include a frame with fifteen strings. A GPS signal includes a frame with five subframes. Each subframe consists of ten words: the first word is a telemetry preamble word, the second word is a handover word, and the remaining words indicate additional data. Specifically, the remaining words in the first subframe identify the satellite clock time and GPS time relationship, the remaining words in the second and third subframes indicate a precise satellite orbit called ephemeris, and the remaining words in the fourth and fifth subframes are the almanac component and indicate information and status of all GPS satellites. 
     If no leap-second adjustments had been made, then the beginning of string 1 in the GLONASS signal would be aligned with the beginning of the preamble in subframe 1 in the GPS signal. Leap-second adjustments result in a shift in this alignment. 
     A cumulative leap-second adjustment can be estimated as a time shift between the beginning of a GLONASS-signal frame and a next beginning of a GPS-signal frame. Thus, in some embodiments, the frame onsets are detected, and the time difference is determined. However, other approaches can hasten the estimation. For example, by detecting a current or past intra-frame feature, onset of a next or previous frame can be estimated. For example, if a start time of subframe 3 is known, then an onset of the next GPS-signal frame can be estimated to be the subframe-3 start time plus 18 seconds. 
     In some instances, an actual or calculated time reference of the starting point of a GPS-signal subframe is compared to a time reference of the starting point of a GLONASS-signal string. To illustrate, one scenario can include detection of onset of a GPS-signal subframe 4 just subsequent to beginning decoding efforts and detection of onset of GLONASS-signal string number 3 approximately 0.5 seconds later. Based on the onset times of the intra-frame features, an onset time of a next GPS frame can be predicted, and a previous onset time of a current GLONASS frame can be predicted. These two variables are related as shown in the following formula:
 
 t   nxtsf1   =t   str1   +ΔT   LS   +T   ggtd +Δtsvdist
 
     where t nxtsf1  is a local time reference for starting of the next GPS frame, t str1  is a local time reference for starting of string 1 of the current GLONASS frame, ΔT LS  is the UTC leap-second offset value, T ggtd  is a time difference between GPS and GLONASS master clock (usually in the range of less than 1 μs), and Δtsvdist is the distance difference in time between two GNSS satellites used in the calculation. 
     Due to the small relative contributions of the terms T ggtd  and Δtsvdist, the cumulative leap-second adjustments can be estimated as:
 
Δ T   LS =Round to Second( t   nxtsf1   −t   str1 )
 
     Thus, the cumulative leap-second adjustment can be determined by identifying a subframe onset time and a string onset time, estimating a most recent GLONASS-frame start time based on the string onset time, estimating a next GPS frame start time based on the subframe onset time, and identifying the time difference separating the frame start times. Because each subframe is six seconds long, this means that the cumulative leap-second adjustment can be estimated within six seconds (as at least one string onset and subframe onset will be identified within that time period). It is therefore unnecessary for a decoder to wait until the next frame is available in order to determine the adjustment. 
     In some embodiments, the estimation can be made in even less than 6 seconds. This is possible by applying additional assumptions. Specifically, if the estimate of the cumulative leap-second adjustment is constrained to a six-second window, then the estimate can be made by detecting a specific portion of a GPS-signal subframe (e.g., a preamble) and detecting a coinciding GLONASS-signal intra-frame feature (e.g., string number and portion of the string or more string number and when the string began). The estimation can be made without detecting the subframe&#39;s number (e.g., prior to analyzing words 2 in the subframe). 
     An accuracy of the estimation can be unaffected by a six-second window constraint, due to patterns in implementation of new leap-second adjustments. Specifically, leap-second adjustments are rare: only three occurred from 2002-2012. Further, there has never been a negative adjustment. Thus, if a recent cumulative adjustment is known, it is likely that current cumulative adjustment is the same or includes one or two additional positive adjustments. Estimations need not consider the possibility of an addition of many leap seconds within a short time period (e.g., adding 10 leap seconds in one year) as this is historically very unlikely to occur. 
     The following table provides an example of potential estimated leap-second adjustments based on the year 2011 value of cumulative leap second and hypothetical detected locations of GPSsignal subframe preambles relative to GLONASS-signal string numbers: 
     
       
         
           
               
               
               
             
               
                   
                   
               
               
                   
                   
                 Unambiguously determined, 
               
               
                   
                 GPS preamble location, 
                 UTC Offset 
               
               
                   
                 corresponding to GLO string. 
                 (Leap Second) Value 
               
               
                   
                   
               
             
            
               
                   
                 Middle of 8th string 
                 15 
               
               
                   
                 Start of 9 th  string 
                 16 
               
               
                   
                 Middle of 9 th  string 
                 17 
               
               
                   
                 Start of 10 th  string 
                 18 
               
               
                   
                 Middle of 10 th  string 
                 19 
               
               
                   
                 Start of 11 th  string 
                 20 
               
               
                   
                   
               
            
           
         
       
     
     As described herein, cumulative leap-second adjustments can be estimated by detecting specific frame features in GPS and GLONASS signals.  FIGS. 6-7  are flow diagrams of processes for analyzing these signals according to embodiments of the invention. These processes can be performed fully or partly before a cumulative leap-second adjustment is estimated. Each process can be performed by mobile device  105 . 
       FIG. 6  is a flow diagram of a process  600  for analyzing a GPS signal according to an embodiment of the invention. At block  605 , a GPS signal is accessed. For example, a signal can be received by GPS receiver  305   a  from a GPS satellite  110 . In some instances, the accessed GPS signal is a “current” signal, indicating that the GPS signal was just received at mobile device  105 . 
     At block  610 , bit synchronization is determined. Thus, the receiver&#39;s clock can be synchronized to a satellite&#39;s clock at the bit level. At block  615 , a preamble is detected. For example, a known telemetry word in the preamble can be detected. At block  620 , a partial frame, a full frame or multiple frames are decoded. For example, a subframe following the detected preamble can be decoded. Based on the decoded portion of the GPS signal, time and navigation data can be identified at block  625 . For example, a signal transmission time can be identified and/or a location (e.g., based on satellite pattern) can be identified. 
       FIG. 7  is a flow diagram of a process  700  for analyzing a GLONASS signal according to an embodiment of the invention. At block  705 , a GLONASS signal is accessed. For example, a signal can be received by GLONASS receiver  305   b  from a GLONSS satellite  120 . In some instances, the accessed GLONASS signal is a “current” signal, indicating that the GLONASS signal was just received at mobile device  105 . 
     At block  710 , bit synchronization is determined. Thus, the receiver&#39;s clock can be synchronized to a satellite&#39;s clock at the bit level. At block  715 , frame synchronization is determined. Thus, a location of a string can be detected. At  720 , one or more strings can be decoded. Based on the decoded portion of the GLONASS signal, time and navigation data can be identified at block  725 . 
     In some instances, processes  600  and  700  are performed at least once in their entirety prior to estimation of a cumulative leap-second adjustment. In some instances, processes  600  and  700  are subsequently performed one or more times following estimation of a cumulative leap-second adjustment. In some instances, estimation of a cumulative leap-second adjustment is performed during one or both of processes  600  and  700  (e.g., after block  615  or block  715 ). 
     As one example, one GPS signal and one GLONASS signal can be analyzed in accordance with processes  600  and  700 . A cumulative leap-second adjustment can be estimated based on the signals. A location of mobile device  105  can be estimated based on the decoded time and navigation data from the received signals (and/or from other signals) and from the estimated cumulative leap-second adjustment. The cumulative leap-second adjustment can be estimated at regular intervals (e.g., following June 30 or December 31), and subsequent location estimations can be equated to the most recent leap-second adjustment estimate without repeatedly estimating the value. 
     A computer system as illustrated in  FIG. 8  may be incorporated as part of the previously described computerized devices. For example, computer system  800  can represent some of the components of mobile device  105  and/or remote server  240   FIG. 8  provides a schematic illustration of one embodiment of a computer system  800  that can perform all or part of methods described herein the methods described herein. It should be noted that  FIG. 8  is meant only to provide a generalized illustration of various components, any or all of which may be utilized as appropriate.  FIG. 8 , therefore, broadly illustrates how individual system elements may be implemented in a relatively separated or relatively more integrated manner. 
     Computer system  800  is shown comprising hardware elements that can be electrically coupled via a bus  805  (or may otherwise be in communication, as appropriate). The hardware elements may include one or more processors  810 , including without limitation one or more general-purpose processors and/or one or more special-purpose processors (such as digital signal processing chips, graphics acceleration processors, and/or the like); one or more input devices  815 , which can include without limitation a mouse, a keyboard and/or the like; and one or more output devices  820 , which can include without limitation a display device, a printer and/or the like. 
     Computer system  800  may further include (and/or be in communication with) one or more storage devices  825 , which can comprise, without limitation, local and/or network accessible storage, and/or can include, without limitation, a disk drive, a drive array, an optical storage device, solid-state storage device such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash-updateable and/or the like. Such storage devices may be configured to implement any appropriate data stores, including without limitation, various file systems, database structures, and/or the like. 
     Computer system  800  might also include a communications subsystem  830 , which can include without limitation a modem, a network card (wireless or wired), an infrared communication device, a wireless communication device and/or chipset (such as a Bluetooth™ device, an 802.11 device, a WiFi device, a WiMax device, cellular communication facilities, etc.), and/or the like. The communications subsystem  830  may permit data to be exchanged with a network (such as the network described below, to name one example), other computer systems, and/or any other devices described herein. In many embodiments, computer system  800  will further comprise a working memory  835 , which can include a RAM or ROM device, as described above. 
     Computer system  800  also can comprise software elements, shown as being currently located within the working memory  835 , including an operating system  840 , device drivers, executable libraries, and/or other code, such as one or more application programs  845 , which may comprise computer programs provided by various embodiments, and/or may be designed to implement methods, and/or configure systems, provided by other embodiments, as described herein. Merely by way of example, one or more procedures described with respect to the method(s) discussed above might be implemented as code and/or instructions executable by a computer (and/or a processor within a computer); in an aspect, then, such code and/or instructions can be used to configure and/or adapt a general purpose computer (or other device) to perform one or more operations in accordance with the described methods. 
     A set of these instructions and/or code might be stored on a computer-readable storage medium, such as the storage device(s)  825  described above. In some cases, the storage medium might be incorporated within a computer system, such as computer system  800 . In other embodiments, the storage medium might be separate from a computer system (e.g., a removable medium, such as a compact disc), and/or provided in an installation package, such that the storage medium can be used to program, configure and/or adapt a general purpose computer with the instructions/code stored thereon. These instructions might take the form of executable code, which is executable by computer system  800  and/or might take the form of source and/or installable code, which, upon compilation and/or installation on computer system  800  (e.g., using any of a variety of generally available compilers, installation programs, compression/decompression utilities, etc.) then takes the form of executable code. 
     It will be apparent to those skilled in the art that substantial variations may be made in accordance with specific requirements. For example, customized hardware might also be used, and/or particular elements might be implemented in hardware, software (including portable software, such as applets, etc.), or both. Further, connection to other computing devices such as network input/output devices may be employed. 
     As mentioned above, in one aspect, some embodiments may employ a computer system (such as computer system  800 ) to perform methods in accordance with various embodiments of the invention. According to a set of embodiments, some or all of the procedures of such methods are performed by computer system  800  in response to processor  810  executing one or more sequences of one or more instructions (which might be incorporated into operating system  840  and/or other code, such as an application program  845 ) contained in working memory  835 . Such instructions may be read into working memory  835  from another computer-readable medium, such as one or more of storage device(s)  825 . Merely by way of example, execution of the sequences of instructions contained in working memory  835  might cause processor(s)  810  to perform one or more procedures of the methods described herein. 
     The terms “machine-readable medium” and “computer-readable medium,” as used herein, refer to any medium that participates in providing data that causes a machine to operate in a specific fashion. Computer readable medium and storage medium do not refer to transitory propagating signals. In an embodiment implemented using computer system  800 , various computer-readable media might be involved in providing instructions/code to processor(s)  810  for execution and/or might be used to store such instructions/code. In many implementations, a computer-readable medium is a physical and/or tangible storage medium. Such a medium may take the form of a non-volatile media or volatile media. Non-volatile media include, for example, optical and/or magnetic disks, such as storage device(s)  825 . Volatile media include, without limitation, dynamic memory, such as working memory  835 . 
     Common forms of physical and/or tangible computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, EPROM, a FLASH-EPROM, any other memory chip or cartridge, etc. 
     The methods, systems, and devices discussed above are examples. Various configurations may omit, substitute, or add various procedures or components as appropriate. For instance, in alternative configurations, the methods may be performed in an order different from that described, and/or various stages may be added, omitted, and/or combined. Also, features described with respect to certain configurations may be combined in various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Also, technology evolves and, thus, many of the elements are examples and do not limit the scope of the disclosure or claims. 
     Specific details are given in the description to provide a thorough understanding of example configurations (including implementations). However, configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the configurations. This description provides example configurations only, and does not limit the scope, applicability, or configurations of the claims. Rather, the preceding description of the configurations will provide those skilled in the art with an enabling description for implementing described techniques. Various changes may be made in the function and arrangement of elements without departing from the spirit or scope of the disclosure. 
     Also, configurations may be described as a process which is depicted as a flow diagram or block diagram. Although each may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process may have additional steps not included in the figure. Furthermore, examples of the methods may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored in a non-transitory computer-readable medium such as a storage medium. Processors may perform the described tasks. 
     Having described several example configurations, various modifications, alternative constructions, and equivalents may be used without departing from the spirit of the disclosure. For example, the above elements may be components of a larger system, wherein other rules may take precedence over or otherwise modify the application of the invention. Also, a number of steps may be undertaken before, during, or after the above elements are considered. Accordingly, the above description does not bound the scope of the claims.