System and method for reference data processing in network assisted position determination

A system and method of preprocessing reference data in a reference assisted location technology are disclosed. A plurality of reference stations each provides reference data over a network to a preprocessing. The preprocessor analyzes the data from the multiple reference stations and eliminates multiples sets of redundant data. In addition, the preprocessor can perform quality assurance checks on the data as well as the status of the reference stations themselves. Non-redundant data may also be preprocessed to perform differential GPS calculations. The preprocessed data is transmitted to one or more position servers for additional processing and position determination.

BACKGROUND

1. Technical Field

The present invention relates generally to position determination and, in particular, concerns server-assisted position determination technology.

2. Description of the Related Art

Satellite position systems (SPS) determine the location of a receiver based on signals received from a plurality of satellites. In one example of an SPS, known as a Global Positioning System (GPS), receivers normally determine their position by computing relative times of arrival of signals transmitted simultaneously from a multiplicity of GPS satellites. These satellites transmit, as part of their message, both satellite positioning data as well as data on clock timing, so-called “ephemeris” data. The process of searching for and acquiring GPS signals, reading the ephemeris and GPS system data (ionospheric data, universal time coordinated (UTC) data, almanac data, health data) for a multiplicity of satellites is time consuming. In many cases, this lengthy processing time is unacceptable and, furthermore, greatly limits battery life in micro-miniaturized portable applications.

Another limitation of current GPS receivers is that successful operation is limited to situations in which multiple satellites are clearly in view, i.e., without obstructions, and a good quality antenna is properly positioned to receive such signals. As such, current GPS receivers normally are unusable in portable body-mounted applications in areas where there is significant foliage or building blockage (e.g., urban canyons), and in-building applications.

One known solution to this problem involves the use of a wireless telephone integrated with a GPS receiver. The term “wireless telephone” includes, but is not limited to, cellular telephones, personal communication systems (PCS) devices, analog wireless telephones, digital wireless telephones, and the like. Although examples may be provided of specific types of wireless telephones, the present invention is not limited to any specific form of wireless communication device. A wireless link is established between the mobile GPS unit, or client, and a server, which is sometimes referred to as a position determining entity (PDE). The mobile GPS receiver takes what is referred to as a snapshot of the available satellite signals. That is to say, the mobile GPS receiver records a short duration of signals from as many satellites as are available in its line of sight. As described above, obstructions often limit the number of satellites that can be detected by the mobile GPS receiver and may also degrade the quality of the signals received by the mobile GPS receiver. In the presence of such obstructions, the received satellite signals are likely to be attenuated and fragmented, due to the location of the mobile GPS receiver, which may be in close proximity to buildings or foliage, etc.

There are known techniques for using an SPS, such as GPS with a reference network. A plurality of reference receivers forward received GPS data to a central location, such as the PDE. The PDE also receives data from the mobile GPS receiver and analyzes the mobile GPS data with respect to GPS data from the reference receivers. As a result of this analysis, the PDE is able to determine the location of the mobile GPS receiver.

FIG. 1is a functional block diagram illustrating existing technologies for wireless assisted location technologies. The system10comprises a plurality of reference stations12-16that include the necessary hardware to receive GPS satellite signals and transmit the received data via a communication link18. In a typical implementation, the communication link18is a wide area network (WAN). A communication controller20receives the reference data and may multiplex the data for convenience in subsequent transmission. The communication controller20receives the various forms of reference data from the reference stations12-16and transmits the reference data to a position determining entity (PDE)22via a communication link24. In a typical implementation, the communication link18is a WAN.

The reference stations12-16, the communication link18, and the communication controller20may be described as a wide area reference network (WARN)26. In a typical implementation of the WARN26, the reference stations12-16are widely distributed throughout a region in precisely known locations.FIG. 1illustrates reference stations 1−N where N may vary based on the area of coverage. For example, the continental United States may have a dozen or more reference stations distributed throughout the country.

