A method and system for assisting mobile stations to locate a satellite use an efficient messaging format. A server computes a correction between coarse orbit data of a satellite and precise orbit data of the satellite. A coordinate system is chosen such that variation of the correction is substantially smooth over time. The server further approximates the correction with mathematical functions to reduce the number of bits necessary for transmission to a mobile station. The mobile station, upon receiving the coefficients, evaluates the mathematical functions using the coefficients and a time of applicability (e.g., the current time), converts the evaluated result to a standard coordinate system, and applies the conversion result to the coarse orbit data to obtain the precise orbit data.

Claim:

What is claimed is:

1. A method of assisting a mobile station to obtain orbital information of a satellite, the method comprising: computing a correction utilizing a processor of a serverbetween first orbit data of the satellite and second orbit data of the satellite, wherein the second orbit data is more precise than the first orbit data; transforming spatial components of the correction from a first coordinate system to a secondcoordinate system utilizing the processor of the server, the second coordinate system selected such that the variation of the correction in the second coordinate system is substantially smooth over time, wherein the computed correction further comprisesone or more clock correction parameters representing an approximate difference between a clock timing of the first orbit data and a predicted clock bias, and wherein the computed correction is represented by one or more coefficients to be applied tofirst orbit data for the satellite stored at the mobile station to estimate more precise orbit data for the satellite; and transmitting the computed correction in the second coordinate system from the server to the mobile station.

2. The method of claim 1 further comprising: approximating the correction in the second coordinate system to reduce the number of bits utilized for transmission to the mobile station.

3. The method of claim 2 wherein said approximating the correction comprises: using coefficients of one or more polynomials as the approximated correction.

4. The method of claim 1 wherein the second coordinate system comprises axes that move with the satellite.

5. The method of claim 4 wherein the second coordinate system includes a radial axis, the radial axis being parallel to or coinciding with a line that connects a reference location to an estimated position of the satellite.

6. The method of claim 5 wherein the second coordinate system further includes a cross-track axis perpendicular to the radial axis and a direction of a satellite motion.

7. The method of claim 2, wherein said approximating the correction comprises: using a location of the mobile station as a reference location for the second coordinate system; and transmitting the approximated correction from the servercomputing platform to the mobile station as one-dimensional data, the correction including a spatial dimension combined with the one or more clock correction parameters.

8. The method of claim 2, wherein said approximating the correction comprises: using a center of the earth as a reference location for the second coordinate system; and transmitting the approximated correction as four-dimensional data, thecorrection including three spatial dimensions of the second coordinate system and a time dimension for the one or more clock correction parameters.

9. The method of claim 1 wherein the correction in one spatial dimension is substantially more accurate than in other spatial dimensions.

10. The method of claim 1 further comprising: obtaining a reference time from a time server; and transmitting the reference time with an estimate of satellite positions from the server to the mobile station.

11. The method of claim 10 further comprising: improving accuracy of the reference time obtained from the time server; and appending the reference time to the estimate of satellite positions to form a message for transmission to the mobilestation.

12. The method of claim 1 further comprising: transmitting the correction to a data file host for access by the mobile station.

13. A method comprising: transforming a correction to satellite orbit data from a first coordinate system to a second coordinate system utilizing a processor at a mobile station; and applying the transformed correction to first orbit datastored at the mobile station utilizing the processor to estimate more precise orbital information of the satellite, wherein the transformed correction further comprises one or more clock correction parameters representing an approximate differencebetween a clock timing of the first orbit data and a predicted clock bias, and wherein the transformed correction is represented by one or more coefficients to be applied to the first orbit data to estimate the more precise orbital information.

14. The method of claim 13 wherein the correction in the first coordinate system has substantially smooth variation in time.

15. The method of claim 13 wherein the correction in the first coordinate system has a higher accuracy in one spatial dimension than in other spatial dimensions.

16. The method of claim 13 wherein axes of the first coordinate system rotate with movement of the satellite.

17. The method of claim 13 wherein one or more axes of the first coordinate system are defined by a position or a motion of the satellite.

18. A method, comprising: receiving a correction to first orbit data of a satellite at a mobile station, wherein the correction comprises one or more spatial components and further comprises one or more clock correction parameters representingan approximate difference between a clock timing of the first orbit data and a predicted clock bias, and wherein the correction is represented by one or more coefficients to be applied to the first orbit data to estimate more precise orbit data for thesatellite; transforming the one or more spatial components of the correction from a first coordinate system to a second coordinate system utilizing a processor of the mobile station, the correction represented in the first coordinate system having ahigher accuracy in one spatial dimension than in other spatial dimensions; and applying the correction to first orbit data stored at the mobile station data to estimate the more precise orbit data for the satellite.

19. The method of claim 18 wherein the first coordinate system includes three orthogonal axes.

20. The method of claim 18 wherein the first coordinate system includes non-orthogonal axes.

21. The method of claim 18 wherein the first coordinate system includes a radial axis, the radial axis being parallel to or coinciding with a line that connects a reference location to an estimated position of the satellite.

22. The method of claim 21 wherein the reference location is a center of the earth.

23. The method of claim 21 wherein the reference location is an estimated location of the mobile station.

24. The method of claim 18 wherein the correction is represented by coefficients of one or more polynomials for each of the spatial dimensions.

25. A method, comprising: deriving first orbit data of a satellite at a mobile station from ephemeris information received from the satellite; receiving correction data to the first orbit data of the satellite at the mobile station, whereinthe correction data comprises one or more spatial components and further comprises one or more clock correction parameters representing an approximate difference between a clock timing of the first orbit data and a predicted clock bias, and wherein thecorrection data is represented by one or more coefficients to be applied to the first orbit data to estimate more precise orbit data for the satellite; converting the one or more spatial components of the correction data from a first coordinate systemto a second coordinate system utilizing a processor of the mobile station, wherein the first coordinate system is chosen to smooth variation of the correction over time; and applying the correction data to the first orbit data utilizing the processor ofthe mobile station to estimate the more precise orbit data for the satellite.

26. The method of claim 25 further comprising: determining a position and timing of the satellite based on the correction data.

27. The method of claim 25 wherein said receiving the correction data comprises: receiving a coefficient sequence of one or more polynomials for at least one axis of the first coordinate system; and evaluating the one or more polynomials usingthe coefficient sequence and a time of applicability to obtain the correction data utilizing the processor of the mobile station.

28. The method of claim 25 wherein the first coordinate system comprises one or more axes that move with the satellite.

29. The method of claim 28 wherein the first coordinate system includes a radial axis, the radial axis being parallel to or coinciding with a line that connects a reference location to an estimated position of the satellite.

30. The method of claim 25 wherein the first coordinate system further includes a cross-track axis perpendicular to the radial axis and a direction of a satellite motion.

31. The method of claim 25 further comprising: using a location of the mobile station as a reference location for the first coordinate system; and receiving coefficients of one or more polynomials at the mobile station, the coefficientsrepresenting one-dimensional data that includes a spatial dimension combined with the one or more clock correction parameters.

32. The method of claim 25 further comprising: using a center of the earth as a reference location for the first coordinate system; and receiving coefficients of one or more polynomials at the mobile station, the coefficients representingfour-dimension data that includes three spatial dimensions of the first coordinate system and a time dimension for the one or more clock correction parameters.

