Abstract:
In a satellite global positioning system, satellite acquisition and location assistance is based upon shared information between a GPS receiver and a remote server. Satellite position is predicted by satellite almanac data.

Description:
FIELD OF INVENTION 
     This invention pertains to mobile positioning using a network of satellites, specifically to computing a mobile position by predicting satellite position using almanac information. 
     BACKGROUND OF INVENTION 
     A satellite positioning system comprises a network of earth orbiting satellites to transmit geographical position information to mobile or fixed receivers. 
     Each satellite orbits the earth approximately once every twelve hours. The position of each satellite at any given time is precisely known and is continuously transmitted to earth. This position information, called ephemeris data, indicates the orbital position of the satellite in space with respect to satellite positioning time. 
     In addition to ephemeris data, the navigational signal transmitted by each satellite includes a precise timing signal in the form of a pseudo-random code specific to each satellite. 
     The satellite positioning system receiver computes the time taken for the satellite&#39;s timing signal to travel to a receiver to determine distance from the satellite. This computation is accomplished by comparing the receiver internally-generated timing signal to the timing signal received from the satellite and noting the time shift between the two signals. The difference in time resulting from the time shift is then multiplied by the speed of light to determine the distance of the receiver to the satellite. 
     The computed distance is called “pseudo-range” because receiver timing signal may not be precisely synchronized to satellite positioning system time, and because propagation through the atmosphere introduces delays into navigation signal propagation time. 
     Using these two pieces of information, ephemeris data and pseudo-range from at least three satellites, position of a receiver with respect to the center of the Earth can be determined using passive triangulation. 
     Triangulation involves three steps. First, the position of at least three satellites in view of the receiver is determined. Second, the distance from the receiver to each satellite is determined. Third, the information from the first two steps is used to determine geometrically the position of the receiver with respect to the center of the Earth. 
     This triangulation method, using data from three satellites, gives a rough position of the receiver. Pseudo-range calculations are dependent on the accuracy of receiver internal clock signal to be in synchronization with each of the satellite clock signals. To assure clock synchronization, a fourth satellite must be acquired by the receiver. 
     The process of acquiring satellite positioning system signals from a multiplicity of satellite positioning system satellites and then computing the receiver location is time consuming. This process can take from 30 seconds up to 12 minutes. 
     A recent U.S. Federal Communications Commission (FCC) mandate, known as “Enhanced 911” (E911) requires cellular telephone carriers to have the ability to locate the position of any cellular telephone user for emergency purposes. The time to locate or “Time to First Fix” a user location must occur within 10 seconds and must be capable of locating indoor cellular telephone users. 
     The prior-art satellite positioning system methods cannot provide position information within the required time of 10 seconds. 
     Therefore, there is a need for a method of acquiring satellite information to compute position location within the FCC&#39;s mandate of 10 seconds, that can detect receiver position located indoors and provide the required position accuracy. The present invention satisfies these needs, as well as others, and generally overcomes the deficiencies found in the prior art. 
     SUMMARY OF INVENTION 
     The invention improves time required to fix a mobile receiver with positioning signals from a satellite positioning system using almanac information. 
     In a differential satellite positioning system, a reference receiver, or geo-location server, continually acquires and stores satellite position information. A mobile receiver receives the stored satellite position information from the server using a high-speed radio frequency wireless link. 
     Since satellite information is acquired beforehand, time normally used to collect this data is therefore saved. The mobile receiver then acquires satellite pseudo-range signals to compute a position. The acquisition phase is much faster, as the correlation peak offset to a known time reference is accurately known, and the energy search time is shortened significantly. 
     In operation, the server sends to the mobile receiver, via the wireless link, approximate position within 20 km of the real position along with the approximate satellite position system absolute time. 
     Using the approximate position of the mobile receiver, the approximate satellite position system absolute time and the mobile receiver internally stored almanacs, the mobile receiver computes a tentative list of visible satellites. 
     The mobile receiver then sends to the server, via its wireless link, information relating to which satellites are in tentative visibility list and identification of corresponding almanacs. 
     The server correlates this data with internally stored almanacs to determine if there is a position or time error as compared to current satellite ephemeris. If there is a position or time error greater than a predetermined threshold, or with an almanac unknown or unavailable to the server, or a satellite not visible from the mobile receiver approximate location, the server sends a replacement almanac to the mobile receiver via the wireless link. 
     Since the satellite visibility list has been updated at the mobile receiver using replacement almanacs from the server and not from the satellites directly to the mobile receiver, the prior-art time consuming satellite acquisition phase is eliminated. The pseudo-random code offset, broadcast bit boundary offset, approximate Doppler and all information necessary to ensure fast acquisition is computed at the mobile receiver using the combination of almanacs updated by the server and almanacs currently residing the mobile receiver memory. 
     The mobile receiver acquires pseudo-ranges from the satellites and uses almanacs stored in memory to compute a coarse position. The coarse position is sent to the server with residuals for each satellite using a wireless link. 
     The server computes the position of the satellites using the same almanacs stored in the mobile receiver at the time that the coarse position was computed. Using the coarse mobile receiver position, accurate satellite ephemeris data from the base station and residuals, the server corrects the coarse location and computes an accurate location. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of the system. 
     FIG. 2 is a flow diagram of the negotiation phase. 
     FIG. 3 is flow diagram of the acquisition phase. 
     FIG. 4 is a flow diagram of the coarse correction phase. 
    
    
     DETAILED DESCRIPTION 
     An almanac is a list of orbit Kepler parameters for all of the satellites operating in a satellite positioning system. 
     A sub-almanac is a subset of an almanac and contains only the orbit and clock parameters for a single satellite. Complete GPS almanac information is assembled from broadcast data obtained from any satellite by receiving a 12 second message every thirty seconds for a total of twelve minutes. A sub-almanac can be retrieved by receiving any 12 second message within the 12 minute broadcast. Each sub-almanac is identified by a unique identification. 
     The Kepler parameters are used to compute a satellite position to an accuracy of approximately one kilometer to its actual location and is valid for a period of one week from the reference time contained in the almanac. 
     Included in an almanac is a list of ephemeris data for each satellite. Ephemeris data contains satellite position information of higher accuracy and is in the order of five to ten meters of its actual location. However, the validity of the data lasts for only 4 hours. The data is broadcast from a satellite for eighteen seconds for every 30 second period. 
     FIG. 1 shows a block diagram of the apparatus that includes a portable or fixed Base Station (BS)  100 , a portable or fixed Position Determining Entity (PDE)  200  and a portable or fixed Mobile Station  300  (MS). 
     BS  100  comprises a wireless transceiver  101  and a landline digital interface  102 . BS  100  is fixed at a pre-determnined geographical location. 
     Position determining entity (“PDE” or location servers)  200  comprises a global positioning receiver  201 , digital computing device  202 , data storage memory  203 , and a landline digital interface  204 . The PDE  200  acts as a data server form the BS to the MS. 
     MS  300  comprises a global positioning receiver  301 , a computing device  302 , data storage memory  303  and a wireless transceiver  304 . The MS  300  has sub-almanac data stored in memory although the data may not be a complete almanac. 
     PDE  200  establishes communication with a satellite using its GPS receiver to receive almanac data. A complete almanac comprising orbit parameters for a plurality of satellites within the positioning system constellation is stored in memory in the PDE. PDE computes geographical location using the most recently acquired ephemeris data. 
     FIG. 2 shows a flow diagram of the negotiation phase  400 . In the negotiation phase  400 , the MS  300  computes a tentative satellite visibility list using a known geographical location of a BS  100  and almanacs currently stored in a memory  302  of the MS  300 . This is depicted in blocks  401 - 402 . The MS  300  sends to the PDE  200  sub-almanac information that is used in the computation of the tentative satellite visibility list, as shown in block  403 . The MS  300  also sends a computed error parameter MAX_ALL_ERR, indicating the position plus satellite clock error that the MS  300  expects returned after the almanac data has been corrected by the PDE  200 . 
     The PDE  200  computes the satellite position error between the actual satellite location from ephemeris data received from the MS  300  and the sub-almanacs contained in the satellite visibility list computed by the MS  300 . This is depicted in block  404 . If the error is larger than the MAX_ALL_ERR, the PDE  200  sends replacement sub-almanacs representing current satellite data only for sub-almanacs that exceeded MAX_ALL_ERR  405  to the MS  300 . The PDE  200  computes a true satellite visibility list using complete almanac data. If a satellite contained in the true visibility list is not listed in the tentative list, an almanac for the missing satellite is sent to the MS  300 , as depicted in block  405 . 
     If the MS  300  is unable to establish a communication link with the BS  100 , the MS  300  computes a geographical location using almanac data stored in the MS  300  and acquired satellite position information acquired by GPS receiver  301  contained in the MS  300 . 
     FIG. 3 shows a flow diagram of the acquisition phase  500 . In the acquisition phase  500 , the MS  300  computes detailed acquisition information. The MS  300  updates the satellite visibility list using the replacement sub-almanacs received from the PDE  200  to compute approximate Doppler and code offset data ,as shown in block  501 . The MS  300  uses the approximate data to acquire and track satellites, as shown in block  502 . The MS  300  acquires satellite position information (as shown in block  503 ) using the GPS receiver  301  contained in the MS  300  and computes a coarse geographical location using the satellite positions and updated sub-almanac data, as shown in block  504 . The MS  300  sends the computed location difference between the MS  300  and the BS  100  to the PDE. In one embodiment, the information sent from the MS  300  to the PDE  200  includes a weighted measurement factor, as shown in block  505 . 
     FIG. 4 shows a flow diagram of the coarse correction phase. In the coarse correction phase  600 , the PDE  200  corrects the coarse location information from the MS  300  and computes an accurate location of the MS  300 . The PDE  200  reconstructs the data sent to it from the MS  300 , as shown in block  601 , computes a correction factor from the sub-almanacs in the visibility list and the ephemeris data, as shown in block  602 , computes position and time corrections from ephemeris data, as shown in block  603 , adds position and time correction to the coarse location, as shown in block  604 , and sends the corrected location information to the MS  300 .