Although not illustrated inFIG. 1, each of the reference stations12-16includes an antenna, a GPS receiver, and network interface equipment. In general, the reference stations12-16comprise survey grade GPS receivers that are capable of transmitting and receiving messages through communication ports, such as an RS-232 serial port. One example of a GPS receiver capable of operating as a reference receiver (e.g., in the reference stations12-16) is the NovAtel receiver, which generates both pseudorange and Doppler measurement data. This data, which is sometimes referred to as measurement output data, is supplied by virtually all commercial GPS receivers. In addition, some receivers, such as the NovAtel receiver, are also capable of generating GPS navigation message output data, in raw and/or pre-processed forms. Such receivers are commercially available and need not be described in greater detail herein.

The various reference stations12-16forward reference data to the PDE22. The reference data includes such data as pseudorange and Doppler data from single-frequency or dual-frequency reference stations, raw GPS navigation message output data, and a one-pulse-per-second signal for time synchronization. In some circumstances, the reference stations1216may not support all of the reference data described above. However, the reference data described above are illustrative of typical reference data from the reference stations12-16.

Also illustrated inFIG. 1is a mobile GPS unit30, which may typically be embodied in a combination wireless communication device (e.g., a cellular telephone or PCS device) combined with a GPS receiver. As noted above, the mobile GPS unit30generally does not receive satellite data of sufficient quantity and quality to enable independent accurate determination of the location of the mobile GPS unit30. Instead of an independent position determination, the mobile GPS unit30transmits the fragmentary GPS data that it has received to a wireless communication controller32. The wireless communication controller32may be a conventional base transceiver station (BTS) or the like. The wireless communication controller32transmits the fragmentary measurement data to the PDE22via a communication link34. In a typical implementation, the communication link34may be a WAN.

The PDE22analyzes the GPS measurements (code phase and/or other measurements) data from the mobile GPS unit30with respect to the reference data provided by the WARN26. For example, in one implementation, fragmented data samples from a quadrature receiver (i.e., I/Q data samples) are used to “pattern match” with a GPS navigation message data from reference stations (e.g., the reference stations12-16). The concept of pattern matching signals from a GPS receiver with GPS signals from a reference station is known in the art and need not be described in greater detail herein. The PDE22can then use these time-stamped measurements, using known methods, to accurately determine the location of the mobile GPS unit30. The PDE22may transmit the position data back to the mobile GPS unit30via the wireless communication controller32. The process of position determination using a reference network is well known and need not be described in greater detail herein.

In operation, the raw data measurements and navigation message from each of the reference stations12-16in the WARN26is forwarded to the PDE22for processing with data received from the mobile GPS unit30. On the basis of the complete (or nearly complete) reference data from the plurality of reference stations12-16and the data from the mobile GPS unit30, the PDE22can determine the location of the mobile unit with a high degree of accuracy.

The difficulty with such an approach is the additional data load on the PDE22. Therefore, it can be appreciated that there is a significant need for an apparatus and method that will efficiently determine the location of a mobile GPS unit based on reference data from the WARN. The present invention provides this, and other advantages, as will be apparent from the following detailed description and accompanying figures.

SUMMARY

The presently disclosed system and method preprocesses reference data in a reference assisted position location system. In one implementation, an apparatus is used for processing reference data for wireless assisted positioning using data received from a plurality of reference data sources. A preprocessor receives reference data from the plurality of reference data sources. The reference data is preprocessed. A position determining processor (PDP) is coupled to the preprocessor to calculate the position of a mobile unit based at least in part on the preprocessed data.

In one embodiment, the preprocessor filters the reference data to remove redundant data received from the plurality of reference data sources. In another embodiment, the preprocessor analyzes the reference data to remove unreliable reference data received from the plurality of reference data sources.

In one embodiment, the plurality of reference data sources are associated with a first network and the PDP is associated with a second network. One such embodiment further comprises a router associated with the second network to receive data from the first network.