33. The method of claim 25 wherein the correction data is represented in the first coordinate system with a higher accuracy in one spatial dimension than in other spatial dimensions.

34. The method of claim 25 further comprising: receiving a reference time from one or more of: a network time server, a location assistance server, a packet switched data network, or GPS data received from a reference receiver.

35. A server system, comprising: a correction unit configured to compute a correction between first orbit data of a satellite and second orbit data of the satellite, wherein the second orbit data is more precise than the first orbit data, thecorrection unit further to represent spatial components of the computed correction using a coordinate system having axes that move with the satellite, wherein the computed correction further comprises one or more clock correction parameters representingan approximate difference between a clock timing of the first orbit data and a predicted clock bias, and wherein the computed correction is represented by one or more coefficients to be applied to first orbit data for the satellite stored at a mobilestation to estimate more precise orbit data for the satellite; and a transmitter interface coupled to the correction unit and configured to transmit the computed correction to the mobile station to enable the mobile station to estimate the more preciseorbit data for the satellite by applying the computed correction to the first orbit data stored at the mobile station.

36. The server system of claim 35 further comprising: an approximation unit to approximate the correction in the coordinate system to reduce the number of bits necessary for transmission to the mobile station.

37. The server system of claim 36 wherein the approximation unit uses coefficients of one or more polynomials to approximate the correction.

38. The server system of claim 36 wherein the server system is coupled to data storage to store the approximated correction for use by the mobile station.

39. The server system of claim 36 further comprising: the transmitter interface to transmit the approximated correction to the mobile station via a network.

40. The server system of claim 36 further comprising: the transmitter interface to broadcast the approximated correction to one or more receiving devices including the mobile station.

41. The server system of claim 35 wherein the coordinate system comprises a radial axis parallel to or coinciding with a line that connects a reference location to an estimated position of the satellite.

42. The server system of claim 35 wherein the correction unit comprises logic to compute the one or more clock correction parameters for the satellite.

43. The server system of claim 35 further comprising: a receiver interface to receive a reference time from a time server; and the transmitter interface to transmit the reference time with an estimate of satellite positions to the mobilestation.

44. An article, comprising: a non-transitory storage medium having stored thereon instructions executable by a processor of a server to: compute a correction between first orbit data of a satellite and second orbit data of the satellite,wherein the second orbit data is more precise than the first orbit data; and transform spatial components of the computed correction from a first coordinate system to a second coordinate system such that the computed correction in the second coordinatesystem has substantially smooth variation over time, wherein the computed correction further comprises one or more clock correction parameters representing an approximate difference between a clock timing of the first orbit data and a predicted clockbias, and wherein the computed correction is represented by one or more coefficients to be applied to first orbit data for the satellite stored at a mobile station to estimate more precise orbit data for the satellite; and direct a transmitter interfaceof the server to transmit the computed correction encoded in the second coordinate system from the server to the mobile station to enable the mobile station to estimate the more precise orbit data for the satellite by applying the computed correction tothe first orbit data stored at the mobile station.

45. The article of claim 44, wherein the storage medium has stored thereon further instructions executable by the processor to: interpolate the correction in the second coordinate system using one or more polynomials with truncated terms toreduce the number of bits necessary for transmission to the mobile station.

46. The article of claim 44, wherein the second coordinate system comprises a radial axis parallel to or coinciding with a line that connects a reference location to an estimated position of the satellite, and a cross-track axis perpendicularto the radial axis and a direction of a satellite motion.

47. The article of claim 44, wherein the storage medium has stored thereon further instructions executable by the processor to: approximate the correction with more coefficients in at least one spatial dimension than other spatial dimensions.

48. The article of claim 44, wherein the storage medium has stored thereon further instruction executable by the processor to: compute the one or more clock correction parameters.

49. The article of claim 44, wherein the storage medium has stored thereon further instructions executable by the processor to: direct a receiver interface to receive a reference time from a time server; and direct a transmitter interface totransmit the reference time with an estimate of satellite positions to the mobile station.

50. A mobile station, comprising: a receiver interface configured to receive an input from a location server; an evaluation unit coupled to the receiver interface and configured to compute correction data to first orbit data of a satellitebased on the input from the location server, wherein the correction data comprises one or more spatial components and also comprises one or more clock correction parameters representing an approximate difference between a clock timing of the first orbitdata and a predicted clock bias, and wherein the correction data is represented by one or more coefficients to be applied to the first orbit data of the satellite stored at the mobile station to estimate more precise orbit data for the satellite; aconversion unit coupled to the evaluation unit and configured to convert the one or more spatial components of the correction data from a first coordinate system to a second coordinate system, the first coordinate system chosen to smooth variation of thecorrection data over time; and a reconstruction unit coupled to the conversion unit and configured to apply the correction data to the first orbit data to estimate the more precise orbit data for the satellite.

51. The mobile station of claim 50 wherein the axes of the first coordinate system includes a radial axis, the radial axis being parallel to or coinciding with a line that connects a reference location to an estimated position of the satellite.

52. The mobile station of claim 50, the reconstruction unit to generate substantially corrected orbit data to estimate a position and a timing of the satellite.

53. The mobile station of claim 50, wherein the input from the location server comprises one or more coefficients of one or more-polynomials for at least one axis of the coordinate system.

54. The mobile station of claim 53, wherein the evaluation unit comprises logic to evaluate the one or more polynomials using the one or more coefficients and a time of applicability to obtain the correction data.

55. The mobile station of claim 50, the receiver interface to receive the input from the location server via file transfer from data storage.

56. The mobile station of claim 50, the receiver interface to receive the input from the location server by receiving a message transmitted from a server.

57. The mobile station of claim 50 wherein the correction data is represented in the first coordinate system with higher accuracy in one spatial dimension than in other spatial dimensions.

58. An article, comprising a non-transitory storage medium having stored thereon instructions executable by a processor of a mobile station to: convert one or more spatial components of satellite orbital correction data from a first coordinatesystem to a second coordinate system, the first coordinate system chosen to smooth variation of the satellite orbital correction data over time, wherein the satellite orbital correction data further comprises one or more clock correction parametersrepresenting an approximate difference between a clock timing of a first orbit data and a predicted clock bias, and wherein the satellite orbital correction data is represented by one or more coefficients to be applied to the first orbit data for thesatellite stored at the mobile station to estimate more precise orbit data for the satellite; and apply the satellite orbital correction data to the first orbit data for the satellite to estimate the more precise orbit data for the satellite.

59. The article of claim 58, wherein the storage medium has stored therein further instructions executable by the processor to: determine a position and a timing of the satellite based on the correction data.

60. The article of claim 58, wherein the first coordinate system includes a radial axis parallel to or coinciding with a line that connects a reference location to an estimated position of the satellite, and a cross-track axis perpendicular tothe radial axis and a direction of a satellite motion.

61. The article of claim 58, wherein the correction data is represented in the first coordinate system with higher accuracy in one spatial dimension than in other spatial dimensions.

62. The article of claim 58, wherein the storage medium has stored thereon further instructions executable by the processor to: receive one or more coefficients of one or more polynomials for at least one axis of the coordinate system; andevaluate the one or more polynomials using the one or more coefficients and a time of applicability.