In one embodiment, the preprocessor is associated with the second network. The router associated with the second network receives the reference data from the plurality of reference data sources associated with the first network.

In an alternative embodiment, the preprocessor is associated with the first network. The router associated with the second network receives the processed data from the first network. In yet another alternative embodiment, multiple preprocessors are associated with either the first or second networks in a distributed system.

DETAILED DESCRIPTION OF THE EMBODIMENTS

In conventional systems, the Position Determination Entity (PDE)22must process a significant amount of reference data from the Wide Area Reference Network (WARN)26to determine the location of the mobile Global Positioning System (GPS) unit30. The present techniques include a preprocessor that analyzes data from the WARN26prior to processing by the PDE22. As a result of this preprocessing, the workload of the PDE22is greatly reduced and the throughput of the position determining technology thereby enhanced.

One system100is shown in a simplified form in the functional block diagram ofFIG. 2. A plurality of reference stations (e.g., the reference stations12-16) each generate a set of reference data for transmission to a Communication Controller (CC) (e.g., the communication controller20) via a communication link18. For the sake of convenience in describing the system100, the communication link18will be described herein as a wide area network (WAN). However, those skilled in the art will recognize that the communication link18may be implemented by other conventional techniques, such as a T1 connection, DSL, ISDN, cable modem, a dedicated line, satellite link, microwave link, LAN or the like. The disclosed architecture is not limited to the specific form of the communication link18shown between the reference stations12-16and the CC20.

Associated with each reference station is a network interface function, which comprises a network interface controller (NIC)40. The function of the NIC40is to place the data into a plurality of data packets or frames for transmission over the WAN18. A number of different interface types may be used to accomplish this task. For example, the NIC40may be implemented by a frame relay access device, a serial-to-internet protocol (IP) conversion device or the like. Those skilled in the art will recognize that other network interface devices may also be used satisfactorily with the system100depending on the specific implementations of the communication link. The operation of these devices is known in the art and need not be described in greater detail herein.

It should be noted that the NIC40only provides a data packeting and addressing function, but does not process the reference data itself. The NIC40places the data from each of the reference stations12-16onto the WAN18for IP routing. In a current implementation of the WARN26, the CC20is coupled to the WAN18and receives the data from each of the reference stations12-16. Although not specifically illustrated inFIG. 2, those skilled in the art will appreciate that the CC20also includes a network interface function, such as the NIC40. If the communication link18is implemented as a WAN, the network interface function associated with the CC20may comprise a router. The operation of such devices is well known in the art and, for the sake of brevity, will not be described herein.

The WARN26may include one or more CCs20. The CC20may be readily implemented on different computer operating systems, such as Unix or WinNT. The CC20has no knowledge about the specific reference data (i.e., pseudorange, Doppler, navigation data, ephemeris data, and the like), but is used to manage and monitor the state of the data coming through the frame relay. Upon receipt of reference data from one or more of the reference stations12-16, the CC20attaches a header indicating the length of the reference data (e.g., number of bytes), station identification for the reference station (e.g., the reference stations12-16) that generated the data, and sequence number. The CC20then routes the data to a WARN processor104using a communication link24.

For the sake of convenience in describing the system100, the communication link24will be referred to herein as a WAN. However, those skilled in the art will recognize that the communication link24may be implemented by other conventional techniques, such as a T1 connection, DSL, ISDN, cable modem dedicated line, satellite link, microwave link, or the like. Other embodiments may use other forms of the communication link24.

In operation, the CC20places each data packet on the WAN24for Internet Protocol (IP) routing. The CC20functions to multiplex raw data and feed the raw data over the communication link24to the WARN processor104for preprocessing. As will be described in greater detail below, the WARN processor104routes the preprocessed data to a position determining processor (PDP), which is referred to herein as a position server106. InFIG. 2, the WARN processor104is coupled to the position server106by a communication link108. For the sake of convenience in describing the system100, the communication link108will be described herein as a local area network (LAN). However, those skilled in the art will appreciate that the communication link108may be satisfactorily implemented in the system100by other conventional techniques, such as a T1 connection, DSL, ISDN, cable modem, dedicated line, satellite link, microwave link, WAN or any other communications link suitable for such communicating.

In one embodiment, the system100is implemented in a distributed architecture with a plurality of WARN processors104to perform the preprocessing of reference data and/or a plurality of position servers106to make the necessary position calculations. In this distributed architecture, illustrated inFIG. 3, the system100is implemented using a plurality of position servers106, each of which may operate independently to calculate the position of the mobile GPS unit30(seeFIG. 2). In this embodiment, the system100may be implemented as a client-server architecture in which the WARN processor104functions as a client and provides data to a selected one of the position servers106. In turn, the selected position server106performs the necessary position calculations and returns the desired result.

In a typical implementation, the number of position servers106depends on the number of customers requiring position determining technology (i.e., more position servers106may be added to the system100as the number of customers increases). The position servers106may be centrally located or geographically distributed. In a typical implementation, one or more position servers106are associated with one or more WARN processors104. In this case, a single position server106would receive data from one of the WARN processors104and perform the necessary position determining calculations. However, in other implementations, the workload between the WARN processors104and the position servers106may be dynamically balanced for greatest data throughput. Techniques for load balancing among multiple processors (i.e., multiple WARN processors104and/or multiple position servers106) in a distributed architecture are well known in the art and need not be described in greater detail herein. However, the multiple WARN processors104and multiple position servers106function to provide the necessary position location data in an optimized fashion. As will be described in greater detail below, multiple WARN processors104may also operate in a redundant configuration to provide failure mode recovery in a distributed architecture.

The one or more WARN processors104communicate with the plurality of position servers106via the communication link108. In one embodiment, the WARN processor104may be implemented on the same computing platform as a corresponding position server106. In this embodiment, the communication link108may be an internal data bus within a computing platform.

In an alternative embodiment, the WARN processors104and position servers106may be implemented on different computing platforms. In this embodiment, the communication link108may be a network link, such as a LAN. Those skilled in the art will recognize that other architectures may be readily employed to implement the system100.

In yet another alternative embodiment, the position server106does not perform the actual position determining calculations. Instead, the position server106receives the preprocess reference data from the WARN processor104and performs calculations to generate “aiding” information, such as ephemeris data and/or almanac data. The position server106forwards the aiding information to a separate position determining entity. In one embodiment, the position determining entity22may be co-located with the mobile GPS unit30(seeFIG. 1). In this embodiment, the necessary data is forwarded to the mobile GPS unit30so that the unit30may perform calculations to determine its own position. In other embodiments, a separate independent position determining entity22may perform the necessary calculations and forward the results to the mobile GPS unit30. The various components of the system100are coupled to WANs (e.g., the communication link18and the communication link24) using routers102. Routers are conventional computer system components whose operation is well understood and need not be described in greater detail herein.

If other forms of communication, such as an ISDN connection, are used to implement either the communication link18or the communication link24, the routers102may be replaced with other conventional computer components appropriate for the specific architecture. The specific location of the WARN processor104is not critical to satisfactory operation of the system100.

FIG. 4is a functional block diagram illustrating an implementation of the system100with an existing WARN26. As previously discussed, the reference stations12-16are each coupled to the WAN18using the NIC40to format and address the data to the CC20. A router42is coupled to the WAN18and receives the reference data from the reference stations12-16. The router42is a conventional component and operates to receive the reference data addressed to the router and to relay the reference data to the CC20. The router42and CC20are coupled by a communication link44, which may be implemented in a variety of known fashions. In one implementation, the communication link44is a LAN. The system100is not limited by the specific form in which the communication link44is implemented.

The received reference data is further packetized and may be multiplexed by the CC20in the manner described above. The packetized data is transmitted to a communication link (e.g., a WAN24) using a router46. The operation of the router46is known in the art and need not be described in greater detail herein.