63. The method of claim 3, wherein the one or more polynomials comprise one or more of Hermite or Legendre polynomials.

64. The method of claim 13, wherein the one or more coefficients comprise one or more coefficients for one or more of Hermite or Legendre polynomials.

65. The method of claim 24, wherein the one or more polynomials comprise one or more of Hermite or Legendre polynomials.

66. The method of claim 25, wherein the one or more coefficients comprise one or more coefficients of one or more of Hermite or Legendre polynomials.

67. The system of claim 37, wherein the one or more polynomials comprise one or more of Hermite or Legendre polynomials.

68. The article of claim 47, wherein the storage medium has stored thereon further instructions executable by the processor to: approximate the correction with more coefficients in at least one spatial dimension than other spatial dimensions atleast in part by representing the correction by one or more polynomials and using coefficients of the one or more polynomials as the approximated correction.

69. The article of claim 68, wherein the one or more polynomials comprise one or more of Hermite or Legendre polynomials.

70. The mobile station of claim 50, wherein the one or more coefficients comprise one or more coefficients of one or more of Hermite or Legendre polynomials.

71. The article of claim 62, wherein the polynomials comprise one or more of Hermite or Legendre polynomials.

Description:

BACKGROUND

1. Field

The present invention relates generally to a satellite positioning system (SPS), and more particularly, to assisting a mobile station to locate a satellite using an efficient messaging format containing extended SPS orbit correction information.

2. Background Information

A satellite positioning system (SPS) receiver normally determines its position by computing times of arrival of signals transmitted simultaneously from multiple satellites. These satellites transmit, as part of their messages, both satellitepositioning data and satellite clock timing data. The satellite positions and clock timing typically are represented by almanac or ephemeris data. The ephemeris data provides an extremely accurate estimate (.about.1 meter error) of satellite positionsand clock bias. However, the process of searching for and acquiring satellite signals, reading the ephemeris data transmitted by the satellites, and computing the location of the receiver from this data is time consuming, often requiring severalminutes. In many cases, this lengthy processing time is unacceptable and, furthermore, greatly limits battery life in miniaturized portable applications.

For example, Global Positioning Systems (GPS) determine position based on the measurement of the times of arrival at a GPS receiver antenna of the GPS signals broadcast from orbiting satellites. As stated, one disadvantage of such a system isthe relatively long time needed to perform signal acquisition under certain conditions. Satellite signals cannot be tracked until they have first been located by searching in a two-dimensional search "space", whose dimensions are code-phase delay andobserved Doppler frequency shift. The process of an SPS receiver searching for, acquiring, and demodulating satellite signals is sometimes referred to as a "standalone" mode of operation, which can be contrasted with an "assisted" mode of operation.

In order to reduce the delay associated with a stand-alone mode of operation, information may be provided to aid an SPS or GPS receiver in acquiring a particular signal. Such assistance information permits a receiver to narrow the search spacethat must be searched in order to locate a signal, by providing bounds on the code and frequency dimensions. A system that employs a GPS receiver augmented with externally sourced GPS assistance data is commonly referred to as an "assisted globalpositioning system" (AGPS).

One example of an AGPS system includes a wireless mobile station (MS) (such as a cellular telephone) having, or in communication with, a GPS receiver, the MS in communication with one or more base stations (BSs), also referred to as basetransmitting stations (BTSs) or node Bs, of a wireless communication network, which in turn communicate with one or more location assistance servers, sometimes referred to as Position Determination Entities (PDEs), Serving Mobile Location Centers(SMLCs), or the like, depending upon the communication air interface protocol. Another example of an AGPS system includes a MS or laptop, having, or in communication with, a GPS receiver, the MS or laptop capable of communication with a communicationnetwork, such as but not limited to, the Internet, through which the device ultimately communicates with a location assistance server.

The location assistance server derives GPS assistance information from one or more GPS reference receivers. The location assistance server also has access to a means of determining the approximate mobile station position. The locationassistance server maintains a GPS database that contains reference time, satellite orbit almanac and ephemeris information, ionosphere information, and satellite working condition ("health") information. The location assistance server also computes theassistance information customized for the approximate mobile station position.

Position location for a MS in an AGPS system can be determined at the MS (sometimes referred to as MS-based positioning mode) with assistance from a location assistance server. During MS-based positioning mode, when a GPS engine requiresupdated aiding data such as ephemeris data, almanac data regarding the location of satellites or base stations, timing information for the base stations and/or satellites, or seed position (such as, but not limited to that determined by advanced forwardlink trilateration (AFLT)), and so on, the next position fix will result in the mobile station contacting the communication network for data, thereby taxing the network and using power resources of the MS. Position location for a MS in an AGPS systemcan alternatively be determined at the location assistance server and transmitted back to the MS using information acquired by the MS (sometimes referred to as MS-assisted positioning mode). Satellite orbits in a GPS can be modeled as modifiedelliptical orbits with correction terms to account for various perturbations. The relative short-term ephemeris data provides a very accurate representation of the orbit of the satellite. For example, bit 17 in word 10 of GPS subframe 2 is a "fitinterval" flag which indicates the curve fit interval used by the GPS control segment in determining the ephemeris parameters with "0" indicating a 4-hour fit and "1" indicating a "greater than 4 hours" fit. Furthermore, the extended navigation mode ofthe Block II/IIA GPS satellites guarantees the transmission of correct ephemeris parameters for 14 days to support short-term extended operation. During normal operation, the control segment provides daily uploads of the navigation (orbital) data toeach satellite to support a positioning accuracy of 16 meters spherical error probable (SEP).

As described, a location assistance server has accurate orbital information available. Each ephemeris and clock correction model uploaded by the location assistance server usually covers a 4-hour time span with great accuracy. To cover alonger period of time, such as a 24-hour period, the location assistance server could send the device multiple 4-hour ephemeris and clock correction models for each of the N satellites in the constellation. However, it would require a large amount ofoctets to describe the satellite positions and clock errors for full constellation of satellites (e.g. 27 satellites). These lengthy messages would contribute to the lengthy processing time and are, therefore, unacceptable to most mobile deviceapplications. This would also tax the communication network.

In addition to ephemeris data, satellites in a SPS also transmit almanac data that can be used to determine satellite positions and clock bias. The almanac data provides a truncated reduced-precision (coarse) set of the ephemeris parameters aswell as coarse clock correction parameters. Consequently, raw satellite positions derived from the almanac data tend to be much less accurate (.about.1 kilometer) than those derived from the detailed ephemeris data (.about.1 meter). It should be notedthat in general, the satellite orbits can be represented either by a coarse set (e.g., the almanac) or a precise set (e.g., the ephemeris) of orbital and satellite clock parameters.

A system and method is needed to provide extended orbital data to an SPS receiver to reduce the frequency of almanac and/or ephemeris downloads required, either from the satellite directly, or from a location assistance server.

SUMMARY OF THE DESCRIPTION