The router102is coupled to the communication link24. The router46receives the reference data and routes the received reference data to the WARN processor104via communication link108. Thus, in the implementation illustrated inFIG. 4, the WARN processor104and the position server106are both coupled to the communication link108. For the sake of convenience,FIG. 4illustrates the router102, WARN processor104and position server106in a single block diagram. However, those skilled in the art will appreciate that these components need not be physically co-located. Using conventional network technology, the various components may be positioned at convenient locations for communication, system maintenance, and the like.

In an alternative embodiment, the WARN processor104is coupled to the communication link44rather than the communication link108. This is illustrated in the functional block diagram ofFIG. 5. The WARN processor104is coupled to the communication link30and receives the reference data from the various reference stations (e.g., the reference stations12-16). The WARN processor104performs the same preprocessing functions as does the WARN processor in the embodiment ofFIG. 4. However, in this embodiment, the router46transmits the preprocessed reference data to the router102via the communication link24. In turn, the router102transmits the preprocessed reference data directly to the position server106using the communication link108. Thus, the specific location of the WARN processor104is not critical to satisfactory operation of the system100.

In the embodiment ofFIG. 4and the embodiment ofFIG. 5, the WARN processor104performs the same function. That is, the WARN processor104preprocesses reference data so as to eliminate extra data processing steps by the position server106. In the embodiment illustrated inFIG. 4, the router42forwards the unprocessed reference data to the WARN processor104via the communication link24and the router102. In the embodiment illustrated inFIG. 5, the router42routes the unprocessed reference data to the WARN processor104for preprocessing. The router46subsequently routes the processed data to the position server106via the communication link24and the router102.

In yet another alternative embodiment, the distributed architecture of the system100permits the association of multiple WARN processors104. The system architectures ofFIGS. 4 and 5may be combined such that a first WARN processor104is coupled to the communication link108(seeFIG. 4) while a second WARN processor104is coupled to the communication link45(seeFIG. 5) or communication link31. In this embodiment, workload may be distributed among the two WARN processors104to achieve a workload balance. For example, the WARN processor104coupled to the communication link31may process a first portion of data while the WARN processor104coupled to the communication link108may process a second portion of data.

Alternatively, multiple WARN processors104may be implemented in a “daisy-chain” configuration where a first WARN104processor coupled to the communication link45(seeFIG. 5) is configured for pass through operation. That is, the WARN processor104coupled to the communication link31simply routes the unprocessed data to another WARN processor104that may be coupled to the communication link31or coupled to the communication link108(seeFIG. 4). In another alternative embodiment, the WARN processor104coupled to the communication link45may process data for a first mobile GPS unit30(seeFIG. 2) while the WARN processor104coupled to the communication link108processes data associated with a second wireless GPS unit (not shown). In yet another alternative embodiment, one WARN processor104may process data from a selected portion of the reference stations12-16while the second WARN processor104processes reference data from a different portion of the reference stations12,14,16. Additional workload balancing techniques among multiple processors is known in the art and need not be described in greater detail herein. Another advantage of distributed architecture is system redundancy and backup. In this configuration, illustrated inFIG. 6, one WARN processor604afunctions as a primary WARN processor, while a second WARN processor604bfunctions as a secondary WARN processor. The primary and secondary WARN processors (collectively referenced as “604”) both receive data through independent communication lines. As illustrated inFIG. 6, a first communication controller620ais coupled to a first router602avia the communication link624a, such as a WAN. Similarly, a second communication controller620bis coupled to a second router602bvia a communication link624b. Those skilled in the art will recognize that different communication links may be used to couple the communication controllers (collectively referenced as “620”) to the routers602aand602b. Furthermore, the system600illustrated inFIG. 6may be implemented with only a single communication controller routing data to the primary and secondary WARN processors604aand604b, as described below.