A method and system for assisting mobile stations to locate satellites using an efficient messaging format is described. A server computes a correction between coarse orbit data of a satellite and precise orbit data of the satellite. Acoordinate system is chosen such that variation of the correction is substantially smooth over time. The server further approximates the correction with mathematical functions to reduce the number of bits necessary for transmission to a mobile station. The mobile station, upon receiving the coefficients, evaluates the mathematical functions using the coefficients and a time of applicability (e.g., the current time), converts the evaluated result to a standard coordinate system, and applies theconversion result to the coarse orbit data to obtain the precise orbit data.

The method and system described herein provides a unique way of solving problems related to long-term satellite orbit data. Advantages of the method and system include smaller file size and smaller messages sent to a mobile station, as well asbetter accuracy in satellite positions and timing. A hybrid mode of operation is also introduced to enhance predictions of satellite positions and timing.

Other features of the present invention will be apparent from the accompanying drawings and from the detailed description which follows.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to "an" or "one" embodimentin this disclosure are not necessarily to the same embodiment, and such references mean at least one.

FIG. 1 is a diagram showing an example of a communication system including a server to assist a mobile station to locate a satellite.

FIG. 2 is a diagram showing a coordinate system according to an aspect of the invention.

FIG. 3 is a flowchart showing an example of a method performed by a mobile station.

FIG. 4 is a flowchart showing an example of a method performed by a server.

FIG. 5 is a flowchart showing further details of the method of FIG. 4.

FIG. 6A is a block diagram showing an example of components in a location assistance server.

FIG. 6B is a block diagram showing an example of components in a mobile station.

DETAILED DESCRIPTION

A method and system for assisting mobile stations to determine satellite positions and satellite clock errors is described. The satellite positions and satellite clock errors are determined using an efficient messaging format containingextended SPS orbit correction information. The method and system described herein provides a unique way of solving problems related to long-term satellite orbit data. In one aspect of the invention, the method reduces file size and messages sent to amobile station. The method also improves accuracy in the determination of satellite positions and timing at the mobile station. In another aspect of the invention, a hybrid mode of operation is introduced to enhance predictions of satellite positionsand timing.

The number of bits required for supporting extended orbit and clock corrections is reduced significantly by using correction data calculated at a location assistance server and coarse orbit data received in a mobile station. The correction datais the difference between the satellite positions computed from a coarse representation of satellite orbit (for example, but not limited to, almanac) and those positions computed from predicted precise orbital data (e.g. orbital data which is of anextended duration in time--longer than that which can be obtained from the satellite vehicle, such as 6 hours or more). The correction data also includes the difference between the clock corrections computed from the coarse orbit data and those computedfrom predicted satellite clock data. These corrections generally vary in time and are unique to each satellite. However, with proper choice of a coordinate system, the variation can be relatively smooth. The corrections are then characterized by amathematical function (for example, but not limited to, a polynomial) in time, with only the coefficients being provided to the mobile station by the location assistance server.

As used herein, a mobile station (MS) refers to a device such as a cellular or other wireless communication device, personal communication system (PCS) device, personal navigation device, laptop or other suitable mobile device capable ofreceiving and processing SPS signals. The term "mobile station" is also intended to include devices which communicate with a personal navigation device (PND), such as by short-range wireless, infrared, wireline connection, or otherconnection--regardless of whether satellite signal reception, assistance data reception, and/or position-related processing occurs at the device or at the PND. Also, "mobile station" is intended to include all devices, including wireless communicationdevices, computers, laptops, etc. which are capable of communication with a server, such as via the Internet, WiFi, or other network, and regardless of whether satellite signal reception, assistance data reception, and/or position-related processingoccurs at the device, at a server, or at another device associated with the network. Any operable combination of the above are also considered a "mobile station."

The term "coarse orbit data" herein refers to a coarse estimate of satellite position and clock data transmitted from a satellite, e.g., almanac. The term "real-time orbit data" refers to a precise representation of satellite positions andtiming transmitted from a satellite, e.g., ephemeris. The term "predicted orbit data" or "precise orbit data" refers to a precise estimate of satellite position and timing that has a relatively extended period of validity compared to the real-timeprecise orbital data. The predicted orbit data is available at the location assistance server. However, transmitting the predicted orbit data to a mobile station generally uses a significant amount of bandwidth. Thus, transmitting the correction data,or an approximation thereof, often greatly increases the transmission efficiency.

FIG. 1 is a block diagram of a communication system 100 according to an aspect of the present invention. System 100 includes a location assistance server 130 communicatively coupled to one or more MSs 120. Location assistance server 130receives coarse orbit data, as well as precise orbit data and/or predicted orbital parameter files containing predicted orbit data. In one scenario, location assistance server 130 receives predicted orbit data via a network 162 from a predicted orbitdata provider 110. Network 162 can be a network that supports Internet Protocol (IP) connections (e.g., the Internet). Location assistance server 130 may include an interface, e.g., secure file transfer program (SFTP), for securely transferring thepredicted orbit data from predicted orbit data provider 110.

In one aspect, predicted orbit data provider 110 generates predicted orbit data every several hours (e.g., 4 hours) to produce orbital data which is valid for an extended duration in time (e.g., 6 hours or more). Location assistance server 130checks for new data at a shorter interval (e.g., every hour). Predicted orbit data may also include 3-D uncertainty values for predicted satellite coordinates, uncertainty of predicted satellite clock corrections, as well as an indication of predictedoutages. Based on the uncertainty and outage information, a user range error (URE) may be computed by location assistance server 130 and provided to MS 120.

For the purpose of simplifying the discussion herein, the term "correction data" 140 refers to satellite orbital corrections that can be transmitted point-to-point, transferred in files, broadcast, or sent from one place to another by any meansof data communications. The messages generated by location assistance server 130 have an efficient messaging format that allows MS 120 to determine the satellite positions and clock timing with a small number of bits over an extended time period. Themessages provide MS 120 the information for correcting coarse orbit data so that the corrected satellite position is accurate to within a few meters.

In another aspect, location assistance server 130 may also provide estimated accuracy (User Range Error (URE)), ionospheric correction model, universal coordinated time (UTC) model, and satellite health/usability information to MS 120. This isto ensure the integrity of the satellite data, and to allow mobile operation without the need to receive and decode the data transmitted by the satellites over the air. This also ensures that MS 120 uses the coarse orbit data which is identical to thatused by location assistance server 130.

It should be noted that the system described above is shown for illustration purposes only and other configurations may exist. For example, networks 162, 164, and 166 may alternatively be point-to-point connections, local area networks, widearea networks, broadcast networks, any suitable wired or wireless networks, computers or computer networks or combinations thereof that support data communication or file transfers.

One skilled in the art will see that the coarse orbit data which provides a coarse estimate of the satellite positions encompasses a broad range of forms. In the following description, a recent copy of the GPS broadcast almanac is suggested foruse as the coarse estimate of the satellite positions and clock timing for ease in understanding the inventive concept. However, all of the following are illustrative of alternative coarse orbit data: an earlier copy of GPS broadcast ephemeris; recentcopies of broadcast Galileo or GLONASS almanac or ephemeris; a non-broadcast coarse model of satellite positions which follows the same form as GPS, Galileo, or GLONASS almanac or ephemeris; any subset or enhancement of the Keplerian parameters used inGPS, Galileo, and GLONASS almanac and ephemeris formats; any non-Keplerian representations of satellite orbits; and other predicted orbit data which has degraded over time. It will also be understood that corresponding information pertaining to othersatellite navigation systems can also be applied within the scope of the disclosed methodology. The present invention includes any and all methods of describing a coarse orbit. One skilled in the art will appreciate that the methodology applies nomatter what form that coarse estimate takes.