As illustrated inFIG. 6, the first router602ais coupled to the primary WARN processor604avia a communication link110. The first router602ais also coupled to the secondary WARN processor604bvia a communication link112. Similarly, the second router602bis coupled to the primary WARN processor604avia a communication link114and is also coupled to the secondary WARN processor604bvia a communication link116. Those skilled in the art will recognize that the communication links110-116may be implemented using a variety of known technologies. For example, the communication links110-116may be implemented as LANs, WANs, direct lines, frame relay devices, ISDN communication links, microwave communication links, dedicated lines, wireless communication links, satellite communication links, or a combination of any of the above. The advantage of the independent communication links is that the routers602may route data from the communication controllers620to either the primary or secondary WARN processor604. As illustrated inFIG. 6, the primary and secondary WARN processors604each comprise a plurality of network interface controllers40a-40f. The controllers NIC1,40a,40c, in the primary and secondary WARN processors604are coupled to the first router602avia the communication links110and112, respectively. Similarly, the controllers NIC2,40b,40d, in the primary and secondary WARN processors602are coupled to router2,602b, via the communication links114and116, respectively. In addition, the controllers NIC3,40e,40f, in the primary and secondary WARN processors604are coupled to a communication link, such as the communication link608. The position server606is also coupled to the communication link608and can receive data from either or both the primary and secondary WARN processors604. The redundant architecture ofFIG. 6advantageously permits backup operation in the event of a partial system failure. For example, if the first communication controller620ais inoperable, the second communication controller620bmay route data to both the primary and secondary WARN processors604via the second router602b. Similarly, if a WARN processor604fails, the redundant architecture ofFIG. 6allows the system600to continue operation. For example, if the primary WARN processor604afails, the first and second routers602will route data to the secondary WARN processor604bvia the communication links112and116, respectively. Thus, the redundant architecture ofFIG. 6allows system operation even in the event of partial system failure. Other fault tolerant or redundant configurations may be used with the system600. For example, computer systems are often configured to implement a Virtual Router Redundancy Protocol (VRRP) to provide computer redundant configurations. The system600will operate satisfactorily using the configuration ofFIG. 6, VRRP, or other known configurations. As described above, the system600may be implemented using a variety of computer architectures. In any of the configurations described above, the WARN processor104,604operates to alleviate the workload of the position server106,606.

The WARN processor104,604processes the data received from a WARN26and transmits the processed data to the position server106,606. In the case of multiple reference stations there are redundant and non-redundant raw data arriving from the WARN26. The WARN processor104,604analyzes the redundant data types, which may include ephemeris data and raw navigation data. Data from a minimum of 2 reference stations out of all of the reference stations (e.g., the reference stations12-16) providing reference data is compared.

If the redundant data types are in agreement, the rest of the redundant data with the same time tag and data content will be ignored for transmission to the selected position server106,606. The number of sets of redundant data transmitted to the selected position server106,606may depend on the reliability and bandwidth of the communication link24,624and/or the communication link108,608. For example, using the configuration ofFIG. 5, multiple sets of redundant data may be transmitted to the position server106via the communication link24. However, in another implementation, the communication link24may be implemented as a relatively reliable TCP/IP connection. In this instance, only a single set of data may be transmitted to the position server106. Thus, a variable number of sets of the same data will be sent to the selected position server106depending on the reliability and bandwidth of the communication link. The additional set(s) of redundant data are transmitted to the selected position server106to assure adequate data redundancy, while at the same time reducing the flooding of the selected position server with multiple redundant data. The WARN processor104transmits the reduced set of data to the selected position server106for further processing in a conventional manner that need not be described herein. The workload of the selected position server106is reduced because it need only deal with the reduced set of redundant data.

For a non-redundant data type, such as the reference receiver measurement packets, the data can be transmitted to the selected position server106along with the appropriate receiver identification data. For the non-redundant data types, the WARN processor104will calculate the differential corrections (i.e., Differential GPS (DGPS) data) and send corrected DGPS data to the selected position server106. This preprocessing of non-redundant data also reduces the workload of the selected position server106.