In some scenarios, the coarse orbit data may be supplied by location assistance server 130 to MS 120. In addition to transmitting the coarse estimate of the satellite positions to MS 120, location assistance server 130 has the ability toinclude a reference time in the assistance message to the mobile station. In this aspect of the invention, location assistance server 130 obtains the reference time from a network time server, or from GPS data received from individual referencereceivers (e.g., Wide Area Reference Network or Global Reference Network). This reference time information can be appended to the message that is transmitted to MS 120 which contains the coarse estimate of satellite positions. Location assistanceserver 130 may also implement algorithms which can improve the timing accuracy of the reference time provided by the network time server and transmit this more accurate time to MS 120.

It is to be noted that MS 120 can directly obtain the reference time, independent of location assistance server 130, from a packet switched data network that may or may not be synchronized to GPS time (e.g., a network time server or a CDMAcommunication network). In this manner, MS 120 obtains an estimate of a global time reference, for example, GPS time, Universal Coordinated Time (UTC) time, (WWO) time, etc.

FIG. 2 shows an example of a coordinate system based on which correction data 140 is computed. Track 21 represents an actual satellite orbit track, which can be substantially estimated by precise orbit predictions. Track 22 represents an orbittrack estimated by coarse orbit data, such as, but not limited to, the broadcast almanac. At any instant in time, there is a spatial difference between where the broadcast almanac says the satellite will be located and where the precise orbitpredictions say it will be located. That difference can be encoded in a coordinate system 23, which is a coordinate system having an origin and axes that move with the body frame of the satellite. Expressed in orthogonal coordinate system 23, the"error signal," which is the difference between the precisely predicted satellite position and almanac-based satellite position, becomes substantially smooth curves. The variation of the error signal is substantially smooth in time such that there is nodiscontinuity or sharp turns in the error signal when represented as a function of time. In the embodiment of FIG. 1, the error signal constitutes correction data 140. The underlying technique of expressing the error signal in the chosen coordinatesystem effectively minimizes the order of the polynomials required to express these "error signals" to any given accuracy.

In one aspect, correction data 140 consists of four dimensions of information: three spatial dimensions (represented by the three axes of the coordinate system) to describe the satellite position error, and the time dimension (the 4.sup.thdimension), which describes the clock correction of the satellite clock.

The three axes of coordinate system 23 are: Ra, which is a unit vector pointing from the coarse satellite position (e.g., satellite position determined from the broadcast almanac) to a reference location. As the reference location in typicalsituations is the center of the earth, this axis is interpreted as "radial." A skilled person in the art will appreciate that the reference location can be any location (e.g., inside, above, on or near the surface of the earth) that can be determinedwith reasonable accuracy.

Another axis is Xt: "cross track," which is defined as Xt=Ra.times.Vel/|Ra.times.Vel|. Vel is the almanac-based satellite velocity vector and "x" indicates a vector cross product. The Xt vector is, therefore, perpendicular to both the radialvector Ra and the direction of motion of the satellite.

The third axis is At: "along track," which is defined as At=Xt.times.Ra. The At vector is almost parallel to the satellite's velocity vector (Vel), but not quite. This is because the satellite's velocity vector is not exactly orthogonal to Radue to orbital eccentricity (e.g., satellite orbit is elliptical by nature and not a circle). As the radius of the satellite orbit increases and decreases with time, satellite velocity vector Vel, in general, has a component along the radial directionRa.

The three axes of coordinate system 23 defined above are a function of time since they depend on the instantaneous position of the satellite along its orbit. Among other motions, as the satellite orbits the earth, the radial vector Ra and alongtrack vector At rotate through a full 360.degree. when expressed in an Earth-Centered, Earth-Fixed (ECEF) XYZ coordinate system 24. Note that these axes are computed using the almanac-based estimate of satellite position. This allows the axes ofcoordinate system 23 to be calculated by location assistance server 130 before the almanac corrections are calculated. In the example of coordinate system 23, the order in which the axes are computed is essential for proper orientation of the coordinatesystem. Therefore, the radial vector Ra is computed first, cross track vector Xt is computed second and the along track vector At is computed last.

The axes orientation defined above are different for each satellite. One could write the unit vectors as Ra(PRN,t), At(PRN,t), Xt(PRN,t), and to make their dependence on satellite pseudorandom number (PRN) and t, which respectively index thesatellites and the current time explicitly. However, for simplicity of the notations, these dependencies are left implicit in the following discussions.

Other coordinate systems may be employed for coarse orbit data corrections as well, such as, but not limited to, a radial/cross track/velocity coordinate system (different from the (Ra, At, Xt) described above); a 3-D ECEF XYZ coordinates systemfor differences, or arrange/elevation/azimuth (polar) coordinate system.

One skilled in the art will see that the (Ra, At, Xt) coordinate system (following the conventional left-hand rule) is illustrative and one preferred approach, but that a broad range of other axis systems is encompassed by the present invention. The salient feature of these axis systems is that they tend to have two spatial dimensions with significantly relaxed accuracy requirements compared to the third. In the example of (Ra, At, Xt,) coordinate system 23, At and Xt typically have a morerelaxed accuracy requirement (e.g., 1/7) compared to Ra. The coordinate system can be orthogonal or non-orthogonal. A non-orthogonal coordinate system, for the purpose of coarse orbit data corrections, can be any axis system where one of the axesalways makes a relatively shallow angle with respect to the Ra axis, even if it has a different origin than (Ra, At, Xt) coordinate system 23. This would include, for example, a coordinate system in which one axis is the Ra, but the other two axes areazimuth and elevation of the satellites, as well as any other choices for the other two axes.

Additionally, any axis system where some axis is parallel to a line drawn from some point near an estimate of the satellite location, to some point near the location of the receiver on the earth, falls within the scope of the present invention. Although FIG. 2 has illustrated the Ra axis pointing to the center of the earth, an axis which points towards any point near the receiver on the ground, or any other determinable reference location, falls within the scope of the present invention.

Further, the location of the origin of (Ra, At, Xt) coordinate system 23 can be modified within the scope of the invention. An origin at the satellite location is a matter of mathematical convenience. In particular, an origin defined to be atthe actual or precisely predicted satellite location (as opposed to at an estimate of the satellite location as in (Ra, At, Xt) coordinate system 23) is within the scope of the invention.

Over a predetermined period of time (e.g., a 6-hour period), each of the three spatial dimensions of the correction data can be expressed as a function of time in the chosen coordinate system, such as (Ra, At, Xt) coordinate system 23. Theoretically, the correction data can be precisely represented by polynomials of an infinite order. However, in practice, the correction data can be approximated by polynomials of relatively low order, e.g., 6.sup.th, 7.sup.th, or other lower order. Thus, a large number of the polynomial terms and associated coefficients are truncated; only a small fractional portion of the polynomial terms and associated coefficients are used as an approximate to the correction data. In addition to spatialcorrections, a low order (e.g., a first order or any suitable low order) polynomial may be used to describe the clock correction parameters that represent an approximation of the difference between the clock timing in the coarse obit data and thepredicted clock bias. Other accurate clock predictions that are available at location assistance server 130 may also be used as the predicted clock bias, such as the clock information in real-time orbit data if available.

One skilled in the art will see that the present invention comprises expanding the correction data in a series of functions, with the possibility of increasing accuracy in the expansion as more functions are used. It is not necessary that theseries of functions be increasing powers of x so that the correction data is represented as a polynomial. One skilled in the art will see that the data corrections could also be expanded across other series of functions, including harmonics, Hermitepolynomials, Legendre polynomials, cosine and sine functions (Fourier expansion), and the coefficients of Keplerian orbital functions. This list is illustrative, not exhaustive. Expanding the correction data in any set of functions is within the scopeof the invention.

The four spatial and temporal sets of polynomial coefficients are sent to MS 120, along with information to associate these coefficients with a particular satellite, a particular time interval, and a particular copy of coarse orbit data. MS 120receives a new copy of coarse orbit data at a predetermined interval (e.g., about once per week or other suitable time intervals). Location assistance server 130 calculates the correction data using the same version of the coarse orbit data as theversion to be used by MS 120. Thus, MS 120 can either use coarse orbit data that it has acquired or that which is transmitted by location assistance server 130, so long as the correction data is applied to the corresponding coarse orbit data thatlocation assistance server 130 used in determining the corrections.

FIG. 3 shows an example of the operations performed by MS 120. Note that processes as shown in FIG. 3 may be performed by processing logic, which may include software, hardware, or a combination of both. Once MS 120 has the polynomialcoefficients and time of applicability, the mobile can reconstruct accurate predictions of satellite position and clock bias. For any particular time during the period of applicability of the coefficients, MS 120 can find the satellite position andclock bias within a pre-determined accuracy range.

At block 31, MS 120 receives coarse orbit data (e.g. almanac data) from the satellites in view or from the location assistance server 130. It will often be preferable and more efficient for MS 120 to receive the coarse orbit data from locationassistance server 130 as it can take many minutes to download such data from satellites. Location assistance server 130 may provide the coarse orbit data in the message/file to MS 120 together with the correction data. It is understood that the"correction data" referred to at MS 120 may be an approximation to the correction computed at location assistance server 130. At block 32, MS 120 generates satellite positions in the ECEF coordinates using its copy of the coarse orbit data. Thesatellite positions computed from the coarse orbit data and represented in a standard coordinate system, such as the ECEF coordinates, are referred to as Pos.sub.Alm (here, the subscript "alm," which stands for "almanac," is used as an example of thecoarse orbit data). At block 33, MS 120 receives coefficients of one or more series of mathematical functions from location assistance server 130. At block 34, MS 120 reconstructs the spatial correction data to the coarse orbit data for a time ofapplicability (e.g., the current time) by evaluating the mathematical functions for the current time using the coefficients it has received. At block 35, MS 120 converts the spatial corrections found in block 34 from a coordinate system (e.g., (Ra, At,Xt) coordinate system 23 of FIG. 2) to the ECEF coordinates. The converted corrections are referred to as Pos.sub.Cor. Subsequently, at block 36, MS 120 computes satellite locations (Pos.sub.Sat) in the ECEF coordinates by calculatingPos.sub.Sat=POS.sub.Alm+Pos.sub.Cor. At block 37, MS 120 performs the same operations in blocks 34 and 36 to determine an accurate clock bias. It is understood that the mobile operations may occur in a different order from the descriptions above, andadditional operations may also be performed. For example, at block 36, instead of calculating Pos.sub.Sat=Pos.sub.Alm+Pos.sub.Cor, MS 120 may choose to apply Pos.sub.Cor in the range space R.sub.Sat=R.sub.Alm+R.sub.Cor, where R represents the computeddistance from MS 120 to the satellite.

FIG. 4 shows an example of the operations performed by location assistance server 130. Note that processes as shown in FIG. 4 may be performed by processing logic, which may include software, hardware, or a combination of both. Locationassistance server 130 calculates the polynomial coefficients that describe the correction data in the following operations.

At block 410, location assistance server 130 obtains precise orbit data for satellite orbits and clock bias, e.g., from satellite broadcast signals or from an external data provider. The precise orbital data is valid for a pre-determinedvalidity period. At block 420, location assistance server 130 obtains the coarse orbit data in a format supported by the particular satellite navigation system. At block 430, location assistance server 130 determines whether to divide the validityperiod into multiple N-hour fit intervals, or use the entire validity period as one fit interval. A fit interval herein refers to a time period for which polynomial coefficients are computed to describe the correction data of that time period. Anexample of a fit interval is 4-6 hours, although other time periods may also be used. If location assistance server 130 has the precise orbit data with an extended validity period, the location assistance server may divide the precise orbit data into aplurality of fit intervals to improve the accuracy of the fits. At block 440, for each N-hour fit interval, location assistance server 130 performs the operations described below in FIG. 5 to compute correction data and the approximation thereof. Atblock 450, location assistance server 130 transmits the approximation of the correction data to MS 120.

Referring to FIG. 5, at block 510, location assistance server 130 uses the precise orbit data to form a time series of satellite positions in the ECEF coordinates. These satellite positions are defined as Pos.sub.Sat. At block 512, locationassistance server 130 uses the coarse orbit data to compute the satellite positions in the ECEF coordinates. These satellite positions are defined as Pos.sub.Alm. At block 514, location assistance server 130 calculates the correction data vectors(Pos.sub.Cor) in the ECEF coordinates by computing Pos.sub.Cor=Pos.sub.Sat-Pos.sub.Alm. At block 516, location assistance server 130 uses the satellite position Pos.sub.Sat to calculate Ra, Xt, and At unit vectors in the orthogonal coordinate system 23,or other coordinate systems as described above. At block 518, the time series of the component of correction along the radial axis Ra is obtained by calculating the dot product: Ra.sub.Cor=Pos.sub.CorRa. At block 520, the time series of the cross trackand along track corrections Xt.sub.Cor and At.sub.Cor are similarly calculated. At block 522, the correction data for the clock bias is calculated as CB.sub.Cor=CB.sub.Sat-CB.sub.Alm, where CB.sub.Sat and CB.sub.Alm are the clock corrections using theprecise clock model and the coarse estimate of the clock model, respectively.

At block 524, location assistance server 130 may scale and/or normalize the time axis of the polynomial interpolation to enhance the performance of the interpolation. Location assistance server 130 and MS 120 are expected to use the samescaling and/or normalization factors in order to properly reconstruct the correction data in the mobile software.