In addition to the elimination of redundant data and preprocessing of data, such as corrected DGPS data, the WARN processor104performs quality assurance analysis on measurement data received from the reference stations (e.g., the reference stations12-16). The WARN processor104receives data from the various reference stations via the CC20, as described above.

The quality assurance (QA) processing is illustrated in the flowchart ofFIG. 7where at a start200, lines of communication are established between the WARN26and the CC20. In step202, the WARN processor104receives and reads data from one or more of the reference stations. In an implementation wherein the communication link24is a WAN, this includes receiving data from the same IP multicast address via one of the routers (e.g., the router102). The WARN processor104reads the data and parses the data in accordance with station identification, length, sequence number, and the like. As those skilled in the art will appreciate, data is typically transmitted as a plurality of data packets. The sequence number indicates the sequence number of individual data packets within an entire data message.

In step204, the WARN processor104updates data traffic statistics. This includes an update of the number of bytes received from each of the reference12-16, the total number of data packets that were received out of sequence, and/or missed data packets. Data traffic statistics may be used to determine the satisfactory operation of the reference stations themselves as well as communication links coupling the reference stations to the other components of the system100.

In decision206, the WARN processor104determines whether the data is raw WARN data (e.g., pseudorange data). If the data is not raw WARN data, the result of decision206is NO and, in step208, the WARN processor routes the data to a destination. In some embodiments, such as the distributed architecture ofFIGS. 3-5, one of the WARN processors104may have already processed data. A second WARN processor thus receives already processed data. For data of this type, the WARN processor104performs no additional data processing, but merely acts as a node in a data network and relays the data to the final destination. Typically, the final destination is the position server106, but could be any other node on the network.