At block 526, location assistance server 130 finds polynomial coefficients for interpolating the radial, along track, and cross track corrections Ra.sub.Cor, At.sub.Cor, and Xt.sub.Cor. The polynomial coefficients (Ra.sub.0, Ra.sub.1, . . .Ra.sub.j) for Ra.sub.Cor are chosen such that Ra.sub.0f.sub.0(d)+Ra.sub.1f.sub.1(d)+ . . . +Ra.sub.jf.sub.j(d) is a good approximation to Ra.sub.Cor, where d is the correction data point, and f.sub.0, f.sub.1, . . . , f.sub.j are the interpolatingfunctions. The coefficients may be chosen so that the polynomial approximates Ra.sub.Cor with a minimum mean square error. Location assistance server 130 similarly finds polynomial coefficients for Xt.sub.Cor, and At.sub.Cor such that thesecoefficients Xt.sub.0, Xt.sub.1, Xt.sub.2 . . . Xt.sub.k, At.sub.0, At.sub.1, . . . , At.sub.m provide good approximations to Xt.sub.Cor, and At.sub.Cor. Finally, at block 530, location assistance server 130 finds the coefficients of the interpolatingfunctions for the clock bias correction CB.sub.Cor. It is understood that the number of coefficient terms for representing the corrections in each of the spatial and time dimensions may be not the same. More coefficients for a dimension generallycorrespond to a higher accuracy in the representation of the correction data in that dimension.

The operations of blocks 510-530 are repeated if there are multiple N-hour fit intervals for the validity period. The order of operations may differ from the descriptions above and additional operations may be included.

The correction data generated by location assistance server 130 of FIG. 1 may be global or local. When the location of MS 120 is completely unknown or the location cannot be estimated within an accuracy of a few hundred kilometers, locationassistance server 130 generates a global message for the MS. Global messages can be sent to mobile stations anywhere on Earth for producing accurate satellite positions. Local messages are briefer, but they are only accurate within a few hundredkilometers radius of some intended reference point on the surface of the Earth. Thus, the shorter local messages may be sent when the mobile position is known ahead of time to within a few hundred kilometers. When the location of the mobile station isunknown, global messages may be sent to the mobile station. The difference between a global message and a local message is described below.

A global message uses the center of the Earth as the reference location of the (Ra, At, Xt,) coordinate system. As almanac errors have four independent dimensions (three spatial dimensions and clock bias), the global message includes fourpolynomials, three to fit orthogonal spatial components of the satellite position error, and the fourth polynomial to describe a more accurate clock bias.

A local message uses a point on the Earth's surface as the reference location of the (Ra, At, Xt) coordinate system. Typically, location assistance server 130 uses an estimate of the mobile station's current location as the reference location(e.g., the location of a cellular tower with which the mobile is communicating). The local message contains a single polynomial fit to the correction. The one-dimensional correction includes both the correction to the spatial range to the satellite(also referred to as the pseudorange), as well as the correction for the clock bias. As only one polynomial is sent, the local message is significantly shorter than the global message.

The pseudorange correction is calculated for a reference location which ideally is as close to where the mobile station is actually located as possible. As long as the mobile is within about 100 km of the estimated reference location, thepositioning result is quite accurate. Accuracy degrades slowly as the mobile's true position diverges further than 100 km from the estimated reference location. The mobile can determine its positioning accuracy degradation by first calculating itslocation and then comparing that to the reference location of the correction data.

In another aspect, MS 120 of FIG. 1 may use a combination of orbit data to determine satellite positions and clocks. In some scenarios, MS 120 receives real-time orbit data (e.g. ephemeris) in addition to the correction data. For a singlesatellite, MS 120 may use real-time orbit data for one time period, corrected orbit data (which comprises the correction data applied to the coarse orbit data) for another time period, and a combination (e.g., a weighted average) of both for yet anothertime period. To determine its location from multiple satellites, MS 120 may use real-time orbit data for one satellite, corrected orbit data for another satellite, and a combination of both for yet another satellite. A skilled person will appreciatethat the various combinations described above are illustrative only. Any combination, in time or of different satellites, of real-time orbit data and corrected orbit data can be used by MS 120.

In one aspect, MS 120 may use real-time orbit data decoded from satellites whenever the real-time orbit data is available. Real-time orbit data is generally more accurate than the earlier predicted orbit data, which may gradually degrades overa period of time. Thus, the corrected orbit data, which approximates the predicted orbit data, also gradually degrade over time. Also, real-time orbit data may contain new information about the satellites not known at the time of predictions (e.g.satellite health and integrity information). However, real-time orbit data is sometimes not available to MS 120 due to lack of line of sight, shadowing, or other reception problems that prevents MS 120 from receiving satellite broadcasts. When thereal-time orbit data is not available, MS 120 may switch to the correction data, as described in FIGS. 2-5 above, for locating the satellites. Thus, MS 120 may utilize the corrected orbit data for a time period and the real-time orbit data for anothertime period, depending on the availability of the real-time orbit data. To determine its own position at any time instant, MS 120 may utilize the corrected orbit data of one or more satellites and the real-time orbit data of one or more othersatellites.

The preceding paragraph described a case when the corrected orbit data may be replaced with available real-time orbit data for the duration of validity of the real-time orbit data. For example, after the ephemeris is no longer valid (+/-2 hoursfrom Time of Ephemeris, i.e. TOE), MS 120 may switch back to the corrected orbit data. Alternatively, the real-time orbit data of an earlier time period can be used to improve the accuracy of the corrected orbit data. For example, MS 120 may usereal-time orbit data to determine the amount of adjustment applied to a future time period of the corrected orbit data, which can be used when the real-time orbit data is not available (or invalid). This is especially beneficial for satellite clocks,because clock timing is generally not as predictable as the satellite trajectory. In a simple case, the corrected satellite vehicle clocks can be evaluated against the real-time broadcast satellite clock parameters (e.g. from subframe 1 of GPSnavigation) to determine the amount of adjustment for the corrected clocks. The adjustment (for example, including differential offset and slope) can be applied to corrected clock information for use when the real-time clock is unavailable. In anenhanced case, the adjustment can be made to the entire corrected orbit data, including satellite positions in three spatial dimensions and satellite clocks.

Furthermore, real-time orbit data and predicted orbit data can be weighed according to their accuracy estimates. MS 120 may appropriately weigh the participating satellite measurements in the solution for its position and account for thedegraded accuracy of predicted data. The accuracy estimates for the real-time orbit data and the predicted orbit data are referred to as "error estimate of precise or short term predicted data" and "error estimate of long term predicted data,"respectively. For example, almanac contains an uncertainty estimate in the form of URE (computed or provided by location assistance server 13), and real-time ephemeris data contains an uncertainty estimate in the form of URA (User Accuracy Range, asprovided, for example, by GPS control segment). URA is usually a couple of meters, and the URE may be tens of meters after a couple of days. For example, both error estimates can be used as weights in a weighted least squares (WLS) model. The weightsmay be computed as: W.sub.(short term predicted orbit)=1/URA.sup.2, and W.sub.(long term predicted orbit)=1/URE.sup.2.

Specifically, satellite measurements with smaller satellite position errors (represented by URA in the above example) are weighted higher than satellite measurements with larger predicted satellite position errors (represented by URE in theabove example). Satellite measurements with respect to position, velocity, time solution, or any combination of position/velocity/time solution can be weighted. The weighted position/velocity/time solution can be computed from satellite measurements bya Weighted Least Squares model (WLS) or a Kalman filter, or some other linear, linearized or non-linear estimation method.

Furthermore, when MS 120 uses a mix of real-time and predicted orbit information from multiple satellites to determine its own location, an extra satellite measurement can be used to solve the predicted satellite clock error. This extrasatellite measurement can be the real-time orbit data of a satellite and can be used to estimate the predicted clock error of the same satellite. Alternatively, this extra satellite measurement can be the real-time orbit data of a first satellite andcan be used to estimate the predicted clock error of a second satellite. The predicted clock error can be removed from the corrected clock to improve the accuracy of the corrected clock computed at the mobile. This way the real-time orbit data andsatellite clock correction data can be used to effect a real-time adjustment of the predicted satellite clock information.

Since the predicted satellite clock degrades faster than the predicted satellite positions, the extra satellite measurement can be used together with the predicted satellite positions to compute the predicted satellite clock errors and makeadjustments to the predicted clock for future use. Similarly, if current real-time orbit data is available for at least one extra satellite in view, then this real-time data can be used together with this satellite's pseudorange and range-ratemeasurements to compute the predicted satellite clock error of another in-view satellite. For a 2-dimensional position estimate (some altitude knowledge is available), at least four in-view satellites would be needed to estimate the predicted satelliteclock error for one satellite. For a 3-dimensional position estimate, at least five in-view satellites would be needed to estimate the predicted satellite clock error for one satellite. Every extra satellite can be used to estimate yet anotherpredicted satellite clock error. In a 3-dimensional case (with 4 unknowns), for example, if measurements from 7 satellites are available, predicted satellite clock errors can be estimated for three satellites.

FIG. 6A shows an example of a block diagram of location assistance server 130 of FIG. 1. Location assistance server 130 includes a memory 604 and a processor 605. Location assistance server 130 also includes secure interface 61 for securelyreceiving the predicted orbit data from an external data provider, a receiver interface 62 for receiving broadcast data (e.g., almanac) as well as information transmitted over a network (e.g., predicted orbit data), and a transmitter interface 65 fortransmitting the coefficients to MS 120 for determination of the predicted satellite orbit data. Transmitter interface 65 may transmit the coefficients via wired or wireless networks, broadcast medium, or any suitable data transmission means.

In one scenario, location assistance server 130 may also include a correction unit 63 for computing the differences ("correction") between coarse orbit data and predicted orbit data. Location assistance server 130 may also include anapproximation unit 64 for computing an approximation of the correction using a coordinate system that is chosen such that variation of the correction is substantially smooth over time (e.g., (Ra, At, Xt) coordinate system 23 of FIG. 2). In one scenario,the approximation is computed by interpolating the correction data points using one or more low-order mathematical functions. An encoding unit 610 encodes the approximation for transmission to MS 120.

FIG. 6B provides an example of a block diagram of components of MS 120. MS 120 includes a memory 608 and a processor 609. MS 120 also includes a receiver interface 66 for receiving the coefficient sequences from location assistance server 130. Receiver interface 66 also receives coarse orbit data and/or real-time orbit data, e.g., almanac, ephemeris, and/or other satellite position and timing information, from satellite broadcasts, from location assistance server 130, or from other datasources. Receiver interface 66 may receive the coefficients via wired or wireless networks, broadcast medium, or any suitable data transmission means. MS 120 includes a decoding unit 620 to decode the coefficient sequences sent from location assistanceserver 130. In one scenario, MS 120 may also include an evaluating unit 602, a conversion unit 68 and a reconstruction unit 67. Evaluating unit 602 evaluates the mathematical functions using the coefficients and a time of applicability (e.g., thecurrent time). Conversion unit 68 converts the evaluated result from a coordinate system used by location assistance server 130 (e.g., (Ra, At, Xt) coordinate system 23 of FIG. 2) to the ECEF coordinate system. Reconstruction unit 67 then reconstructsthe predicted orbit data by applying the conversion result to the coarse orbit data.

The methodologies described herein may be implemented by various means depending upon the application. For example, the above components of location assistance server 130 and MS 120 may be implemented in hardware, firmware, software, or acombination thereof. For a hardware implementation, the processing units may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmablelogic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, or a combination thereof.

For a firmware and/or software implementation, the methodologies may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. Any machine-readable medium tangibly embodying instructionsmay be used in implementing the methodologies described herein. For example, referring back to FIGS. 6A and 6B, software codes may be stored in a memory (e.g., memory 604 of location assistance server 130 and memory 608 of MS 120) and executed by aprocessor (e.g., processor 605 of the location assistance server and processor 609 of MS 120). Memory may be implemented within the processor or external to the processor. As used herein the term "memory" refers to any type of long-term, short-term,volatile, nonvolatile, or other memory and is not to be limited to any particular type of memory or number of memories, or type of media upon which memory is stored.

The method and apparatus described herein may be used with various satellite positioning systems (SPS) or global navigation satellite system (GNSS), such as but not limited, to the United States Global Positioning System (GPS), the RussianGlonass system, the European Galileo system, any system that uses satellites from a combination of satellite systems, or any satellite system developed in the future. Furthermore, the disclosed method and apparatus may be used with positioningdetermination systems that utilize pseudolites or a combination of satellites and pseudolites. Pseudolites are ground-based transmitters that broadcast a PN code or other ranging code (similar to a GPS or CDMA cellular signal) modulated on an L-band (orother frequency) carrier signal, which may be synchronized with GPS time. Each such transmitter may be assigned a unique PN code so as to permit identification by a remote receiver. Pseudolites are useful in situations where GPS signals from anorbiting satellite might be unavailable, such as in tunnels, mines, buildings, urban canyons or other enclosed areas. Another implementation of pseudolites is known as radio-beacons. The term "satellite", as used herein, is intended to includepseudolites, equivalents of pseudolites, and possibly others. The term "SPS signals," as used herein, is intended to include SPS-like signals from pseudolites or equivalents of pseudolites.

Position determination techniques described herein may be used for various wireless communication networks, such as a wireless wide area network (WWAN), a wireless local area network (WLAN), a wireless personal area network (WPAN), and so on. The term "network" and "system" are often used interchangeably. A WWAN may be a Code Division Multiple Access (CDMA) network, a Time Division Multiple Access (TDMA) network, a Frequency Division Multiple Access (FDMA) network, an Orthogonal FrequencyDivision Multiple Access (OFDMA) network, a Single-Carrier Frequency Division Multiple Access (SC-FDMA) network, and so on. A CDMA network may implement one or more radio access technologies (RATs) such as cdma2000, Wideband-CDMA (W-CDMA), and so on. Cdma2000 includes IS-95, IS-2000, and IS-856 standards. A TDMA network may implement Global System for Mobile Communications (GSM), Digital Advanced Mobile Phone System (D-AMPS), or some other RAT. GSM and W-CDMA are described in documents from aconsortium named "3rd Generation Partnership Project" (3GPP). CDMA2000 is described in documents from a consortium named "3rd Generation Partnership Project 2" (3GPP2). 3GPP and 3GPP2 documents are publicly available. A WLAN may be an IEEE 802.11xnetwork, and a WPAN may be a Bluetooth network, an IEEE 802.15x, or some other type of network. The techniques may also be used for any combination of WWAN, WLAN and/or WPAN.

Although the present invention has been described with reference to specific exemplary features, it will be evident that various modifications and changes may be made to these features without departing from the broader spirit and scope of theinvention as set forth in the claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than restrictive sense.