If the received data is raw WARN data, the result of decision206is YES. In that event, the WARN processor104decodes the data in step212and partitions the data in step214. In step212, the WARN processor decodes the raw data, (such as data received from a NovAtel reference receiver or other manufacturer's data) into an internal generic data format for navigation message data, measurement data, or other data packets. The reference station may also transmit almanac and/or ephemeris data to the WARN processor104.

As part of the decoding process in step212, the WARN processor104evaluates data integrity and determines whether data corruption has occurred. This may be done using conventional technology, such as a checksum, data error correction technology, or the like. Those skilled in the art will appreciate that data integrity may be determined by a variety of known techniques. Many data error detection and/or correction technique may be satisfactorily used with the system100.

In step214, the WARN processor104partitions the reference data into two groups. That is, the data is partitioned into station data, which may include pseudorange measurements, correction data, and the like. Data relating to the satellite is partitioned into a separate group. This includes data, such as navigation message, ephemeris data, almanac data, and the like.

In step220, the WARN processor104processes the satellite data. This includes the process of updating satellite data counters, checking the satellite data against previously stored historic data, filling in data gaps, and the like. The WARN processor may also repair incoming data based on all data received from the satellites. For example, the WARN processor104may invert the navigation message polarity, if necessary, based on the receipt of all data from a particular satellite. If necessary, the WARN processor104may also reconstruct GPS system parameters, such as broadcast ionospheric model, UTC offset, health page parameters, almanac, ephemeris, and the like.

The WARN processor104also checks ephemeris data against explicit ephemeris data arriving from the reference stations. The WARN processor104periodically compares decoded system data from individual satellites to derive the best current common system parameters for transmission to the position server106. Finally, the processed data is inserted into a satellite data buffer for subsequent transmission to the position server106.

At the same time, the WARN processor104executes a different process, in step222, to process station data. This includes updating station specific statistics, such as gaps in the data, out of order or missing data, and the like. The WARN processor104may also fill in gaps for existing data. Some commercial reference grade GPS receivers operate in dual-frequency mode. If dual-frequency measurements are available, the WARN processor104may measure for ionospheric delay for each satellite and/or combine measurements to form an ionospheric-free set of observables.

For station-specific data, if measurements are received, the DGPS corrections may be computed for each reference station. Those skilled in the art will recognize that the calculation of DGPS corrections require satellite orbit computations. When all data is available for a single epoch (e.g., every ten seconds), common network corrections and clock parameters are computed and individual station corrections are computed and checked against common network corrections. Any measurements that exceed a predetermined threshold are eliminated as unreliable. This process eliminates data that may be considered of questionable accuracy and thus improves the quality of data processing by the system100. The processed data is inserted into a station data buffer for subsequent transmission to the position server106.

Following the satellite data processing and station data processing in steps220and222, respectively, the WARN processor104updates performance statistics in step226. This includes update of performance statistics for both the received satellite and station data. The WARN processor may also encode and compress the best available data for transmission to the position server106. As previously noted, in a distributed architecture, the system100may include a plurality of position servers106, which may be connected to the same LAN, different LANs, and may be local or remote with respect to each other and with respect to the WARN processor104.

In step228, the WARN processor104transmits the data to one or more position servers106. In a typical implementation of the system100, the WARN processor104may transmit to the position server106station correction data or quality controlled and filtered measurements, network corrections, ionospheric model (either derived or broadcast), UTC time parameters, system health page, navigation message for individual satellites, almanac, ephemeris, and the like. Those skilled in the art will recognize that the WARN processor104may not transmit all the data listed above. In addition, the WARN processor104may transmit additional proprietary performance metrics, such as the number of reference stations tracking a single satellite, performance statistics of the WARN processor itself, the number of active reference stations, the number of bad measurements, and the like. This data may be used to determine the reliability of data from any given satellite, any given reference station, or various components of the system100.

In decision230, the system100determines whether additional data is available. If additional data is available, the result of decision230is YES, and the system returns to step202to process the additional data. If no additional data is available, the result of decision230is NO. In that event, in step234the WARN processor104transmits an alert message to indicate that no additional data is available and the process ends at238. Thus, the WARN processor104provides preprocessing capabilities that improve the reliability of the data as well as reduce the burden otherwise placed on the PDE22(seeFIG. 1).

In addition to the data processing described above, the WARN processor104generates status messages that may be transmitted to an administration client (not shown). Furthermore, the WARN processor104may generate statistics of the preprocessing to be transmitted to the administration client. Finally, the WARN processor104may also generate warning or error messages in the event that fatal errors or exceptions occur during the preprocessing operations.

The bandwidth for any one of the reference stations (e.g., the reference stations12-16) to the CC20is preferably approximately 10-50 kilobits per second-Kbps. This bandwidth desired is based on the quantity of data generated by a reference station and the frequency with which that data is updated, so it can vary substantially between different implementations, depending upon such factors as the exact messages used, the number of satellites available, and the update rate of each message. It is desirable that the single reference receiver communication channel bandwidth is kept at the lower levels (10 kbps). The bandwidth from the CC20to the WARN processor104is variable. This bandwidth is based on the data provided by each of the reference stations (e.g., the reference stations12-16) combined with additional data packet headers attached to each of the data packets attached by the CC20. The bandwidth stated above is for a single reference station coupled to the communication manager gateway. If a plurality of reference stations are used, the bandwidth requirements increase proportionally. That is, the bandwidth is approximately N*10 Kbps, where N is the number of reference stations providing data to the CC20.

The bandwidth from the WARN processor104to the position server106depends on the type of data sent and redundancy desired. This bandwidth is impacted by additional data headers that may be added to the processed data by the WARN processor104. In a typical implementation, the filtered/processed data from the WARN processor104is expected to be less than 3*10 Kbps, which is much less than N*1.0 Kbps if all data is transmitted to the PDE22(SeeFIG. 1).

The system100has been described above in a number of varying implementations and architectures. It is to be understood that even though various embodiments and advantages have been set forth in the foregoing description, the above disclosure is illustrative only, and changes may be made in detail, yet remain within the broad principles of the disclosed method and apparatus. The present invention is to be limited only by the appended claims